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  <meiss...@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  <meiss...@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

Reply via email to