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

Hal Finkel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 6 11:35:54 PDT 2018


hfinkel added a comment.

In https://reviews.llvm.org/D49281#1189643, @hsaito wrote:

> In https://reviews.llvm.org/D49281#1188249, @hfinkel wrote:
>
> > >   ... As such, how to fall back when the transformation doesn't happen is almost equally important as what to do next when the transformation happens.
> >
> > Hideki, I think that LLVM does the right thing here: We provide a separation between the hint and the mandate (i.e., using assume_safety or not).
>
>
> That, I know. I wasn't questioning about that.
>
> What I'm not seeing from this RFC/patch is that, if the programmer specifies transformation behavior A -> B -> C, what happens if transformation A does not kick-in? Should we just warn that "A did not happen" and stop processing the request B and C?
>  Also, if the programmer requests that the loop to be distribute in three ways and specify different transformations for each, what should the latter transformation do if the loop is distributed in two ways or four ways? If we are serious about introducing this kind of features, we should clearly define what should happen when the programmer intention cannot be satisfied well enough ---- when we should continue honoring  and when we should stop honoring. If we say "we should stop in all those circumstances", that should simplify the problem a lot. If we say "we should allow to continue on subset of those cases", we should clearly state which subset and why. If there are any prior discussions (or descriptions within this patch) along this lines, please point me to that.


I certainly agree that we should document this.


Repository:
  rL LLVM

https://reviews.llvm.org/D49281





More information about the llvm-commits mailing list