LLVM 22.0.0git
HexagonNewValueJump.cpp File Reference

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "hexagon-nvj"

Functions

 STATISTIC (NumNVJGenerated, "Number of New Value Jump Instructions created")
 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)

Variables

static 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 cl::opt< boolDisableNewValueJumps ("disable-nvjump", cl::Hidden, cl::desc("Disable New Value Jumps"))
hexagon nvj
hexagon Hexagon NewValueJump
hexagon Hexagon false

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "hexagon-nvj"

Definition at line 55 of file HexagonNewValueJump.cpp.

Function Documentation

◆ canBeFeederToNewValueJump()

hexagon Hexagon static false bool canBeFeederToNewValueJump ( const HexagonInstrInfo * QII,
const TargetRegisterInfo * TRI,
MachineBasicBlock::iterator II,
MachineBasicBlock::iterator end,
MachineBasicBlock::iterator skip,
MachineFunction & MF )
static

Definition at line 108 of file HexagonNewValueJump.cpp.

References assert(), canBeFeederToNewValueJump(), const, for(), if(), II, Reg, skip(), and TRI.

Referenced by canBeFeederToNewValueJump().

◆ canCompareBeNewValueJump()

◆ commonChecksToProhibitNewValueJump()

bool commonChecksToProhibitNewValueJump ( bool afterRA,
MachineBasicBlock::iterator MII )
static

Definition at line 191 of file HexagonNewValueJump.cpp.

Referenced by canCompareBeNewValueJump().

◆ getNewValueJumpOpcode()

unsigned getNewValueJumpOpcode ( MachineInstr * MI,
int reg,
bool secondRegNewified,
MachineBasicBlock * jmpTarget,
const MachineBranchProbabilityInfo * MBPI )
static

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( HexagonNewValueJump ,
"hexagon-nvj" ,
"Hexagon NewValueJump" ,
false ,
false  )

◆ STATISTIC()

STATISTIC ( NumNVJGenerated ,
"Number of New Value Jump Instructions created"  )

Variable Documentation

◆ 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")) ( "nvj-count" ,
cl::init(-1) ,
cl::Hidden ,
cl::desc("Maximum number of predicated jumps to be converted to " "New Value Jump")  )
static

◆ DisableNewValueJumps

cl::opt< bool > DisableNewValueJumps("disable-nvjump", cl::Hidden, cl::desc("Disable New Value Jumps")) ( "disable-nvjump" ,
cl::Hidden ,
cl::desc("Disable New Value Jumps")  )
static

◆ false

hexagon Hexagon false

Definition at line 104 of file HexagonNewValueJump.cpp.

◆ NewValueJump

hexagon Hexagon NewValueJump

Definition at line 104 of file HexagonNewValueJump.cpp.

◆ nvj

hexagon nvj

Definition at line 103 of file HexagonNewValueJump.cpp.