| 
    LLVM 22.0.0git
    
   | 
 
Combiner implementation. More...
#include "llvm/CodeGen/GlobalISel/Combiner.h"
Classes | |
| class | WorkListMaintainer | 
| This class acts as the glue that joins the CombinerHelper to the overall Combine algorithm.  More... | |
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 | ( | MachineFunction & | MF, | 
| CombinerInfo & | CInfo, | ||
| const TargetPassConfig * | TPC, | ||
| GISelValueTracking * | VT, | ||
| GISelCSEInfo * | CSEInfo = nullptr ) | 
      
  | 
  overridedefault | 
| 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.
      
  | 
  pure virtual | 
References I.
Referenced by combineMachineInstrs().
      
  | 
  protected | 
Definition at line 72 of file Combiner.h.
Referenced by Combiner().
      
  | 
  protected | 
Definition at line 70 of file Combiner.h.
Referenced by combineMachineInstrs(), and Combiner().
      
  | 
  protected | 
Definition at line 78 of file Combiner.h.
Referenced by combineMachineInstrs(), and Combiner().
      
  | 
  protected | 
Definition at line 73 of file Combiner.h.
Referenced by combineMachineInstrs(), and Combiner().
      
  | 
  protected | 
Definition at line 74 of file Combiner.h.
Referenced by combineMachineInstrs(), Combiner(), and llvm::Combiner::WorkListMaintainer::create().
      
  | 
  protected | 
Definition at line 71 of file Combiner.h.
Referenced by Combiner().
      
  | 
  protected | 
Definition at line 77 of file Combiner.h.
Referenced by Combiner().
      
  | 
  protected | 
Definition at line 75 of file Combiner.h.
Referenced by combineMachineInstrs(), and Combiner().