psoni2628 added inline comments.

================
Comment at: llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h:625
+  void applySimd(CanonicalLoopInfo *Loop, Value *IfCond, ConstantInt *Simdlen,
+                 ConstantInt *Safelen);
 
----------------
shraiysh wrote:
> [nit] Please set the default value of Safelen to nullptr here.
Setting a default value for only `Safelen` but not `Simdlen` or `IfCond` is a 
bit inconsistent and could potentially cause confusion in the future. I think 
it would make more sense to set default values for all the clause values. Maybe 
we could this separately in a different patch?


================
Comment at: llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp:3048
+    // parameter. Therefore, use safelen only in the absence of simdlen.
+    ConstantInt *VectorizeWidth = Simdlen == nullptr ? Safelen : Simdlen;
     addLoopMetadata(
----------------
Meinersbur wrote:
> `safelen` should not mean the same as `llvm.loop.vectorize.width`. `safelen` 
> could be unreasonably large to use as SIMD width or a non-power-of-2.
> 
> That being said, it's what `CGStmtOpenMP.cpp` does as well and I don't know 
> any better way.
IMO, this is more of a semantic analysis problem. For example, if it not legal 
to have a `safelen` that is a non-power-of-2, then Clang should not let this 
value proceed from semantic analysis. Maybe we could add a check in 
`clang/lib/Sema/SemaOpenMP.cpp`, and fix the problem for both OMPIRBuilder and 
the existing codegen support in `CGStmtOpenMP.cpp` in a different patch?


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

https://reviews.llvm.org/D131526

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

Reply via email to