From b76ad168dcd46552240d85d6ebe4314da9b05e39 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 20 May 2008 22:05:28 +0000 Subject: Fix PR2346 by marking vaarg as volatile so that licm doesn't try to hoist them. llvm-svn: 51356 --- llvm/lib/Analysis/AliasSetTracker.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'llvm/lib/Analysis/AliasSetTracker.cpp') 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; } -- cgit v1.2.3