LLVM 20.0.0git
|
#include "Target/ARC/ARCInstrInfo.h"
Definition at line 26 of file ARCInstrInfo.h.
ARCInstrInfo::ARCInstrInfo | ( | const ARCSubtarget & | ST | ) |
Definition at line 46 of file ARCInstrInfo.cpp.
|
override |
Analyze the branching code at the end of MBB, returning true if it cannot be understood (e.g.
it's a switch dispatch or isn't implemented for a target). Upon success, this returns false and returns with the following information in various cases:
Note that RemoveBranch and insertBranch must be implemented to support cases where this method returns success.
If AllowModify is true, then this routine is allowed to modify the basic block (e.g. delete instructions after the unconditional branch).
Definition at line 170 of file ARCInstrInfo.cpp.
References assert(), llvm::MachineBasicBlock::begin(), Cond, llvm::MachineBasicBlock::end(), llvm::MachineInstr::eraseFromParent(), I, llvm::isCondBranchOpcode(), isJumpOpcode(), llvm::isUncondBranchOpcode(), MBB, and TBB.
|
override |
Definition at line 281 of file ARCInstrInfo.cpp.
References llvm::MachineInstrBuilder::addReg(), assert(), llvm::BuildMI(), contains(), DL, llvm::get(), llvm::getKillRegState(), I, and MBB.
|
overridevirtual |
Definition at line 424 of file ARCInstrInfo.cpp.
References isPostIncrement(), isPreIncrement(), and MI.
|
override |
Definition at line 403 of file ARCInstrInfo.cpp.
References llvm::TargetMachine::getMCAsmInfo(), llvm::MachineFunction::getTarget(), and MI.
|
inline |
Definition at line 33 of file ARCInstrInfo.h.
Referenced by llvm::ARCSubtarget::getRegisterInfo().
|
override |
Definition at line 370 of file ARCInstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addMBB(), assert(), llvm::BuildMI(), Cond, DL, llvm::get(), MBB, and TBB.
|
override |
If the specified machine instruction is a direct load from a stack slot, return the virtual or physical register number of the destination along with the FrameIndex of the loaded stack slot.
If not, return 0. This predicate must return 0 if the instruction has any side effects other than loading from the stack slot.
Definition at line 68 of file ARCInstrInfo.cpp.
References isLoad(), isZeroImm(), and MI.
|
override |
Definition at line 412 of file ARCInstrInfo.cpp.
References F, MI, PostInc, TSF_AddModeMask, TSF_AddrModeOff, and llvm::MCInstrDesc::TSFlags.
Referenced by getBaseAndOffsetPosition().
bool ARCInstrInfo::isPreIncrement | ( | const MachineInstr & | MI | ) | const |
Definition at line 418 of file ARCInstrInfo.cpp.
References F, MI, PreInc, TSF_AddModeMask, TSF_AddrModeOff, and llvm::MCInstrDesc::TSFlags.
Referenced by getBaseAndOffsetPosition().
|
override |
If the specified machine instruction is a direct store to a stack slot, return the virtual or physical register number of the source reg along with the FrameIndex of the loaded stack slot.
If not, return 0. This predicate must return 0 if the instruction has any side effects other than storing to the stack slot.
Definition at line 87 of file ARCInstrInfo.cpp.
References isStore(), isZeroImm(), and MI.
MachineBasicBlock::iterator ARCInstrInfo::loadImmediate | ( | MachineBasicBlock & | MBB, |
MachineBasicBlock::iterator | MI, | ||
unsigned | Reg, | ||
uint64_t | Value | ||
) | const |
Definition at line 358 of file ARCInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::BuildMI(), DL, llvm::MachineBasicBlock::findDebugLoc(), llvm::get(), llvm::MachineInstrBuilder::getInstr(), llvm_unreachable, MBB, and MI.
|
override |
Definition at line 321 of file ARCInstrInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::BuildMI(), llvm::dbgs(), llvm::RegState::Define, DL, llvm::MachineBasicBlock::findDebugLoc(), llvm::get(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineBasicBlock::getParent(), I, LLVM_DEBUG, MBB, llvm::MachineMemOperand::MOLoad, llvm::printReg(), and TRI.
|
override |
Definition at line 254 of file ARCInstrInfo.cpp.
References assert(), llvm::MachineBasicBlock::begin(), llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::getLastNonDebugInstr(), I, llvm::isCondBranchOpcode(), llvm::isUncondBranchOpcode(), and MBB.
|
override |
Return the inverse opcode of the specified Branch instruction.
Definition at line 350 of file ARCInstrInfo.cpp.
References assert(), Cond, and getOppositeBranchCondition().
|
override |
Definition at line 294 of file ARCInstrInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::BuildMI(), llvm::dbgs(), DL, llvm::MachineBasicBlock::findDebugLoc(), llvm::get(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::getKillRegState(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineBasicBlock::getParent(), I, LLVM_DEBUG, MBB, llvm::MachineMemOperand::MOStore, llvm::printReg(), and TRI.