More MUST_NOT_THROW region cleanups

Diego Novillo dnovillo@google.com
Mon Mar 30 20:15:00 GMT 2009


On Mon, Mar 30, 2009 at 12:57, Jan Hubicka <hubicka@ucw.cz> wrote:

> The patch eliminates about half of the regions on tramp3d saving

Nice.

> +  /* MUST_NOT_THROW regions without local handler are all the same; they
> +     trigger terminate call in runtime.
> +     MUST_NOT_THROW handled locally can differ in debug info associated
> +     to std::terminate () call or if one is comming from Java and other

s/comming/coming/

> +     from C++ whether they call terminate or abort.
> +
> +     We merge all runtime handler MUST_NOT_THROW region into single

I can't parse this.

> +     Merging of local receivers can not be done without redirecting CFG
> +     and is job for crossjumping that can decide whether cleanup really
> +     is the same.  */

Nor this.

> +
> +  if (local_must_not_throw)
> +    first_must_not_throw = local_must_not_throw;
> +
> +  for (i = 0; VEC_iterate (eh_region, must_not_throws, i, r); i++)
> +    {
> +      if (!r->label && !r->tree_label && r != first_must_not_throw)
> +       {
> +         if (dump_file)
> +           fprintf (dump_file, "Replacing MUST_NOT_THROW region %i by %i\n",

s/by/with/

OK otherwise.


Diego.



More information about the Gcc-patches mailing list