This is the mail archive of the gcc@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: ICE in change_address at emit_rtl.c


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




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