Commit Graph

64703 Commits

Author SHA1 Message Date
Dorit Naishlos
2b0729bafa * tree-vectorizer.c (vect_mark_relevant) First argument changed from
varray_type to varray_type*.
        (vect_mark_stmts_to_be_vectorized): Pass &worklist instead of worklist
        when calling vect_mark_relevant.

From-SVN: r92671
2004-12-28 12:44:29 +00:00
Alan Modra
0d8c1c97eb rs6000.c (rs6000_legitimize_reload_address): Don't generate non-offsettable DImode lo_sum addresses.
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
	generate non-offsettable DImode lo_sum addresses.

From-SVN: r92670
2004-12-28 21:54:21 +10:30
Zdenek Dvorak
6e17f9c1fe re PR rtl-optimization/19103 (Current CVS (2004/12/21) doesn't compile with profiledbootstrap)
PR rtl-optimization/19103
	* loop-iv.c (iv_number_of_iterations): Fix typo.

From-SVN: r92669
2004-12-28 10:33:39 +00:00
Andreas Jaeger
8127356e4e * genrecog.c (compute_predicate_codes): Avoid warning.
From-SVN: r92668
2004-12-28 08:56:09 +01:00
John David Anglin
76335fefff vax.c (vax_address_cost, [...]): Correct casts.
* vax.c (vax_address_cost, vax_rtx_cost): Correct casts.
	(vax_rtx_cost): Handle small offsets for both PLUS and MINUS.

From-SVN: r92667
2004-12-28 07:51:17 +00:00
Jeff Law
685c2171c1 tree-ssa-dom.c (thread_across_edge): Remove broken code to avoid threading into a loop.
* tree-ssa-dom.c (thread_across_edge): Remove broken code to
        avoid threading into a loop.

From-SVN: r92666
2004-12-27 23:34:55 -07:00
Richard Henderson
5fc94ac4ba re PR target/17406 (ICE dwarf2out_frame_debug_expr, at dwarf2out.c:1692)
PR target/17406
        * config/i386/i386.c (ix86_expand_prologue): Add REG_FRAME_RELATED_EXPR
        note for allocate_stack_worker insn.

From-SVN: r92662
2004-12-27 21:26:23 -08:00
Jason Merrill
445cf5eb0d Add memory barriers to the double-checked locking used for static initialization.
libstdc++:
        Add memory barriers to the double-checked locking used for static
        initialization.
        * libsupc++/guard.cc (__test_and_acquire): Define default.
        (_GLIBCXX_GUARD_TEST_AND_ACQUIRE, __set_and_release)
        (_GLIBCXX_GUARD_SET_AND_RELEASE): Likewise.
        (recursion_push, recursion_pop): New abstraction functions.
        (__cxa_guard_acquire): Use _GLIBCXX_GUARD_TEST_AND_ACQUIRE.
        (__cxa_guard_release): Use _GLIBCXX_GUARD_SET_AND_RELEASE.
        * config/cpu/generic/cxxabi_tweaks.h (_GLIBCXX_GUARD_TEST): Rename
        from _GLIBCXX_GUARD_ACQUIRE and reverse sense.
        (_GLIBCXX_GUARD_SET): Rename from _GLIBCXX_GUARD_RELEASE.
        * config/cpu/arm/cxxabi_tweaks.h: Likewise.
        * config/cpu/alpha/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER)
        (_GLIBCXX_WRITE_MEM_BARRIER): Define.
        * config/cpu/powerpc/atomic_word.h: Likewise.
        * config/cpu/sparc/atomic_word.h: Likewise.
        * config/cpu/generic/atomic_word.h: Define them, commented out.
        * include/bits/atomicity.h: Define defaults.
        * config/cpu/ia64/atomic_word.h (__test_and_acquire)
        (__set_and_release): New inlines.
        (_GLIBCXX_GUARD_TEST_AND_ACQUIRE): Define.
        (_GLIBCXX_GUARD_SET_AND_RELEASE): Define.

        * libsupc++/guard.cc (acquire_1): Use __builtin_trap instead of
        abort();

gcc:
        * doc/tm.texi (TARGET_RELAXED_ORDERING): Document.
        * target.h (struct gcc_target): Add relaxed_ordering field.
        * target-def.h (TARGET_RELAXED_ORDERING): Define default.
        (TARGET_INITIALIZER): Add it.
        * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Define.
        * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Define.
        * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Define.
        * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define.
        * cp/decl.c (expand_static_init): Don't use shortcut if
        targetm.relaxed_ordering.

