LLVM  6.0.0svn
Public Member Functions | List of all members
llvm::AArch64RegisterInfo Class Referencefinal

#include "Target/AArch64/AArch64RegisterInfo.h"

Inheritance diagram for llvm::AArch64RegisterInfo:
Inheritance graph
[legend]
Collaboration diagram for llvm::AArch64RegisterInfo:
Collaboration graph
[legend]

Public Member Functions

 AArch64RegisterInfo (const Triple &TT)
 
bool isReservedReg (const MachineFunction &MF, unsigned Reg) const
 
const MCPhysReggetCalleeSavedRegs (const MachineFunction *MF) const override
 Code Generation virtual methods... More...
 
const MCPhysReggetCalleeSavedRegsViaCopy (const MachineFunction *MF) const
 
const uint32_tgetCallPreservedMask (const MachineFunction &MF, CallingConv::ID) const override
 
unsigned getCSRFirstUseCost () const override
 
const uint32_tgetTLSCallPreservedMask () const
 
const uint32_tgetThisReturnPreservedMask (const MachineFunction &MF, CallingConv::ID) const
 getThisReturnPreservedMask - Returns a call preserved mask specific to the case that 'returned' is on an i64 first argument if the calling convention is one that can (partially) model this attribute with a preserved mask (i.e. More...
 
BitVector getReservedRegs (const MachineFunction &MF) const override
 
bool isConstantPhysReg (unsigned PhysReg) const override
 
const TargetRegisterClassgetPointerRegClass (const MachineFunction &MF, unsigned Kind=0) const override
 
const TargetRegisterClassgetCrossCopyRegClass (const TargetRegisterClass *RC) const override
 
bool requiresRegisterScavenging (const MachineFunction &MF) const override
 
bool useFPForScavengingIndex (const MachineFunction &MF) const override
 
bool requiresFrameIndexScavenging (const MachineFunction &MF) const override
 
bool needsFrameBaseReg (MachineInstr *MI, int64_t Offset) const override
 needsFrameBaseReg - Returns true if the instruction's frame index reference would be better served by a base register other than FP or SP. More...
 
bool isFrameOffsetLegal (const MachineInstr *MI, unsigned BaseReg, int64_t Offset) const override
 
void materializeFrameBaseRegister (MachineBasicBlock *MBB, unsigned BaseReg, int FrameIdx, int64_t Offset) const override
 Insert defining instruction(s) for BaseReg to be a pointer to FrameIdx at the beginning of the basic block. More...
 
void resolveFrameIndex (MachineInstr &MI, unsigned BaseReg, int64_t Offset) const override
 
void eliminateFrameIndex (MachineBasicBlock::iterator II, int SPAdj, unsigned FIOperandNum, RegScavenger *RS=nullptr) const override
 
bool cannotEliminateFrame (const MachineFunction &MF) const
 
bool requiresVirtualBaseRegisters (const MachineFunction &MF) const override
 
bool hasBasePointer (const MachineFunction &MF) const
 
unsigned getBaseRegister () const
 
unsigned getFrameRegister (const MachineFunction &MF) const override
 
unsigned getRegPressureLimit (const TargetRegisterClass *RC, MachineFunction &MF) const override
 
bool trackLivenessAfterRegAlloc (const MachineFunction &) const override
 

Detailed Description

Definition at line 27 of file AArch64RegisterInfo.h.

Constructor & Destructor Documentation

◆ AArch64RegisterInfo()

AArch64RegisterInfo::AArch64RegisterInfo ( const Triple TT)

Member Function Documentation

◆ cannotEliminateFrame()

bool AArch64RegisterInfo::cannotEliminateFrame ( const MachineFunction MF) const

◆ eliminateFrameIndex()

void AArch64RegisterInfo::eliminateFrameIndex ( MachineBasicBlock::iterator  II,
int  SPAdj,
unsigned  FIOperandNum,
RegScavenger RS = nullptr 
) const
override

◆ getBaseRegister()

unsigned AArch64RegisterInfo::getBaseRegister ( ) const

◆ getCalleeSavedRegs()

const MCPhysReg * AArch64RegisterInfo::getCalleeSavedRegs ( const MachineFunction MF) const
override

◆ getCalleeSavedRegsViaCopy()

const MCPhysReg * AArch64RegisterInfo::getCalleeSavedRegsViaCopy ( const MachineFunction MF) const

◆ getCallPreservedMask()

const uint32_t * AArch64RegisterInfo::getCallPreservedMask ( const MachineFunction MF,
CallingConv::ID  CC 
) const
override

◆ getCrossCopyRegClass()

const TargetRegisterClass * AArch64RegisterInfo::getCrossCopyRegClass ( const TargetRegisterClass RC) const
override

Definition at line 176 of file AArch64RegisterInfo.cpp.

Referenced by getCSRFirstUseCost().

◆ getCSRFirstUseCost()

unsigned llvm::AArch64RegisterInfo::getCSRFirstUseCost ( ) const
inlineoverride

◆ getFrameRegister()

unsigned AArch64RegisterInfo::getFrameRegister ( const MachineFunction MF) const
override

◆ getPointerRegClass()

const TargetRegisterClass * AArch64RegisterInfo::getPointerRegClass ( const MachineFunction MF,
unsigned  Kind = 0 
) const
override

Definition at line 170 of file AArch64RegisterInfo.cpp.

Referenced by getCSRFirstUseCost().

◆ getRegPressureLimit()

unsigned AArch64RegisterInfo::getRegPressureLimit ( const TargetRegisterClass RC,
MachineFunction MF 
) const
override

◆ getReservedRegs()

BitVector AArch64RegisterInfo::getReservedRegs ( const MachineFunction MF) const
override

◆ getThisReturnPreservedMask()

const uint32_t * AArch64RegisterInfo::getThisReturnPreservedMask ( const MachineFunction MF,
CallingConv::ID  CC 
) const

getThisReturnPreservedMask - Returns a call preserved mask specific to the case that 'returned' is on an i64 first argument if the calling convention is one that can (partially) model this attribute with a preserved mask (i.e.

it is a calling convention that uses the same register for the first i64 argument and an i64 return value)

Should return NULL in the case that the calling convention does not have this property

Definition at line 104 of file AArch64RegisterInfo.cpp.

References assert(), and llvm::CallingConv::GHC.

Referenced by getCSRFirstUseCost(), and mayTailCallThisCC().

◆ getTLSCallPreservedMask()

const uint32_t * AArch64RegisterInfo::getTLSCallPreservedMask ( ) const

◆ hasBasePointer()

bool AArch64RegisterInfo::hasBasePointer ( const MachineFunction MF) const

◆ isConstantPhysReg()

bool AArch64RegisterInfo::isConstantPhysReg ( unsigned  PhysReg) const
override

Definition at line 165 of file AArch64RegisterInfo.cpp.

Referenced by getCSRFirstUseCost().

◆ isFrameOffsetLegal()

bool AArch64RegisterInfo::isFrameOffsetLegal ( const MachineInstr MI,
unsigned  BaseReg,
int64_t  Offset 
) const
override

◆ isReservedReg()

bool AArch64RegisterInfo::isReservedReg ( const MachineFunction MF,
unsigned  Reg 
) const

◆ materializeFrameBaseRegister()

void AArch64RegisterInfo::materializeFrameBaseRegister ( MachineBasicBlock MBB,
unsigned  BaseReg,
int  FrameIdx,
int64_t  Offset 
) const
override

◆ needsFrameBaseReg()

bool AArch64RegisterInfo::needsFrameBaseReg ( MachineInstr MI,
int64_t  Offset 
) const
override

needsFrameBaseReg - Returns true if the instruction's frame index reference would be better served by a base register other than FP or SP.

Used by LocalStackFrameAllocation to determine which frame index references it should create new base registers for.

Definition at line 252 of file AArch64RegisterInfo.cpp.

References assert(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getLocalFrameSize(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::AArch64FrameLowering::hasFP(), llvm::MachineOperand::isFI(), isFrameOffsetLegal(), llvm::MachineInstr::mayLoad(), and llvm::MachineInstr::mayStore().

Referenced by getCSRFirstUseCost().

◆ requiresFrameIndexScavenging()

bool AArch64RegisterInfo::requiresFrameIndexScavenging ( const MachineFunction MF) const
override

Definition at line 235 of file AArch64RegisterInfo.cpp.

Referenced by getCSRFirstUseCost().

◆ requiresRegisterScavenging()

bool AArch64RegisterInfo::requiresRegisterScavenging ( const MachineFunction MF) const
override

Definition at line 216 of file AArch64RegisterInfo.cpp.

Referenced by getCSRFirstUseCost().

◆ requiresVirtualBaseRegisters()

bool AArch64RegisterInfo::requiresVirtualBaseRegisters ( const MachineFunction MF) const
override

Definition at line 221 of file AArch64RegisterInfo.cpp.

Referenced by getCSRFirstUseCost().

◆ resolveFrameIndex()

void AArch64RegisterInfo::resolveFrameIndex ( MachineInstr MI,
unsigned  BaseReg,
int64_t  Offset 
) const
override

◆ trackLivenessAfterRegAlloc()

bool llvm::AArch64RegisterInfo::trackLivenessAfterRegAlloc ( const MachineFunction ) const
inlineoverride

Definition at line 99 of file AArch64RegisterInfo.h.

◆ useFPForScavengingIndex()

bool AArch64RegisterInfo::useFPForScavengingIndex ( const MachineFunction MF) const
override

The documentation for this class was generated from the following files: