|
LLVM
3.7.0
|
#include <AArch64RegisterInfo.h>
Definition at line 27 of file AArch64RegisterInfo.h.
Definition at line 41 of file AArch64RegisterInfo.cpp.
| bool AArch64RegisterInfo::cannotEliminateFrame | ( | const MachineFunction & | MF | ) | const |
Definition at line 243 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::determineCalleeSaves().
| bool AArch64RegisterInfo::canRealignStack | ( | const MachineFunction & | MF | ) | const |
Definition at line 189 of file AArch64RegisterInfo.cpp.
References llvm::MachineFunction::getFunction(), and llvm::Function::hasFnAttribute().
Referenced by needsStackRealignment().
|
override |
Definition at line 366 of file AArch64RegisterInfo.cpp.
References llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::emitFrameOffset(), llvm::ISD::FrameIndex, llvm::MachineInstr::getDebugLoc(), 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(), llvm::TargetOpcode::STACKMAP, and TII.
| unsigned AArch64RegisterInfo::getBaseRegister | ( | ) | const |
Definition at line 159 of file AArch64RegisterInfo.cpp.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::resolveFrameIndexReference().
|
override |
Code Generation virtual methods...
Definition at line 45 of file AArch64RegisterInfo.cpp.
References llvm::CallingConv::AnyReg, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), and llvm::CallingConv::GHC.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves(), and llvm::AArch64FrameLowering::emitEpilogue().
|
override |
Definition at line 58 of file AArch64RegisterInfo.cpp.
References llvm::CallingConv::AnyReg, and llvm::CallingConv::GHC.
|
override |
Definition at line 153 of file AArch64RegisterInfo.cpp.
|
inlineoverride |
Definition at line 41 of file AArch64RegisterInfo.h.
|
override |
Definition at line 213 of file AArch64RegisterInfo.cpp.
References llvm::AArch64FrameLowering::hasFP().
Referenced by llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::resolveFrameIndexReference().
|
override |
Definition at line 147 of file AArch64RegisterInfo.cpp.
|
override |
Definition at line 412 of file AArch64RegisterInfo.cpp.
References llvm::TargetRegisterClass::getID(), hasBasePointer(), llvm::AArch64FrameLowering::hasFP(), llvm::Triple::isOSDarwin(), and ReserveX18.
|
override |
Definition at line 92 of file AArch64RegisterInfo.cpp.
References hasBasePointer(), llvm::AArch64FrameLowering::hasFP(), llvm::Triple::isOSDarwin(), llvm::Reserved, ReserveX18, and llvm::BitVector::set().
| 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 78 of file AArch64RegisterInfo.cpp.
References llvm::CallingConv::GHC.
| const uint32_t * AArch64RegisterInfo::getTLSCallPreservedMask | ( | ) | const |
Definition at line 69 of file AArch64RegisterInfo.cpp.
References llvm::Triple::isOSBinFormatELF(), and llvm::Triple::isOSDarwin().
| bool AArch64RegisterInfo::hasBasePointer | ( | const MachineFunction & | MF | ) | const |
Definition at line 161 of file AArch64RegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getLocalFrameSize(), llvm::MachineFrameInfo::hasVarSizedObjects(), and needsStackRealignment().
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::emitPrologue(), getRegPressureLimit(), getReservedRegs(), isReservedReg(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), and useFPForScavengingIndex().
|
override |
Definition at line 316 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 120 of file AArch64RegisterInfo.cpp.
References hasBasePointer(), llvm::AArch64FrameLowering::hasFP(), llvm::Triple::isOSDarwin(), and ReserveX18.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
override |
Insert defining instruction(s) for BaseReg to be a pointer to FrameIdx at the beginning of the basic block.
Definition at line 327 of file AArch64RegisterInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::MachineRegisterInfo::constrainRegClass(), llvm::DL, llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::AArch64_AM::getShifterImm(), llvm::MachineFunction::getSubtarget(), llvm::MipsISD::Ins, llvm::AArch64_AM::LSL, and TII.
|
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 256 of file AArch64RegisterInfo.cpp.
References 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().
|
override |
Definition at line 199 of file AArch64RegisterInfo.cpp.
References canRealignStack(), F(), llvm::AttributeSet::FunctionIndex, llvm::Function::getAttributes(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFrameInfo::getMaxAlignment(), llvm::TargetFrameLowering::getStackAlignment(), llvm::AttributeSet::hasAttribute(), and llvm::Attribute::StackAlignment.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::emitPrologue(), hasBasePointer(), and llvm::AArch64FrameLowering::resolveFrameIndexReference().
|
override |
Definition at line 237 of file AArch64RegisterInfo.cpp.
|
override |
Definition at line 218 of file AArch64RegisterInfo.cpp.
|
override |
Definition at line 223 of file AArch64RegisterInfo.cpp.
|
override |
Definition at line 349 of file AArch64RegisterInfo.cpp.
References llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getSubtarget(), llvm::MachineOperand::isFI(), llvm::rewriteAArch64FrameIndex(), and TII.
|
override |
Definition at line 229 of file AArch64RegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), hasBasePointer(), and llvm::MachineFrameInfo::hasVarSizedObjects().
1.8.6