|
LLVM
4.0.0
|
#include <AArch64RegisterInfo.h>
Definition at line 27 of file AArch64RegisterInfo.h.
Definition at line 37 of file AArch64RegisterInfo.cpp.
| bool AArch64RegisterInfo::cannotEliminateFrame | ( | const MachineFunction & | MF | ) | const |
Definition at line 247 of file AArch64RegisterInfo.cpp.
References llvm::MachineFrameInfo::adjustsStack(), llvm::TargetOptions::DisableFramePointerElim(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getTarget(), llvm::MachineFrameInfo::hasVarSizedObjects(), llvm::MachineFrameInfo::isFrameAddressTaken(), and llvm::TargetMachine::Options.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
override |
Definition at line 368 of file AArch64RegisterInfo.cpp.
References assert(), 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(), MBB, MI, Offset, llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::rewriteAArch64FrameIndex(), and TII.
| unsigned AArch64RegisterInfo::getBaseRegister | ( | ) | const |
Definition at line 188 of file AArch64RegisterInfo.cpp.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves(), and llvm::AArch64FrameLowering::resolveFrameIndexReference().
|
override |
Code Generation virtual methods...
Definition at line 41 of file AArch64RegisterInfo.cpp.
References llvm::CallingConv::AnyReg, assert(), llvm::CallingConv::CXX_FAST_TLS, llvm::Function::getAttributes(), llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), llvm::MachineFunction::getSubtarget(), llvm::AArch64Subtarget::getTargetLowering(), llvm::CallingConv::GHC, llvm::AttributeSet::hasAttrSomewhere(), llvm::AArch64FunctionInfo::isSplitCSR(), llvm::CallingConv::PreserveMost, and llvm::AArch64TargetLowering::supportSwiftError().
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves(), and findScratchNonCalleeSaveRegister().
| const MCPhysReg * AArch64RegisterInfo::getCalleeSavedRegsViaCopy | ( | const MachineFunction * | MF | ) | const |
Definition at line 64 of file AArch64RegisterInfo.cpp.
References assert(), llvm::CallingConv::CXX_FAST_TLS, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), and llvm::MachineFunction::getInfo().
Referenced by llvm::AArch64TargetLowering::insertCopiesSplitCSR().
|
override |
Definition at line 74 of file AArch64RegisterInfo.cpp.
References llvm::CallingConv::AnyReg, llvm::CallingConv::CXX_FAST_TLS, llvm::Function::getAttributes(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), llvm::AArch64Subtarget::getTargetLowering(), llvm::CallingConv::GHC, llvm::AttributeSet::hasAttrSomewhere(), llvm::CallingConv::PreserveMost, and llvm::AArch64TargetLowering::supportSwiftError().
|
override |
Definition at line 182 of file AArch64RegisterInfo.cpp.
|
inlineoverride |
Definition at line 42 of file AArch64RegisterInfo.h.
|
override |
Definition at line 217 of file AArch64RegisterInfo.cpp.
References llvm::AArch64FrameLowering::hasFP().
Referenced by llvm::AArch64FrameLowering::resolveFrameIndexReference().
|
override |
Definition at line 176 of file AArch64RegisterInfo.cpp.
|
override |
Definition at line 412 of file AArch64RegisterInfo.cpp.
References llvm::TargetRegisterClass::getID(), llvm::MachineFunction::getSubtarget(), hasBasePointer(), llvm::AArch64FrameLowering::hasFP(), llvm::Triple::isOSDarwin(), and llvm::AArch64Subtarget::isX18Reserved().
|
override |
Definition at line 116 of file AArch64RegisterInfo.cpp.
References assert(), llvm::MachineFunction::getSubtarget(), hasBasePointer(), llvm::AArch64FrameLowering::hasFP(), llvm::Triple::isOSDarwin(), and llvm::AArch64Subtarget::isX18Reserved().
| 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 102 of file AArch64RegisterInfo.cpp.
References assert(), and llvm::CallingConv::GHC.
Definition at line 93 of file AArch64RegisterInfo.cpp.
References assert(), llvm::Triple::isOSBinFormatELF(), and llvm::Triple::isOSDarwin().
| bool AArch64RegisterInfo::hasBasePointer | ( | const MachineFunction & | MF | ) | const |
Definition at line 190 of file AArch64RegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getLocalFrameSize(), and llvm::MachineFrameInfo::hasVarSizedObjects().
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves(), getRegPressureLimit(), getReservedRegs(), isReservedReg(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), and useFPForScavengingIndex().
Definition at line 171 of file AArch64RegisterInfo.cpp.
|
override |
Definition at line 318 of file AArch64RegisterInfo.cpp.
References llvm::AArch64FrameOffsetIsLegal, assert(), llvm::isAArch64FrameOffsetLegal(), and Offset.
Referenced by needsFrameBaseReg().
| bool AArch64RegisterInfo::isReservedReg | ( | const MachineFunction & | MF, |
| unsigned | Reg | ||
| ) | const |
Definition at line 145 of file AArch64RegisterInfo.cpp.
References llvm::MachineFunction::getSubtarget(), hasBasePointer(), llvm::AArch64FrameLowering::hasFP(), and llvm::Triple::isOSDarwin().
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 329 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::MachineFunction::getSubtarget(), llvm::MipsISD::Ins, llvm::AArch64_AM::LSL, MRI, 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 258 of file AArch64RegisterInfo.cpp.
References assert(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getLocalFrameSize(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::AArch64FrameLowering::hasFP(), i, llvm::MachineOperand::isFI(), isFrameOffsetLegal(), llvm::MachineInstr::mayLoad(), and llvm::MachineInstr::mayStore().
|
override |
Definition at line 241 of file AArch64RegisterInfo.cpp.
|
override |
Definition at line 222 of file AArch64RegisterInfo.cpp.
|
override |
Definition at line 227 of file AArch64RegisterInfo.cpp.
|
override |
Definition at line 351 of file AArch64RegisterInfo.cpp.
References assert(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getSubtarget(), i, llvm::MachineOperand::isFI(), Offset, llvm::rewriteAArch64FrameIndex(), and TII.
|
inlineoverride |
Definition at line 99 of file AArch64RegisterInfo.h.
|
override |
Definition at line 233 of file AArch64RegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), hasBasePointer(), and llvm::MachineFrameInfo::hasVarSizedObjects().
1.8.6