LLVM API Documentation
#include <AArch64RegisterInfo.h>
Definition at line 28 of file AArch64RegisterInfo.h.
AArch64RegisterInfo::AArch64RegisterInfo | ( | const AArch64InstrInfo * | tii, |
const AArch64Subtarget * | sti | ||
) |
Definition at line 36 of file AArch64RegisterInfo.cpp.
bool AArch64RegisterInfo::cannotEliminateFrame | ( | const MachineFunction & | MF | ) | const |
Definition at line 202 of file AArch64RegisterInfo.cpp.
References llvm::MachineFrameInfo::adjustsStack(), llvm::TargetOptions::DisableFramePointerElim(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getTarget(), llvm::MachineFrameInfo::hasCalls(), llvm::MachineFrameInfo::hasVarSizedObjects(), llvm::MachineFrameInfo::isFrameAddressTaken(), and llvm::TargetMachine::Options.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan().
void AArch64RegisterInfo::eliminateFrameIndex | ( | MachineBasicBlock::iterator | II, |
int | SPAdj, | ||
unsigned | FIOperandNum, | ||
RegScavenger * | RS = nullptr |
||
) | const [override] |
Definition at line 320 of file AArch64RegisterInfo.cpp.
References llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::emitFrameOffset(), llvm::ISD::FrameIndex, llvm::MachineInstr::getDebugLoc(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), llvm::MachineInstr::isDebugValue(), llvm::RegScavenger::isScavengingFrameIndex(), llvm::AArch64CC::MI, llvm::TargetOpcode::PATCHPOINT, llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::rewriteAArch64FrameIndex(), and llvm::TargetOpcode::STACKMAP.
unsigned AArch64RegisterInfo::getBaseRegister | ( | ) | const |
Definition at line 145 of file AArch64RegisterInfo.cpp.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan(), and llvm::AArch64FrameLowering::resolveFrameIndexReference().
const MCPhysReg * AArch64RegisterInfo::getCalleeSavedRegs | ( | const MachineFunction * | MF = nullptr | ) | const [override] |
Code Generation virtual methods...
Definition at line 41 of file AArch64RegisterInfo.cpp.
References llvm::CallingConv::AnyReg, llvm::Function::getCallingConv(), and llvm::MachineFunction::getFunction().
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan().
const uint32_t * AArch64RegisterInfo::getCallPreservedMask | ( | CallingConv::ID | CC | ) | const [override] |
Definition at line 50 of file AArch64RegisterInfo.cpp.
References llvm::CallingConv::AnyReg.
const TargetRegisterClass * AArch64RegisterInfo::getCrossCopyRegClass | ( | const TargetRegisterClass * | RC | ) | const [override] |
Definition at line 139 of file AArch64RegisterInfo.cpp.
unsigned llvm::AArch64RegisterInfo::getCSRFirstUseCost | ( | ) | const [inline, override] |
Definition at line 43 of file AArch64RegisterInfo.h.
unsigned AArch64RegisterInfo::getFrameRegister | ( | const MachineFunction & | MF | ) | const [override] |
Definition at line 171 of file AArch64RegisterInfo.cpp.
References llvm::TargetSubtargetInfo::getFrameLowering(), llvm::MachineFunction::getSubtarget(), and llvm::TargetFrameLowering::hasFP().
Referenced by llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::resolveFrameIndexReference().
const TargetRegisterClass * AArch64RegisterInfo::getPointerRegClass | ( | const MachineFunction & | MF, |
unsigned | Kind = 0 |
||
) | const [override] |
Definition at line 133 of file AArch64RegisterInfo.cpp.
unsigned llvm::AArch64RegisterInfo::getRegPressureLimit | ( | const TargetRegisterClass * | RC, |
MachineFunction & | MF | ||
) | const [override] |
Definition at line 365 of file AArch64RegisterInfo.cpp.
References llvm::TargetSubtargetInfo::getFrameLowering(), llvm::TargetRegisterClass::getID(), llvm::MachineFunction::getSubtarget(), and llvm::TargetFrameLowering::hasFP().
BitVector AArch64RegisterInfo::getReservedRegs | ( | const MachineFunction & | MF | ) | const [override] |
Definition at line 78 of file AArch64RegisterInfo.cpp.
References llvm::TargetSubtargetInfo::getFrameLowering(), llvm::MachineFunction::getSubtarget(), hasBasePointer(), llvm::TargetFrameLowering::hasFP(), llvm::AArch64Subtarget::isTargetDarwin(), and llvm::BitVector::set().
const uint32_t * AArch64RegisterInfo::getThisReturnPreservedMask | ( | 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. 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 66 of file AArch64RegisterInfo.cpp.
const uint32_t * AArch64RegisterInfo::getTLSCallPreservedMask | ( | ) | const |
Definition at line 57 of file AArch64RegisterInfo.cpp.
References llvm::AArch64Subtarget::isTargetDarwin(), and llvm::AArch64Subtarget::isTargetELF().
bool AArch64RegisterInfo::hasBasePointer | ( | const MachineFunction & | MF | ) | const |
Definition at line 147 of file AArch64RegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getLocalFrameSize(), and llvm::MachineFrameInfo::hasVarSizedObjects().
Referenced by llvm::AArch64FrameLowering::emitPrologue(), getReservedRegs(), isReservedReg(), llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), and useFPForScavengingIndex().
bool AArch64RegisterInfo::isFrameOffsetLegal | ( | const MachineInstr * | MI, |
int64_t | Offset | ||
) | const [override] |
Definition at line 275 of file AArch64RegisterInfo.cpp.
References llvm::AArch64FrameOffsetIsLegal, and llvm::isAArch64FrameOffsetLegal().
Referenced by needsFrameBaseReg().
bool AArch64RegisterInfo::isReservedReg | ( | const MachineFunction & | MF, |
unsigned | Reg | ||
) | const |
Definition at line 106 of file AArch64RegisterInfo.cpp.
References llvm::TargetSubtargetInfo::getFrameLowering(), llvm::MachineFunction::getSubtarget(), hasBasePointer(), llvm::TargetFrameLowering::hasFP(), and llvm::AArch64Subtarget::isTargetDarwin().
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan().
void AArch64RegisterInfo::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.
Definition at line 285 of file AArch64RegisterInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::MachineRegisterInfo::constrainRegClass(), llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::AArch64_AM::getShifterImm(), llvm::MipsISD::Ins, and llvm::AArch64_AM::LSL.
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 215 of file AArch64RegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::MachineFrameInfo::getLocalFrameSize(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getSubtarget(), llvm::TargetFrameLowering::hasFP(), llvm::MachineOperand::isFI(), isFrameOffsetLegal(), llvm::MachineInstr::mayLoad(), and llvm::MachineInstr::mayStore().
bool AArch64RegisterInfo::requiresFrameIndexScavenging | ( | const MachineFunction & | MF | ) | const [override] |
Definition at line 196 of file AArch64RegisterInfo.cpp.
bool AArch64RegisterInfo::requiresRegisterScavenging | ( | const MachineFunction & | MF | ) | const [override] |
Definition at line 177 of file AArch64RegisterInfo.cpp.
bool AArch64RegisterInfo::requiresVirtualBaseRegisters | ( | const MachineFunction & | MF | ) | const [override] |
Definition at line 182 of file AArch64RegisterInfo.cpp.
void AArch64RegisterInfo::resolveFrameIndex | ( | MachineInstr & | MI, |
unsigned | BaseReg, | ||
int64_t | Offset | ||
) | const [override] |
Definition at line 306 of file AArch64RegisterInfo.cpp.
References llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::isFI(), and llvm::rewriteAArch64FrameIndex().
bool AArch64RegisterInfo::useFPForScavengingIndex | ( | const MachineFunction & | MF | ) | const [override] |
Definition at line 188 of file AArch64RegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), hasBasePointer(), and llvm::MachineFrameInfo::hasVarSizedObjects().