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