| 
    LLVM 22.0.0git
    
   | 
 
#include "llvm/CodeGen/GlobalISel/Legalizer.h"
Classes | |
| struct | MFResult | 
Public Member Functions | |
| Legalizer () | |
| StringRef | getPassName () const override | 
| getPassName - Return a nice clean name for a pass.   | |
| void | getAnalysisUsage (AnalysisUsage &AU) const override | 
| getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job.   | |
| MachineFunctionProperties | getRequiredProperties () const override | 
| MachineFunctionProperties | getSetProperties () const override | 
| MachineFunctionProperties | getClearedProperties () const override | 
| bool | runOnMachineFunction (MachineFunction &MF) override | 
| runOnMachineFunction - This method must be overloaded to perform the desired machine code transformation or analysis.   | |
| Public Member Functions inherited from llvm::MachineFunctionPass | |
| bool | doInitialization (Module &) override | 
| doInitialization - Virtual method overridden by subclasses to do any necessary initialization before any pass is run.   | |
| Public Member Functions inherited from llvm::FunctionPass | |
| FunctionPass (char &pid) | |
| void | assignPassManager (PMStack &PMS, PassManagerType T) override | 
| Find appropriate Function Pass Manager or Call Graph Pass Manager in the PM Stack and add self into that manager.   | |
| PassManagerType | getPotentialPassManagerType () const override | 
| Return what kind of Pass Manager can manage this pass.   | |
| Public Member Functions inherited from llvm::Pass | |
| Pass (PassKind K, char &pid) | |
| Pass (const Pass &)=delete | |
| Pass & | operator= (const Pass &)=delete | 
| virtual | ~Pass () | 
| PassKind | getPassKind () const | 
| StringRef | getPassArgument () const | 
| Return a nice clean name for a pass corresponding to that used to enable the pass in opt.   | |
| AnalysisID | getPassID () const | 
| getPassID - Return the PassID number that corresponds to this pass.   | |
| virtual bool | doFinalization (Module &) | 
| doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes have run.   | |
| virtual void | print (raw_ostream &OS, const Module *M) const | 
| print - Print out the internal state of the pass.   | |
| void | dump () const | 
| virtual void | preparePassManager (PMStack &) | 
| Check if available pass managers are suitable for this pass or not.   | |
| void | setResolver (AnalysisResolver *AR) | 
| AnalysisResolver * | getResolver () const | 
| virtual void | releaseMemory () | 
| releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed.   | |
| virtual ImmutablePass * | getAsImmutablePass () | 
| virtual PMDataManager * | getAsPMDataManager () | 
| virtual void | verifyAnalysis () const | 
| verifyAnalysis() - This member can be implemented by a analysis pass to check state of analysis information.   | |
| virtual void | dumpPassStructure (unsigned Offset=0) | 
| template<typename AnalysisType> | |
| AnalysisType * | getAnalysisIfAvailable () const | 
| getAnalysisIfAvailable<AnalysisType>() - Subclasses use this function to get analysis information that might be around, for example to update it.   | |
| bool | mustPreserveAnalysisID (char &AID) const | 
| mustPreserveAnalysisID - This method serves the same function as getAnalysisIfAvailable, but works if you just have an AnalysisID.   | |
| template<typename AnalysisType> | |
| AnalysisType & | getAnalysis () const | 
| getAnalysis<AnalysisType>() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function.   | |
| template<typename AnalysisType> | |
| AnalysisType & | getAnalysis (Function &F, bool *Changed=nullptr) | 
| getAnalysis<AnalysisType>() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function.   | |
| template<typename AnalysisType> | |
| AnalysisType & | getAnalysisID (AnalysisID PI) const | 
| template<typename AnalysisType> | |
| AnalysisType & | getAnalysisID (AnalysisID PI, Function &F, bool *Changed=nullptr) | 
Static Public Member Functions | |
| static MFResult | legalizeMachineFunction (MachineFunction &MF, const LegalizerInfo &LI, ArrayRef< GISelChangeObserver * > AuxObservers, LostDebugLocObserver &LocObserver, MachineIRBuilder &MIRBuilder, GISelValueTracking *VT) | 
| Static Public Member Functions inherited from llvm::Pass | |
| static const PassInfo * | lookupPassInfo (const void *TI) | 
| static const PassInfo * | lookupPassInfo (StringRef Arg) | 
| static Pass * | createPass (AnalysisID ID) | 
Static Public Attributes | |
| static char | ID = 0 | 
Additional Inherited Members | |
| Protected Member Functions inherited from llvm::MachineFunctionPass | |
| MachineFunctionPass (char &ID) | |
| void | getAnalysisUsage (AnalysisUsage &AU) const override | 
| getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.   | |
| Protected Member Functions inherited from llvm::FunctionPass | |
| bool | skipFunction (const Function &F) const | 
| Optional passes call this function to check whether the pass should be skipped.   | |
Definition at line 38 of file Legalizer.h.
Definition at line 83 of file Legalizer.cpp.
References ID, Legalizer(), and llvm::MachineFunctionPass::MachineFunctionPass().
Referenced by Legalizer().
      
  | 
  overridevirtual | 
getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job.
If a pass specifies that it uses a particular analysis result to this function, it can then use the getAnalysis<AnalysisType>() function, below.
Reimplemented from llvm::Pass.
Definition at line 85 of file Legalizer.cpp.
References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addRequired(), getAnalysisUsage(), llvm::MachineFunctionPass::getAnalysisUsage(), and llvm::getSelectionDAGFallbackAnalysisUsage().
Referenced by getAnalysisUsage().
      
  | 
  inlineoverridevirtual | 
Reimplemented from llvm::MachineFunctionPass.
Definition at line 67 of file Legalizer.h.
      
  | 
  inlineoverridevirtual | 
getPassName - Return a nice clean name for a pass.
This usually implemented in terms of the name that is registered by one of the Registration templates, but can be overloaded directly.
Reimplemented from llvm::Pass.
Definition at line 55 of file Legalizer.h.
      
  | 
  inlineoverridevirtual | 
Reimplemented from llvm::MachineFunctionPass.
Definition at line 59 of file Legalizer.h.
      
  | 
  inlineoverridevirtual | 
Reimplemented from llvm::MachineFunctionPass.
Definition at line 63 of file Legalizer.h.
      
  | 
  static | 
Definition at line 176 of file Legalizer.cpp.
References llvm::GISelObserverWrapper::addObserver(), assert(), Changed, llvm::LostDebugLocObserver::checkpoint(), llvm::dbgs(), llvm::GISelWorkList< N >::deferred_insert(), llvm::GISelWorkList< N >::empty(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::eraseInstr(), llvm::eraseInstrs(), llvm::GISelWorkList< N >::finalize(), llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::MachineFunction::getRegInfo(), llvm::GISelWorkList< N >::insert(), isArtifact(), llvm::isPreISelGenericOpcode(), llvm::isTriviallyDead(), LegalizationsAndArtifactCombiners, llvm::LegalizerHelper::Legalized, llvm::LegalizerHelper::legalizeInstrStep(), LLVM_DEBUG, MBB, MI, llvm::LegalizerHelper::MIRBuilder, MRI, llvm::GISelWorkList< N >::pop_back_val(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::salvageDebugInfo(), llvm::MachineIRBuilder::setMF(), llvm::GISelWorkList< N >::size(), llvm::MachineIRBuilder::stopObservingChanges(), llvm::LegalizationArtifactCombiner::tryCombineInstruction(), llvm::LegalizerHelper::UnableToLegalize, and VerifyDebugLocs.
Referenced by runOnMachineFunction().
      
  | 
  overridevirtual | 
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformation or analysis.
Implements llvm::MachineFunctionPass.
Definition at line 309 of file Legalizer.cpp.
References assert(), llvm::MachineFunction::begin(), llvm::dbgs(), DEBUG_TYPE, EnableCSEInLegalizer, llvm::errorToBool(), llvm::Pass::getAnalysis(), llvm::TargetPassConfig::getCSEConfig(), llvm::MachineFunction::getFunction(), llvm::TargetSubtargetInfo::getLegalizerInfo(), llvm::MachineFunction::getName(), llvm::LostDebugLocObserver::getNumLostDebugLocs(), llvm::MachineFunction::getProperties(), llvm::Function::getSubprogram(), llvm::MachineFunction::getSubtarget(), llvm::TargetPassConfig::isGISelCSEEnabled(), legalizeMachineFunction(), LLVM_DEBUG, MORE, None, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::reportGISelFailure(), llvm::reportGISelWarning(), llvm::GISelCSEInfo::verify(), VerifyDebugLocs, and Wrapper.
      
  | 
  static | 
Definition at line 40 of file Legalizer.h.
Referenced by Legalizer().