Go to the source code of this file.
|
| llvm |
| This is an optimization pass for GlobalISel generic memory operations.
|
|
|
| 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 237 of file HexagonNewValueJump.cpp.
References commonChecksToProhibitNewValueJump(), llvm::sys::path::end(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineFunction::getRegInfo(), llvm::MachineRegisterInfo::getVRegDef(), llvm::MachineOperand::isImm(), llvm::Register::isPhysicalRegister(), MI, MRI, and TRI.
◆ commonChecksToProhibitNewValueJump()
◆ getNewValueJumpOpcode()
◆ INITIALIZE_PASS_BEGIN()
◆ STATISTIC()
◆ DbgNVJCount
◆ DisableNewValueJumps
cl::opt<bool> DisableNewValueJumps("disable-nvjump", cl::Hidden, cl::desc("Disable New Value Jumps")) |
|
static |
◆ false
◆ NewValueJump
hexagon Hexagon NewValueJump |
◆ nvj