This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] expand_expr EXPAND_NORMAL modifer when recursing (PR middle-end/29250)
- From: Roger Sayle <roger at eyesopen dot com>
- To: David Edelsohn <dje at watson dot ibm dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 13 Oct 2006 12:13:09 -0600 (MDT)
- Subject: Re: [PATCH] expand_expr EXPAND_NORMAL modifer when recursing (PR middle-end/29250)
Hi David,
On Fri, 13 Oct 2006, David Edelsohn wrote:
> 2006-10-13 David Edelsohn <edelsohn@gnu.org>
> Ian Lance Taylor <ian@airs.com>
>
> PR middle-end/29250
> * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
> CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
> recursing.
This is OK for mainline. Thanks (and to Ian). I can't believe this is
not a regression, shogun 0.1.2 almost certainly compiled with an earlier
version of GCC on Linux/PPC. But if you could confirm that, I'd feel
easier with my approval (Ian seems convinced on IRC that this is safe).
Is there any chance I could also ask you to add the reduced testcase from
the bugzilla PR to the testsuite. This compiler ICE is easy to test for,
and prevents us regressing in the remote event some obscure platform
turns out to need the EXPAND_SUM.
I really have little clue how much this aspect of RTL expansion is still
necessary. Now that we no longer need to make machine addresses visible
to the RTL loop optimizers (R.I.P.), it might be reasonable to expect
combine (or instruction selection) to reconstitute machine addresses,
and allow RTL level GCSE and CSE to operate on the current subexpressions.
Unfortunately, answering that question would require too much effort
for my curiosity.
Thanks again for fixing this.
Roger
--