Go to the source code of this file.
|
| llvm |
| This class represents lattice values for constants.
|
|
|
| STATISTIC (NumNVJGenerated, "Number of New Value Jump Instructions created") |
|
FunctionPass * | llvm::createHexagonNewValueJump () |
|
void | llvm::initializeHexagonNewValueJumpPass (PassRegistry &) |
|
| INITIALIZE_PASS_BEGIN (HexagonNewValueJump, "hexagon-nvj", "Hexagon NewValueJump", false, false) INITIALIZE_PASS_END(HexagonNewValueJump |
|
hexagon Hexagon static false bool | canBeFeederToNewValueJump (const HexagonInstrInfo *QII, const TargetRegisterInfo *TRI, MachineBasicBlock::iterator II, MachineBasicBlock::iterator end, MachineBasicBlock::iterator skip, MachineFunction &MF) |
|
static bool | commonChecksToProhibitNewValueJump (bool afterRA, MachineBasicBlock::iterator MII) |
|
static bool | canCompareBeNewValueJump (const HexagonInstrInfo *QII, const TargetRegisterInfo *TRI, MachineBasicBlock::iterator II, unsigned pReg, bool secondReg, bool optLocation, MachineBasicBlock::iterator end, MachineFunction &MF) |
|
static unsigned | getNewValueJumpOpcode (MachineInstr *MI, int reg, bool secondRegNewified, MachineBasicBlock *jmpTarget, const MachineBranchProbabilityInfo *MBPI) |
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "hexagon-nvj" |
◆ canBeFeederToNewValueJump()
◆ canCompareBeNewValueJump()
Definition at line 238 of file HexagonNewValueJump.cpp.
References commonChecksToProhibitNewValueJump(), llvm::sys::path::end(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineRegisterInfo::getVRegDef(), llvm::MachineOperand::isImm(), llvm::TargetRegisterInfo::isPhysicalRegister(), MI, and MRI.
Referenced by getNewValueJumpOpcode().
◆ commonChecksToProhibitNewValueJump()
◆ getNewValueJumpOpcode()
Definition at line 335 of file HexagonNewValueJump.cpp.
References llvm::MachineInstrBuilder::addMBB(), assert(), llvm::MachineBasicBlock::begin(), llvm::MachineFunction::begin(), llvm::BuildMI(), canBeFeederToNewValueJump(), canCompareBeNewValueJump(), commonChecksToProhibitNewValueJump(), DbgNVJCount, llvm::dbgs(), DisableNewValueJumps, llvm::MachineBasicBlock::dump(), llvm::MachineInstr::dump(), E, llvm::MachineBasicBlock::end(), llvm::MachineFunction::end(), llvm::MachineInstr::eraseFromParent(), llvm::MDNode::get(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getDesc(), llvm::MachineBranchProbabilityInfo::getEdgeProbability(), llvm::MachineFunction::getFunction(), llvm::MachineOperand::getImm(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::getKillRegState(), llvm::MachineOperand::getMBB(), llvm::MachineFunction::getName(), llvm::MachineBasicBlock::getNumber(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), I, llvm::MCInstrDesc::isCompare(), llvm::MachineInstr::isDebugInstr(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isKill(), llvm::MachineBasicBlock::isLiveIn(), llvm::MachineOperand::isMBB(), llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MachineOperand::isReg(), LLVM_DEBUG, llvm_unreachable, MI, llvm::MachineInstr::operands(), llvm::MachineOperand::setIsKill(), SI, llvm::MachineBasicBlock::splice(), llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_end(), and llvm::HexagonSubtarget::useNewValueJumps().
◆ INITIALIZE_PASS_BEGIN()
◆ STATISTIC()
STATISTIC |
( |
NumNVJGenerated |
, |
|
|
"Number of New Value Jump Instructions created" |
|
|
) |
| |
◆ DbgNVJCount
cl::opt<int> DbgNVJCount("nvj-count", cl::init(-1), cl::Hidden, cl::desc("Maximum number of predicated jumps to be converted to " "New Value Jump")) |
|
static |
◆ DisableNewValueJumps
◆ false
◆ NewValueJump
hexagon Hexagon NewValueJump |
◆ nvj