This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH], Fix PR 80098, Add better checking for disabling features
On Wed, Apr 12, 2017 at 04:30:51PM -0400, Michael Meissner wrote:
> > Or we could just remove -mmodulo etc. What good do they do? They make
> > testing infeasible: an exponential number of combinations to test.
>
> We can't remove -mmodulo, -mpopcntd, -mcmpb, -mpopcntb as these are the basic
> markers for -mcpu=power9/power7/power6/power5, and lots of other things depend
> on these options.
Yes, and that's exactly backward.
The main point though is that we allow fine-grained selection of trivial
ISA additions, which results in an exponential number of possibilities.
But whether some machine insn is generated also matters for *other*
patterns (and elsewhere even), so we really do need to test all possible
combinations; but that cannot be done. And then bug reports come in,
and we spend more time making patches to the option maze than we spend
on anything else :-/
> I'm not sure we have a marker for power8 that isn't vector related.
I can't think of any. Pretty much anything in Power8 is vector.
> 2017-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
>
> PR target/80098
> * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
> masks of options that should be turned off if the VSX vector
> options are turned off.
> (OTHER_P8_VECTOR_MASKS): Likewise.
> (OTHER_VSX_VECTOR_MASKS): Likewise.
> * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
> rs6000_disable_incompatible_switches to validate no type switches
> like -mvsx.
> (rs6000_incompatible_switch): New function to disallow turning on
> other vector options if -mno-vsx, -mno-power8-vector, or
> -mno-power9-vector are specified.
>
> [gcc/testsuite]
> 2017-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
>
> PR target/80098
> * gcc.target/powerpc/pr80098-1.c: New test.
> * gcc.target/powerpc/pr80098-2.c: Likewise.
> * gcc.target/powerpc/pr80098-3.c: Likewise.
> * gcc.target/powerpc/pr80098-4.c: Likewise.
> +/* Handle explicit -mno-vsx, -mno-power8-vector, and -mno-power9-vector options
> + and turn off all setting other options by default if those options that
> + depend on the flags that are turned off. */
Could you this a bit clearer please?
Okay for trunk. Thanks,
Segher