This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]