LLVM 20.0.0git
|
#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 <cassert>
#include <iterator>
#include <vector>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "arm-frame-lowering" |
Variables | |
static const SmallVector< Register > | OrderedLowRegs |
static const SmallVector< Register > | OrderedHighRegs |
static const SmallVector< Register > | OrderedCopyRegs |
#define DEBUG_TYPE "arm-frame-lowering" |
Definition at line 46 of file Thumb1FrameLowering.cpp.
|
static |
Definition at line 105 of file Thumb1FrameLowering.cpp.
References llvm::emitThumbRegPlusImmediate(), MBB, MBBI, MRI, and TII.
Referenced by llvm::Thumb1FrameLowering::eliminateCallFramePseudoInstr().
|
static |
Definition at line 67 of file Thumb1FrameLowering.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, llvm::BuildMI(), llvm::emitThumbRegPlusImmediate(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getSubtarget(), llvm::RegState::Kill, MBB, MBBI, MRI, llvm::predOps(), llvm::report_fatal_error(), llvm::MachineInstrBuilder::setMIFlags(), and TII.
Referenced by llvm::Thumb1FrameLowering::emitEpilogue(), and llvm::Thumb1FrameLowering::emitPrologue().
|
static |
Definition at line 623 of file Thumb1FrameLowering.cpp.
References llvm::LiveRegUnits::available(), llvm::BitVector::set_bits(), and llvm::BitVector::test().
It getNextOrderedReg | ( | It | OrderedStartIt, |
It | OrderedEndIt, | ||
const std::set< Register > & | RegSet | ||
) |
Definition at line 866 of file Thumb1FrameLowering.cpp.
Referenced by popRegsFromStack(), pushRegsToStack(), and llvm::Thumb1FrameLowering::spillCalleeSavedRegisters().
|
static |
Definition at line 965 of file Thumb1FrameLowering.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, assert(), llvm::BuildMI(), llvm::MachineInstrBuilder::copyImplicitOps(), llvm::RegState::Define, llvm::MachineFunction::deleteMachineInstr(), DL, llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::erase(), llvm::MachineInstr::FrameDestroy, llvm::getDefRegState(), llvm::MachineFunction::getInfo(), getNextOrderedReg(), llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::insert(), llvm::ARMFunctionInfo::isCmseNSEntryFunction(), llvm::Register::isValid(), llvm::RegState::Kill, MBB, MI, OrderedCopyRegs, OrderedHighRegs, OrderedLowRegs, llvm::predOps(), llvm::MachineInstrBuilder::setMIFlag(), splitLowAndHighRegs(), llvm::MachineBasicBlock::succ_empty(), and TII.
Referenced by llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters().
|
static |
Definition at line 872 of file Thumb1FrameLowering.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineBasicBlock::addLiveIn(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, llvm::BuildMI(), llvm::RegState::Define, DL, llvm::MachineInstr::FrameSetup, llvm::getKillRegState(), getNextOrderedReg(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::MachineBasicBlock::insert(), llvm::RegState::Kill, MBB, MI, MRI, OrderedCopyRegs, OrderedHighRegs, OrderedLowRegs, llvm::predOps(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::reverse(), llvm::MachineInstrBuilder::setMIFlags(), splitLowAndHighRegs(), and TII.
Referenced by llvm::Thumb1FrameLowering::spillCalleeSavedRegisters().
|
static |
Definition at line 851 of file Thumb1FrameLowering.cpp.
References contains(), and llvm_unreachable.
Referenced by popRegsFromStack(), and pushRegsToStack().
|
static |
Definition at line 847 of file Thumb1FrameLowering.cpp.
Referenced by popRegsFromStack(), pushRegsToStack(), and llvm::Thumb1FrameLowering::spillCalleeSavedRegisters().
|
static |
Definition at line 845 of file Thumb1FrameLowering.cpp.
Referenced by popRegsFromStack(), and pushRegsToStack().
|
static |
Definition at line 843 of file Thumb1FrameLowering.cpp.
Referenced by popRegsFromStack(), and pushRegsToStack().