[PATCH] D22952: [LoopVectorize] Detect loops in the innermost loop before creating InnerLoopVectorizer

Adam Nemet via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 11 18:06:44 PDT 2016


anemet added inline comments.

================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:262-265
@@ +261,6 @@
+
+  static NodeRef getEntryNode(const Loop &G) { return {&G, G.getHeader()}; }
+
+  static ChildIteratorType child_begin(NodeRef Node) {
+    return make_filter_range(make_range<WrappedSuccIterator>(
+                                 {succ_begin(Node.second), Node.first},
----------------
I am not sure we're talking about the same thing.  I meant:

  return make_filter_range(make_range<succ_iterator>(
                                            succ_begin(Node.second),
                                            succ_end(Node.second)),
                                          LoopBodyFilter(Node.first))

and then:

  struct LoopBodyFilter {
    LoopBodyFitler(Loop *L) : L(L) {}
    bool operator()(BasicBlock *BB) const {
      return BB != L->getHeader() && L->contains(BB);
    }
    Loop *L;
  };

?

In other words, it does not seem any different to me whether you attach the loop to the succ_iterator or the filter object.


https://reviews.llvm.org/D22952





More information about the llvm-commits mailing list