LLVM
17.0.0git
|
#include "Target/LoongArch/LoongArchInstrInfo.h"
Protected Attributes | |
const LoongArchSubtarget & | STI |
Definition at line 26 of file LoongArchInstrInfo.h.
|
explicit |
Definition at line 26 of file LoongArchInstrInfo.cpp.
|
override |
Definition at line 212 of file LoongArchInstrInfo.cpp.
References Cond, llvm::MachineBasicBlock::end(), getBranchDestBlock(), llvm::HexagonMCInstrInfo::getDesc(), llvm::MachineBasicBlock::getLastNonDebugInstr(), llvm::MachineInstrBundleIterator< Ty, IsReverse >::getReverse(), I, MBB, parseCondBranch(), llvm::MachineBasicBlock::rend(), and TBB.
|
override |
Definition at line 31 of file LoongArchInstrInfo.cpp.
References llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), contains(), DL, llvm::get(), llvm::getKillRegState(), llvm_unreachable, MBB, MBBI, and llvm::ISD::OR.
|
override |
Definition at line 466 of file LoongArchInstrInfo.cpp.
|
override |
Definition at line 193 of file LoongArchInstrInfo.cpp.
Referenced by analyzeBranch().
|
override |
Definition at line 180 of file LoongArchInstrInfo.cpp.
References llvm::TargetMachine::getMCAsmInfo(), llvm::MachineFunction::getTarget(), llvm::ISD::INLINEASM, llvm::ISD::INLINEASM_BR, and MI.
Referenced by insertBranch(), and removeBranch().
|
override |
Definition at line 471 of file LoongArchInstrInfo.cpp.
References llvm::ArrayRef(), llvm::LoongArchII::MO_CALL, llvm::LoongArchII::MO_CALL_PLT, llvm::LoongArchII::MO_GD_PC_HI, llvm::LoongArchII::MO_GOT_PC_HI, llvm::LoongArchII::MO_GOT_PC_LO, llvm::LoongArchII::MO_IE_PC_HI, llvm::LoongArchII::MO_IE_PC_LO, llvm::LoongArchII::MO_LD_PC_HI, llvm::LoongArchII::MO_LE_HI, llvm::LoongArchII::MO_LE_LO, llvm::LoongArchII::MO_PCREL_HI, and llvm::LoongArchII::MO_PCREL_LO.
|
override |
Definition at line 328 of file LoongArchInstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addMBB(), assert(), llvm::BuildMI(), Cond, DL, llvm::get(), getInstSizeInBytes(), i, MBB, MI, and TBB.
|
override |
Definition at line 366 of file LoongArchInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::MachineBasicBlock::back(), llvm::BuildMI(), llvm::MachineRegisterInfo::clearVirtRegs(), llvm::MachineRegisterInfo::createVirtualRegister(), DL, llvm::TargetRegisterInfo::eliminateFrameIndex(), llvm::MachineBasicBlock::empty(), llvm::MachineBasicBlock::end(), llvm::RegScavenger::enterBasicBlockEnd(), llvm::ISD::FrameIndex, llvm::get(), llvm::LoongArchMachineFunctionInfo::getBranchRelaxationSpillFrameIndex(), llvm::MachineFunction::getInfo(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::LoongArchSubtarget::is64Bit(), llvm::RegState::Kill, loadRegFromStackSlot(), MBB, llvm::LoongArchII::MO_PCREL_HI, llvm::LoongArchII::MO_PCREL_LO, MRI, llvm::MachineBasicBlock::pred_size(), llvm::MachineRegisterInfo::replaceRegWith(), llvm::report_fatal_error(), llvm::RegScavenger::scavengeRegisterBackwards(), llvm::MachineOperand::setMBB(), llvm::RegScavenger::setRegUsed(), STI, storeRegToStackSlot(), and TRI.
|
override |
Definition at line 272 of file LoongArchInstrInfo.cpp.
References B, and llvm_unreachable.
|
override |
Definition at line 107 of file LoongArchInstrInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::BuildMI(), 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::TargetRegisterInfo::getRegSizeInBits(), I, llvm_unreachable, MBB, llvm::MachineMemOperand::MOLoad, and TRI.
Referenced by insertIndirectBranch().
void LoongArchInstrInfo::movImm | ( | MachineBasicBlock & | MBB, |
MachineBasicBlock::iterator | MBBI, | ||
const DebugLoc & | DL, | ||
Register | DstReg, | ||
uint64_t | Val, | ||
MachineInstr::MIFlag | Flag = MachineInstr::NoFlags |
||
) | const |
Definition at line 143 of file LoongArchInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::BuildMI(), DL, llvm::LoongArchMatInt::generateInstSeq(), llvm::get(), llvm::LoongArchSubtarget::is64Bit(), llvm::RegState::Kill, MBB, MBBI, llvm::report_fatal_error(), llvm::MachineInstrBuilder::setMIFlag(), and STI.
|
override |
Definition at line 295 of file LoongArchInstrInfo.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MachineBasicBlock::end(), getInstSizeInBytes(), llvm::MachineBasicBlock::getLastNonDebugInstr(), I, and MBB.
|
override |
Definition at line 458 of file LoongArchInstrInfo.cpp.
References assert(), Cond, and getOppositeBranchOpc().
|
override |
Definition at line 72 of file LoongArchInstrInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), 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::TargetRegisterInfo::getRegSizeInBits(), I, llvm_unreachable, MBB, llvm::MachineMemOperand::MOStore, and TRI.
Referenced by insertIndirectBranch().
|
protected |
Definition at line 86 of file LoongArchInstrInfo.h.
Referenced by insertIndirectBranch(), and movImm().