[PATCH] D49281: [Unroll/UnrollAndJam/Vectorizer/Distribute] Add followup loop attributes.

Michael Kruse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jul 15 14:56:02 PDT 2018


Meinersbur added a comment.

Thanks for the review.

In https://reviews.llvm.org/D49281#1162931, @dmgreen wrote:

> What does this mean for the clang side of this patch? Has the user-visible loop-naming scheme changed, or will it be mapped to these matadatas?


I also have a patch for clang in mind to make the order defined by the frontend, not the pass pipeline. However, for compatibility it will have to put them in the order of the current pass order e.g.

  #pragma unroll_and_jam
  #pragma clang loop vectorize(enable)

and

  #pragma clang loop vectorize(enable)
  #pragma unroll_and_jam

both have to emit

  !0 = !{!0, 
      !{!"llvm.loop.vectorize.enable"},
      !{!"llvm.loop.vectorize.followup_all", 
          !{!"llvm.loop.unrollandjam.enable"}}}}

A different syntax is needed that the user can use if they want to define the transformation order.

Also for compatibility we cannot error-out if transformation undefined (at least for any combination of currently supported transformations), but could use the Auto-Upgrader.


Repository:
  rL LLVM

https://reviews.llvm.org/D49281





More information about the llvm-commits mailing list