|
LLVM
3.7.0
|
Primary interface to the complete machine description for the target machine. More...
#include <TargetMachine.h>
Public Types | |
| enum | CodeGenFileType { CGFT_AssemblyFile, CGFT_ObjectFile, CGFT_Null } |
| These enums are meant to be passed into addPassesToEmitFile to indicate what type of file to emit, and returned by it to indicate what type of file could actually be made. More... | |
Public Member Functions | |
| virtual | ~TargetMachine () |
| const Target & | getTarget () const |
| const Triple & | getTargetTriple () const |
| StringRef | getTargetCPU () const |
| StringRef | getTargetFeatureString () const |
| virtual const TargetSubtargetInfo * | getSubtargetImpl (const Function &) const |
| Virtual method implemented by subclasses that returns a reference to that target's TargetSubtargetInfo-derived member variable. More... | |
| virtual TargetLoweringObjectFile * | getObjFileLowering () const |
| template<typename STC > | |
| const STC & | getSubtarget (const Function &F) const |
| This method returns a pointer to the specified type of TargetSubtargetInfo. More... | |
| const DataLayout * | getDataLayout () const |
| Deprecated in 3.7, will be removed in 3.8. More... | |
| const DataLayout | createDataLayout () const |
| Create a DataLayout. More... | |
| void | resetTargetOptions (const Function &F) const |
| Reset the target options based on the function's attributes. More... | |
| const MCAsmInfo * | getMCAsmInfo () const |
| Return target specific asm information. More... | |
| const MCRegisterInfo * | getMCRegisterInfo () const |
| const MCInstrInfo * | getMCInstrInfo () const |
| const MCSubtargetInfo * | getMCSubtargetInfo () const |
| virtual const TargetIntrinsicInfo * | getIntrinsicInfo () const |
| If intrinsic information is available, return it. If not, return null. More... | |
| bool | requiresStructuredCFG () const |
| void | setRequiresStructuredCFG (bool Value) |
| Reloc::Model | getRelocationModel () const |
| Returns the code generation relocation model. More... | |
| CodeModel::Model | getCodeModel () const |
| Returns the code model. More... | |
| TLSModel::Model | getTLSModel (const GlobalValue *GV) const |
| Returns the TLS model which should be used for the given global variable. More... | |
| CodeGenOpt::Level | getOptLevel () const |
| Returns the optimization level: None, Less, Default, or Aggressive. More... | |
| void | setOptLevel (CodeGenOpt::Level Level) const |
| Overrides the optimization level. More... | |
| void | setFastISel (bool Enable) |
| bool | shouldPrintMachineCode () const |
| bool | getAsmVerbosityDefault () const |
| Returns the default value of asm verbosity. More... | |
| bool | getUniqueSectionNames () const |
| bool | getDataSections () const |
| Return true if data objects should be emitted into their own section, corresponds to -fdata-sections. More... | |
| bool | getFunctionSections () const |
| Return true if functions should be emitted into their own section, corresponding to -ffunction-sections. More... | |
| virtual TargetIRAnalysis | getTargetIRAnalysis () |
Get a TargetIRAnalysis appropriate for the target. More... | |
| virtual bool | addPassesToEmitFile (PassManagerBase &, raw_pwrite_stream &, CodeGenFileType, bool=true, AnalysisID=nullptr, AnalysisID=nullptr, AnalysisID=nullptr, MachineFunctionInitializer *=nullptr) |
| Add passes to the specified pass manager to get the specified file emitted. More... | |
| virtual bool | addPassesToEmitMC (PassManagerBase &, MCContext *&, raw_pwrite_stream &, bool=true) |
| Add passes to the specified pass manager to get machine code emitted with the MCJIT. More... | |
| void | getNameWithPrefix (SmallVectorImpl< char > &Name, const GlobalValue *GV, Mangler &Mang, bool MayAlwaysUsePrivate=false) const |
| MCSymbol * | getSymbol (const GlobalValue *GV, Mangler &Mang) const |
Public Attributes | |
| TargetOptions | Options |
Protected Member Functions | |
| TargetMachine (const Target &T, StringRef DataLayoutString, const Triple &TargetTriple, StringRef CPU, StringRef FS, const TargetOptions &Options) | |
Protected Attributes | |
| const Target & | TheTarget |
| The Target that this machine was created for. More... | |
| const DataLayout | DL |
| For ABI type size and alignment. More... | |
| Triple | TargetTriple |
| Triple string, CPU name, and target feature strings the TargetMachine instance is created with. More... | |
| std::string | TargetCPU |
| std::string | TargetFS |
| MCCodeGenInfo * | CodeGenInfo |
| Low level target information such as relocation model. More... | |
| const MCAsmInfo * | AsmInfo |
| Contains target specific asm information. More... | |
| const MCRegisterInfo * | MRI |
| const MCInstrInfo * | MII |
| const MCSubtargetInfo * | STI |
| unsigned | RequireStructuredCFG: 1 |
Primary interface to the complete machine description for the target machine.
All target-specific information should be accessible through this interface.
Definition at line 68 of file Target/TargetMachine.h.
These enums are meant to be passed into addPassesToEmitFile to indicate what type of file to emit, and returned by it to indicate what type of file could actually be made.
| Enumerator | |
|---|---|
| CGFT_AssemblyFile | |
| CGFT_ObjectFile | |
| CGFT_Null | |
Definition at line 208 of file Target/TargetMachine.h.
|
protected |
Definition at line 40 of file TargetMachine.cpp.
References llvm::DL.
|
virtual |
Definition at line 48 of file TargetMachine.cpp.
References AsmInfo, CodeGenInfo, MII, MRI, and STI.
|
inlinevirtual |
Add passes to the specified pass manager to get the specified file emitted.
Typically this will involve several steps of code generation. This method should return true if emission of this file type is not supported, or false on success.
Reimplemented in llvm::LLVMTargetMachine, and llvm::CPPTargetMachine.
Definition at line 218 of file Target/TargetMachine.h.
Referenced by LLVMTargetMachineEmit().
|
inlinevirtual |
Add passes to the specified pass manager to get machine code emitted with the MCJIT.
This method returns true if machine code is not supported. It fills the MCContext Ctx pointer which can be used to build custom MCStreamer.
Reimplemented in llvm::LLVMTargetMachine, and llvm::NVPTXTargetMachine.
Definition at line 231 of file Target/TargetMachine.h.
Referenced by llvm::orc::SimpleCompiler::operator()().
|
inline |
|
inline |
Returns the default value of asm verbosity.
Definition at line 180 of file Target/TargetMachine.h.
References llvm::MCTargetOptions::AsmVerbose, and llvm::TargetOptions::MCOptions.
| CodeModel::Model TargetMachine::getCodeModel | ( | ) | const |
Returns the code model.
getCodeModel - Returns the code model.
The choices are small, kernel, medium, large, and target default.
Definition at line 85 of file TargetMachine.cpp.
References CodeGenInfo, llvm::CodeModel::Default, and llvm::MCCodeGenInfo::getCodeModel().
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::AArch64Subtarget::ClassifyGlobalReference(), llvm::X86Subtarget::ClassifyGlobalReference(), llvm::ARMFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitStackProbeCall(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::X86TargetLowering::getStackCookieLocation(), llvm::TargetLoweringObjectFile::Initialize(), llvm::X86TargetLowering::isLegalAddressingMode(), IsSmallObject(), llvm::SparcTargetLowering::makeAddress(), and llvm::XCoreTargetObjectFile::SelectSectionForGlobal().
|
inline |
Deprecated in 3.7, will be removed in 3.8.
Use createDataLayout() instead.
This method returns a pointer to the DataLayout for the target. It should be unchanging for every subtarget.
Definition at line 132 of file Target/TargetMachine.h.
References DL.
Referenced by llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::AsmPrinter::doFinalization(), llvm::AsmPrinter::EmitAlignment(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), llvm::AsmPrinter::EmitConstantPool(), llvm::AsmPrinter::EmitGlobalConstant(), emitGlobalConstantArray(), emitGlobalConstantDataSequential(), emitGlobalConstantFP(), emitGlobalConstantImpl(), emitGlobalConstantLargeInt(), emitGlobalConstantStruct(), emitGlobalConstantVector(), llvm::AsmPrinter::EmitGlobalVariable(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::SystemZAsmPrinter::EmitMachineConstantPoolValue(), llvm::ARMAsmPrinter::EmitMachineConstantPoolValue(), llvm::TargetLoweringBase::emitPatchPoint(), llvm::TargetLoweringObjectFileELF::emitPersonalityValue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::ARMAsmPrinter::EmitXXStructor(), llvm::MSP430MCInstLower::GetConstantPoolIndexSymbol(), llvm::X86AsmPrinter::GetCPISymbol(), llvm::AsmPrinter::GetCPISymbol(), llvm::AsmPrinter::getDataLayout(), llvm::AsmPrinter::GetExternalSymbolSymbol(), llvm::AsmPrinter::GetJTSetSymbol(), llvm::MSP430MCInstLower::GetJumpTableSymbol(), llvm::TargetLoweringObjectFile::getKindForGlobal(), llvm::PPCFunctionInfo::getPICOffsetSymbol(), llvm::AsmPrinter::GetSizeOfEncodedValue(), llvm::TargetInstrInfo::getStackSlotRange(), GetSymbolFromOperand(), llvm::TargetLoweringObjectFile::Initialize(), llvm::MipsTargetObjectFile::IsConstantInSmallSection(), llvm::HexagonTargetObjectFile::IsGlobalInSmallSection(), llvm::MipsTargetObjectFile::IsGlobalInSmallSectionImpl(), isRepeatedByteSequence(), LLVMTargetMachineEmit(), llvm::AsmPrinter::lowerConstant(), llvm::LTOCodeGenerator::optimize(), llvm::MipsAsmPrinter::printOperand(), llvm::AsmPrinter::PrintSpecial(), selectELFSectionForGlobal(), llvm::XCoreTargetObjectFile::SelectSectionForGlobal(), llvm::TargetLoweringObjectFileMachO::SelectSectionForGlobal(), llvm::SparcTargetLowering::SparcTargetLowering(), llvm::SystemZTargetLowering::SystemZTargetLowering(), and llvm::X86TargetLowering::X86TargetLowering().
|
inline |
Return true if data objects should be emitted into their own section, corresponds to -fdata-sections.
Definition at line 188 of file Target/TargetMachine.h.
References llvm::TargetOptions::DataSections.
Referenced by llvm::TargetLoweringObjectFileCOFF::getNameWithPrefix(), llvm::TargetLoweringObjectFileELF::SelectSectionForGlobal(), and llvm::TargetLoweringObjectFileCOFF::SelectSectionForGlobal().
|
inline |
Return true if functions should be emitted into their own section, corresponding to -ffunction-sections.
Definition at line 194 of file Target/TargetMachine.h.
References llvm::TargetOptions::FunctionSections.
Referenced by llvm::TargetLoweringObjectFileCOFF::getNameWithPrefix(), llvm::TargetLoweringObjectFileELF::getSectionForJumpTable(), llvm::TargetLoweringObjectFileCOFF::getSectionForJumpTable(), llvm::TargetLoweringObjectFileELF::SelectSectionForGlobal(), and llvm::TargetLoweringObjectFileCOFF::SelectSectionForGlobal().
|
inlinevirtual |
If intrinsic information is available, return it. If not, return null.
Reimplemented in llvm::AMDGPUTargetMachine.
Definition at line 150 of file Target/TargetMachine.h.
Referenced by llvm::SDNode::getOperationName().
Return target specific asm information.
Definition at line 143 of file Target/TargetMachine.h.
References AsmInfo.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), addPassesToGenerateCode(), llvm::TargetPassConfig::addPassesToHandleExceptions(), llvm::X86FrameLowering::canUseLEAForSPInEpilogue(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::X86FrameLowering::emitEpilogue(), llvm::AMDGPUAsmPrinter::EmitInstruction(), llvm::X86FrameLowering::emitPrologue(), llvm::X86FrameLowering::getFrameIndexOffset(), llvm::AArch64InstrInfo::GetInstSizeInBytes(), llvm::MSP430InstrInfo::GetInstSizeInBytes(), llvm::MipsInstrInfo::GetInstSizeInBytes(), llvm::ARMBaseInstrInfo::GetInstSizeInBytes(), llvm::SystemZInstrInfo::getInstSizeInBytes(), llvm::PPCInstrInfo::GetInstSizeInBytes(), llvm::ARMElfTargetObjectFile::getTTypeGlobalReference(), and LowerINTRINSIC_W_CHAIN().
|
inline |
Definition at line 146 of file Target/TargetMachine.h.
References MII.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), and llvm::LLVMTargetMachine::addPassesToEmitMC().
|
inline |
Definition at line 145 of file Target/TargetMachine.h.
References MRI.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), llvm::LLVMTargetMachine::addPassesToEmitMC(), and addPassesToGenerateCode().
|
inline |
Definition at line 147 of file Target/TargetMachine.h.
References STI.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), and llvm::LLVMTargetMachine::addPassesToEmitMC().
| void TargetMachine::getNameWithPrefix | ( | SmallVectorImpl< char > & | Name, |
| const GlobalValue * | GV, | ||
| Mangler & | Mang, | ||
| bool | MayAlwaysUsePrivate = false |
||
| ) | const |
Definition at line 171 of file TargetMachine.cpp.
References AsmInfo, canUsePrivateLabel(), llvm::TargetLoweringObjectFile::getKindForGlobal(), llvm::Mangler::getNameWithPrefix(), llvm::TargetLoweringObjectFile::getNameWithPrefix(), getObjFileLowering(), llvm::GlobalValue::hasPrivateLinkage(), and llvm::TargetLoweringObjectFile::SectionForGlobal().
Referenced by llvm::AsmPrinter::getNameWithPrefix(), getSymbol(), GetSymbolFromOperand(), llvm::TargetLoweringObjectFile::getSymbolWithGlobalValueBase(), and selectELFSectionForGlobal().
|
inlinevirtual |
Reimplemented in llvm::MipsTargetMachine, llvm::NVPTXTargetMachine, llvm::ARMBaseTargetMachine, llvm::AMDGPUTargetMachine, llvm::PPCTargetMachine, llvm::AArch64TargetMachine, llvm::SystemZTargetMachine, llvm::HexagonTargetMachine, llvm::MSP430TargetMachine, llvm::X86TargetMachine, llvm::WebAssemblyTargetMachine, llvm::XCoreTargetMachine, llvm::SparcTargetMachine, and llvm::BPFTargetMachine.
Definition at line 117 of file Target/TargetMachine.h.
Referenced by addPassesToGenerateCode(), getNameWithPrefix(), llvm::AsmPrinter::getObjFileLowering(), getSymbol(), and llvm::HexagonTargetLowering::LowerGLOBALADDRESS().
| CodeGenOpt::Level TargetMachine::getOptLevel | ( | ) | const |
Returns the optimization level: None, Less, Default, or Aggressive.
getOptLevel - Returns the optimization level: None, Less, Default, or Aggressive.
Definition at line 141 of file TargetMachine.cpp.
References CodeGenInfo, llvm::CodeGenOpt::Default, and llvm::MCCodeGenInfo::getOptLevel().
Referenced by addPassesToGenerateCode(), llvm::TargetPassConfig::getOptLevel(), llvm::PPCTargetMachine::getSubtargetImpl(), llvm::SITargetLowering::PerformDAGCombine(), and llvm::X86TargetLowering::X86TargetLowering().
| Reloc::Model TargetMachine::getRelocationModel | ( | ) | const |
Returns the code generation relocation model.
getRelocationModel - Returns the code generation relocation model.
The choices are static, PIC, and dynamic-no-pic, and target default.
Definition at line 77 of file TargetMachine.cpp.
References CodeGenInfo, llvm::Reloc::Default, and llvm::MCCodeGenInfo::getRelocationModel().
Referenced by assureFPCallStub(), llvm::AArch64Subtarget::ClassifyGlobalReference(), computeBasePointerSaveOffset(), createFPFnStub(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::ARMAsmPrinter::EmitJumpTableAddrs(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::MipsAsmPrinter::EmitStartOfAsmFile(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), fixupFPReturnAndCall(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::PPCRegisterInfo::getBaseRegister(), llvm::TargetLoweringObjectFile::getKindForGlobal(), GetLabelAccessInfo(), llvm::MipsSubtarget::getRelocationModel(), llvm::PPCRegisterInfo::getReservedRegs(), getTLSModel(), llvm::PPCSubtarget::hasLazyResolverStub(), llvm::TargetLoweringObjectFile::Initialize(), llvm::X86TargetLowering::isLegalAddressingMode(), llvm::X86Subtarget::IsLegalToCallImmediateAddr(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::X86TargetLowering::LowerCustomJumpTableEntry(), llvm::SparcTargetLowering::makeAddress(), llvm::MipsSubtarget::MipsSubtarget(), PrepareCall(), and llvm::X86Subtarget::X86Subtarget().
|
inline |
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 124 of file Target/TargetMachine.h.
References getSubtargetImpl().
|
inlinevirtual |
Virtual method implemented by subclasses that returns a reference to that target's TargetSubtargetInfo-derived member variable.
Reimplemented in llvm::MipsTargetMachine, llvm::AMDGPUTargetMachine, llvm::ARMBaseTargetMachine, llvm::NVPTXTargetMachine, llvm::PPCTargetMachine, llvm::MSP430TargetMachine, llvm::SystemZTargetMachine, llvm::AArch64TargetMachine, llvm::WebAssemblyTargetMachine, llvm::X86TargetMachine, llvm::HexagonTargetMachine, llvm::SparcTargetMachine, llvm::XCoreTargetMachine, and llvm::BPFTargetMachine.
Definition at line 114 of file Target/TargetMachine.h.
Referenced by accumulateAndSortLibcalls(), getSubtarget(), llvm::X86TTIImpl::hasCompatibleFunctionAttributes(), llvm::isInTailCallPosition(), llvm::AMDGPUAsmPrinter::PrintAsmOperand(), and llvm::StackProtector::runOnFunction().
| MCSymbol * TargetMachine::getSymbol | ( | const GlobalValue * | GV, |
| Mangler & | Mang | ||
| ) | const |
Definition at line 187 of file TargetMachine.cpp.
References llvm::TargetLoweringObjectFile::getContext(), getNameWithPrefix(), getObjFileLowering(), and llvm::MCContext::getOrCreateSymbol().
Referenced by llvm::X86_64MachoTargetObjectFile::getCFIPersonalitySymbol(), llvm::AArch64_MachoTargetObjectFile::getCFIPersonalitySymbol(), llvm::TargetLoweringObjectFileELF::getCFIPersonalitySymbol(), llvm::TargetLoweringObjectFileMachO::getCFIPersonalitySymbol(), llvm::TargetLoweringObjectFile::getCFIPersonalitySymbol(), llvm::TargetLoweringObjectFileCOFF::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileCOFF::getSectionForJumpTable(), llvm::AsmPrinter::getSymbol(), llvm::X86_64MachoTargetObjectFile::getTTypeGlobalReference(), llvm::SparcELFTargetObjectFile::getTTypeGlobalReference(), llvm::AArch64_MachoTargetObjectFile::getTTypeGlobalReference(), llvm::ARMElfTargetObjectFile::getTTypeGlobalReference(), llvm::TargetLoweringObjectFileELF::getTTypeGlobalReference(), llvm::TargetLoweringObjectFileMachO::getTTypeGlobalReference(), llvm::TargetLoweringObjectFile::getTTypeGlobalReference(), and llvm::TargetLoweringObjectFileCOFF::SelectSectionForGlobal().
Definition at line 106 of file Target/TargetMachine.h.
References TheTarget.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), llvm::LLVMTargetMachine::addPassesToEmitMC(), llvm::EngineBuilder::create(), and llvm::AsmPrinter::doInitialization().
|
inline |
Definition at line 109 of file Target/TargetMachine.h.
References TargetCPU.
Referenced by llvm::AsmPrinter::doInitialization(), llvm::NVPTXAsmPrinter::doInitialization(), llvm::MipsAsmPrinter::EmitStartOfAsmFile(), and llvm::LLVMTargetMachine::initAsmInfo().
|
inline |
Definition at line 110 of file Target/TargetMachine.h.
References TargetFS.
Referenced by llvm::AsmPrinter::doInitialization(), llvm::NVPTXAsmPrinter::doInitialization(), llvm::MipsAsmPrinter::EmitStartOfAsmFile(), and llvm::LLVMTargetMachine::initAsmInfo().
|
virtual |
Get a TargetIRAnalysis appropriate for the target.
This is used to construct the new pass manager's target IR analysis pass, set up appropriately for this target machine. Even the old pass manager uses this to answer queries about the IR.
Reimplemented in llvm::LLVMTargetMachine, llvm::NVPTXTargetMachine, llvm::AMDGPUTargetMachine, llvm::ARMBaseTargetMachine, llvm::PPCTargetMachine, llvm::MipsTargetMachine, llvm::WebAssemblyTargetMachine, llvm::AArch64TargetMachine, llvm::SystemZTargetMachine, llvm::XCoreTargetMachine, and llvm::X86TargetMachine.
Definition at line 152 of file TargetMachine.cpp.
References F(), llvm::Module::getDataLayout(), and llvm::GlobalValue::getParent().
Referenced by llvm::LTOCodeGenerator::optimize().
Definition at line 108 of file Target/TargetMachine.h.
References TargetTriple.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), llvm::LLVMTargetMachine::addPassesToEmitMC(), canCombineSinCosLibcall(), createPPCAsmPrinterPass(), llvm::AsmPrinter::doFinalization(), llvm::AsmPrinter::doInitialization(), llvm::NVPTXAsmPrinter::doInitialization(), llvm::ARMAsmPrinter::EmitEndOfAsmFile(), llvm::X86AsmPrinter::EmitEndOfAsmFile(), llvm::ARMAsmPrinter::EmitStartOfAsmFile(), llvm::X86AsmPrinter::EmitStartOfAsmFile(), llvm::MipsAsmPrinter::EmitStartOfAsmFile(), llvm::ARMAsmPrinter::getISAEncoding(), llvm::PPCTargetMachine::getSubtargetImpl(), GetSymbolFromOperand(), llvm::AsmPrinter::getTargetTriple(), llvm::LLVMTargetMachine::initAsmInfo(), llvm::TargetLoweringObjectFile::Initialize(), llvm::MipsSubtarget::initializeSubtargetDependencies(), llvm::PPCTargetMachine::isPPC64(), llvm::LTOCodeGenerator::optimize(), and llvm::TargetLoweringBase::TargetLoweringBase().
| TLSModel::Model TargetMachine::getTLSModel | ( | const GlobalValue * | GV | ) | const |
Returns the TLS model which should be used for the given global variable.
Definition at line 109 of file TargetMachine.cpp.
References llvm::TLSModel::GeneralDynamic, getRelocationModel(), getSelectedTLSModel(), llvm::GlobalValue::hasHiddenVisibility(), llvm::GlobalValue::hasLocalLinkage(), llvm::TLSModel::InitialExec, llvm::GlobalValue::isDeclaration(), llvm::TLSModel::LocalDynamic, llvm::TLSModel::LocalExec, Options, llvm::Reloc::PIC_, and llvm::TargetOptions::PositionIndependentExecutable.
Referenced by llvm::SparcTargetLowering::LowerGlobalTLSAddress(), llvm::AArch64MCInstLower::lowerSymbolOperandELF(), and memAddrUsesCTR().
|
inline |
Definition at line 184 of file Target/TargetMachine.h.
References llvm::TargetOptions::UniqueSectionNames.
Referenced by selectELFSectionForGlobal().
|
inline |
Definition at line 154 of file Target/TargetMachine.h.
References RequireStructuredCFG.
Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), and llvm::MachineBasicBlock::SplitCriticalEdge().
Reset the target options based on the function's attributes.
Definition at line 62 of file TargetMachine.cpp.
References RESET_OPTION.
Referenced by llvm::AArch64TargetMachine::getSubtargetImpl(), llvm::X86TargetMachine::getSubtargetImpl(), llvm::WebAssemblyTargetMachine::getSubtargetImpl(), llvm::PPCTargetMachine::getSubtargetImpl(), llvm::ARMBaseTargetMachine::getSubtargetImpl(), llvm::MipsTargetMachine::getSubtargetImpl(), and llvm::SelectionDAGISel::runOnMachineFunction().
|
inline |
Definition at line 174 of file Target/TargetMachine.h.
References llvm::TargetOptions::EnableFastISel.
Referenced by addPassesToGenerateCode(), llvm::OptLevelChanger::OptLevelChanger(), and llvm::OptLevelChanger::~OptLevelChanger().
| void TargetMachine::setOptLevel | ( | CodeGenOpt::Level | Level | ) | const |
Overrides the optimization level.
Definition at line 147 of file TargetMachine.cpp.
References CodeGenInfo, and llvm::MCCodeGenInfo::setOptLevel().
Referenced by llvm::OptLevelChanger::OptLevelChanger(), and llvm::OptLevelChanger::~OptLevelChanger().
|
inline |
Definition at line 155 of file Target/TargetMachine.h.
References RequireStructuredCFG.
Referenced by llvm::AMDGPUTargetMachine::AMDGPUTargetMachine(), and llvm::WebAssemblyTargetMachine::WebAssemblyTargetMachine().
|
inline |
Definition at line 176 of file Target/TargetMachine.h.
References llvm::TargetOptions::PrintMachineCode.
Referenced by llvm::TargetPassConfig::addPrintPass().
Contains target specific asm information.
Definition at line 93 of file Target/TargetMachine.h.
Referenced by getMCAsmInfo(), getNameWithPrefix(), llvm::LLVMTargetMachine::initAsmInfo(), and ~TargetMachine().
|
protected |
Low level target information such as relocation model.
Non-const to allow resetting optimization level per-function.
Definition at line 90 of file Target/TargetMachine.h.
Referenced by getCodeModel(), getOptLevel(), getRelocationModel(), llvm::LLVMTargetMachine::LLVMTargetMachine(), setOptLevel(), and ~TargetMachine().
|
protected |
For ABI type size and alignment.
Definition at line 80 of file Target/TargetMachine.h.
Referenced by createDataLayout(), and getDataLayout().
|
protected |
Definition at line 96 of file Target/TargetMachine.h.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), getMCInstrInfo(), llvm::LLVMTargetMachine::initAsmInfo(), and ~TargetMachine().
|
protected |
Definition at line 95 of file Target/TargetMachine.h.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), llvm::LLVMTargetMachine::addPassesToEmitMC(), getMCRegisterInfo(), llvm::LLVMTargetMachine::initAsmInfo(), and ~TargetMachine().
|
mutable |
Definition at line 102 of file Target/TargetMachine.h.
Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::LLVMTargetMachine::addPassesToEmitFile(), llvm::LLVMTargetMachine::addPassesToEmitMC(), llvm::NVPTXTargetLowering::allowFMA(), llvm::ARMTargetLowering::ARMTargetLowering(), canCombineSinCosLibcall(), llvm::AArch64RegisterInfo::cannotEliminateFrame(), llvm::ARMBaseRegisterInfo::cannotEliminateFrame(), llvm::MipsTargetLowering::createFastISel(), llvm::PPCFrameLowering::determineCalleeSaves(), llvm::AsmPrinter::doInitialization(), llvm::DwarfDebug::DwarfDebug(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::emitEpilogue(), llvm::TargetLoweringObjectFile::getKindForGlobal(), llvm::X86InstrInfo::getMachineCombinerPatterns(), GetNegatedExpression(), llvm::SelectionDAG::getNode(), llvm::X86TargetMachine::getSubtargetImpl(), getTLSModel(), llvm::MipsFrameLowering::hasFP(), llvm::SparcFrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::MSP430FrameLowering::hasFP(), llvm::XCoreFrameLowering::hasFP(), llvm::ARMFrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), llvm::LLVMTargetMachine::initAsmInfo(), llvm::MipsTargetObjectFile::Initialize(), llvm::HexagonTargetObjectFile::Initialize(), llvm::isInTailCallPosition(), llvm::AArch64TargetLowering::isProfitableToHoist(), llvm::PPCFrameLowering::needsFP(), llvm::OptLevelChanger::OptLevelChanger(), PerformFMinFMaxCombine(), PerformSELECT_CCCombine(), performSelectCCCombine(), PerformSELECTCombine(), llvm::PPCTargetLowering::PPCTargetLowering(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::FastISel::selectOperator(), llvm::DwarfCompileUnit::updateSubprogramScopeDIE(), llvm::ARMSubtarget::useFastISel(), and llvm::X86TargetLowering::X86TargetLowering().
|
protected |
Definition at line 99 of file Target/TargetMachine.h.
Referenced by requiresStructuredCFG(), and setRequiresStructuredCFG().
|
protected |
Definition at line 97 of file Target/TargetMachine.h.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), llvm::LLVMTargetMachine::addPassesToEmitMC(), getMCSubtargetInfo(), llvm::LLVMTargetMachine::initAsmInfo(), and ~TargetMachine().
|
protected |
Definition at line 85 of file Target/TargetMachine.h.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), llvm::LLVMTargetMachine::addPassesToEmitMC(), llvm::X86TargetMachine::getSubtargetImpl(), llvm::WebAssemblyTargetMachine::getSubtargetImpl(), llvm::AArch64TargetMachine::getSubtargetImpl(), llvm::PPCTargetMachine::getSubtargetImpl(), llvm::ARMBaseTargetMachine::getSubtargetImpl(), llvm::MipsTargetMachine::getSubtargetImpl(), and getTargetCPU().
|
protected |
Definition at line 86 of file Target/TargetMachine.h.
Referenced by llvm::AArch64TargetMachine::getSubtargetImpl(), llvm::X86TargetMachine::getSubtargetImpl(), llvm::WebAssemblyTargetMachine::getSubtargetImpl(), llvm::PPCTargetMachine::getSubtargetImpl(), llvm::ARMBaseTargetMachine::getSubtargetImpl(), llvm::MipsTargetMachine::getSubtargetImpl(), and getTargetFeatureString().
|
protected |
Triple string, CPU name, and target feature strings the TargetMachine instance is created with.
Definition at line 84 of file Target/TargetMachine.h.
Referenced by llvm::AArch64TargetMachine::getSubtargetImpl(), llvm::X86TargetMachine::getSubtargetImpl(), llvm::WebAssemblyTargetMachine::getSubtargetImpl(), llvm::PPCTargetMachine::getSubtargetImpl(), llvm::ARMBaseTargetMachine::getSubtargetImpl(), llvm::MipsTargetMachine::getSubtargetImpl(), and getTargetTriple().
The Target that this machine was created for.
Definition at line 77 of file Target/TargetMachine.h.
Referenced by getTarget(), and llvm::LLVMTargetMachine::initAsmInfo().
1.8.6