diff options
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/GVN.cpp | 5 | 
1 files changed, 5 insertions, 0 deletions
| diff --git a/llvm/lib/Transforms/Scalar/GVN.cpp b/llvm/lib/Transforms/Scalar/GVN.cpp index 260bbedddc9..222320f5257 100644 --- a/llvm/lib/Transforms/Scalar/GVN.cpp +++ b/llvm/lib/Transforms/Scalar/GVN.cpp @@ -1125,6 +1125,11 @@ bool GVN::processNonLocalLoad(LoadInst *LI,                                  LI->getAlignment(),                                  UnavailablePred->getTerminator()); +  SmallPtrSet<Instruction*, 4> &p = phiMap[LI->getPointerOperand()]; +  for (SmallPtrSet<Instruction*, 4>::iterator I = p.begin(), E = p.end(); +       I != E; ++I) +    ValuesPerBlock.push_back(std::make_pair((*I)->getParent(), *I)); +      DenseMap<BasicBlock*, Value*> BlockReplValues;    BlockReplValues.insert(ValuesPerBlock.begin(), ValuesPerBlock.end());    BlockReplValues[UnavailablePred] = NewLoad; | 

