28 static const char *
AVRDataLayout =
"e-p:16:16:16-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-n8";
32 if (CPU.
empty() || CPU ==
"generic") {
52 this->TLOF = make_unique<AVRTargetObjectFile>();
63 AVRTargetMachine &getAVRTargetMachine()
const {
64 return getTM<AVRTargetMachine>();
67 bool addInstSelector()
override;
68 void addPreSched2()
override;
69 void addPreRegAlloc()
override;
74 return new AVRPassConfig(
this, PM);
99 bool AVRPassConfig::addInstSelector() {
108 void AVRPassConfig::addPreRegAlloc() {
113 void AVRPassConfig::addPreSched2() {
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
const AVRSubtarget * getSubtargetImpl() const
Target & getTheAVRTarget()
FunctionPass * createAVRRelaxMemPass()
Target-Independent Code Generator Pass Configuration Options.
A generic AVR implementation.
void LLVMInitializeAVRTarget()
void initializeAVRRelaxMemPass(PassRegistry &)
void initializeAVRInstrumentFunctionsPass(PassRegistry &)
static Reloc::Model getEffectiveRelocModel(Optional< Reloc::Model > RM)
TargetPassConfig * createPassConfig(PassManagerBase &PM) override
Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of ...
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 * createAVRISelDag(AVRTargetMachine &TM, CodeGenOpt::Level OptLevel)
Triple - Helper class for working with autoconf configuration names.
Module.h This file contains the declarations for the Module class.
Target - Wrapper for Target specific information.
A specific AVR target MCU.
FunctionPass * createAVRExpandPseudoPass()
LLVM_NODISCARD LLVM_ATTRIBUTE_ALWAYS_INLINE bool empty() const
empty - Check if the string is empty.
static const char * AVRDataLayout
static StringRef getCPU(StringRef CPU)
Processes a CPU name.
RegisterTargetMachine - Helper template for registering a target machine implementation, for use in the target machine initialization function.
FunctionPass * createAVRFrameAnalyzerPass()
Creates instance of the frame analyzer pass.
StringRef - Represent a constant reference to a string, i.e.
AVRTargetMachine(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Optional< Reloc::Model > RM, CodeModel::Model CM, CodeGenOpt::Level OL)
void initializeAVRExpandPseudoPass(PassRegistry &)
FunctionPass * createAVRDynAllocaSRPass()
createAVRDynAllocaSRPass - returns an instance of the dynalloca stack pointer save/restore pass...