[tree-ssa] CFG EH improvements/cleanups #1

Jason Merrill jason@redhat.com
Sun Jun 15 04:00:00 GMT 2003


On Sat, 14 Jun 2003 14:53:32 -0600, law@redhat.com wrote:

>       case TRY_FINALLY_EXPR:
> +       /* Record this TRY_FINALLY_EXPR as needing further processing.  */
>         VARRAY_PUSH_TREE (try_finallys, last);
>   
> !       /* We used to try and optimize cases where the TRY block has no
> ! 	 executable code.  However that is unsafe in our container
> ! 	 based intermediate representation.  Consider what happens
> ! 	 if the out-of-ssa pass wants to insert an instruction on the
> ! 	 edge from the TRY_FINALLY_EXPR to the FINALLY block and there
> ! 	 are multiple predecessors for the FINALLY block.  There is
> ! 	 no safe place to do the insertion without special casing to
> ! 	 know the insertion can occur before the TRY_FINALLY_EXPR.  */

If the try block has no executable code, there cannot be multiple
predecessors for the finally block.

Jason



More information about the Gcc-patches mailing list