Devang Patel [Mon, 11 Apr 2005 19:47:44 +0000 (12:47 -0700)]
rs6000.c (rs6000_emit_vector_select): Fix vector select operand ordering.
* config/rs6000.c (rs6000_emit_vector_select): Fix vector select
operand ordering.
From-SVN: r97981
Andrew Pinski [Mon, 11 Apr 2005 19:00:46 +0000 (19:00 +0000)]
fold-const.c (fold_binary_op_with_conditional_arg): use fold_buildN instead of "fold (buildN" in some non obvious places.
2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
* fold-const.c (fold_binary_op_with_conditional_arg):
use fold_buildN instead of "fold (buildN" in some
non obvious places.
(fold_unary): Likewise.
(fold_binary): Likewise.
From-SVN: r97980
Daniel Berlin [Mon, 11 Apr 2005 18:55:47 +0000 (18:55 +0000)]
re PR tree-optimization/20612 (ICE in verify_ssa for -ftree-loop-linear)
2005-04-11 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/20612
* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
handling
(perfect_nestify): preheaderbb is *not* part of loop of the
old destination.
From-SVN: r97979
Andrew Pinski [Mon, 11 Apr 2005 18:25:08 +0000 (18:25 +0000)]
alias-1.c: New test.
2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
* gcc.dg/tree-ssa/alias-1.c: New test.
2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
* tree-ssa-alias.c (may_alias_p): If the variable
is a global variable and the pointer is parameter
and -fargument-noalias-global is used, then
the pointer cannot alias the variable.
From-SVN: r97978
Kaveh R. Ghazi [Mon, 11 Apr 2005 17:49:47 +0000 (17:49 +0000)]
libiberty.h (fopen_unlocked, [...]): Provide prototypes for new functions.
include:
* libiberty.h (fopen_unlocked, fdopen_unlocked, freopen_unlocked):
Provide prototypes for new functions.
libiberty:
* Makefile.in (CFILES): Add fopen_unlocked.c.
(REQUIRED_OFILES): Add ./fopen_unlocked.o.
Regenerate dependencies.
* configure.ac: Check for stdio_ext.h and __fsetlocking.
* fopen_unlocked.c: New file.
* functions.texi, configure, config.in: Regenerate.
From-SVN: r97977
James A. Morrison [Mon, 11 Apr 2005 17:40:55 +0000 (17:40 +0000)]
sparc.c: Use gcc_assert and gcc_unreachable.
2005-04-11 James A. Morrison <phython@gcc.gnu.org>
* config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
* config/sparc/sparc.h: Likewise.
* config/sparc/sparc.md: Likewise.
From-SVN: r97976
Kazu Hirata [Mon, 11 Apr 2005 16:05:56 +0000 (16:05 +0000)]
* tree-vrp.c: Fix a comment typo.
From-SVN: r97974
Kazu Hirata [Mon, 11 Apr 2005 16:01:37 +0000 (16:01 +0000)]
* tree-vrp.c (maybe_add_assert_expr): Move a comment.
From-SVN: r97973
Devang Patel [Mon, 11 Apr 2005 15:34:10 +0000 (11:34 -0400)]
Add missing ChangeLog entry.
From-SVN: r97972
Diego Novillo [Mon, 11 Apr 2005 15:05:50 +0000 (15:05 +0000)]
re PR tree-optimization/20920 (ICE with eh and VRP)
PR tree-optimization/20920
* tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
SSA_NAME flows through an abnormal edge.
* tree-vrp.c (infer_value_range): Ignore SSA names that flow
through abnormal edges.
(maybe_add_assert_expr): Likewise.
PR tree-optimization/20920
* g++.dg/tree-ssa/pr20920.C: New test.
From-SVN: r97971
Richard Sandiford [Mon, 11 Apr 2005 14:04:07 +0000 (14:04 +0000)]
* config/s390/s390.h (s390_tune_string, s390_arch_string)
(s390_warn_framesize_string, s390_warn_dynamicstack_string)
(s390_stack_size_string, s390_stack_guard_string, target_flags)
(MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
(MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
(MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
(TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
(TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
(TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
(TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
* config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
(TARGET_HANDLE_OPTION): Likewise.
(s390_tune): Initialize to PROCESSOR_max.
(s390_arch_string): Make static.
(s390_tune_string, s390_warn_framesize_string): Delete.
(s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
(s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
(s390_handle_arch_option, s390_handle_option): New functions.
(override_options): Remove parsing of option strings.
* config/s390/s390.opt: New file.
From-SVN: r97968
Paolo Bonzini [Mon, 11 Apr 2005 12:11:46 +0000 (12:11 +0000)]
tree-complex.c (expand_vector_operations): Call update_stmt_if_modified.
2005-04-11 Paolo Bonzini <bonzini@gnu.org>
* tree-complex.c (expand_vector_operations): Call
update_stmt_if_modified.
From-SVN: r97966
Paolo Bonzini [Mon, 11 Apr 2005 07:31:21 +0000 (07:31 +0000)]
tree-vect-analyze (vect_determine_vectorization_factor): Do not use GET_MODE_NUNITS.
2005-04-11 Paolo Bonzini <bonzini@gnu.org>
* tree-vect-analyze (vect_determine_vectorization_factor):
Do not use GET_MODE_NUNITS.
* tree-vect-transform.c (vect_get_vec_def_for_operand,
(vectorizable_load, vect_transform_loop): Likewise.
From-SVN: r97965
Uros Bizjak [Mon, 11 Apr 2005 06:16:39 +0000 (08:16 +0200)]
* builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
(BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
* optabs.h (enum optab_index): Add new OTI_lceil.
(lceil_optab): Define corresponding macro.
* optabs.c (init_optabs): Initialize lceil_optab.
* genopinit.c (optabs): Implement lceil_optab using lceilsi2
and lceildi2 patterns.
* builtins.c (expand_builtin_int_roundingfn): Handle
BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
(fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
BUILT_IN_LLCEIL{,F,L}.
(fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
(mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
(expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
* convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
into lceil built-in function and (long long int)ceil{,f,l} into
llceil built-in function.
* fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
BUILT_IN_LLCEIL.
testsuite:
* gcc.dg/builtins-53.c: Also check (int)ceil* and
(long long int)ceil*.
From-SVN: r97964
John David Anglin [Mon, 11 Apr 2005 03:06:13 +0000 (03:06 +0000)]
quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from zero.
* pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
zero.
From-SVN: r97961
GCC Administrator [Mon, 11 Apr 2005 00:16:24 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r97958.2
Mark Mitchell [Sun, 10 Apr 2005 22:39:22 +0000 (22:39 +0000)]
Wdtor1.C: Declare template in system header with explicit C++ linkage.
* g++.dg/warn/Wdtor1.C: Declare template in system header with
explicit C++ linkage.
From-SVN: r97955
Kazu Hirata [Sun, 10 Apr 2005 17:49:46 +0000 (17:49 +0000)]
* interface.c: Fix a comment typo.
From-SVN: r97951
Kazu Hirata [Sun, 10 Apr 2005 17:38:53 +0000 (17:38 +0000)]
adaint.c, [...]: Fix comment typos.
* adaint.c, init.c, tracebak.c: Fix comment typos.
* gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
From-SVN: r97950
Kazu Hirata [Sun, 10 Apr 2005 17:26:03 +0000 (17:26 +0000)]
arm.c: Fix a comment typo.
* config/arm/arm.c: Fix a comment typo.
* doc/tree-ssa.texi: Fix a typo.
From-SVN: r97949
Francois-Xavier Coudert [Sun, 10 Apr 2005 16:01:54 +0000 (18:01 +0200)]
match.c (match_arithmetic_if): Arithmetic IF is obsolete in Fortran 95.
* match.c (match_arithmetic_if): Arithmetic IF is obsolete in
Fortran 95.
* gfortran.dg/pr17229.f: Take care of the new obsolescence
warning for arithmetic IF statements.
From-SVN: r97948
François-Xavier Coudert [Sun, 10 Apr 2005 13:08:12 +0000 (13:08 +0000)]
* runtime/environ.c: Correct previous commit for obvious typo.
From-SVN: r97947
Francois-Xavier Coudert [Sun, 10 Apr 2005 10:37:59 +0000 (12:37 +0200)]
re PR libfortran/20788 (Loading libgfortran.so clobbers C redirection of stdin/stdout/stderr)
PR libfortran/20788
* runtime/environ.c (init_unsigned_integer): Function for
environment variables we want to be positive.
(init_integer): Function to allow negative environment
variables (e.g. for GFORTRAN_STDIN_UNIT).
From-SVN: r97946
Steven Bosscher [Sun, 10 Apr 2005 08:45:25 +0000 (08:45 +0000)]
cselib.c (clear_table): Rename to cselib_clear_table.
* cselib.c (clear_table): Rename to cselib_clear_table.
* cselib.h (cselib_clear_table): Add prototype.
* gcse.c (gcse_main): Make 'f' argument unused.
(alloc_gcse_mem): Do not walk the insn chain, walk the contents
of each basic block instead.
(compute_sets, compute_hash_table_work): Likewise.
(constprop_register): Change int 'alter_jumps' argument to bool.
(do_local_cprop): Likewise.
(local_cprop_pass): Likewise. Also walk basic blocks instead of
the insn chain. Explicitly clear the cselib tables after finishing
one basic block. Make sure there are no unterminated libcall blocks.
Update compute_sets call.
(cprop): Walk basic blocks instead of the insn chain.
(one_cprop_pass, compute_ld_motion_mems, compute_store_table):
Likewise.
(bypass_jumps): Update alloc_gcse_mem, compute_sets, and
one_cprop_pass calls.
From-SVN: r97945
Thomas Koenig [Sun, 10 Apr 2005 08:43:55 +0000 (08:43 +0000)]
2005-05-10 Thomas Koenig <Thomas Koenig>
Removed erroneous line from Changelog.
From-SVN: r97944
Thomas Koenig [Sun, 10 Apr 2005 08:35:39 +0000 (08:35 +0000)]
[multiple changes]
2005-04-10 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/17992
PR libfortran/19568
PR libfortran/19595
PR libfortran/20005
PR libfortran/20092
PR libfortran/20131
PR libfortran/20138
PR libfortran/20661
PR libfortran/20744
* io/transfer.c (top level): eor_condition: New static variable.
(read_sf): Remove unnecessary zeroing of buffer (there is enough
information in its length).
Return a string of length 0 (to be padded by caller) if EOR was
seen previously.
Remove erroneous special casing of EOR for standard input.
Set eor_condition for non-advancing I/O if an end of line was
detected.
Increment ioparm.size if necessary.
(formatted_transfer): Skip the function if there is an EOR condition.
(data_transfer_init): Initialize eor_condition to zero (false).
(next_record_r): Clear sf_seen_eor if a \n has been seen already.
(finalize_transfer): If there is an EOR condition, raise the error.
2005-04-10 Thomas Koenig <Thomas.Koenig@online.de>
* eor_handling_1.f90: New test case.
* eor_handling_2.f90: New test case.
* eor_handling_3.f90: New test case.
* eor_handling_4.f90: New test case.
* eor_handling_5.f90: New test case.
* noadv_size.f90: New test case.
* pad_no.f90: New test case.
From-SVN: r97943
Richard Sandiford [Sun, 10 Apr 2005 06:27:12 +0000 (06:27 +0000)]
combine.c (combine_simplify_rtx): Remove a transformation that relies on an invalid assumption about rtl...
* combine.c (combine_simplify_rtx): Remove a transformation that
relies on an invalid assumption about rtl sign-extension semantics.
From-SVN: r97941
Richard Sandiford [Sun, 10 Apr 2005 06:23:08 +0000 (06:23 +0000)]
value-prof.c (tree_divmod_fixed_value_transform): Fix arguments to build_int_cst_wide.
* value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
to build_int_cst_wide.
From-SVN: r97940
Alexandre Oliva [Sun, 10 Apr 2005 04:00:53 +0000 (04:00 +0000)]
re PR target/20126 (Inlined memcmp makes one argument null on entry)
gcc/ChangeLog:
PR target/20126
* loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
set the original address pseudo to the correct value before the
original insn, if possible, and leave the insn alone, otherwise
create a new pseudo, set it and replace it in the insn.
* recog.c (validate_change_maybe_volatile): New.
* recog.h (validate_change_maybe_volatile): Declare.
gcc/testsuite/ChangeLog:
* gcc.dg/pr20126.c: New.
From-SVN: r97939
Steven G. Kargl [Sun, 10 Apr 2005 03:46:22 +0000 (03:46 +0000)]
* gfortran.dg/PR19872.f: New test.
From-SVN: r97938
Bud Davis [Sun, 10 Apr 2005 03:43:09 +0000 (03:43 +0000)]
re PR libfortran/19872 ([4.0 only] closed and re-opened file not overwriten)
PR fortran/19872
* io/transfer.c (data_transfer_init): truncate an existing
file on the first write.
Co-Authored-By: Steven G. Kargl <kargls@comcast.net>
From-SVN: r97937
GCC Administrator [Sun, 10 Apr 2005 00:16:59 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r97935.2
Steven G. Kargl [Sat, 9 Apr 2005 23:21:12 +0000 (23:21 +0000)]
Fix dg-do directive.
From-SVN: r97932
Steven G. Kargl [Sat, 9 Apr 2005 22:44:24 +0000 (22:44 +0000)]
* gfortran.dg/nint_1.f90: New test.
From-SVN: r97931
Steven G. Kargl [Sat, 9 Apr 2005 22:41:35 +0000 (22:41 +0000)]
simplify.c (gfc_simplify_anint): Use mpfr_round()
* simplify.c (gfc_simplify_anint): Use mpfr_round()
(gfc_simplify_dnint): ditto.
(gfc_simplify_nint): ditto.
From-SVN: r97930
Thomas Koenig [Sat, 9 Apr 2005 21:38:47 +0000 (21:38 +0000)]
re PR libfortran/19106 ([4.0 only] segfault in executable for print *,sum(a,dim=2,mask=a>0))
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
Caroline Tice [Sat, 9 Apr 2005 20:41:49 +0000 (20:41 +0000)]
Fix problems with labels with hot/cold partitioning.
From-SVN: r97928
Thomas Koenig [Sat, 9 Apr 2005 19:40:48 +0000 (19:40 +0000)]
re PR libfortran/20163 ([4.0 only] gfortran - error opening direct access file)
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 [Sat, 9 Apr 2005 19:37:14 +0000 (19:37 +0000)]
re PR libfortran/20163 ([4.0 only] gfortran - error opening direct access file)
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
Kazu Hirata [Sat, 9 Apr 2005 19:16:29 +0000 (19:16 +0000)]
* cp-tree.h (cp_deprecated): Remove.
From-SVN: r97922
Benjamin Kosnik [Sat, 9 Apr 2005 18:50:52 +0000 (18:50 +0000)]
Makefile.am: Remove libv3test.a.
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
Andrew Pinski [Sat, 9 Apr 2005 18:45:39 +0000 (11:45 -0700)]
fix path to the new tests in my last changelog entry.
From-SVN: r97920
Andrew Pinski [Sat, 9 Apr 2005 18:44:07 +0000 (18:44 +0000)]
re PR fortran/13257 ([4.0 only] Error instead of warning for missing comma in format string)
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
Jakub Jelinek [Sat, 9 Apr 2005 17:19:58 +0000 (19:19 +0200)]
tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD and TI_VA_LIST_FPR_COUNTER_FIELD.
* 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 [Sat, 9 Apr 2005 17:09:49 +0000 (19:09 +0200)]
re PR target/20795 (ICE in assign_parms)
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
Kazu Hirata [Sat, 9 Apr 2005 16:58:14 +0000 (16:58 +0000)]
* cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
From-SVN: r97911
Kazu Hirata [Sat, 9 Apr 2005 16:57:01 +0000 (16:57 +0000)]
cp-tree.h (EXCEPTION_CLEANUP_NAME, [...]): Remove.
* cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
CONV_STATIC_CAST): Remove.
From-SVN: r97910
Kazu Hirata [Sat, 9 Apr 2005 16:55:03 +0000 (16:55 +0000)]
cp-tree.h (EXCEPTION_CLEANUP_NAME, [...]): Remove.
* cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
CONV_STATIC_CAST): Remove.
From-SVN: r97908
Kazu Hirata [Sat, 9 Apr 2005 16:53:39 +0000 (16:53 +0000)]
* cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
From-SVN: r97907
Kazu Hirata [Sat, 9 Apr 2005 16:52:46 +0000 (16:52 +0000)]
* cp-tree.h (cxx_alignof): Remove.
From-SVN: r97906
Kazu Hirata [Sat, 9 Apr 2005 16:51:48 +0000 (16:51 +0000)]
sched-int.h (haifa_insn_data): Remove blockage and units.
* 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 [Sat, 9 Apr 2005 16:43:43 +0000 (16:43 +0000)]
dominance.c, [...]: Fix comment typos.
* 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
Jan Hubicka [Sat, 9 Apr 2005 16:09:11 +0000 (18:09 +0200)]
cfglayout.c (copy_bbs): Rename n_edges to num_edges.
* 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
David Edelsohn [Sat, 9 Apr 2005 15:39:34 +0000 (15:39 +0000)]
predicates.md (altivec_register_operand): Remove redundant match_code test.
* 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
Jan Hubicka [Sat, 9 Apr 2005 13:37:33 +0000 (15:37 +0200)]
Forgotten hunk from my last merge patch:
* final.c (output_addr_const): Do not call mark_referenced.
From-SVN: r97897
Andrew MacLeod [Sat, 9 Apr 2005 12:07:44 +0000 (12:07 +0000)]
tree-ssa.texi: Add immediate use documentation.
2005-04-09 Andrew MacLeod <amacleod@redhat.com>
* doc/tree-ssa.texi: Add immediate use documentation.
From-SVN: r97895
Richard Earnshaw [Sat, 9 Apr 2005 12:03:54 +0000 (12:03 +0000)]
arm.c (FL_WBUF): Define.
* 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
Francois-Xavier Coudert [Sat, 9 Apr 2005 09:13:53 +0000 (11:13 +0200)]
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
Uros Bizjak [Sat, 9 Apr 2005 05:39:47 +0000 (07:39 +0200)]
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 [Sat, 9 Apr 2005 05:31:46 +0000 (07:31 +0200)]
* builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
(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
Ian Lance Taylor [Sat, 9 Apr 2005 03:18:18 +0000 (03:18 +0000)]
c-common.def: Move FOR_STMT...
./ * 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
Diego Novillo [Sat, 9 Apr 2005 01:37:54 +0000 (01:37 +0000)]
backport: copy-prop, incremental SSA updating of FUD chains and newly exposed symbols.
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
GCC Administrator [Sat, 9 Apr 2005 00:16:27 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r97880.2
Paolo Carlini [Sat, 9 Apr 2005 00:08:58 +0000 (00:08 +0000)]
re PR libstdc++/20909 (incorrect floating point format)
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
David Edelsohn [Fri, 8 Apr 2005 23:42:06 +0000 (23:42 +0000)]
re PR target/20814 (ICE in extract_insn for test vmx/varargs-1.c)
PR target/20814
* config/rs6000/predicates.md (altivec_register_operand): Accept
SUBREG.
(and64_operand): Do not limit CONST_INT to mask64_operand.
(and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
(and_operand): Do not limit CONST_INT to mask_operand.
From-SVN: r97872
Mike Stump [Fri, 8 Apr 2005 23:30:23 +0000 (23:30 +0000)]
rs6000.c (rs6000_emit_prologue): Use 5 nops, instead of 4.
* config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
instead of 4.
From-SVN: r97871
Hans-Peter Nilsson [Fri, 8 Apr 2005 23:21:07 +0000 (23:21 +0000)]
re PR rtl-optimization/20466 (Missed invalidation of known memory contents in flow2...)
PR rtl-optimization/20466
* flow.c (invalidate_mems_from_set): Handle a MEM by checking it
for overlap of the address of each list member.
(mark_set_1): Call invalidate_mems_from_set for MEMs too.
From-SVN: r97870
Hans-Peter Nilsson [Fri, 8 Apr 2005 23:18:32 +0000 (23:18 +0000)]
re PR rtl-optimization/20466 (Missed invalidation of known memory contents in flow2...)
PR rtl-optimization/20466
* gcc.c-torture/execute/pr20466-1.c: New test.
From-SVN: r97869
Kelley Cook [Fri, 8 Apr 2005 23:09:32 +0000 (23:09 +0000)]
acinclude.m4 (GLIBCXX_ENABLE_SYMVERS): Define _GLIBCXX_ASM_SYMVER.
2005-04-08 Kelley Cook <kcook@gcc.gnu.org>
* acinclude.m4 (GLIBCXX_ENABLE_SYMVERS): Define _GLIBCXX_ASM_SYMVER.
* acconfig.h: Delete file.
* Makefile.in, acinclude.m4, configure: Regenerate.
From-SVN: r97868
Mike Stump [Fri, 8 Apr 2005 22:53:31 +0000 (22:53 +0000)]
* config/darwin.c (indirect_data): Fix typo in strncmp logic.
From-SVN: r97866
Mike Stump [Fri, 8 Apr 2005 22:00:58 +0000 (22:00 +0000)]
Fix typo.
From-SVN: r97862
Kelley Cook [Fri, 8 Apr 2005 21:54:31 +0000 (21:54 +0000)]
linkage.m4 (GLIBCXX_MAYBE_UNDERSCORED_FUNCS): New macro.
2005-04-08 Kelley Cook <kcook@gcc.gnu.org>
* linkage.m4 (GLIBCXX_MAYBE_UNDERSCORED_FUNCS): New macro.
(GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1,
GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2,
GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3,
GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1,
GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2): Use it.
(GLIBCXX_CHECK_MATH_SUPPORT): Delete obsolete comment.
* acconfig.h: Delete redundant macros.
* config.h.in, configure: Regenerate.
From-SVN: r97861
Kelley Cook [Fri, 8 Apr 2005 21:29:13 +0000 (21:29 +0000)]
linkage.m4 (GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1): Eliminate a subshell and if test fails...
2005-04-08 Kelley Cook <kcook@gcc.gnu.org>
* linkage.m4 (GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1): Eliminate
a subshell and if test fails, test for same functions with
leading underscore.
(GLIBCXX_CHECK_MATH_SUPPORT): Eliminate seperate checks for _funcs.
* configure: Regenerate.
From-SVN: r97860
Mark Mitchell [Fri, 8 Apr 2005 21:13:57 +0000 (21:13 +0000)]
re PR c++/20905 (confuses unrelated type name with instance name)
PR c++/20905
* parser.c (cp_parser_type_specifier_seq): Add is_condition
parameter.
(cp_parser_new_type_id): Pass it.
(cp_parser_condition): Likewise.
(cp_parser_conversion_type_id): Likewise.
(cp_parser_type_id): Likewise.
(cp_parser_type_specifier_seq): In a condition, do not allow
invalid type-specifier combinations.
(cp_parser_exception_declaration): Adjust call to
cp_parser_type_specifier_seq.
PR c++/20905
* g++.dg/parse/cond2.C: New test.
From-SVN: r97857
Mark Mitchell [Fri, 8 Apr 2005 19:39:59 +0000 (19:39 +0000)]
re PR c++/20145 (template "class has virtual functions ... " is not suppressed with -isystem)
* cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
* cp-tree.h (struct tinst_level): Add in_system_header_p.
(TINST_IN_SYSTEM_HEADER_P): New macro.
(make_tinst_level): Remove.
* pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
the instantiated class.
(push_tinst_level): Do not use make_tinst_level. Set
TINST_IN_SYSTEM_HEADER_P.
(pop_tinst_level): Likewise.
(instantiate_class_template): Set in_system_header.
(instantiate_pending_templates): Likewise.
* tree.c (make_tinst_level): Remove.
PR c++/20145
* g++.dg/warn/Wdtor1.C: New test.
From-SVN: r97854
Eric Botcazou [Fri, 8 Apr 2005 19:07:54 +0000 (19:07 +0000)]
backspace.c (unformatted_backspace): Do not dereference the pointer to the stream.
* io/backspace.c (unformatted_backspace): Do not dereference
the pointer to the stream.
From-SVN: r97851
Kazu Hirata [Fri, 8 Apr 2005 18:47:40 +0000 (18:47 +0000)]
* c-common.h (C_ARTIFICIAL_STRING_P): Remove.
From-SVN: r97849
Diego Novillo [Fri, 8 Apr 2005 18:05:38 +0000 (18:05 +0000)]
* match.c (gfc_match_arithmetic_if): Declare static.
From-SVN: r97846
Danny Smith [Fri, 8 Apr 2005 17:31:33 +0000 (17:31 +0000)]
re PR libstdc++/20806 (basic_filebuf::xsgetn() fails with text mode and DOS line endings and large buffers)
2005-04-08 Danny Smith <dannysmith@users.sourceforge.net>
Paolo Carlini <pcarlini@suse.de>
PR libstdc++/20806
* config/os/mingw32/os_defines.h: Define
_GLIBCXX_HAVE_DOS_BASED_FILESYSTEM.
* config/os/newlib/os_defines.h: Likewise, for __CYGWIN__.
* include/bits/fstream.tcc (basic_filebuf<>::showmanyc()):
Use it.
(basic_filebuf<>::xsgetn(_CharT*, streamsize)): Likewise.
Co-Authored-By: Paolo Carlini <pcarlini@suse.de>
From-SVN: r97842
Kazu Hirata [Fri, 8 Apr 2005 17:20:15 +0000 (17:20 +0000)]
genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
* genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
(check_attr_value, write_attr_get, write_expr_attr_cache,
find_attr, make_internal_attr): Don't reference negative_ok or
unsigned_p.
* genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
(ATTR_STATIC): Adjust the value.
From-SVN: r97841
Kazu Hirata [Fri, 8 Apr 2005 17:13:31 +0000 (17:13 +0000)]
* tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
From-SVN: r97840
Kazu Hirata [Fri, 8 Apr 2005 17:12:03 +0000 (17:12 +0000)]
* function.h (nonlocal_labels): Remove.
From-SVN: r97839
Kazu Hirata [Fri, 8 Apr 2005 17:10:37 +0000 (17:10 +0000)]
function.h (function): Remove instrument_entry_exit.
* function.h (function): Remove instrument_entry_exit.
(current_function_instrument_entry_exit): Remove.
From-SVN: r97838
Kazu Hirata [Fri, 8 Apr 2005 17:09:20 +0000 (17:09 +0000)]
function.c (push_function_context_to): Don't set contains_functions.
* function.c (push_function_context_to): Don't set
contains_functions.
* function.h (function): Remove contains_functions.
(current_function_contains_functions): Remove.
From-SVN: r97837
Kazu Hirata [Fri, 8 Apr 2005 17:07:49 +0000 (17:07 +0000)]
* c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
From-SVN: r97836
Ulrich Weigand [Fri, 8 Apr 2005 16:59:40 +0000 (16:59 +0000)]
* config/s390/tpf.h (ASM_SPEC): Define.
From-SVN: r97832
Kazu Hirata [Fri, 8 Apr 2005 15:32:38 +0000 (15:32 +0000)]
tree-flow.h: Remove the prototype for redirect_immediate_uses.
* tree-flow.h: Remove the prototype for
redirect_immediate_uses.
(TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
From-SVN: r97830
Richard Earnshaw [Fri, 8 Apr 2005 13:34:27 +0000 (13:34 +0000)]
arm.c (arm_const_double_by_parts): New function.
* arm.c (arm_const_double_by_parts): New function.
* arm-protos.h (arm_const_double_by_parts): Add prototype.
* arm.md (define_split for 64-bit constants): Add another one.
From-SVN: r97828
Andrew MacLeod [Fri, 8 Apr 2005 13:09:26 +0000 (13:09 +0000)]
tree-ssa-operands.c (correct_use_link): Remove linear scan.
2005-04-08 Andrew MacLeod <amacleod@redhat.com>
* tree-ssa-operands.c (correct_use_link): Remove linear scan.
From-SVN: r97827
Kaveh R. Ghazi [Fri, 8 Apr 2005 11:23:32 +0000 (11:23 +0000)]
* system.h: Revert last change.
From-SVN: r97826
Francois-Xavier Coudert [Fri, 8 Apr 2005 10:56:59 +0000 (12:56 +0200)]
re PR fortran/17229 (parser confused by arithmetic if inside an if)
PR fortran/17229
* match.c (gfc_match_arithmetic_if): New function to match an
arithmetic IF statement.
(gfc_match_if): Use gfc_match_arithmetic_if to match an
arithmetic IF statement embedded in a simple IF statement.
* gfortran.dg/pr17229.f: New test.
From-SVN: r97825
Richard Sandiford [Fri, 8 Apr 2005 07:57:27 +0000 (07:57 +0000)]
* config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
(MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
(TARGET_SWITCHES): Delete.
* config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
* config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
* config/xtensa/xtensa.opt: New file.
From-SVN: r97822
Ben Elliston [Fri, 8 Apr 2005 01:51:00 +0000 (01:51 +0000)]
fp-bit.c: Include L_mul_tf in #endif comment.
* config/fp-bit.c: Include L_mul_tf in #endif comment.
* config/fp-bit.h: Tidy comments.
From-SVN: r97819
Kelley Cook [Fri, 8 Apr 2005 01:23:25 +0000 (01:23 +0000)]
acconfig.h: Sort the bottom section.
2005-04-08 Kelley Cook <kcook@gcc.gnu.org>
* acconfig.h: Sort the bottom section.
* config.h.in: Regenerate.
From-SVN: r97818
Kelley Cook [Fri, 8 Apr 2005 01:05:01 +0000 (01:05 +0000)]
acconfig.h: Remove redundant HAVE_FLOAT_H.
2005-04-08 Kelley Cook <kcook@gcc.gnu.org>
* acconfig.h: Remove redundant HAVE_FLOAT_H.
* config.h.in: Regenerate.
From-SVN: r97817
Kaveh R. Ghazi [Fri, 8 Apr 2005 01:02:59 +0000 (01:02 +0000)]
system.h: Poison PARAMS.
* system.h: Poison PARAMS.
java:
* java-tree.h: Don't use PARAMS().
From-SVN: r97816
Kelley Cook [Fri, 8 Apr 2005 00:59:08 +0000 (00:59 +0000)]
configure.ac: Create template for PACKAGE and VERSION.
2005-04-08 Kelley Cook <kcook@gcc.gnu.org>
* configure.ac: Create template for PACKAGE and VERSION.
Update comment on how to regenerate file. Update minimum
automake version to 1.9.3.
* acconfig.h: Remove PACKAGE and VERSION.
* aclocal.m4, configure, Makefile.in, po/Makefile.in,
src/Makefile.in, include/Makefile.in, libmath/Makefile.in,
testsuite/Makefile.in, config.h.in: Regenerate.
From-SVN: r97815
GCC Administrator [Fri, 8 Apr 2005 00:16:18 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r97813.2
Mike Stump [Thu, 7 Apr 2005 23:42:42 +0000 (23:42 +0000)]
Revert last patch for more testing.
From-SVN: r97810
Mike Stump [Thu, 7 Apr 2005 23:27:57 +0000 (23:27 +0000)]
* configure: Regenerate.
From-SVN: r97809