This is the mail archive of the
mailing list for the GCC project.
Re: Bad code generation on HPPA platform
- From: Jeff Law <law at redhat dot com>
- To: sje at cup dot hp dot com
- Cc: andrew_pinski at playstation dot sony dot com, dave at hiauly1 dot hia dot nrc dot ca, gcc at gcc dot gnu dot org
- Date: Tue, 06 May 2008 20:55:42 -0600
- Subject: Re: Bad code generation on HPPA platform
- References: <200805062132.OAA23937@hpsje.cup.hp.com>
Steve Ellcey wrote:
I am investigating a bad code generation bug on the 64 bit HPPA platform
with GCC 4.3.0 and would like some help and/or ideas on how to analyze
and fix it. The failing test is the SPEC 2000 GCC benchmark (version
220.127.116.11) and I have been unable to create a smaller test case so far.
What I have found is that if I build GCC from version 127633 (after
applying the patch for PR middle-end/33029 so that the build will work)
I can build and run the SPEC GCC benchmark. If I update GCC to version
127634 then the benchmark will abort when it is run.
The difference between those versions is this patch:
2007-08-19 Andrew Pinski <email@example.com>
* cfgexpand.c (expand_one_register_var): Mark pointer
DECL_ARTIFICIAL as REG_POINTER also.
* stmt.c (expand_decl): Likewise.
In the PR report for 32940 there is a pointer to:
That patch fixed a bootstrap problem on HPPA and reverting it (which is
what the patch for PR 32940 seems to do) seems to be reintroducing the
problem that the earlier patch was intended to fix. While reverting
that patch didn't seem to cause bootstrap problems it does seem to cause
problems when building the older GCC version that is in SPEC2000. Any
advise on how to proceed from here?
I'm well versed with the problems in this area and I'd be very leery of
Andrew's patch. There are some thorny issues in this space and I'm
far from 100% sure that blindly propagating a pointer type into
REG_POINTER is always valid, particularly for compiler generated
Can you describe better what you're seeing in the 18.104.22.168 build that's