]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Sep 2007 10:49:01 +0000 (10:49 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Sep 2007 10:49:01 +0000 (10:49 +0000)
verifier.
* fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
* see.c (pass_see): Likewise.
* tracer.c (pass_tracer): Likewise.
* postreload-gcse.c (pass_gcse2): Likewise.
* postreload.c (pass_postreload_cse): Likewise.
* mode-switching.c (pass_mode_switching): Likewise.
* modulo-sched.c (pass_sms): Likewise.
* cse.c (cse_insn): Likewise.
* web.c (pass_web): Likweise.
* combine-stack-adj.c (pass_stack_adjustments): Likewise.
* dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
* loop-init.c (pass_rtl_loop_init): Likewise.
(pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
* global.c (pass_global_alloc): Likewise.
* ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
pass_if_after_reload): Likewise.
* reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
* dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
* regmove.c (pass_regmove): Likewise.
* function.c (pass_thread_prologugues_epilogues): Likewise.
* gcse.c (pass_gcse): Likewise.
* rtl-factoring.c (pass_rtl_seqabstr): Likewise.
* lower-subreg.c (pass_lower_subreg2): Likewise.
* bt-load.c (pass_branch_target_load): Likewise.
* emit-rtl.c (pass_unshare_all_rtl): Likewise.
* cfgcleanup.c (pass_jump, pass_jump2): Likewise.
* combine.c (pass_combine): Likewise.
* bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
(pass_partition_blocks): Likewise.
* var-tracking.c (pass_variable_track): Likewise.
* reg-stack.c (pass_stack_regs_run): Likewise.
* sched-rgn.c (pass_sched, pass_sched2): Likewise.
* passes.c (pass_postreload): Likewise.
(execute_function_todo): Add TODO_verify_rtl_sharing handling code.
* tree-pass.h (TODO_verify_rtl_sharing): New.
(TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
TODO_set_props, TODO_df_finish, TODO_df_verify,
TODO_mark_first_instance, TODO_rebuild_alias): Renumber.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128126 138bc75d-0d04-0410-961f-82ee72b054a4

33 files changed:
gcc/ChangeLog
gcc/bb-reorder.c
gcc/bt-load.c
gcc/cfgcleanup.c
gcc/combine-stack-adj.c
gcc/combine.c
gcc/cse.c
gcc/dce.c
gcc/dse.c
gcc/emit-rtl.c
gcc/function.c
gcc/fwprop.c
gcc/gcse.c
gcc/global.c
gcc/ifcvt.c
gcc/loop-init.c
gcc/lower-subreg.c
gcc/mode-switching.c
gcc/modulo-sched.c
gcc/passes.c
gcc/postreload-gcse.c
gcc/postreload.c
gcc/recog.c
gcc/reg-stack.c
gcc/regmove.c
gcc/regrename.c
gcc/rtl-factoring.c
gcc/sched-rgn.c
gcc/see.c
gcc/tracer.c
gcc/tree-pass.h
gcc/var-tracking.c
gcc/web.c

index ab495fee056157b14dee88250cf80d0028663fd7..7ff57f4bfedb133ad448e0db048b097d00be5097 100644 (file)
@@ -1,3 +1,48 @@
+2007-09-05  Jan Hubicka  <jh@suse.cz>
+
+       * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
+       verifier.
+       * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
+       * see.c (pass_see): Likewise.
+       * tracer.c (pass_tracer): Likewise.
+       * postreload-gcse.c (pass_gcse2): Likewise.
+       * postreload.c (pass_postreload_cse): Likewise.
+       * mode-switching.c (pass_mode_switching): Likewise.
+       * modulo-sched.c (pass_sms): Likewise.
+       * cse.c (cse_insn): Likewise.
+       * web.c (pass_web): Likweise.
+       * combine-stack-adj.c (pass_stack_adjustments): Likewise.
+       * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
+       * loop-init.c (pass_rtl_loop_init): Likewise.
+       (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
+       pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
+       * global.c (pass_global_alloc): Likewise.
+       * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
+       pass_if_after_reload): Likewise.
+       * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
+       * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
+       * regmove.c (pass_regmove): Likewise.
+       * function.c (pass_thread_prologugues_epilogues): Likewise.
+       * gcse.c (pass_gcse): Likewise.
+       * rtl-factoring.c (pass_rtl_seqabstr): Likewise.
+       * lower-subreg.c (pass_lower_subreg2): Likewise.
+       * bt-load.c (pass_branch_target_load): Likewise.
+       * emit-rtl.c (pass_unshare_all_rtl): Likewise.
+       * cfgcleanup.c (pass_jump, pass_jump2): Likewise.
+       * combine.c (pass_combine): Likewise.
+       * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
+       (pass_partition_blocks): Likewise.
+       * var-tracking.c (pass_variable_track): Likewise.
+       * reg-stack.c (pass_stack_regs_run): Likewise.
+       * sched-rgn.c (pass_sched, pass_sched2): Likewise.
+       * passes.c (pass_postreload): Likewise.
+       (execute_function_todo): Add TODO_verify_rtl_sharing handling code.
+       * tree-pass.h (TODO_verify_rtl_sharing): New.
+       (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
+       TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
+       TODO_set_props, TODO_df_finish, TODO_df_verify,
+       TODO_mark_first_instance, TODO_rebuild_alias): Renumber.
+
 2007-09-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p,
index 9bf4086f5ae976faa09d8ae4f424c7056deb676b..8f20f87ce097e8fb4d3ccde458cb039ed4f23b57 100644 (file)
@@ -2084,7 +2084,7 @@ struct tree_opt_pass pass_duplicate_computed_gotos =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */
   0                                     /* letter */
 };
 
