the difference manually instead.
This allows GVNPRE to produce correct analysis for the example in the GVNPRE
paper.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37425
91177308-0d34-0410-b5e6-
96231b3b80d8
s_ins, ExprLT());
anticIn.clear();
- std::insert_iterator<std::set<Value*, ExprLT> > antic_ins(anticIn,
- anticIn.begin());
- std::set_difference(S.begin(), S.end(),
- generatedTemporaries[BB].begin(),
- generatedTemporaries[BB].end(),
- antic_ins,
- ExprLT());
+
+ for (std::set<Value*, ExprLT>::iterator I = S.begin(), E = S.end();
+ I != E; ++I) {
+ if (generatedTemporaries[BB].find(*I) == generatedTemporaries[BB].end())
+ anticIn.insert(*I);
+ }
clean(VN, anticIn);