summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2007-09-05 10:49:01 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2007-09-05 10:49:01 +0000
commit0806b5089ba3c130b2f840fd6302df389fc4d61f (patch)
tree9764236ba7e326e3c7f69b294c79784d1d6e39f7
parent9184d665e5bbe7813414bfdac76e621dd10db352 (diff)
downloadgcc-0806b5089ba3c130b2f840fd6302df389fc4d61f.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128126 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog45
-rw-r--r--gcc/bb-reorder.c6
-rw-r--r--gcc/bt-load.c1
-rw-r--r--gcc/cfgcleanup.c3
-rw-r--r--gcc/combine-stack-adj.c2
-rw-r--r--gcc/combine.c2
-rw-r--r--gcc/cse.c10
-rw-r--r--gcc/dce.c4
-rw-r--r--gcc/dse.c4
-rw-r--r--gcc/emit-rtl.c2
-rw-r--r--gcc/function.c2
-rw-r--r--gcc/fwprop.c4
-rw-r--r--gcc/gcse.c2
-rw-r--r--gcc/global.c4
-rw-r--r--gcc/ifcvt.c6
-rw-r--r--gcc/loop-init.c12
-rw-r--r--gcc/lower-subreg.c2
-rw-r--r--gcc/mode-switching.c2
-rw-r--r--gcc/modulo-sched.c2
-rw-r--r--gcc/passes.c4
-rw-r--r--gcc/postreload-gcse.c4
-rw-r--r--gcc/postreload.c2
-rw-r--r--gcc/recog.c4
-rw-r--r--gcc/reg-stack.c2
-rw-r--r--gcc/regmove.c2
-rw-r--r--gcc/regrename.c4
-rw-r--r--gcc/rtl-factoring.c2
-rw-r--r--gcc/sched-rgn.c4
-rw-r--r--gcc/see.c2
-rw-r--r--gcc/tracer.c2
-rw-r--r--gcc/tree-pass.h21
-rw-r--r--gcc/var-tracking.c2
-rw-r--r--gcc/web.c2
33 files changed, 110 insertions, 62 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ab495fee056..7ff57f4bfed 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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,
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 9bf4086f5ae..8f20f87ce09 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -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 */
};
diff --git a/gcc/bt-load.c b/gcc/bt-load.c
index bf9214b1ae4..c30f2c3342e 100644
--- a/gcc/bt-load.c
+++ b/gcc/bt-load.c
@@ -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 */
};
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index 1f9304d43ba..5086784cd4c 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -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 */
};
diff --git a/gcc/combine-stack-adj.c b/gcc/combine-stack-adj.c
index fd6fd27c0c6..37942bc4519 100644
--- a/gcc/combine-stack-adj.c
+++ b/gcc/combine-stack-adj.c
@@ -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 */
diff --git a/gcc/combine.c b/gcc/combine.c
index c8ed4402f93..133dfbe5433 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -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 */
};
diff --git a/gcc/cse.c b/gcc/cse.c
index c2b4d182bd0..fc4f895c8b0 100644
--- 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 */
diff --git a/gcc/dce.c b/gcc/dce.c
index c5af55ecc12..dec86692bf6 100644
--- 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 */
};
diff --git a/gcc/dse.c b/gcc/dse.c
index f8859f6c91d..2226ae14dd2 100644
--- 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 */
};
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index cf6b2f3ccd7..b3f21013a0b 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -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 */
};
diff --git a/gcc/function.c b/gcc/function.c
index ec7c2e36f71..f4fc6a3ced6 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -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 */
};
diff --git a/gcc/fwprop.c b/gcc/fwprop.c
index 859fba5837e..ff3123fe9e3 100644
--- a/gcc/fwprop.c
+++ b/gcc/fwprop.c
@@ -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 */
};
diff --git a/gcc/gcse.c b/gcc/gcse.c
index af10db68530..b6b7c5e410c 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -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 */
diff --git a/gcc/global.c b/gcc/global.c
index c346e6ad5f2..b74629381de 100644
--- a/gcc/global.c
+++ b/gcc/global.c
@@ -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 */
};
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 644a5e1c6ed..7810d7e9616 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -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 */
diff --git a/gcc/loop-init.c b/gcc/loop-init.c
index 79d9056f2b3..57f9768b377 100644
--- a/gcc/loop-init.c
+++ b/gcc/loop-init.c
@@ -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 */
};
diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c
index 696ec61e58d..b8e2eb65842 100644
--- a/gcc/lower-subreg.c
+++ b/gcc/lower-subreg.c
@@ -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 */
diff --git a/gcc/mode-switching.c b/gcc/mode-switching.c
index dc05208d3cd..5f4f95fa899 100644
--- a/gcc/mode-switching.c
+++ b/gcc/mode-switching.c
@@ -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 */
};
diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c
index bb940a72a2b..37c92048b41 100644
--- a/gcc/modulo-sched.c
+++ b/gcc/modulo-sched.c
@@ -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 */
diff --git a/gcc/passes.c b/gcc/passes.c
index e2f0676e192..db6128e9b86 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -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;
diff --git a/gcc/postreload-gcse.c b/gcc/postreload-gcse.c
index 3cbd7ebae0d..5f3192f083d 100644
--- a/gcc/postreload-gcse.c
+++ b/gcc/postreload-gcse.c
@@ -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 */
};
diff --git a/gcc/postreload.c b/gcc/postreload.c
index ff2356a76fb..674160b0954 100644
--- a/gcc/postreload.c
+++ b/gcc/postreload.c
@@ -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 */
};
diff --git a/gcc/recog.c b/gcc/recog.c
index 7ee2f97d3fe..6a9ae4510c0 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -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 */
};
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 1fbd322aaf4..f5d263fbff2 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -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 */
diff --git a/gcc/regmove.c b/gcc/regmove.c
index 5cdd658a505..4cb083cbd48 100644
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -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 */
diff --git a/gcc/regrename.c b/gcc/regrename.c
index 5ff3062503e..a25319e2339 100644
--- a/gcc/regrename.c
+++ b/gcc/regrename.c
@@ -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 */
};
diff --git a/gcc/rtl-factoring.c b/gcc/rtl-factoring.c
index d0386d61c3e..cf07db9607c 100644
--- a/gcc/rtl-factoring.c
+++ b/gcc/rtl-factoring.c
@@ -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 */
diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c
index 760420be50b..6df5c33ec25 100644
--- a/gcc/sched-rgn.c
+++ b/gcc/sched-rgn.c
@@ -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 */
diff --git a/gcc/see.c b/gcc/see.c
index 7a351613b13..0302af2d94f 100644
--- 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 */
};
diff --git a/gcc/tracer.c b/gcc/tracer.c
index 2f98c57b65c..44a2e507e63 100644
--- a/gcc/tracer.c
+++ b/gcc/tracer.c
@@ -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 */
};
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h
index fc6f1359c4d..45ea307df59 100644
--- a/gcc/tree-pass.h
+++ b/gcc/tree-pass.h
@@ -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 \
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index 92228672bab..97986b66886 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -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 */
};
diff --git a/gcc/web.c b/gcc/web.c
index bd97ee55544..f45d344d9d5 100644
--- 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 */
};