13#ifndef LLVM_AVR_SUBTARGET_H
14#define LLVM_AVR_SUBTARGET_H
26#define GET_SUBTARGETINFO_HEADER
27#include "AVRGenSubtargetInfo.inc"
44 return &FrameLowering;
64#define GET_SUBTARGETINFO_MACRO(ATTRIBUTE, DEFAULT, GETTER) \
65 bool GETTER() const { return ATTRIBUTE; }
66#include "AVRGenSubtargetInfo.inc"
76 "every device must have an associate ELF architecture");
84 int getIORegSPH()
const {
return hasSmallStack() ? -1 : 0x3e; }
92 return hasTinyEncoding() ? AVR::R16 : AVR::R0;
95 return hasTinyEncoding() ? AVR::R17 : AVR::R1;
100 unsigned ELFArch = 0;
103#define GET_SUBTARGETINFO_MACRO(ATTRIBUTE, DEFAULT, GETTER) \
104 bool ATTRIBUTE = DEFAULT;
105#include "AVRGenSubtargetInfo.inc"
107 AVRInstrInfo InstrInfo;
108 AVRFrameLowering FrameLowering;
109 AVRTargetLowering TLInfo;
110 AVRSelectionDAGInfo TSInfo;
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Utilities related to the AVR instruction set.
const AVRRegisterInfo & getRegisterInfo() const
Utilities relating to AVR registers.
Holds information about the AVR instruction selection DAG.
A specific AVR target MCU.
Register getTmpRegister() const
uint8_t getIORegisterOffset() const
unsigned getELFArch() const
Gets the ELF architecture for the e_flags field of an ELF object file.
const TargetFrameLowering * getFrameLowering() const override
int getIORegRAMPZ() const
Get I/O register addresses.
Register getZeroRegister() const
int getRegTmpIndex() const
Get GPR aliases.
const AVRInstrInfo * getInstrInfo() const override
void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)
Parses a subtarget feature string, setting appropriate options.
const AVRSelectionDAGInfo * getSelectionDAGInfo() const override
bool enableSubRegLiveness() const override
int getRegZeroIndex() const
const AVRTargetLowering * getTargetLowering() const override
AVRSubtarget & initializeSubtargetDependencies(StringRef CPU, StringRef FS, const TargetMachine &TM)
const AVRRegisterInfo * getRegisterInfo() const override
Performs target lowering for the AVR.
A generic AVR implementation.
Wrapper class representing virtual and physical registers.
StringRef - Represent a constant reference to a string, i.e.
Information about stack frame layout on the target.
Primary interface to the complete machine description for the target machine.
Triple - Helper class for working with autoconf configuration names.
This is an optimization pass for GlobalISel generic memory operations.