LLVM: lib/CodeGen/GlobalISel/GISelChangeObserver.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

15

16using namespace llvm;

17

20 for (auto &ChangingMI : MRI.use_instructions(Reg)) {

22 ChangingAllUsesOfReg.insert(&ChangingMI);

23 }

24}

25

27 for (auto *ChangedMI : ChangingAllUsesOfReg)

29 ChangingAllUsesOfReg.clear();

30}

31

34 : MF(MF), Delegate(Del) {

35

36

37 MF.setDelegate(Del);

38}

39

41

44 : MF(MF) {

45 MF.setObserver(&Observer);

46}

47

49

52 : Observers(Observers), TemporaryObserver(TemporaryObserver) {

53 Observers.addObserver(&TemporaryObserver);

54}

55

57 Observers.removeObserver(&TemporaryObserver);

58}

unsigned const MachineRegisterInfo * MRI

This contains common code to allow clients to notify changes to machine instr.

Abstract class that contains various methods for clients to notify about changes.

virtual void changingInstr(MachineInstr &MI)=0

This instruction is about to be mutated in some way.

LLVM_ABI void finishedChangingAllUsesOfReg()

All instructions reported as changing by changingAllUsesOfReg() have finished being changed.

Definition GISelChangeObserver.cpp:26

virtual void changedInstr(MachineInstr &MI)=0

This instruction was mutated in some way.

LLVM_ABI void changingAllUsesOfReg(const MachineRegisterInfo &MRI, Register Reg)

All the instructions using the given register are being changed.

Definition GISelChangeObserver.cpp:18

Simple wrapper observer that takes several observers, and calls each one for each event.

MachineRegisterInfo - Keep track of information for virtual and physical registers,...

LLVM_ABI ~RAIIDelegateInstaller()

Definition GISelChangeObserver.cpp:40

LLVM_ABI RAIIDelegateInstaller(MachineFunction &MF, MachineFunction::Delegate *Del)

Definition GISelChangeObserver.cpp:32

LLVM_ABI ~RAIIMFObserverInstaller()

Definition GISelChangeObserver.cpp:48

LLVM_ABI RAIIMFObserverInstaller(MachineFunction &MF, GISelChangeObserver &Observer)

Definition GISelChangeObserver.cpp:42

LLVM_ABI ~RAIITemporaryObserverInstaller()

Definition GISelChangeObserver.cpp:56

LLVM_ABI RAIITemporaryObserverInstaller(GISelObserverWrapper &Observers, GISelChangeObserver &TemporaryObserver)

Definition GISelChangeObserver.cpp:50

Wrapper class representing virtual and physical registers.

This is an optimization pass for GlobalISel generic memory operations.