Thomas Koenig [Tue, 12 Apr 2005 22:57:10 +0000 (22:57 +0000)]
re PR libfortran/19106 ([4.0 only] segfault in executable for print *,sum(a,dim=2,mask=a>0))
2005-04-13 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/19106
* m4/iforeach.c (name`'rtype_qual`_'atype_code): Add TODO
that setting correct strides is a front end job.
(`m'name`'rtype_qual`_'atype_code): Likewise. If mask has
a lowest stride of 0, adjust to 1.
* m4/ifunction.c (name`'rtype_qual`_'atype_code): Add TODO
that setting correct strides is a front end job.
(`m'name`'rtype_qual`_'atype_code): Likewise. If mask has
a lowest stride of 0, adjust to 1.
* maxloc0_4_i4.c: Regenerated
* maxloc0_4_i8.c: Regenerated
* maxloc0_4_r4.c: Regenerated
* maxloc0_4_r8.c: Regenerated
* maxloc0_8_i4.c: Regenerated
* maxloc0_8_i8.c: Regenerated
* maxloc0_8_r4.c: Regenerated
* maxloc0_8_r8.c: Regenerated
* maxloc1_4_i4.c: Regenerated
* maxloc1_4_i8.c: Regenerated
* maxloc1_4_r4.c: Regenerated
* maxloc1_4_r8.c: Regenerated
* maxloc1_8_i4.c: Regenerated
* maxloc1_8_i8.c: Regenerated
* maxloc1_8_r4.c: Regenerated
* maxloc1_8_r8.c: Regenerated
* maxval_i4.c: Regenerated
* maxval_i8.c: Regenerated
* maxval_r4.c: Regenerated
* maxval_r8.c: Regenerated
* minloc0_4_i4.c: Regenerated
* minloc0_4_i8.c: Regenerated
* minloc0_4_r4.c: Regenerated
* minloc0_4_r8.c: Regenerated
* minloc0_8_i4.c: Regenerated
* minloc0_8_i8.c: Regenerated
* minloc0_8_r4.c: Regenerated
* minloc0_8_r8.c: Regenerated
* minloc1_4_i4.c: Regenerated
* minloc1_4_i8.c: Regenerated
* minloc1_4_r4.c: Regenerated
* minloc1_4_r8.c: Regenerated
* minloc1_8_i4.c: Regenerated
* minloc1_8_i8.c: Regenerated
* minloc1_8_r4.c: Regenerated
* minloc1_8_r8.c: Regenerated
* minval_i4.c: Regenerated
* minval_i8.c: Regenerated
* minval_r4.c: Regenerated
* minval_r8.c: Regenerated
* product_c4.c: Regenerated
* product_c8.c: Regenerated
* product_i4.c: Regenerated
* product_i8.c: Regenerated
* product_r4.c: Regenerated
* product_r8.c: Regenerated
* sum_c4.c: Regenerated
* sum_c8.c: Regenerated
* sum_i4.c: Regenerated
* sum_i8.c: Regenerated
* sum_r4.c: Regenerated
* sum_r8.c: Regenerated
2005-04-13 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/19016
* gfortran.fortran-torture/execute/intrinsic_mmloc.f90:
Add tests with mask generated by expression.
* 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: r98052
Caroline Tice [Tue, 12 Apr 2005 22:38:06 +0000 (22:38 +0000)]
Temporary fix for partitioning problems; real fix coming soon.
From-SVN: r98051
Steven Bosscher [Tue, 12 Apr 2005 21:33:53 +0000 (21:33 +0000)]
Makefile.in: Add function.h to BASIC_BLOCK_H.
* Makefile.in: Add function.h to BASIC_BLOCK_H. Remove all
references to gt-tree-cfg.h.
* basic-block.h (struct basic_block_def): Don't skip rbi
for garbage collection.
(struct reorder_block_def): Make GTY-able.
(struct control_flow_graph): New structure.
(n_edges, n_basic_blocks, last_basic_block, basic_block_info,
BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
but instead defines to the control_flow_graph for cfun.
(label_to_block_map): New define, points to the label map of
the control_flow_graph for cfun.
(n_edges_for_function, n_basic_blocks_for_function,
last_basic_block_for_function, basic_block_info_for_function,
EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
basic_block_info_for_function, label_to_block_map_for_function):
Counterparts for the above, taking a struct function as an extra
argument.
(alloc_rbi_pool, free_rbi_pool): Remove prototypes.
* cfg.c: (n_edges, n_basic_blocks, last_basic_block,
basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
(alloc_rbi_pool, free_rbi_pool): Remove.
(initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
* cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
here...
(cfg_layout_finalize) ... and don't free it here.
* cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
garbage collected.
* flow.c (free_basic_block_vars): Set label_to_block_map and
n_edges to zero too.
* function.h (struct function): Add cfg field.
* function.c (allocate_struct_function): Allocate the cfg.
* tree-cfg.c (label_to_block_map): Remove.
(build_tree_cfg): Don't allocate the rbi pool here...
(delete_tree_cfg_annotations): ...and don't free it here.
Also don't nullify label_to_block_map for cfun.
Co-Authored-By: Jan Hubicka <jh@suse.cz>
Co-Authored-By: Stuart Hastings <stuart@apple.com>
From-SVN: r98048
Caroline Tice [Tue, 12 Apr 2005 21:27:09 +0000 (14:27 -0700)]
Commit ChangeLog to go with patch reversion (forgot to do ChangeLog when
I reverted the patch).
From-SVN: r98047
Eric Botcazou [Tue, 12 Apr 2005 21:07:47 +0000 (23:07 +0200)]
sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
* config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
* config/sparc/sparc.md (untyped_call): Save the registers manually.
* config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
From-SVN: r98044
Ulrich Weigand [Tue, 12 Apr 2005 20:41:51 +0000 (20:41 +0000)]
*** empty log message ***
From-SVN: r98040
Caroline Tice [Tue, 12 Apr 2005 20:39:09 +0000 (13:39 -0700)]
Revert patch from April 9.
From-SVN: r98039
Aaron Luchko [Tue, 12 Apr 2005 20:06:44 +0000 (20:06 +0000)]
re PR libgcj/20975 (Remove scripts/TexinfoDoclet.java)
2005-04-12 Aaron Luchko <aluchko@redhat.com>
PR libgcj/20975
* scripts/TexinfoDoclet.java: Removed.
* Makefile.am (texinfo): Removed.
* Makefile.in: Regenerated.
From-SVN: r98034
Richard Henderson [Tue, 12 Apr 2005 19:48:18 +0000 (12:48 -0700)]
* include/private/gcconfig.h (alpha-linux): Use LINUX_STACKBOTTOM.
From-SVN: r98032
Michael Koch [Tue, 12 Apr 2005 18:38:31 +0000 (18:38 +0000)]
ImageIO.java (ReaderFormatFilter.filter): Fixed wrong casting.
2005-04-11 Michael Koch <konqueror@gmx.de>
* javax/imageio/ImageIO.java (ReaderFormatFilter.filter):
Fixed wrong casting.
From-SVN: r98031
Richard Henderson [Tue, 12 Apr 2005 18:14:54 +0000 (11:14 -0700)]
i386.md (UNSPEC_FIX, [...]): Remove.
* config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
(UNSPEC_*, UNSPECV_*): Renumber.
From-SVN: r98029
Frank Ch. Eigler [Tue, 12 Apr 2005 18:09:09 +0000 (18:09 +0000)]
re PR other/19266 ([mudflap] ICE when compiling with -fmudflap -O)
2005-04-12 Frank Ch. Eigler <fche@redhat.com>
PR mudflap/19266
From Richard Henderson <rth@redhat.com>:
* tree-mudflap.c (mf_build_check_statement_for): Correct block
splitting logic.
2005-04-12 Frank Ch. Eigler <fche@redhat.com>
PR mudflap/19266
* testsuite/libmudflap.c++/c++frags.exp: Also test -O permutation.
* testsuite/libmudflap.c++/pass57-frag.cxx: New test.
From-SVN: r98028
Dorit Naishlos [Tue, 12 Apr 2005 18:01:19 +0000 (18:01 +0000)]
* tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
From-SVN: r98027
Andrew Pinski [Tue, 12 Apr 2005 17:47:48 +0000 (17:47 +0000)]
alias-1.c: Fix spelling of optimized.
2005-04-12 Andrew Pinski <pinskia@physics.uc.edu>
* gcc.dg/tree-ssa/alias-1.c: Fix spelling of optimized.
From-SVN: r98026
Bernd Schmidt [Tue, 12 Apr 2005 14:26:52 +0000 (14:26 +0000)]
bfin.c (bfin_library_id_string): Remove.
* config/bfin/bfin.c (bfin_library_id_string): Remove.
(bfin_library_id): New variable.
(bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
instead of bfin_library_id_string.
(bfin_handle_option): New function.
(override_options): Remove most code to deal with shared library IDs,
just check they aren't used without -mid-shared-library.
(TARGET_HANDLE_OPTION): Define.
* config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
* config/bfin/bfin.opt (mshared-library-id=): New.
From-SVN: r98023
Gabriel Dos Reis [Tue, 12 Apr 2005 14:23:48 +0000 (14:23 +0000)]
configure.ac: Check declarations for basename, ffs, asprintf, vasprintf.
* configure.ac: Check declarations for basename, ffs,
asprintf, vasprintf.
* configure: Regenerate.
* config.in: Likewise.
From-SVN: r98022
Kazu Hirata [Tue, 12 Apr 2005 14:10:38 +0000 (14:10 +0000)]
* simplify.c: Fix a comment typo.
From-SVN: r98021
Kazu Hirata [Tue, 12 Apr 2005 14:07:24 +0000 (14:07 +0000)]
* tree-vect-transform.c: Fix comment typos.
From-SVN: r98020
Mostafa Hagog [Tue, 12 Apr 2005 12:23:49 +0000 (12:23 +0000)]
> 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com> > > * postreload-gcse.c...
> 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
>
> * postreload-gcse.c (eliminate_partially_redundant_load): Don't
> split critical edges when not possible/profitable.
From-SVN: r98019
Richard Sandiford [Tue, 12 Apr 2005 10:18:59 +0000 (10:18 +0000)]
* config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
(MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
(MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
(TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
(TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
(TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
(OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
* config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
MASK_NO_BITFIELD.
* config/ns32k/ns32k.c (ns32k_handle_option): New function.
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
* config/ns32k/ns32k.opt: New file.
From-SVN: r98018
Richard Sandiford [Tue, 12 Apr 2005 10:16:47 +0000 (10:16 +0000)]
config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
* config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
* config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
(MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
(TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
(MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
(TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
(MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
(MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
(MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
(TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
(TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
(TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
(MASK_COLDFIRE): Formatting fixes.
(TARGET_COLDFIRE): Turn into a boolean value for consistency.
* config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
* config/m68k/m68k.c (m68k_library_id_string): Initialize to
"_current_shared_library_a5_offset_".
(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
(MASK_ALL_CPU_BITS): New macro.
(m68k_handle_option): New function.
(override_options): Remove handling of m68k_library_id_string.
* config/m68k/m68k.opt: New file.
* config/m68k/ieee.opt: New file.
From-SVN: r98017
Richard Sandiford [Tue, 12 Apr 2005 08:35:26 +0000 (08:35 +0000)]
lang.opt: Refer to the GCC internals documentation instead of c.opt.
fortran/
* lang.opt: Refer to the GCC internals documentation instead of c.opt.
ada/
* lang.opt: Refer to the GCC internals documentation instead of c.opt.
java/
* lang.opt: Refer to the GCC internals documentation instead of c.opt.
treelang/
* lang.opt: Refer to the GCC internals documentation instead of c.opt.
From-SVN: r98012
Mark Mitchell [Tue, 12 Apr 2005 06:33:48 +0000 (06:33 +0000)]
target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
* target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
(TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
(TARGET_CXX): Adjust accordingly.
* target.h (struct gcc_target): Remove epxort_class_data. Add
determine_class_data_visibility and class_data_always_comdat.
* doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
* config/arm/arm.c (arm_cxx_export_class_data): Remove.
(arm_cxx_determine_class_data_visibility): New.
(arm_cxx_class_data_always_comdat): Likewise.
(TARGET_CXX_EXPORT_CLASS_DATA): Remove.
(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
* config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
* config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
Define.
* decl2.c (determine_visibility): Don't use export_class_data.
(import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.
* testsuite/g++.dg/ext/visibility/arm2.C: New test.
* testsuite/g++.dg/ext/visibility/arm3.C: Likewise.
* testsuite/g++.dg/ext/visibility/symbian2.C: Likewise.
From-SVN: r98010
Mark Mitchell [Tue, 12 Apr 2005 06:26:39 +0000 (06:26 +0000)]
* lib/wrapper.exp (${tool}_maybe_build_wrapper): Don't unset gluefile.
From-SVN: r98009
Geoffrey Keating [Tue, 12 Apr 2005 02:10:57 +0000 (02:10 +0000)]
* gcc.dg/i386-darwin-fpmath.c: New.
From-SVN: r98003
Geoffrey Keating [Tue, 12 Apr 2005 01:46:38 +0000 (01:46 +0000)]
i386.h (TARGET_FPMATH_DEFAULT): New.
* config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
* config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
* config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
* config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
(SUBTARGET_EXTRA_SPECS): Always 'i386'.
From-SVN: r98001
Geoffrey Keating [Tue, 12 Apr 2005 01:45:43 +0000 (01:45 +0000)]
dwarf2out.c (output_line_info): Don't try to dereference a NULL current_function_decl.
* dwarf2out.c (output_line_info): Don't try to dereference
a NULL current_function_decl.
From-SVN: r98000
Devang Patel [Tue, 12 Apr 2005 01:35:54 +0000 (18:35 -0700)]
tree-data-ref.c (build_classic_dist_vector, [...]): Make externally visible.
* tree-data-ref.c (build_classic_dist_vector,
compute_subscript_distance): Make externally visible.
* tree-data-ref.h (build_classic_dist_vector,
compute_subscript_distance): Same.
* tree-vect-analyze.c (vect_analyze_data_ref_dependence):
Check distance vector against vectorization factor.
(vect_analyze_loop): Determine vectorizaion factor before
analyzing data dependences.
* tree-vectorizer.c (loops_num): Make it externally visible and
rename ...
* tree-vectorizer.c (vect_loops_num): ... new name.
* tree-vectorizer.h (vect_loops_num): New.
* tree-vect-analyze.c (vect_analyze_operations): Check
vectorizable codition.
* tree-vect-transform.c (vect_is_simple_cond): New function.
(vectorizable_condition): New function.
(vect_transform_stmt): Handle condition_vec_info_type.
* tree-vectorizer.h (enum stmt_vec_info_type): Add
condition_vec_info_type.
(vectorizable_condition): New.
* lib/target-supports.exp (check_effective_target_vect_condition): New.
* gcc.dg/vect/vect-ifcvt-1.c: New test.
* gcc.dg/vect/vect-ifcvt-2.c: New test.
* gcc.dg/vect/vect-ifcvt-3.c: New test.
* gcc.dg/vect/vect-ifcvt-4.c: New test.
* gcc.dg/vect/vect-ifcvt-5.c: New test.
* gcc.dg/vect/vect-ifcvt-6.c: New test.
* gcc.dg/vect/vect-ifcvt-7.c: New test.
* gcc.dg/vect/vect-none.c: Now one loop is vectorized.
* gcc.dg/vect/vect-dv-1.c: New test.
* gcc.dg/vect/vect-dv-2.c: New test.
From-SVN: r97999
GCC Administrator [Tue, 12 Apr 2005 00:16:23 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r97994.2
Geoffrey Keating [Mon, 11 Apr 2005 23:30:44 +0000 (23:30 +0000)]
t-slibgcc-darwin: Don't put shared libraries in directories other than $(slibdir).
* config/t-slibgcc-darwin: Don't put shared libraries in
directories other than $(slibdir).
* config/rs6000/darwin.h: Find -m64 libgcc under the name the
OS uses for it.
From-SVN: r97991
Diego Novillo [Mon, 11 Apr 2005 22:06:46 +0000 (22:06 +0000)]
re PR middle-end/20933 (gcc can no longer bootstrap itself)
PR tree-optimization/20933
* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
logic to reject aliases between read-only and writable
variables ...
(may_alias_p): ... here.
(get_tmt_for): Do not associate read-only tags to pointers
whose pointed-to type is not read-only.
* tree-ssa.c (verify_ssa): Check that memory stores have at
least one V_MAY_DEF or V_MUST_DEF.
testsuite/ChangeLog
PR tree-optimization/20933
* gcc.dg/tree-ssa/pr20933.c: New test.
From-SVN: r97988
Tobias Schlüter [Mon, 11 Apr 2005 21:48:27 +0000 (23:48 +0200)]
simplify.c (gfc_simplify_nearest): Overhaul.
fortran/
* simplify.c (gfc_simplify_nearest): Overhaul.
testsuite/
* gfortran.dg/fold_nearest.f90: New test.
From-SVN: r97987
Kaveh R. Ghazi [Mon, 11 Apr 2005 21:46:59 +0000 (21:46 +0000)]
configure.ac (fixincludes_UNLOCKED_FUNCS): New.
fixincludes:
* configure.ac (fixincludes_UNLOCKED_FUNCS): New.
(AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for fixincludes_UNLOCKED_FUNCS.
* system.h (putchar, getc, getchar, clearerr, feof, fileno,
fflush, fgetc, fgets, ferror, fread): Redefine to the associated
_unlocked function.
(fwrite_unlocked): Fix prototype.
* configure, config.h.in: Regenerate.
gcc:
PR/17092
* configure.ac (gcc_UNLOCKED_FUNCS): New.
(AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
* system.h (putchar, getc, getchar, clearerr, feof, fileno,
fflush, fgetc, fgets, ferror, fread): Redefine to the associated
_unlocked function.
(fwrite_unlocked): Fix prototype.
* configure, config.in: Regenerate.
libcpp:
* configure.ac (libcpp_UNLOCKED_FUNCS): New.
(AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for libcpp_UNLOCKED_FUNCS.
* system.h (putchar, getc, getchar, clearerr, feof, fileno,
fflush, fgetc, fgets, ferror, fread): Redefine to the associated
_unlocked function.
(fwrite_unlocked): Fix prototype.
* configure, config.in: Regenerate.
From-SVN: r97986
David Edelsohn [Mon, 11 Apr 2005 20:17:38 +0000 (20:17 +0000)]
tree-ssa-loop-im.c: Include real.h.
* tree-ssa-loop-im.c: Include real.h.
(determine_invariantness_stmt): If real division divisor is
invariant and flag_unsafe_math_optimizations enabled, generate
invariant reciprocal for hoisting.
* Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
From-SVN: r97983
Daniel Berlin [Mon, 11 Apr 2005 20:15:33 +0000 (20:15 +0000)]
re PR tree-optimization/20926 (ICE: tree check, in recent builds)
2005-04-11 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/20926
* tree-ssa-alias.c (add_type_alias): Handle subvars.
From-SVN: r97982
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