This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ICE in change_address at emit_rtl.c
- From: Per Bothner <per at bothner dot com>
- To: Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>
- Cc: gcc at gcc dot gnu dot org
- Date: Sun, 25 Nov 2001 14:49:47 -0800
- Subject: Re: ICE in change_address at emit_rtl.c
- References: <10111252231.AA28690@vlsi1.ultra.nyu.edu>
Richard Kenner wrote:
> I'm not sure what the problem is. My proposal is to use some kind of
> LET_EXPR, which takes a declaration and two expressions. It seems
> plausible to me that any place that creates a SAVE_EXPR could use a
> LET_EXPR instead.
>
>So how are you changing things? You're replacing SAVE_EXPR with LET_EXPR
>with similar semantics.
>
The big difference is that the temporary used by LET_EXPR (actually LET_EXPR
can be used to encode user-level declarations too) has a well-defined scope.
It is clear when the temporary register needs to be allocated (on
entrance to the
BODY expression) to be allocated, and it is clear when it can be freed
(on exit
from the BODY expression). Neither are true for SAVE_EXPR, which is much
less well defined.
--Per