aaron.ballman added inline comments.

================
Comment at: include/clang/Basic/Attr.td:2871-2872
   /// distribute: attempt to distribute loop if State == Enable
+  /// pipeline: disable pipelining loop if State == Disable
+  /// pipeline_ii_count: try to pipeline loop for only 'Value' value
 
----------------
alexey.lapshin wrote:
> aaron.ballman wrote:
> > Missing full stops at the end of the comments. Also, having read "for only 
> > 'Value' value", I'm still not certain what's happening. I think this is a 
> > count of some kind, so perhaps "Tries to pipeline 'Values' times." but I 
> > don't know what the verb "pipeline" means in this context.
> > 
> > Are users going to understand what the `ii` means in the user-facing name?
> As to ii - yes that should be understood by users, because it is important 
> property of software pipelining optimization. Software Pipelining 
> optimization tries to reorder instructions of original loop(from different 
> iterations) so that resulting loop body takes less cycles. It started from 
> some minimal value of ii and stopped with some maximal value.  i.e. it tries 
> to built schedule for min_ii, then min_ii+1, ... until schedule is found or 
> until max_ii reached.  If resulting value of ii already known then instead of 
> searching in range min_ii, max_ii - it is possible to create schedule for 
> already known ii. 
> 
> probably following spelling would be better : 
> 
> pipeline_ii_count: create loop schedule with initiation interval equals 
> 'Value'
> because it is important property of software pipelining optimization. 

My point is that I have no idea what "ii" means and I doubt I'll be alone -- 
does the "ii" differentiate this from other kinds of pipeline loop pragmas we 
plan to support, or is expected that "pipeline_ii_count" be the only pipeline 
count option? Can we drop the "ii" and not lose anything?

> pipeline_ii_count: create loop schedule with initiation interval equals 
> 'Value'

equals 'Value' -> equal to 'Value'


================
Comment at: include/clang/Basic/DiagnosticParseKinds.td:1192
+def err_pragma_pipeline_invalid_keyword : Error<
+    "invalid argument; expected 'disable'">;
 
----------------
alexey.lapshin wrote:
> aaron.ballman wrote:
> > Can you roll this into the above diagnostic with another `%select`, or does 
> > that make it too unreadable?
> yes, it makes things too complicated. Though I could do it if necessary.
Not required, but I also didn't think the duplication here and below was a good 
approach either. But yeah, I'm not certain there's a better way to do this even 
if the list were rearranged.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55710/new/

https://reviews.llvm.org/D55710



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to