]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR tree-optimization/28850 (missed call -> jmp transformation; redundant unwind...
authorJan Hubicka <jh@suse.cz>
Sun, 29 Mar 2009 13:32:13 +0000 (15:32 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sun, 29 Mar 2009 13:32:13 +0000 (13:32 +0000)
commita8da523f8a442f95c34dd3687771589579a08918
tree1577a1a0b3cbaa114690527d99170c1034533481
parent98f358e55f3a003ab3ca4213ba59ce93c5cd9fc1
re PR tree-optimization/28850 (missed call -> jmp transformation; redundant unwind stuff with empty finally)

PR middle-end/28850
* tree-pass.h (pass_cleanup_eh): New function.
(remove_unreachable_regions): Break code handling RTL
to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
that can not be reached by runtime.
(can_be_reached_by_runtime): New function.
(label_to_region_map): New function.
(num_eh_regions): New function.
(rtl_remove_unreachable_regions): New function.
(convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
(remove_eh_region): New function.
* except.h: Include sbitmap and vecprim.
(remove_eh_region, remove_unreachable_regions, label_to_region_map,
num_eh_regions): Declare.
* passes.c (init_optimization_passes): Schedule cleanup_eh.
* Makefile.in (EXCEPT_H): New; replace all uses of except.h
by it.
* tree-eh.c (tree_remove_unreachable_handlers): New function.
(tree_empty_eh_handler_p): New function.
(cleanup_empty_eh): New function.
(cleanup_eh): New function.
(pass_cleanup_eh): New function.

From-SVN: r145233
gcc/ChangeLog
gcc/Makefile.in
gcc/except.c
gcc/except.h
gcc/passes.c
gcc/tree-eh.c
gcc/tree-pass.h