[PATCH] D64744: #pragma clang loop predicate(enable|disable)

Michael Kruse via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 18 09:47:51 PDT 2019

Meinersbur added a comment.

[serious] Need to update docs.

I'd expect `predicate` to be an option of another transformation. For vectorization, by convention the #pragma name would be `vectorize_predicate` and the metadata `llvm.loop.vectorize.predicate`. As a standalone, it is not clear what it is supposed to do (docs missing) and I am against mixing similar semantics of options of different loop transformations.

I am currently trying to update the semantics of loop transformations such that a transformation order can be defined. An option without transformation it belongs to does not fit well into that. E.g. what happends with `llvm.loop.predicate` after unrolling/vectorization/distribution/interchange/unroll-and-jam/fusion?


Comment at: clang/lib/CodeGen/CGLoopInfo.cpp:426
+  MDNode *N = createPredicateMetadata(Attrs, LoopProperties, HasUserTransforms);
+  if(N)
+    LoopProperties.push_back(N);
[nit] run clang-format over your patch



More information about the cfe-commits mailing list