@@ -2234,7 +2234,7 @@ struct tree_opt_pass pass_reorder_blocks =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */
   'B'                                   /* letter */
 };
 
@@ -2272,7 +2272,7 @@ struct tree_opt_pass pass_partition_blocks =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */
   0                                     /* letter */
 };
 
index bf9214b1ae4deb27d6b585a0d770dae86ebe14d4..c30f2c3342e75edc5eabe49eba1625a8e1d8bc72 100644 (file)
@@ -1519,6 +1519,7 @@ struct tree_opt_pass pass_branch_target_load_optimize1 =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_dump_func |
+  TODO_verify_rtl_sharing |
   TODO_ggc_collect,                     /* todo_flags_finish */
   'd'                                   /* letter */
 };
index 1f9304d43ba75835e13716b03a3abe9c7237ebfb..5086784cd4c4d01f90616146a6770a055cec923e 100644 (file)
@@ -2281,7 +2281,6 @@ struct tree_opt_pass pass_jump =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   TODO_ggc_collect,                     /* todo_flags_start */
-  TODO_dump_func |
   TODO_verify_flow,                     /* todo_flags_finish */
   'i'                                   /* letter */
 };
@@ -2312,7 +2311,7 @@ struct tree_opt_pass pass_jump2 =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   TODO_ggc_collect,                     /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */
   'j'                                   /* letter */
 };
 
index fd6fd27c0c66621cd54b62dfcb420df4ece085e6..37942bc45192edfbc1be38b8f975bbba477efdfb 100644 (file)
@@ -485,7 +485,7 @@ struct tree_opt_pass pass_stack_adjustments =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func |
   TODO_ggc_collect,                     /* todo_flags_finish */
   0                                     /* letter */
index c8ed4402f9317029cda86639a63461dd69b9ffc7..133dfbe5433ef73532920e4c8cb338cb1d4dada0 100644 (file)
@@ -13001,7 +13001,7 @@ struct tree_opt_pass pass_combine =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_dump_func |
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_ggc_collect,                     /* todo_flags_finish */
   'c'                                   /* letter */
 };
index c2b4d182bd0c324c2ea506ec85ebb59ba43c7099..fc4f895c8b0c12a4b7abd0088699a028c70423f5 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -4786,14 +4786,14 @@ cse_insn (rtx insn, rtx libcall_insn)
                                  src_related_cost, src_related_regcost) <= 0
                   && preferable (src_eqv_cost, src_eqv_regcost,
                                  src_elt_cost, src_elt_regcost) <= 0)
