On Tue, Sep 18, 2012 at 08:04:06PM -0400, David Edelsohn wrote: > On Mon, Sep 17, 2012 at 3:51 PM, Michael Meissner > <meiss...@linux.vnet.ibm.com> wrote: > > This patch has support for all of the additonal cleanups I mentioned in the > > first patch that I hadn't gotten to. At this point, I am not planning any > > more > > enhancements to the patch, and I would like to check it in. > > > > On my 64-bit powerpc system, there are 36 options in the main ISA flags > > fields, > > 23 options in the miscellaneous flags fields, and 8 options in the debug > > flag > > fields. > > > > I believe it answers the problems Ian had. I changed all of the debugging > > fprintf's to use HOST_WIDE_INT_PRINT_HEX to print the numeric value of the > > flags fields, and I changed the #ifdef TARGET_<xxx> to #ifdef OPTION_<xxx>. > > > > It builds and bootstraps fine on my powerpc64 linux system and there were no > > regressions. It is ok to install? > > Mike, > > Thanks for working on this cleanup! > > Is it possible to split out some parts of the patch to make it easier > to review and verify? Such as the debug parts? It looks like some > parts are independent.
Well they aren't that independent, since you need to change a few flags, and then catch all of the references, which often times hits the same files. I can do it as several waves, perhaps doing all of the flags in isa flags first, then misc. However, the isa flags make up a lot of the changes, since those are likely the things that use MASK_* etc. So, I may first do just the stuff in target flags first. Then on the second wave, add SPE, PAIRED, etc. back into isa flags and clean up builtins. Then do the misc flags and finally the debug flags. > Why do you use HOST_WIDE_INT instead of an explicit 64 bit type for the flags? Because the opt*.awk functions only support flag fields being HOST_WIDE_INT or plain int. They don't have support for Mask(..) and InverseMask(...) being any other type. Also, I imagine it would break using a C90 compiler as the stage1 compiler, since long long is not guaranteed to exist, and long might only be 32-bit. > I am confident that it bootstraps and passes regression tests. But > how did you verify that it uses the correct defaults after the patch? I did tests with a parallel compiler of the same svn id that does not have the patches installed to make sure the asm file for various options is the same. Iain Sandoe and Andreas Tobler tested the first version of the patches on their systems. Iain found some issues on Darwin9 that I fixed in the second version of the patches. Andreas had no issues on freebsd. -- Michael Meissner, IBM 5 Technology Place Drive, M/S 2757, Westford, MA 01886-3141, USA meiss...@linux.vnet.ibm.com fax +1 (978) 399-6899