Home | History | Annotate | Download | only in Hexagon

Lines Matching full:jump

1 //===----- HexagonNewValueJump.cpp - Hexagon Backend New Value Jump -------===//
13 // jump instructions, we are forced to write after register allocation.
17 // The basic approach looks for sequence of predicated jump, compare instruciton
19 // all, it collapses compare and jump instruction into a new valu jump
52 STATISTIC(NumNVJGenerated, "Number of New Value Jump Instructions created");
56 "Maximum number of predicated jumps to be converted to New Value Jump"));
118 // feeder insn between it's definition, this MI and jump, jmpInst
124 // if (p0.new) jump:t .LBB29_45
129 // if (p0.new) jump:t .LBB29_45
130 // and result WAR hazards if converted to New Value Jump.
153 // 1. compare instruction can be moved before jump.
154 // 2. feeder to the compare instruction can be moved before jump.
169 // to new value jump. If they are in the path, bail out.
233 // to move new value jump prior to RA, we would be needing this.
242 // Walk the instructions after the compare (predicate def) to the jump,
265 // if (p0.new) jump:t .LBB28_3
273 // Given a compare operator, return a matching New Value Jump
330 llvm_unreachable("Could not find matching New Value Jump instruction.");
338 DEBUG(dbgs() << "********** Hexagon New Value Jump **********\n"
372 unsigned predReg = 0; // predicate reg of the jump.
447 // No new value jump if there is a barrier. A barrier has to be in its
462 "Only compare instruction can be collapsed into New Value Jump");
474 // new value jump instruction.
549 // Now that we are moving feeder close the jump,
585 "This compare is not a New Value Jump candidate.");
624 assert(NewMI && "New Value Jump Instruction Not created!");