mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-17 05:24:04 +00:00
Re-commit r124462 with fixes. Tail recursion elim will now dup ret into unconditional predecessor to enable TCE on demand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124518 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -22,9 +22,10 @@
|
||||
|
||||
namespace llvm {
|
||||
|
||||
class AliasAnalysis;
|
||||
class Instruction;
|
||||
class Pass;
|
||||
class AliasAnalysis;
|
||||
class ReturnInst;
|
||||
|
||||
/// DeleteDeadBlock - Delete the specified block, which must have no
|
||||
/// predecessors.
|
||||
@@ -171,7 +172,15 @@ BasicBlock *SplitBlock(BasicBlock *Old, Instruction *SplitPt, Pass *P);
|
||||
BasicBlock *SplitBlockPredecessors(BasicBlock *BB, BasicBlock *const *Preds,
|
||||
unsigned NumPreds, const char *Suffix,
|
||||
Pass *P = 0);
|
||||
|
||||
|
||||
/// FoldReturnIntoUncondBranch - This method duplicates the specified return
|
||||
/// instruction into a predecessor which ends in an unconditional branch. If
|
||||
/// the return instruction returns a value defined by a PHI, propagate the
|
||||
/// right value into the return. It returns the new return instruction in the
|
||||
/// predecessor.
|
||||
ReturnInst *FoldReturnIntoUncondBranch(ReturnInst *RI, BasicBlock *BB,
|
||||
BasicBlock *Pred);
|
||||
|
||||
} // End llvm namespace
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user