Do not promote volatile alias sets into registers
authorChris Lattner <sabre@nondot.org>
Sun, 14 Dec 2003 04:52:31 +0000 (04:52 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 14 Dec 2003 04:52:31 +0000 (04:52 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10458 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/LICM.cpp

index 3365e64af055ad725643cd6938945da6a3d749d4..6046f02563ec82971ddea443d103ca185f604b11 100644 (file)
@@ -647,7 +647,7 @@ void LICM::findPromotableValuesInLoop(
     // We can promote this alias set if it has a store, if it is a "Must" alias
     // set, and if the pointer is loop invariant.
     if (!AS.isForwardingAliasSet() && AS.isMod() && AS.isMustAlias() &&
-        isLoopInvariant(AS.begin()->first)) {
+        !AS.isVolatile() && isLoopInvariant(AS.begin()->first)) {
       assert(AS.begin() != AS.end() &&
              "Must alias set should have at least one pointer element in it!");
       Value *V = AS.begin()->first;