[PATCH] D65776: [Clang] Pragma vectorize_predicate implies vectorize

2019-08-14 Thread Sjoerd Meijer via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL368970: [Clang] Pragma vectorize_predicate implies vectorize (authored by SjoerdMeijer, committed by ). Herald added a project: LLVM. Herald added a subscriber: llvm-commits. Changed prior to commit: ht

[PATCH] D65776: [Clang] Pragma vectorize_predicate implies vectorize

2019-08-13 Thread Sjoerd Meijer via Phabricator via cfe-commits
SjoerdMeijer added a comment. Thanks for your help! And I will wait a few days. After this, I will look at that PR, will have a look at diagnostics, and then at the LLVM side of things. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D65776/new/ https://reviews.llvm.org/D65776 ___

[PATCH] D65776: [Clang] Pragma vectorize_predicate implies vectorize

2019-08-13 Thread Florian Hahn via Phabricator via cfe-commits
fhahn accepted this revision. fhahn added reviewers: hfinkel, reames. fhahn added a comment. This revision is now accepted and ready to land. LGTM, thanks! Please wait a few days with committing, in case any additional comments come in via the mailing list. CHANGES SINCE LAST ACTION https://r

[PATCH] D65776: [Clang] Pragma vectorize_predicate implies vectorize

2019-08-13 Thread Sjoerd Meijer via Phabricator via cfe-commits
SjoerdMeijer added a comment. thanks @Meinersbur and @fhahn for the discussions on this, also on the dev list. It looks like we are happy with this behaviour? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D65776/new/ https://reviews.llvm.org/D65776 __

[PATCH] D65776: [Clang] Pragma vectorize_predicate implies vectorize

2019-08-07 Thread Sjoerd Meijer via Phabricator via cfe-commits
SjoerdMeijer added a comment. > I do not know whether/how "setting a transformation option implicitly enables > the transformation" should be implemented, maybe we should discuss this. Yep, agreed. I've sent a mail to the dev list: http://lists.llvm.org/pipermail/cfe-dev/2019-August/063054.html

[PATCH] D65776: [Clang] Pragma vectorize_predicate implies vectorize

2019-08-06 Thread Michael Kruse via Phabricator via cfe-commits
Meinersbur added a comment. Looking at the similar situation of `unroll(enable)`/`unroll_count(4)`, `unroll_count` also does not set `llvm.loop.unroll.enable`, but it is handled by the LoopUnroll pass itself: bool ExplicitUnroll = PragmaCount > 0 || PragmaFullUnroll ||

[PATCH] D65776: [Clang] Pragma vectorize_predicate implies vectorize

2019-08-06 Thread Sjoerd Meijer via Phabricator via cfe-commits
SjoerdMeijer added a comment. Hi Florian, thanks for your input! > IMO it would make sense to have the more specific pragmas imply > vectorize(enable) here (or update the docs accordingly). Yep, fully agree with that, as I also wrote in my previous comment. And thanks for digging up that PR. I

[PATCH] D65776: [Clang] Pragma vectorize_predicate implies vectorize

2019-08-06 Thread Florian Hahn via Phabricator via cfe-commits
fhahn added a comment. In D65776#1615834 , @Meinersbur wrote: > Mmmh, I would have expected this to work the same way as `vectorize_width`. > According to the docs: > > > The following example implicitly enables vectorization and interleaving by > > spec

[PATCH] D65776: [Clang] Pragma vectorize_predicate implies vectorize

2019-08-05 Thread Sjoerd Meijer via Phabricator via cfe-commits
SjoerdMeijer added a comment. Thanks for pointing this all out! I am not entirely sure yet what to think about all this as I am new to the loop pragma business, but I think it looks inconsistent to me! I think I find `allowReordering()` a little bit ugly, because it is also checking `getWidth(

[PATCH] D65776: [Clang] Pragma vectorize_predicate implies vectorize

2019-08-05 Thread Michael Kruse via Phabricator via cfe-commits
Meinersbur added a comment. Mmmh, I would have expected this to work the same way as `vectorize_width`. According to the docs: > The following example implicitly enables vectorization and interleaving by > specifying a vector width and interleaving count: > `#pragma clang loop vectorize_width(

[PATCH] D65776: [Clang] Pragma vectorize_predicate implies vectorize

2019-08-05 Thread Sjoerd Meijer via Phabricator via cfe-commits
SjoerdMeijer added a comment. Forgot that this requires a doc change too. Will add that once we're happy with the proposed behaviour. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D65776/new/ https://reviews.llvm.org/D65776 ___ cfe-commits

[PATCH] D65776: [Clang] Pragma vectorize_predicate implies vectorize

2019-08-05 Thread Sjoerd Meijer via Phabricator via cfe-commits
SjoerdMeijer created this revision. SjoerdMeijer added reviewers: Meinersbur, hsaito, fhahn. New pragma "vectorize_predicate(enable)" now implies "vectorize(enable)", and it is ignored when vectorization is disabled with e.g. "vectorize(disable) vectorize_predicate(enable)". https://reviews.llvm