LLVM
8.0.1
|
#include "Target/AMDGPU/AMDGPUTargetMachine.h"
Public Member Functions | |
R600TargetMachine (const Target &T, const Triple &TT, StringRef CPU, StringRef FS, TargetOptions Options, Optional< Reloc::Model > RM, Optional< CodeModel::Model > CM, CodeGenOpt::Level OL, bool JIT) | |
TargetPassConfig * | createPassConfig (PassManagerBase &PM) override |
Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of CodeGen passes. More... | |
const R600Subtarget * | getSubtargetImpl (const Function &) const override |
Virtual method implemented by subclasses that returns a reference to that target's TargetSubtargetInfo-derived member variable. More... | |
TargetTransformInfo | getTargetTransformInfo (const Function &F) override |
Get a TargetTransformInfo implementation for the target. More... | |
bool | isMachineVerifierClean () const override |
Returns true if the target is expected to pass all machine verifier checks. More... | |
Public Member Functions inherited from llvm::AMDGPUTargetMachine | |
AMDGPUTargetMachine (const Target &T, const Triple &TT, StringRef CPU, StringRef FS, TargetOptions Options, Optional< Reloc::Model > RM, Optional< CodeModel::Model > CM, CodeGenOpt::Level OL) | |
~AMDGPUTargetMachine () override | |
const TargetSubtargetInfo * | getSubtargetImpl () const |
TargetLoweringObjectFile * | getObjFileLowering () const override |
void | adjustPassManager (PassManagerBuilder &) override |
Allow the target to modify the pass manager, e.g. More... | |
uint64_t | getNullPointerValue (unsigned AddrSpace) const |
Get the integer value of a null pointer in the given address space. More... | |
Public Member Functions inherited from llvm::LLVMTargetMachine | |
bool | addPassesToEmitFile (PassManagerBase &PM, raw_pwrite_stream &Out, raw_pwrite_stream *DwoOut, CodeGenFileType FileType, bool DisableVerify=true, MachineModuleInfo *MMI=nullptr) override |
Add passes to the specified pass manager to get the specified file emitted. More... | |
bool | addPassesToEmitMC (PassManagerBase &PM, MCContext *&Ctx, raw_pwrite_stream &Out, bool DisableVerify=true) override |
Add passes to the specified pass manager to get machine code emitted with the MCJIT. More... | |
bool | addAsmPrinter (PassManagerBase &PM, raw_pwrite_stream &Out, raw_pwrite_stream *DwoOut, CodeGenFileType FileTYpe, MCContext &Context) |
Adds an AsmPrinter pass to the pipeline that prints assembly or machine code from the MI representation. More... | |
virtual bool | usesPhysRegsForPEI () const |
True if the target uses physical regs at Prolog/Epilog insertion time. More... | |
virtual bool | useIPRA () const |
True if the target wants to use interprocedural register allocation by default. More... | |
Public Member Functions inherited from llvm::TargetMachine | |
TargetMachine (const TargetMachine &)=delete | |
void | operator= (const TargetMachine &)=delete |
virtual | ~TargetMachine () |
const Target & | getTarget () const |
const Triple & | getTargetTriple () const |
StringRef | getTargetCPU () const |
StringRef | getTargetFeatureString () 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 | createDataLayout () const |
Create a DataLayout. More... | |
bool | isCompatibleDataLayout (const DataLayout &Candidate) const |
Test if a DataLayout if compatible with the CodeGen for this target. More... | |
unsigned | getPointerSize (unsigned AS) const |
Get the pointer size for this target. More... | |
unsigned | getPointerSizeInBits (unsigned AS) const |
unsigned | getProgramPointerSize () const |
unsigned | getAllocaPointerSize () const |
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... | |
bool | isPositionIndependent () const |
bool | shouldAssumeDSOLocal (const Module &M, const GlobalValue *GV) const |
bool | useEmulatedTLS () const |
Returns true if this target uses emulated TLS. 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) |
Overrides the optimization level. More... | |
void | setFastISel (bool Enable) |
bool | getO0WantsFastISel () |
void | setO0WantsFastISel (bool Enable) |
void | setGlobalISel (bool Enable) |
void | setGlobalISelAbort (GlobalISelAbortMode Mode) |
void | setMachineOutliner (bool Enable) |
void | setSupportsDefaultOutlining (bool Enable) |
bool | shouldPrintMachineCode () const |
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... | |
TargetIRAnalysis | getTargetIRAnalysis () |
Get a TargetIRAnalysis appropriate for the target. More... | |
virtual bool | targetSchedulesPostRAScheduling () const |
True if subtarget inserts the final scheduling pass on its own. More... | |
void | getNameWithPrefix (SmallVectorImpl< char > &Name, const GlobalValue *GV, Mangler &Mang, bool MayAlwaysUsePrivate=false) const |
MCSymbol * | getSymbol (const GlobalValue *GV) const |
Definition at line 71 of file AMDGPUTargetMachine.h.
R600TargetMachine::R600TargetMachine | ( | const Target & | T, |
const Triple & | TT, | ||
StringRef | CPU, | ||
StringRef | FS, | ||
TargetOptions | Options, | ||
Optional< Reloc::Model > | RM, | ||
Optional< CodeModel::Model > | CM, | ||
CodeGenOpt::Level | OL, | ||
bool | JIT | ||
) |
Definition at line 423 of file AMDGPUTargetMachine.cpp.
References llvm::TargetMachine::setRequiresStructuredCFG().
|
overridevirtual |
Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of CodeGen passes.
createPassConfig - Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of CodeGen passes.
Targets may override this to extend TargetPassConfig.
Reimplemented from llvm::LLVMTargetMachine.
Definition at line 748 of file AMDGPUTargetMachine.cpp.
References llvm::TargetPassConfig::addFastRegAlloc(), llvm::TargetPassConfig::addILPOpts(), llvm::TargetPassConfig::addMachineSSAOptimization(), llvm::TargetPassConfig::addOptimizedRegAlloc(), llvm::TargetPassConfig::addPostRegAlloc(), llvm::AMDGPUUnifyDivergentExitNodesID, llvm::BranchRelaxationPassID, C, llvm::createAMDGPUAnnotateKernelFeaturesPass(), llvm::createAMDGPUAnnotateUniformValues(), llvm::createAMDGPUAtomicOptimizerPass(), llvm::createAMDGPUMachineCFGStructurizerPass(), createGCNMaxOccupancyMachineScheduler(), llvm::createSIAddIMGInitPass(), llvm::createSIAnnotateControlFlowPass(), llvm::createSIDebuggerInsertNopsPass(), llvm::createSIFixupVectorISelPass(), llvm::createSIInsertWaitcntsPass(), llvm::createSILowerI1CopiesPass(), createSIMachineScheduler(), llvm::createSIMemoryLegalizerPass(), llvm::createSIModeRegisterPass(), llvm::createSinkingPass(), llvm::createSIShrinkInstructionsPass(), llvm::createSIWholeQuadModePass(), llvm::createStructurizeCFGPass(), llvm::DeadMachineInstructionElimID, llvm::EarlyIfConverterID, llvm::EarlyMachineLICMID, EnableAtomicOptimizations, EnableDPPCombine, EnableEarlyIfConversion, EnableSDWAPeephole, llvm::GCNSubtarget::enableSIScheduler(), llvm::GCNDPPCombineID, llvm::TargetMachine::getOptLevel(), llvm::MachineFunction::getSubtarget(), LateCFGStructurize, llvm::MachineCSEID, llvm::MachineSchedulerID, llvm::MachineSchedContext::MF, llvm::CodeGenOpt::None, llvm::PHIEliminationID, llvm::PostRAHazardRecognizerID, llvm::SIFixSGPRCopiesID, llvm::SIFixVGPRCopiesID, llvm::SIFixWWMLivenessID, llvm::SIFoldOperandsID, llvm::SIFormMemoryClausesID, llvm::SIInsertSkipsPassID, llvm::SILoadStoreOptimizerID, llvm::SILowerControlFlowID, llvm::SIOptimizeExecMaskingID, llvm::SIOptimizeExecMaskingPreRAID, llvm::SIPeepholeSDWAID, and llvm::ARM_MB::ST.
|
overridevirtual |
Virtual method implemented by subclasses that returns a reference to that target's TargetSubtargetInfo-derived member variable.
Implements llvm::AMDGPUTargetMachine.
Definition at line 433 of file AMDGPUTargetMachine.cpp.
References llvm::SmallString< InternalLen >::append(), llvm::AMDGPUTargetMachine::getFeatureString(), llvm::AMDGPUTargetMachine::getGPUName(), I, llvm::TargetMachine::resetTargetOptions(), and llvm::TargetMachine::TargetTriple.
|
overridevirtual |
Get a TargetTransformInfo implementation for the target.
The TTI returned uses the common code generator to answer queries about the IR.
Reimplemented from llvm::LLVMTargetMachine.
Definition at line 454 of file AMDGPUTargetMachine.cpp.
|
inlineoverridevirtual |
Returns true if the target is expected to pass all machine verifier checks.
This is a stopgap measure to fix targets one by one. We will remove this at some point and always enable the verifier when EXPENSIVE_CHECKS is enabled.
Reimplemented from llvm::LLVMTargetMachine.
Definition at line 87 of file AMDGPUTargetMachine.h.