sdesmalen added inline comments.

================
Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:939
+def warn_pragma_attribute_scalable_unused : Warning<
+  "ignoring scalable vectorize_width flag due to lack of target support">,
+  InGroup<PragmaClangAttribute>;
----------------
From what I can see, the vectorize_width flag is not ignored, only the scalable 
property is. That means this should be:
  'scalable' not supported by the target so assuming 'fixed' instead.


================
Comment at: clang/lib/Sema/SemaStmtAttr.cpp:148
+      if (StateLoc && StateLoc->Ident && StateLoc->Ident->isStr("scalable")) {
+        if (!S.Context.getTargetInfo().supportsScalableVectors()) {
+          S.Diag(St->getBeginLoc(), 
diag::warn_pragma_attribute_scalable_unused);
----------------
If the target does not support scalable vectors, it currently assumes 
`"fixed"`. If we want to stick with that approach, the diagnostic message 
should be changed (see my other comment). The alternative is dropping the hint 
entirely by returning `nullptr` and changing the diagnostic message to say the 
hint is ignored. I could live with both options. @fhahn do you have a 
preference here?

nit: to reduce nesting, can you hoist this out one level, e.g.
  if (StateLoc && StateLoc->Ident & ...)
    State = LoopHintAttr::ScalableNumeric;
  else
    State = LoopHintAttr::Numeric;

  if (State == LoopHintAttr::ScalableNumeric &&
      !S.Context.getTargetInfo().supportsScalableVectors()) {
    S.Diag(....);
    State = LoopHintAttr::Numeric;
  }


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

https://reviews.llvm.org/D89031

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

Reply via email to