On Tue, 24 Sep 2013, Kenneth Zadeck wrote: > On 09/24/2013 09:39 AM, Richard Biener wrote: > > On Tue, 17 Sep 2013, Kenneth Zadeck wrote: > > > > > Richi, > > > > > > This patch canonizes the bits above the precision for wide ints with types > > > or > > > modes that are not a perfect multiple of HOST_BITS_PER_WIDE_INT. > > > > > > I expect that most of the changes in rtl.h will go away. in particular, > > > when > > > we decide that we can depend on richard's patch to clean up rtl constants, > > > then the only thing that will be left will be the addition of the > > > TARGET_SUPPORTS_WIDE_INT test. > > > > > > I do believe that there is one more conserved force in the universe than > > > what > > > physicist's generally consider: it is uglyness. There is a lot of truth > > > and > > > beauty in the patch but in truth there is a lot of places where the > > > uglyness > > > is just moved someplace else. > > > > > > in the pushing the ugly around dept, trees and wide-ints are not canonized > > > the > > > same way. I spent several days going down the road where it tried to > > > have > > > them be the same, but it got very ugly having 32 bit unsigned int csts > > > have > > > the upper 32 bits set. So now wide_int_to_tree and the wide-int > > > constructors > > > from tree-cst are now more complex. > > > > > > i think that i am in favor of this patch, especially in conjunction with > > > richards cleanup, but only mildly. > > > > > > There is also some cleanup where richard wanted the long lines addressed. > > > > > > Ok to commit to the wide-int branch? > > Looks good to me. > > > > I'll be doing a separate review of the to/from tree parts when I > > find time to do that, but that's unrelated to this patch. > > > > Thanks, > > Richard. > as i said on irc, after i check in a cleaned up version of this (for ppc) i > will change the rep for unsiged tree-csts so that they have an extra block of > zeros if their top bit is set. this will clean that up somewhat.
Yes, this will give wide-ints a sign (as I originally proposed). For RTL constants we're going to "lie" and make all constants negative that have their MSB set. Richard.