LLVM
15.0.0git
|
#include "Target/VE/VEInstrInfo.h"
Definition at line 51 of file VEInstrInfo.h.
|
explicit |
Definition at line 38 of file VEInstrInfo.cpp.
|
override |
Branch Analysis & Modification {.
Definition at line 145 of file VEInstrInfo.cpp.
References llvm::MachineBasicBlock::begin(), Cond, llvm::MachineBasicBlock::end(), llvm::MachineInstr::eraseFromParent(), llvm::MachineBasicBlock::getLastNonDebugInstr(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), I, llvm::isCondBranchOpcode(), llvm::isIndirectBranchOpcode(), llvm::isUncondBranchOpcode(), MBB, and parseCondBranch().
|
override |
} Branch Analysis & Modification
Definition at line 359 of file VEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::MachineInstr::addRegisterKilled(), llvm::BuildMI(), contains(), copyPhysSubRegs(), llvm::dbgs(), DL, get, llvm::MachineInstrBuilder::getInstr(), llvm::getKillRegState(), getRegisterInfo(), llvm::TargetRegisterInfo::getSubReg(), I, IsAliasOfSX(), llvm_unreachable, llvm::M1(), MBB, llvm::printReg(), and TRI.
bool VEInstrInfo::expandExtendStackPseudo | ( | MachineInstr & | MI | ) | const |
Definition at line 965 of file VEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), BB, llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::VECC::CC_IGE, llvm::MachineFunction::CreateMachineBasicBlock(), llvm::MachineBasicBlock::findDebugLoc(), llvm::VESubtarget::getInstrInfo(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::insert(), MBB, MI, llvm::MachineBasicBlock::splice(), TII, and llvm::MachineBasicBlock::transferSuccessorsAndUpdatePHIs().
Referenced by expandPostRAPseudo().
bool VEInstrInfo::expandGetStackTopPseudo | ( | MachineInstr & | MI | ) | const |
Definition at line 1049 of file VEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::MachineFrameInfo::adjustsStack(), llvm::BuildMI(), DL, llvm::MachineBasicBlock::findDebugLoc(), llvm::VESubtarget::getAdjustedFrameSize(), llvm::MachineFunction::getFrameInfo(), llvm::VESubtarget::getFrameLowering(), llvm::VESubtarget::getInstrInfo(), llvm::MachineFrameInfo::getMaxCallFrameSize(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getSubtarget(), llvm::VEFrameLowering::hasReservedCallFrame(), MBB, MI, and TII.
Referenced by expandPostRAPseudo().
|
override |
Definition at line 844 of file VEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::MachineInstr::addRegisterKilled(), assert(), llvm::BuildMI(), DL, expandExtendStackPseudo(), expandGetStackTopPseudo(), expandPseudoLogM(), expandPseudoVFMK(), get, llvm::MachineInstrBuilder::getInstr(), llvm::getKillRegState(), getRegisterInfo(), llvm::VEISD::GETSTACKTOP, getVM512Lower(), getVM512Upper(), llvm::RISCVMatInt::Imm, MBB, MI, and TRI.
|
override |
} Stack Spill & Reload
Optimization {
Definition at line 546 of file VEInstrInfo.cpp.
References llvm::ISD::AND, assert(), llvm::dbgs(), DefMI, get, llvm::MachineInstrBuilder::getReg(), llvm::MachineRegisterInfo::hasOneNonDBGUse(), INSTRKIND, llvm::isMImmVal(), LLVM_DEBUG, llvm::mimm2Val(), MRI, NCINSTRKIND, llvm::ISD::OR, UseMI, llvm::val2MImm(), and llvm::ISD::XOR.
Register VEInstrInfo::getGlobalBaseReg | ( | MachineFunction * | MF | ) | const |
} Optimization
Definition at line 724 of file VEInstrInfo.cpp.
References llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::MachineFunction::front(), get, llvm::VEMachineFunctionInfo::getGlobalBaseReg(), llvm::MachineFunction::getInfo(), llvm::PPCISD::GlobalBaseReg, MBBI, and llvm::VEMachineFunctionInfo::setGlobalBaseReg().
Referenced by llvm::VETargetLowering::LowerCall(), and llvm::VETargetLowering::lowerToTLSGeneralDynamicModel().
|
inline |
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).
Definition at line 62 of file VEInstrInfo.h.
Referenced by copyPhysReg(), expandPostRAPseudo(), llvm::VESubtarget::getRegisterInfo(), and insertBranch().
|
override |
Definition at line 226 of file VEInstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addMBB(), assert(), llvm::BuildMI(), Cond, DL, get, llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), getRegisterInfo(), llvm::TargetRegisterInfo::getRegSizeInBits(), isImm(), IsIntegerCC(), isReg(), MBB, MRI, and TRI.
|
override |
Stack Spill & Reload {.
isLoadFromStackSlot - 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 416 of file VEInstrInfo.cpp.
References llvm::ISD::FrameIndex, and MI.
|
override |
isStoreToStackSlot - 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 438 of file VEInstrInfo.cpp.
References llvm::ISD::FrameIndex, and MI.
|
override |
Definition at line 503 of file VEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::BuildMI(), DL, llvm::MachineBasicBlock::end(), get, llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineBasicBlock::getParent(), I, MBB, llvm::MachineMemOperand::MOLoad, and llvm::report_fatal_error().
|
override |
Definition at line 291 of file VEInstrInfo.cpp.
References assert(), llvm::MachineBasicBlock::begin(), llvm::MachineBasicBlock::end(), I, llvm::isCondBranchOpcode(), llvm::isUncondBranchOpcode(), and MBB.
|
override |
Definition at line 314 of file VEInstrInfo.cpp.
References Cond, and GetOppositeBranchCondition().
|
override |
Definition at line 455 of file VEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), DL, llvm::MachineBasicBlock::end(), get, llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::getKillRegState(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineBasicBlock::getParent(), I, MBB, llvm::MachineMemOperand::MOStore, and llvm::report_fatal_error().