Hi Mike, On Thu, May 05, 2016 at 02:05:19PM -0400, Michael Meissner wrote: > > > With this patch, I enable -mlra if the user did not specify either -mlra > > > or > > > -mno-lra on the command line, and -mcpu=power9 or -mpower9-dform-vector > > > were > > > used. I also enabled -mvsx-timode if LRA was used, which also is a RELOAD > > > issue, that works with LRA. > > > > I don't like enabling LRA if the user didn't ask for it; it is a bit too > > surprising. What do you do if there is -mno-lra explicitly? You can just > > do the same if no-lra is implicit? > > Ok.
You didn't however change this afaics? > > > --- gcc/config/rs6000/rs6000.opt > > > (.../svn+ssh://meiss...@gcc.gnu.org/svn/gcc/trunk/gcc/config/rs6000) > > > (revision 235831) > > > +++ gcc/config/rs6000/rs6000.opt (.../gcc/config/rs6000) (working copy) > > > @@ -470,8 +470,8 @@ Target RejectNegative Joined UInteger Va > > > -mlong-double-<n> Specify size of long double (64 or 128 bits). > > > > > > mlra > > > -Target Report Var(rs6000_lra_flag) Init(0) Save > > > -Use LRA instead of reload. > > > +Target Undocumented Mask(LRA) Var(rs6000_isa_flags) > > > +Use the LRA register allocator instead of the reload register allocator. > > > > It wasn't "undocumented" before? Why the change to a mask bit btw? > > It was always meant to be undocumented, but I changed to be similar to > before. I am trying to change all of the random switches that set a word to be > an option mask, so I made that part of the change in these next patches. I agree it should be undocumented because hopefully one day all reload will not exist at all anymore. OTOH, all other archs with an -mlra switch do not have it hidden, so we might as well follow suit there. > I did remove setting it for -mcpu=power9. It doesn't look like it? Please check. > @@ -94,6 +95,7 @@ > | OPTION_MASK_FPRND \ > | OPTION_MASK_HTM \ > | OPTION_MASK_ISEL \ > + | OPTION_MASK_LRA \ > | OPTION_MASK_MFCRF \ > | OPTION_MASK_MFPGPR \ > | OPTION_MASK_MODULO \ > > > +mpower9-dform-scalar > > > +Target Report Mask(P9_DFORM_SCALAR) Var(rs6000_isa_flags) > > > +Use/do not use scalar register+offset memory instructions added in ISA > > > 3.0. > > > + > > > +mpower9-dform-vector > > > +Target Report Mask(P9_DFORM_VECTOR) Var(rs6000_isa_flags) > > > +Use/do not use vector register+offset memory instructions added in ISA > > > 3.0. > > > + > > > mpower9-dform > > > -Target Undocumented Mask(P9_DFORM) Var(rs6000_isa_flags) > > > -Use/do not use vector and scalar instructions added in ISA 3.0. > > > +Target Report Var(TARGET_P9_DFORM_BOTH) Init(-1) Save > > > +Use/do not use register+offset memory instructions added in ISA 3.0. > > > > These should probably all be undocumented, though (they're not something > > users should use). > > I will make -mpower9-dform public (which I thought it was, but evidently I > missed adding the documentation for GCC 6), but I will make the -scalar and > -vector forms private. You think this is something users are expected to twiddle? Okay then. > [gcc] > 2016-05-05 Michael Meissner <meiss...@linux.vnet.ibm.com> > > * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use > -mpower9-dform-scalar instead of -mpower9-dform. Add note not to > include -mpower9-dform-vector until we switch over to LRA. Thanks for the better changelog, much appreciated. Two spaces after a full stop though. Segher