| 
    LLVM 22.0.0git
    
   | 
 
#include "Target/ARC/ARCTargetMachine.h"
Public Member Functions | |
| ARCTargetMachine (const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, std::optional< Reloc::Model > RM, std::optional< CodeModel::Model > CM, CodeGenOptLevel OL, bool JIT) | |
| ARCTargetMachine ctor - Create an ILP32 architecture model.   | |
| ~ARCTargetMachine () override | |
| const ARCSubtarget * | getSubtargetImpl () const | 
| const ARCSubtarget * | getSubtargetImpl (const Function &) const override | 
| Virtual method implemented by subclasses that returns a reference to that target's TargetSubtargetInfo-derived member variable.   | |
| TargetPassConfig * | createPassConfig (PassManagerBase &PM) override | 
| Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of CodeGen passes.   | |
| TargetTransformInfo | getTargetTransformInfo (const Function &F) const override | 
| Return a TargetTransformInfo for a given function.   | |
| TargetLoweringObjectFile * | getObjFileLowering () const override | 
| MachineFunctionInfo * | createMachineFunctionInfo (BumpPtrAllocator &Allocator, const Function &F, const TargetSubtargetInfo *STI) const override | 
| Create the target's instance of MachineFunctionInfo.   | |
| Public Member Functions inherited from llvm::CodeGenTargetMachineImpl | |
| TargetTransformInfo | getTargetTransformInfo (const Function &F) const override | 
| Get a TargetTransformInfo implementation for the target.   | |
| TargetPassConfig * | 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 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 | isMachineVerifierClean () const | 
| Returns true if the target is expected to pass all machine verifier checks.   | |
| 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 24 of file ARCTargetMachine.h.
| ARCTargetMachine::ARCTargetMachine | ( | const Target & | T, | 
| const Triple & | TT, | ||
| StringRef | CPU, | ||
| StringRef | FS, | ||
| const TargetOptions & | Options, | ||
| std::optional< Reloc::Model > | RM, | ||
| std::optional< CodeModel::Model > | CM, | ||
| CodeGenOptLevel | OL, | ||
| bool | JIT ) | 
ARCTargetMachine ctor - Create an ILP32 architecture model.
Definition at line 30 of file ARCTargetMachine.cpp.
References llvm::CodeGenTargetMachineImpl::CodeGenTargetMachineImpl(), llvm::getEffectiveCodeModel(), getRelocModel(), llvm::CodeGenTargetMachineImpl::initAsmInfo(), llvm::TargetMachine::Options, llvm::TargetMachine::RM, and T.
      
  | 
  overridedefault | 
      
  | 
  overridevirtual | 
Create the target's instance of MachineFunctionInfo.
Reimplemented from llvm::TargetMachine.
Definition at line 88 of file ARCTargetMachine.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.
Reimplemented from llvm::TargetMachine.
Definition at line 66 of file ARCTargetMachine.cpp.
      
  | 
  inlineoverridevirtual | 
Reimplemented from llvm::TargetMachine.
Definition at line 45 of file ARCTargetMachine.h.
      
  | 
  inline | 
Definition at line 36 of file ARCTargetMachine.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 37 of file ARCTargetMachine.h.
      
  | 
  overridevirtual | 
Return a TargetTransformInfo for a given function.
The returned TargetTransformInfo is specialized to the subtarget corresponding to F. 
Reimplemented from llvm::TargetMachine.
Definition at line 103 of file ARCTargetMachine.cpp.
References F.