MemorySSA: Fix and use optimized_def_chain
authorDaniel Berlin <dberlin@dberlin.org>
Wed, 5 Apr 2017 17:26:25 +0000 (17:26 +0000)
committerDaniel Berlin <dberlin@dberlin.org>
Wed, 5 Apr 2017 17:26:25 +0000 (17:26 +0000)
llvm-svn: 299566

llvm/include/llvm/Transforms/Utils/MemorySSA.h
llvm/lib/Transforms/Scalar/NewGVN.cpp

index 71ba6bb8bc0edf2c8d328414c607304186e71806..e52b901ceadc0e20bca9d69e09bd4279ddac7d84 100644 (file)
@@ -1108,7 +1108,7 @@ upward_defs(const MemoryAccessPair &Pair) {
 /// thing that would clobber the same memory is, you want the optimized chain.
 template <class T, bool UseOptimizedChain = false>
 struct def_chain_iterator
-    : public iterator_facade_base<def_chain_iterator<T>,
+    : public iterator_facade_base<def_chain_iterator<T, UseOptimizedChain>,
                                   std::forward_iterator_tag, MemoryAccess *> {
   def_chain_iterator() : MA(nullptr) {}
   def_chain_iterator(T MA) : MA(MA) {}
index cb011be584fad3a5441a7be7fa836aaeac02ff3c..62d769cb5582e6a0b16a8b02dc51106c5eb963e9 100644 (file)
@@ -1986,7 +1986,7 @@ bool NewGVN::singleReachablePHIPath(const MemoryAccess *First,
   if (MSSA->isLiveOnEntryDef(First))
     return false;
   const auto *EndDef = First;
-  for (auto *ChainDef : def_chain(First)) {
+  for (auto *ChainDef : optimized_def_chain(First)) {
     if (ChainDef == Second)
       return true;
     if (MSSA->isLiveOnEntryDef(ChainDef))