Commit Graph

64870 Commits

Author SHA1 Message Date
Richard Henderson 57aaef66e5 expr.c (clear_storage): Validate CONST0_RTX extant.
* expr.c (clear_storage): Validate CONST0_RTX extant.  Special case
        complex modes.

From-SVN: r92615
2004-12-25 19:59:28 -08:00
Richard Henderson 798e3fe5a0 target-supports.exp (check_effective_target_vect_no_bitwise): Remove Alpha.
* lib/target-supports.exp (check_effective_target_vect_no_bitwise):
	Remove Alpha.

From-SVN: r92614
2004-12-25 19:57:04 -08:00
GCC Administrator df96aa5261 Daily bump.
From-SVN: r92612
2004-12-26 00:16:13 +00:00
David Edelsohn aaf51ca21a Revert 2004-12-08 Makefile changes.
From-SVN: r92609
2004-12-25 19:07:54 -05:00
Zdenek Dvorak eec5fec983 re PR rtl-optimization/19078 (Poor quality code after loop unrolling.)
PR rtl-optimization/19078
	* tree-ssa-loop-ivopts.c (determine_use_iv_cost_generic,
	determine_use_iv_cost_outer): Fix computing of cost for the original
	bivs.
	(dump_use): Handle case related_cands == NULL.

From-SVN: r92608
2004-12-25 22:53:54 +00:00
Marek Michalkiewicz 6b262ee81e re PR target/19059 (Atmel AVR Tiny13 and Tiny2313 support corrupted)
PR target/19059
	* config/avr/avr.c (avr_mcu_types): Move attiny{13,2313} from avr4
	to avr2.
	* config/avr/avr.h (LINK_SPEC): Ditto.
	* config/avr/t-avr (MULTILIB_MATCHES): Ditto.

From-SVN: r92607
2004-12-25 22:20:04 +00:00
John David Anglin d1ffec35fe pr17055-1.c (dg-options): Add -fno-common to options on hppa*-*-hpux*.
* gcc.dg/pr17055-1.c (dg-options): Add -fno-common to options on
	hppa*-*-hpux*.
	* gcc.dg/pr17957.c (dg-options): Likewise.
	* gcc.dg/struct-ret-1.c: Add prototype for abort.
	* gcc.dg/tree-ssa/asm-2.c, gcc.dg/tree-ssa/asm-3.c: Use register 1
	instead of 0 on __hppa__.
	* gcc.dg/tree-ssa/loop-1.c (dg-final): Check for five instances of
	"foo,%r" on hppa*-*-*.

From-SVN: r92606
2004-12-25 17:01:52 +00:00
Paolo Carlini 310995eac7 type_traits (is_enum): Minor tweak.
2004-12-25  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits (is_enum): Minor tweak.

From-SVN: r92605
2004-12-25 15:39:43 +00:00
Paolo Carlini a9e7ba8139 type_traits: Implement is_enum (usual caveats about the nasty consequences of c++/19076...).
2004-12-25  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Implement is_enum (usual caveats about
	the nasty consequences of c++/19076...).
	* testsuite/testsuite_tr1.h: Add ConvType.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_scalar/is_scalar.cc: New.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_scalar/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_enum/is_enum.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_enum/typedefs.cc: Likewise.

From-SVN: r92604
2004-12-25 15:24:36 +00:00
Alan Modra 7f514158b2 re PR target/19137 (ICE with load of TImode constant)
PR target/19137
	* config/rs6000/rs6000.md (movti_power, movti_string): Relax
	operand[1] predicate to input_operand, and add r<-n alternative.
	Move TImode const_double_operand splitter to where it belongs.

