LLVM API Documentation

Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
llvm::TargetMachine Class Reference

#include <TargetMachine.h>

Inheritance diagram for llvm::TargetMachine:
Inheritance graph
[legend]
Collaboration diagram for llvm::TargetMachine:
Collaboration graph
[legend]

List of all members.

Public Types

enum  CodeGenFileType { CGFT_AssemblyFile, CGFT_ObjectFile, CGFT_Null }

Public Member Functions

virtual ~TargetMachine ()
const TargetgetTarget () const
const StringRef getTargetTriple () const
const StringRef getTargetCPU () const
const StringRef getTargetFeatureString () const
virtual const TargetSubtargetInfogetSubtargetImpl () const
void resetTargetOptions (const MachineFunction *MF) const
 Reset the target options based on the function's attributes.
virtual const TargetInstrInfogetInstrInfo () const
virtual const TargetFrameLoweringgetFrameLowering () const
virtual const TargetLoweringgetTargetLowering () const
virtual const
TargetSelectionDAGInfo
getSelectionDAGInfo () const
virtual const DataLayoutgetDataLayout () const
const MCAsmInfogetMCAsmInfo () const
template<typename STC >
const STC & getSubtarget () const
virtual const TargetRegisterInfogetRegisterInfo () const
virtual const TargetIntrinsicInfogetIntrinsicInfo () const
virtual TargetJITInfogetJITInfo ()
virtual const InstrItineraryDatagetInstrItineraryData () const
bool hasMCRelaxAll () const
void setMCRelaxAll (bool Value)
bool hasMCSaveTempLabels () const
void setMCSaveTempLabels (bool Value)
bool hasMCNoExecStack () const
 hasMCNoExecStack - Check whether an executable stack is not needed.
void setMCNoExecStack (bool Value)
 setMCNoExecStack - Set whether an executabel stack is not needed.
bool hasMCUseLoc () const
 hasMCUseLoc - Check whether we should use dwarf's .loc directive.
void setMCUseLoc (bool Value)
 setMCUseLoc - Set whether all we should use dwarf's .loc directive.
bool hasMCUseCFI () const
 hasMCUseCFI - Check whether we should use dwarf's .cfi_* directives.
void setMCUseCFI (bool Value)
 setMCUseCFI - Set whether all we should use dwarf's .cfi_* directives.
bool hasMCUseDwarfDirectory () const
void setMCUseDwarfDirectory (bool Value)
Reloc::Model getRelocationModel () const
CodeModel::Model getCodeModel () const
TLSModel::Model getTLSModel (const GlobalValue *GV) const
CodeGenOpt::Level getOptLevel () const
void setFastISel (bool Enable)
bool shouldPrintMachineCode () const
virtual void addAnalysisPasses (PassManagerBase &)
 Register analysis passes for this target with a pass manager.
virtual bool addPassesToEmitFile (PassManagerBase &, formatted_raw_ostream &, CodeGenFileType, bool=true, AnalysisID StartAfter=0, AnalysisID StopAfter=0)
virtual bool addPassesToEmitMachineCode (PassManagerBase &, JITCodeEmitter &, bool=true)
virtual bool addPassesToEmitMC (PassManagerBase &, MCContext *&, raw_ostream &, bool=true)

Static Public Member Functions

static bool getAsmVerbosityDefault ()
static void setAsmVerbosityDefault (bool)
static bool getDataSections ()
static bool getFunctionSections ()
static void setDataSections (bool)
 setDataSections - Set if the data are emit into separate sections.
static void setFunctionSections (bool)

Public Attributes

TargetOptions Options

Protected Member Functions

 TargetMachine (const Target &T, StringRef TargetTriple, StringRef CPU, StringRef FS, const TargetOptions &Options)

Protected Attributes

const TargetTheTarget
 TheTarget - The Target that this machine was created for.
std::string TargetTriple
std::string TargetCPU
std::string TargetFS
const MCCodeGenInfoCodeGenInfo
 CodeGenInfo - Low level target information such as relocation model.
const MCAsmInfoAsmInfo
unsigned MCRelaxAll: 1
unsigned MCNoExecStack: 1
unsigned MCSaveTempLabels: 1
unsigned MCUseLoc: 1
unsigned MCUseCFI: 1
unsigned MCUseDwarfDirectory: 1

Detailed Description

TargetMachine - Primary interface to the complete machine description for the target machine. All target-specific information should be accessible through this interface.

Definition at line 56 of file Target/TargetMachine.h.


