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