From-SVN: r92603
2004-12-25 23:11:02 +10:30
Richard Henderson 1a0f488c32 ffi64.c (struct register_args): Rename from stackLayout.
* src/x86/ffi64.c (struct register_args): Rename from stackLayout.
        (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
        (merge_classes): Check for it.
        (SSE_CLASS_P): New.
        (classify_argument): Pass byte_offset by value; perform all updates
        inside struct case.
        (examine_argument): Add classes argument; handle
        X86_64_COMPLEX_X87_CLASS.
        (ffi_prep_args): Merge into ...
        (ffi_call): ... here.  Share stack frame with ffi_call_unix64.
        (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
        (ffi_fill_return_value): Remove.
        (ffi_prep_closure): Remove dead assert.
        (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
        Rewrite to use struct register_args instead of va_list.  Create
        flags for handling structure returns.
        * src/x86/unix64.S: Remove dead strings.
        (ffi_call_unix64): Rename from ffi_call_UNIX64.  Rewrite to share
        stack frame with ffi_call.  Handle structure returns properly.
        (float2sse, floatfloat2sse, double2sse): Remove.
        (sse2float, sse2double, sse2floatfloat): Remove.
        (ffi_closure_unix64): Rename from ffi_closure_UNIX64.  Rewrite
        to handle structure returns properly.

From-SVN: r92602
2004-12-25 01:54:40 -08:00
GCC Administrator fa54a7a743 Daily bump.
From-SVN: r92600
2004-12-25 00:16:31 +00:00
Paolo Carlini e2f5c678eb type_traits: Add missing undef.
2004-12-24  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Add missing undef.

From-SVN: r92597
2004-12-24 23:38:27 +00:00
Alan Modra 314e5e8e83 re PR target/19147 (invalid rlwinm patterns)
PR target/19147
	* config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete.

From-SVN: r92594
2004-12-25 09:30:08 +10:30
Paolo Carlini 186e6683b0 type_traits: Implement is_member_object_pointer, is_member_function_pointer.
2004-12-24  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Implement is_member_object_pointer,
	is_member_function_pointer. N.B. Due to c++/19076, the latter
	doesn't really work at the moment (a rather ugly work around
	will be provided in case the front-end bug doesn't get fixed
	soon); generalize and extend the _DEFINE_SPEC macros.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_member_pointer/is_member_pointer.cc: New.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_member_pointer/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_member_function_pointer/is_member_function_pointer.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_member_function_pointer/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_member_object_pointer/is_member_object_pointer.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/
	is_member_object_pointer/typedefs.cc: Likewise.

From-SVN: r92593
2004-12-24 20:33:56 +00:00
Uros Bizjak fab072b528 i386.md (*fix_trunc{d,s,h}i_1): Rename to *fix_trunc{d,s,h}i_i387.
* config/i386/i386.md (*fix_trunc{d,s,h}i_1):
	Rename to *fix_trunc{d,s,h}i_i387.
	(fix_trunc{d,s}fdi2): Reorder tests.

From-SVN: r92586
2004-12-24 07:49:34 +01:00
Daniel Berlin ac3bfd867b re PR tree-optimization/14638 (Variables disappear from debug info at -O1)
2004-12-24  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR debug/14638

	* tree.h (DECL_DEBUG_ALIAS_OF): New macro.
	* var-tracking.c (track_expr_p): Don't disqualify tracking of variables
	that are aliases of variables we want to track, unless the
	original variable is also ignored for debugging purposes.
	(VARIABLE_HASH_VAL): Use DECL_UID, so that this is deterministic.
 	* tree-outof-ssa.c (create_temp): Note who we are a debug alias of.
	* dwarf2out.c (dwarf2out_var_location): Add us to the location of
	the decl we are an alias of.

From-SVN: r92585
2004-12-24 05:23:10 +00:00
Bud Davis c1c42f20d6 complex_write.f90: removed extraneous comma.
2004-12-23  Bud Davis  <bdavis9659@comcast.net>

	* gfortran.dg/complex_write.f90: removed extraneous comma.

From-SVN: r92584
2004-12-24 03:17:13 +00:00
Alan Modra 3c028f6548 re PR target/19142 (ppc-darwin no longer builds)
PR target/19142
	* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Allow
	DFmode for 32-bit again.

From-SVN: r92583
2004-12-24 12:21:04 +10:30
Bud Davis 5d3a981694 re PR libfortran/19071 (complex formatted output has too many items)
2004-12-23  Bud Davis  <bdavis9659@comcast.net>

        PR fortran/19071
        * io/tranfer.c (formatted_transfer): moved check for
        format reversion inside the processing loop.

        * gfortran.dg/complex_write.f90: New test.

From-SVN: r92582
2004-12-24 00:29:07 +00:00
GCC Administrator 4a9dd33d4b Daily bump.
From-SVN: r92580
2004-12-24 00:16:14 +00:00
Steven G. Kargl f300468ade gfortran.texi: Fix typo.
2004-12-23  Steven G. Kargl  <kargls@comcast.net>

     * gfortran.texi: Fix typo.

From-SVN: r92575
2004-12-23 23:14:23 +00:00
Roger Sayle 5b804e8a7e reload.c (regno_clobbered_p): Add a gcc_assert that regno refers to a hard register.
* reload.c (regno_clobbered_p): Add a gcc_assert that regno
	refers to a hard register.

From-SVN: r92574
2004-12-23 22:48:51 +00:00
Mark Mitchell 5902897a20 re PR c++/17595 (Unfriendly error message/rejects legal #pragmas in the middle of a parameter list)
PR c++/17595
	* parser.c (cp_parser_error): Issue better messages about
	#pragma in locations where it is not permitted.

	PR c++/17595
	* g++.dg/parse/pragma2.C: New test.

From-SVN: r92573
2004-12-23 22:19:54 +00:00
Mark Mitchell 0d63048c5b re PR c++/17595 (Unfriendly error message/rejects legal #pragmas in the middle of a parameter list)
PR c++/17595
	* parser.c (cp_parser_error): Issue better messages about
	#pragma in locations where it is not permitted.

From-SVN: r92572
2004-12-23 22:07:01 +00:00
Mark Mitchell 058e32b336 gimplify.c (gimplify_modify_expr_rhs): Use types_compatible_p.
* gimplify.c (gimplify_modify_expr_rhs): Use types_compatible_p.

	* g++.dg/opt/temp1.C: Make memcpy actually copy bytes.

From-SVN: r92571
2004-12-23 21:55:12 +00:00
Alexandre Oliva 05f5e88556 Fixed incorrect PR number.
From-SVN: r92569
2004-12-23 21:39:25 +00:00
Alexandre Oliva da5572ef94 * gcc.dg/empty2.c: Add missing dg-warning.
From-SVN: r92566
2004-12-23 21:31:55 +00:00
DJ Delorie 603b6b8892 genrecog.c (did_you_mean_codes): New.
* genrecog.c (did_you_mean_codes): New.
(compute_predicate_codes): Fail unmatched codes.

From-SVN: r92565
2004-12-23 15:21:08 -05:00
Mark Mitchell aae4a27747 re PR c++/17413 (local classes as template argument)
PR c++/17413
	* pt.c (check_instantiated_args): Remove bogus SFINAE code.

	PR c++/17413
	* g++.dg/template/local4.C: New test.
	* g++.dg/template/crash19.C: Add dg-error marker.

From-SVN: r92562
2004-12-23 19:54:09 +00:00
Eric Christopher 3316f96899 mips.h (TARGET_CPU_CPP_BUILTINS): Add assert for machine=mips for !TARGET_IRIX.
2004-12-23  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add
	assert for machine=mips for !TARGET_IRIX.
	* config/mips/linux.h: Remove machine=mips assert.
	* config/mips/netbsd.h: Ditto.
	* config/mips/openbsd.h: Ditto.

From-SVN: r92561
2004-12-23 19:39:31 +00:00
Janis Johnson 56a5f30a48 Fix ChangeLog entry from 2004-12-22 from 'dg-xfail-if' to 'dg-skip-if'
From-SVN: r92558
2004-12-23 16:55:34 +00:00
Mark Mitchell b3d1c238d8 * g++.dg/template/crash31.C: Correct embedded PR number.
From-SVN: r92557
2004-12-23 16:47:19 +00:00
Mark Mitchell cc29fd59a5 * cvt.c (convert_to_void): Fix typo in comment.
From-SVN: r92556
2004-12-23 16:31:16 +00:00
Mark Mitchell ce21424d74 re PR c++/16405 (Temporary aggregate copy not elided)
PR c++/16405
	* gimplify.c (gimplify_modify_expr_rhs): Handle
	INDIRECT_REF/ADDR_EXPR combinations.

From-SVN: r92555
2004-12-23 16:27:11 +00:00
Dale Johannesen d070d4fd52 tree.c (iterative_hash_expr): Canonicalize builtins.
2004-12-23  Dale Johannesen  <dalej@apple.com>

        * tree.c (iterative_hash_expr):  Canonicalize builtins.

From-SVN: r92553
2004-12-23 16:21:31 +00:00
Alexandre Oliva 08167d1cdb re PR c++/18962 (specialization of template class with inner template members and parameter)
gcc/cp/ChangeLog:
PR c++/18962
* pt.c (check_explicit_specialization): Use the argument list from
the definition in a template function specialization definition.
gcc/testsuite/ChangeLog:
* g++.dg/template/spec19.C: New.

From-SVN: r92552
2004-12-23 16:12:57 +00:00
Alexandre Oliva faa003343e re PR target/16819 (ICE with empty struct as arg)
gcc/ChangeLog:
PR target/16819
* calls.c (load_register_parameters): Don't call use_regs when
nregs is zero.
gcc/testsuite/ChangeLog:
PR target/16891
* gcc.dg/empty2.c: New.

From-SVN: r92551
2004-12-23 16:09:01 +00:00
Eric Botcazou 579eab5897 re PR middle-end/17746 (ICE when building the Ada RTS)
PR middle-end/17746
	* expr.c (get_inner_reference): Add 'keep_aligning' parameter.
	Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT
	platforms only if keep_aligning is true.
	(expand_assignment): Adjust call to get_inner_reference.
	(expand_expr_addr_expr_1): Likewise.
	(expand_expr_real_1): Likewise.
	* dojump.c (do_jump): Likewise.
	* dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
	* fold-const.c (optimize_bit_field_compare): Likewise.
	(decode_field_reference): Likewise.
	(split_address_to_core_and_offset): Likewise.
	* tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
	* tree.h (get_inner_reference): Adjust prototype.

ada/
	* trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
	* utils2.c (build_unary_op): Likewise.

From-SVN: r92550
2004-12-23 13:05:50 +00:00
Eric Botcazou 2614034eea re PR middle-end/17746 (ICE when building the Ada RTS)
PR middle-end/17746
	* expr.c (get_inner_reference): Add 'keep_aligning' parameter.
	Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT
	platforms only if keep_aligning is true.
	(expand_assignment): Adjust call to get_inner_reference.
	(expand_expr_addr_expr_1): Likewise.
	(expand_expr_real_1): Likewise.
	* dojump.c (do_jump): Likewise.
	* dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
	* fold-const.c (optimize_bit_field_compare): Likewise.
	(decode_field_reference): Likewise.
	(split_address_to_core_and_offset): Likewise.
	* tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
	* expr.h (get_inner_reference): Adjust prototype.

ada/
	* trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
	* utils2.c (build_unary_op): Likewise.

From-SVN: r92549
2004-12-23 13:02:33 +00:00
Richard Henderson 9690a82122 i386.c (override_options): Revert last change wrt fancy 387 math.
* config/i386/i386.c (override_options): Revert last change
        wrt fancy 387 math.

From-SVN: r92547
2004-12-23 02:38:14 -08:00
Richard Henderson e26b63b29f alpha.md (one_cmpl<mode>2, [...]): New macroized vector operate patterns.
* config/alpha/alpha.md (one_cmpl<mode>2, and<mode>3, andnot<mode>3,
        ior<mode>3, iornot<mode>3, xor<mode>3, xornot<mode>3): New macroized
        vector operate patterns.

From-SVN: r92545
2004-12-23 02:32:42 -08:00
Richard Henderson 3e8aba3481 target-supports.exp (check_effective_target_vect_no_align): Remove i?86 and x86-64.
* lib/target-supports.exp (check_effective_target_vect_no_align):
        Remove i?86 and x86-64.

From-SVN: r92544
2004-12-23 02:25:45 -08:00
Richard Henderson c38573a8d0 i386.c (ix86_expand_vector_move): Tidy.
* config/i386/i386.c (ix86_expand_vector_move): Tidy.
        (ix86_expand_vector_move_misalign): New.
        (ix86_misaligned_mem_ok): Remove.
        (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
        * config/i386/i386-protos.h: Update.
        * config/i386/i386.md (SSEMODEI): Rename from SSEINT16.
        (MMXMODEI): Rename from MMXINT8.
        (SSEMODE, MMXMODE, movmisalign<mode>): New.

From-SVN: r92543
2004-12-23 02:20:04 -08:00
Mark Mitchell f98625f6a5 re PR c++/16405 (Temporary aggregate copy not elided)
PR c++/16405
	* gimplify.c (gimplify_modify_expr_rhs): Handle
	INDIRECT_REF/ADDR_EXPR combinations.

	PR c++/16405
	* g++.dg/opt/temp1.C: New test.

From-SVN: r92539
2004-12-23 08:14:33 +00:00
Richard Henderson ad78a663e8 alpha.c (alpha_expand_mov): Split out ...
* config/alpha/alpha.c (alpha_expand_mov): Split out ...
        (alpha_expand_movmisalign): ... misaligned vector support.
        (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
        * config/alpha/alpha-protos.h: Update.
        * config/alpha/alpha.md (VEC): New macro.
        (movv8qi, movv4hi, movv2si): Compress with VEC.
        (movv8qi_fix, movv4hi_fix, movv2si_fix): Likewise.
        (movv8qi_nofix, movv4hi_nofix, movv2si_nofix): Likewise.
        (movmisalign<mode>): New.

From-SVN: r92538
2004-12-23 00:08:59 -08:00
Richard Henderson 1e0598e25c optabs.h (OTI_movmisalign, [...]): New.
* optabs.h (OTI_movmisalign, movmisalign_optab): New.
        * optabs.c (init_optabs): Create it.
        * genopinit.c (optabs): Initialize it.
        * expr.c (expand_expr_real_1) <MISALIGNED_INDIRECT_REF>: Use it.
        * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
        * target-def.h (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
        * target.h (vectorize.misaligned_mem_ok): Remove.
        * targhooks.c (default_vect_misaligned_mem_ok): Remove.
        * doc/md.texi (movmisalign): New.
        * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.

From-SVN: r92537
2004-12-22 23:58:41 -08:00
Richard Henderson 1c47af84a3 emmintrin.h (_mm_loadh_pd): Don't cast pointer arg to __v2si.
* config/i386/emmintrin.h (_mm_loadh_pd): Don't cast pointer arg
        to __v2si.
        (_mm_storeh_pd, _mm_loadl_pd, _mm_storel_pd): Likewise.
        * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use double* or
        const double* for __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
        __builtin_ia32_storehpd, __builtin_ia32_storelpd.
        (ix86_expand_builtin): Update to match.
        (ix86_expand_vector_init): Use sse2_loadlpd.
        * config/i386/i386.md (vec_setv2df): Use sse2_loadlpd, sse2_loadhpd.
        (vec_extractv2df): Use sse2_storelpd, sse2_storehpd.
        (sse2_storehpd, sse2_loadhpd, sse2_storelpd, sse2_loadlpd): New.
        (sse2_movhpd): Remove.

From-SVN: r92536
2004-12-22 23:49:24 -08:00
Alan Modra 5e5f01b969 re PR target/18751 (ICE in expr.c:5083, profiledbootstrap)
PR target/18751
	* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Return
	false for anything larger than 32 bits in 32-bit code.

From-SVN: r92535
2004-12-23 18:04:45 +10:30
Richard Henderson ad4f9e7ebb i386.md (btsq, btrq, btcq): Fix modes.
* config/i386/i386.md (btsq, btrq, btcq): Fix modes.
        (bt peepholes): Likewise.

From-SVN: r92534
2004-12-22 23:23:31 -08:00