ICE in change_address at emit_rtl.c
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Thu Nov 15 17:44:00 GMT 2001
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.
I disagree. The scopes of both need to be exactly the same: the scope of
the underlying expression. It's not possible for fold to know that so it
would have to do the same thing with the new LET_EXPR as for the present
SAVE_EXPR. I don't see how this changes things at all.
In both cases we are allocating a temporary and we are guessing as to its
scope.
More information about the Gcc
mailing list