LLVM  8.0.0svn
Classes | Namespaces | Macros | Enumerations | Functions | Variables
AArch64InstrInfo.h File Reference
#include "AArch64.h"
#include "AArch64RegisterInfo.h"
#include "llvm/CodeGen/MachineCombinerPattern.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "AArch64GenInstrInfo.inc"
Include dependency graph for AArch64InstrInfo.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::AArch64InstrInfo
 

Namespaces

 llvm
 This class represents lattice values for constants.
 
 llvm::AArch64
 

Macros

#define GET_INSTRINFO_HEADER
 
#define FALKOR_STRIDED_ACCESS_MD   "falkor.strided.access"
 
#define GET_INSTRINFO_HELPER_DECLS
 
#define TSFLAG_ELEMENT_SIZE_TYPE(X)   (X)
 
#define TSFLAG_DESTRUCTIVE_INST_TYPE(X)   ((X) << 3)
 

Enumerations

enum  llvm::AArch64FrameOffsetStatus { llvm::AArch64FrameOffsetCannotUpdate = 0x0, llvm::AArch64FrameOffsetIsLegal = 0x1, llvm::AArch64FrameOffsetCanUpdate = 0x2 }
 Use to report the frame offset status in isAArch64FrameOffsetLegal. More...
 
enum  llvm::AArch64::ElementSizeType {
  llvm::AArch64::ElementSizeMask = TSFLAG_ELEMENT_SIZE_TYPE(0x7), llvm::AArch64::ElementSizeNone = TSFLAG_ELEMENT_SIZE_TYPE(0x0), llvm::AArch64::ElementSizeB = TSFLAG_ELEMENT_SIZE_TYPE(0x1), llvm::AArch64::ElementSizeH = TSFLAG_ELEMENT_SIZE_TYPE(0x2),
  llvm::AArch64::ElementSizeS = TSFLAG_ELEMENT_SIZE_TYPE(0x3), llvm::AArch64::ElementSizeD = TSFLAG_ELEMENT_SIZE_TYPE(0x4)
}
 
enum  llvm::AArch64::DestructiveInstType { llvm::AArch64::DestructiveInstTypeMask = TSFLAG_DESTRUCTIVE_INST_TYPE(0x1), llvm::AArch64::NotDestructive = TSFLAG_DESTRUCTIVE_INST_TYPE(0x0), llvm::AArch64::Destructive = TSFLAG_DESTRUCTIVE_INST_TYPE(0x1) }
 

Functions

void llvm::emitFrameOffset (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, const DebugLoc &DL, unsigned DestReg, unsigned SrcReg, int Offset, const TargetInstrInfo *TII, MachineInstr::MIFlag=MachineInstr::NoFlags, bool SetNZCV=false, bool NeedsWinCFI=false)
 emitFrameOffset - Emit instructions as needed to set DestReg to SrcReg plus Offset. More...
 
bool llvm::rewriteAArch64FrameIndex (MachineInstr &MI, unsigned FrameRegIdx, unsigned FrameReg, int &Offset, const AArch64InstrInfo *TII)
 rewriteAArch64FrameIndex - Rewrite MI to access 'Offset' bytes from the FP. More...
 
int llvm::isAArch64FrameOffsetLegal (const MachineInstr &MI, int &Offset, bool *OutUseUnscaledOp=nullptr, unsigned *OutUnscaledOp=nullptr, int *EmittableOffset=nullptr)
 Check if the Offset is a valid frame offset for MI. More...
 
static bool llvm::isUncondBranchOpcode (int Opc)
 
static bool llvm::isCondBranchOpcode (int Opc)
 
static bool llvm::isIndirectBranchOpcode (int Opc)
 

Variables

static const MachineMemOperand::Flags llvm::MOSuppressPair
 
static const MachineMemOperand::Flags llvm::MOStridedAccess
 

Macro Definition Documentation

◆ FALKOR_STRIDED_ACCESS_MD

#define FALKOR_STRIDED_ACCESS_MD   "falkor.strided.access"

◆ GET_INSTRINFO_HEADER

#define GET_INSTRINFO_HEADER

Definition at line 22 of file AArch64InstrInfo.h.

◆ GET_INSTRINFO_HELPER_DECLS

#define GET_INSTRINFO_HELPER_DECLS

Definition at line 251 of file AArch64InstrInfo.h.

◆ TSFLAG_DESTRUCTIVE_INST_TYPE

#define TSFLAG_DESTRUCTIVE_INST_TYPE (   X)    ((X) << 3)

Definition at line 340 of file AArch64InstrInfo.h.

◆ TSFLAG_ELEMENT_SIZE_TYPE

#define TSFLAG_ELEMENT_SIZE_TYPE (   X)    (X)

Definition at line 339 of file AArch64InstrInfo.h.