From-SVN: r92659
2004-12-27 23:36:54 -05:00
Roger Sayle
1f7edb8b3d re PR driver/16118 (Preprocessed source error with -xf77-cpp-input)
PR driver/16118
	* doc/invoke.texi: Document the interaction between -save-temps
	and -x.

From-SVN: r92658
2004-12-28 04:24:30 +00:00
David Edelsohn
55aa0757e2 rs6000.c (rs6000_eliminate_indexed_memrefs): Do not break apart constant pool addresses.
* config/rs6000/rs6000.c (rs6000_eliminate_indexed_memrefs):
        Do not break apart constant pool addresses.
        (rs6000_emit_move): Only force source into REG if target is MEM.

From-SVN: r92657
2004-12-27 19:39:18 -05:00
GCC Administrator
460fdb4efa Daily bump.
From-SVN: r92655
2004-12-28 00:16:20 +00:00
H.J. Lu
24f2cabbff Makefile.in: Undo to 2004-12-17.
2004-12-27  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in: Undo to 2004-12-17.
	* aclocal.m4: Likewise.
	* config.table: Likewise.
	* configure.ac: Likewise.
	* maint-tool: Likewise.
	* configure: Likewise.

From-SVN: r92651
2004-12-27 13:00:12 -08:00
Mark Mitchell
c827f22fb9 re PR c++/19149 (seg fault on invalid code)
PR c++/19149
	* decl.c (check_tag_decl): Robustify.

	PR c++/19149
	* g++.dg/parse/error23.C: New test.

From-SVN: r92648
2004-12-27 19:03:16 +00:00
Paolo Carlini
5168743153 type_traits: Rework the _DEFINE_SPEC* macros.
2004-12-27  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Rework the _DEFINE_SPEC* macros.

From-SVN: r92647
2004-12-27 18:51:12 +00:00
Mark Mitchell
8f8883b140 * g++.dg/opt/temp1.C (memcpy): Return a value.
From-SVN: r92646
2004-12-27 18:01:58 +00:00
Tobias Schlüter
e98a8b5b62 re PR libfortran/19032 (modulo generates wrong result for divisor 1 and -1)
fortran/
PR fortran/19032
* trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
in front of function to match the standard.  Correct handling
of MODULO.

testsuite/
PR fortran/19032
* gfortran.dg/intrinsic_modulo_1.f90: New.
* gfortran.fortran-torture/execute/intrinsic_mod_ulo.f90: Add
tests with divisor -1.

From-SVN: r92645
2004-12-27 18:13:07 +01:00
Andrew Pinski
201a97b479 trans-expr.c (gfc_conv_cst_int_power): Only check for flag_unsafe_math_optimizations if we have a float type.
2004-12-27  Andrew Pinski  <pinskia@physics.uc.edu>

        * trans-expr.c (gfc_conv_cst_int_power): Only check for
        flag_unsafe_math_optimizations if we have a float type.

From-SVN: r92644
2004-12-27 08:56:38 -08:00
Tobias Schlüter
963fe80802 Fix typo in ChangeLog
From-SVN: r92643
2004-12-27 17:43:47 +01:00
Tobias Schlüter
56746a0745 trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to logicalshift.
gcc/fortran/
* trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
logicalshift.  Call fold.  Remove 0-bit shift shortcut.
(gfc_conv_intrinsic_ishftc): Convert first argument to at least
4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
result if width(arg 1) < 4 bytes.  Call fold.

libgfortran/
* libgfortran/libgfortran.h (GFC_UINTEGER_1, GFC_UINTEGER_2):
Define.
* intrinsics/ishftc.c: Update copyright years.
(ishftc8): Change 'shift' and 'size' to GFC_INTEGER_4.
* intrinsics/mvbits.c: Correcty non-ASCII character in my name.
Add implementations for GFC_INTEGER_1 and GFC_INTEGER_2.

gcc/testsuite/
* gfortran.dg/g77/f90-intrinsic-bit.f: New.

From-SVN: r92642
2004-12-27 17:43:25 +01:00
Mark Mitchell
64092f8bc2 re PR c++/19148 (ICE: gimplification failed)
PR c++/19148
	* g++.dg/expr/cond7.C: New test.