Member Enumeration Documentation

CodeGenFileType - 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 241 of file Target/TargetMachine.h.


Constructor & Destructor Documentation

TargetMachine::TargetMachine ( const Target T,
StringRef  TargetTriple,
StringRef  CPU,
StringRef  FS,
const TargetOptions Options 
) [protected]

Definition at line 47 of file TargetMachine.cpp.

TargetMachine::~TargetMachine ( ) [virtual]

Definition at line 61 of file TargetMachine.cpp.

References AsmInfo, and CodeGenInfo.


Member Function Documentation

virtual void llvm::TargetMachine::addAnalysisPasses ( PassManagerBase ) [inline, virtual]

Register analysis passes for this target with a pass manager.

Reimplemented in llvm::LLVMTargetMachine, llvm::PPCTargetMachine, llvm::X86TargetMachine, llvm::ARMBaseTargetMachine, and llvm::MipsTargetMachine.

Definition at line 236 of file Target/TargetMachine.h.

virtual bool llvm::TargetMachine::addPassesToEmitFile ( PassManagerBase ,
formatted_raw_ostream ,
CodeGenFileType  ,
bool  = true,
AnalysisID  StartAfter = 0,
AnalysisID  StopAfter = 0 
) [inline, virtual]

addPassesToEmitFile - 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 251 of file Target/TargetMachine.h.

Referenced by LLVMTargetMachineEmit().

virtual bool llvm::TargetMachine::addPassesToEmitMachineCode ( PassManagerBase ,
JITCodeEmitter ,
bool  = true 
) [inline, virtual]

addPassesToEmitMachineCode - Add passes to the specified pass manager to get machine code emitted. This uses a JITCodeEmitter object to handle actually outputting the machine code and resolving things like the address of functions. This method returns true if machine code emission is not supported.

Reimplemented in llvm::LLVMTargetMachine, and llvm::NVPTXTargetMachine.

Definition at line 266 of file Target/TargetMachine.h.

Referenced by llvm::JIT::addModule(), and llvm::JIT::removeModule().

virtual bool llvm::TargetMachine::addPassesToEmitMC ( PassManagerBase ,
MCContext *&  ,
raw_ostream ,
bool  = true 
) [inline, virtual]

addPassesToEmitMC - 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 277 of file Target/TargetMachine.h.

Referenced by llvm::MCJIT::emitObject().

bool TargetMachine::getAsmVerbosityDefault ( ) [static]

getAsmVerbosityDefault - Returns the default value of asm verbosity.

Definition at line 168 of file TargetMachine.cpp.

References llvm::AsmVerbosityDefault().

Referenced by getVerboseAsm().

CodeModel::Model TargetMachine::getCodeModel ( ) const
virtual const DataLayout* llvm::TargetMachine::getDataLayout ( ) const [inline, virtual]

Reimplemented in llvm::ThumbTargetMachine, llvm::X86_64TargetMachine, llvm::ARMTargetMachine, llvm::X86_32TargetMachine, llvm::HexagonTargetMachine, llvm::MipsTargetMachine, llvm::AMDGPUTargetMachine, llvm::MBlazeTargetMachine, llvm::PPCTargetMachine, llvm::AArch64TargetMachine, llvm::NVPTXTargetMachine, llvm::XCoreTargetMachine, llvm::SparcTargetMachine, llvm::SystemZTargetMachine, llvm::MSP430TargetMachine, and llvm::CPPTargetMachine.

Definition at line 114 of file Target/TargetMachine.h.

