1. 02 Jun, 2005 15 commits
    • cgraph.c (dump_cgraph_node): Print new flags. · e7d6beb0
      
      	* cgraph.c (dump_cgraph_node): Print new flags.
      	(dump_cgraph_varpool_node): Likewise.
      	(decide_variable_is_needed): Initialize externally_visible flag.
      	* cgraph.h (cgraph_local_info): Add externally_visible flag.
      	(cgraph_varpool_node): Likewise.
      	(cgraph_function_flags_ready): Declare.
      	* cgraph.c (cgraph_mark_local_functions): Rename to ...
      	(cgraph_function_and_variable_visibility) ... this one; handle
      	externally_visible flags.
      	(decide_is_function_needed): Set externally_visible flag.
      	(cgraph_finalize_function): Deal properly with early cleanups.
      	(cgraph_optimize): Update call of
      	cgraph_function_and_variable_visibility.
      
      From-SVN: r100491
      Jan Hubicka committed
    • > 2005-06-02 Steven Bosscher <stevenb@suse.de> > Mostafa Hagog... · 75c70254
      > 2005-06-02 Steven Bosscher  <stevenb@suse.de>
      >            Mostafa Hagog <mustafa@il.ibm.com>
      >
      >       * cfgloop.h (doloop_condition_get): Make external.
      >       * loop-doloop.c (doloop_condition_get): Generalize to make it
      >       usable in modulo-sched.c.
      >       * modulo-sched.c (doloop_register_get): Use
      >       doloop_condition_get instead of duplicating it.
      
      Co-Authored-By: Mostafa Hagog <mustafa@il.ibm.com>
      
      From-SVN: r100490
      Steven Bosscher committed
    • decl.c (start_decl): Simplify specialization handling. · 9267ee62
      	* decl.c (start_decl): Simplify specialization handling. Remove
      	unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
      	* mangle.c (discriminator_for_local_entity): Use VEC_index.
      
      From-SVN: r100488
      Nathan Sidwell committed
    • re PR c++/20350 (extern template and struct initializer and specification for a static variable) · 58fb06b4
      cp:
      	PR c++/20350
      	* decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
      testsuite:
      	PR c++/20350
      	* g++.dg/template/spec24.C: New.
      
      From-SVN: r100486
      Nathan Sidwell committed
    • local-alloc.c (update_equiv_regs): When substituting sole definition into sole use of a reg... · ccb4e87e
      	* local-alloc.c (update_equiv_regs): When substituting sole definition
      	into sole use of a reg, delete it from liveness information.
      
      From-SVN: r100483
      Bernd Schmidt committed
    • re PR c++/21151 (ICE when compiling c++ PCH of class definition within template function.) · fbd4ef4c
      cp:
      	PR c++/21151
      	* name-lookup.c (pushtag): Push local class even in a template.
      testsuite:
      	PR c++/21151
      	* g++.dg/pch/local-1.C: New.
      	* g++.dg/pch/local-1.Hs: New.
      
      From-SVN: r100482
      Nathan Sidwell committed
    • reload1.c (reload): Undo 2005-04-20 change. · bf8f8254
      	* reload1.c (reload): Undo 2005-04-20 change.  Make sure we detect
      	the correct set of init_insns that need deletion.
      
      From-SVN: r100481
      Bernd Schmidt committed
    • MAINTAINERS (Write After Approval): Add self. · d29e107f
      2005-06-01  Jerry DeLisle  <jvdelisle@verizon.net>
      
      	* MAINTAINERS (Write After Approval): Add self.
      
      From-SVN: r100480
      Jerry DeLisle committed
    • * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4. · 4ce7a551
      From-SVN: r100479
      Kaz Kojima committed
    • [multiple changes] · 227858d1
      2005-06-01  Diego Novillo  <dnovillo@redhat.com>
      
      	PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
      	PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
      	* fold-const.c (invert_tree_comparison): Make extern.
      	* tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
      	(struct value_range_def): Limewise.
      	(get_value_range): Remove.
      	(dump_value_range): Remove.
      	(dump_all_value_ranges): Remove.
      	(debug_all_value_ranges): Remove.
      	(vrp_evaluate_conditional): Declare.
      	* tree-ssa-propagate.c (struct prop_stats_d): Add field
      	num_pred_folded.
      	(substitute_and_fold): Add argument use_ranges_p.
      	Update all callers.
      	If use_ranges_p is true, call fold_predicate_in to fold
      	predicates using range information.
      	Ignore ASSERT_EXPRs.
      	Change debugging output to only show statements that have been
      	folded.
      	(replace_phi_args_in): Move debugging output code from
      	substitute and fold.
      	(fold_predicate_in): New local function.
      	* tree-ssa-propagate.h (enum value_range_type): Move from
      	tree-flow.h.
      	(struct value_range_d): Likewise.
      	Add field 'equiv'.
      	(value_range_t): Rename from value_range.
      	* tree-vrp.c (found_in_subgraph): Rename from found.
      	(get_opposite_operand): Remove.
      	(struct assert_locus_d): Declare.
      	(assert_locus_t): Declare.
      	(need_assert_for): Declare.
      	(asserts_for): Declare.
      	(blocks_visited): Declare.
      	(vr_value): Declare.
      	(set_value_range): Add argument 'equiv'.
      	Don't drop to VARYING ranges that cover all values in the
      	type.
      	Make deep copy of equivalence set 'equiv'.
      	(copy_value_range): New local function.
      	(set_value_range_to_undefined): New local function.
      	(compare_values): Return -2 if either value has overflowed.
      	(range_includes_zero_p): New local function.
      	(extract_range_from_assert): Flip the predicate code if the
      	name being asserted is on the RHS of the predicate.
      	Avoid creating unnecessary symbolic ranges if the comparison
      	includes another name with a known numeric range.
      	Update the equivalnce set of the new range when asserting
      	EQ_EXPR predicates.
      	(extract_range_from_ssa_name): Update the equivalence set of
      	the new range with VAR.
      	(extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
      	If -fwrapv is used, set the resulting range to VARYING if the
      	operation overflows.  Otherwise, use TYPE_MIN_VALUE and
      	TYPE_MAX_VALUE to represent -INF and +INF.
      	Fix handling of *_DIV_EXPR.
      	(extract_range_from_unary_expr): Handle MINUS_EXPR and
      	ABS_EXPR properly by switching the range around if necessary.
      	(extract_range_from_comparison): New local function.
      	(extract_range_from_expr): Call it.
      	(adjust_range_with_scev): Do not adjust the range if using
      	wrapping arithmetic (-fwrapv).
      	(dump_value_range): Also show equivalence set.
      	Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
      	(build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
      	(infer_value_range): Change return value to bool.
      	Add arguments 'comp_code_p' and 'val_p'.
      	Do not attempt to infer ranges from statements that may throw.
      	Store the comparison code in comp_code_p.
      	Store the other operand to be used in the predicate in val_p.
      	(dump_asserts_for): New.
      	(debug_asserts_for): New.
      	(dump_all_asserts): New.
      	(debug_all_asserts): New.
      	(register_new_assert_for): New.
      	(register_edge_assert_for): New.
      	(find_conditional_asserts): New.
      	(find_assert_locations): New.
      	(process_assert_insertions_for): New.
      	(process_assert_insertions): New.
      	(insert_range_assertions): Initialize found_in_subgraph,
      	blocks_visited, need_assert_for and asserts_for.
      	Call find_assert_locations and process_assert_insertions.
      	(remove_range_assertions): Add more documentation.
      	(vrp_initialize): Change return type to void.
      	Do not try to guess if running VRP is worth it.
      	(compare_name_with_value): New.
      	(compare_names): New.
      	(vrp_evaluate_conditional): Add argument 'use_equiv_p'.  If
      	use_equiv_p is true, call compare_names and
      	compare_name_with_value to compare all the ranges for every
      	name in the equivalence set of the predicate operands.
      	Update all callers.
      	(vrp_meet): Try harder not to derive a VARYING range.
      	If two values meet, the resulting equivalence set is the
      	intersection of the two equivalence sets.
      	(vrp_visit_phi_node): Call copy_value_range to get the current
      	range information of the LHS.
      	(vrp_finalize): Create a value vector representing all the
      	names that ended up with exactly one value in their range.
      	Call substitute_and_fold.
      	(execute_vrp): Document equivalence sets in ranges.
      	* tree.h (SSA_NAME_VALUE_RANGE): Remove.
      	(struct tree_ssa_name): Remove field value_range.
      	(invert_tree_comparison): Declare.
      
      testsuite/ChangeLog
      
      2005-06-01  Diego Novillo  <dnovillo@redhat.com>
      
      	PR 14341, PR 21332, PR 20701, PR 21086, PR 21090
      	PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
      	* gcc.dg/tree-ssa/pr14341.c: New test.
      	* gcc.dg/tree-ssa/pr14841.c: New test.
      	* gcc.dg/tree-ssa/pr20701.c: New test.
      	* gcc.dg/tree-ssa/pr21086.c: New test.
      	* gcc.dg/tree-ssa/pr21090.c: New test.
      	* gcc.dg/tree-ssa/pr21332.c: New test.
      	* gcc.dg/tree-ssa/pr21458.c: New test.
      	* gcc.dg/tree-ssa/pr21658.c: New test.
      	* gcc.dg/tree-ssa/vrp01.c: New test.
      	* gcc.dg/tree-ssa/vrp02.c: New test.
      	* gcc.dg/tree-ssa/vrp03.c: New test.
      	* gcc.dg/tree-ssa/vrp04.c: New test.
      	* gcc.dg/tree-ssa/vrp05.c: New test.
      	* gcc.dg/tree-ssa/vrp06.c: New test.
      	* gcc.dg/tree-ssa/vrp07.c: New test.
      	* gcc.dg/tree-ssa/vrp08.c: New test.
      	* gcc.dg/tree-ssa/vrp09.c: New test.
      	* gcc.dg/tree-ssa/vrp10.c: New test.
      	* gcc.dg/tree-ssa/vrp11.c: New test.
      	* gcc.dg/tree-ssa/vrp12.c: New test.
      	* gcc.dg/tree-ssa/vrp13.c: New test.
      
      2005-06-01  Alexandre Oliva  <aoliva@redhat.com>
      
      	PR 21029
      	* gcc.dg/tree-ssa/pr21029.c: New test.
      
      From-SVN: r100478
      Diego Novillo committed
    • re PR tree-optimization/21839 (ICE for missing V_DEFS caused by salias with empty structures) · 292a398f
      2005-06-01  Daniel Berlin  <dberlin@dberlin.org>
      
      	Fix PR tree-optimization/21839
      
      	* gimplify.c (zero_sized_field_decl): New function.
      	(gimplify_init_ctor_eval): Use it.
      
      From-SVN: r100477
      Daniel Berlin committed
    • * libiberty.h (vsnprintf): Add format attribute. · 39da352f
      From-SVN: r100476
      Kaveh R. Ghazi committed
    • * MAINTAINERS (Write After Approval): Add self. · e93196c3
      From-SVN: r100475
      Josh Conner committed
    • Daily bump. · bfbd297c
      [[Split portion of a mixed commit.]]
      
      From-SVN: r100473.2
      GCC Administrator committed
  2. 01 Jun, 2005 25 commits