1. 10 Apr, 2005 5 commits
  2. 09 Apr, 2005 32 commits
    • Fix dg-do directive. · 2fee86e6
      From-SVN: r97932
      Steven G. Kargl committed
    • * gfortran.dg/nint_1.f90: New test. · 5f115a4b
      From-SVN: r97931
      Steven G. Kargl committed
    • simplify.c (gfc_simplify_anint): Use mpfr_round() · 8e1fa5d6
      * simplify.c (gfc_simplify_anint): Use mpfr_round()
      (gfc_simplify_dnint): ditto.
      (gfc_simplify_nint): ditto.
      
      From-SVN: r97930
      Steven G. Kargl committed
    • re PR libfortran/19106 ([4.0 only] segfault in executable for print *,sum(a,dim=2,mask=a>0)) · 50dd63a9
      2005-04-09  Thomas Koenig  <Thomas.Koenig@online.de>
      
              PR libfortran/19106
              PR libfortran/19014
              * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): ditto.
              If retarray->data is NULL (i.e. the front end does not
              know the rank and dimenson of the array), fill in its
              properties and allocate memory.
              Change the assertions about rank and dimension of retarray into
              runtime errors and only check them for retarray->data != NULL.
              Do the same for correcting the stride from 0 to 1 in retarray.
              (`m'name`'rtype_qual`_'atype_code): Likewise.
              * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Likewise.
              Change assertion about rank of array to runtime error.
              (`m'name`'rtype_qual`_'atype_code): Likewise.
              * generated/all_l4.c: Regenerated.
              * generated/all_l8.c: Regenerated.
              * generated/any_l4.c: Regenerated.
              * generated/any_l8.c: Regenerated.
              * generated/count_4_l4.c: Regenerated.
              * generated/count_4_l8.c: Regenerated.
              * generated/count_8_l4.c: Regenerated.
              * generated/count_8_l8.c: Regenerated.
              * generated/maxloc0_4_i4.c: Regenerated.
              * generated/maxloc0_4_i8.c: Regenerated.
              * generated/maxloc0_4_r4.c: Regenerated.
              * generated/maxloc0_4_r8.c: Regenerated.
              * generated/maxloc0_8_i4.c: Regenerated.
              * generated/maxloc0_8_i8.c: Regenerated.
              * generated/maxloc0_8_r4.c: Regenerated.
              * generated/maxloc0_8_r8.c: Regenerated.
              * generated/maxloc1_4_i4.c: Regenerated.
              * generated/maxloc1_4_i8.c: Regenerated.
              * generated/maxloc1_4_r4.c: Regenerated.
              * generated/maxloc1_4_r8.c: Regenerated.
              * generated/maxloc1_8_i4.c: Regenerated.
              * generated/maxloc1_8_i8.c: Regenerated.
              * generated/maxloc1_8_r4.c: Regenerated.
              * generated/maxloc1_8_r8.c: Regenerated.
              * generated/maxval_i4.c: Regenerated.
              * generated/maxval_i8.c: Regenerated.
              * generated/maxval_r4.c: Regenerated.
              * generated/maxval_r8.c: Regenerated.
              * generated/minloc0_4_i4.c: Regenerated.
              * generated/minloc0_4_i8.c: Regenerated.
              * generated/minloc0_4_r4.c: Regenerated.
              * generated/minloc0_4_r8.c: Regenerated.
              * generated/minloc0_8_i4.c: Regenerated.
              * generated/minloc0_8_i8.c: Regenerated.
              * generated/minloc0_8_r4.c: Regenerated.
              * generated/minloc0_8_r8.c: Regenerated.
              * generated/minloc1_4_i4.c: Regenerated.
              * generated/minloc1_4_i8.c: Regenerated.
              * generated/minloc1_4_r4.c: Regenerated.
              * generated/minloc1_4_r8.c: Regenerated.
              * generated/minloc1_8_i4.c: Regenerated.
              * generated/minloc1_8_i8.c: Regenerated.
              * generated/minloc1_8_r4.c: Regenerated.
              * generated/minloc1_8_r8.c: Regenerated.
              * generated/minval_i4.c: Regenerated.
              * generated/minval_i8.c: Regenerated.
              * generated/minval_r4.c: Regenerated.
              * generated/minval_r8.c: Regenerated.
              * generated/product_c4.c: Regenerated.
              * generated/product_c8.c: Regenerated.
              * generated/product_i4.c: Regenerated.
              * generated/product_i8.c: Regenerated.
              * generated/product_r4.c: Regenerated.
              * generated/product_r8.c: Regenerated.
              * generated/sum_c4.c: Regenerated.
              * generated/sum_c8.c: Regenerated.
              * generated/sum_i4.c: Regenerated.
              * generated/sum_i8.c: Regenerated.
              * generated/sum_r4.c: Regenerated.
              * generated/sum_r8.c: Regenerated.
      
      2005-04-09  Thomas Koenig  <Thomas.Koenig@online.de>
      
              * gfortran.fortran-torture/execute/intrinsic_anyall.f90:
              Added test for callee-allocated arrays with write statements.
              * gfortran.fortran-torture/execute/intrinsic_count.f90: Likewise.
              * gfortran.fortran-torture/execute/intrinsic_mmloc.f90: Likewise.
              * gfortran.fortran-torture/execute/intrinsic_mmval.f90: Likewise.
              * gfortran.fortran-torture/execute/intrinsic_product.f90: Likewise.
              * gfortran.fortran-torture/execute/intrinsic_sum.f90: Likewise.
      
      From-SVN: r97929
      Thomas Koenig committed
    • Fix problems with labels with hot/cold partitioning. · e5e625da
      From-SVN: r97928
      Caroline Tice committed
    • re PR libfortran/20163 ([4.0 only] gfortran - error opening direct access file) · bd0e28a2
      2005-04-09  Thomas Koenig  <Thomas.Koenig@online.de>
      
              PR libfortran/20163
              * gfortran.dg/open-options-blanks.f:  New test.
      
      From-SVN: r97924
      Thomas Koenig committed
    • re PR libfortran/20163 ([4.0 only] gfortran - error opening direct access file) · 130bcb37
      2005-04-09  Thomas Koenig <Thomas.Koenig@online.de>
      
              PR libfortran/20163
              * runtime/string.c (compare0): Use fstrlen() to
              strip trailing blanks from option string.
      
      From-SVN: r97923
      Thomas Koenig committed
    • * cp-tree.h (cp_deprecated): Remove. · bbaa6cf6
      From-SVN: r97922
      Kazu Hirata committed
    • Makefile.am: Remove libv3test.a. · 394476c9
      
      2005-04-08  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* testsuite/Makefile.am: Remove libv3test.a.
      	* testsuite/Makefile.in: Regenerate.
      	* testsuite/lib/libstdc++.exp (v3_target_compile): Fix comments.
      
      From-SVN: r97921
      Benjamin Kosnik committed
    • fix path to the new tests in my last changelog entry. · 305ead91
      From-SVN: r97920
      Andrew Pinski committed
    • re PR fortran/13257 ([4.0 only] Error instead of warning for missing comma in format string) · 53d8a8ac
      PR fortran/13257
      
      fortran/ChangeLog:
      	* io.c (check_format): Allow an optional comma
      	between descriptors.
      
      libgfortran/ChangeLog:
      	* format.c (parse_format_list): Allow an optional comma
      	between descriptors.
      
      testsuite/ChangeLog:
      	* comma_format_extension_[1234].f: New tests.
      
      From-SVN: r97919
      Andrew Pinski committed
    • tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD and TI_VA_LIST_FPR_COUNTER_FIELD. · 9d30f3c1
      	* tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
      	and TI_VA_LIST_FPR_COUNTER_FIELD.
      	(va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
      	* tree-pass.h (pass_stdarg): Add.
      	* tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
      	* tree-stdarg.c: New file.
      	* tree-stdarg.h: New file.
      	* Makefile.in (OBJS-common): Add tree-stdarg.o.
      	(tree-stdarg.o): Add dependencies.
      	* function.h (struct function): Add va_list_gpr_size and
      	va_list_fpr_size fields.
      	* function.c (allocate_struct_function): Initialize them.
      	* target.h (struct gcc_target): Add stdarg_optimize_hook.
      	* target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
      	(TARGET_INITIALIZER): Add it.
      
      	* config/i386/i386.c (ix86_build_builtin_va_list): Initialize
      	va_list_{g,f}pr_counter_field.
      	(ix86_setup_incoming_varargs): Don't do anything if reg_save
      	area will not be used.  Only save registers that tree-stdarg.c
      	detected they need saving.
      	(ix86_va_start): Don't set up fields that won't be used.
      
      	* config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
      	va_list_{g,f}pr_counter_field.
      	(setup_incoming_varargs): Don't do anything if reg_save
      	area will not be used.  Only save registers that tree-stdarg.c
      	detected they need saving.
      	(rs6000_va_start): Don't set up fields that won't be used.
      
      	* config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
      	(alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
      	(va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
      	(TARGET_STDARG_OPTIMIZE_HOOK): Define.
      
      	* gcc.dg/tree-ssa/stdarg-1.c: New test.
      	* gcc.dg/tree-ssa/stdarg-2.c: New test.
      	* gcc.dg/tree-ssa/stdarg-3.c: New test.
      	* gcc.dg/tree-ssa/stdarg-4.c: New test.
      	* gcc.dg/tree-ssa/stdarg-5.c: New test.
      	* gcc.c-torture/execute/stdarg-4.c: New test.
      
      	* gcc.dg/vmx/varargs-1.c (f1, f2, f3): Add missing va_end.
      
      From-SVN: r97916
      Jakub Jelinek committed
    • re PR target/20795 (ICE in assign_parms) · 1b803355
      	PR target/20795
      	* config/i386/i386.c (construct_container): Pass empty aligned
      	struct, union or class in memory.
      
      	* g++.dg/abi/param2.C: New test.
      
      From-SVN: r97912
      Jakub Jelinek committed
    • * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove. · b305db71
      From-SVN: r97911
      Kazu Hirata committed
    • cp-tree.h (EXCEPTION_CLEANUP_NAME, [...]): Remove. · ecd99204
      	* cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
      	CONV_STATIC_CAST): Remove.
      
      From-SVN: r97910
      Kazu Hirata committed
    • cp-tree.h (EXCEPTION_CLEANUP_NAME, [...]): Remove. · a457d98c
      	* cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
      	CONV_STATIC_CAST): Remove.
      
      From-SVN: r97908
      Kazu Hirata committed
    • * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove. · eac02e59
      From-SVN: r97907
      Kazu Hirata committed
    • * cp-tree.h (cxx_alignof): Remove. · 9c45842f
      From-SVN: r97906
      Kazu Hirata committed
    • sched-int.h (haifa_insn_data): Remove blockage and units. · 728522c3
      	* sched-int.h (haifa_insn_data): Remove blockage and units.
      	(INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
      	ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
      	MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
      
      From-SVN: r97905
      Kazu Hirata committed
    • dominance.c, [...]: Fix comment typos. · f3b569ca
      	* dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
      	tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
      	config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
      	config/rs6000/predicates.md: Fix comment typos.
      
      From-SVN: r97904
      Kazu Hirata committed
    • cfglayout.c (copy_bbs): Rename n_edges to num_edges. · 7b0cab99
      	* cfglayout.c (copy_bbs): Rename n_edges to num_edges.
      	* cfgloop.c (get_loop_exit_edges): Likewise.
      	* cfgloopmanip.c (fix_irreducible_loops): Likewise.
      	(unloop): Likewise.
      	* loop-unroll.c (analyze_insns_in_loop): Likewise.
      	* tree-cfg.c (dump_cfg_status): Likewise.
      
      Co-Authored-By: Steven Bosscher <stevenb@suse.de>
      
      From-SVN: r97903
      Jan Hubicka committed
    • predicates.md (altivec_register_operand): Remove redundant match_code test. · 5b296c8a
              * config/rs6000/predicates.md (altivec_register_operand): Remove
              redundant match_code test.
              (gpc_reg_operand): Same.
              (cc_reg_operand): Same.
              (cc_reg_not_cr0_operand): Same.
      
      From-SVN: r97902
      David Edelsohn committed
    • Forgotten hunk from my last merge patch: · 0be0a2be
      	* final.c (output_addr_const): Do not call mark_referenced.
      
      From-SVN: r97897
      Jan Hubicka committed
    • tree-ssa.texi: Add immediate use documentation. · 43ae1e1c
      
      
      2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
      
      	* doc/tree-ssa.texi: Add immediate use documentation.
      
      From-SVN: r97895
      Andrew MacLeod committed
    • arm.c (FL_WBUF): Define. · abac3b49
      	* arm.c (FL_WBUF): Define.
      	(arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
      	(arm_is_6_or_7): Delete.
      	(arm_tune_wbuf): New.
      	(arm_override_options): Set arm_tune_wbuf.
      	* arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
      	(arm_is_6_or_7): Delete declaration.
      	(arm_tune_wbuf): New declartion.
      	* arm.md (is_strongarm): Derive from arm_tune_strongarm.
      	(model_wbuf): Derive from arm_tune_wbuf.
      	* arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
      	(arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
      	(arm740t): Mark CPUs as having a write buffer.
      
      From-SVN: r97894
      Richard Earnshaw committed
    • match.c (match_arithmetic_if): Remove gfc_ prefix and correct comment according… · 835d64ab
      match.c (match_arithmetic_if): Remove gfc_ prefix and correct comment according to GNU coding style.
      
      	* match.c (match_arithmetic_if): Remove gfc_ prefix and correct
      	comment according to GNU coding style.
      
      From-SVN: r97890
      Francois-Xavier Coudert committed
    • i386.md (*fp_jcc_7_387): Use 'const0_operand' instead of 'const_double_operand'… · 17153653
      i386.md (*fp_jcc_7_387): Use 'const0_operand' instead of 'const_double_operand' in operand 2 constraints.
      
      	* config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
      	of 'const_double_operand' in operand 2 constraints.  Update enable
      	condition.
      
      From-SVN: r97887
      Uros Bizjak committed
    • * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL) · d8b42d06
      	(BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
      	* optabs.h (enum optab_index): Add new OTI_lfloor.
      	(lfloor_optab): Define corresponding macro.
      	* optabs.c (init_optabs): Initialize lfloor_optab.
      	* genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
      	and lfloordi2 patterns.
      
      	* builtins.c (expand_builtin_int_roundingfn): New prototype.
      	(expand_builtin_int_roundingfn): New function.
      	(fold_builtin_int_roundingfn): New prototype.
      	(fold_builtin_int_roundingfn): New function, renamed from
      	fold_builtin_lround.
      	Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
      	BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
      	(fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
      	BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
      	(mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
      	(expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
      	BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
      
      	* convert.c (convert_to_integer): Convert (long int)floor{,f,l},
      	into lfloor built-in function and (long long int)floor{,f,l} into
      	llfloor built-in function.
      	* fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
      	BUILT_IN_LLFLOOR.
      
      testsuite:
      
      	* gcc.dg/builtins-53.c: New test.
      
      From-SVN: r97886
      Uros Bizjak committed
    • c-common.def: Move FOR_STMT... · fbc315db
      ./	* c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
      	CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
      	* c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
      	(DO_COND, DO_BODY): Likewise.
      	(FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
      	(SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
      	(c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
      	BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
      	(build_continue_stmt, build_break_stmt): Don't declare.
      	(c_do_switch_warnings): Update declaration.
      	* c-gimplify.c (enum bc_t): Remove.
      	(struct c_gimplify_ctx, ctxp): Remove.
      	(push_context, pop_context): Remove static functions.
      	(c_genericize): Don't call push_context or pop_context.
      	(begin_bc_block, finish_bc_block): Remove static functions.
      	(build_bc_goto): Likewise.
      	(gimplify_c_loop): Likewise.
      	(gimplify_for_stmt, gimplify_while_stmt): Likewise.
      	(gimplify_do_stmt, gimplify_switch_stmt): Likewise.
      	(c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
      	DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
      	* c-common.c (c_do_switch_warnings): Rename from
      	c_do_switch_warnings_1.
      	(c_do_switch_warnings) [old version]: Remove.
      	(c_do_switch_expr_warnings): Remove.
      	* c-typeck.c (c_finish_case): Call new c_do_switch_warnings
      	function instead of c_do_switch_expr_warnings.
      	* c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
      	CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
      	* c-pretty-print.c (pp_c_statement): Likewise.
      	* c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
      cp/
      	* cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
      	CONTINUE_STMT, SWITCH_STMT.
      	* cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
      	BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
      	(WHILE_COND, WHILE_BODY): Define.
      	(DO_COND, DO_BODY): Define.
      	(FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
      	(SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
      	* cp-gimplify.c (enum bc_t): Define.
      	(struct cp_gimplify_ctx, ctxp): Define.
      	(push_context, pop_context): New static functions.
      	(begin_bc_block, finish_bc_block): New static functions.
      	(build_bc_goto): New static function.
      	(gimplify_cp_loop, gimplify_for_stmt): New static functions.
      	(gimplify_while_stmt, gimplify_do_stmt): Likewise.
      	(gimplify_switch_stmt): Likewise.
      	(cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
      	SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
      	(cp_genericize): Call push_context and pop_context.
      	* semantics.c (finish_break_stmt): Just call build_stmt
      	(BREAK_STMT) rather than build_break_stmt.
      	(finish_continue_stmt): Corresponding change.
      	* decl.c (pop_switch): Update call to c_do_switch_warnings for new
      	parameters.
      	* cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
      	WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
      	* dump.c (cp_dump_tree): Likewise.
      
      From-SVN: r97885
      Ian Lance Taylor committed
    • backport: copy-prop, incremental SSA updating of FUD chains and newly exposed symbols. · 0bca51f0
      
      	Merge from tree-cleanup-branch: VRP, store CCP, store
      	    copy-prop, incremental SSA updating of FUD chains and
      	    newly exposed symbols.
      
      	* Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
      	(OBJS-common): Add tree-vrp.o.
      	(tree-vrp.o): New rule.
      	* basic-block.h (nearest_common_dominator_for_set): Declare.
      	* common.opt (ftree-store-ccp): New flag.
      	(ftree-copy-prop): New flag.
      	(ftree-vrp): New flag.
      	(ftree-store-copy-prop): New flag.
      	* dominance.c (nearest_common_dominator_for_set): New.
      	* domwalk.c (walk_dominator_tree): Only traverse
      	statements in blocks marked in walk_data->interesting_blocks.
      	* domwalk.h (struct dom_walk_data): Add field interesting_blocks.
      	* fold-const.c (fold): Handle ASSERT_EXPR.
      	* opts.c (decode_options): Set flag_tree_copy_prop at -O1.
      	Set flag_tree_store_ccp, flag_tree_store_copy_prop and
      	flag_tree_vrp at -O2.
      	* timevar.def (TV_TREE_VRP): Define.
      	(TV_TREE_COPY_PROP): Define.
      	(TV_TREE_STORE_COPY_PROP): Define.
      	(TV_TREE_SSA_INCREMENTAL): Define.
      	(TV_TREE_STORE_CCP): Define.
      	* tree-cfg.c (tree_can_merge_blocks_p): Remove reference
      	to kill_redundant_phi_nodes from comment.
      	(verify_expr): Handle ASSERT_EXPR.
      	* tree-dfa.c (mark_new_vars_to_rename): Remove second
      	argument.  Update all users.
      	(mark_call_clobbered_vars_to_rename): Remove.  Update all
      	users.
      	* tree-flow-inline.h (unmodifiable_var_p): New.
      	* tree-flow.h (enum value_range_type): Declare.
      	(struct value_range_def): Declare.
      	(value_range): Declare.
      	(remove_all_phi_nodes_for): Remove.  Update all users.
      	(find_phi_node_for): Declare.
      	(add_type_alias): Declare.
      	(count_uses_and_derefs): Declare.
      	(kill_redundant_phi_nodes): Remove.
      	(rewrite_into_ssa): Remove.
      	(rewrite_def_def_chains): Remove.
      	(update_ssa, register_new_name_mapping, create_new_def_for,
      	need_ssa_update_p, name_registered_for_update_p,
      	release_ssa_name_after_update_ssa, dump_repl_tbl,
      	debug_repl_tbl, dump_names_replaced_by,
      	debug_names_replaced_by, mark_sym_for_renaming,
      	mark_set_for_renaming, get_current_def, set_current_def,
      	get_value_range, dump_value_range, debug_value_range,
      	dump_all_value_ranges, debug_all_value_ranges,
      	expr_computes_nonzero, loop_depth_of_name,
      	unmodifiable_var_p): Declare.
      	* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
      	ASSERT_EXPR.
      	* tree-into-ssa.c (block_defs_stack): Update comment.
      	(old_ssa_names, new_ssa_names, old_virtual_ssa_names,
      	syms_to_rename, names_to_release, repl_tbl,
      	need_to_initialize_update_ssa_p, need_to_update_vops_p,
      	need_to_replace_names_p): New locals.
      	(NAME_SETS_GROWTH_FACTOR): Define.
      	(struct repl_map_d): Declare.
      	(struct mark_def_sites_global_data): Add field
      	interesting_blocks.
      	(enum rewrite_mode): Declare.
      	(REGISTER_DEFS_IN_THIS_STMT): Define.
      	(compute_global_livein): Use last_basic_block instead of
      	n_basic_blocks.
      	(set_def_block): Remove last argument.  Update all callers.
      	(prepare_use_operand_for_rename): Remove.  Update all callers.
      	(prepare_def_operand_for_rename): Remove.  Update all callers.
      	(symbol_marked_for_renaming): New.
      	(is_old_name): New.
      	(is_new_name): New.
      	(repl_map_hash): New.
      	(repl_map_eq): New.
      	(repl_map_free): New.
      	(names_replaced_by): New.
      	(add_to_repl_tbl): New.
      	(add_new_name_mapping): New.
      	(mark_def_sites): Assume that all the operands in the
      	statement are in normal form.
      	(find_idf): Assert that the block in the stack is valid.
      	(get_default_def_for): New.
      	(insert_phi_nodes_for): Add new argument 'update_p'.
      	Add documentation.
      	If update_p is true, add a new mapping between the LHS of
      	each new PHI and the name that it replaces.
      	(insert_phi_nodes_1): Only call find_idf if needed.
      	(get_reaching_def): Call get_default_def_for.
      	(rewrite_operand): Remove.
      	(rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
      	and REWRITE_THIS_STMT are false.
      	Assume that all the operands in the statement are in
      	normal form.
      	(rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
      	(rewrite_virtual_phi_arguments): Remove.
      	(invalidate_name_tags): Remove.
      	(register_new_update_single, register_new_update_set,
      	rewrite_update_init_block, replace_use,
      	rewrite_update_fini_block, rewrite_update_stmt,
      	rewrite_update_phi_arguments): New.
      	rewrite_blocks): Remove argument 'fix_virtual_phis'.
      	Add arguments 'entry', 'what' and 'blocks'.
      	Initialize the dominator walker according to 'what' and
      	'blocks'.
      	Start the dominator walk at 'entry'.
      	(mark_def_site_blocks): Add argument 'interesting_blocks'.
      	Use it to configure the dominator walker.
      	(rewrite_into_ssa): Remove argument 'all'.
      	Make internal.
      	(rewrite_all_into_ssa): Remove.
      	(rewrite_def_def_chains): Remove.
      	(mark_def_interesting, mark_use_interesting,
      	prepare_phi_args_for_update, prepare_block_for_update,
      	prepare_def_site_for, prepare_def_sites,
      	dump_names_replaced_by, debug_names_replaced_by,
      	dump_repl_tbl, debug_repl_tbl, init_update_ssa,
      	delete_update_ssa, create_new_def_for,
      	register_new_name_mapping, mark_sym_for_renaming,
      	mark_set_for_renaming, need_ssa_update_p,
      	name_registered_for_update_p, ssa_names_to_replace,
      	release_ssa_name_after_update_ssa,
      	insert_updated_phi_nodes_for, update_ssa): New.
      	* tree-loop-linear.c (linear_transform_loops): Call
      	update_ssa instead of rewrite_into_ssa.
      	* tree-optimize.c (vars_to_rename): Remove.
      	Update all users.
      	(init_tree_optimization_passes): Replace
      	pass_redundant_phi with pass_copy_prop.
      	Add pass_vrp.
      	Replace pass_ccp with pass_store_ccp.
      	Add pass_store_copy_prop after pass_store_ccp.
      	(execute_todo): If the TODO_ flags don't include updating
      	the SSA form, assert that it does not need to be updated.
      	Call update_ssa instead of rewrite_into_ssa and
      	rewrite_def_def_chains.
      	If TODO_verify_loops is set, call verify_loop_closed_ssa.
      	(tree_rest_of_compilation):
      	* tree-pass.h (TODO_dump_func, TODO_ggc_collect,
      	TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
      	TODO_cleanup_cfg): Renumber.
      	(TODO_verify_loops, TODO_update_ssa,
      	TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
      	TODO_update_ssa_only_virtuals): Define.
      	(pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
      	Declare.
      	* tree-phinodes.c (make_phi_node): Update documentation.
      	(remove_all_phi_nodes_for): Remove.
      	(find_phi_node_for): New.
      	* tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
      	* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
      	(interpret_rhs_modify_expr): Likewise.
      	* tree-sra.c (decide_instantiations): Mark all symbols in
      	SRA_CANDIDATES for renaming.
      	(mark_all_v_defs_1): Rename from mark_all_v_defs.
      	(mark_all_v_defs): New function.  Update all users to call it
      	with the whole list of scalarized statements, not just the
      	first one.
      	* tree-ssa-alias.c (count_ptr_derefs): Make extern.
      	(compute_flow_insensitive_aliasing): If the tag is
      	unmodifiable and the variable isn't or vice-versa, don't
      	make them alias of each other.
      	(setup_pointers_and_addressables): If the type tag for
      	VAR is about to change, mark the old one for renaming.
      	(add_type_alias): New.
      	* tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
      	(ccp_lattice_t): Rename from latticevalue.
      	(value): Remove.  Update all users.
      	(const_val): New local variable.
      	(do_store_ccp): New local variable.
      	(dump_lattice_value): Handle UNINITIALIZED.
      	(debug_lattice_value): New.
      	(get_default_value): Re-write.
      	(set_lattice_value): Re-write.
      	(def_to_varying): Remove.  Update all users.
      	(likely_value): Return VARYING for statements that make
      	stores when STORE_CCP is false.
      	Return VARYING for any statement other than MODIFY_EXPR,
      	COND_EXPR and SWITCH_EXPR.
      	(ccp_initialize): Re-write.
      	(replace_uses_in, replace_vuse_in, substitute_and_fold):
      	Move to tree-ssa-propagate.c.
      	(ccp_lattice_meet): Handle memory stores when
      	DO_STORE_CCP is true.
      	(ccp_visit_phi_node): Likewise.
      	(ccp_fold): Likewise.
      	(evaluate_stmt): Likewise.
      	(visit_assignment): Likewise.
      	(ccp_visit_stmt): Likewise.
      	(execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
      	into DO_STORE_CCP.
      	(do_ssa_ccp): New.
      	(pass_ccp): Use it.
      	(do_ssa_store_ccp): New.
      	(gate_store_ccp): New.
      	(pass_store_ccp): Declare.
      	* tree-ssa-copy.c: Include tree-ssa-propagate.h.
      	(may_propagate_copy): Reformat.
      	Don't abort if ORIG is a virtual and DEST isn't.
      	If NEW does not have alias information but DEST does,
      	copy it.
      	(copy_of, cached_last_copy_of, do_store_copy_prop, enum
      	copy_prop_kind, which_copy_prop): Declare.
      	(stmt_may_generate_copy, get_copy_of_val,
      	get_last_copy_of, set_copy_of_val, dump_copy_of,
      	copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
      	copy_prop_visit_stmt, copy_prop_visit_phi_node,
      	init_copy_prop, fini_copy_prop, execute_copy_prop,
      	gate_copy_prop, do_copy_prop, gate_store_copy_prop,
      	store_copy_prop): New.
      	(pass_copy_prop, pass_store_copy_prop): Declare.
      	* tree-ssa-dom.c (struct opt_stats_d): Add fields
      	'num_const_prop' and 'num_copy_prop'.
      	(cprop_operand): Update them.
      	(dump_dominator_optimization_stats): Dump them.
      	(tree_ssa_dominator_optimize): Call update_ssa instead of
      	rewrite_into_ssa.
      	(loop_depth_of_name): Declare extern.
      	(simplify_cond_and_lookup_avail_expr): Guard against NULL
      	values for LOW or HIGH.
      	(cprop_into_successor_phis): Only propagate if NEW != ORIG.
      	(record_equivalences_from_stmt): Call expr_computes_nonzero.
      	(cprop_operand): Only propagate if VAL != OP.
      	* tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
      	statement for renaming.
      	* tree-ssa-loop-im.c (move_computations): Call update_ssa.
      	* tree-ssa-loop-ivopts.c (rewrite_address_base): Call
      	add_type_alias if necessary.
      	Call mark_new_vars_to_rename.
      	(tree_ssa_iv_optimize): If new symbols need to be renamed,
      	mark every statement updated, call update_ssa and
      	rewrite_into_loop_closed_ssa.
      	* tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
      	from LIVEIN if VAR is a virtual.
      	* tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
      	* tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
      	(get_call_expr_operands): Reformat statement.
      	(add_stmt_operand): Don't create V_MAY_DEFs for read-only
      	symbols.
      	* tree-ssa-propagate.c (ssa_prop_init): Initialize
      	SSA_NAME_VALUE for every name.
      	(first_vdef, stmt_makes_single_load, stmt_makes_single_store,
      	get_value_loaded_by): New.
      	(replace_uses_in, replace_vuses_in, replace_phi_args_in,
      	substitute_and_fold): Move from tree-ssa-ccp.c.
      	* tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
      	first_vdef, stmt_makes_single_load, stmt_makes_single_store,
      	get_value_loaded_by, replace_uses_in, substitute_and_fold):
      	Declare.
      	* tree-ssa.c (verify_use): Fix error message.
      	(propagate_into_addr, replace_immediate_uses, get_eq_name,
      	check_phi_redundancy, kill_redundant_phi_nodes,
      	pass_redundant_phi): Remove.  Update all users.
      	* tree-vect-transform.c (vect_create_data_ref_ptr): Call
      	add_type_alias, if necessary.
      	* tree-vectorizer.h (struct _stmt_vect_info): Update
      	documentation for field 'memtag'.
      	* tree-vrp.c: New file.
      	* tree.def (ASSERT_EXPR): Define.
      	* tree.h (ASSERT_EXPR_VAR): Define.
      	(ASSERT_EXPR_COND): Define.
      	(SSA_NAME_VALUE_RANGE): Define.
      	(struct tree_ssa_name): Add field 'value_range'.
      	(PHI_REWRITTEN): Remove.
      	(struct tree_phi_node): Remove field 'rewritten'.
      	* doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
      	-ftree-store-copy-prop): Document.
      	* doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
      	Document usage of update_ssa.
      
      testsuite/ChangeLog
      
      	* g++.dg/tree-ssa/pr18178.C: New test.
      	* gcc.c-torture/execute/20030216-1.x: Ignore at -O1.
      	* gcc.c-torture/execute/20041019-1.c: New test.
      	* gcc.dg/tree-ssa/20041008-1.c: New test.
      	* gcc.dg/tree-ssa/ssa-ccp-12.c: New test.
      	* gcc.dg/tree-ssa/20030731-2.c: Update to use -fdump-tree-store_ccp.
      	* gcc.dg/tree-ssa/20030917-1.c: Likewise.
      	* gcc.dg/tree-ssa/20030917-3.c: Likewise.
      	* gcc.dg/tree-ssa/20040721-1.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-1.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-2.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-3.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-7.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-9.c: Likewise.
      
      From-SVN: r97884
      Diego Novillo committed
    • Daily bump. · 45f9480e
      [[Split portion of a mixed commit.]]
      
      From-SVN: r97880.2
      GCC Administrator committed
    • re PR libstdc++/20909 (incorrect floating point format) · eaf727f9
      2005-04-08  Paolo Carlini  <pcarlini@suse.de>
      
      	PR libstdc++/20909
      	* include/bits/locale_facets.tcc (num_put<>::_M_insert_float):
      	Don't even try to group numbers like 2e20, i.e., no decimal
      	point, scientific notation.
      	* testsuite/22_locale/num_put/put/char/20909.cc: New.
      	* testsuite/22_locale/num_put/put/wchar_t/20909.cc: Likewise.
      
      From-SVN: r97873
      Paolo Carlini committed
  3. 08 Apr, 2005 3 commits