summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/AliasSetTracker.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-05-20 22:05:28 +0000
committerChris Lattner <sabre@nondot.org>2008-05-20 22:05:28 +0000
commitb76ad168dcd46552240d85d6ebe4314da9b05e39 (patch)
tree221a2104a3d309e0003447e61a48fee17d3e3ebb /llvm/lib/Analysis/AliasSetTracker.cpp
parent0843435b3611cd5ea0087a57856473610514de6d (diff)
downloadbcm5719-llvm-b76ad168dcd46552240d85d6ebe4314da9b05e39.tar.gz
bcm5719-llvm-b76ad168dcd46552240d85d6ebe4314da9b05e39.zip
Fix PR2346 by marking vaarg as volatile so that licm doesn't try to
hoist them. llvm-svn: 51356
Diffstat (limited to 'llvm/lib/Analysis/AliasSetTracker.cpp')
-rw-r--r--llvm/lib/Analysis/AliasSetTracker.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/AliasSetTracker.cpp b/llvm/lib/Analysis/AliasSetTracker.cpp
index 68603e53b64..228bb80ae3b 100644
--- a/llvm/lib/Analysis/AliasSetTracker.cpp
+++ b/llvm/lib/Analysis/AliasSetTracker.cpp
@@ -294,7 +294,10 @@ bool AliasSetTracker::add(FreeInst *FI) {
bool AliasSetTracker::add(VAArgInst *VAAI) {
bool NewPtr;
- addPointer(VAAI->getOperand(0), ~0, AliasSet::ModRef, NewPtr);
+ AliasSet &AS = addPointer(VAAI->getOperand(0), ~0, AliasSet::ModRef, NewPtr);
+
+ // Treat vaarg instructions as volatile (not to be moved).
+ AS.setVolatile();
return NewPtr;
}
OpenPOWER on IntegriCloud