-           trial = copy_rtx (src_eqv_here), src_eqv_cost = MAX_COST;
+           trial = src_eqv_here, src_eqv_cost = MAX_COST;
          else if (src_related
                   && preferable (src_related_cost, src_related_regcost,
                                  src_elt_cost, src_elt_regcost) <= 0)
-           trial = copy_rtx (src_related), src_related_cost = MAX_COST;
+           trial = src_related, src_related_cost = MAX_COST;
          else
            {
-             trial = copy_rtx (elt->exp);
+             trial = elt->exp;
              elt = elt->next_same_value;
              src_elt_cost = MAX_COST;
            }
@@ -7024,7 +7024,7 @@ struct tree_opt_pass pass_cse =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func |
   TODO_ggc_collect |
   TODO_verify_flow,                     /* todo_flags_finish */
@@ -7082,7 +7082,7 @@ struct tree_opt_pass pass_cse2 =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func |
   TODO_ggc_collect |
   TODO_verify_flow,                     /* todo_flags_finish */
index c5af55ecc12ea8fd01b5827f26d8fa21b3550032..dec86692bf61e921f49227015551ba6d78cc6203 100644 (file)
--- a/gcc/dce.c
+++ b/gcc/dce.c
@@ -498,7 +498,7 @@ struct tree_opt_pass pass_ud_rtl_dce =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_dump_func |
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_ggc_collect,                     /* todo_flags_finish */
   'w'                                   /* letter */
 };
@@ -816,7 +816,7 @@ struct tree_opt_pass pass_fast_rtl_dce =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_dump_func |
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_ggc_collect,                     /* todo_flags_finish */
   'w'                                   /* letter */
 };
index f8859f6c91d10b13be0182292a771f3c60960e62..2226ae14dd245f80336d6f7d9a5c87ac63c31a44 100644 (file)
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -3082,7 +3082,7 @@ struct tree_opt_pass pass_rtl_dse1 =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_dump_func |
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_ggc_collect,                     /* todo_flags_finish */
   'w'                                   /* letter */
 };
@@ -3101,7 +3101,7 @@ struct tree_opt_pass pass_rtl_dse2 =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_dump_func |
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_ggc_collect,                     /* todo_flags_finish */
   'w'                                   /* letter */
 };
index cf6b2f3ccd7be8576f1029c101842ee9a1aa49c3..b3f21013a0bc2d71a5d98f7b2ce094d4fe33a63c 100644 (file)
@@ -2258,7 +2258,7 @@ struct tree_opt_pass pass_unshare_all_rtl =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */
   0                                     /* letter */
 };
 
index ec7c2e36f717f02ce4b9c02c1ce5bc741bb7f26e..f4fc6a3ced693557f87b7321e78a2c956bf1738a 100644 (file)
@@ -5513,7 +5513,7 @@ struct tree_opt_pass pass_thread_prologue_and_epilogue =
   TODO_verify_flow,                     /* todo_flags_start */
   TODO_dump_func |
   TODO_df_verify |
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_ggc_collect,                     /* todo_flags_finish */
   'w'                                   /* letter */
 };
index 859fba5837e09c55947042a3083c641954944bc2..ff3123fe9e38dcd4cc42c81381ad6dd1c6c3205c 100644 (file)
@@ -999,7 +999,7 @@ struct tree_opt_pass pass_rtl_fwprop =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func,                       /* todo_flags_finish */
   0                                     /* letter */
 };
@@ -1041,7 +1041,7 @@ struct tree_opt_pass pass_rtl_fwprop_addr =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func,                       /* todo_flags_finish */
   0                                     /* letter */
 };
index af10db685301f107337262ec9e33856bae743748..b6b7c5e410cbafc69f05fb75ebdb46a6e86f8c9e 100644 (file)
@@ -6746,7 +6746,7 @@ struct tree_opt_pass pass_gcse =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func |
   TODO_verify_flow | TODO_ggc_collect,  /* todo_flags_finish */
   'G'                                   /* letter */
index c346e6ad5f2bab4b7d4f2fffdc06fb3b1934a548..b74629381deea9fe7a33719d533ca92b9498a09f 100644 (file)
@@ -2108,8 +2108,8 @@ struct tree_opt_pass pass_global_alloc =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func |
-  TODO_ggc_collect,                     /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing
+  | TODO_ggc_collect,                   /* todo_flags_finish */
   'g'                                   /* letter */
 };
 
