LLVM
15.0.0git
|
#include "llvm/CodeGen/GlobalISel/IRTranslator.h"
Public Member Functions | |
IRTranslator (CodeGenOpt::Level OptLevel=CodeGenOpt::None) | |
StringRef | getPassName () const override |
getPassName - Return a nice clean name for a pass. More... | |
void | getAnalysisUsage (AnalysisUsage &AU) const override |
getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job. More... | |
bool | runOnMachineFunction (MachineFunction &MF) override |
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformation or analysis. More... | |
![]() | |
bool | doInitialization (Module &) override |
doInitialization - Virtual method overridden by subclasses to do any necessary initialization before any pass is run. More... | |
![]() | |
FunctionPass (char &pid) | |
Pass * | createPrinterPass (raw_ostream &OS, const std::string &Banner) const override |
createPrinterPass - Get a function printer pass. More... | |
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. More... | |
PassManagerType | getPotentialPassManagerType () const override |
Return what kind of Pass Manager can manage this pass. More... | |
![]() | |
Pass (PassKind K, char &pid) | |
Pass (const Pass &)=delete | |
Pass & | operator= (const Pass &)=delete |
virtual | ~Pass () |
PassKind | getPassKind () const |
AnalysisID | getPassID () const |
getPassID - Return the PassID number that corresponds to this pass. More... | |
virtual bool | doFinalization (Module &) |
doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes have run. More... | |
virtual void | print (raw_ostream &OS, const Module *M) const |
print - Print out the internal state of the pass. More... | |
void | dump () const |
virtual void | preparePassManager (PMStack &) |
Check if available pass managers are suitable for this pass or not. More... | |
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. More... | |
virtual void * | getAdjustedAnalysisPointer (AnalysisID ID) |
getAdjustedAnalysisPointer - This method is used when a pass implements an analysis interface through multiple inheritance. More... | |
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. More... | |
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. More... | |
bool | mustPreserveAnalysisID (char &AID) const |
mustPreserveAnalysisID - This method serves the same function as getAnalysisIfAvailable, but works if you just have an AnalysisID. More... | |
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. More... | |
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. More... | |
template<typename AnalysisType > | |
AnalysisType & | getAnalysisID (AnalysisID PI) const |
template<typename AnalysisType > | |
AnalysisType & | getAnalysisID (AnalysisID PI, Function &F, bool *Changed=nullptr) |
Static Public Attributes | |
static char | ID = 0 |
Additional Inherited Members | |
![]() | |
static const PassInfo * | lookupPassInfo (const void *TI) |
static const PassInfo * | lookupPassInfo (StringRef Arg) |
static Pass * | createPass (AnalysisID ID) |
![]() | |
MachineFunctionPass (char &ID) | |
void | getAnalysisUsage (AnalysisUsage &AU) const override |
getAnalysisUsage - Subclasses that override getAnalysisUsage must call this. More... | |
virtual MachineFunctionProperties | getRequiredProperties () const |
virtual MachineFunctionProperties | getSetProperties () const |
virtual MachineFunctionProperties | getClearedProperties () const |
![]() | |
bool | skipFunction (const Function &F) const |
Optional passes call this function to check whether the pass should be skipped. More... | |
Definition at line 62 of file IRTranslator.h.
IRTranslator::IRTranslator | ( | CodeGenOpt::Level | OptLevel = CodeGenOpt::None | ) |
Definition at line 124 of file IRTranslator.cpp.
|
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 165 of file IRTranslator.cpp.
References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addRequired(), llvm::MachineFunctionPass::getAnalysisUsage(), llvm::getSelectionDAGFallbackAnalysisUsage(), and llvm::CodeGenOpt::None.
|
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 709 of file IRTranslator.h.
|
overridevirtual |
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformation or analysis.
Implements llvm::MachineFunctionPass.
Definition at line 3317 of file IRTranslator.cpp.
References llvm::MachineBasicBlock::addLiveIn(), llvm::GISelObserverWrapper::addObserver(), Arg, assert(), BB, llvm::MachineBasicBlock::begin(), llvm::FunctionLoweringInfo::BPI, llvm::FunctionLoweringInfo::CanLowerReturn, checkForMustTailInVarArgFn(), llvm::CallLowering::checkReturnTypeForCallConv(), llvm::StackProtector::copyToMachineFrameInfo(), llvm::SwiftErrorValueTracking::createEntriesInEntryBlock(), llvm::MachineFunction::CreateMachineBasicBlock(), llvm::MachineFunction::deleteMachineBasicBlock(), llvm::CallLowering::enableBigEndian(), EnableCSEInIRTranslator, F, llvm::CallLowering::fallBackToDAGISel(), llvm::MachineFunction::front(), llvm::TargetSubtargetInfo::getCallLowering(), llvm::TargetPassConfig::getCSEConfig(), llvm::Instruction::getDebugLoc(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::SwiftErrorValueTracking::getFunctionArg(), llvm::cl::Option::getNumOccurrences(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::getTarget(), llvm::TargetSubtargetInfo::getTargetLowering(), llvm::DataLayout::getTypeStoreSize(), llvm::TargetPassConfig::isGISelCSEEnabled(), llvm::DataLayout::isLittleEndian(), llvm::UnivariateLinearPolyBase< LeafTy >::isZero(), llvm::CallLowering::lowerFormalArguments(), llvm::make_scope_exit(), MBB, llvm::FunctionLoweringInfo::MF, llvm::CodeGenOpt::None, llvm::MachineBasicBlock::pred_size(), llvm::SwiftErrorValueTracking::propagateVRegs(), llvm::MachineFunction::push_back(), llvm::MachineFunction::remove(), llvm::GISelObserverWrapper::removeObserver(), reportTranslationError(), llvm::SwiftErrorValueTracking::setCurrentVReg(), llvm::SwiftErrorValueTracking::setFunction(), llvm::MachineBasicBlock::setHasAddressTaken(), llvm::MachineFrameInfo::setHasMustTailInVarArgFunc(), llvm::ArrayRef< T >::size(), llvm::FunctionPass::skipFunction(), llvm::MachineBasicBlock::sortUniqueLiveIns(), llvm::MachineBasicBlock::splice(), llvm::raw_string_ostream::str(), llvm::MachineBasicBlock::succ_begin(), TM, Verifier, and Wrapper.
|
static |
Definition at line 64 of file IRTranslator.h.