aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl@gcc.gnu.org>2009-06-27 09:43:28 -0700
committerH.J. Lu <hjl@gcc.gnu.org>2009-06-27 09:43:28 -0700
commit2ca57608ece924ecf70b9a7216b2deab069e33c2 (patch)
tree840732f49456407fe8300cf2e0a30a24819d5a6d
parent8122ccf175f39e9db97f39d4bd700845bd28f714 (diff)
downloadgcc-2ca57608ece924ecf70b9a7216b2deab069e33c2.zip
gcc-2ca57608ece924ecf70b9a7216b2deab069e33c2.tar.gz
gcc-2ca57608ece924ecf70b9a7216b2deab069e33c2.tar.bz2
re PR target/40489 (gcc.dg/builtin-unreachable-3.c doesn't work on ia64)
2009-06-27 H.J. Lu <hongjiu.lu@intel.com> PR target/40489 * config/ia64/ia64.c (ia64_reorg): Check NULL insn. From-SVN: r149014
-rw-r--r--gcc/ChangeLog187
-rw-r--r--gcc/config/ia64/ia64.c30
2 files changed, 113 insertions, 104 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 08bb279..5abc318 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-06-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/40489
+ * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
+
2009-06-27 Paolo Bonzini <bonzini@gnu.org>
* tree-ssa-alias.c: Fix unintentional commit.
@@ -8,43 +13,43 @@
2009-06-27 Paolo Bonzini <bonzini@gnu.org>
- * df-problems.c (df_set_seen, df_unset_seen): Delete.
- (df_rd_local_compute, df_md_local_compute): Inline them.
+ * df-problems.c (df_set_seen, df_unset_seen): Delete.
+ (df_rd_local_compute, df_md_local_compute): Inline them.
- (df_md_scratch): New.
- (df_md_alloc, df_md_free): Allocate/free it.
- (df_md_local_compute): Only include live registers in init.
- (df_md_transfer_function): Prune the in-set computed by
- the confluence function, and the gen-set too.
+ (df_md_scratch): New.
+ (df_md_alloc, df_md_free): Allocate/free it.
+ (df_md_local_compute): Only include live registers in init.
+ (df_md_transfer_function): Prune the in-set computed by
+ the confluence function, and the gen-set too.
2009-06-27 Paolo Bonzini <bonzini@gnu.org>
PR rtl-optimization/26854
- * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
- * df-problems.c (df_rd_add_problem): Fix comment.
- (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
- df_md_simulate_artificial_defs_at_top,
- df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
- df_md_bb_local_compute, df_md_local_compute, df_md_reset,
- df_md_transfer_function, df_md_init, df_md_confluence_0,
- df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
- problem_MD, df_md_add_problem): New.
- * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
- df_md_get_bb_info): New.
- DF_LAST_PROBLEM_PLUS1): Adjust.
-
- * Makefile.in (fwprop.o): Include domwalk.h.
- * fwprop.c: Include domwalk.h.
- (reg_defs, reg_defs_stack): New.
- (bitmap_only_bit_between): Remove.
- (process_defs): New.
- (process_uses): Use reg_defs and local_md instead of
- bitmap_only_bit_between and local_rd.
- (single_def_use_enter_block): New, from build_single_def_use_links.
- (single_def_use_leave_block): New.
- (build_single_def_use_links): Remove code moved to
- single_def_use_enter_block, invoke domwalk.
- (use_killed_between): Adjust comment.
+ * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
+ * df-problems.c (df_rd_add_problem): Fix comment.
+ (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
+ df_md_simulate_artificial_defs_at_top,
+ df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
+ df_md_bb_local_compute, df_md_local_compute, df_md_reset,
+ df_md_transfer_function, df_md_init, df_md_confluence_0,
+ df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
+ problem_MD, df_md_add_problem): New.
+ * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
+ df_md_get_bb_info): New.
+ DF_LAST_PROBLEM_PLUS1): Adjust.
+
+ * Makefile.in (fwprop.o): Include domwalk.h.
+ * fwprop.c: Include domwalk.h.
+ (reg_defs, reg_defs_stack): New.
+ (bitmap_only_bit_between): Remove.
+ (process_defs): New.
+ (process_uses): Use reg_defs and local_md instead of
+ bitmap_only_bit_between and local_rd.
+ (single_def_use_enter_block): New, from build_single_def_use_links.
+ (single_def_use_leave_block): New.
+ (build_single_def_use_links): Remove code moved to
+ single_def_use_enter_block, invoke domwalk.
+ (use_killed_between): Adjust comment.
2009-06-27 Paolo Bonzini <bonzini@gnu.org>
@@ -53,65 +58,65 @@
2009-06-27 Paolo Bonzini <bonzini@gnu.org>
- * domwalk.h (struct dom_walk_data): Remove all callbacks except
- before_dom_children_before_stmts and after_dom_children_after_stmts.
- Rename the two remaining callbacks to just before_dom_children and
- after_dom_children. Remove other GIMPLE statement walking bits.
- * domwalk.c (walk_dominator_tree): Remove now unsupported features.
- * graphite.c: Do not include domwalk.h.
- * tree-into-ssa.c (interesting_blocks): New global.
- (struct mark_def_sites_global_data): Remove it and names_to_rename.
- (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
- rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
- now that they're not domwalk callbacks.
- (rewrite_initialize_block): Rename to...
- (rewrite_enter_block): ... this, place after called functions. Test
- interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
- (rewrite_finalize_block): Rename to...
- (rewrite_leave_block): ... this, place after called functions.
- (rewrite_update_init_block): Rename to...
- (rewrite_update_enter_block): ... this, place after called functions.
- Test interesting_blocks, call rewrite_update_stmt and
- rewrite_update_phi_arguments.
- (rewrite_update_fini_block): Rename to...
- (rewrite_leave_block): ... this, place after called functions.
- (rewrite_blocks): Remove last argument, simplify initialization of
- walk_data.
- (mark_def_sites_initialize_block): Rename to...
- (mark_def_sites_block): ... this, call mark_def_sites.
- (mark_def_sites_blocks): Remove argument, simplify initialization of
- walk_data.
- (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
- (update_ssa): Likewise.
- * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
- callback.
- (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
- (dom_opt_initialize_block): Rename to...
- (dom_opt_enter_block): ... this, place after called functions. Walk
- statements here, inline propagate_to_outgoing_edges.
- (dom_opt_finalize_block): Rename to...
- (dom_opt_leave_block): ... this, place after called functions.
- * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
- domwalk callback.
- (dse_enter_block, dse_record_phi): New.
- (dse_record_phis): Delete.
- (dse_finalize_block): Rename to...
- (dse_leave_block): ... this.
- (tree_ssa_dse): Simplify initialization of walk_data.
- * tree-ssa-loop-im.c (determine_invariantness, move_computations):
- Adjust initialization of walk_data.
- * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
- * tree-ssa-loop-phiopt.c (get_non_trapping):
- Adjust initialization of walk_data.
- * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
- * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
- it's not a domwalk callback.
- (uncprop_initialize_block): Rename to...
- (dse_enter_block): ... this, call uncprop_into_successor_phis.
- (dse_finalize_block): Rename to...
- (dse_leave_block): ... this.
- (tree_ssa_uncprop): Simplify initialization of walk_data.
- * Makefile.in: Adjust dependencies.
+ * domwalk.h (struct dom_walk_data): Remove all callbacks except
+ before_dom_children_before_stmts and after_dom_children_after_stmts.
+ Rename the two remaining callbacks to just before_dom_children and
+ after_dom_children. Remove other GIMPLE statement walking bits.
+ * domwalk.c (walk_dominator_tree): Remove now unsupported features.
+ * graphite.c: Do not include domwalk.h.
+ * tree-into-ssa.c (interesting_blocks): New global.
+ (struct mark_def_sites_global_data): Remove it and names_to_rename.
+ (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
+ rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
+ now that they're not domwalk callbacks.
+ (rewrite_initialize_block): Rename to...
+ (rewrite_enter_block): ... this, place after called functions. Test
+ interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
+ (rewrite_finalize_block): Rename to...
+ (rewrite_leave_block): ... this, place after called functions.
+ (rewrite_update_init_block): Rename to...
+ (rewrite_update_enter_block): ... this, place after called functions.
+ Test interesting_blocks, call rewrite_update_stmt and
+ rewrite_update_phi_arguments.
+ (rewrite_update_fini_block): Rename to...
+ (rewrite_leave_block): ... this, place after called functions.
+ (rewrite_blocks): Remove last argument, simplify initialization of
+ walk_data.
+ (mark_def_sites_initialize_block): Rename to...
+ (mark_def_sites_block): ... this, call mark_def_sites.
+ (mark_def_sites_blocks): Remove argument, simplify initialization of
+ walk_data.
+ (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
+ (update_ssa): Likewise.
+ * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
+ callback.
+ (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
+ (dom_opt_initialize_block): Rename to...
+ (dom_opt_enter_block): ... this, place after called functions. Walk
+ statements here, inline propagate_to_outgoing_edges.
+ (dom_opt_finalize_block): Rename to...
+ (dom_opt_leave_block): ... this, place after called functions.
+ * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
+ domwalk callback.
+ (dse_enter_block, dse_record_phi): New.
+ (dse_record_phis): Delete.
+ (dse_finalize_block): Rename to...
+ (dse_leave_block): ... this.
+ (tree_ssa_dse): Simplify initialization of walk_data.
+ * tree-ssa-loop-im.c (determine_invariantness, move_computations):
+ Adjust initialization of walk_data.
+ * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
+ * tree-ssa-loop-phiopt.c (get_non_trapping):
+ Adjust initialization of walk_data.
+ * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
+ * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
+ it's not a domwalk callback.
+ (uncprop_initialize_block): Rename to...
+ (dse_enter_block): ... this, call uncprop_into_successor_phis.
+ (dse_finalize_block): Rename to...
+ (dse_leave_block): ... this.
+ (tree_ssa_uncprop): Simplify initialization of walk_data.
+ * Makefile.in: Adjust dependencies.
2009-06-27 Richard Earnshaw <rearnsha@arm.com>
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index f9b8460..939ed54 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -9239,20 +9239,24 @@ ia64_reorg (void)
insn = get_last_insn ();
if (! INSN_P (insn))
insn = prev_active_insn (insn);
- /* Skip over insns that expand to nothing. */
- while (GET_CODE (insn) == INSN && get_attr_empty (insn) == EMPTY_YES)
- {
- if (GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE
- && XINT (PATTERN (insn), 1) == UNSPECV_INSN_GROUP_BARRIER)
- saw_stop = 1;
- insn = prev_active_insn (insn);
- }
- if (GET_CODE (insn) == CALL_INSN)
+ if (insn)
{
- if (! saw_stop)
- emit_insn (gen_insn_group_barrier (GEN_INT (3)));
- emit_insn (gen_break_f ());
- emit_insn (gen_insn_group_barrier (GEN_INT (3)));
+ /* Skip over insns that expand to nothing. */
+ while (GET_CODE (insn) == INSN
+ && get_attr_empty (insn) == EMPTY_YES)
+ {
+ if (GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE
+ && XINT (PATTERN (insn), 1) == UNSPECV_INSN_GROUP_BARRIER)
+ saw_stop = 1;
+ insn = prev_active_insn (insn);
+ }
+ if (GET_CODE (insn) == CALL_INSN)
+ {
+ if (! saw_stop)
+ emit_insn (gen_insn_group_barrier (GEN_INT (3)));
+ emit_insn (gen_break_f ());
+ emit_insn (gen_insn_group_barrier (GEN_INT (3)));
+ }
}
}