|
LLVM
4.0.0
|
#include "AArch64FrameLowering.h"#include "AArch64InstrInfo.h"#include "AArch64MachineFunctionInfo.h"#include "AArch64Subtarget.h"#include "AArch64TargetMachine.h"#include "llvm/ADT/Statistic.h"#include "llvm/CodeGen/LivePhysRegs.h"#include "llvm/CodeGen/MachineFrameInfo.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineModuleInfo.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/RegisterScavenging.h"#include "llvm/IR/DataLayout.h"#include "llvm/IR/Function.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Debug.h"#include "llvm/Support/raw_ostream.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "frame-info" |
Functions | |
| STATISTIC (NumRedZoneFunctions,"Number of functions using red zone") | |
| static unsigned | findScratchNonCalleeSaveRegister (MachineBasicBlock *MBB) |
| static MachineBasicBlock::iterator | convertCalleeSaveRestoreToSPPrePostIncDec (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, const DebugLoc &DL, const TargetInstrInfo *TII, int CSStackSizeInc) |
| static void | fixupCalleeSaveRestoreStackOffset (MachineInstr &MI, unsigned LocalStackSize) |
| static unsigned | getPrologueDeath (MachineFunction &MF, unsigned Reg) |
| static bool | produceCompactUnwindFrame (MachineFunction &MF) |
| static void | computeCalleeSaveRegisterPairs (MachineFunction &MF, const std::vector< CalleeSavedInfo > &CSI, const TargetRegisterInfo *TRI, SmallVectorImpl< RegPairInfo > &RegPairs) |
Variables | |
| static cl::opt< bool > | EnableRedZone ("aarch64-redzone", cl::desc("enable use of redzone on AArch64"), cl::init(false), cl::Hidden) |
| #define DEBUG_TYPE "frame-info" |
Definition at line 111 of file AArch64FrameLowering.cpp.
|
static |
Definition at line 884 of file AArch64FrameLowering.cpp.
References assert(), contains(), llvm::AArch64FunctionInfo::getCalleeSavedStackSize(), llvm::Function::getCallingConv(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), i, Offset, llvm::CallingConv::PreserveMost, produceCompactUnwindFrame(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::NVPTX::PTXCvtMode::RPI, and llvm::AArch64FunctionInfo::setCalleeSaveStackHasFreeSpace().
Referenced by llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), and llvm::AArch64FrameLowering::spillCalleeSavedRegisters().
|
static |
Definition at line 319 of file AArch64FrameLowering.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addOperand(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::BuildMI(), llvm::RegState::Define, llvm::MachineBasicBlock::erase(), llvm::MCInstrInfo::get(), llvm_unreachable, llvm::MachineInstrBuilder::setMemRefs(), and llvm::MachineInstrBuilder::setMIFlags().
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
static |
Definition at line 241 of file AArch64FrameLowering.cpp.
References llvm::LivePhysRegs::addLiveIns(), llvm::LivePhysRegs::addReg(), llvm::LivePhysRegs::available(), llvm::MachineFunction::front(), llvm::AArch64RegisterInfo::getCalleeSavedRegs(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::AArch64Subtarget::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), i, MBB, and MRI.
Referenced by llvm::AArch64FrameLowering::canUseAsPrologue(), and llvm::AArch64FrameLowering::emitPrologue().
|
static |
Definition at line 387 of file AArch64FrameLowering.cpp.
References assert(), llvm::MachineInstr::getNumExplicitOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), and llvm::MachineOperand::getReg().
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
static |
Definition at line 854 of file AArch64FrameLowering.cpp.
References llvm::getKillRegState(), llvm::MachineFunction::getRegInfo(), and llvm::MachineRegisterInfo::isLiveIn().
Referenced by llvm::AArch64FrameLowering::spillCalleeSavedRegisters().
|
static |
Definition at line 864 of file AArch64FrameLowering.cpp.
References llvm::Function::getAttributes(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), llvm::AArch64Subtarget::getTargetLowering(), llvm::AArch64Subtarget::isTargetMachO(), and llvm::AArch64TargetLowering::supportSwiftError().
Referenced by computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::determineCalleeSaves().
| STATISTIC | ( | NumRedZoneFunctions | , |
| "Number of functions using red zone" | |||
| ) |
|
static |
Referenced by llvm::AArch64FrameLowering::canUseRedZone().
1.8.6