LLVM 19.0.0git
|
#include "Target/ARM/Thumb2InstrInfo.h"
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::ARMBaseInstrInfo | |
static bool | isCPSRDefined (const MachineInstr &MI) |
Protected Member Functions inherited from llvm::ARMBaseInstrInfo | |
ARMBaseInstrInfo (const ARMSubtarget &STI) | |
void | expandLoadStackGuardBase (MachineBasicBlock::iterator MI, unsigned LoadImmOpc, unsigned LoadOpc) const |
bool | getRegSequenceLikeInputs (const MachineInstr &MI, unsigned DefIdx, SmallVectorImpl< RegSubRegPairAndIdx > &InputRegs) const override |
Build the equivalent inputs of a REG_SEQUENCE for the given MI and DefIdx . | |
bool | getExtractSubregLikeInputs (const MachineInstr &MI, unsigned DefIdx, RegSubRegPairAndIdx &InputReg) const override |
Build the equivalent inputs of a EXTRACT_SUBREG for the given MI and DefIdx . | |
bool | getInsertSubregLikeInputs (const MachineInstr &MI, unsigned DefIdx, RegSubRegPair &BaseReg, RegSubRegPairAndIdx &InsertedReg) const override |
Build the equivalent inputs of a INSERT_SUBREG for the given MI and DefIdx . | |
MachineInstr * | commuteInstructionImpl (MachineInstr &MI, bool NewMI, unsigned OpIdx1, unsigned OpIdx2) const override |
Commutes the operands in the given instruction. | |
std::optional< DestSourcePair > | isCopyInstrImpl (const MachineInstr &MI) const override |
If the specific machine instruction is an instruction that moves/copies value from one register to another register return destination and source registers as machine operands. | |
std::optional< ParamLoadedValue > | describeLoadedValue (const MachineInstr &MI, Register Reg) const override |
Specialization of TargetInstrInfo::describeLoadedValue, used to enhance debug entry value descriptions for ARM targets. | |
Definition at line 22 of file Thumb2InstrInfo.h.
|
explicit |
Definition at line 48 of file Thumb2InstrInfo.cpp.
|
override |
Definition at line 273 of file Thumb2InstrInfo.cpp.
References llvm::ARMBaseInstrInfo::commuteInstructionImpl(), llvm::getVPTInstrPredicate(), MI, and llvm::ARMVCC::None.
|
override |
Definition at line 150 of file Thumb2InstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, llvm::BuildMI(), contains(), llvm::ARMBaseInstrInfo::copyPhysReg(), DL, llvm::get(), llvm::getKillRegState(), I, MBB, and llvm::predOps().
|
override |
Return the noop instruction to use for a noop.
Definition at line 52 of file Thumb2InstrInfo.cpp.
References llvm::MCInstBuilder::addImm(), llvm::MCInstBuilder::addReg(), and llvm::ARMCC::AL.
|
inlineoverridevirtual |
getRegisterInfo - TargetInstrInfo is a superset of MRegister info.
As such, whenever a client has an instance of instruction info, it should always be able to get register info as well (through this method).
Implements llvm::ARMBaseInstrInfo.
Definition at line 61 of file Thumb2InstrInfo.h.
Implements llvm::ARMBaseInstrInfo.
Definition at line 56 of file Thumb2InstrInfo.cpp.
|
override |
Definition at line 113 of file Thumb2InstrInfo.cpp.
References llvm::ARMCC::AL, llvm::MachineBasicBlock::end(), llvm::getITInstrPredicate(), MBB, and MBBI.
|
override |
Definition at line 289 of file Thumb2InstrInfo.cpp.
References llvm::ARMBaseInstrInfo::isSchedulingBoundary(), MBB, and MI.
|
override |
Definition at line 208 of file Thumb2InstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::ARMBaseInstrInfo::AddDReg(), llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, llvm::BuildMI(), llvm::RegState::DefineNoRead, DL, llvm::MachineBasicBlock::end(), llvm::get(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), I, llvm::RegState::ImplicitDefine, llvm::Register::isPhysical(), llvm::Register::isVirtual(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), MBB, llvm::MachineMemOperand::MOLoad, MRI, llvm::predOps(), and TRI.
|
override |
Definition at line 126 of file Thumb2InstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::BuildMI(), llvm::get(), llvm::ARMBaseInstrInfo::getSubtarget(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::Register::isVirtual(), MI, llvm::ARMBaseInstrInfo::optimizeSelect(), and PreferNoCSEL.
|
override |
Definition at line 62 of file Thumb2InstrInfo.cpp.
References llvm::ARMCC::AL, llvm::MachineBasicBlock::begin(), CC, llvm::MachineBasicBlock::eraseFromParent(), llvm::MachineFunction::getInfo(), llvm::getInstrPredicate(), llvm::MachineBasicBlock::getParent(), llvm::ARMFunctionInfo::hasITBlocks(), MBB, MBBI, llvm::TargetInstrInfo::ReplaceTailWithBranchTo(), and llvm::CallingConv::Tail.
|
override |
Definition at line 163 of file Thumb2InstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::ARMBaseInstrInfo::AddDReg(), llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, llvm::BuildMI(), DL, llvm::MachineBasicBlock::end(), llvm::get(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::getKillRegState(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), I, llvm::Register::isVirtual(), MBB, llvm::MachineMemOperand::MOStore, MRI, llvm::predOps(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), and TRI.