+++ /dev/null
---- gcc-4_1-branch/gcc/Makefile.in.orig 2006-02-16 08:20:14.000000000 +0000
-+++ gcc-4_1-branch/gcc/Makefile.in 2006-02-16 08:24:15.000000000 +0000
-@@ -1842,7 +1842,7 @@
- $(DIAGNOSTIC_H) errors.h function.h $(TIMEVAR_H) $(TM_H) coretypes.h \
- $(TREE_DUMP_H) except.h langhooks.h $(CFGLOOP_H) tree-pass.h \
- $(CFGLAYOUT_H) $(BASIC_BLOCK_H) hard-reg-set.h $(HASHTAB_H) toplev.h \
-- tree-ssa-propagate.h
-+ tree-ssa-propagate.h $(SCEV_H)
- tree-tailcall.o : tree-tailcall.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
- $(RTL_H) $(TREE_H) $(TM_P_H) function.h $(TM_H) coretypes.h \
- $(TREE_DUMP_H) $(DIAGNOSTIC_H) except.h tree-pass.h $(FLAGS_H) langhooks.h \
---- gcc-4_1-branch/gcc/tree-cfg.c.orig 2006-02-10 08:46:43.000000000 +0000
-+++ gcc-4_1-branch/gcc/tree-cfg.c 2006-02-16 08:23:29.000000000 +0000
-@@ -1274,10 +1274,7 @@
- if (TREE_CODE (rhs) == ADDR_EXPR)
- recompute_tree_invarant_for_addr_expr (rhs);
-
-- /* If the statement could throw and now cannot, we need to prune cfg. */
-- if (maybe_clean_or_replace_eh_stmt (stmt, stmt))
-- tree_purge_dead_eh_edges (bb_for_stmt (stmt));
--
-+ maybe_clean_or_replace_eh_stmt (stmt, stmt);
- mark_new_vars_to_rename (stmt);
- }
-
---- gcc-4_1-branch/gcc/tree-cfgcleanup.c.orig 2006-02-16 08:23:15.000000000 +0000
-+++ gcc-4_1-branch/gcc/tree-cfgcleanup.c 2006-02-16 08:24:15.000000000 +0000
-@@ -45,6 +45,7 @@
- #include "cfglayout.h"
- #include "hashtab.h"
- #include "tree-ssa-propagate.h"
-+#include "tree-scalar-evolution.h"
-
- /* Remove any fallthru edge from EV. Return true if an edge was removed. */
-
-@@ -157,19 +158,24 @@
- {
- bsi = bsi_last (bb);
-
-+ /* If the last statement of the block could throw and now cannot,
-+ we need to prune cfg. */
-+ tree_purge_dead_eh_edges (bb);
-+
- if (bsi_end_p (bsi))
- continue;
-
- stmt = bsi_stmt (bsi);
-+
- if (TREE_CODE (stmt) == COND_EXPR
- || TREE_CODE (stmt) == SWITCH_EXPR)
- retval |= cleanup_control_expr_graph (bb, bsi);
--
- /* If we had a computed goto which has a compile-time determinable
- destination, then we can eliminate the goto. */
-- if (TREE_CODE (stmt) == GOTO_EXPR
-- && TREE_CODE (GOTO_DESTINATION (stmt)) == ADDR_EXPR
-- && TREE_CODE (TREE_OPERAND (GOTO_DESTINATION (stmt), 0)) == LABEL_DECL)
-+ else if (TREE_CODE (stmt) == GOTO_EXPR
-+ && TREE_CODE (GOTO_DESTINATION (stmt)) == ADDR_EXPR
-+ && (TREE_CODE (TREE_OPERAND (GOTO_DESTINATION (stmt), 0))
-+ == LABEL_DECL))
- {
- edge e;
- tree label;
-@@ -213,7 +219,7 @@
-
- /* Check for indirect calls that have been turned into
- noreturn calls. */
-- if (noreturn_call_p (stmt) && remove_fallthru_edge (bb->succs))
-+ else if (noreturn_call_p (stmt) && remove_fallthru_edge (bb->succs))
- {
- free_dominance_info (CDI_DOMINATORS);
- retval = true;
-@@ -570,23 +576,26 @@
- void
- cleanup_tree_cfg_loop (void)
- {
-- bitmap changed_bbs = BITMAP_ALLOC (NULL);
--
-- cleanup_tree_cfg ();
-+ bool changed = cleanup_tree_cfg ();
-
-- fix_loop_structure (current_loops, changed_bbs);
-- calculate_dominance_info (CDI_DOMINATORS);
-+ if (changed)
-+ {
-+ bitmap changed_bbs = BITMAP_ALLOC (NULL);
-+ fix_loop_structure (current_loops, changed_bbs);
-+ calculate_dominance_info (CDI_DOMINATORS);
-
-- /* This usually does nothing. But sometimes parts of cfg that originally
-- were inside a loop get out of it due to edge removal (since they
-- become unreachable by back edges from latch). */
-- rewrite_into_loop_closed_ssa (changed_bbs, TODO_update_ssa);
-+ /* This usually does nothing. But sometimes parts of cfg that originally
-+ were inside a loop get out of it due to edge removal (since they
-+ become unreachable by back edges from latch). */
-+ rewrite_into_loop_closed_ssa (changed_bbs, TODO_update_ssa);
-
-- BITMAP_FREE (changed_bbs);
-+ BITMAP_FREE (changed_bbs);
-
- #ifdef ENABLE_CHECKING
-- verify_loop_structure (current_loops);
-+ verify_loop_structure (current_loops);
- #endif
-+ scev_reset ();
-+ }
- }
-
- /* Merge the PHI nodes at BB into those at BB's sole successor. */
---- gcc-4_1-branch/gcc/tree-ssa-loop.c.orig 2005-11-30 11:16:27.000000000 +0000
-+++ gcc-4_1-branch/gcc/tree-ssa-loop.c 2006-02-16 08:23:29.000000000 +0000
-@@ -303,7 +303,8 @@
- 0, /* properties_provided */
- 0, /* properties_destroyed */
- 0, /* todo_flags_start */
-- TODO_dump_func | TODO_update_ssa_only_virtuals,
-+ TODO_dump_func | TODO_cleanup_cfg
-+ | TODO_update_ssa_only_virtuals,
- /* todo_flags_finish */
- 0 /* letter */
- };