[PATCH] D113294: [IR] Remove unbounded as possible value for vscale_range minimum
Paul Walker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 3 11:12:51 PST 2021
paulwalker-arm added inline comments.
================
Comment at: clang/lib/Basic/Targets/AArch64.cpp:476-484
+ assert(LangOpts.VScaleMin && "vscale min must be greater than 0!");
+
+ if (LangOpts.VScaleMax)
return std::pair<unsigned, unsigned>(LangOpts.VScaleMin,
LangOpts.VScaleMax);
+
if (hasFeature("sve"))
----------------
c-rhodes wrote:
> paulwalker-arm wrote:
> > This looks like a change of behaviour to me. Previously the command line flags would override the "sve" default but now that only happens when the user specifies a maximum value. That means the interface can no longer be used to force truly width agnostic values.
> > This looks like a change of behaviour to me. Previously the command line flags would override the "sve" default but now that only happens when the user specifies a maximum value. That means the interface can no longer be used to force truly width agnostic values.
>
> I think the issue here is the default of 1 for min would always trigger `if (LangOpts.VScaleMin || LangOpts.VScaleMax)` overriding the SVE default. Perhaps the default can be removed from the driver option and handled here, i.e.
>
> ```
> if (LangOpts.VScaleMin || LangOpts.VScaleMax)
> return std::pair<unsigned, unsigned>(LangOpts.VScaleMin ? LangOpts.VScaleMin : 1,
> LangOpts.VScaleMax);
> ```
>
>
Is this enough? I'm not sure it'll work because `LangOpts.VScaleMin` defaults to 1 and thus you'll always end up passing the first check, unless the user specifically uses `-mvscale-min=0` which they cannot because that'll result in `diag::err_cc1_unbounded_vscale_min`.
Do we need to link the LangOpt defaults to the attribute defaults? I'm think that having the LangOpts default to zero is a good way to represent "value is unspecified" with regards to the `LangOpts.VScaleMin`.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D113294/new/
https://reviews.llvm.org/D113294
More information about the llvm-commits
mailing list