26 #define GET_REGINFO_TARGET_DESC 27 #include "BPFGenRegisterInfo.inc" 40 markSuperRegs(Reserved, BPF::W10);
41 markSuperRegs(Reserved, BPF::W11);
50 "Looks like the BPF stack limit of 512 bytes is exceeded. " 51 "Please move large on stack variables into BPF per-cpu array map.\n",
58 int SPAdj,
unsigned FIOperandNum,
60 assert(SPAdj == 0 &&
"Unexpected");
71 if (
I.getDebugLoc()) {
91 BuildMI(MBB, ++II, DL, TII.
get(BPF::ADD_ri), reg)
111 BuildMI(MBB, ++II, DL, TII.
get(BPF::MOV_rr), reg)
113 BuildMI(MBB, II, DL, TII.
get(BPF::ADD_ri), reg)
unsigned getFrameRegister(const MachineFunction &MF) const override
Diagnostic information for unsupported feature in backend.
This class represents lattice values for constants.
void ChangeToRegister(unsigned Reg, bool isDef, bool isImp=false, bool isKill=false, bool isDead=false, bool isUndef=false, bool isDebug=false)
ChangeToRegister - Replace this operand with a new register operand of the specified value...
const DebugLoc & getDebugLoc() const
Returns the debug location id of this MachineInstr.
unsigned getReg() const
getReg - Returns the register number.
const HexagonInstrInfo * TII
unsigned getNumOperands() const
Retuns the total number of operands.
void eraseFromParent()
Unlink 'this' from the containing basic block and delete it.
int64_t getObjectOffset(int ObjectIdx) const
Return the assigned stack offset of the specified object from the incoming stack pointer.
unsigned getOpcode() const
Returns the opcode of this MachineInstr.
virtual const TargetInstrInfo * getInstrInfo() const
uint16_t MCPhysReg
An unsigned integer type large enough to represent all physical registers, but not necessarily virtua...
void ChangeToImmediate(int64_t ImmVal)
ChangeToImmediate - Replace this operand with a new immediate operand of the specified value...
TargetInstrInfo - Interface to description of machine instruction set.
MachineInstrBuilder BuildMI(MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID)
Builder interface. Specify how to create the initial instruction itself.
This file declares the machine register scavenger class.
const TargetSubtargetInfo & getSubtarget() const
getSubtarget - Return the subtarget for which this machine code is being compiled.
void eliminateFrameIndex(MachineBasicBlock::iterator MI, int SPAdj, unsigned FIOperandNum, RegScavenger *RS=nullptr) const override
MachineFrameInfo & getFrameInfo()
getFrameInfo - Return the frame info object for the current function.
LLVMContext & getContext() const
getContext - Return a reference to the LLVMContext associated with this function. ...
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
constexpr bool isInt< 32 >(int64_t x)
static void WarnSize(int Offset, MachineFunction &MF, DebugLoc &DL)
const Function & getFunction() const
Return the LLVM function that this machine code represents.
const MachineBasicBlock * getParent() const
Representation of each machine instruction.
const MachineFunction * getParent() const
Return the MachineFunction containing this basic block.
const MachineInstrBuilder & addImm(int64_t Val) const
Add a new immediate operand.
const MCInstrDesc & get(unsigned Opcode) const
Return the machine instruction descriptor that corresponds to the specified instruction opcode...
bool isFI() const
isFI - Tests if this is a MO_FrameIndex operand.
void diagnose(const DiagnosticInfo &DI)
Report a message to the currently installed diagnostic handler.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
const MCPhysReg * getCalleeSavedRegs(const MachineFunction *MF) const override
const MachineOperand & getOperand(unsigned i) const
BitVector getReservedRegs(const MachineFunction &MF) const override