Free and vaarg are not really volatile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51407 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2008-05-22 03:23:06 +00:00
parent 19d9d4364e
commit 05a24e5efe

View File

@ -284,20 +284,13 @@ bool AliasSetTracker::add(StoreInst *SI) {
bool AliasSetTracker::add(FreeInst *FI) {
bool NewPtr;
AliasSet &AS = addPointer(FI->getOperand(0), ~0,
AliasSet::Mods, NewPtr);
// Free operations are volatile ops (cannot be moved).
AS.setVolatile();
addPointer(FI->getOperand(0), ~0, AliasSet::Mods, NewPtr);
return NewPtr;
}
bool AliasSetTracker::add(VAArgInst *VAAI) {
bool NewPtr;
AliasSet &AS = addPointer(VAAI->getOperand(0), ~0, AliasSet::ModRef, NewPtr);
// Treat vaarg instructions as volatile (not to be moved).
AS.setVolatile();
addPointer(VAAI->getOperand(0), ~0, AliasSet::ModRef, NewPtr);
return NewPtr;
}