From f711fb7af89c4bda9edea6c0c07b78f12c3f193f Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 23 May 2007 06:36:35 +0000 Subject: [PATCH] when merging two alias sets together, be sure to propagate the volatility of the inner set. This fixes PR1435 and Transforms/LICM/2007-05-22-VolatileSink.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37305 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/AliasSetTracker.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/Analysis/AliasSetTracker.cpp b/lib/Analysis/AliasSetTracker.cpp index 7f976200086..0397af7e979 100644 --- a/lib/Analysis/AliasSetTracker.cpp +++ b/lib/Analysis/AliasSetTracker.cpp @@ -351,9 +351,11 @@ void AliasSetTracker::add(const AliasSetTracker &AST) { // Loop over all of the pointers in this alias set... AliasSet::iterator I = AS.begin(), E = AS.end(); bool X; - for (; I != E; ++I) - addPointer(I.getPointer(), I.getSize(), - (AliasSet::AccessType)AS.AccessTy, X); + for (; I != E; ++I) { + AliasSet &NewAS = addPointer(I.getPointer(), I.getSize(), + (AliasSet::AccessType)AS.AccessTy, X); + if (AS.isVolatile()) NewAS.setVolatile(); + } } } -- 2.34.1