Go to the source code of this file.
|
| | llvm |
| | Compute iterated dominance frontiers using a linear time algorithm.
|
| |
|
| | 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) |
| |
| #define DEBUG_TYPE "hexagon-nvj" |
Definition at line 212 of file HexagonNewValueJump.cpp.
References commonChecksToProhibitNewValueJump(), llvm::TargetOpcode::COPY, llvm::sys::path::end(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineRegisterInfo::getVRegDef(), llvm::TargetRegisterInfo::isPhysicalRegister(), and llvm::AArch64CC::MI.
| STATISTIC |
( |
NumNVJGenerated |
, |
|
|
"Number of New Value Jump Instructions created" |
|
|
) |
| |
| 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 |
| hexagon Hexagon NewValueJump |