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 to canonize small wide-ints.


On 09/24/2013 09:51 AM, Richard Biener wrote:
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.
it only sort of does. anyway it seems to be mostly consistent. As i said on irc, i am pleasantly surprised at the lack of damage to the ports by assuming that the values are always canonized. Two large public ports and my private port required no changes.


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