LLVM: llvm::VEInstrInfo Class Reference (original) (raw)

#include "[Target/VE/VEInstrInfo.h](VEInstrInfo%5F8h%5Fsource.html)"

Public Member Functions
VEInstrInfo (const VESubtarget &ST)
const VERegisterInfo & getRegisterInfo () const
getRegisterInfo - TargetInstrInfo is a superset of MRegister info.
bool analyzeBranch (MachineBasicBlock &MBB, MachineBasicBlock *&TBB, MachineBasicBlock *&FBB, SmallVectorImpl< MachineOperand > &Cond, bool AllowModify=false) const override
Branch Analysis & Modification {.
unsigned removeBranch (MachineBasicBlock &MBB, int *BytesRemoved=nullptr) const override
unsigned insertBranch (MachineBasicBlock &MBB, MachineBasicBlock *TBB, MachineBasicBlock *FBB, ArrayRef< MachineOperand > Cond, const DebugLoc &DL, int *BytesAdded=nullptr) const override
bool reverseBranchCondition (SmallVectorImpl< MachineOperand > &Cond) const override
void copyPhysReg (MachineBasicBlock &MBB, MachineBasicBlock::iterator I, const DebugLoc &DL, Register DestReg, Register SrcReg, bool KillSrc, bool RenamableDest=false, bool RenamableSrc=false) const override
} Branch Analysis & Modification
Register isLoadFromStackSlot (const MachineInstr &MI, int &FrameIndex) const override
Stack Spill & Reload {.
Register isStoreToStackSlot (const MachineInstr &MI, int &FrameIndex) const 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.
void storeRegToStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, Register SrcReg, bool isKill, int FrameIndex, const TargetRegisterClass *RC, Register VReg, MachineInstr::MIFlag Flags=MachineInstr::NoFlags) const override
void loadRegFromStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, Register DestReg, int FrameIndex, const TargetRegisterClass *RC, Register VReg, MachineInstr::MIFlag Flags=MachineInstr::NoFlags) const override
bool foldImmediate (MachineInstr &UseMI, MachineInstr &DefMI, Register Reg, MachineRegisterInfo *MRI) const override
} Stack Spill & Reload
Register getGlobalBaseReg (MachineFunction *MF) const
} Optimization
bool expandPostRAPseudo (MachineInstr &MI) const override
bool expandExtendStackPseudo (MachineInstr &MI) const
bool expandGetStackTopPseudo (MachineInstr &MI) const

Definition at line 51 of file VEInstrInfo.h.

analyzeBranch()

Branch Analysis & Modification {.

Definition at line 144 of file VEInstrInfo.cpp.

References Cond, llvm::MachineInstr::eraseFromParent(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), I, llvm::isCondBranchOpcode(), llvm::isIndirectBranchOpcode(), llvm::isUncondBranchOpcode(), MBB, parseCondBranch(), and TBB.

copyPhysReg()

} Branch Analysis & Modification

Definition at line 358 of file VEInstrInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::MachineInstr::addRegisterKilled(), llvm::BuildMI(), contains(), copyPhysSubRegs(), llvm::dbgs(), DL, llvm::get(), llvm::MachineInstrBuilder::getInstr(), llvm::getKillRegState(), getRegisterInfo(), I, IsAliasOfSX(), llvm_unreachable, llvm::M1(), MBB, llvm::printReg(), and TRI.

expandExtendStackPseudo()

Definition at line 996 of file VEInstrInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), llvm::MachineBasicBlock::addSuccessor(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::VECC::CC_IGE, llvm::MachineFunction::CreateMachineBasicBlock(), llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::getBasicBlock(), llvm::VESubtarget::getInstrInfo(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::insert(), MBB, MI, llvm::MachineBasicBlock::splice(), TII, llvm::MachineBasicBlock::transferSuccessorsAndUpdatePHIs(), and VEInstrInfo().

Referenced by expandPostRAPseudo().

expandGetStackTopPseudo()

Definition at line 1080 of file VEInstrInfo.cpp.

References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::MachineFrameInfo::adjustsStack(), llvm::BuildMI(), DL, llvm::VESubtarget::getAdjustedFrameSize(), llvm::MachineFunction::getFrameInfo(), llvm::VESubtarget::getFrameLowering(), llvm::VESubtarget::getInstrInfo(), llvm::MachineFrameInfo::getMaxCallFrameSize(), llvm::MachineFunction::getSubtarget(), llvm::VEFrameLowering::hasReservedCallFrame(), MBB, MI, TII, and VEInstrInfo().

Referenced by expandPostRAPseudo().

expandPostRAPseudo()

Definition at line 875 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(), llvm::get(), llvm::MachineInstrBuilder::getInstr(), llvm::getKillRegState(), getRegisterInfo(), getVM512Lower(), getVM512Upper(), MBB, MI, and TRI.

foldImmediate()

} Stack Spill & Reload

Optimization {

Definition at line 577 of file VEInstrInfo.cpp.

References assert(), llvm::dbgs(), DefMI, llvm::get(), INSTRKIND, llvm::isInt(), llvm::isMImmVal(), LLVM_DEBUG, llvm::mimm2Val(), MRI, NCINSTRKIND, UseMI, and llvm::val2MImm().

getGlobalBaseReg()

getRegisterInfo()

insertBranch()

Definition at line 225 of file VEInstrInfo.cpp.

References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addMBB(), assert(), llvm::BuildMI(), Cond, DL, llvm::get(), llvm::getImm(), llvm::MachineFunction::getRegInfo(), getRegisterInfo(), IsIntegerCC(), isReg(), MBB, MRI, TBB, and TRI.

isLoadFromStackSlot()

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 415 of file VEInstrInfo.cpp.

References MI.

isStoreToStackSlot()

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 439 of file VEInstrInfo.cpp.

References MI.

loadRegFromStackSlot()

Definition at line 521 of file VEInstrInfo.cpp.

References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::BuildMI(), DL, llvm::get(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), I, MBB, llvm::MachineMemOperand::MOLoad, and llvm::report_fatal_error().

removeBranch()

reverseBranchCondition()

storeRegToStackSlot()

Definition at line 458 of file VEInstrInfo.cpp.

References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), DL, llvm::get(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::getKillRegState(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), I, MBB, llvm::MachineMemOperand::MOStore, and llvm::report_fatal_error().


The documentation for this class was generated from the following files: