13#ifndef LLVM_LIB_TARGET_ARM_ARMTARGETMACHINE_H 
   14#define LLVM_LIB_TARGET_ARM_ARMTARGETMACHINE_H 
   34  std::unique_ptr<TargetLoweringObjectFile> 
TLOF;
 
   39  void reset() 
override;
 
   44                       std::optional<Reloc::Model> 
RM,
 
  107                                SMRange &SourceRange) 
const override;
 
 
  120                     std::optional<Reloc::Model> 
RM,
 
 
  131                     std::optional<Reloc::Model> 
RM,
 
 
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
 
This file defines the StringMap class.
 
ARMBETargetMachine(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)
 
TargetLoweringObjectFile * getObjFileLowering() const override
 
~ARMBaseTargetMachine() override
 
bool parseMachineFunctionInfo(const yaml::MachineFunctionInfo &, PerFunctionMIParsingState &PFS, SMDiagnostic &Error, SMRange &SourceRange) const override
Parse out the target's MachineFunctionInfo from the YAML reprsentation.
 
bool isTargetHardFloat() const
 
std::unique_ptr< TargetLoweringObjectFile > TLOF
 
void reset() override
Reset internal state.
 
ARMBaseTargetMachine(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)
Create an ARM architecture model.
 
MachineFunctionInfo * createMachineFunctionInfo(BumpPtrAllocator &Allocator, const Function &F, const TargetSubtargetInfo *STI) const override
Create the target's instance of MachineFunctionInfo.
 
bool isNoopAddrSpaceCast(unsigned SrcAS, unsigned DestAS) const override
Returns true if a cast between SrcAS and DestAS is a noop.
 
bool isAAPCS16_ABI() const
 
yaml::MachineFunctionInfo * createDefaultFuncInfoYAML() const override
Allocate and return a default initialized instance of the YAML representation for the MachineFunction...
 
bool targetSchedulesPostRAScheduling() const override
True if subtarget inserts the final scheduling pass on its own.
 
TargetPassConfig * createPassConfig(PassManagerBase &PM) override
Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of ...
 
const ARMSubtarget * getSubtargetImpl() const =delete
 
ScheduleDAGInstrs * createMachineScheduler(MachineSchedContext *C) const override
Create an instance of ScheduleDAGInstrs to be run within the standard MachineScheduler pass for this ...
 
StringMap< std::unique_ptr< ARMSubtarget > > SubtargetMap
 
bool isLittleEndian() const
 
TargetTransformInfo getTargetTransformInfo(const Function &F) const override
Return a TargetTransformInfo for a given function.
 
ScheduleDAGInstrs * createPostMachineScheduler(MachineSchedContext *C) const override
Similar to createMachineScheduler but used when postRA machine scheduling is enabled.
 
yaml::MachineFunctionInfo * convertFuncInfoToYAML(const MachineFunction &MF) const override
Allocate and initialize an instance of the YAML representation of the MachineFunctionInfo.
 
ARMLETargetMachine(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)
 
CodeGenTargetMachineImpl(const Target &T, StringRef DataLayoutString, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOptLevel OL)
 
Lightweight error class with error context and mandatory checking.
 
Instances of this class encapsulate one diagnostic report, allowing printing to a raw_ostream as a ca...
 
Represents a range in source code.
 
A ScheduleDAG for scheduling lists of MachineInstr.
 
StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...
 
StringRef - Represent a constant reference to a string, i.e.
 
Triple TargetTriple
Triple string, CPU name, and target feature strings the TargetMachine instance is created with.
 
std::unique_ptr< const MCSubtargetInfo > STI
 
Target-Independent Code Generator Pass Configuration Options.
 
TargetSubtargetInfo - Generic base class for all target subtargets.
 
Target - Wrapper for Target specific information.
 
Triple - Helper class for working with autoconf configuration names.
 
PassManagerBase - An abstract interface to allow code to add passes to a pass manager without having ...
 
@ C
The default llvm calling convention, compatible with C.
 
This is an optimization pass for GlobalISel generic memory operations.
 
CodeGenOptLevel
Code generation optimization level.
 
BumpPtrAllocatorImpl<> BumpPtrAllocator
The standard BumpPtrAllocator which just uses the default template parameters.
 
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
 
MachineSchedContext provides enough context from the MachineScheduler pass for the target to instanti...
 
Targets should override this in a way that mirrors the implementation of llvm::MachineFunctionInfo.