Ignore dbg intrinsics while propagating conditional expression info.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63876 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel
2009-02-05 19:15:39 +00:00
parent ca940bb630
commit 1851db6b0f
5 changed files with 72 additions and 16 deletions

View File

@ -148,6 +148,23 @@ bool llvm::ConstantFoldTerminator(BasicBlock *BB) {
return false;
}
//===----------------------------------------------------------------------===//
// CFG Simplification
//
/// isTerminatorFirstRelevantInsn - Return true if Term is very first
/// instruction ignoring Phi nodes and dbg intrinsics.
bool llvm::isTerminatorFirstRelevantInsn(BasicBlock *BB, Instruction *Term) {
BasicBlock::iterator BBI = Term;
while (BBI != BB->begin()) {
--BBI;
if (!isa<DbgInfoIntrinsic>(BBI))
break;
}
if (isa<PHINode>(BBI) || &*BBI == Term)
return true;
return false;
}
//===----------------------------------------------------------------------===//
// Local dead code elimination...