LLVM
8.0.1
|
#include "Thumb1FrameLowering.h"
#include "ARMBaseInstrInfo.h"
#include "ARMBaseRegisterInfo.h"
#include "ARMMachineFunctionInfo.h"
#include "ARMSubtarget.h"
#include "Thumb1InstrInfo.h"
#include "ThumbRegisterInfo.h"
#include "Utils/ARMBaseInfo.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/LivePhysRegs.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCDwarf.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include <bitset>
#include <cassert>
#include <iterator>
#include <vector>
Go to the source code of this file.
Typedefs | |
using | ARMRegSet = std::bitset< ARM::NUM_TARGET_REGS > |
Functions | |
static void | emitSPUpdate (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, const TargetInstrInfo &TII, const DebugLoc &dl, const ThumbRegisterInfo &MRI, int NumBytes, unsigned MIFlags=MachineInstr::NoFlags) |
static bool | isCSRestore (MachineInstr &MI, const MCPhysReg *CSRegs) |
static void | findTemporariesForLR (const BitVector &GPRsNoLRSP, const BitVector &PopFriendly, const LivePhysRegs &UsedRegs, unsigned &PopReg, unsigned &TmpReg) |
static const unsigned * | findNextOrderedReg (const unsigned *CurrentReg, const ARMRegSet &EnabledRegs, const unsigned *OrderEnd) |
using ARMRegSet = std::bitset<ARM::NUM_TARGET_REGS> |
Definition at line 726 of file Thumb1FrameLowering.cpp.
|
static |
Definition at line 67 of file Thumb1FrameLowering.cpp.
References llvm::Thumb1FrameLowering::eliminateCallFramePseudoInstr(), and llvm::emitThumbRegPlusImmediate().
Referenced by llvm::Thumb1FrameLowering::eliminateCallFramePseudoInstr(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitPrologue(), and findTemporariesForLR().
|
static |
Definition at line 731 of file Thumb1FrameLowering.cpp.
References llvm::Thumb1FrameLowering::spillCalleeSavedRegisters().
Referenced by llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), and llvm::Thumb1FrameLowering::spillCalleeSavedRegisters().
|
static |
Definition at line 515 of file Thumb1FrameLowering.cpp.
References llvm::ARM_AM::add, llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::LivePhysRegs::addLiveOuts(), llvm::LivePhysRegs::addReg(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, llvm::BitVector::any(), assert(), llvm::sys::path::begin(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::LivePhysRegs::contains(), llvm::RegState::Define, emitSPUpdate(), llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::erase(), llvm::BitVector::find_first(), llvm::MCInstrInfo::get(), llvm::TargetRegisterInfo::getAllocatableSet(), llvm::ARMFunctionInfo::getArgRegsSaveSize(), llvm::TargetRegisterInfo::getCalleeSavedRegs(), llvm::MachineBasicBlock::getFirstTerminator(), llvm::MachineFunction::getInfo(), llvm::MachineInstrBuilder::getInstr(), llvm::ARMSubtarget::getInstrInfo(), llvm::MachineBasicBlock::getParent(), llvm::TargetRegisterInfo::getRegClass(), llvm::ARMSubtarget::getRegisterInfo(), llvm::ARMSubtarget::hasV5TOps(), llvm::RegState::Kill, llvm::predOps(), Reg, llvm::BitVector::reset(), llvm::BitVector::set(), llvm::BitVector::set_bits(), llvm::LivePhysRegs::stepBackward(), llvm::ARMFrameLowering::STI, llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_size(), llvm::BitVector::test(), TII, TRI, and llvm::ARMSubtarget::useR7AsFramePointer().
|
static |
Definition at line 406 of file Thumb1FrameLowering.cpp.
References contains(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::isCalleeSavedRegister(), and llvm::MachineOperand::isFI().
Referenced by llvm::Thumb1FrameLowering::emitEpilogue().