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