13#ifndef LLVM_AVR_SUBTARGET_H
14#define LLVM_AVR_SUBTARGET_H
26#define GET_SUBTARGETINFO_HEADER
27#include "AVRGenSubtargetInfo.inc"
44 return &FrameLowering;
65 bool hasSRAM()
const {
return m_hasSRAM; }
71 bool hasMOVW()
const {
return m_hasMOVW; }
72 bool hasLPM()
const {
return m_hasLPM; }
73 bool hasLPMX()
const {
return m_hasLPMX; }
74 bool hasELPM()
const {
return m_hasELPM; }
76 bool hasSPM()
const {
return m_hasSPM; }
77 bool hasSPMX()
const {
return m_hasSPMX; }
78 bool hasDES()
const {
return m_hasDES; }
92 "every device must have an associate ELF architecture");
116 unsigned ELFArch = 0;
120 bool m_hasSRAM =
false;
121 bool m_hasJMPCALL =
false;
122 bool m_hasIJMPCALL =
false;
123 bool m_hasEIJMPCALL =
false;
124 bool m_hasADDSUBIW =
false;
125 bool m_hasSmallStack =
false;
126 bool m_hasMOVW =
false;
127 bool m_hasLPM =
false;
128 bool m_hasLPMX =
false;
129 bool m_hasELPM =
false;
130 bool m_hasELPMX =
false;
131 bool m_hasSPM =
false;
132 bool m_hasSPMX =
false;
133 bool m_hasDES =
false;
134 bool m_supportsRMW =
false;
135 bool m_supportsMultiplication =
false;
136 bool m_hasBREAK =
false;
137 bool m_hasTinyEncoding =
false;
138 bool m_hasLowByteFirst =
false;
139 bool m_hasMemMappedGPR =
false;
143 bool m_FeatureSetDummy =
false;
const char LLVMTargetMachineRef TM
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Utilities for creating function call frames.
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.
bool hasMemMappedGPR() const
bool hasSmallStack() const
bool hasTinyEncoding() const
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
bool hasEIJMPCALL() const
void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)
Parses a subtarget feature string, setting appropriate options.
bool supportsMultiplication() const
const AVRSelectionDAGInfo * getSelectionDAGInfo() const override
int getRegZeroIndex() const
bool hasLowByteFirst() 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.