1 msg[tuples] Merged with trunk @135126
4 msgIRA performance testing on Fortran
14 msgbit_size_type - a data type?
1 msgAbout symbol and label
2 msg[Windows] Fixing fprintf errors breaking bootst...
3 msginline assembly question (memory side-effects)
3 msgHow do I add target specific tests?
2 msgDeprecation?!
1 msggcc-4.4-20080509 is now available
1 msgRFC: Optimize caller-saved register
5 msgHow to handle loop iterator variable?
7 msgDivision using FMAC, reciprocal estimates and N...
1 msgQuestions about attributes
2 msgssa_name issues
6 msgRFH: Building and testing gimple-tuples-branch
1 msggcc-4.3-20080508 is now available
4 msgHow to implement the instruction in the back end
1 msggcc-4.2-20080507 is now available
5 msgall-target-libstdc++-v3 broken again

Bad code generation on HPPA platform
\ Steve Ellcey (6 May 2008)
. \ Jeff Law (7 May 2008)
. . \ Steve Ellcey (7 May 2008)
. . . \ Peter Bergner (7 May 2008)
. . . . \ Steve Ellcey (7 May 2008)
. . . . . \ H.J. Lu (7 May 2008)
. . . . . . \ Steve Ellcey (7 May 2008)
. . . . . . . \ Peter Bergner (7 May 2008)
. . . . . . . . \ Steve Ellcey (7 May 2008)
. . . . . . . . . \ Peter Bergner (7 May 2008)
. . . \ Jeff Law (8 May 2008)
. . . . \ Steve Ellcey (8 May 2008)
. . . . . \ Jeff Law (8 May 2008)
. . . . . . \ Steve Ellcey (8 May 2008)
. . . . . . . \ Jeff Law (8 May 2008)
. . . . . . . . \ Andrew Pinski (8 May 2008)
. . . . . . . \ Peter Bergner (8 May 2008)
. . . . . . . . \ Jeff Law (8 May 2008)
. . . . . \ John David Anglin (8 May 2008)

Subject:Re: Bad code generation on HPPA platform
Group:Gcc
From:Jeff Law
Date:8 May 2008


Peter Bergner wrote:
> On Thu, 2008-05-08 at 11:38 -0700, Steve Ellcey wrote:
>> The psuedo for %r8 does have REG_POINTER set and the psuedo for %r19
>> does not. I first see REG_POINTER set for ivtmp___1536 (the psuedo for
>> %r8) in flow.c.138r.loop2_invariant. This seems interesting because
>> Peter's patch, that fixes this problem without undoing Andrews patch,
>> includes a change to loop-invariant.c, though that change should be
>> preserving REG_POINTER's during optimization not preventing them.
>
> Similar to hppa, power6 cares about knowing whether a pseudo is a pointer
OK. Reasonably simpler, though on the PA if you get it wrong, you get a
hard failure rather than just poor performance :(

> What I found, was that the loop invariant and
> GCSE code were creating some pseudos to copy expressions into, but was
> failing to copy the REG_POINTER/MEM_POINTER attribute along with it.
I recall. I was briefly worried that GCSE might have a problem similar
to the tail merging problem I mentioend briefly, but I just did a quick
audit and it looks clean (basically it doesn't take commutativity into
account when hashing values).

I can't offhand think of how LICM would run afoul muck things up in the
way we're seeing, but obviously something isn't working the way we
expect it to :-)

jeff




© 2004-2008 readlist.com