mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-17 20:23:59 +00:00
Move SplitBlockAndInsertIfThen to BasicBlockUtils.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166278 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -25,9 +25,11 @@ namespace llvm {
|
||||
|
||||
class AliasAnalysis;
|
||||
class Instruction;
|
||||
class MDNode;
|
||||
class Pass;
|
||||
class ReturnInst;
|
||||
class TargetLibraryInfo;
|
||||
class TerminatorInst;
|
||||
|
||||
/// DeleteDeadBlock - Delete the specified block, which must have no
|
||||
/// predecessors.
|
||||
@ -203,6 +205,29 @@ void SplitLandingPadPredecessors(BasicBlock *OrigBB,ArrayRef<BasicBlock*> Preds,
|
||||
ReturnInst *FoldReturnIntoUncondBranch(ReturnInst *RI, BasicBlock *BB,
|
||||
BasicBlock *Pred);
|
||||
|
||||
/// SplitBlockAndInsertIfThen - Split the containing block at the
|
||||
/// specified instruction - everything before and including Cmp stays
|
||||
/// in the old basic block, and everything after Cmp is moved to a
|
||||
/// new block. The two blocks are connected by a conditional branch
|
||||
/// (with value of Cmp being the condition).
|
||||
/// Before:
|
||||
/// Head
|
||||
/// Cmp
|
||||
/// Tail
|
||||
/// After:
|
||||
/// Head
|
||||
/// Cmp
|
||||
/// if (Cmp)
|
||||
/// ThenBlock
|
||||
/// Tail
|
||||
///
|
||||
/// If Unreachable is true, then ThenBlock ends with
|
||||
/// UnreachableInst, otherwise it branches to Tail.
|
||||
/// Returns the NewBasicBlock's terminator.
|
||||
|
||||
TerminatorInst *SplitBlockAndInsertIfThen(Instruction *Cmp,
|
||||
bool Unreachable, MDNode *BranchWeights = 0);
|
||||
|
||||
} // End llvm namespace
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user