|
LLVM
4.0.0
|
#include <MachineFunction.h>
Classes | |
| struct | VariableDbgInfo |
Public Types | |
| typedef SmallVector < VariableDbgInfo, 4 > | VariableDbgInfoMapTy |
| typedef BasicBlockListType::iterator | iterator |
| typedef BasicBlockListType::const_iterator | const_iterator |
| typedef BasicBlockListType::const_reverse_iterator | const_reverse_iterator |
| typedef BasicBlockListType::reverse_iterator | reverse_iterator |
| typedef ArrayRecycler < MachineOperand >::Capacity | OperandCapacity |
Public Member Functions | |
| MachineFunction (const Function *Fn, const TargetMachine &TM, unsigned FunctionNum, MachineModuleInfo &MMI) | |
| ~MachineFunction () | |
| void | reset () |
| Reset the instance as if it was just created. More... | |
| MachineModuleInfo & | getMMI () const |
| MCContext & | getContext () const |
| PseudoSourceValueManager & | getPSVManager () const |
| const DataLayout & | getDataLayout () const |
| Return the DataLayout attached to the Module associated to this MF. More... | |
| const Function * | getFunction () const |
| getFunction - Return the LLVM function that this machine code represents More... | |
| StringRef | getName () const |
| getName - Return the name of the corresponding LLVM function. More... | |
| unsigned | getFunctionNumber () const |
| getFunctionNumber - Return a unique ID for the current function. More... | |
| const TargetMachine & | getTarget () const |
| getTarget - Return the target machine this machine code is compiled with More... | |
| const TargetSubtargetInfo & | getSubtarget () const |
| getSubtarget - Return the subtarget for which this machine code is being compiled. More... | |
| void | setSubtarget (const TargetSubtargetInfo *ST) |
| template<typename STC > | |
| const STC & | getSubtarget () const |
| getSubtarget - This method returns a pointer to the specified type of TargetSubtargetInfo. More... | |
| MachineRegisterInfo & | getRegInfo () |
| getRegInfo - Return information about the registers currently in use. More... | |
| const MachineRegisterInfo & | getRegInfo () const |
| MachineFrameInfo & | getFrameInfo () |
| getFrameInfo - Return the frame info object for the current function. More... | |
| const MachineFrameInfo & | getFrameInfo () const |
| const MachineJumpTableInfo * | getJumpTableInfo () const |
| getJumpTableInfo - Return the jump table info object for the current function. More... | |
| MachineJumpTableInfo * | getJumpTableInfo () |
| MachineJumpTableInfo * | getOrCreateJumpTableInfo (unsigned JTEntryKind) |
| getOrCreateJumpTableInfo - Get the JumpTableInfo for this function, if it does already exist, allocate one. More... | |
| MachineConstantPool * | getConstantPool () |
| getConstantPool - Return the constant pool object for the current function. More... | |
| const MachineConstantPool * | getConstantPool () const |
| const WinEHFuncInfo * | getWinEHFuncInfo () const |
| getWinEHFuncInfo - Return information about how the current function uses Windows exception handling. More... | |
| WinEHFuncInfo * | getWinEHFuncInfo () |
| unsigned | getAlignment () const |
| getAlignment - Return the alignment (log2, not bytes) of the function. More... | |
| void | setAlignment (unsigned A) |
| setAlignment - Set the alignment (log2, not bytes) of the function. More... | |
| void | ensureAlignment (unsigned A) |
| ensureAlignment - Make sure the function is at least 1 << A bytes aligned. More... | |
| bool | exposesReturnsTwice () const |
| exposesReturnsTwice - Returns true if the function calls setjmp or any other similar functions with attribute "returns twice" without having the attribute itself. More... | |
| void | setExposesReturnsTwice (bool B) |
| setCallsSetJmp - Set a flag that indicates if there's a call to a "returns twice" function. More... | |
| bool | hasInlineAsm () const |
| Returns true if the function contains any inline assembly. More... | |
| void | setHasInlineAsm (bool B) |
| Set a flag that indicates that the function contains inline assembly. More... | |
| bool | hasWinCFI () const |
| void | setHasWinCFI (bool v) |
| const MachineFunctionProperties & | getProperties () const |
| Get the function properties. More... | |
| MachineFunctionProperties & | getProperties () |
| template<typename Ty > | |
| Ty * | getInfo () |
| getInfo - Keep track of various per-function pieces of information for backends that would like to do so. More... | |
| template<typename Ty > | |
| const Ty * | getInfo () const |
| MachineBasicBlock * | getBlockNumbered (unsigned N) const |
| getBlockNumbered - MachineBasicBlocks are automatically numbered when they are inserted into the machine function. More... | |
| bool | shouldSplitStack () const |
| Should we be emitting segmented stack stuff for the function. More... | |
| unsigned | getNumBlockIDs () const |
| getNumBlockIDs - Return the number of MBB ID's allocated. More... | |
| void | RenumberBlocks (MachineBasicBlock *MBBFrom=nullptr) |
| RenumberBlocks - This discards all of the MachineBasicBlock numbers and recomputes them. More... | |
| void | print (raw_ostream &OS, const SlotIndexes *=nullptr) const |
| print - Print out the MachineFunction in a format suitable for debugging to the specified stream. More... | |
| void | viewCFG () const |
| viewCFG - This function is meant for use from the debugger. More... | |
| void | viewCFGOnly () const |
| viewCFGOnly - This function is meant for use from the debugger. More... | |
| void | dump () const |
| dump - Print the current MachineFunction to cerr, useful for debugger use. More... | |
| bool | verify (Pass *p=nullptr, const char *Banner=nullptr, bool AbortOnError=true) const |
| Run the current MachineFunction through the machine code verifier, useful for debugger use. More... | |
| unsigned | addLiveIn (unsigned PReg, const TargetRegisterClass *RC) |
| addLiveIn - Add the specified physical register as a live-in value and create a corresponding virtual register for it. More... | |
| iterator | begin () |
| const_iterator | begin () const |
| iterator | end () |
| const_iterator | end () const |
| reverse_iterator | rbegin () |
| const_reverse_iterator | rbegin () const |
| reverse_iterator | rend () |
| const_reverse_iterator | rend () const |
| unsigned | size () const |
| bool | empty () const |
| const MachineBasicBlock & | front () const |
| MachineBasicBlock & | front () |
| const MachineBasicBlock & | back () const |
| MachineBasicBlock & | back () |
| void | push_back (MachineBasicBlock *MBB) |
| void | push_front (MachineBasicBlock *MBB) |
| void | insert (iterator MBBI, MachineBasicBlock *MBB) |
| void | splice (iterator InsertPt, iterator MBBI) |
| void | splice (iterator InsertPt, MachineBasicBlock *MBB) |
| void | splice (iterator InsertPt, iterator MBBI, iterator MBBE) |
| void | remove (iterator MBBI) |
| void | remove (MachineBasicBlock *MBBI) |
| void | erase (iterator MBBI) |
| void | erase (MachineBasicBlock *MBBI) |
| template<typename Comp > | |
| void | sort (Comp comp) |
| unsigned | addToMBBNumbering (MachineBasicBlock *MBB) |
| Adds the MBB to the internal numbering. More... | |
| void | removeFromMBBNumbering (unsigned N) |
| removeFromMBBNumbering - Remove the specific machine basic block from our tracker, this is only really to be used by the MachineBasicBlock implementation. More... | |
| MachineInstr * | CreateMachineInstr (const MCInstrDesc &MCID, const DebugLoc &DL, bool NoImp=false) |
| CreateMachineInstr - Allocate a new MachineInstr. More... | |
| MachineInstr * | CloneMachineInstr (const MachineInstr *Orig) |
| CloneMachineInstr - Create a new MachineInstr which is a copy of the 'Orig' instruction, identical in all ways except the instruction has no parent, prev, or next. More... | |
| void | DeleteMachineInstr (MachineInstr *MI) |
| DeleteMachineInstr - Delete the given MachineInstr. More... | |
| MachineBasicBlock * | CreateMachineBasicBlock (const BasicBlock *bb=nullptr) |
| CreateMachineBasicBlock - Allocate a new MachineBasicBlock. More... | |
| void | DeleteMachineBasicBlock (MachineBasicBlock *MBB) |
| DeleteMachineBasicBlock - Delete the given MachineBasicBlock. More... | |
| MachineMemOperand * | getMachineMemOperand (MachinePointerInfo PtrInfo, MachineMemOperand::Flags f, uint64_t s, unsigned base_alignment, const AAMDNodes &AAInfo=AAMDNodes(), const MDNode *Ranges=nullptr, SynchronizationScope SynchScope=CrossThread, AtomicOrdering Ordering=AtomicOrdering::NotAtomic, AtomicOrdering FailureOrdering=AtomicOrdering::NotAtomic) |
| getMachineMemOperand - Allocate a new MachineMemOperand. More... | |
| MachineMemOperand * | getMachineMemOperand (const MachineMemOperand *MMO, int64_t Offset, uint64_t Size) |
| getMachineMemOperand - Allocate a new MachineMemOperand by copying an existing one, adjusting by an offset and using the given size. More... | |
| MachineOperand * | allocateOperandArray (OperandCapacity Cap) |
| Allocate an array of MachineOperands. More... | |
| void | deallocateOperandArray (OperandCapacity Cap, MachineOperand *Array) |
| Dellocate an array of MachineOperands and recycle the memory. More... | |
| uint32_t * | allocateRegisterMask (unsigned NumRegister) |
Allocate and initialize a register mask with NumRegister bits. More... | |
| MachineInstr::mmo_iterator | allocateMemRefsArray (unsigned long Num) |
| allocateMemRefsArray - Allocate an array to hold MachineMemOperand pointers. More... | |
| std::pair < MachineInstr::mmo_iterator, MachineInstr::mmo_iterator > | extractLoadMemRefs (MachineInstr::mmo_iterator Begin, MachineInstr::mmo_iterator End) |
| extractLoadMemRefs - Allocate an array and populate it with just the load information from the given MachineMemOperand sequence. More... | |
| std::pair < MachineInstr::mmo_iterator, MachineInstr::mmo_iterator > | extractStoreMemRefs (MachineInstr::mmo_iterator Begin, MachineInstr::mmo_iterator End) |
| extractStoreMemRefs - Allocate an array and populate it with just the store information from the given MachineMemOperand sequence. More... | |
| const char * | createExternalSymbolName (StringRef Name) |
| Allocate a string and populate it with the given external symbol name. More... | |
| MCSymbol * | getJTISymbol (unsigned JTI, MCContext &Ctx, bool isLinkerPrivate=false) const |
| getJTISymbol - Return the MCSymbol for the specified non-empty jump table. More... | |
| MCSymbol * | getPICBaseSymbol () const |
| getPICBaseSymbol - Return a function-local symbol to represent the PIC base. More... | |
| const std::vector < MCCFIInstruction > & | getFrameInstructions () const |
| Returns a reference to a list of cfi instructions in the function's prologue. More... | |
| LLVM_NODISCARD unsigned | addFrameInst (const MCCFIInstruction &Inst) |
| void | setVariableDbgInfo (const DILocalVariable *Var, const DIExpression *Expr, unsigned Slot, const DILocation *Loc) |
| Collect information used to emit debugging information of a variable. More... | |
| VariableDbgInfoMapTy & | getVariableDbgInfo () |
| const VariableDbgInfoMapTy & | getVariableDbgInfo () const |
Static Public Member Functions | |
| static BasicBlockListType MachineFunction::* | getSublistAccess (MachineBasicBlock *) |
| Support for MachineBasicBlock::getNextNode(). More... | |
Public Attributes | |
| VariableDbgInfoMapTy | VariableDbgInfos |
Exception Handling | |
| bool | callsEHReturn () const |
| void | setCallsEHReturn (bool b) |
| bool | callsUnwindInit () const |
| void | setCallsUnwindInit (bool b) |
| bool | hasEHFunclets () const |
| void | setHasEHFunclets (bool V) |
| LandingPadInfo & | getOrCreateLandingPadInfo (MachineBasicBlock *LandingPad) |
| Find or create an LandingPadInfo for the specified MachineBasicBlock. More... | |
| void | tidyLandingPads (DenseMap< MCSymbol *, uintptr_t > *LPMap=nullptr) |
| Remap landing pad labels and remove any deleted landing pads. More... | |
| const std::vector < LandingPadInfo > & | getLandingPads () const |
| Return a reference to the landing pad info for the current function. More... | |
| void | addInvoke (MachineBasicBlock *LandingPad, MCSymbol *BeginLabel, MCSymbol *EndLabel) |
| Provide the begin and end labels of an invoke style call and associate it with a try landing pad block. More... | |
| MCSymbol * | addLandingPad (MachineBasicBlock *LandingPad) |
| Add a new panding pad. Returns the label ID for the landing pad entry. More... | |
| void | addCatchTypeInfo (MachineBasicBlock *LandingPad, ArrayRef< const GlobalValue * > TyInfo) |
| Provide the catch typeinfo for a landing pad. More... | |
| void | addFilterTypeInfo (MachineBasicBlock *LandingPad, ArrayRef< const GlobalValue * > TyInfo) |
| Provide the filter typeinfo for a landing pad. More... | |
| void | addCleanup (MachineBasicBlock *LandingPad) |
| Add a cleanup action for a landing pad. More... | |
| void | addSEHCatchHandler (MachineBasicBlock *LandingPad, const Function *Filter, const BlockAddress *RecoverLabel) |
| void | addSEHCleanupHandler (MachineBasicBlock *LandingPad, const Function *Cleanup) |
| unsigned | getTypeIDFor (const GlobalValue *TI) |
| Return the type id for the specified typeinfo. This is function wide. More... | |
| int | getFilterIDFor (std::vector< unsigned > &TyIds) |
| Return the id of the filter encoded by TyIds. This is function wide. More... | |
| void | setCallSiteLandingPad (MCSymbol *Sym, ArrayRef< unsigned > Sites) |
| Map the landing pad's EH symbol to the call site indexes. More... | |
| SmallVectorImpl< unsigned > & | getCallSiteLandingPad (MCSymbol *Sym) |
| Get the call site indexes for a landing pad EH symbol. More... | |
| bool | hasCallSiteLandingPad (MCSymbol *Sym) |
| Return true if the landing pad Eh symbol has an associated call site. More... | |
| void | setCallSiteBeginLabel (MCSymbol *BeginLabel, unsigned Site) |
| Map the begin label for a call site. More... | |
| unsigned | getCallSiteBeginLabel (MCSymbol *BeginLabel) const |
| Get the call site number for a begin label. More... | |
| bool | hasCallSiteBeginLabel (MCSymbol *BeginLabel) const |
| Return true if the begin label has a call site number associated with it. More... | |
| const std::vector< const GlobalValue * > & | getTypeInfos () const |
| Return a reference to the C++ typeinfo for the current function. More... | |
| const std::vector< unsigned > & | getFilterIds () const |
| Return a reference to the typeids encoding filters used in the current function. More... | |
Definition at line 197 of file MachineFunction.h.
Definition at line 533 of file MachineFunction.h.
Definition at line 534 of file MachineFunction.h.
Definition at line 532 of file MachineFunction.h.
| typedef ArrayRecycler<MachineOperand>::Capacity llvm::MachineFunction::OperandCapacity |
Definition at line 657 of file MachineFunction.h.
Definition at line 535 of file MachineFunction.h.
Definition at line 331 of file MachineFunction.h.
| MachineFunction::MachineFunction | ( | const Function * | Fn, |
| const TargetMachine & | TM, | ||
| unsigned | FunctionNum, | ||
| MachineModuleInfo & | MMI | ||
| ) |
Definition at line 100 of file MachineFunction.cpp.
| MachineFunction::~MachineFunction | ( | ) |
Definition at line 156 of file MachineFunction.cpp.
| void MachineFunction::addCatchTypeInfo | ( | MachineBasicBlock * | LandingPad, |
| ArrayRef< const GlobalValue * > | TyInfo | ||
| ) |
Provide the catch typeinfo for a landing pad.
Definition at line 601 of file MachineFunction.cpp.
References getOrCreateLandingPadInfo(), getTypeIDFor(), N, llvm::ArrayRef< T >::size(), and llvm::LandingPadInfo::TypeIds.
Referenced by llvm::addLandingPadInfo().
| void MachineFunction::addCleanup | ( | MachineBasicBlock * | LandingPad | ) |
Add a cleanup action for a landing pad.
Definition at line 661 of file MachineFunction.cpp.
References getOrCreateLandingPadInfo(), and llvm::LandingPadInfo::TypeIds.
Referenced by llvm::addLandingPadInfo().
| void MachineFunction::addFilterTypeInfo | ( | MachineBasicBlock * | LandingPad, |
| ArrayRef< const GlobalValue * > | TyInfo | ||
| ) |
Provide the filter typeinfo for a landing pad.
Definition at line 608 of file MachineFunction.cpp.
References E, getFilterIDFor(), getOrCreateLandingPadInfo(), getTypeIDFor(), I, llvm::ArrayRef< T >::size(), and llvm::LandingPadInfo::TypeIds.
Referenced by llvm::addLandingPadInfo().
|
inline |
Definition at line 723 of file MachineFunction.h.
Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::BuildCFI(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), EmitCfiOffset(), EmitDefCfaOffset(), EmitDefCfaRegister(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), and llvm::PPCFrameLowering::emitPrologue().
| void MachineFunction::addInvoke | ( | MachineBasicBlock * | LandingPad, |
| MCSymbol * | BeginLabel, | ||
| MCSymbol * | EndLabel | ||
| ) |
Provide the begin and end labels of an invoke style call and associate it with a try landing pad block.
Definition at line 587 of file MachineFunction.cpp.
References llvm::LandingPadInfo::BeginLabels, llvm::LandingPadInfo::EndLabels, and getOrCreateLandingPadInfo().
Referenced by llvm::SelectionDAGBuilder::lowerInvokable().
| MCSymbol * MachineFunction::addLandingPad | ( | MachineBasicBlock * | LandingPad | ) |
Add a new panding pad. Returns the label ID for the landing pad entry.
Definition at line 594 of file MachineFunction.cpp.
References llvm::MCContext::createTempSymbol(), getOrCreateLandingPadInfo(), and llvm::LandingPadInfo::LandingPadLabel.
| unsigned MachineFunction::addLiveIn | ( | unsigned | PReg, |
| const TargetRegisterClass * | RC | ||
| ) |
addLiveIn - Add the specified physical register as a live-in value and create a corresponding virtual register for it.
Add the specified physical register as a live-in value and create a corresponding virtual register for it.
Definition at line 525 of file MachineFunction.cpp.
References llvm::MachineRegisterInfo::addLiveIn(), assert(), llvm::TargetRegisterClass::contains(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineRegisterInfo::getLiveInVirtReg(), llvm::MachineRegisterInfo::getRegClass(), getRegInfo(), llvm::TargetRegisterClass::hasSubClassEq(), and MRI.
Referenced by llvm::CCState::analyzeMustTailForwardedRegisters(), getv64i1Argument(), llvm::SITargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::LanaiTargetLowering::LowerRETURNADDR(), llvm::HexagonTargetLowering::LowerRETURNADDR(), and LowerRETURNADDR().
| void MachineFunction::addSEHCatchHandler | ( | MachineBasicBlock * | LandingPad, |
| const Function * | Filter, | ||
| const BlockAddress * | RecoverLabel | ||
| ) |
Definition at line 666 of file MachineFunction.cpp.
References llvm::Filter, llvm::SEHHandler::FilterOrFinally, getOrCreateLandingPadInfo(), llvm::SEHHandler::RecoverBA, and llvm::LandingPadInfo::SEHHandlers.
| void MachineFunction::addSEHCleanupHandler | ( | MachineBasicBlock * | LandingPad, |
| const Function * | Cleanup | ||
| ) |
Definition at line 676 of file MachineFunction.cpp.
References llvm::SEHHandler::FilterOrFinally, getOrCreateLandingPadInfo(), llvm::SEHHandler::RecoverBA, and llvm::LandingPadInfo::SEHHandlers.
|
inline |
Adds the MBB to the internal numbering.
Returns the unique number assigned to the MBB.
Definition at line 599 of file MachineFunction.h.
| MachineInstr::mmo_iterator MachineFunction::allocateMemRefsArray | ( | unsigned long | Num | ) |
allocateMemRefsArray - Allocate an array to hold MachineMemOperand pointers.
This array is owned by the MachineFunction.
Definition at line 336 of file MachineFunction.cpp.
References llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Allocate().
Referenced by llvm::MachineInstr::addMemOperand(), extractLoadMemRefs(), extractStoreMemRefs(), getLoadStackGuard(), llvm::MachineInstr::mergeMemRefsWith(), ReplaceCMP_SWAP_128Results(), ReplaceCMP_SWAP_64Results(), and llvm::SelectionDAGISel::SelectCodeCommon().
|
inline |
Allocate an array of MachineOperands.
This is only intended for use by internal MachineInstr functions.
Definition at line 661 of file MachineFunction.h.
References llvm::ArrayRecycler< T, Align >::allocate().
Allocate and initialize a register mask with NumRegister bits.
Definition at line 673 of file MachineFunction.h.
References llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Allocate(), i, and llvm::BitmaskEnumDetail::Mask().
|
inline |
Definition at line 564 of file MachineFunction.h.
Referenced by MaybeRewriteToFallthrough().
|
inline |
Definition at line 565 of file MachineFunction.h.
|
inline |
Definition at line 550 of file MachineFunction.h.
Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::DwarfCFIException::beginFunction(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::finalizeBundles(), llvm::HexagonInstrInfo::genAllInsnTimingClasses(), getBBFallenThrough(), llvm::SIMachineFunctionInfo::getSpilledReg(), llvm::MachineLoop::getTopBlock(), HandleVRSaveUpdate(), INITIALIZE_PASS(), isIrreducibleCFG(), llvm::GraphTraits< MachineBlockFrequencyInfo * >::nodes_begin(), llvm::GraphTraits< MachineFunction * >::nodes_begin(), llvm::GraphTraits< const MachineFunction * >::nodes_begin(), RemoveVRSaveCode(), RenumberBlocks(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::BitTracker::run(), llvm::InsertNOPLoad::runOnMachineFunction(), llvm::FixFSMULD::runOnMachineFunction(), llvm::ReplaceFMULS::runOnMachineFunction(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::FixAllFDIVSQRT::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::TailDuplicator::tailDuplicateBlocks(), verifyCTRBranch(), and llvm::VerifyPHIs().
|
inline |
Definition at line 551 of file MachineFunction.h.
|
inline |
Definition at line 731 of file MachineFunction.h.
Referenced by llvm::XCoreFrameLowering::determineCalleeSaves(), findDeadCallerSavedReg(), llvm::X86RegisterInfo::getCalleeSavedRegs(), and llvm::X86FrameLowering::hasFP().
|
inline |
Definition at line 734 of file MachineFunction.h.
Referenced by llvm::XCoreFrameLowering::determineCalleeSaves(), llvm::TargetFrameLowering::determineCalleeSaves(), and llvm::X86FrameLowering::hasFP().
| MachineInstr * MachineFunction::CloneMachineInstr | ( | const MachineInstr * | Orig | ) |
CloneMachineInstr - Create a new MachineInstr which is a copy of the 'Orig' instruction, identical in all ways except the instruction has no parent, prev, or next.
Create a new MachineInstr which is a copy of the 'Orig' instruction, identical in all ways except the instruction has no parent, prev, or next.
See also TargetInstrInfo::duplicate() for target-specific fixes to cloned instructions.
Definition at line 270 of file MachineFunction.cpp.
Referenced by llvm::TargetInstrInfo::commuteInstructionImpl(), llvm::SystemZInstrInfo::commuteInstructionImpl(), llvm::X86InstrInfo::commuteInstructionImpl(), llvm::TargetInstrInfo::duplicate(), insertDelayFiller(), llvm::ARMBaseInstrInfo::reMaterialize(), llvm::X86InstrInfo::reMaterialize(), and llvm::TargetInstrInfo::reMaterialize().
Allocate a string and populate it with the given external symbol name.
Definition at line 408 of file MachineFunction.cpp.
References llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Allocate(), llvm::StringRef::begin(), llvm::StringRef::end(), and llvm::StringRef::size().
Referenced by addAsmInstr(), llvm::WebAssemblyFrameLowering::emitPrologue(), and writeSPToMemory().
| MachineBasicBlock * MachineFunction::CreateMachineBasicBlock | ( | const BasicBlock * | bb = nullptr | ) |
CreateMachineBasicBlock - Allocate a new MachineBasicBlock.
Allocate a new MachineBasicBlock.
Use this instead of `new MachineBasicBlock'.
Definition at line 294 of file MachineFunction.cpp.
Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::PPCTargetLowering::EmitAtomicBinary(), emitBlockAfter(), llvm::SparcTargetLowering::emitEHSjLjSetJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitXBegin(), llvm::SparcTargetLowering::expandSelectCC(), llvm::SelectionDAGBuilder::FindMergedConditions(), loadM0FromVGPR(), PlaceLoopMarker(), llvm::IRTranslator::runOnMachineFunction(), llvm::FunctionLoweringInfo::set(), llvm::MachineBasicBlock::SplitCriticalEdge(), and llvm::SITargetLowering::splitKillBlock().
| MachineInstr * MachineFunction::CreateMachineInstr | ( | const MCInstrDesc & | MCID, |
| const DebugLoc & | DL, | ||
| bool | NoImp = false |
||
| ) |
CreateMachineInstr - Allocate a new MachineInstr.
Allocate a new MachineInstr. Use this instead of `new MachineInstr'.
Use this instead of `new MachineInstr'.
Definition at line 260 of file MachineFunction.cpp.
Referenced by llvm::BuildMI(), llvm::SystemZInstrInfo::convertToThreeAddress(), foldPatchpoint(), FuseInst(), FuseTwoAddrInst(), llvm::HexagonHazardRecognizer::getHazardType(), and llvm::X86InstrInfo::unfoldMemoryOperand().
|
inline |
Dellocate an array of MachineOperands and recycle the memory.
This is only intended for use by internal MachineInstr functions. Cap must be the same capacity that was used to allocate the array.
Definition at line 668 of file MachineFunction.h.
References llvm::ArrayRecycler< T, Align >::deallocate().
Referenced by DeleteMachineInstr().
| void MachineFunction::DeleteMachineBasicBlock | ( | MachineBasicBlock * | MBB | ) |
DeleteMachineBasicBlock - Delete the given MachineBasicBlock.
Delete the given MachineBasicBlock.
Definition at line 301 of file MachineFunction.cpp.
References assert(), and llvm::MachineBasicBlock::getParent().
| void MachineFunction::DeleteMachineInstr | ( | MachineInstr * | MI | ) |
DeleteMachineInstr - Delete the given MachineInstr.
Delete the given MachineInstr.
This function also serves as the MachineInstr destructor - the real ~MachineInstr() destructor must be empty.
Definition at line 280 of file MachineFunction.cpp.
References deallocateOperandArray().
Referenced by llvm::HexagonHazardRecognizer::getHazardType(), and llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters().
| LLVM_DUMP_METHOD void MachineFunction::dump | ( | ) | const |
dump - Print the current MachineFunction to cerr, useful for debugger use.
Definition at line 416 of file MachineFunction.cpp.
References llvm::dbgs(), and print().
Referenced by llvm::A57ChainingConstraint::apply().
|
inline |
Definition at line 561 of file MachineFunction.h.
Referenced by llvm::rdf::DataFlowGraph::build(), llvm::MIRParserImpl::initializeMachineFunction(), and RenumberBlocks().
|
inline |
Definition at line 552 of file MachineFunction.h.
Referenced by BBHasFallthrough(), canFallThroughTo(), llvm::AVRFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::finalizeBundles(), FixTail(), llvm::MachineLoop::getBottomBlock(), getNextBlock(), llvm::SIMachineFunctionInfo::getSpilledReg(), HandleVRSaveUpdate(), INITIALIZE_PASS(), llvm::SlotIndexes::insertMBBInMaps(), jumpTableFollowsTB(), llvm::GraphTraits< MachineBlockFrequencyInfo * >::nodes_end(), llvm::GraphTraits< MachineFunction * >::nodes_end(), llvm::GraphTraits< const MachineFunction * >::nodes_end(), PlaceLoopMarker(), RemoveVRSaveCode(), RenumberBlocks(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::BitTracker::run(), llvm::InsertNOPLoad::runOnMachineFunction(), llvm::FixFSMULD::runOnMachineFunction(), llvm::ReplaceFMULS::runOnMachineFunction(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::FixAllFDIVSQRT::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::TailDuplicator::tailDuplicateBlocks(), and llvm::VerifyPHIs().
|
inline |
Definition at line 553 of file MachineFunction.h.
|
inline |
ensureAlignment - Make sure the function is at least 1 << A bytes aligned.
Definition at line 424 of file MachineFunction.h.
References A.
|
inline |
Definition at line 584 of file MachineFunction.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::erase().
Referenced by llvm::MachineBasicBlock::eraseFromParent().
|
inline |
Definition at line 585 of file MachineFunction.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::erase().
|
inline |
exposesReturnsTwice - Returns true if the function calls setjmp or any other similar functions with attribute "returns twice" without having the attribute itself.
Definition at line 431 of file MachineFunction.h.
Referenced by llvm::MIRPrinter::print().
| std::pair< MachineInstr::mmo_iterator, MachineInstr::mmo_iterator > MachineFunction::extractLoadMemRefs | ( | MachineInstr::mmo_iterator | Begin, |
| MachineInstr::mmo_iterator | End | ||
| ) |
extractLoadMemRefs - Allocate an array and populate it with just the load information from the given MachineMemOperand sequence.
Definition at line 341 of file MachineFunction.cpp.
References allocateMemRefsArray(), llvm::WebAssembly::End, getMachineMemOperand(), llvm::MachineMemOperand::getSize(), and I.
Referenced by llvm::X86InstrInfo::unfoldMemoryOperand().
| std::pair< MachineInstr::mmo_iterator, MachineInstr::mmo_iterator > MachineFunction::extractStoreMemRefs | ( | MachineInstr::mmo_iterator | Begin, |
| MachineInstr::mmo_iterator | End | ||
| ) |
extractStoreMemRefs - Allocate an array and populate it with just the store information from the given MachineMemOperand sequence.
Definition at line 375 of file MachineFunction.cpp.
References allocateMemRefsArray(), llvm::WebAssembly::End, getMachineMemOperand(), llvm::MachineMemOperand::getSize(), and I.
Referenced by llvm::X86InstrInfo::unfoldMemoryOperand().
|
inline |
Definition at line 562 of file MachineFunction.h.
Referenced by llvm::WinException::beginFunction(), llvm::SIInstrInfo::calculateLDSSpillAddress(), emitGPDisp(), llvm::Mips16FrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SIFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::LanaiFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), findScratchNonCalleeSaveRegister(), llvm::rdf::FuncNode::getEntryBlock(), llvm::GraphTraits< MachineBlockFrequencyInfo * >::getEntryNode(), llvm::GraphTraits< MachineFunction * >::getEntryNode(), llvm::GraphTraits< const MachineFunction * >::getEntryNode(), llvm::GraphTraits< Inverse< MachineFunction * > >::getEntryNode(), llvm::GraphTraits< Inverse< const MachineFunction * > >::getEntryNode(), llvm::getFuncletMembership(), llvm::SparcInstrInfo::getGlobalBaseReg(), llvm::LiveVariables::MarkVirtRegAliveInBlock(), PlaceBlockMarker(), PrevCrossBBInst(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), llvm::rdf::CopyPropagation::run(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::IRTranslator::runOnMachineFunction(), llvm::AVRDynAllocaSR::runOnMachineFunction(), llvm::Mips16FrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), and updateLiveness().
|
inline |
Definition at line 563 of file MachineFunction.h.
|
inline |
getAlignment - Return the alignment (log2, not bytes) of the function.
Definition at line 417 of file MachineFunction.h.
Referenced by llvm::WinException::beginFunclet(), llvm::MipsAsmPrinter::EmitFunctionEntryLabel(), and llvm::MIRPrinter::print().
|
inline |
getBlockNumbered - MachineBasicBlocks are automatically numbered when they are inserted into the machine function.
The block number for a machine basic block can be found by using the MBB::getBlockNumber method, this method provides the inverse mapping.
Definition at line 481 of file MachineFunction.h.
Referenced by llvm::BitTracker::run(), and llvm::SplitEditor::splitLiveThroughBlock().
Get the call site number for a begin label.
Definition at line 803 of file MachineFunction.h.
References assert(), and hasCallSiteBeginLabel().
Referenced by llvm::EHStreamer::computeCallSiteTable().
|
inline |
Get the call site indexes for a landing pad EH symbol.
Definition at line 786 of file MachineFunction.h.
References assert(), and hasCallSiteLandingPad().
|
inline |
getConstantPool - Return the constant pool object for the current function.
Definition at line 406 of file MachineFunction.h.
Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), duplicateCPV(), llvm::AsmPrinter::EmitConstantPool(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), emitThumb1LoadConstPool(), emitThumb2LoadConstPool(), llvm::X86InstrInfo::foldMemoryOperandImpl(), getConstantFromPool(), llvm::X86AsmPrinter::GetCPISymbol(), llvm::MIRParserImpl::initializeMachineFunction(), llvm::XCoreInstrInfo::loadImmediate(), llvm::MIRPrinter::print(), llvm::ARMBaseInstrInfo::produceSameValue(), llvm::ARMAsmPrinter::runOnMachineFunction(), and llvm::MipsAsmPrinter::runOnMachineFunction().
|
inline |
Definition at line 407 of file MachineFunction.h.
|
inline |
Definition at line 345 of file MachineFunction.h.
Referenced by llvm::MipsAsmPrinter::EmitFunctionBodyStart(), llvm::SystemZAsmPrinter::EmitInstruction(), llvm::PPCFunctionInfo::getGlobalEPSymbol(), llvm::PPCFunctionInfo::getLocalEPSymbol(), llvm::PPCFunctionInfo::getPICOffsetSymbol(), llvm::MachineBasicBlock::getSymbol(), llvm::PPCFunctionInfo::getTOCOffsetSymbol(), llvm::FastISel::lowerCallTo(), llvm::SystemZAsmPrinter::PrintAsmOperand(), and llvm::X86AsmPrinter::runOnMachineFunction().
| const DataLayout & MachineFunction::getDataLayout | ( | ) | const |
Return the DataLayout attached to the Module associated to this MF.
Definition at line 198 of file MachineFunction.cpp.
References llvm::Module::getDataLayout(), and llvm::GlobalValue::getParent().
Referenced by llvm::ScheduleDAGInstrs::addChainDependency(), llvm::X86TargetLowering::BuildFILD(), llvm::ScheduleDAGInstrs::buildSchedGraph(), canLowerToLDG(), llvm::CC_ARM_AAPCS_Custom_Aggregate(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), llvm::FunctionLoweringInfo::CreateRegs(), createSwiftErrorEntriesInEntryBlock(), llvm::SparcTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::SparcTargetLowering::emitEHSjLjSetJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::MipsAsmPrinter::EmitInstruction(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::TargetLoweringBase::emitPatchPoint(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86AsmPrinter::GetCPISymbol(), llvm::SelectionDAG::getDataLayout(), llvm::PPCFunctionInfo::getGlobalEPSymbol(), getJTISymbol(), llvm::PPCFunctionInfo::getLocalEPSymbol(), llvm::FunctionLoweringInfo::getOrCreateSwiftErrorVReg(), getPICBaseSymbol(), llvm::PPCFunctionInfo::getPICOffsetSymbol(), llvm::MSP430TargetLowering::getReturnAddressFrameIndex(), llvm::AsmPrinter::GetSizeOfEncodedValue(), llvm::TargetInstrInfo::getStackSlotRange(), llvm::PPCFunctionInfo::getTOCOffsetSymbol(), llvm::HexagonTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::ARMCallLowering::lowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::AsmPrinter::PrintSpecial(), propagateSwiftErrorVRegs(), and llvm::FunctionLoweringInfo::set().
| int MachineFunction::getFilterIDFor | ( | std::vector< unsigned > & | TyIds | ) |
Return the id of the filter encoded by TyIds. This is function wide.
Definition at line 698 of file MachineFunction.cpp.
Referenced by addFilterTypeInfo().
Return a reference to the typeids encoding filters used in the current function.
Definition at line 821 of file MachineFunction.h.
Referenced by llvm::EHStreamer::computeActionsTable(), llvm::EHStreamer::emitExceptionTable(), and llvm::EHStreamer::emitTypeInfos().
|
inline |
getFrameInfo - Return the frame info object for the current function.
This object contains information about objects allocated on the stack frame of the current function in an abstract way.
Definition at line 389 of file MachineFunction.h.
Referenced by llvm::addFrameReference(), llvm::RegsForValue::AddInlineAsmOperands(), llvm::LivePhysRegs::addLiveIns(), llvm::LivePhysRegs::addLiveOuts(), llvm::PPCFrameLowering::addScavengingSpillSlot(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::StatepointLoweringState::allocateStackSlot(), llvm::SelectionDAG::areNonVolatileConsecutiveLoads(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), assignCalleeSavedSpillSlots(), llvm::VirtRegMap::assignVirt2StackSlot(), llvm::X86TargetLowering::BuildFILD(), CalculateTailCallArgDest(), llvm::AArch64RegisterInfo::cannotEliminateFrame(), llvm::ARMBaseRegisterInfo::cannotEliminateFrame(), llvm::X86RegisterInfo::canRealignStack(), llvm::ARMFrameLowering::canSimplifyCallFramePseudos(), llvm::AArch64FrameLowering::canUseRedZone(), computeCalleeSaveRegisterPairs(), llvm::MIRPrinter::convertStackObjects(), llvm::MipsFunctionInfo::createEhDataRegsFI(), llvm::XCoreFunctionInfo::createEHSpillSlot(), llvm::XCoreFunctionInfo::createFPSpillSlot(), llvm::MipsFunctionInfo::createISRRegFI(), llvm::XCoreFunctionInfo::createLRSpillSlot(), llvm::SelectionDAG::CreateStackTemporary(), llvm::SystemZFrameLowering::determineCalleeSaves(), llvm::MipsSEFrameLowering::determineCalleeSaves(), llvm::XCoreFrameLowering::determineCalleeSaves(), llvm::LanaiFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::X86FrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineFrameLayout(), llvm::TargetOptions::DisableFramePointerElim(), llvm::WebAssemblyFrameLowering::eliminateCallFramePseudoInstr(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::NVPTXRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Spills(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), emitComments(), llvm::AVRFrameLowering::emitEpilogue(), llvm::Mips16FrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::WebAssemblyFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::MipsAsmPrinter::emitFrameDirective(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::TargetLoweringBase::emitPatchPoint(), llvm::AVRFrameLowering::emitPrologue(), llvm::Mips16FrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SIFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::LanaiFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), EmitTailCallStoreFPAndRetAddr(), EmitTailCallStoreRetAddr(), llvm::CCState::ensureMaxAlignment(), llvm::MipsFrameLowering::estimateStackSize(), fixupFuncForFI(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::X86InstrInfo::foldMemoryOperandImpl(), getAddressForMemoryInput(), llvm::SystemZFrameLowering::getAllocatedStackSize(), llvm::HexagonTargetLowering::GetDynamicTLSAddr(), getFRAMEADDR(), getFrameIndexMMO(), llvm::MipsSEFrameLowering::getFrameIndexReference(), llvm::AMDGPUFrameLowering::getFrameIndexReference(), llvm::SparcFrameLowering::getFrameIndexReference(), llvm::SystemZFrameLowering::getFrameIndexReference(), llvm::HexagonFrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReference(), llvm::TargetFrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReferencePreferSP(), llvm::R600InstrInfo::getIndirectIndexBegin(), llvm::R600InstrInfo::getIndirectIndexEnd(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), llvm::MipsInstrInfo::GetMemOperand(), getMemsetStores(), llvm::MipsFunctionInfo::getMoveF64ViaSpillFI(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::MSP430TargetLowering::getReturnAddressFrameIndex(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), llvm::SIMachineFunctionInfo::getSpilledReg(), GetTLSADDR(), llvm::LanaiRegisterInfo::hasBasePointer(), llvm::AArch64RegisterInfo::hasBasePointer(), llvm::X86RegisterInfo::hasBasePointer(), llvm::ARMBaseRegisterInfo::hasBasePointer(), llvm::MipsFrameLowering::hasBP(), llvm::MipsFrameLowering::hasFP(), llvm::SparcFrameLowering::hasFP(), llvm::WebAssemblyFrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::ARMFrameLowering::hasFP(), llvm::MSP430FrameLowering::hasFP(), llvm::XCoreFrameLowering::hasFP(), llvm::AArch64FrameLowering::hasFP(), llvm::HexagonFrameLowering::hasFP(), llvm::PPCFrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), llvm::AVRFrameLowering::hasReservedCallFrame(), llvm::SparcFrameLowering::hasReservedCallFrame(), llvm::MipsSEFrameLowering::hasReservedCallFrame(), llvm::Mips16FrameLowering::hasReservedCallFrame(), llvm::Thumb1FrameLowering::hasReservedCallFrame(), llvm::WebAssemblyFrameLowering::hasReservedCallFrame(), llvm::MSP430FrameLowering::hasReservedCallFrame(), llvm::ARMFrameLowering::hasReservedCallFrame(), llvm::AArch64FrameLowering::hasReservedCallFrame(), llvm::X86FrameLowering::hasReservedCallFrame(), llvm::SelectionDAG::InferPtrAlignment(), llvm::MIRParserImpl::initializeFrameInfo(), insertCSRSpillsAndRestores(), isConsecutiveLSLoc(), llvm::XCoreFunctionInfo::isLargeFrame(), llvm::SystemZInstrInfo::isStackSlotCopy(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::AVRInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::PPCInstrInfo::loadRegFromStackSlot(), LowerAsSplatVectorLoad(), llvm::HexagonTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::TargetLowering::LowerCallTo(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerDynamicAreaOffset(), llvm::SparcTargetLowering::LowerF128_LibCallArg(), llvm::SparcTargetLowering::LowerF128Op(), llvm::SITargetLowering::LowerFormalArguments(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::LanaiTargetLowering::LowerFRAMEADDR(), llvm::MSP430TargetLowering::LowerFRAMEADDR(), llvm::HexagonTargetLowering::LowerFRAMEADDR(), llvm::SparcTargetLowering::LowerGlobalTLSAddress(), LowerINTRINSIC_W_CHAIN(), llvm::LanaiTargetLowering::LowerRETURNADDR(), llvm::MSP430TargetLowering::LowerRETURNADDR(), llvm::HexagonTargetLowering::LowerRETURNADDR(), LowerRETURNADDR(), llvm::TargetLowering::LowerToTLSEmulatedModel(), LowerVASTART(), llvm::SparcTargetLowering::makeAddress(), llvm::Mips16InstrInfo::makeFrame(), llvm::HexagonFrameLowering::needsAligna(), llvm::PPCFrameLowering::needsFP(), llvm::AArch64RegisterInfo::needsFrameBaseReg(), llvm::ARMBaseRegisterInfo::needsFrameBaseReg(), llvm::X86FrameLowering::needsFrameIndexResolution(), llvm::TargetFrameLowering::needsFrameIndexResolution(), llvm::TargetRegisterInfo::needsStackRealignment(), llvm::X86FrameLowering::orderFrameObjects(), llvm::MIRPrinter::print(), llvm::MipsAsmPrinter::printSavedRegsBitmask(), llvm::SIFrameLowering::processFunctionBeforeFrameFinalized(), llvm::SystemZFrameLowering::processFunctionBeforeFrameFinalized(), llvm::MSP430FrameLowering::processFunctionBeforeFrameFinalized(), llvm::XCoreFrameLowering::processFunctionBeforeFrameFinalized(), llvm::HexagonFrameLowering::processFunctionBeforeFrameFinalized(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), llvm::SIRegisterInfo::requiresFrameIndexReplacementScavenging(), llvm::SIRegisterInfo::requiresFrameIndexScavenging(), llvm::SIRegisterInfo::requiresRegisterScavenging(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::Mips16InstrInfo::restoreFrame(), llvm::SIRegisterInfo::restoreSGPR(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::AVRFrameAnalyzer::runOnMachineFunction(), llvm::AVRDynAllocaSR::runOnMachineFunction(), llvm::RegScavenger::scavengeRegister(), llvm::FastISel::selectPatchpoint(), llvm::FastISel::selectStackmap(), llvm::FunctionLoweringInfo::set(), llvm::Mips16FrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), spillIncomingStatepointValue(), llvm::SIRegisterInfo::spillSGPR(), llvm::CriticalAntiDepBreaker::StartBlock(), llvm::AggressiveAntiDepBreaker::StartBlock(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::PPCInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), updateLiveness(), llvm::AArch64RegisterInfo::useFPForScavengingIndex(), llvm::SelectionDAGBuilder::visitSPDescriptorParent(), and WindowsRequiresStackProbe().
|
inline |
Definition at line 390 of file MachineFunction.h.
|
inline |
Returns a reference to a list of cfi instructions in the function's prologue.
Used to construct frame maps for debug and exception handling comsumers.
Definition at line 719 of file MachineFunction.h.
Referenced by llvm::AsmPrinter::emitCFIInstruction(), and llvm::MIPrinter::print().
getFunction - Return the LLVM function that this machine code represents
Definition at line 354 of file MachineFunction.h.
Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::NVPTXTargetLowering::allowFMA(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), llvm::DwarfCFIException::beginFragment(), llvm::WinException::beginFunclet(), llvm::DwarfCFIException::beginFunction(), llvm::DebugHandlerBase::beginFunction(), llvm::WinException::beginFunction(), llvm::CodeViewDebug::beginFunction(), llvm::DwarfDebug::beginFunction(), llvm::MachineIRBuilder::buildConstant(), llvm::TargetLowering::BuildSDIVPow2(), llvm::SIInstrInfo::calculateLDSSpillAddress(), canLowerToLDG(), llvm::TargetRegisterInfo::canRealignStack(), llvm::AArch64FrameLowering::canUseRedZone(), checkNumAlignedDPRCS2Regs(), combineFMinNumFMaxNum(), combineMul(), combineOr(), combineStore(), computeCalleeSaveRegisterPairs(), ConvertImplicitDefToConstZero(), llvm::XCoreFunctionInfo::createLRSpillSlot(), llvm::SystemZFrameLowering::determineCalleeSaves(), llvm::XCoreFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::TargetFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineFrameLayout(), llvm::TargetOptions::DisableFramePointerElim(), doSpillCalleeSavedRegs(), duplicateCPV(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::AVRFrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::MipsAsmPrinter::EmitFunctionBodyStart(), llvm::AMDGPUAsmPrinter::EmitFunctionEntryLabel(), llvm::AMDGPUAsmPrinter::EmitInstruction(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), emitNonHSAIntrinsicError(), llvm::AVRFrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), emitRemovedIntrinsicError(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), emitThumb1LoadConstPool(), emitThumb2LoadConstPool(), llvm::AsmPrinter::emitXRayTable(), llvm::AMDGPUSubtarget::enableIEEEBit(), llvm::X86FrameLowering::enableShrinkWrapping(), llvm::WinException::endFunclet(), llvm::ARMException::endFunction(), llvm::WinException::endFunction(), llvm::CodeViewDebug::endFunction(), llvm::DwarfDebug::endFunction(), ExpandMOVImmSExti8(), ExpandPowI(), fail(), findDeadCallerSavedReg(), llvm::X86InstrInfo::foldMemoryOperandImpl(), get64BitArgumentXMMs(), llvm::MSP430RegisterInfo::getCalleeSavedRegs(), llvm::AVRRegisterInfo::getCalleeSavedRegs(), llvm::AArch64RegisterInfo::getCalleeSavedRegs(), llvm::MipsRegisterInfo::getCalleeSavedRegs(), llvm::SystemZRegisterInfo::getCalleeSavedRegs(), llvm::PPCRegisterInfo::getCalleeSavedRegs(), llvm::ARMBaseRegisterInfo::getCalleeSavedRegs(), llvm::X86RegisterInfo::getCalleeSavedRegs(), llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy(), llvm::PPCRegisterInfo::getCalleeSavedRegsViaCopy(), llvm::ARMBaseRegisterInfo::getCalleeSavedRegsViaCopy(), llvm::X86RegisterInfo::getCalleeSavedRegsViaCopy(), llvm::AArch64RegisterInfo::getCallPreservedMask(), llvm::SystemZRegisterInfo::getCallPreservedMask(), llvm::ARMBaseRegisterInfo::getCallPreservedMask(), llvm::X86RegisterInfo::getCallPreservedMask(), llvm::SelectionDAG::getConstantPool(), llvm::getFuncletMembership(), llvm::X86RegisterInfo::getGPRsForTailCall(), getLayoutSuccessorProbThreshold(), getLoadStackGuard(), llvm::SIRegisterInfo::getMaxNumSGPRs(), llvm::SIRegisterInfo::getMaxNumVGPRs(), getName(), llvm::ARMTargetLowering::getOptimalMemOpType(), llvm::AArch64TargetLowering::getOptimalMemOpType(), llvm::PPCTargetLowering::getOptimalMemOpType(), llvm::X86TargetLowering::getOptimalMemOpType(), getRecipEstimateForFunc(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::X86RegisterInfo::getReservedRegs(), GetScratchRegister(), llvm::SparcTargetLowering::getSRetArgSize(), llvm::TargetFrameLowering::getStackAlignmentSkew(), llvm::CallLowering::handleAssignments(), HasNestArgument(), hasReturnsTwiceAttr(), llvm::HexagonEvaluator::HexagonEvaluator(), llvm::SelectionDAG::init(), llvm::MIRParserImpl::initializeConstantPool(), llvm::MIRParserImpl::initializeFrameInfo(), llvm::AArch64TargetLowering::insertCopiesSplitCSR(), llvm::PPCTargetLowering::insertCopiesSplitCSR(), llvm::HexagonTargetLowering::IsEligibleForTailCallOptimization(), llvm::TargetLowering::isInTailCallPosition(), llvm::AMDGPUSubtarget::isMesaGfxShader(), llvm::AMDGPUSubtarget::isMesaKernel(), isMinSize(), isNoReturnDef(), isOptNone(), isOptSize(), llvm::ARMBaseInstrInfo::isProfitableToIfCvt(), llvm::SIInstrInfo::legalizeOperands(), llvm::LegalizerHelper::libcall(), llvm::XCoreInstrInfo::loadImmediate(), llvm::MipsSEInstrInfo::loadRegFromStack(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::AMDGPUMCInstLower::lower(), llvm::AArch64CallLowering::lowerCall(), llvm::AMDGPUTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::AsmPrinter::lowerConstant(), llvm::AMDGPUTargetLowering::LowerDYNAMIC_STACKALLOC(), llvm::SITargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), LowerFPOWI(), llvm::AMDGPUTargetLowering::LowerGlobalAddress(), LowerInterruptReturn(), llvm::AArch64CallLowering::lowerReturn(), llvm::NVPTXTargetLowering::LowerReturn(), llvm::SparcTargetLowering::LowerReturn_32(), LowerVACOPY(), LowerVectorBroadcast(), llvm::AsmPrinter::needsCFIMoves(), llvm::PPCFrameLowering::needsFP(), llvm::XCoreRegisterInfo::needsFrameMoves(), llvm::AsmPrinter::needsSEHMoves(), llvm::TargetRegisterInfo::needsStackRealignment(), llvm::TargetFrameLowering::noFramePointerElim(), llvm::OptLevelChanger::OptLevelChanger(), PrepareCall(), llvm::MIRPrinter::print(), print(), llvm::MachineBasicBlock::print(), llvm::AMDGPUAsmPrinter::PrintAsmOperand(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), produceCompactUnwindFrame(), ProfitableToMerge(), promoteToConstantPool(), llvm::AsmPrinter::recordSled(), reduceVMULWidth(), llvm::MipsTargetMachine::resetSubtarget(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::ARMAsmPrinter::runOnMachineFunction(), llvm::X86AsmPrinter::runOnMachineFunction(), llvm::IRTranslator::runOnMachineFunction(), llvm::RegBankSelect::runOnMachineFunction(), llvm::VLIWMachineScheduler::schedule(), llvm::AsmPrinter::SetupMachineFunction(), shouldLowerMemFuncForSize(), shouldSplitStack(), llvm::TailDuplicator::shouldTailDuplicate(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), splitStores(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::AArch64TargetLowering::supportSplitCSR(), llvm::PPCTargetLowering::supportSplitCSR(), llvm::tryFoldSPUpdateIntoPushPop(), llvm::ARMSubtarget::useMovt(), llvm::R600InstrInfo::usesTextureCache(), llvm::ARMSubtarget::useStride4VFPs(), llvm::R600InstrInfo::usesVertexCache(), llvm::SelectionDAGBuilder::visitSPDescriptorParent(), WindowsRequiresStackProbe(), and llvm::OptLevelChanger::~OptLevelChanger().
|
inline |
getFunctionNumber - Return a unique ID for the current function.
Definition at line 362 of file MachineFunction.h.
Referenced by llvm::NVPTXFrameLowering::emitPrologue(), llvm::AsmPrinter::getFunctionNumber(), llvm::PPCFunctionInfo::getGlobalEPSymbol(), getJTISymbol(), llvm::PPCFunctionInfo::getLocalEPSymbol(), getPICBaseSymbol(), llvm::PPCFunctionInfo::getPICOffsetSymbol(), llvm::MachineBasicBlock::getSymbol(), llvm::PPCFunctionInfo::getTOCOffsetSymbol(), and LowerINTRINSIC_WO_CHAIN().
|
inline |
getInfo - Keep track of various per-function pieces of information for backends that would like to do so.
Definition at line 465 of file MachineFunction.h.
Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), allocateKernArg(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), llvm::SIInstrInfo::calculateLDSSpillAddress(), CalculateTailCallSPDiff(), llvm::ARMBaseRegisterInfo::canRealignStack(), llvm::AArch64FrameLowering::canUseRedZone(), checkNumAlignedDPRCS2Regs(), llvm::WebAssemblyInstrInfo::commuteInstructionImpl(), llvm::computeBlockSize(), computeCalleeSaveRegisterPairs(), llvm::SystemZFrameLowering::determineCalleeSaves(), llvm::SparcFrameLowering::determineCalleeSaves(), llvm::MipsSEFrameLowering::determineCalleeSaves(), llvm::XCoreFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::X86FrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineCalleeSaves(), duplicateCPV(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), llvm::AVRFrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::WebAssemblyFrameLowering::emitEpilogue(), llvm::SystemZFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AMDGPUAsmPrinter::EmitFunctionEntryLabel(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::AVRFrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SIFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::enableStackSlotScavenging(), estimateRSStackSizeLimit(), ExpandMOVImmSExti8(), fixupFuncForFI(), llvm::AArch64RegisterInfo::getCalleeSavedRegs(), llvm::HexagonRegisterInfo::getCalleeSavedRegs(), llvm::PPCRegisterInfo::getCalleeSavedRegs(), llvm::ARMBaseRegisterInfo::getCalleeSavedRegs(), llvm::X86RegisterInfo::getCalleeSavedRegs(), llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy(), llvm::PPCRegisterInfo::getCalleeSavedRegsViaCopy(), llvm::ARMBaseRegisterInfo::getCalleeSavedRegsViaCopy(), llvm::X86RegisterInfo::getCalleeSavedRegsViaCopy(), llvm::SparcFrameLowering::getFrameIndexReference(), llvm::HexagonFrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReferencePreferSP(), llvm::MipsDAGToDAGISel::getGlobalBaseReg(), llvm::SparcInstrInfo::getGlobalBaseReg(), llvm::X86InstrInfo::getGlobalBaseReg(), llvm::MipsTargetLowering::getGlobalReg(), llvm::SIRegisterInfo::getMaxNumSGPRs(), llvm::SIRegisterInfo::getMaxNumVGPRs(), getMaxWaves(), llvm::SIRegisterInfo::getPreloadedValue(), llvm::SIRegisterInfo::getReservedRegs(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::PPCRegisterInfo::getReservedRegs(), llvm::MSP430TargetLowering::getReturnAddressFrameIndex(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), llvm::X86FrameLowering::getWinEHParentFrameOffset(), llvm::ARMBaseRegisterInfo::hasBasePointer(), llvm::AVRFrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::HexagonFrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), hasNonRISpills(), llvm::X86FrameLowering::hasReservedCallFrame(), llvm::PPCRegisterInfo::hasReservedSpillSlot(), hasSpills(), llvm::AArch64TargetLowering::initializeSplitCSR(), llvm::PPCTargetLowering::initializeSplitCSR(), llvm::ARMBaseInstrInfo::insertBranch(), llvm::ARMBaseInstrInfo::isPredicable(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::PPCInstrInfo::loadRegFromStackSlot(), llvm::WebAssemblyMCInstLower::Lower(), llvm::HexagonTargetLowering::LowerEH_RETURN(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::HexagonTargetLowering::LowerINLINEASM(), LowerINTRINSIC_W_CHAIN(), llvm::R600TargetLowering::LowerOperation(), llvm::SITargetLowering::LowerOperation(), llvm::SITargetLowering::LowerReturn(), llvm::SparcTargetLowering::LowerReturn_32(), LowerToTLSLocalDynamicModel(), llvm::LanaiTargetLowering::LowerVASTART(), llvm::MSP430TargetLowering::LowerVASTART(), llvm::HexagonTargetLowering::LowerVASTART(), LowerVASTART(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), MustSaveLR(), llvm::PPCFrameLowering::needsFP(), llvm::ARMBaseRegisterInfo::needsFrameBaseReg(), llvm::X86FrameLowering::needsFrameIndexResolution(), llvm::XCoreFrameLowering::processFunctionBeforeFrameFinalized(), llvm::HexagonFrameLowering::processFunctionBeforeFrameFinalized(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), promoteToConstantPool(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), llvm::SIRegisterInfo::requiresFrameIndexReplacementScavenging(), llvm::ARMBaseRegisterInfo::resolveFrameIndex(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::ARMFrameLowering::restoreCalleeSavedRegisters(), llvm::SIRegisterInfo::restoreSGPR(), llvm::ARMAsmPrinter::runOnMachineFunction(), llvm::MipsAsmPrinter::runOnMachineFunction(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::AVRFrameAnalyzer::runOnMachineFunction(), setUsesTOCBasePtr(), llvm::AVRFrameLowering::spillCalleeSavedRegisters(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::ARMFrameLowering::spillCalleeSavedRegisters(), llvm::XCoreFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), spillsCR(), llvm::SIRegisterInfo::spillSGPR(), spillsVRSAVE(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), and llvm::PPCInstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 472 of file MachineFunction.h.
| MCSymbol * MachineFunction::getJTISymbol | ( | unsigned | JTI, |
| MCContext & | Ctx, | ||
| bool | isLinkerPrivate = false |
||
| ) | const |
getJTISymbol - Return the MCSymbol for the specified non-empty jump table.
Return the MCSymbol for the specified non-empty jump table.
If isLinkerPrivate is specified, an 'l' label is returned, otherwise a normal 'L' label is returned.
Definition at line 550 of file MachineFunction.cpp.
References assert(), getDataLayout(), getFunctionNumber(), llvm::DataLayout::getLinkerPrivateGlobalPrefix(), llvm::MCContext::getOrCreateSymbol(), llvm::DataLayout::getPrivateGlobalPrefix(), llvm::cl::Prefix, and size().
Referenced by llvm::AsmPrinter::GetJTISymbol(), and llvm::TargetLowering::getPICJumpTableRelocBaseExpr().
|
inline |
getJumpTableInfo - Return the jump table info object for the current function.
This object contains information about jump tables in the current function. If the current function has no jump tables, this will return null.
Definition at line 396 of file MachineFunction.h.
Referenced by llvm::ARMAsmPrinter::EmitJumpTableAddrs(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::ARMAsmPrinter::EmitJumpTableInsts(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), and llvm::MIRPrinter::print().
|
inline |
Definition at line 397 of file MachineFunction.h.
|
inline |
Return a reference to the landing pad info for the current function.
Definition at line 747 of file MachineFunction.h.
Referenced by llvm::DwarfCFIException::beginFunction(), llvm::WinException::beginFunction(), llvm::SystemZFrameLowering::determineCalleeSaves(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::EHStreamer::emitExceptionTable(), llvm::ARMException::endFunction(), llvm::DwarfCFIExceptionBase::markFunctionEnd(), and llvm::AsmPrinter::SetupMachineFunction().
| MachineMemOperand * MachineFunction::getMachineMemOperand | ( | MachinePointerInfo | PtrInfo, |
| MachineMemOperand::Flags | f, | ||
| uint64_t | s, | ||
| unsigned | base_alignment, | ||
| const AAMDNodes & | AAInfo = AAMDNodes(), |
||
| const MDNode * | Ranges = nullptr, |
||
| SynchronizationScope | SynchScope = CrossThread, |
||
| AtomicOrdering | Ordering = AtomicOrdering::NotAtomic, |
||
| AtomicOrdering | FailureOrdering = AtomicOrdering::NotAtomic |
||
| ) |
getMachineMemOperand - Allocate a new MachineMemOperand.
MachineMemOperands are owned by the MachineFunction and need not be explicitly deallocated.
Definition at line 307 of file MachineFunction.cpp.
Referenced by llvm::addFrameReference(), llvm::X86TargetLowering::BuildFILD(), llvm::FastISel::createMachineMemOperandFor(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::TargetLoweringBase::emitPatchPoint(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), expandLoadStackGuard(), extractLoadMemRefs(), extractStoreMemRefs(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::SelectionDAG::getAtomic(), llvm::SelectionDAG::getAtomicCmpSwap(), getFrameIndexMMO(), llvm::SelectionDAG::getLoad(), getLoadStackGuard(), llvm::SelectionDAG::getMemIntrinsicNode(), llvm::MipsInstrInfo::GetMemOperand(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getTruncStore(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::AVRInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::PPCInstrInfo::loadRegFromStackSlot(), lowerVectorShuffleAsBroadcast(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::SIRegisterInfo::restoreSGPR(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillSGPR(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::PPCInstrInfo::storeRegToStackSlot(), and writeSPToMemory().
| MachineMemOperand * MachineFunction::getMachineMemOperand | ( | const MachineMemOperand * | MMO, |
| int64_t | Offset, | ||
| uint64_t | Size | ||
| ) |
getMachineMemOperand - Allocate a new MachineMemOperand by copying an existing one, adjusting by an offset and using the given size.
MachineMemOperands are owned by the MachineFunction and need not be explicitly deallocated.
Definition at line 318 of file MachineFunction.cpp.
References llvm::MachineMemOperand::getBaseAlignment(), llvm::MachineMemOperand::getFailureOrdering(), llvm::MachineMemOperand::getFlags(), llvm::MachineMemOperand::getOffset(), llvm::MachineMemOperand::getOrdering(), llvm::MachineMemOperand::getPseudoValue(), llvm::MachineMemOperand::getSynchScope(), llvm::MachineMemOperand::getValue(), and Offset.
|
inline |
Definition at line 344 of file MachineFunction.h.
Referenced by llvm::addLandingPadInfo(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::DwarfCFIException::beginFunction(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), ExpandMOVImmSExti8(), llvm::TailDuplicator::initMF(), LowerINTRINSIC_WO_CHAIN(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::XCoreRegisterInfo::needsFrameMoves(), recoverFramePointer(), llvm::FastISel::selectCall(), llvm::FastISel::selectIntrinsicCall(), and llvm::FunctionLoweringInfo::set().
| StringRef MachineFunction::getName | ( | ) | const |
getName - Return the name of the corresponding LLVM function.
Definition at line 421 of file MachineFunction.cpp.
References assert(), getFunction(), and llvm::Value::getName().
Referenced by llvm::calculateSpillWeightsAndHints(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::SparcFrameLowering::emitPrologue(), llvm::MachineBasicBlock::getFullName(), llvm::DOTGraphTraits< ScheduleDAG * >::getGraphName(), llvm::DOTGraphTraits< SelectionDAG * >::getGraphName(), llvm::DOTGraphTraits< const MachineFunction * >::getGraphName(), llvm::DOTGraphTraits< ScheduleDAGMI * >::getGraphName(), llvm::MIRParserImpl::initializeMachineFunction(), LowerDYNAMIC_STACKALLOC(), llvm::MIRPrinter::print(), print(), reportSelectionError(), llvm::MachineBlockFrequencyInfo::runOnMachineFunction(), llvm::InstructionSelect::runOnMachineFunction(), llvm::Legalizer::runOnMachineFunction(), llvm::RegBankSelect::runOnMachineFunction(), llvm::MIRParserImpl::setupRegisterInfo(), viewCFG(), and viewCFGOnly().
|
inline |
getNumBlockIDs - Return the number of MBB ID's allocated.
Definition at line 492 of file MachineFunction.h.
Referenced by llvm::computeAllBlockSizes(), llvm::HexagonFrameLowering::emitPrologue(), isIrreducibleCFG(), PlaceMarkers(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), SortBlocks(), and llvm::MachineTraceMetrics::verifyAnalysis().
| MachineJumpTableInfo * MachineFunction::getOrCreateJumpTableInfo | ( | unsigned | EntryKind | ) |
getOrCreateJumpTableInfo - Get the JumpTableInfo for this function, if it does already exist, allocate one.
Get the JumpTableInfo for this function.
If it does not already exist, allocate one.
Definition at line 205 of file MachineFunction.cpp.
Referenced by llvm::MIRParserImpl::initializeJumpTableInfo().
| LandingPadInfo & MachineFunction::getOrCreateLandingPadInfo | ( | MachineBasicBlock * | LandingPad | ) |
Find or create an LandingPadInfo for the specified MachineBasicBlock.
Definition at line 575 of file MachineFunction.cpp.
References i, llvm::LandingPadInfo::LandingPadBlock, and N.
Referenced by addCatchTypeInfo(), addCleanup(), addFilterTypeInfo(), addInvoke(), addLandingPad(), addSEHCatchHandler(), and addSEHCleanupHandler().
| MCSymbol * MachineFunction::getPICBaseSymbol | ( | ) | const |
getPICBaseSymbol - Return a function-local symbol to represent the PIC base.
Return a function-local symbol to represent the PIC base.
Definition at line 565 of file MachineFunction.cpp.
References getDataLayout(), getFunctionNumber(), llvm::MCContext::getOrCreateSymbol(), and llvm::DataLayout::getPrivateGlobalPrefix().
Referenced by llvm::X86AsmPrinter::EmitInstruction(), llvm::X86TargetLowering::getPICJumpTableRelocBaseExpr(), llvm::PPCTargetLowering::getPICJumpTableRelocBaseExpr(), GetSymbolRef(), and printSymbolOperand().
|
inline |
Get the function properties.
Definition at line 458 of file MachineFunction.h.
Referenced by llvm::MIRParserImpl::initializeMachineFunction(), llvm::MachineRegisterInfo::invalidateLiveness(), llvm::MachineRegisterInfo::isSSA(), llvm::MachineRegisterInfo::leaveSSA(), llvm::MIRPrinter::print(), print(), llvm::InstructionSelect::runOnMachineFunction(), llvm::Legalizer::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::IRTranslator::runOnMachineFunction(), llvm::RegBankSelect::runOnMachineFunction(), and llvm::MachineRegisterInfo::tracksLiveness().
|
inline |
Definition at line 459 of file MachineFunction.h.
|
inline |
Definition at line 347 of file MachineFunction.h.
Referenced by llvm::MipsFunctionInfo::callPtrInfo(), llvm::WebAssemblyFrameLowering::emitPrologue(), and writeSPToMemory().
|
inline |
getRegInfo - Return information about the registers currently in use.
Definition at line 382 of file MachineFunction.h.
Referenced by llvm::RegsForValue::AddInlineAsmOperands(), llvm::MachineBasicBlock::addLiveIn(), addLiveIn(), addLiveIn(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::SITargetLowering::AdjustInstrPostInstrSelection(), llvm::AllocationOrder::AllocationOrder(), llvm::VirtRegMap::assignVirt2StackSlot(), attachMEMCPYScratchRegs(), llvm::SIInstrInfo::calculateLDSSpillAddress(), llvm::VirtRegAuxInfo::calculateSpillWeightAndHint(), llvm::calculateSpillWeightsAndHints(), canCombine(), canCompareBeNewValueJump(), canFoldCopy(), llvm::PPCInstrInfo::canInsertSelect(), llvm::AArch64InstrInfo::canInsertSelect(), llvm::SystemZInstrInfo::canInsertSelect(), llvm::X86InstrInfo::canInsertSelect(), llvm::MipsRegisterInfo::canRealignStack(), llvm::X86RegisterInfo::canRealignStack(), llvm::ARMBaseRegisterInfo::canRealignStack(), llvm::X86InstrInfo::classifyLEAReg(), llvm::X86InstrInfo::commuteInstructionImpl(), llvm::HexagonBlockRanges::computeDeadMap(), computeLiveOuts(), llvm::InstructionSelector::constrainSelectedInstRegOperands(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::WebAssemblyInstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::AMDGPUTargetLowering::CreateLiveInRegister(), createSwiftErrorEntriesInEntryBlock(), createVirtualRegs(), llvm::HexagonInstrInfo::createVR(), llvm::XCoreFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::TargetFrameLowering::determineCalleeSaves(), doScavengeFrameVirtualRegs(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::SparcTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::SparcTargetLowering::emitEHSjLjSetJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::WebAssemblyFrameLowering::emitEpilogue(), emitIndirectDst(), emitIndirectSrc(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SIFrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitThumbRegPlusImmInReg(), llvm::MachineInstr::eraseFromParentAndMarkDBGValuesForRemoval(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::findPHICopyInsertPoint(), findScratchNonCalleeSaveRegister(), llvm::AArch64InstrInfo::foldMemoryOperandImpl(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), foldPatchpoint(), forceReg(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), llvm::TargetInstrInfo::genAlternativeCodeSequence(), llvm::PPCRegisterInfo::getCalleeSavedRegs(), llvm::FunctionLoweringInfo::getCatchPadExceptionPointerVReg(), GetCostForDef(), llvm::MipsFunctionInfo::getGlobalBaseReg(), llvm::LanaiMachineFunctionInfo::getGlobalBaseReg(), llvm::SparcInstrInfo::getGlobalBaseReg(), llvm::X86InstrInfo::getGlobalBaseReg(), llvm::R600InstrInfo::getIndirectIndexBegin(), llvm::AArch64RegisterBankInfo::getInstrAlternativeMappings(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::RegisterBankInfo::getInstrMappingImpl(), llvm::PPCInstrInfo::getOperandLatency(), llvm::SIInstrInfo::getOpRegClass(), llvm::FunctionLoweringInfo::getOrCreateSwiftErrorVReg(), getPrologueDeath(), llvm::ARMBaseRegisterInfo::getRegAllocationHints(), llvm::TargetRegisterInfo::getRegAllocationHints(), GetRegistersForValue(), getRegTy(), llvm::SIMachineFunctionInfo::getSpilledReg(), llvm::PerFunctionMIParsingState::getVRegInfo(), llvm::VirtRegMap::grow(), HandleVRSaveUpdate(), llvm::X86TargetLowering::hasCopyImplyingStackAdjustment(), llvm::TargetInstrInfo::hasReassociableOperands(), llvm::TargetInstrInfo::hasReassociableSibling(), hasVGPROperands(), llvm::RegPressureTracker::init(), llvm::TailDuplicator::initMF(), llvm::WebAssemblyFunctionInfo::initWARegs(), llvm::AArch64TargetLowering::insertCopiesSplitCSR(), llvm::PPCTargetLowering::insertCopiesSplitCSR(), llvm::PPCInstrInfo::insertSelect(), llvm::AArch64InstrInfo::insertSelect(), llvm::SystemZInstrInfo::insertSelect(), llvm::X86InstrInfo::insertSelect(), isNonFoldablePartialRegisterLoad(), llvm::SIInstrInfo::isOperandLegal(), llvm::X86InstrInfo::isReallyTriviallyReMaterializable(), isSSA(), llvm::SIInstrInfo::isVGPRCopy(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOpWithMove(), llvm::MipsSEInstrInfo::loadImmediate(), loadM0FromVGPR(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::AArch64CallLowering::lowerCall(), llvm::HexagonTargetLowering::LowerCallResult(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::ARMCallLowering::lowerFormalArguments(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::AArch64CallLowering::lowerReturn(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), llvm::MachineSSAUpdater::MachineSSAUpdater(), llvm::SIRegisterInfo::materializeFrameBaseRegister(), llvm::AArch64RegisterInfo::materializeFrameBaseRegister(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::SIInstrInfo::moveToVALU(), MustSaveLR(), needToReserveScavengingSpillSlots(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::BranchFolder::OptimizeFunction(), llvm::LanaiInstrInfo::optimizeSelect(), llvm::ARMBaseInstrInfo::optimizeSelect(), llvm::MIRParserImpl::parseRegisterInfo(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::MIRPrinter::print(), llvm::MIPrinter::print(), llvm::MachineInstr::print(), propagateSwiftErrorVRegs(), llvm::TargetInstrInfo::reassociateOps(), llvm::LiveRangeCalc::reset(), llvm::PPCRegisterInfo::resolveFrameIndex(), llvm::SIRegisterInfo::restoreSGPR(), llvm::InstructionSelect::runOnMachineFunction(), llvm::FixFSMULD::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::ReplaceFMULS::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::LiveIntervals::runOnMachineFunction(), llvm::IRTranslator::runOnMachineFunction(), llvm::AVRDynAllocaSR::runOnMachineFunction(), llvm::RegBankSelect::runOnMachineFunction(), llvm::AArch64InstructionSelector::select(), llvm::AVRDAGToDAGISel::SelectInlineAsmMemoryOperand(), llvm::FunctionLoweringInfo::set(), llvm::MachineIRBuilder::setMF(), llvm::CoalescerPair::setRegisters(), llvm::MIRParserImpl::setupRegisterInfo(), llvm::SIInstrInfo::shouldClusterMemOps(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillSGPR(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::WebAssemblyFunctionInfo::stackifyVReg(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::tryFoldSPUpdateIntoPushPop(), UpdateOperandRegClass(), llvm::ARMBaseRegisterInfo::updateRegAllocHint(), llvm::SIInstrInfo::verifyInstruction(), and writeSPToMemory().
|
inline |
Definition at line 383 of file MachineFunction.h.
|
inlinestatic |
Support for MachineBasicBlock::getNextNode().
Definition at line 539 of file MachineFunction.h.
|
inline |
getSubtarget - Return the subtarget for which this machine code is being compiled.
Definition at line 370 of file MachineFunction.h.
Referenced by llvm::DwarfCompileUnit::addAddress(), llvm::DwarfUnit::addBlockByrefAddress(), llvm::DwarfCompileUnit::addComplexAddress(), llvm::MachineBasicBlock::addLiveIn(), addLiveInRegs(), llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), addSavedGPR(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::CCState::analyzeMustTailForwardedRegisters(), llvm::A57ChainingConstraint::apply(), assignCalleeSavedSpillSlots(), llvm::DebugHandlerBase::beginFunction(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::calculateDbgValueHistory(), llvm::SIInstrInfo::calculateLDSSpillAddress(), llvm::LiveRangeEdit::calculateRegClassAndHint(), llvm::VirtRegAuxInfo::calculateSpillWeightAndHint(), llvm::MachineBasicBlock::canFallThrough(), cannotCoexistAsymm(), llvm::MipsRegisterInfo::canRealignStack(), llvm::ARMBaseRegisterInfo::canRealignStack(), llvm::MachineBasicBlock::canSplitCriticalEdge(), llvm::AArch64FrameLowering::canUseAsPrologue(), CC_HexagonVector(), CC_MipsO32(), llvm::CC_X86_VectorCallAssignRegister(), checkNumAlignedDPRCS2Regs(), llvm::computeBlockSize(), computeLiveOuts(), llvm::TargetSchedModel::computeOutputLatency(), llvm::MIRPrinter::convertStackObjects(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::AVRInstrInfo::copyPhysReg(), llvm::createBURRListDAGScheduler(), llvm::createDefaultScheduler(), llvm::ARM::createFastISel(), llvm::PPC::createFastISel(), llvm::createHybridListDAGScheduler(), llvm::createILPListDAGScheduler(), llvm::FunctionLoweringInfo::CreateReg(), llvm::FunctionLoweringInfo::CreateRegs(), llvm::createSourceListDAGScheduler(), llvm::PPCInstrInfo::CreateTargetPostRAHazardRecognizer(), llvm::HexagonInstrInfo::CreateTargetPostRAHazardRecognizer(), llvm::SystemZFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::TargetFrameLowering::determineCalleeSaves(), llvm::TargetOptions::DisableFramePointerElim(), doSpillCalleeSavedRegs(), llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::WebAssemblyFrameLowering::eliminateCallFramePseudoInstr(), llvm::AVRFrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitAligningInstructions(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), emitComments(), emitDebugLocValue(), emitDebugValueComment(), llvm::AVRFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::WebAssemblyFrameLowering::emitEpilogue(), llvm::SystemZFrameLowering::emitEpilogue(), llvm::MipsAsmPrinter::emitFrameDirective(), llvm::AMDGPUAsmPrinter::EmitFunctionBodyStart(), llvm::AMDGPUAsmPrinter::EmitFunctionEntryLabel(), llvm::AsmPrinter::emitImplicitDef(), llvm::SystemZAsmPrinter::EmitInstruction(), llvm::X86AsmPrinter::EmitInstruction(), llvm::AMDGPUAsmPrinter::EmitInstruction(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::AsmPrinter::EmitJumpTableInfo(), emitKill(), llvm::ThumbRegisterInfo::emitLoadConstPool(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitNoop(), llvm::AVRFrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::SIFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::X86FrameLowering::emitStackProbe(), EmitTailCallStoreFPAndRetAddr(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::AArch64SelectionDAGInfo::EmitTargetCodeForMemset(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), emitThumb1LoadConstPool(), emitThumb2LoadConstPool(), emitThumbRegPlusImmInReg(), llvm::AsmPrinter::emitXRayTable(), llvm::PPCFrameLowering::enableShrinkWrapping(), llvm::MachineFrameInfo::estimateStackSize(), findScratchNonCalleeSaveRegister(), llvm::fixStackStores(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::AArch64InstrInfo::foldMemoryOperandImpl(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), llvm::PPCRegisterInfo::getBaseRegister(), llvm::AArch64RegisterInfo::getCalleeSavedRegs(), llvm::HexagonRegisterInfo::getCalleeSavedRegs(), llvm::MipsRegisterInfo::getCalleeSavedRegs(), llvm::SystemZRegisterInfo::getCalleeSavedRegs(), llvm::PPCRegisterInfo::getCalleeSavedRegs(), llvm::ARMBaseRegisterInfo::getCalleeSavedRegs(), llvm::X86RegisterInfo::getCalleeSavedRegs(), llvm::PPCRegisterInfo::getCalleeSavedRegsViaCopy(), llvm::AArch64RegisterInfo::getCallPreservedMask(), llvm::MipsRegisterInfo::getCallPreservedMask(), llvm::SystemZRegisterInfo::getCallPreservedMask(), llvm::PPCRegisterInfo::getCallPreservedMask(), llvm::ARMBaseRegisterInfo::getCallPreservedMask(), llvm::X86RegisterInfo::getCallPreservedMask(), getFPMode(), llvm::AMDGPUFrameLowering::getFrameIndexReference(), llvm::SparcFrameLowering::getFrameIndexReference(), llvm::SystemZFrameLowering::getFrameIndexReference(), llvm::HexagonFrameLowering::getFrameIndexReference(), llvm::TargetFrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReferencePreferSP(), llvm::AVRRegisterInfo::getFrameRegister(), llvm::MipsRegisterInfo::getFrameRegister(), llvm::ARMBaseRegisterInfo::getFrameRegister(), llvm::getFuncletMembership(), llvm::MipsFunctionInfo::getGlobalBaseReg(), llvm::ARMHazardRecognizer::getHazardType(), llvm::R600InstrInfo::getIndirectIndexEnd(), llvm::AArch64RegisterBankInfo::getInstrAlternativeMappings(), llvm::RegisterBankInfo::getInstrMappingImpl(), llvm::HexagonInstrInfo::getInstrTimingClassLatency(), llvm::MSP430InstrInfo::getInstSizeInBytes(), llvm::AVRInstrInfo::getInstSizeInBytes(), llvm::ThumbRegisterInfo::getLargestLegalSuperClass(), llvm::PPCRegisterInfo::getLargestLegalSuperClass(), llvm::X86RegisterInfo::getLargestLegalSuperClass(), getLoadStoreOffsetSizeInBits(), llvm::SIRegisterInfo::getMaxNumSGPRs(), llvm::SIRegisterInfo::getMaxNumVGPRs(), getMaxWaves(), getMemcpyLoadsAndStores(), llvm::SparcRegisterInfo::getPointerRegClass(), llvm::ThumbRegisterInfo::getPointerRegClass(), llvm::MipsRegisterInfo::getPointerRegClass(), llvm::WebAssemblyRegisterInfo::getPointerRegClass(), llvm::X86RegisterInfo::getPointerRegClass(), llvm::SIRegisterInfo::getPreloadedValue(), llvm::MachineFrameInfo::getPristineRegs(), llvm::X86RegisterInfo::getPtrSizedFrameRegister(), GetRegistersForValue(), llvm::MipsRegisterInfo::getRegPressureLimit(), llvm::AArch64RegisterInfo::getRegPressureLimit(), llvm::ARMBaseRegisterInfo::getRegPressureLimit(), llvm::R600RegisterInfo::getReservedRegs(), llvm::SparcRegisterInfo::getReservedRegs(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::AArch64RegisterInfo::getReservedRegs(), llvm::PPCRegisterInfo::getReservedRegs(), llvm::X86RegisterInfo::getReservedRegs(), llvm::ARMBaseRegisterInfo::getReservedRegs(), llvm::ARMBaseRegisterInfo::getSjLjDispatchPreservedMask(), llvm::TargetInstrInfo::getSPAdjust(), llvm::X86InstrInfo::getSPAdjust(), llvm::SIMachineFunctionInfo::getSpilledReg(), llvm::TargetInstrInfo::getStackSlotRange(), llvm::SelectionDAG::getSubtarget(), llvm::AsmPrinter::getSubtargetInfo(), getTargetIndexName(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), llvm::ARMBaseRegisterInfo::getThisReturnPreservedMask(), llvm::ARMBaseRegisterInfo::getTLSCallPreservedMask(), llvm::HexagonInstrInfo::getUnits(), llvm::CCState::HandleByVal(), HandleVRSaveUpdate(), llvm::SparcFrameLowering::hasFP(), llvm::ARMFrameLowering::hasFP(), llvm::AArch64FrameLowering::hasFP(), llvm::HexagonFrameLowering::hasFP(), llvm::PPCRegisterInfo::hasReservedSpillSlot(), llvm::RegPressureTracker::init(), llvm::ConvergingVLIWScheduler::initialize(), llvm::PostGenericScheduler::initialize(), INITIALIZE_PASS(), llvm::TailDuplicator::initMF(), llvm::GenericScheduler::initPolicy(), insertCSRSpillsAndRestores(), llvm::HexagonInstrInfo::isComplex(), llvm::AArch64RegisterInfo::isReservedReg(), llvm::VLIWResourceModel::isResourceAvailable(), llvm::TargetInstrInfo::isSchedulingBoundary(), llvm::SIInstrInfo::legalizeOperands(), llvm::LegalizerHelper::libcall(), llvm::AArch64CallLowering::lowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerDynamicAreaOffset(), llvm::SITargetLowering::LowerFormalArguments(), llvm::AMDGPUAsmPrinter::lowerOperand(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), llvm::MachineSSAUpdater::MachineSSAUpdater(), llvm::SIRegisterInfo::materializeFrameBaseRegister(), llvm::AArch64RegisterInfo::materializeFrameBaseRegister(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::HexagonInstrInfo::mayBeCurLoad(), MIsNeedChainEdge(), llvm::TargetRegisterInfo::needsStackRealignment(), llvm::ARMFrameLowering::noFramePointerElim(), llvm::ConvergingVLIWScheduler::pickNodeFromQueue(), llvm::PPCDispatchGroupSBHazardRecognizer::PreEmitNoops(), llvm::MIRPrinter::print(), llvm::MIPrinter::print(), print(), llvm::MachineFrameInfo::print(), llvm::MachineBasicBlock::print(), llvm::MachineInstr::print(), llvm::AVRAsmPrinter::PrintAsmOperand(), llvm::HexagonAsmPrinter::PrintAsmOperand(), llvm::ARMAsmPrinter::PrintAsmOperand(), llvm::ARMAsmPrinter::printOperand(), llvm::MipsAsmPrinter::printSavedRegsBitmask(), llvm::MIPrinter::printTargetFlags(), produceCompactUnwindFrame(), propagateSwiftErrorVRegs(), llvm::TargetInstrInfo::reassociateOps(), llvm::MachineRegisterInfo::recomputeRegClass(), ReplaceDominatedUses(), replaceFI(), llvm::SIRegisterInfo::requiresFrameIndexReplacementScavenging(), llvm::R600InstrInfo::reserveIndirectRegisters(), llvm::ThumbRegisterInfo::resolveFrameIndex(), llvm::SIRegisterInfo::resolveFrameIndex(), llvm::AArch64RegisterInfo::resolveFrameIndex(), llvm::PPCRegisterInfo::resolveFrameIndex(), llvm::ARMBaseRegisterInfo::resolveFrameIndex(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::ResourcePriorityQueue::ResourcePriorityQueue(), llvm::AVRFrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::XCoreFrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::SIRegisterInfo::restoreSGPR(), RetCC_Hexagon(), RetCC_HexagonVector(), llvm::ThumbRegisterInfo::rewriteFrameIndex(), llvm::HexagonAsmPrinter::runOnMachineFunction(), llvm::AVRDAGToDAGISel::runOnMachineFunction(), llvm::MipsDAGToDAGISel::runOnMachineFunction(), llvm::NVPTXDAGToDAGISel::runOnMachineFunction(), llvm::InstructionSelect::runOnMachineFunction(), llvm::InsertNOPLoad::runOnMachineFunction(), llvm::Legalizer::runOnMachineFunction(), llvm::FixFSMULD::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::ReplaceFMULS::runOnMachineFunction(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::LiveStacks::runOnMachineFunction(), llvm::ARMAsmPrinter::runOnMachineFunction(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::FixAllFDIVSQRT::runOnMachineFunction(), llvm::MipsAsmPrinter::runOnMachineFunction(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::X86AsmPrinter::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::LiveIntervals::runOnMachineFunction(), llvm::NVPTXAsmPrinter::runOnMachineFunction(), llvm::IRTranslator::runOnMachineFunction(), llvm::AVRDynAllocaSR::runOnMachineFunction(), llvm::RegBankSelect::runOnMachineFunction(), llvm::Mips16RegisterInfo::saveScavengerRegister(), llvm::ThumbRegisterInfo::saveScavengerRegister(), llvm::ScheduleDAGInstrs::ScheduleDAGInstrs(), llvm::ConvergingVLIWScheduler::SchedulingCost(), llvm::AVRDAGToDAGISel::SelectInlineAsmMemoryOperand(), llvm::FunctionLoweringInfo::set(), setAliasRegs(), setCallTargetReg(), llvm::MachineIRBuilder::setMF(), llvm::X86MachineFunctionInfo::setRestoreBasePointer(), llvm::AVRFrameLowering::spillCalleeSavedRegisters(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::XCoreFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillSGPR(), llvm::MachineBasicBlock::SplitCriticalEdge(), tryOptimizeLEAtoMOV(), UpdateOperandRegClass(), UpdatePredRedefs(), llvm::DwarfCompileUnit::updateSubprogramScopeDIE(), llvm::MachineBasicBlock::updateTerminator(), llvm::HexagonRegisterInfo::useFPForScavengingIndex(), llvm::VLIWPacketizerList::VLIWPacketizerList(), and writeSPToMemory().
|
inline |
getSubtarget - This method returns a pointer to the specified type of TargetSubtargetInfo.
In debug builds, it verifies that the object being returned is of the correct type.
Definition at line 376 of file MachineFunction.h.
|
inline |
getTarget - Return the target machine this machine code is compiled with
Definition at line 366 of file MachineFunction.h.
Referenced by llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::NVPTXTargetLowering::allowFMA(), llvm::AArch64RegisterInfo::cannotEliminateFrame(), llvm::ARMBaseRegisterInfo::cannotEliminateFrame(), llvm::MachineBasicBlock::canSplitCriticalEdge(), llvm::X86FrameLowering::canUseLEAForSPInEpilogue(), llvm::MipsFunctionInfo::createEhDataRegsFI(), llvm::MipsTargetLowering::createFastISel(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineCalleeSaves(), llvm::TargetFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::X86FrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), ExpandMOVImmSExti8(), llvm::AArch64InstrInfo::expandPostRAPseudo(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::HexagonFrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReference(), llvm::MipsRegisterInfo::getFrameRegister(), llvm::MipsFunctionInfo::getGlobalBaseReg(), llvm::AArch64InstrInfo::getInstSizeInBytes(), llvm::MSP430InstrInfo::getInstSizeInBytes(), llvm::AVRInstrInfo::getInstSizeInBytes(), llvm::MipsInstrInfo::getInstSizeInBytes(), llvm::ARMBaseInstrInfo::getInstSizeInBytes(), llvm::SystemZInstrInfo::getInstSizeInBytes(), llvm::PPCInstrInfo::getInstSizeInBytes(), llvm::SIInstrInfo::getInstSizeInBytes(), llvm::PPCInstrInfo::getMachineCombinerPatterns(), llvm::AVRRegisterInfo::getReservedRegs(), llvm::HexagonInstrInfo::getSize(), llvm::TargetFrameLowering::getStackAlignmentSkew(), llvm::MipsFrameLowering::hasFP(), llvm::SparcFrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::MSP430FrameLowering::hasFP(), llvm::ARMFrameLowering::hasFP(), llvm::XCoreFrameLowering::hasFP(), llvm::AArch64FrameLowering::hasFP(), llvm::HexagonFrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), llvm::AArch64InstrInfo::isAssociativeAndCommutative(), llvm::X86InstrInfo::isAssociativeAndCommutative(), isCombineInstrCandidateFP(), isOptNone(), LowerINTRINSIC_W_CHAIN(), llvm::PPCFrameLowering::needsFP(), llvm::MIPrinter::print(), llvm::MachineInstr::print(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), promoteToConstantPool(), llvm::ARMAsmPrinter::runOnMachineFunction(), shouldLowerMemFuncForSize(), llvm::ARMSubtarget::splitFramePushPop(), and llvm::DwarfCompileUnit::updateSubprogramScopeDIE().
| unsigned MachineFunction::getTypeIDFor | ( | const GlobalValue * | TI | ) |
Return the type id for the specified typeinfo. This is function wide.
Definition at line 690 of file MachineFunction.cpp.
Referenced by addCatchTypeInfo(), and addFilterTypeInfo().
|
inline |
Return a reference to the C++ typeinfo for the current function.
Definition at line 815 of file MachineFunction.h.
Referenced by llvm::EHStreamer::emitExceptionTable(), and llvm::EHStreamer::emitTypeInfos().
|
inline |
Definition at line 833 of file MachineFunction.h.
References VariableDbgInfos.
Referenced by llvm::MIRPrinter::convertStackObjects().
|
inline |
Definition at line 834 of file MachineFunction.h.
References VariableDbgInfos.
|
inline |
getWinEHFuncInfo - Return information about how the current function uses Windows exception handling.
Returns null for functions that don't use funclets for exception handling.
Definition at line 412 of file MachineFunction.h.
Referenced by llvm::WinException::beginFunction(), llvm::X86FrameLowering::emitPrologue(), llvm::SelectionDAGBuilder::lowerInvokable(), MarkEHGuard(), MarkEHRegistrationNode(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), and llvm::FunctionLoweringInfo::set().
|
inline |
Definition at line 413 of file MachineFunction.h.
Return true if the begin label has a call site number associated with it.
Definition at line 810 of file MachineFunction.h.
Referenced by getCallSiteBeginLabel().
Return true if the landing pad Eh symbol has an associated call site.
Definition at line 793 of file MachineFunction.h.
Referenced by getCallSiteLandingPad().
|
inline |
Definition at line 737 of file MachineFunction.h.
Referenced by llvm::WinException::beginFunction(), llvm::X86FrameLowering::determineCalleeSaves(), llvm::X86FrameLowering::emitPrologue(), llvm::WinException::endFunclet(), llvm::WinException::endFunction(), llvm::getFuncletMembership(), llvm::X86FrameLowering::hasFP(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), and llvm::AsmPrinter::SetupMachineFunction().
|
inline |
Returns true if the function contains any inline assembly.
Definition at line 442 of file MachineFunction.h.
Referenced by llvm::PPCRegisterInfo::getReservedRegs().
|
inline |
Definition at line 451 of file MachineFunction.h.
References assert(), and llvm::Optional< T >::hasValue().
Referenced by llvm::WinException::beginFunction(), llvm::X86FrameLowering::emitEpilogue(), and llvm::X86AsmPrinter::EmitInstruction().
|
inline |
Definition at line 569 of file MachineFunction.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::insert().
Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::PPCTargetLowering::EmitAtomicBinary(), emitBlockAfter(), llvm::SparcTargetLowering::emitEHSjLjSetJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitXBegin(), llvm::SparcTargetLowering::expandSelectCC(), llvm::SelectionDAGBuilder::FindMergedConditions(), loadM0FromVGPR(), llvm::MachineBasicBlock::SplitCriticalEdge(), and llvm::SITargetLowering::splitKillBlock().
| void MachineFunction::print | ( | raw_ostream & | OS, |
| const SlotIndexes * | Indexes = nullptr |
||
| ) | const |
print - Print out the MachineFunction in a format suitable for debugging to the specified stream.
Definition at line 426 of file MachineFunction.cpp.
References E, getFunction(), getName(), getParent(), getProperties(), llvm::TargetSubtargetInfo::getRegisterInfo(), getSubtarget(), I, llvm::ModuleSlotTracker::incorporateFunction(), llvm::MachineRegisterInfo::livein_begin(), llvm::MachineRegisterInfo::livein_empty(), llvm::MachineRegisterInfo::livein_end(), llvm::MachineJumpTableInfo::print(), llvm::MachineFunctionProperties::print(), llvm::MachineFrameInfo::print(), and llvm::PrintReg().
Referenced by dump().
|
inline |
Definition at line 567 of file MachineFunction.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back().
Referenced by PlaceLoopMarker(), llvm::IRTranslator::runOnMachineFunction(), and llvm::FunctionLoweringInfo::set().
|
inline |
Definition at line 568 of file MachineFunction.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::push_front().
Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), and llvm::X86FrameLowering::adjustForSegmentedStacks().
|
inline |
Definition at line 555 of file MachineFunction.h.
|
inline |
Definition at line 556 of file MachineFunction.h.
|
inline |
Definition at line 582 of file MachineFunction.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::remove().
Referenced by llvm::MachineBasicBlock::removeFromParent(), and llvm::IRTranslator::runOnMachineFunction().
|
inline |
Definition at line 583 of file MachineFunction.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::remove().
|
inline |
removeFromMBBNumbering - Remove the specific machine basic block from our tracker, this is only really to be used by the MachineBasicBlock implementation.
Definition at line 607 of file MachineFunction.h.
|
inline |
Definition at line 557 of file MachineFunction.h.
|
inline |
Definition at line 558 of file MachineFunction.h.
| void MachineFunction::RenumberBlocks | ( | MachineBasicBlock * | MBB = nullptr | ) |
RenumberBlocks - This discards all of the MachineBasicBlock numbers and recomputes them.
This discards all of the MachineBasicBlock numbers and recomputes them.
This guarantees that the MBB numbers are sequential, dense, and match the ordering of the blocks within the function. If a specific MachineBasicBlock is specified, only that block and those after it are renumbered.
Definition at line 222 of file MachineFunction.cpp.
References assert(), begin(), E, empty(), end(), and llvm::ilist_node_impl< OptionsT >::getIterator().
Referenced by SortBlocks().
|
inline |
Reset the instance as if it was just created.
Definition at line 339 of file MachineFunction.h.
|
inline |
setAlignment - Set the alignment (log2, not bytes) of the function.
Definition at line 421 of file MachineFunction.h.
References A.
Referenced by llvm::MIRParserImpl::initializeMachineFunction(), and llvm::AMDGPUAsmPrinter::runOnMachineFunction().
|
inline |
Definition at line 732 of file MachineFunction.h.
Map the begin label for a call site.
Definition at line 798 of file MachineFunction.h.
Referenced by llvm::SelectionDAGBuilder::lowerInvokable().
Map the landing pad's EH symbol to the call site indexes.
Definition at line 685 of file MachineFunction.cpp.
References llvm::ArrayRef< T >::begin(), and llvm::ArrayRef< T >::end().
|
inline |
Definition at line 735 of file MachineFunction.h.
|
inline |
setCallsSetJmp - Set a flag that indicates if there's a call to a "returns twice" function.
Definition at line 437 of file MachineFunction.h.
References B.
Referenced by llvm::MIRParserImpl::initializeMachineFunction().
|
inline |
Definition at line 738 of file MachineFunction.h.
Referenced by llvm::FunctionLoweringInfo::set().
|
inline |
Set a flag that indicates that the function contains inline assembly.
Definition at line 447 of file MachineFunction.h.
References B.
Referenced by llvm::SelectionDAGISel::runOnMachineFunction().
|
inline |
Definition at line 455 of file MachineFunction.h.
Referenced by llvm::X86FrameLowering::emitPrologue().
|
inline |
Definition at line 371 of file MachineFunction.h.
References llvm::ARM_MB::ST.
Referenced by llvm::MipsTargetMachine::resetSubtarget().
|
inline |
Collect information used to emit debugging information of a variable.
Definition at line 828 of file MachineFunction.h.
References llvm::SmallVectorImpl< T >::emplace_back(), and VariableDbgInfos.
Referenced by llvm::MIRParserImpl::parseStackObjectsDebugInfo(), and llvm::FunctionLoweringInfo::set().
| bool MachineFunction::shouldSplitStack | ( | ) | const |
Should we be emitting segmented stack stuff for the function.
Definition at line 214 of file MachineFunction.cpp.
References getFunction(), and llvm::Function::hasFnAttribute().
Referenced by llvm::X86FrameLowering::emitPrologue(), and llvm::X86FrameLowering::enableShrinkWrapping().
|
inline |
Definition at line 560 of file MachineFunction.h.
Referenced by getJTISymbol(), llvm::SlotIndexes::runOnMachineFunction(), llvm::GraphTraits< MachineFunction * >::size(), and llvm::GraphTraits< const MachineFunction * >::size().
|
inline |
Definition at line 588 of file MachineFunction.h.
Definition at line 572 of file MachineFunction.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::splice().
Referenced by llvm::MachineBasicBlock::moveAfter(), and llvm::MachineBasicBlock::moveBefore().
|
inline |
Definition at line 575 of file MachineFunction.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::splice().
Definition at line 578 of file MachineFunction.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::splice().
Remap landing pad labels and remove any deleted landing pads.
Definition at line 617 of file MachineFunction.cpp.
References llvm::LandingPadInfo::BeginLabels, llvm::LandingPadInfo::EndLabels, i, llvm::MCSymbol::isDefined(), llvm::LandingPadInfo::LandingPadBlock, llvm::LandingPadInfo::LandingPadLabel, and llvm::LandingPadInfo::TypeIds.
Referenced by llvm::WinException::endFunction(), and llvm::DwarfCFIExceptionBase::markFunctionEnd().
| bool MachineFunction::verify | ( | Pass * | p = nullptr, |
| const char * | Banner = nullptr, |
||
| bool | AbortOnError = true |
||
| ) | const |
Run the current MachineFunction through the machine code verifier, useful for debugger use.
Definition at line 291 of file MachineVerifier.cpp.
References llvm::report_fatal_error().
Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::RegScavenger::forward(), and llvm::MIRParserImpl::initializeMachineFunction().
| void MachineFunction::viewCFG | ( | ) | const |
viewCFG - This function is meant for use from the debugger.
You can just say 'call F->viewCFG()' and a ghostview window should pop up from the program, displaying the CFG of the current function with the code for each basic block inside. This depends on there being a 'dot' and 'gv' program in your path.
Definition at line 503 of file MachineFunction.cpp.
References llvm::errs(), getName(), and llvm::ViewGraph().
| void MachineFunction::viewCFGOnly | ( | ) | const |
viewCFGOnly - This function is meant for use from the debugger.
It works just like viewCFG, but it does not include the contents of basic blocks into the nodes, just the label. If you are only interested in the CFG this can make the graph smaller.
Definition at line 513 of file MachineFunction.cpp.
References llvm::errs(), getName(), and llvm::ViewGraph().
| VariableDbgInfoMapTy llvm::MachineFunction::VariableDbgInfos |
Definition at line 332 of file MachineFunction.h.
Referenced by getVariableDbgInfo(), and setVariableDbgInfo().
1.8.6