index 644a5e1c6ed47af3ecc2f216821375a8bb49fe00..7810d7e9616846f5af231c15d321faaeec7aa3bf 100644 (file)
@@ -4088,7 +4088,7 @@ struct tree_opt_pass pass_rtl_ifcvt =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func,                       /* todo_flags_finish */
   'C'                                   /* letter */
 };
@@ -4122,7 +4122,7 @@ struct tree_opt_pass pass_if_after_combine =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func |
   TODO_ggc_collect,                     /* todo_flags_finish */
   'C'                                   /* letter */
@@ -4156,7 +4156,7 @@ struct tree_opt_pass pass_if_after_reload =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func |
   TODO_ggc_collect,                     /* todo_flags_finish */
   'E'                                   /* letter */
index 79d9056f2b3662e6f8e6da92052e50b5ee7b6bfb..57f9768b37722f69b5ebc1a6e553f228947c069b 100644 (file)
@@ -185,7 +185,7 @@ struct tree_opt_pass pass_rtl_loop_init =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */
   'L'                                   /* letter */
 };
 
@@ -218,7 +218,7 @@ struct tree_opt_pass pass_rtl_loop_done =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */
   'L'                                   /* letter */
 };
 
@@ -252,7 +252,7 @@ struct tree_opt_pass pass_rtl_move_loop_invariants =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */ 
   TODO_df_verify |
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func,                       /* todo_flags_finish */
   'L'                                   /* letter */
 };
@@ -286,7 +286,7 @@ struct tree_opt_pass pass_rtl_unswitch =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */
   'L'                                   /* letter */
 };
 
@@ -332,7 +332,7 @@ struct tree_opt_pass pass_rtl_unroll_and_peel_loops =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */
   'L'                                   /* letter */
 };
 
@@ -371,7 +371,7 @@ struct tree_opt_pass pass_rtl_doloop =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */
   'L'                                   /* letter */
 };
 
index 696ec61e58d5203a0e2946c37e26ba833dff1b2d..b8e2eb658424b33fcd4f8716d4f63322fe7faa45 100644 (file)
@@ -1457,7 +1457,7 @@ struct tree_opt_pass pass_lower_subreg2 =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func |
   TODO_ggc_collect |
   TODO_verify_flow,                     /* todo_flags_finish */
index dc05208d3cdd98f7ff78ddd95bcb098dcecb70d7..5f4f95fa8995eaae531d30de760b8a2c4699dd34 100644 (file)
@@ -769,7 +769,7 @@ struct tree_opt_pass pass_mode_switching =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func,                       /* todo_flags_finish */
   0                                     /* letter */
 };
index bb940a72a2bb6565e48379f980401d7fe7423fc4..37c92048b41f285b9d820e102f7df8cb267c12f0 100644 (file)
@@ -2653,7 +2653,7 @@ struct tree_opt_pass pass_sms =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   TODO_dump_func,                       /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func |
   TODO_ggc_collect,                     /* todo_flags_finish */
   'm'                                   /* letter */
index e2f0676e192e0b8aef70f3fb69c8c23ea6f2a9a9..db6128e9b8690ad1efa1b9003863d742974811be 100644 (file)
@@ -320,7 +320,7 @@ struct tree_opt_pass pass_postreload =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_ggc_collect,                     /* todo_flags_finish */
+  TODO_ggc_collect | TODO_verify_rtl_sharing, /* todo_flags_finish */
   0                                    /* letter */
 };
 
@@ -959,6 +959,8 @@ execute_function_todo (void *data)
     verify_stmts ();
   if (flags & TODO_verify_loops)
     verify_loop_closed_ssa ();
+  if (flags & TODO_verify_rtl_sharing)
+    verify_rtl_sharing ();
 #endif
 
   cfun->last_verified = flags & TODO_verify_all;
index 3cbd7ebae0d0921b02c4771180672be3c093d87a..5f3192f083d02195eab75d6fbd679be7b87f41ae 100644 (file)
@@ -1322,8 +1322,8 @@ struct tree_opt_pass pass_gcse2 =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func |
-  TODO_verify_flow | TODO_ggc_collect,  /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing
+  | TODO_verify_flow | TODO_ggc_collect,/* todo_flags_finish */
   'J'                                   /* letter */
 };
 
