[Bug middle-end/92046] Command line options (that are per-functions) are affecting --params which are global.
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Oct 10 12:18:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92046
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Created attachment 47014
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47014&action=edit
prototype
Something like this. Note the behavior changes if the user manually specifies
any of the parameters. We'd need to add a maybe_get_and_adjust_param_value
that gets the unaltered value if the user specified it. But for that we'd
have to hard pass-in global_options and global_options_set (or hardcode it
in params.c). But then the behavior between -O2 and -O2 --param
max-stores-to-sink=2 would be different (even though that's the documented
default of the
--param) - which is btw the current behavior. We could check against the
default value but that means the behavior is different if targets change the
param and the behavior differs between --param X=default and X=default-1
(drastically in the case of dropping to zero).
I think for the vectorizer the only problematic case is
PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS, the others are documented to be
turned off. Likewise max-stores-to-sink. So I made
vect-maxversion-for-alias-checks adjusted relatively with
-fvect-cost-model=cheap so a global changed
--param still has an effect.
More information about the Gcc-bugs
mailing list