LLVM: include/llvm/CodeGen/GlobalISel/Combiner.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#ifndef LLVM_CODEGEN_GLOBALISEL_COMBINER_H
16#define LLVM_CODEGEN_GLOBALISEL_COMBINER_H
17
22
23namespace llvm {
29
30
31
32
33
35private:
37
39 template <CombinerInfo::ObserverLevel Lvl> class WorkListMaintainerImpl;
40
41 WorkListTy WorkList;
42
43
44
45
46
47
48
49 std::unique_ptr Builder;
50 std::unique_ptr WLObserver;
51 std::unique_ptr ObserverWrapper;
52
53 bool HasSetupMF = false;
54
56
57public:
58
59
64
66
68
69protected:
76
79};
80
81}
82
83#endif
Option class for Targets to specify which operations are combined how and when.
This contains common code to allow clients to notify changes to machine instr.
This file declares the MachineIRBuilder class.
This class acts as the glue that joins the CombinerHelper to the overall Combine algorithm.
Combiner(MachineFunction &MF, CombinerInfo &CInfo, const TargetPassConfig *TPC, GISelValueTracking *VT, GISelCSEInfo *CSEInfo=nullptr)
If CSEInfo is not null, then the Combiner will use CSEInfo as the observer and also create a CSEMIRBu...
GISelCSEInfo * CSEInfo
Definition Combiner.h:78
bool combineMachineInstrs()
MachineRegisterInfo & MRI
Definition Combiner.h:74
const TargetPassConfig * TPC
Definition Combiner.h:77
MachineIRBuilder & B
Definition Combiner.h:72
GISelValueTracking * VT
Definition Combiner.h:75
MachineFunction & MF
Definition Combiner.h:73
CombinerInfo & CInfo
Definition Combiner.h:70
GISelChangeObserver & Observer
Definition Combiner.h:71
virtual bool tryCombineAll(MachineInstr &I) const =0
LLVM_ABI GIMatchTableExecutor()
Abstract class that contains various methods for clients to notify about changes.
Helper class to build MachineInstr.
Representation of each machine instruction.
MachineRegisterInfo - Keep track of information for virtual and physical registers,...
Target-Independent Code Generator Pass Configuration Options.
This is an optimization pass for GlobalISel generic memory operations.