This is the mail archive of the gcc-patches@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: [PATCH] Run remove_unreachable_handlers before expansion if needed (PR tree-optimization/50682)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/23/11 13:42, Jakub Jelinek wrote:
> Hi!
> 
> As mentioned in the PR, if gimple_purge_dead_eh_edges is ever
> called after ehcleanup2 pass (or in its after todos as in the
> testcase below), nothing removes the unreachable EH regions and we
> crash either in cleanup_dead_labels_eh or, if we ignore those
> there, later on during emitting of exception info.
> 
> We could run remove_unreachable_handlers unconditionally again
> shortly before expansion, but that needs a walk of all stmts, so
> this patch chooses to do it only if it sees some landing pads got
> removed.
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for
> trunk?
> 
> 2011-11-23  Jakub Jelinek  <jakub@redhat.com>
> 
> PR tree-optimization/50682 * tree-eh.c
> (maybe_remove_unreachable_handlers): New function. * tree-flow.h
> (maybe_remove_unreachable_handlers): New prototype. *
> tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it.
> 
> * g++.dg/opt/pr50682.C: New test.
OK.
jeff
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJO0+VXAAoJEBRtltQi2kC7KHsH/3lnrTb35gC1Qomuqwjx5bxe
CigQq/U1li55183bUDgNlKVWg3T/EtZO+QFtsdcy+e6lNZD7RebuNfIzz9rO8AT2
ra8Gj9Lz9fmZflhO64qvK+ti6k6n3/3wkM7e7b3z4+hWZWbf0OT9YI5eU/rfy6c7
57ylnZU5xGV6tvA16v7VTPoUQ2u2Pkan9PgRG8E+YZo7xTz0oxHM9o6CZe7VAPf5
rxvAY1KSBS16RNvCxtaZfBxpf8BdgOIF2wW7hWwfoyjtSk8DItFRRuD262AX3Z4R
Ka83fO+ukTnz1UUTPPzxszX0ZDAsqzD0iD3sjzh9PQcEvgiriVJcWrwvavMVLfg=
=Cmlo
-----END PGP SIGNATURE-----


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