Home | History | Annotate | Download | only in CodeGen

Lines Matching full:branch

1 //===-- BranchFolding.cpp - Fold machine code branch instructions ---------===//
10 // This pass forwards branches to unconditional branches to make them branch
70 /// BranchFolderPass - Wrap branch folder in a machine function pass.
90 INITIALIZE_PASS(BranchFolderPass, "branch-folder",
197 /// OptimizeFunction - Perhaps branch folding, tail merging and other
427 /// after it, replacing it with an unconditional branch to NewDest.
500 // CurMBB needs to add an unconditional branch to SuccMBB (we removed these
502 // with a conditional branch to the next block, optimize by reversing the
629 // of instructions, because it can be done without a branch.
636 // If both blocks have an unconditional branch temporarily stripped out,
651 // branch instruction, which is likely to be smaller than the 2
712 // Put the unconditional branch back, if we need one.
733 // Use PredBB if possible; that doesn't require a new branch.
823 // branch to Succ added (but the predecessor/successor lists need no
975 // (1) temporarily removing any unconditional branch from the predecessor
977 // (2) alter conditional branches so they branch to the other block
978 // not IBB; this may require adding back an unconditional branch to IBB
1021 // and the predecessors may branch to this common tail.
1033 // branch.
1069 // Remove the unconditional branch at the end, if any.
1074 // reinsert conditional branch only, for now
1092 // Reinsert an unconditional branch if needed. The 1 below can occur as a
1148 // Branch Optimization
1197 // optimize branches that branch to either a return block or an assert block
1212 /// getBranchDebugLoc - Find and return, if any, the DebugLoc of the branch
1251 // TODO: Simplify preds to not branch here if possible!
1286 // If the previous branch is conditional and both conditions go to the same
1287 // destination, remove the branch, replacing it with an unconditional one or
1336 // If the previous branch *only* branches to *this* block (conditional or
1337 // not) remove the branch.
1346 // the condition is false, remove the uncond second branch.
1357 // if the branch condition is reversible, reverse the branch to create a
1394 // Reverse the branch so we will fall through on the previous true cond.
1414 // Analyze the branch in the current block.
1423 // If this is a two-way branch, and the FBB branches to this block, reverse
1440 // If this branch is the only thing in its block, see if we can forward
1446 // This block may contain just an unconditional branch. Because there can
1447 // be 'non-branch terminators' in the block, try removing the branch and
1458 // If this block is just an unconditional branch to CurTBB, we can
1461 // falls through into MBB and we can't understand the prior block's branch
1468 // explicit branch to us to make updates simpler.
1473 "Bad branch analysis");
1491 // If this block has an uncond branch to itself, leave it.
1498 // branch where both conditions go to the same destination,
1499 // change this to an unconditional branch (and fix the CFG).
1527 // Add the branch back if the block is more than just an uncond branch.
1545 // Analyze the branch at the end of the pred.
1554 // conditional branch, we need to append an unconditional jump to
1577 // Analyze the branch at the end of the block before the succ.
1601 // a branch target from PrevBB.
1658 /// however if the terminator is a conditional branch and its previous
1698 // The terminator is probably a conditional branch, try not to separate the
1699 // branch from condition setting instruction.
1722 // branch.
1727 // instruction from the conditional branch, just abort the optimization