13#ifndef LLVM_AVR_SUBTARGET_H
14#define LLVM_AVR_SUBTARGET_H
26#define GET_SUBTARGETINFO_HEADER
27#include "AVRGenSubtargetInfo.inc"
44 return &FrameLowering;
53 return &InstrInfo.getRegisterInfo();
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"
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
Utilities for creating function call frames.
Utilities related to the AVR instruction set.
Utilities relating to AVR registers.
Holds information about the AVR instruction selection DAG.
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(const Triple &TT, const std::string &CPU, const std::string &FS, const AVRTargetMachine &TM)
Creates an AVR subtarget.
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.