diff options
Diffstat (limited to 'lib/Transforms/Scalar/GVN.cpp')
-rw-r--r-- | lib/Transforms/Scalar/GVN.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/Transforms/Scalar/GVN.cpp b/lib/Transforms/Scalar/GVN.cpp index 8cfc62768f..d3e15d457a 100644 --- a/lib/Transforms/Scalar/GVN.cpp +++ b/lib/Transforms/Scalar/GVN.cpp @@ -1040,6 +1040,9 @@ bool GVN::processNonLocalLoad(LoadInst *LI, // Perform PHI construction. Value* v = GetValueForBlock(LI->getParent(), LI, BlockReplValues, true); LI->replaceAllUsesWith(v); + + if (!isa<GlobalValue>(v)) + v->takeName(LI); if (isa<PointerType>(v->getType())) MD->invalidateCachedPointerInfo(v); toErase.push_back(LI); @@ -1135,7 +1138,8 @@ bool GVN::processNonLocalLoad(LoadInst *LI, // Perform PHI construction. Value* v = GetValueForBlock(LI->getParent(), LI, BlockReplValues, true); LI->replaceAllUsesWith(v); - v->takeName(LI); + if (!isa<GlobalValue>(v)) + v->takeName(LI); if (isa<PointerType>(v->getType())) MD->invalidateCachedPointerInfo(v); toErase.push_back(LI); |