|
LLVM 22.0.0git
|
#include "Target/Lanai/LanaiTargetMachine.h"
Public Member Functions | |
| LanaiTargetMachine (const Target &TheTarget, const Triple &TargetTriple, StringRef Cpu, StringRef FeatureString, const TargetOptions &Options, std::optional< Reloc::Model > RM, std::optional< CodeModel::Model > CodeModel, CodeGenOptLevel OptLevel, bool JIT) | |
| const LanaiSubtarget * | getSubtargetImpl (const llvm::Function &) const override |
| Virtual method implemented by subclasses that returns a reference to that target's TargetSubtargetInfo-derived member variable. | |
| TargetTransformInfo | getTargetTransformInfo (const Function &F) const override |
| Get a TargetTransformInfo implementation for the target. | |
| TargetPassConfig * | createPassConfig (PassManagerBase &pass_manager) 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, const Function &F, const TargetSubtargetInfo *STI) const override |
| Create the target's instance of MachineFunctionInfo. | |
| bool | isMachineVerifierClean () const override |
| Returns true if the target is expected to pass all machine verifier checks. | |
| Public Member Functions inherited from llvm::CodeGenTargetMachineImpl | |
| 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 the MCJIT. | |
| bool | addAsmPrinter (PassManagerBase &PM, raw_pwrite_stream &Out, raw_pwrite_stream *DwoOut, CodeGenFileType FileType, MCContext &Context) override |
| Adds an AsmPrinter 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 |
| 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 |
| void | setTargetFeatureString (StringRef FS) |
| virtual ScheduleDAGInstrs * | createMachineScheduler (MachineSchedContext *C) const |
| Create an instance of ScheduleDAGInstrs to be run within the standard MachineScheduler pass for this function and target at the current optimization level. | |
| virtual ScheduleDAGInstrs * | createPostMachineScheduler (MachineSchedContext *C) const |
| Similar to createMachineScheduler but used when postRA machine scheduling is enabled. | |
| virtual yaml::MachineFunctionInfo * | createDefaultFuncInfoYAML () const |
| Allocate and return a default initialized instance of the YAML representation for the MachineFunctionInfo. | |
| virtual yaml::MachineFunctionInfo * | convertFuncInfoToYAML (const MachineFunction &MF) const |
| Allocate and initialize an instance of the YAML representation of the MachineFunctionInfo. | |
| virtual bool | parseMachineFunctionInfo (const yaml::MachineFunctionInfo &, PerFunctionMIParsingState &PFS, SMDiagnostic &Error, SMRange &SourceRange) const |
| Parse out the target's MachineFunctionInfo from the YAML reprsentation. | |
| template<typename STC> | |
| const STC & | getSubtarget (const Function &F) const |
| This method returns a pointer to the specified type of TargetSubtargetInfo. | |
| const DataLayout | createDataLayout () const |
| Create a DataLayout. | |
| bool | isCompatibleDataLayout (const DataLayout &Candidate) const |
| Test if a DataLayout 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 (const Function &F) const |
| Reset the target options based on the function's attributes. | |
| const MCAsmInfo * | getMCAsmInfo () const |
| Return target specific asm information. | |
| const MCRegisterInfo * | getMCRegisterInfo () const |
| const MCInstrInfo * | getMCInstrInfo () const |
| const MCSubtargetInfo * | getMCSubtargetInfo () const |
| ExceptionHandling | getExceptionModel () const |
| Return the ExceptionHandling to use, considering TargetOptions and the Triple's default. | |
| bool | requiresStructuredCFG () const |
| void | setRequiresStructuredCFG (bool Value) |
| 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 (const GlobalValue *GV) const |
| bool | isPositionIndependent () const |
| bool | shouldAssumeDSOLocal (const GlobalValue *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 (const GlobalValue *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 (bool Enable) |
| bool | getO0WantsFastISel () |
| void | setO0WantsFastISel (bool Enable) |
| void | setGlobalISel (bool Enable) |
| void | setGlobalISelAbort (GlobalISelAbortMode Mode) |
| void | setMachineOutliner (bool Enable) |
| void | setSupportsDefaultOutlining (bool Enable) |
| void | setSupportsDebugEntryValues (bool Enable) |
| void | setCFIFixup (bool Enable) |
| 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 | getEnableStaticDataPartitioning () const |
| bool | getIgnoreXCOFFVisibility () const |
| Return true if visibility attribute should not be emitted in XCOFF, corresponding to -mignore-xcoff-visibility. | |
| bool | getXCOFFTracebackTable () const |
| Return true if XCOFF 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. | |
| const MemoryBuffer * | getBBSectionsFuncListBuf () const |
| Get the list of functions and basic block ids that need unique sections. | |
| virtual bool | 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 |
| virtual unsigned | getAssumedAddrSpace (const Value *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< const Value *, unsigned > | getPredicatedAddrSpace (const Value *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 a TargetIRAnalysis appropriate for the target. | |
| virtual void | registerPassBuilderCallbacks (PassBuilder &) |
| Allow the target to modify the pass pipeline. | |
| virtual void | registerEarlyDefaultAliasAnalyses (AAManager &) |
| Allow the target to register early alias analyses (AA before BasicAA) with the AAManager for use with the new pass manager. | |
| virtual void | registerDefaultAliasAnalyses (AAManager &) |
| Allow the target to register alias analyses with the AAManager for use with the new pass manager. | |
| virtual bool | targetSchedulesPostRAScheduling () const |
| True if subtarget inserts the final scheduling pass on its own. | |
| void | getNameWithPrefix (SmallVectorImpl< char > &Name, const GlobalValue *GV, Mangler &Mang, bool MayAlwaysUsePrivate=false) const |
| MCSymbol * | getSymbol (const GlobalValue *GV) const |
| virtual unsigned | getSjLjDataSize () const |
| virtual unsigned | getAddressSpaceForPseudoSourceKind (unsigned Kind) const |
| getAddressSpaceForPseudoSourceKind - Given the kind of memory (e.g. | |
| virtual bool | splitModule (Module &M, unsigned NumParts, function_ref< void(std::unique_ptr< Module > MPart)> ModuleCallback) |
| Entry point for module splitting. | |
| virtual Error | buildCodeGenPipeline (ModulePassManager &, raw_pwrite_stream &, raw_pwrite_stream *, CodeGenFileType, const CGPassBuilderOption &, PassInstrumentationCallbacks *) |
| virtual bool | usesPhysRegsForValues () const |
| True if the target uses physical regs (as nearly all targets do). | |
| virtual bool | useIPRA () const |
| True if the target wants to use interprocedural register allocation by default. | |
| virtual int | unqualifiedInlineAsmVariant () const |
| The default variant to use in unqualified asm instructions. | |
| virtual void | registerMachineRegisterInfoCallback (MachineFunction &MF) const |
| virtual size_t | clearLinkerOptimizationHints (const SmallPtrSetImpl< MachineInstr * > &MIs) const |
Remove all Linker Optimization Hints (LOH) associated with instructions in MIs and. | |
Additional Inherited Members | |
| Static Public Member Functions inherited from llvm::TargetMachine | |
| static std::pair< int, int > | parseBinutilsVersion (StringRef Version) |
| Public Attributes inherited from llvm::TargetMachine | |
| TargetOptions | Options |
| Static Public Attributes inherited from llvm::TargetMachine | |
| static constexpr unsigned | DefaultSjLjDataSize = 32 |
| The integer bit size to use for SjLj based exception handling. | |
| Protected Member Functions inherited from llvm::CodeGenTargetMachineImpl | |
| CodeGenTargetMachineImpl (const Target &T, StringRef DataLayoutString, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOptLevel OL) | |
| void | initAsmInfo () |
| virtual void | reset () |
| Reset internal state. | |
| Protected Member Functions inherited from llvm::TargetMachine | |
| TargetMachine (const Target &T, StringRef DataLayoutString, const Triple &TargetTriple, StringRef CPU, StringRef FS, const TargetOptions &Options) | |
| Protected Attributes inherited from llvm::TargetMachine | |
| const Target & | TheTarget |
| The Target that this machine was created for. | |
| const DataLayout | DL |
| DataLayout for the target: keep ABI type size and alignment. | |
| Triple | TargetTriple |
| Triple string, CPU name, and target feature strings the TargetMachine 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< const MCAsmInfo > | AsmInfo |
| Contains target specific asm information. | |
| std::unique_ptr< const MCRegisterInfo > | MRI |
| std::unique_ptr< const MCInstrInfo > | MII |
| std::unique_ptr< const MCSubtargetInfo > | STI |
| unsigned | RequireStructuredCFG: 1 |
| unsigned | O0WantsFastISel: 1 |
| std::optional< PGOOptions > | PGOOption |
Definition at line 25 of file LanaiTargetMachine.h.
| LanaiTargetMachine::LanaiTargetMachine | ( | const Target & | TheTarget, |
| const Triple & | TargetTriple, | ||
| StringRef | Cpu, | ||
| StringRef | FeatureString, | ||
| const TargetOptions & | Options, | ||
| std::optional< Reloc::Model > | RM, | ||
| std::optional< CodeModel::Model > | CodeModel, | ||
| CodeGenOptLevel | OptLevel, | ||
| bool | JIT ) |
Definition at line 44 of file LanaiTargetMachine.cpp.
References llvm::CodeGenTargetMachineImpl::CodeGenTargetMachineImpl(), llvm::TargetMachine::getCodeModel(), llvm::getEffectiveCodeModel(), llvm::getEffectiveRelocModel(), llvm::CodeGenTargetMachineImpl::initAsmInfo(), llvm::TargetMachine::Options, llvm::TargetMachine::OptLevel, llvm::TargetMachine::RM, and T.
|
overridevirtual |
Create the target's instance of MachineFunctionInfo.
Reimplemented from llvm::TargetMachine.
Definition at line 64 of file LanaiTargetMachine.cpp.
References llvm::MachineFunctionInfo::create(), F, and llvm::TargetMachine::STI.
|
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::CodeGenTargetMachineImpl.
Definition at line 90 of file LanaiTargetMachine.cpp.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetMachine.
Definition at line 47 of file LanaiTargetMachine.h.
|
inlineoverridevirtual |
Virtual method implemented by subclasses that returns a reference to that target's TargetSubtargetInfo-derived member variable.
Reimplemented from llvm::TargetMachine.
Definition at line 38 of file LanaiTargetMachine.h.
|
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::CodeGenTargetMachineImpl.
Definition at line 60 of file LanaiTargetMachine.cpp.
References F.
|
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::TargetMachine.
Definition at line 55 of file LanaiTargetMachine.h.