Referenced by llvm::JIT::addModule(), llvm::AsmPrinter::doInitialization(), llvm::AsmPrinter::EmitAlignment(), llvm::AsmPrinter::EmitConstantPool(), llvm::X86AsmPrinter::EmitEndOfAsmFile(), llvm::SystemZAsmPrinter::EmitEndOfAsmFile(), llvm::AArch64AsmPrinter::EmitEndOfAsmFile(), llvm::AsmPrinter::EmitGlobalConstant(), emitGlobalConstantArray(), emitGlobalConstantDataSequential(), emitGlobalConstantFP(), emitGlobalConstantImpl(), emitGlobalConstantLargeInt(), emitGlobalConstantStruct(), emitGlobalConstantVector(), llvm::AsmPrinter::EmitGlobalVariable(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::SystemZAsmPrinter::EmitMachineConstantPoolValue(), llvm::ARMAsmPrinter::EmitMachineConstantPoolValue(), llvm::MCJIT::emitObject(), llvm::TargetLoweringObjectFileELF::emitPersonalityValue(), llvm::ARMAsmPrinter::EmitXXStructor(), llvm::AsmPrinter::getDataLayout(), llvm::TargetLoweringObjectFile::getKindForGlobal(), llvm::AsmPrinter::GetSizeOfEncodedValue(), llvm::SelectionDAGBuilder::init(), llvm::MBlazeTargetObjectFile::IsGlobalInSmallSection(), llvm::HexagonTargetObjectFile::IsGlobalInSmallSection(), llvm::MipsTargetObjectFile::IsGlobalInSmallSection(), isRepeatedByteSequence(), LLVMTargetMachineEmit(), nvptx::LowerConstant(), lowerConstant(), llvm::MachineFunction::MachineFunction(), llvm::JIT::removeModule(), llvm::TargetLoweringObjectFileELF::SelectSectionForGlobal(), and llvm::TargetLoweringObjectFileMachO::SelectSectionForGlobal().

bool TargetMachine::getDataSections ( ) [static]

getDataSections - Return true if data objects should be emitted into their own section, corresponds to -fdata-sections.

Definition at line 180 of file TargetMachine.cpp.

References DataSections.

Referenced by llvm::TargetLoweringObjectFileELF::SelectSectionForGlobal().

virtual const TargetFrameLowering* llvm::TargetMachine::getFrameLowering ( ) const [inline, virtual]

Reimplemented in llvm::ThumbTargetMachine, llvm::ARMTargetMachine, llvm::HexagonTargetMachine, llvm::MipsTargetMachine, llvm::MBlazeTargetMachine, llvm::NVPTXTargetMachine, llvm::PPCTargetMachine, llvm::X86TargetMachine, llvm::MSP430TargetMachine, llvm::AArch64TargetMachine, llvm::AMDGPUTargetMachine, llvm::SystemZTargetMachine, llvm::SparcTargetMachine, and llvm::XCoreTargetMachine.

Definition at line 111 of file Target/TargetMachine.h.

Referenced by llvm::ARMBaseRegisterInfo::canRealignStack(), checkNumAlignedDPRCS2Regs(), llvm::CompileUnit::constructVariableDIE(), determineFrameLayout(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::Thumb1RegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::MachineFrameInfo::estimateStackSize(), llvm::MSP430RegisterInfo::getCalleeSavedRegs(), llvm::AArch64RegisterInfo::getFrameRegister(), llvm::MSP430RegisterInfo::getFrameRegister(), llvm::XCoreRegisterInfo::getFrameRegister(), llvm::MBlazeRegisterInfo::getFrameRegister(), llvm::SystemZRegisterInfo::getFrameRegister(), llvm::MipsRegisterInfo::getFrameRegister(), llvm::HexagonRegisterInfo::getFrameRegister(), llvm::PPCRegisterInfo::getFrameRegister(), llvm::X86RegisterInfo::getFrameRegister(), llvm::ARMBaseRegisterInfo::getFrameRegister(), llvm::R600InstrInfo::getIndirectIndexEnd(), llvm::R600InstrInfo::getIndirectReservedRegs(), llvm::PPCRegisterInfo::getRegPressureLimit(), llvm::MipsRegisterInfo::getRegPressureLimit(), llvm::X86RegisterInfo::getRegPressureLimit(), llvm::ARMBaseRegisterInfo::getRegPressureLimit(), llvm::AArch64RegisterInfo::getReservedRegs(), llvm::MSP430RegisterInfo::getReservedRegs(), llvm::XCoreRegisterInfo::getReservedRegs(), llvm::PPCRegisterInfo::getReservedRegs(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::SystemZRegisterInfo::getReservedRegs(), llvm::ARMBaseRegisterInfo::getReservedRegs(), llvm::X86RegisterInfo::getReservedRegs(), llvm::ARMBaseRegisterInfo::hasBasePointer(), llvm::X86RegisterInfo::hasReservedSpillSlot(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::MachineFunction::MachineFunction(), llvm::PPCRegisterInfo::needsFrameBaseReg(), llvm::ARMBaseRegisterInfo::needsFrameBaseReg(), llvm::ARMBaseRegisterInfo::needsStackRealignment(), llvm::MachineFrameInfo::print(), llvm::X86FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::XCoreRegisterInfo::requiresRegisterScavenging(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().

bool TargetMachine::getFunctionSections ( ) [static]

getFunctionSections - Return true if functions should be emitted into their own section, corresponding to -ffunction-sections.

Definition at line 176 of file TargetMachine.cpp.

References FunctionSections.

Referenced by llvm::TargetLoweringObjectFileELF::SelectSectionForGlobal().

virtual const TargetInstrInfo* llvm::TargetMachine::getInstrInfo ( ) const [inline, virtual]

Reimplemented in llvm::ThumbTargetMachine, llvm::X86_64TargetMachine, llvm::X86_32TargetMachine, llvm::ARMTargetMachine, llvm::MipsTargetMachine, llvm::NVPTXTargetMachine, llvm::AMDGPUTargetMachine, llvm::MBlazeTargetMachine, llvm::MSP430TargetMachine, llvm::SystemZTargetMachine, llvm::PPCTargetMachine, llvm::HexagonTargetMachine, llvm::X86TargetMachine, llvm::AArch64TargetMachine, llvm::SparcTargetMachine, and llvm::XCoreTargetMachine.

Definition at line 110 of file Target/TargetMachine.h.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), llvm::LLVMTargetMachine::addPassesToEmitMC(), llvm::ARMTargetLowering::AdjustInstrPostInstrSelection(), llvm::VirtRegAuxInfo::CalculateWeightAndHint(), llvm::MachineBasicBlock::canFallThrough(), llvm::createBURRListDAGScheduler(), llvm::createHybridListDAGScheduler(), llvm::createILPListDAGScheduler(), llvm::createSourceListDAGScheduler(), llvm::Mips16FrameLowering::eliminateCallFramePseudoInstr(), llvm::MipsSEFrameLowering::eliminateCallFramePseudoInstr(), llvm::SparcFrameLowering::eliminateCallFramePseudoInstr(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::MBlazeFrameLowering::eliminateCallFramePseudoInstr(), llvm::Thumb1FrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), llvm::AArch64TargetLowering::emitAtomicBinary(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::AArch64TargetLowering::emitAtomicBinaryMinMax(), llvm::AArch64TargetLowering::emitAtomicCmpSwap(), emitComments(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::Mips16FrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::HexagonFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::MBlazeFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::SystemZFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::AArch64FrameLowering::emitFrameMemOps(), llvm::AsmPrinter::EmitFunctionBody(), llvm::SparcTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::MBlazeFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), llvm::RegScavenger::enterBasicBlock(), llvm::finalizeBundle(), llvm::MBlazeInstrInfo::getGlobalBaseReg(), llvm::MSP430InstrInfo::GetInstSizeInBytes(), llvm::SDNode::getOperationName(), llvm::ARMTargetLowering::getSchedulingPreference(), llvm::ConvergingVLIWScheduler::initialize(), INITIALIZE_PASS(), interruptFrameLayout(), lowerDSPIntr(), llvm::MachineSSAUpdater::MachineSSAUpdater(), llvm::MachineInstr::print(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::MachineRegisterInfo::recomputeRegClass(), llvm::ResourcePriorityQueue::ResourcePriorityQueue(), llvm::XCoreFrameLowering::restoreCalleeSavedRegisters(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::HexagonFrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::LiveIntervals::runOnMachineFunction(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::FunctionLoweringInfo::set(), llvm::XCoreFrameLowering::spillCalleeSavedRegisters(), llvm::HexagonFrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::MachineBasicBlock::updateTerminator(), llvm::VLIWPacketizerList::VLIWPacketizerList(), and llvm::VLIWResourceModel::VLIWResourceModel().

virtual const InstrItineraryData* llvm::TargetMachine::getInstrItineraryData ( ) const [inline, virtual]
virtual const TargetIntrinsicInfo* llvm::TargetMachine::getIntrinsicInfo ( ) const [inline, virtual]

getIntrinsicInfo - If intrinsic information is available, return it. If not, return null.

Reimplemented in llvm::MBlazeTargetMachine, and llvm::AMDGPUTargetMachine.

Definition at line 136 of file Target/TargetMachine.h.

Referenced by llvm::SDNode::getOperationName().

virtual TargetJITInfo* llvm::TargetMachine::getJITInfo ( ) [inline, virtual]

getJITInfo - If this target supports a JIT, return information for it, otherwise return null.

Reimplemented in llvm::X86_64TargetMachine, llvm::X86_32TargetMachine, llvm::MipsTargetMachine, llvm::PPCTargetMachine, llvm::X86TargetMachine, and llvm::ARMBaseTargetMachine.

Definition at line 141 of file Target/TargetMachine.h.

Referenced by llvm::JIT::createJIT().

const MCAsmInfo* llvm::TargetMachine::getMCAsmInfo ( ) const [inline]
CodeGenOpt::Level TargetMachine::getOptLevel ( ) const
virtual const TargetRegisterInfo* llvm::TargetMachine::getRegisterInfo ( ) const [inline, virtual]

getRegisterInfo - If register information is available, return it. If not, return null. This is kept separate from RegInfo until RegInfo has details of graph coloring register allocation removed from it.

Reimplemented in llvm::ThumbTargetMachine, llvm::ARMTargetMachine, llvm::MipsTargetMachine, llvm::MBlazeTargetMachine, llvm::AArch64TargetMachine, llvm::NVPTXTargetMachine, llvm::X86TargetMachine, llvm::PPCTargetMachine, llvm::SystemZTargetMachine, llvm::AMDGPUTargetMachine, llvm::MSP430TargetMachine, llvm::XCoreTargetMachine, llvm::HexagonTargetMachine, and llvm::SparcTargetMachine.

Definition at line 131 of file Target/TargetMachine.h.

Referenced by addLiveInRegs(), llvm::LLVMTargetMachine::addPassesToEmitFile(), llvm::LLVMTargetMachine::addPassesToEmitMC(), addPassesToGenerateCode(), llvm::CompileUnit::addRegisterOffset(), llvm::CompileUnit::addRegisterOp(), llvm::ARMTargetLowering::ARMTargetLowering(), llvm::PBQPBuilder::build(), llvm::PBQPBuilderWithCoalescing::build(), llvm::VirtRegAuxInfo::CalculateWeightAndHint(), checkNumAlignedDPRCS2Regs(), llvm::TargetSchedModel::computeOutputLatency(), llvm::CompileUnit::constructVariableDIE(), llvm::createBURRListDAGScheduler(), llvm::createHybridListDAGScheduler(), llvm::createILPListDAGScheduler(), llvm::createSourceListDAGScheduler(), llvm::Thumb1FrameLowering::eliminateCallFramePseudoInstr(), emitDebugValueComment(), llvm::ARMAsmPrinter::EmitDwarfRegOp(), llvm::AsmPrinter::EmitDwarfRegOp(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::MipsAsmPrinter::emitFrameDirective(), emitImplicitDef(), emitKill(), llvm::AMDGPUAsmPrinter::EmitProgramInfoR600(), llvm::AMDGPUAsmPrinter::EmitProgramInfoSI(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::RegScavenger::enterBasicBlock(), llvm::MipsFrameLowering::estimateStackSize(), llvm::MachineFrameInfo::estimateStackSize(), llvm::finalizeBundle(), llvm::TargetLoweringBase::findRepresentativeClass(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::X86FrameLowering::getFrameIndexOffset(), llvm::X86FrameLowering::getFrameIndexReference(), llvm::TargetFrameLowering::getFrameIndexReference(), getMemcpyLoadsAndStores(), llvm::MipsTargetLowering::getOpndList(), llvm::MachineFrameInfo::getPristineRegs(), llvm::TargetLowering::getRegForInlineAsmConstraint(), HandleVRSaveUpdate(), llvm::ARMFrameLowering::hasFP(), llvm::AArch64FrameLowering::hasFP(), llvm::RegPressureTracker::init(), llvm::LLVMTargetMachine::initAsmInfo(), llvm::TargetInstrInfo::isSchedulingBoundary(), llvm::AArch64TargetLowering::LowerCall(), llvm::SITargetLowering::LowerFormalArguments(), llvm::AArch64TargetLowering::LowerTLSDescCall(), llvm::MachineFunction::MachineFunction(), llvm::MachineOperand::print(), llvm::MachineFunction::print(), llvm::MachineBasicBlock::print(), llvm::MachineInstr::print(), llvm::AArch64AsmPrinter::PrintAsmOperand(), llvm::ARMAsmPrinter::PrintAsmOperand(), llvm::ARMAsmPrinter::printOperand(), llvm::MipsAsmPrinter::printSavedRegsBitmask(), llvm::SystemZFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::XCoreFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::ResourcePriorityQueue::ResourcePriorityQueue(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::LiveStacks::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::LiveIntervals::runOnMachineFunction(), and llvm::MachineBasicBlock::SplitCriticalEdge().

Reloc::Model TargetMachine::getRelocationModel ( ) const
virtual const TargetSelectionDAGInfo* llvm::TargetMachine::getSelectionDAGInfo ( ) const [inline, virtual]
template<typename STC >
const STC& llvm::TargetMachine::getSubtarget ( ) const [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 123 of file Target/TargetMachine.h.

References getSubtargetImpl().

Referenced by llvm::AArch64AsmPrinter::AArch64AsmPrinter(), llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), llvm::ScheduleDAGInstrs::addVRegUseDeps(), llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::ARMAsmPrinter::ARMAsmPrinter(), llvm::ARMTargetLowering::ARMTargetLowering(), llvm::X86InstrInfo::breakPartialRegDependency(), llvm::R600InstrInfo::buildSlotOfVectorInstruction(), llvm::X86InstrInfo::canInsertSelect(), checkNumAlignedDPRCS2Regs(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::copyPhysReg(), llvm::createDefaultScheduler(), llvm::MipsFunctionInfo::createEhDataRegsFI(), llvm::ARM::createFastISel(), createPPCAsmPrinterPass(), llvm::PPCInstrInfo::CreateTargetHazardRecognizer(), llvm::PPCInstrInfo::CreateTargetPostRAHazardRecognizer(), llvm::R600InstrInfo::CreateTargetScheduleState(), llvm::HexagonInstrInfo::CreateTargetScheduleState(), createTLOF(), llvm::AMDGPUAsmPrinter::EmitProgramInfoR600(), llvm::X86InstrInfo::expandPostRAPseudo(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::PPCTargetLowering::getByValTypeAlignment(), llvm::X86RegisterInfo::getCalleeSavedRegs(), llvm::X86RegisterInfo::getCallPreservedMask(), llvm::X86InstrInfo::getExecutionDomain(), llvm::MipsFunctionInfo::getGlobalBaseReg(), llvm::X86InstrInfo::getGlobalBaseReg(), GetLabelAccessInfo(), getLoadStoreRegOpcode(), llvm::X86RegisterInfo::getPointerRegClass(), llvm::X86RegisterInfo::getRegPressureLimit(), gvNeedsNonLazyPtr(), llvm::HexagonAsmPrinter::HexagonAsmPrinter(), llvm::MipsTargetObjectFile::Initialize(), llvm::ARMElfTargetObjectFile::Initialize(), llvm::R600SchedStrategy::initialize(), llvm::X86InstrInfo::isCoalescableExtInstr(), llvm::MipsTargetObjectFile::IsGlobalInSmallSection(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::MBlazeTargetLowering::MBlazeTargetLowering(), llvm::MipsAsmPrinter::MipsAsmPrinter(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PPCTargetLowering(), PrepareCall(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::ScheduleDAGInstrs::ScheduleDAGInstrs(), llvm::X86InstrInfo::setExecutionDomain(), llvm::SparcTargetLowering::SparcTargetLowering(), llvm::SystemZAsmPrinter::SystemZAsmPrinter(), llvm::TargetPassConfig::TargetPassConfig(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::X86AsmPrinter::X86AsmPrinter(), llvm::X86JITInfo::X86JITInfo(), llvm::X86RegisterInfo::X86RegisterInfo(), and llvm::X86TargetLowering::X86TargetLowering().

virtual const TargetSubtargetInfo* llvm::TargetMachine::getSubtargetImpl ( ) const [inline, virtual]

getSubtargetImpl - virtual method implemented by subclasses that returns a reference to that target's TargetSubtargetInfo-derived member variable.

Reimplemented in llvm::MipsTargetMachine, llvm::PPCTargetMachine, llvm::NVPTXTargetMachine, llvm::MBlazeTargetMachine, llvm::AArch64TargetMachine, llvm::AMDGPUTargetMachine, llvm::X86TargetMachine, llvm::MSP430TargetMachine, llvm::SystemZTargetMachine, llvm::ARMBaseTargetMachine, llvm::HexagonTargetMachine, llvm::SparcTargetMachine, and llvm::XCoreTargetMachine.

Definition at line 97 of file Target/TargetMachine.h.

Referenced by getSubtarget().

const Target& llvm::TargetMachine::getTarget ( ) const [inline]
const StringRef llvm::TargetMachine::getTargetCPU ( ) const [inline]

Definition at line 92 of file Target/TargetMachine.h.

References TargetCPU.

const StringRef llvm::TargetMachine::getTargetFeatureString ( ) const [inline]

Definition at line 93 of file Target/TargetMachine.h.

References TargetFS.

virtual const TargetLowering* llvm::TargetMachine::getTargetLowering ( ) const [inline, virtual]
const StringRef llvm::TargetMachine::getTargetTriple ( ) const [inline]
TLSModel::Model TargetMachine::getTLSModel ( const GlobalValue GV) const
bool llvm::TargetMachine::hasMCNoExecStack ( ) const [inline]

hasMCNoExecStack - Check whether an executable stack is not needed.

Definition at line 167 of file Target/TargetMachine.h.

References MCNoExecStack.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), and llvm::LLVMTargetMachine::addPassesToEmitMC().

bool llvm::TargetMachine::hasMCRelaxAll ( ) const [inline]

hasMCRelaxAll - Check whether all machine code instructions should be relaxed.

Definition at line 152 of file Target/TargetMachine.h.

References MCRelaxAll.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), and llvm::LLVMTargetMachine::addPassesToEmitMC().

bool llvm::TargetMachine::hasMCSaveTempLabels ( ) const [inline]

hasMCSaveTempLabels - Check whether temporary labels will be preserved (i.e., not treated as temporary).

Definition at line 160 of file Target/TargetMachine.h.

References MCSaveTempLabels.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), and llvm::LLVMTargetMachine::addPassesToEmitMC().

bool llvm::TargetMachine::hasMCUseCFI ( ) const [inline]

hasMCUseCFI - Check whether we should use dwarf's .cfi_* directives.

Definition at line 179 of file Target/TargetMachine.h.

References MCUseCFI.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile().

bool llvm::TargetMachine::hasMCUseDwarfDirectory ( ) const [inline]

hasMCUseDwarfDirectory - Check whether we should use .file directives with explicit directories.

Definition at line 186 of file Target/TargetMachine.h.

References MCUseDwarfDirectory.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile().

bool llvm::TargetMachine::hasMCUseLoc ( ) const [inline]

hasMCUseLoc - Check whether we should use dwarf's .loc directive.

Definition at line 173 of file Target/TargetMachine.h.

References MCUseLoc.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), llvm::AsmPrinter::EmitFunctionBody(), and llvm::DwarfDebug::getOrCreateSourceID().

void TargetMachine::resetTargetOptions ( const MachineFunction MF) const

Reset the target options based on the function's attributes.

Definition at line 67 of file TargetMachine.cpp.

References DisableTailCalls(), F(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getTarget(), Options, and RESET_OPTION.

Referenced by llvm::SelectionDAGISel::runOnMachineFunction().

void TargetMachine::setAsmVerbosityDefault ( bool  V) [static]

setAsmVerbosityDefault - Set the default value of asm verbosity. Default is false.

Definition at line 172 of file TargetMachine.cpp.

References llvm::AsmVerbosityDefault().

void TargetMachine::setDataSections ( bool  V) [static]

setDataSections - Set if the data are emit into separate sections.

Definition at line 188 of file TargetMachine.cpp.

References DataSections.

void llvm::TargetMachine::setFastISel ( bool  Enable) [inline]

Definition at line 208 of file Target/TargetMachine.h.

References llvm::TargetOptions::EnableFastISel.

Referenced by addPassesToGenerateCode().

void TargetMachine::setFunctionSections ( bool  V) [static]

setFunctionSections - Set if the functions are emit into separate sections.

Definition at line 184 of file TargetMachine.cpp.

References FunctionSections.

void llvm::TargetMachine::setMCNoExecStack ( bool  Value) [inline]

setMCNoExecStack - Set whether an executabel stack is not needed.

Definition at line 170 of file Target/TargetMachine.h.

References MCNoExecStack.

void llvm::TargetMachine::setMCRelaxAll ( bool  Value) [inline]

setMCRelaxAll - Set whether all machine code instructions should be relaxed.

Definition at line 156 of file Target/TargetMachine.h.

References MCRelaxAll.

void llvm::TargetMachine::setMCSaveTempLabels ( bool  Value) [inline]

setMCSaveTempLabels - Set whether temporary labels will be preserved (i.e., not treated as temporary).

Definition at line 164 of file Target/TargetMachine.h.

References MCSaveTempLabels.

void llvm::TargetMachine::setMCUseCFI ( bool  Value) [inline]

setMCUseCFI - Set whether all we should use dwarf's .cfi_* directives.

Definition at line 182 of file Target/TargetMachine.h.

References MCUseCFI.

Referenced by llvm::HexagonTargetMachine::HexagonTargetMachine(), and llvm::PPCTargetMachine::PPCTargetMachine().

void llvm::TargetMachine::setMCUseDwarfDirectory ( bool  Value) [inline]

setMCUseDwarfDirectory - Set whether all we should use .file directives with explicit directories.

Definition at line 190 of file Target/TargetMachine.h.

References MCUseDwarfDirectory.

void llvm::TargetMachine::setMCUseLoc ( bool  Value) [inline]

setMCUseLoc - Set whether all we should use dwarf's .loc directive.

Definition at line 176 of file Target/TargetMachine.h.

References MCUseLoc.

bool llvm::TargetMachine::shouldPrintMachineCode ( ) const [inline]

Member Data Documentation

AsmInfo - Contains target specific asm information.

Definition at line 77 of file Target/TargetMachine.h.

Referenced by getMCAsmInfo(), llvm::LLVMTargetMachine::initAsmInfo(), and ~TargetMachine().

CodeGenInfo - Low level target information such as relocation model.

Definition at line 73 of file Target/TargetMachine.h.

Referenced by getCodeModel(), getOptLevel(), getRelocationModel(), llvm::LLVMTargetMachine::LLVMTargetMachine(), and ~TargetMachine().

Definition at line 80 of file Target/TargetMachine.h.

Referenced by hasMCNoExecStack(), and setMCNoExecStack().

Definition at line 79 of file Target/TargetMachine.h.

Referenced by hasMCRelaxAll(), and setMCRelaxAll().

Definition at line 81 of file Target/TargetMachine.h.

Referenced by hasMCSaveTempLabels(), and setMCSaveTempLabels().

Definition at line 83 of file Target/TargetMachine.h.

Referenced by hasMCUseCFI(), and setMCUseCFI().

Definition at line 84 of file Target/TargetMachine.h.

Referenced by hasMCUseDwarfDirectory(), and setMCUseDwarfDirectory().

Definition at line 82 of file Target/TargetMachine.h.

Referenced by hasMCUseLoc(), and setMCUseLoc().

Definition at line 99 of file Target/TargetMachine.h.

Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::ARMTargetLowering::ARMTargetLowering(), CalculateParameterAndLinkageAreaSize(), canCombineSinCosLibcall(), llvm::ARMBaseRegisterInfo::cannotEliminateFrame(), llvm::X86RegisterInfo::canRealignStack(), llvm::ARMBaseRegisterInfo::canRealignStack(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::SelectionDAGBuilder::EmitBranchForMergedCondition(), llvm::PPCFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitPrologue(), llvm::DwarfDebug::endFunction(), llvm::TargetLoweringObjectFile::getKindForGlobal(), GetNegatedExpression(), llvm::SelectionDAG::getNode(), getTLSModel(), llvm::MipsFrameLowering::hasFP(), llvm::SparcFrameLowering::hasFP(), llvm::MBlazeFrameLowering::hasFP(), llvm::XCoreFrameLowering::hasFP(), llvm::ARMFrameLowering::hasFP(), llvm::MSP430FrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), llvm::AArch64FrameLowering::hasFP(), llvm::MipsTargetObjectFile::Initialize(), llvm::AArch64TargetLowering::IsEligibleForTailCallOptimization(), llvm::isInTailCallPosition(), llvm::AArch64TargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerFormalArguments(), llvm::MachineFunction::MachineFunction(), llvm::MipsSETargetLowering::MipsSETargetLowering(), llvm::MipsTargetLowering::MipsTargetLowering(), llvm::PPCFrameLowering::needsFP(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformFMinFMaxCombine(), PerformSELECT_CCCombine(), PerformSELECTCombine(), PerformSTORECombine(), llvm::PPCTargetLowering::PPCTargetLowering(), llvm::PPCFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::X86TargetLowering::resetOperationActions(), resetTargetOptions(), and llvm::SelectionDAGISel::runOnMachineFunction().

std::string llvm::TargetMachine::TargetCPU [protected]
std::string llvm::TargetMachine::TargetFS [protected]

Definition at line 70 of file Target/TargetMachine.h.

Referenced by getTargetFeatureString().

std::string llvm::TargetMachine::TargetTriple [protected]

TargetTriple, TargetCPU, TargetFS - Triple string, CPU name, and target feature strings the TargetMachine instance is created with.

Definition at line 68 of file Target/TargetMachine.h.

Referenced by getTargetTriple(), and llvm::LLVMTargetMachine::initAsmInfo().

TheTarget - The Target that this machine was created for.

Definition at line 64 of file Target/TargetMachine.h.

Referenced by getTarget(), and llvm::LLVMTargetMachine::initAsmInfo().


The documentation for this class was generated from the following files: