LLVM 20.0.0git |
Mips32/64 little endian target machine.More...
#include "Target/Mips/MipsTargetMachine.h"
Public Member Functions | |
MipselTargetMachine (constTarget &T,constTriple &TT,StringRef CPU,StringRef FS,constTargetOptions &Options, std::optional<Reloc::Model >RM, std::optional<CodeModel::Model > CM,CodeGenOptLevel OL,bool JIT) | |
![]() | |
MipsTargetMachine (constTarget &T,constTriple &TT,StringRef CPU,StringRef FS,constTargetOptions &Options, std::optional<Reloc::Model >RM, std::optional<CodeModel::Model > CM,CodeGenOptLevel OL,bool JIT,bool isLittle) | |
~MipsTargetMachine () override | |
TargetTransformInfo | getTargetTransformInfo (constFunction &F)const override |
Get aTargetTransformInfo implementation for the target. | |
constMipsSubtarget * | getSubtargetImpl ()const |
constMipsSubtarget * | getSubtargetImpl (constFunction &F)const override |
Virtual method implemented by subclasses that returns a reference to that target's TargetSubtargetInfo-derived member variable. | |
void | resetSubtarget (MachineFunction *MF) |
Reset the subtarget for theMips target. | |
TargetPassConfig * | createPassConfig (PassManagerBase &PM) override |
Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of CodeGen passes. | |
TargetLoweringObjectFile * | getObjFileLowering ()const override |
MachineFunctionInfo * | createMachineFunctionInfo (BumpPtrAllocator &Allocator,constFunction &F,constTargetSubtargetInfo *STI)const override |
Create the target's instance ofMachineFunctionInfo. | |
bool | isNoopAddrSpaceCast (unsigned SrcAS,unsigned DestAS)const override |
Returns true if a cast between SrcAS and DestAS is a noop. | |
bool | isLittleEndian ()const |
constMipsABIInfo & | getABI ()const |
![]() | |
TargetTransformInfo | getTargetTransformInfo (constFunction &F)const override |
Get aTargetTransformInfo implementation for the target. | |
virtualTargetPassConfig * | createPassConfig (PassManagerBase &PM) override |
Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of CodeGen passes. | |
bool | addPassesToEmitFile (PassManagerBase &PM,raw_pwrite_stream &Out,raw_pwrite_stream *DwoOut,CodeGenFileType FileType,bool DisableVerify=true,MachineModuleInfoWrapperPass *MMIWP=nullptr) override |
Add passes to the specified pass manager to get the specified file emitted. | |
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 theMCJIT. | |
bool | addAsmPrinter (PassManagerBase &PM,raw_pwrite_stream &Out,raw_pwrite_stream *DwoOut,CodeGenFileType FileType,MCContext &Context) override |
Adds anAsmPrinter pass to the pipeline that prints assembly or machine code from the MI representation. | |
Expected< std::unique_ptr<MCStreamer > > | createMCStreamer (raw_pwrite_stream &Out,raw_pwrite_stream *DwoOut,CodeGenFileType FileType,MCContext &Ctx) override |
![]() | |
TargetMachine (constTargetMachine &)=delete | |
void | operator= (constTargetMachine &)=delete |
virtual | ~TargetMachine () |
constTarget & | getTarget ()const |
constTriple & | getTargetTriple ()const |
StringRef | getTargetCPU ()const |
StringRef | getTargetFeatureString ()const |
void | setTargetFeatureString (StringRef FS) |
virtualconstTargetSubtargetInfo * | getSubtargetImpl (constFunction &)const |
Virtual method implemented by subclasses that returns a reference to that target's TargetSubtargetInfo-derived member variable. | |
virtualTargetLoweringObjectFile * | getObjFileLowering ()const |
virtualMachineFunctionInfo * | createMachineFunctionInfo (BumpPtrAllocator &Allocator,constFunction &F,constTargetSubtargetInfo *STI)const |
Create the target's instance ofMachineFunctionInfo. | |
virtualyaml::MachineFunctionInfo * | createDefaultFuncInfoYAML ()const |
Allocate and return a default initialized instance of the YAML representation for theMachineFunctionInfo. | |
virtualyaml::MachineFunctionInfo * | convertFuncInfoToYAML (constMachineFunction &MF)const |
Allocate and initialize an instance of the YAML representation of theMachineFunctionInfo. | |
virtualbool | parseMachineFunctionInfo (constyaml::MachineFunctionInfo &,PerFunctionMIParsingState &PFS,SMDiagnostic &Error,SMRange &SourceRange)const |
Parse out the target'sMachineFunctionInfo from the YAML reprsentation. | |
template<typename STC > | |
const STC & | getSubtarget (constFunction &F)const |
This method returns a pointer to the specified type ofTargetSubtargetInfo. | |
constDataLayout | createDataLayout ()const |
Create aDataLayout. | |
bool | isCompatibleDataLayout (constDataLayout &Candidate)const |
Test if aDataLayout if compatible with the CodeGen for this target. | |
unsigned | getPointerSize (unsigned AS)const |
Get the pointer size for this target. | |
unsigned | getPointerSizeInBits (unsigned AS)const |
unsigned | getProgramPointerSize ()const |
unsigned | getAllocaPointerSize ()const |
void | resetTargetOptions (constFunction &F)const |
Reset the target options based on the function's attributes. | |
constMCAsmInfo * | getMCAsmInfo ()const |
Return target specific asm information. | |
constMCRegisterInfo * | getMCRegisterInfo ()const |
constMCInstrInfo * | getMCInstrInfo ()const |
constMCSubtargetInfo * | getMCSubtargetInfo ()const |
virtualconstTargetIntrinsicInfo * | getIntrinsicInfo ()const |
If intrinsic information is available, return it. If not, return null. | |
bool | requiresStructuredCFG ()const |
void | setRequiresStructuredCFG (boolValue) |
Reloc::Model | getRelocationModel ()const |
Returns the code generation relocation model. | |
CodeModel::Model | getCodeModel ()const |
Returns the code model. | |
uint64_t | getMaxCodeSize ()const |
Returns the maximum code size possible under the code model. | |
void | setCodeModel (CodeModel::Model CM) |
Set the code model. | |
void | setLargeDataThreshold (uint64_t LDT) |
bool | isLargeGlobalValue (constGlobalValue *GV)const |
bool | isPositionIndependent ()const |
bool | shouldAssumeDSOLocal (constGlobalValue *GV)const |
bool | useEmulatedTLS ()const |
Returns true if this target uses emulated TLS. | |
bool | useTLSDESC ()const |
Returns true if this target uses TLS Descriptors. | |
TLSModel::Model | getTLSModel (constGlobalValue *GV)const |
Returns the TLS model which should be used for the given global variable. | |
CodeGenOptLevel | getOptLevel ()const |
Returns the optimization level: None, Less, Default, or Aggressive. | |
void | setOptLevel (CodeGenOptLevel Level) |
Overrides the optimization level. | |
void | setFastISel (boolEnable) |
bool | getO0WantsFastISel () |
void | setO0WantsFastISel (boolEnable) |
void | setGlobalISel (boolEnable) |
void | setGlobalISelAbort (GlobalISelAbortModeMode) |
void | setMachineOutliner (boolEnable) |
void | setSupportsDefaultOutlining (boolEnable) |
void | setSupportsDebugEntryValues (boolEnable) |
void | setCFIFixup (boolEnable) |
bool | getAIXExtendedAltivecABI ()const |
bool | getUniqueSectionNames ()const |
bool | getUniqueBasicBlockSectionNames ()const |
Return true if unique basic block section names must be generated. | |
bool | getSeparateNamedSections ()const |
bool | getDataSections ()const |
Return true if data objects should be emitted into their own section, corresponds to -fdata-sections. | |
bool | getFunctionSections ()const |
Return true if functions should be emitted into their own section, corresponding to -ffunction-sections. | |
bool | getIgnoreXCOFFVisibility ()const |
Return true if visibility attribute should not be emitted inXCOFF, corresponding to -mignore-xcoff-visibility. | |
bool | getXCOFFTracebackTable ()const |
Return true ifXCOFF traceback table should be emitted, corresponding to -xcoff-traceback-table. | |
llvm::BasicBlockSection | getBBSectionsType ()const |
If basic blocks should be emitted into their own section, corresponding to -fbasic-block-sections. | |
constMemoryBuffer * | getBBSectionsFuncListBuf ()const |
Get the list of functions and basic block ids that need unique sections. | |
virtualbool | isNoopAddrSpaceCast (unsigned SrcAS,unsigned DestAS)const |
Returns true if a cast between SrcAS and DestAS is a noop. | |
void | setPGOOption (std::optional<PGOOptions > PGOOpt) |
const std::optional<PGOOptions > & | getPGOOption ()const |
virtualunsigned | getAssumedAddrSpace (constValue *V)const |
If the specified generic pointer could be assumed as a pointer to a specific address space, return that address space. | |
virtual std::pair<constValue *,unsigned > | getPredicatedAddrSpace (constValue *V)const |
If the specified predicate checks whether a generic pointer falls within a specified address space, return that generic pointer and the address space being queried. | |
TargetIRAnalysis | getTargetIRAnalysis ()const |
Get aTargetIRAnalysis appropriate for the target. | |
virtualTargetTransformInfo | getTargetTransformInfo (constFunction &F)const |
Return aTargetTransformInfo for a given function. | |
virtual void | registerPassBuilderCallbacks (PassBuilder &) |
Allow the target to modify the pass pipeline. | |
virtual void | registerDefaultAliasAnalyses (AAManager &) |
Allow the target to register alias analyses with theAAManager for use with the new pass manager. | |
virtualbool | addPassesToEmitFile (PassManagerBase &,raw_pwrite_stream &,raw_pwrite_stream *,CodeGenFileType,bool=true,MachineModuleInfoWrapperPass *MMIWP=nullptr) |
Add passes to the specified pass manager to get the specified file emitted. | |
virtualbool | addPassesToEmitMC (PassManagerBase &,MCContext *&,raw_pwrite_stream &,bool=true) |
Add passes to the specified pass manager to get machine code emitted with theMCJIT. | |
virtualbool | targetSchedulesPostRAScheduling ()const |
True if subtarget inserts the final scheduling pass on its own. | |
void | getNameWithPrefix (SmallVectorImpl<char > &Name,constGlobalValue *GV,Mangler &Mang,bool MayAlwaysUsePrivate=false)const |
MCSymbol * | getSymbol (constGlobalValue *GV)const |
virtualunsigned | getSjLjDataSize ()const |
virtualunsigned | getAddressSpaceForPseudoSourceKind (unsigned Kind)const |
getAddressSpaceForPseudoSourceKind - Given the kind of memory (e.g. | |
virtualbool | splitModule (Module &M,unsigned NumParts,function_ref< void(std::unique_ptr<Module > MPart)> ModuleCallback) |
Entry point for module splitting. | |
virtualTargetPassConfig * | createPassConfig (PassManagerBase &PM) |
Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of CodeGen passes. | |
virtualError | buildCodeGenPipeline (ModulePassManager &,raw_pwrite_stream &,raw_pwrite_stream *,CodeGenFileType,constCGPassBuilderOption &,PassInstrumentationCallbacks *) |
virtualbool | isMachineVerifierClean ()const |
Returns true if the target is expected to pass all machine verifier checks. | |
virtualbool | addAsmPrinter (PassManagerBase &PM,raw_pwrite_stream &Out,raw_pwrite_stream *DwoOut,CodeGenFileType FileType,MCContext &Context) |
Adds anAsmPrinter pass to the pipeline that prints assembly or machine code from the MI representation. | |
virtualExpected< std::unique_ptr<MCStreamer > > | createMCStreamer (raw_pwrite_stream &Out,raw_pwrite_stream *DwoOut,CodeGenFileType FileType,MCContext &Ctx) |
virtualbool | usesPhysRegsForValues ()const |
True if the target uses physical regs (as nearly all targets do). | |
virtualbool | useIPRA ()const |
True if the target wants to use interprocedural register allocation by default. | |
virtual int | unqualifiedInlineAsmVariant ()const |
The default variant to use in unqualifiedasm instructions. | |
virtual void | registerMachineRegisterInfoCallback (MachineFunction &MF)const |
Additional Inherited Members | |
![]() | |
static std::pair< int, int > | parseBinutilsVersion (StringRefVersion) |
![]() | |
TargetOptions | Options |
![]() | |
static constexprunsigned | DefaultSjLjDataSize = 32 |
The integer bit size to use for SjLj based exception handling. | |
![]() | |
CodeGenTargetMachineImpl (constTarget &T,StringRef DataLayoutString,constTriple &TT,StringRef CPU,StringRef FS,constTargetOptions &Options,Reloc::ModelRM,CodeModel::Model CM,CodeGenOptLevel OL) | |
void | initAsmInfo () |
virtual void | reset () |
Reset internal state. | |
![]() | |
TargetMachine (constTarget &T,StringRef DataLayoutString,constTriple &TargetTriple,StringRef CPU,StringRef FS,constTargetOptions &Options) | |
![]() | |
constTarget & | TheTarget |
TheTarget that this machine was created for. | |
constDataLayout | DL |
DataLayout for the target: keep ABI type size and alignment. | |
Triple | TargetTriple |
Triple string, CPU name, and target feature strings theTargetMachine instance is created with. | |
std::string | TargetCPU |
std::string | TargetFS |
Reloc::Model | RM =Reloc::Static |
CodeModel::Model | CMModel =CodeModel::Small |
uint64_t | LargeDataThreshold = 0 |
CodeGenOptLevel | OptLevel =CodeGenOptLevel::Default |
std::unique_ptr<constMCAsmInfo > | AsmInfo |
Contains target specific asm information. | |
std::unique_ptr<constMCRegisterInfo > | MRI |
std::unique_ptr<constMCInstrInfo > | MII |
std::unique_ptr<constMCSubtargetInfo > | STI |
unsigned | RequireStructuredCFG: 1 |
unsigned | O0WantsFastISel: 1 |
std::optional<PGOOptions > | PGOOption |
Mips32/64 little endian target machine.
Definition at line98 of fileMipsTargetMachine.h.
MipselTargetMachine::MipselTargetMachine | ( | constTarget & | T, |
constTriple & | TT, | ||
StringRef | CPU, | ||
StringRef | FS, | ||
constTargetOptions & | Options, | ||
std::optional<Reloc::Model > | RM, | ||
std::optional<CodeModel::Model > | CM, | ||
CodeGenOptLevel | OL, | ||
bool | JIT | ||
) |
Definition at line166 of fileMipsTargetMachine.cpp.