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.