re PR middle-end/37884 (Bootstrap failure due to miscompilation of tree-vrp.c)

2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/37884
	* ira-build.c (copy_live_ranges_to_removed_store_destinations):
	Rename to copy_info_to_removed_store_destinations.  Propagate
	conflict hard regs and register stack attribute.

From-SVN: r141383
This commit is contained in:
Vladimir Makarov 2008-10-27 16:19:25 +00:00
parent 83b83ae97a
commit 801f03e3d2
2 changed files with 48 additions and 34 deletions

View File

@ -1,3 +1,10 @@
2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/37884
* ira-build.c (copy_live_ranges_to_removed_store_destinations):
Rename to copy_info_to_removed_store_destinations. Propagate
conflict hard regs and register stack attribute.
2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/37316
@ -47,7 +54,7 @@
* tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
add sizetype IV with initial value zero instead of pointer type.
2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c/7543
* value-prof.c (gimple_stringop_fixed_value): Use parentheses
@ -140,7 +147,7 @@
* tree-ssa-structalias.c (could_have_pointers): Complex types
cannot have pointers.
2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c/30949
* c-typeck.c (convert_for_assignment): Do not give declaration's
@ -228,11 +235,11 @@
* tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
part of expression.
2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
* doc/install.texi: Fix typos in previous patch.
2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
* doc/install.texi: Document in-tree building of gcc and mpfr.
@ -240,7 +247,7 @@
* tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c/30260
* c-decl.c (finish_enum): Convert non-integer enumerators to enum
@ -7216,7 +7223,7 @@
* passes.c (init_optimization_passes): Exchange store-ccp
with a ccp pass.
2008-08-19 Rafael Espíndola <espindola@google.com>
2008-08-19 Rafael Espíndola <espindola@google.com>
* varasm.c (weak_decls): Move earlier in the file.
(assemble_external): Add weak decls to the weak_decls list.
@ -9015,7 +9022,7 @@
PR ada/36554
* dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
2008-07-30 Rafael Ávila de Espíndola <espindola@google.com>
2008-07-30 Rafael Ávila de Espíndola <espindola@google.com>
PR 36974
* final.c (call_from_call_insn): Handle COND_EXEC.
@ -9227,7 +9234,7 @@
* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
vector modes.
2008-07-30 Rafael Ávila de Espíndola <espindola@google.com>
2008-07-30 Rafael Ávila de Espíndola <espindola@google.com>
* final.c (call_from_call_insn): New.
(final_scan_insn): Call assemble_external on FUNCTION_DECLs.
@ -10345,7 +10352,7 @@
(TARGET_OPTION_PRINT): Ditto.
(TARGET_CAN_INLINE_P): Ditto.
2008-07-22 Rafael Ávila de Espíndola <espindola@google.com>
2008-07-22 Rafael Ávila de Espíndola <espindola@google.com>
* c-typeck.c (build_external_ref): Don't call assemble_external.
* final.c (output_operand): Call assemble_external.
@ -10366,7 +10373,7 @@
highest magnitude if this is still less or equal to the true
quotient in magnitude.
2008-07-21 Rafael Ávila de Espíndola <espindola@google.com>
2008-07-21 Rafael Ávila de Espíndola <espindola@google.com>
* Makefile.in: Replace toplev.h with TOPLEV_H.
* c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
@ -10669,7 +10676,7 @@
(m32c_legitimate_address_p): Handle "++rii" addresses created by
m32c_legitimize_reload_address.
2007-07-16 Rafael Ávila de Espíndola <espindola@google.com>
2007-07-16 Rafael Ávila de Espíndola <espindola@google.com>
* c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
DECL_IN_SYSTEM_HEADER in sync.
@ -10759,7 +10766,7 @@
* emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
2007-07-14 Rafael Ávila de Espíndola <espindola@google.com>
2007-07-14 Rafael Ávila de Espíndola <espindola@google.com>
* c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
is set.
@ -15051,7 +15058,7 @@
Clear __gcov_indreict_call_callee variable to avoid misattribution
of the profile.
2008-05-28 Rafael Espíndola <espindola@google.com>
2008-05-28 Rafael Espíndola <espindola@google.com>
* see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
invalid sharing.
@ -15469,7 +15476,7 @@
for A24 to PSImode.
(m32c_address_cost): Detail costs for indirect offsets.
2008-05-23 Rafael Espíndola <espindola@google.com>
2008-05-23 Rafael Espíndola <espindola@google.com>
* see.c (see_get_extension_data): Don't use SUBREG_REG to test
if a node is a SUBREG.
@ -15570,7 +15577,7 @@
* config/avr/avr.c (get_sequence_length): Add new function.
(expand_prologue, expand_epilogue): Remove duplicate code.
2008-05-22 Rafael Espíndola <espindola@google.com>
2008-05-22 Rafael Espíndola <espindola@google.com>
* see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
sharing.
@ -16862,7 +16869,7 @@
to one line.
* doc/invoke.texi (Wframe-larger-than=): Add more description.
2008-05-08 Rafael Espíndola <espindola@google.com>
2008-05-08 Rafael Espíndola <espindola@google.com>
* tree-complex.c (expand_complex_div_wide): Don't create CONDs that
trap.
@ -17889,7 +17896,7 @@
(evaluate_stmt): Print the likely value.
(ccp_visit_stmt): Avoid excessive vertical spacing.
2008-04-30 Rafael Espíndola <espindola@google.com>
2008-04-30 Rafael Espíndola <espindola@google.com>
* builtins.c (fold_call_expr): Return realret.
* tree-ssa-threadedge.c
@ -18672,7 +18679,7 @@
* tree-vect-analyze.c (vect_analyze_group_access): SLP is
incapable of dealing with loads with gaps.
2008-04-24 Rafael Espíndola <espindola@google.com>
2008-04-24 Rafael Espíndola <espindola@google.com>
* tree-flow.h (vrp_evaluate_conditional): Change signature.
* tree-ssa-propagate.c (fold_predicate_in): Update call to
@ -18996,7 +19003,7 @@
* Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
2008-04-18 Rafael Espíndola <espindola@google.com>
2008-04-18 Rafael Espíndola <espindola@google.com>
* tree-vrp.c (find_case_label_index): Fix the binary search.
(find_case_label_range): New.
@ -19302,7 +19309,7 @@
* c-decl.c (finish_decl): If extern or static var has variable
size, set TREE_TYPE (decl) to error_mark_node.
2008-04-15 Rafael Espíndola <espindola@google.com>
2008-04-15 Rafael Espíndola <espindola@google.com>
* fold-const.c (tree_call_nonnegative_warnv_p): Remove local
variable arg1.
@ -19442,7 +19449,7 @@
* config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
2008-04-10 Rafael Espíndola <espindola@google.com>
2008-04-10 Rafael Espíndola <espindola@google.com>
* tree-vrp.c (extract_range_from_binary_expr): Don't handle
TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
@ -19537,7 +19544,7 @@
* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
GNU Fortran language string.
2008-04-08 Rafael Espíndola <espindola@google.com>
2008-04-08 Rafael Espíndola <espindola@google.com>
* fold-canst.c (tree_call_nonnegative_warnv_p): New.
(tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
@ -20185,7 +20192,7 @@
make sure to fill gaps with a fallback label if default_label
is not present.
2008-04-03 Dominique d'Humières <dominiq@lps.ens.fr>
2008-04-03 Dominique d'Humières <dominiq@lps.ens.fr>
PR target/35801
* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
@ -20348,7 +20355,7 @@
(varying_mem_p): Move above propagate_rtx.
(all_uses_available_at): Do not check MEMs.
2008-04-02 Rafael Espíndola <espindola@google.com>
2008-04-02 Rafael Espíndola <espindola@google.com>
* tree-vrp.c (extract_code_and_val_from_cond): Remove.
(register_edge_assert_for_2): Split the cond argument.
@ -20523,7 +20530,7 @@
(*sse4_1_smin<mode>3): Likewise.
(*sse4_1_umin<mode>3): Likewise.
2008-04-01 Rafael Espíndola <espindola@google.com>
2008-04-01 Rafael Espíndola <espindola@google.com>
* tree-cfg.c (verify_expr): remove in_phi.
(verify_stmt): Don't call walk_tree with verify_expr. Use
@ -20544,7 +20551,7 @@
PR pch/13675
* c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
2008-04-01 Rafael Espíndola <espindola@google.com>
2008-04-01 Rafael Espíndola <espindola@google.com>
* tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
(extract_code_and_val_from_cond): Use
@ -20735,7 +20742,7 @@
vectorization support.
* doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
2008-03-28 Rafael Espíndola <espindola@google.com>
2008-03-28 Rafael Espíndola <espindola@google.com>
* fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
(tree_binary_nonnegative_warnv_p): Make it public.
@ -22528,7 +22535,7 @@
on hpux10.
* configure: Rebuilt.
2008-03-04 Rafael Espíndola <espindola@google.com>
2008-03-04 Rafael Espíndola <espindola@google.com>
* fold-const.c (tree_simple_nonnegative_warnv_p): New.
(tree_unary_nonnegative_warnv_p): New.
@ -22549,7 +22556,7 @@
* config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
(_SIDD_XXX): This.
2008-03-04 Rafael Espíndola <espindola@google.com>
2008-03-04 Rafael Espíndola <espindola@google.com>
* fold-const.c (tree_unary_nonzero_warnv_p): New.
(tree_binary_nonzero_warnv_p): New.

View File

@ -2042,11 +2042,12 @@ create_caps (void)
static ira_allocno_t *regno_top_level_allocno_map;
/* Process all allocnos originated from pseudo REGNO and copy live
ranges from low level allocnos to final allocnos which are
destinations of removed stores at a loop exit. Return true if we
copied live ranges. */
ranges, hard reg conflicts, and allocno stack reg attributes from
low level allocnos to final allocnos which are destinations of
removed stores at a loop exit. Return true if we copied live
ranges. */
static bool
copy_live_ranges_to_removed_store_destinations (int regno)
copy_info_to_removed_store_destinations (int regno)
{
ira_allocno_t a, parent_a;
ira_loop_tree_node_t parent;
@ -2087,6 +2088,12 @@ copy_live_ranges_to_removed_store_destinations (int regno)
change_allocno_in_range_list (r, parent_a);
ALLOCNO_LIVE_RANGES (parent_a)
= merge_ranges (r, ALLOCNO_LIVE_RANGES (parent_a));
IOR_HARD_REG_SET (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (parent_a),
ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a));
#ifdef STACK_REGS
if (ALLOCNO_TOTAL_NO_STACK_REG_P (a))
ALLOCNO_TOTAL_NO_STACK_REG_P (parent_a) = true;
#endif
merged_p = true;
}
return merged_p;
@ -2235,7 +2242,7 @@ ira_flattening (int max_regno_before_emit, int ira_max_point_before_emit)
ALLOCNO_COPIES (a) = NULL;
regno_top_level_allocno_map[REGNO (ALLOCNO_REG (a))] = a;
}
if (mem_dest_p && copy_live_ranges_to_removed_store_destinations (i))
if (mem_dest_p && copy_info_to_removed_store_destinations (i))
merged_p = true;
}
ira_assert (new_pseudos_p || ira_max_point_before_emit == ira_max_point);