It's safe to sink some instructions which are not safe to speculatively

execute. Make Sink's predicate more precise.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118787 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2010-11-11 16:20:28 +00:00
parent e7ae70b137
commit 2c71f18ff7

View File

@ -169,7 +169,10 @@ static bool isSafeToMove(Instruction *Inst, AliasAnalysis *AA,
return false;
}
return Inst->isSafeToSpeculativelyExecute();
if (isa<TerminatorInst>(Inst) || isa<PHINode>(Inst))
return false;
return true;
}
/// SinkInstruction - Determine whether it is safe to sink the specified machine