index ff2356a76fbb95862507cf1bd7cca95e2da19484..674160b095461efd8b28a06915bab5f70dbea9f3 100644 (file)
@@ -1598,7 +1598,7 @@ struct tree_opt_pass pass_postreload_cse =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func,                       /* todo_flags_finish */
   'o'                                   /* letter */
 };
index 7ee2f97d3fe5993ee03947baa30c9f2671cb12e3..6a9ae4510c0d6f47472f2a07f226a9fbc3224b49 100644 (file)
@@ -3332,7 +3332,7 @@ struct tree_opt_pass pass_peephole2 =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func,                       /* todo_flags_finish */
   'z'                                   /* letter */
 };
@@ -3493,7 +3493,7 @@ struct tree_opt_pass pass_split_for_shorten_branches =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */
   0                                     /* letter */
 };
 
index 1fbd322aaf43683b1b2987a748fd0b90be001549..f5d263fbff29c8b01cc655bfdbe62c227be71dd9 100644 (file)
@@ -3242,7 +3242,7 @@ struct tree_opt_pass pass_stack_regs_run =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func |
   TODO_ggc_collect,                     /* todo_flags_finish */
   'k'                                   /* letter */
index 5cdd658a505cef0793fd4315c0cd613885053049..4cb083cbd48d7e935a5d8ab94c21eb848ceece7d 100644 (file)
@@ -2121,7 +2121,7 @@ struct tree_opt_pass pass_regmove =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func |
   TODO_ggc_collect,                     /* todo_flags_finish */
   'N'                                   /* letter */
index 5ff3062503ed7b2755197f91625885271be0de99..a25319e2339bf7be437b57301ed2d50dbc93f664 100644 (file)
@@ -1952,7 +1952,7 @@ struct tree_opt_pass pass_regrename =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func,                       /* todo_flags_finish */
   'n'                                   /* letter */
 };
@@ -1985,7 +1985,7 @@ struct tree_opt_pass pass_cprop_hardreg =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */
   'n'                                   /* letter */
 };
 
index d0386d61c3e6ea07b62ebf83a57f7cd01e678cd7..cf07db9607c1a6fbe19805728c677ff344dce98d 100644 (file)
@@ -1428,7 +1428,7 @@ struct tree_opt_pass pass_rtl_seqabstr = {
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func |
   TODO_ggc_collect,                     /* todo_flags_finish */
   'Q'                                   /* letter */
index 760420be50b8fc34d66f4d63b665170cc66e9c41..6df5c33ec2544e8557deec8b6cb661ed6895758b 100644 (file)
@@ -3185,7 +3185,7 @@ struct tree_opt_pass pass_sched =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func |
   TODO_verify_flow |
   TODO_ggc_collect,                     /* todo_flags_finish */
@@ -3205,7 +3205,7 @@ struct tree_opt_pass pass_sched2 =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func |
   TODO_verify_flow |
   TODO_ggc_collect,                     /* todo_flags_finish */
index 7a351613b138c05bdfe299f4afe9ec8a23c5995c..0302af2d94fb3cef6b05acdd350ccb6ea5008d0d 100644 (file)
--- a/gcc/see.c
+++ b/gcc/see.c
@@ -3874,7 +3874,7 @@ struct tree_opt_pass pass_see =
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
   TODO_df_verify |
-  TODO_df_finish |
+  TODO_df_finish | TODO_verify_rtl_sharing |
   TODO_dump_func,                      /* todo_flags_finish */
   'u'                                  /* letter */
 };
index 2f98c57b65c6b95d293d53c4ccda7e67fd899fc4..44a2e507e6361439c709f4991bdbdf3d8c7a09da 100644 (file)
@@ -410,7 +410,7 @@ struct tree_opt_pass pass_tracer =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */
   'T'                                   /* letter */
 };
 
index fc6f1359c4d0189a2a3bbce59ebec64be47581e6..45ea307df59dc54d79f41a6a291231dfd030b410 100644 (file)
@@ -169,6 +169,7 @@ struct dump_file_info
 #define TODO_dump_cgraph               (1 << 7)
 #define TODO_remove_functions          (1 << 8)
 #define TODO_rebuild_frequencies       (1 << 9)