From-SVN: r92641
2004-12-27 16:13:45 +00:00
Mark Mitchell
6ec215790a re PR c++/19148 (ICE: gimplification failed)
PR c++/19148
	* gimplify.c (gimplify_cond_expr): Add post_p parameter.
	(gimplify_modify_expr_rhs): Adjust call to gimplify_cond_expr.
	(gimplify_expr): Likewise.

From-SVN: r92640
2004-12-27 16:06:13 +00:00
Paul Brook
27e84b8165 * gfortran.dg/g77/select_no_compile.f: Remove.
From-SVN: r92639
2004-12-27 15:29:14 +00:00
Richard Henderson
accde4cfac i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW.
* config/i386/i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW.

        * gcc.dg/vect/vect-27a.c, gcc.dg/vect/vect-29a.c,
        gcc.dg/vect/vect-48a.c, gcc.dg/vect/vect-56a.c,
        gcc.dg/vect/vect-72a.c, gcc.dg/vect/vect-77a.c: Remove.

From-SVN: r92637
2004-12-27 01:35:54 -08:00
Richard Henderson
d833cfb041 * src/x86/unix64.S: Fix typo in unwind info.
From-SVN: r92636
2004-12-27 01:20:10 -08:00
Richard Henderson
82d3d6c893 compat-common.h (CINT, CDBL): Use multiplication by 1i instead of token pasting.
* gcc.dg/compat/compat-common.h (CINT, CDBL): Use multiplication
        by 1i instead of token pasting.

From-SVN: r92635
2004-12-26 20:27:09 -08:00
Richard Henderson
c91dead9be i386.md (mov<MMXMODEI>_internal_rex64): New.
* config/i386/i386.md (mov<MMXMODEI>_internal_rex64): New.
        (movv2sf_internal_rex64): New.
        (mov<MMXMODEI>_internal): Use no register preferences at all.
        (movv2sf_internal): Likewise.

From-SVN: r92634
2004-12-26 19:50:51 -08:00
Richard Henderson
52cf10a30a i386.c (ix86_gimplify_va_arg): Also pass the result of type_natural_mode to examine_argument.
* config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result
        of type_natural_mode to examine_argument.

From-SVN: r92633
2004-12-26 19:50:27 -08:00
Richard Henderson
551a3297bb simplify-rtx.c (simplify_relational_operation_1): Don't simplify plus/minus across EQ for floating-point.
* simplify-rtx.c (simplify_relational_operation_1): Don't simplify
        plus/minus across EQ for floating-point.

From-SVN: r92631
2004-12-26 19:31:49 -08:00
John David Anglin
73096ba97f re PR target/17643 (ICE in propagate_one_insn, at flow.c:1582)
PR target/17643
	* pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when
	generating code for the portable runtime.

From-SVN: r92629
2004-12-27 01:08:09 +00:00
GCC Administrator
e37ba56b57 Daily bump.
From-SVN: r92626
2004-12-27 00:16:18 +00:00
John David Anglin
daab976830 re PR tree-optimization/17578 (Missed optimization--failure of gcc.c-torture/execute/ieee/compare-fp-3.c at -O1 and above)
PR tree-optimization/17578
	* gcc.c-torture/execute/ieee/compare-fp-3.x: Append -fno-trapping-math
	to additional_flags.
	* gcc.c-torture/execute/ieee/compare-fp-4.x: Likewise.

From-SVN: r92623
2004-12-26 20:49:14 +00:00
Paolo Carlini
fe9ddfce2c type_traits (__is_enum_helper): Slightly simplify, make __convert non template.
2004-12-26  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits (__is_enum_helper): Slightly simplify,
	make __convert non template.

From-SVN: r92622
2004-12-26 19:05:47 +00:00
Paolo Carlini
1933b74f78 type_traits: Implement is_pod, has_trivial_constructor, and has_trivial_destructor.
2004-12-26  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Implement is_pod, has_trivial_constructor,
	and has_trivial_destructor.
	* testsuite/tr1/4_metaprogramming/type_properties/
	has_trivial_constructor/has_trivial_constructor.cc: New.
	* testsuite/tr1/4_metaprogramming/type_properties/
	has_trivial_constructor/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/
	has_trivial_destructor/has_trivial_destructor.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/
	has_trivial_destructor/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/
	is_pod/is_pod.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/type_properties/
	is_pod/typedefs.cc: Likewise.

From-SVN: r92618
2004-12-26 11:08:47 +00:00
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