45 Ret +=
"-f128:64-n32";
65 Subtarget(TT, CPU, FS, *this, is64bit) {
79 return getTM<SparcTargetMachine>();
82 void addIRPasses()
override;
83 bool addInstSelector()
override;
84 void addPreEmitPass()
override;
89 return new SparcPassConfig(
this, PM);
92 void SparcPassConfig::addIRPasses() {
98 bool SparcPassConfig::addInstSelector() {
103 void SparcPassConfig::addPreEmitPass(){
107 void SparcV8TargetMachine::anchor() { }
116 void SparcV9TargetMachine::anchor() { }
125 void SparcelTargetMachine::anchor() {}
SparcTargetMachine(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL, bool is64bit)
SparcTargetMachine ctor - Create an ILP32 architecture model.
virtual void addIRPasses()
Add common target configurable passes that perform LLVM IR to IR transforms following machine indepen...
SparcV9TargetMachine(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
FunctionPass * createSparcDelaySlotFillerPass(TargetMachine &TM)
createSparcDelaySlotFillerPass - Returns a pass that fills in delay slots in Sparc MachineFunctions ...
void LLVMInitializeSparcTarget()
FunctionPass * createAtomicExpandPass(const TargetMachine *TM)
Target-Independent Code Generator Pass Configuration Options.
ArchType getArch() const
getArch - Get the parsed architecture type of this triple.
std::enable_if<!std::is_array< T >::value, std::unique_ptr< T > >::type make_unique(Args &&...args)
Constructs a new T() with the given args and returns a unique_ptr<T> which owns the object...
SparcV8TargetMachine(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
static bool is64Bit(const char *name)
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang","erlang-compatible garbage collector")
This class describes a target machine that is implemented with the LLVM target-independent code gener...
FunctionPass * createSparcISelDag(SparcTargetMachine &TM)
createSparcISelDag - This pass converts a legalized DAG into a SPARC-specific DAG, ready for instruction scheduling.
SparcelTargetMachine(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
Triple - Helper class for working with autoconf configuration names.
Target - Wrapper for Target specific information.
static std::string computeDataLayout(const Triple &T, bool is64Bit)
~SparcTargetMachine() override
TargetPassConfig * createPassConfig(PassManagerBase &PM) override
Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of ...
RegisterTargetMachine - Helper template for registering a target machine implementation, for use in the target machine initialization function.
StringRef - Represent a constant reference to a string, i.e.
static GCMetadataPrinterRegistry::Add< OcamlGCMetadataPrinter > Y("ocaml","ocaml 3.10-compatible collector")