+#define TODO_verify_rtl_sharing         (1 << 10)
 
 /* To-do flags for calls to update_ssa.  */
 
@@ -180,13 +181,13 @@ struct dump_file_info
    in blocks that have one or more edges with no incoming definition
    for O_j.  This would lead to uninitialized warnings for O_j's
    symbol.  */
-#define TODO_update_ssa                        (1 << 10)
+#define TODO_update_ssa                        (1 << 11)
 
 /* Update the SSA form without inserting any new PHI nodes at all.
    This is used by passes that have either inserted all the PHI nodes
    themselves or passes that need only to patch use-def and def-def
    chains for virtuals (e.g., DCE).  */
-#define TODO_update_ssa_no_phi         (1 << 11)
+#define TODO_update_ssa_no_phi         (1 << 12)
 
 /* Insert PHI nodes everywhere they are needed.  No pruning of the
    IDF is done.  This is used by passes that need the PHI nodes for
@@ -197,7 +198,7 @@ struct dump_file_info
    may be doing something wrong.  Inserting PHI nodes for an old name
    where not all edges carry a new replacement may lead to silent
    codegen errors or spurious uninitialized warnings.  */
-#define TODO_update_ssa_full_phi       (1 << 12)
+#define TODO_update_ssa_full_phi       (1 << 13)
 
 /* Passes that update the SSA form on their own may want to delegate
    the updating of virtual names to the generic updater.  Since FUD
@@ -205,30 +206,30 @@ struct dump_file_info
    to do.  NOTE: If this flag is used, any OLD->NEW mappings for real
    names are explicitly destroyed and only the symbols marked for
    renaming are processed.  */
-#define TODO_update_ssa_only_virtuals  (1 << 13)
+#define TODO_update_ssa_only_virtuals  (1 << 14)
 
 /* Some passes leave unused local variables that can be removed from
    cfun->unexpanded_var_list.  This reduces the size of dump files and
    the memory footprint for VAR_DECLs.  */
-#define TODO_remove_unused_locals      (1 << 14)
+#define TODO_remove_unused_locals      (1 << 15)
 
 /* Internally used for the first in a sequence of passes.  It is set
    for the passes that are handed to register_dump_files.  */
-#define TODO_set_props                 (1 << 15)
+#define TODO_set_props                 (1 << 16)
 
 /* Call df_finish at the end of the pass.  This is done after all of
    the dumpers have been allowed to run so that they have access to
    the instance before it is destroyed.  */
-#define TODO_df_finish                  (1 << 16)
+#define TODO_df_finish                  (1 << 17)
 
 /* Call df_verify at the end of the pass if checking is enabled.  */
-#define TODO_df_verify                  (1 << 17)
+#define TODO_df_verify                  (1 << 18)
 
 /* Internally used for the first instance of a pass.  */
-#define TODO_mark_first_instance       (1 << 18)
+#define TODO_mark_first_instance       (1 << 19)
 
 /* Rebuild aliasing info.  */
-#define TODO_rebuild_alias                (1 << 19)
+#define TODO_rebuild_alias                (1 << 20)
 
 #define TODO_update_ssa_any            \
     (TODO_update_ssa                   \
index 92228672babfdfc3c349971a072dee45fe2e21cb..97986b668866b664d7f75ed9a3eb4c4bc8f02c6d 100644 (file)
@@ -3296,7 +3296,7 @@ struct tree_opt_pass pass_variable_tracking =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func,                       /* todo_flags_finish */
+  TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */
   'V'                                   /* letter */
 };
 
index bd97ee55544661cf636dd447a847954705f317b1..f45d344d9d5fa9f64c5ee1503f7735c081ba3486 100644 (file)
--- a/gcc/web.c
+++ b/gcc/web.c
@@ -384,7 +384,7 @@ struct tree_opt_pass pass_web =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish | 
+  TODO_df_finish | TODO_verify_rtl_sharing | 
   TODO_dump_func,                       /* todo_flags_finish */
   'Z'                                   /* letter */
 };