This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[tree-ssa] Branch broken
- From: Diego Novillo <dnovillo at redhat dot com>
- To: Jeff Law <law at redhat dot com>, Daniel Berlin <dberlin at dberlin dot org>, Richard Henderson <rth at redhat dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Thu, 18 Sep 2003 09:12:32 -0400
- Subject: [tree-ssa] Branch broken
- Organization: Red Hat Canada
Folks,
We were quite active yesterday. One of these patches (or a combination)
broke bootstraps on x86 with:
/home/dnovillo/perf/sbox/tree-ssa-branch/local.i686/bld.toribio/gcc/xgcc -shared-libgcc -B/home/dnovillo/perf/sbox/tree-ssa-branch/local.i686/bld.toribio/gcc/ -
nostdinc++ -L/home/dnovillo/perf/sbox/tree-ssa-branch/local.i686/bld.toribio/i686-pc-linux-gnu/libstdc++-v3/src -L/home/dnovillo/perf/sbox/tree-ssa-branch/local.i686/bld.toribio/i686-pc-linux-gnu/libstdc++-v3/src
/.libs -B/home/dnovillo/perf/sbox/tree-ssa-branch/local.i686/inst.toribio/i686-pc-linux-gnu/bin/ -B/home/dnovillo/perf/sbox/tree-ssa-branch/local.i686/inst.toribio/i686-pc-linux-gnu/lib/ -isystem /home/dnovillo/p
erf/sbox/tree-ssa-branch/local.i686/inst.toribio/i686-pc-linux-gnu/include -isystem /home/dnovillo/perf/sbox/tree-ssa-branch/local.i686/inst.toribio/i686-pc-linux-gnu/sys-include -I/home/dnovillo/perf/sbox/tree-s
sa-branch/local.i686/bld.toribio/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/home/dnovillo/perf/sbox/tree-ssa-branch/local.i686/bld.toribio/i686-pc-linux-gnu/libstdc++-v3/include -I/home/dnovillo/
perf/sbox/tree-ssa-branch/local.i686/src/libstdc++-v3/libsupc++ -O2 -g -O2 -g -O2 -D_GNU_SOURCE -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -fdiagnostics-show-location=once -ffunction-sections -f
data-sections -fimplicit-templates -c /home/dnovillo/perf/sbox/tree-ssa-branch/local.i686/src/libstdc++-v3/src/demangle.cc -fPIC -DPIC -o .libs/demangle.o
cc1plus: out of memory allocating 304924720 bytes after a total of 37729036 bytes
make[4]: *** [demangle.lo] Error 1
make[4]: Leaving directory `/notnfs/dnovillo/sbox/tree-ssa-branch/bld.toribio/i686-pc-linux-gnu/libstdc++-v3/src'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/notnfs/dnovillo/sbox/tree-ssa-branch/bld.toribio/i686-pc-linux-gnu/libstdc++-v3'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/notnfs/dnovillo/sbox/tree-ssa-branch/bld.toribio/i686-pc-linux-gnu/libstdc++-v3'
make[1]: *** [all-target-libstdc++-v3] Error 2
make[1]: Leaving directory `/notnfs/dnovillo/sbox/tree-ssa-branch/bld.toribio'
make: *** [bootstrap] Error 2
Bootstraps on alpha died similarly. On ia64 we get a warning in
tree-eh.c and fail to finish stage2. Full logs at
http://people.redhat.com/dnovillo/nightly-testing/tree-ssa-branch/
Thanks. Diego.
--- gcc.prev/gcc/ChangeLog 2003-09-15 19:09:56.000000000 -0400
+++ gcc/gcc/ChangeLog 2003-09-17 19:47:48.000000000 -0400
@@ -1,3 +1,7 @@
+2003-09-17 Richard Henderson <rth@redhat.com>
+
+ * cfg.c (dump_flow_info): Skip register dump if reg_n_info null.
+
2003-09-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
Jeff Law <law@redhat.com>
--- gcc.prev/gcc/ChangeLog.tree-ssa 2003-09-16 19:46:38.000000000 -0400
+++ gcc/gcc/ChangeLog.tree-ssa 2003-09-18 04:39:34.000000000 -0400
@@ -1,3 +1,146 @@
+2003-09-17 Richard Henderson <rth@redhat.com>
+
+ * tree-cfg.c (remove_useless_stmts_and_vars): Revert last change.
+ * tree-flow.h, tree-ssa.c: Likewise.
+
+2003-09-17 Richard Henderson <rth@redhat.com>
+
+ * tree-eh.c (decide_copy_try_finally): Remove forgotten debug code.
+
+2003-09-17 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-pre.c (pick_ssa_name): New function.
+ (code_motion): Use it.
+
+2003-09-17 Richard Henderson <rth@redhat.com>
+
+ * tree-eh.c: New file.
+ * Makefile.in (OBJS-common): Add it.
+ (tree-eh.o): New.
+ * calls.c (emit_call_1): New argument for full call expr.
+ Check with lookup_stmt_eh_region to set REG_EH_REGION.
+ (expand_call): Likewise for tail-calls.
+ * except.c (struct eh_region): Add tree_label.
+ (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
+ gen_eh_region_catch, gen_eh_region_allowed,
+ gen_eh_region_must_not_throw, get_eh_region_number,
+ get_eh_region_may_contain_throw, get_eh_region_tree_label,
+ set_eh_region_tree_label, expand_resx_expr): New.
+ (expand_eh_region_start, expand_start_catch): Use them.
+ (expand_end_catch): Tidy.
+ (note_eh_region_may_contain_throw): Take region argument.
+ (note_current_region_may_contain_throw): New.
+ (get_exception_filter): Export.
+ (collect_eh_region_array): Export.
+ (remove_unreachable_regions): Check ERT_TRY based on reachability
+ of catches, not reachability of continue_label. Never remove
+ ERT_MUST_NOT_THROW regions.
+ (collect_rtl_labels_from_trees): New.
+ (convert_from_eh_region_ranges): Use it.
+ (connect_post_landing_pads): Handle dying cleanups.
+ (struct reachable_info): Add callback data.
+ (add_reachable_handler): Invoke the callback.
+ (foreach_reachable_handler): New.
+ (reachable_handlers): Use it.
+ (arh_to_landing_pad, arh_to_label): New.
+ (can_throw_internal_1): Split out from can_throw_internal.
+ (can_throw_external_1): Similarly.
+ * except.h: Update.
+ * expr.c (expand_expr): Handle RESX_EXPR, FILTER_EXPR.
+ * gimplify.c (gimplify_modify_expr): Use tree_could_trap_p.
+ * stmt.c (using_eh_for_cleanups_p): Export.
+ (expand_return): Allow any typed rhs.
+ * timevar.def (TV_TREE_EH): New.
+ * tree-cfg.c (eh_stack): Kill.
+ (build_tree_cfg): Don't set it. Kill code to handle EH.
+ (could_trap_p): Move to tree-eh.c as tree_could_trap_p.
+ (get_eh_region_type, make_try_expr_blocks, make_catch_expr_blocks,
+ make_eh_filter_expr_blocks, try_finallys): Kill.
+ (make_edges): Kill code to handle EH.
+ (make_ctrl_stmt_edges): Kill TRY_FINALLY_EXPR, CATCH_EXPR,
+ EH_FILTER_EXPR. Handle RESX_EXPR.
+ (make_call_expr_edges): Kill.
+ (make_exit_edges): Use make_eh_edges.
+ (label_to_block): New.
+ (make_goto_expr_edges): Use it.
+ (is_ctrl_stmt): Add RESX_EXPR.
+ (is_ctrl_altering_stmt): Restructure. Use tree_can_throw_internal.
+ (last_exec_block, compute_reachable_eh): Kill.
+ * tree-dfa.c (get_stmt_operands): Add RESX_EXPR.
+ (get_expr_operands): Add FILTER_EXPR.
+ * tree-dump.c (dump_files): Add tree-eh.
+ * tree-flow.h (struct stmt_ann_d): Kill reachable_exception_handlers.
+ (label_to_block, lower_eh_constructs, make_eh_edges,
+ tree_could_trap_p, tree_could_throw_p, tree_can_throw_internal,
+ tree_can_throw_external): Declare.
+ * tree-optimize.c (optimize_function_tree): Call lower_eh_constructs.
+ (tree_rest_of_compilation): Save tree for inlining.
+ * tree-pretty-print.c (dump_generic_node): Handle FILTER_EXPR,
+ RESX_EXPR.
+ * tree-simple.c (is_gimple_stmt): Add RESX_EXPR.
+ (is_gimple_val): Add FILTER_EXPR.
+ * tree-ssa-dce.c (stmt_useful_p): Restructure. Add lhs of
+ EXC_PTR_EXPR or FILTER_EXPR.
+ * tree.def (FILTER_EXPR, RESX_EXPR): New.
+ * tree.h (enum tree_dump_index): Add TDI_eh.
+
+2003-09-17 Richard Henderson <rth@redhat.com>
+
+ * tree.c (tsi_link_before): Remove unnecessary parens.
+ (tsi_link_chain_before, tsi_delink): Likewise.
+ (tsi_link_after): Accept the case if the iterator points
+ to a NULL node; treat it as an empty list.
+ (tsi_link_chain_after): Likewise. Update iterator properly
+ for TSI_CHAIN_END.
+
+2003-09-17 Richard Henderson <rth@redhat.com>
+
+ * tree-inline.c (debug_find_tree_1, debug_find_tree): New.
+
+2003-09-17 Richard Henderson <rth@redhat.com>
+
+ * tree-cfg.c (struct rusv_data): New.
+ (remove_useless_stmts_and_vars_1): Rename from
+ remove_useless_stmts_and_vars. Use rusv_data. Handle goto-next
+ via remembering the last goto seen, and zapping it when appropriate.
+ (remove_useless_stmts_and_vars): New. Loop until done.
+ * tree-flow.h (remove_useless_stmts_and_vars): Update decl.
+ * tree-optimize.c (optimize_function_tree): Don't cache fnbody.
+ Dump data after remove_useless_stmts_and_vars.
+ * tree-ssa.c (rewrite_out_of_ssa): Kill loop around
+ remove_useless_stmts_and_vars.
+ * tree-dump.c (dump_files): Add .useless.
+ * tree.h (enum tree_dump_index): Add TDI_useless.
+
+2003-09-17 Diego Novillo <dnovillo@redhat.com>
+
+ * pretty-print.c (pp_write_text_to_stream): Export.
+ * pretty-print.h (pp_write_text_to_stream): Declare.
+ * tree-pretty-print.c (print_generic_stmt): Flush to file.
+ (dump_generic_node): Call pp_write_text_to_stream.
+ (maybe_init_pretty_print): Take file argument; associate the
+ stream with the buffer.
+
+2003-09-17 Jeff Law <law@redhat.com>
+
+ * tree-ssa-ccp.c (ccp_fold): If the return value has the wrong
+ type, try to convert it to the proper type rather than failing.
+
+ * tree-ssa-dom.c (optimize_stmt): Note that the statement is
+ modified, even if we just change the virtual operands. If
+ the statement was modified by const/copy propagation, then
+ set may_have_exposed_new_symbols.
+
+2003-09-17 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-dfa.c (find_vars_r): Do not consider 'void *' pointers as
+ dereferenced when scanning function call arguments.
+ * tree-flow-inline.h (may_propagate_copy): Block propagation of
+ pointers when they have different memory tags.
+ * tree-ssa-copyprop.c (propagate_copy): When copy propagating
+ pointers, abort if the two pointers don't have identical memory
+ tags.
+
2003-09-16 Jeff Law <law@redhat.com>
* tree-ssa-ccp.c (visit_stmt): Do not set DONT_SIMULATE_AGAIN
--- gcc.prev/gcc/cp/ChangeLog.tree-ssa 2003-09-03 15:10:30.000000000 -0400
+++ gcc/gcc/cp/ChangeLog.tree-ssa 2003-09-17 20:19:27.000000000 -0400
@@ -1,3 +1,8 @@
+2003-09-17 Richard Henderson <rth@redhat.com>
+
+ * decl.c (cxx_init_decl_processing): Don't using_eh_for_cleanups
+ if exceptions are disabled.
+
2003-09-03 Richard Henderson <rth@redhat.com>
* cp-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): Use expand_stmt_toplev.