13#ifndef LLVM_AVR_INSTR_INFO_H 
   14#define LLVM_AVR_INSTR_INFO_H 
   20#define GET_INSTRINFO_HEADER 
   21#include "AVRGenInstrInfo.inc" 
   22#undef GET_INSTRINFO_HEADER 
   78                   bool KillSrc, 
bool RenamableDest = 
false,
 
   79                   bool RenamableSrc = 
false) 
const override;
 
   91                               int &FrameIndex) 
const override;
 
   93                              int &FrameIndex) 
const override;
 
   99                     bool AllowModify = 
false) 
const override;
 
  103                        int *BytesAdded = 
nullptr) 
const override;
 
  105                        int *BytesRemoved = 
nullptr) 
const override;
 
  112                             int64_t BrOffset) 
const override;
 
 
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
 
Register const TargetRegisterInfo * TRI
 
const SmallVectorImpl< MachineOperand > MachineBasicBlock * TBB
 
const SmallVectorImpl< MachineOperand > & Cond
 
Register isStoreToStackSlot(const MachineInstr &MI, int &FrameIndex) const override
 
AVRCC::CondCodes getCondFromBranchOpc(unsigned Opc) const
 
AVRCC::CondCodes getOppositeCondition(AVRCC::CondCodes CC) const
 
void copyPhysReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const DebugLoc &DL, Register DestReg, Register SrcReg, bool KillSrc, bool RenamableDest=false, bool RenamableSrc=false) const override
 
void insertIndirectBranch(MachineBasicBlock &MBB, MachineBasicBlock &NewDestBB, MachineBasicBlock &RestoreBB, const DebugLoc &DL, int64_t BrOffset, RegScavenger *RS) const override
 
unsigned insertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB, MachineBasicBlock *FBB, ArrayRef< MachineOperand > Cond, const DebugLoc &DL, int *BytesAdded=nullptr) const override
 
MachineBasicBlock * getBranchDestBlock(const MachineInstr &MI) const override
 
bool analyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB, MachineBasicBlock *&FBB, SmallVectorImpl< MachineOperand > &Cond, bool AllowModify=false) const override
 
void storeRegToStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, Register SrcReg, bool isKill, int FrameIndex, const TargetRegisterClass *RC, const TargetRegisterInfo *TRI, Register VReg, MachineInstr::MIFlag Flags=MachineInstr::NoFlags) const override
 
void loadRegFromStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, Register DestReg, int FrameIndex, const TargetRegisterClass *RC, const TargetRegisterInfo *TRI, Register VReg, MachineInstr::MIFlag Flags=MachineInstr::NoFlags) const override
 
AVRInstrInfo(const AVRSubtarget &STI)
 
bool reverseBranchCondition(SmallVectorImpl< MachineOperand > &Cond) const override
 
unsigned getInstSizeInBytes(const MachineInstr &MI) const override
 
bool isBranchOffsetInRange(unsigned BranchOpc, int64_t BrOffset) const override
 
const AVRRegisterInfo & getRegisterInfo() const
 
unsigned removeBranch(MachineBasicBlock &MBB, int *BytesRemoved=nullptr) const override
 
Register isLoadFromStackSlot(const MachineInstr &MI, int &FrameIndex) const override
 
const MCInstrDesc & getBrCond(AVRCC::CondCodes CC) const
 
Utilities relating to AVR registers.
 
A specific AVR target MCU.
 
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
 
Describe properties that are true of each instruction in the target description file.
 
MachineInstrBundleIterator< MachineInstr > iterator
 
Representation of each machine instruction.
 
Wrapper class representing virtual and physical registers.
 
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
 
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
 
CondCodes
AVR specific condition codes.
 
@ COND_SH
Unsigned same or higher.
 
@ COND_GE
Greater than or equal.
 
TOF
Specifies a target operand flag.
 
@ MO_HI
On a symbol operand, this represents the hi part.
 
@ MO_NEG
On a symbol operand, this represents it has to be negated.
 
@ MO_LO
On a symbol operand, this represents the lo part.
 
This is an optimization pass for GlobalISel generic memory operations.