LLVM: llvm::Combiner Class Reference (original) (raw)
Combiner implementation. More...
#include "[llvm/CodeGen/GlobalISel/Combiner.h](Combiner%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| 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 CSEMIRBuilder. | |
| ~Combiner () override | |
| virtual bool | tryCombineAll (MachineInstr &I) const =0 |
| bool | combineMachineInstrs () |
| Public Member Functions inherited from llvm::GIMatchTableExecutor | |
| virtual | ~GIMatchTableExecutor ()=default |
| virtual void | setupGeneratedPerFunctionState (MachineFunction &MF)=0 |
| virtual void | setupMF (MachineFunction &mf, GISelValueTracking *vt, CodeGenCoverage *covinfo=nullptr, ProfileSummaryInfo *psi=nullptr, BlockFrequencyInfo *bfi=nullptr) |
| Setup per-MF executor state. |
| Protected Attributes | |
|---|---|
| CombinerInfo & | CInfo |
| GISelChangeObserver & | Observer |
| MachineIRBuilder & | B |
| MachineFunction & | MF |
| MachineRegisterInfo & | MRI |
| GISelValueTracking * | VT |
| const TargetPassConfig * | TPC |
| GISelCSEInfo * | CSEInfo |
Combiner implementation.
This is per-function, so passes need to recreate one of these each time they enter a new function.
TODO: Is it worth making this module-wide?
Definition at line 34 of file Combiner.h.
◆ ~Combiner()
| Combiner::~Combiner ( ) | overridedefault |
|---|
◆ combineMachineInstrs()
| bool Combiner::combineMachineInstrs | ( | ) |
|---|
Definition at line 255 of file Combiner.cpp.
References assert(), Changed, CInfo, CSEInfo, llvm::dbgs(), llvm::CombinerInfo::DCE, llvm::errs(), LLVM_DEBUG, llvm::make_early_inc_range(), MBB, MF, MORE, MRI, llvm::post_order(), llvm::reverse(), llvm::GIMatchTableExecutor::setupMF(), tryCombineAll(), and VT.
◆ tryCombineAll()
| virtual bool llvm::Combiner::tryCombineAll ( MachineInstr & I) const | pure virtual |
|---|
◆ B
◆ CInfo
◆ CSEInfo
◆ MF
◆ MRI
◆ Observer
◆ TPC
◆ VT
The documentation for this class was generated from the following files:
- include/llvm/CodeGen/GlobalISel/Combiner.h
- lib/CodeGen/GlobalISel/Combiner.cpp