1. 15 Apr, 2005 20 commits
  2. 14 Apr, 2005 20 commits
    • ia64.h (enum fetchop_code): Remove. · af795c3c
              * config/ia64/ia64.h (enum fetchop_code): Remove.
              (enum ia64_builtins): Move ...
              * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
              members except BSP and FLUSHRS.
              (ia64_init_builtins): Remove __sync builtins.
              (ia64_expand_builtin): Likewise.
              (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
              (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
              (ia64_expand_lock_release): Remove.
              * config/ia64/ia64.md (mf): Move to sync.md.
              (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
              cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
              * config/ia64/sync.md: New file.
              (memory_barrier): Rename from mf.
              (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
              (cmpxchg_acq_<I48MODE>): Likewise.
              (sync_lock_test_and_set<I48MODE>): Likewise.
      
              * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
              to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
      
      From-SVN: r98156
      Richard Henderson committed
    • i386.c (x86_cmpxchg, x86_xadd): New. · 1ef45b77
              * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
              (ix86_compare_emitted): New.
              (ix86_expand_compare): Use ix86_compare_emitted if set.
              (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
              and ix86_compare_op0 are set.
              * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
              (TARGET_CMPXCHG, TARGET_XADD): New.
              (ix86_compare_emitted): Declare.
              * config/i386/i386.md: Include sync.md
              (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
              (UNSPECV_XCHG, UNSPECV_LOCK): New.
              * config/i386/sync.md: New file.
      
      From-SVN: r98155
      Richard Henderson committed
    • re PR middle-end/14311 (builtins for atomic operations needed) · 48ae6c13
      	PR middle-end/14311
      	* builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
      	BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
      	BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
      	BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
      	BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
      	BT_FN_I8_VPTR_I8_I8): New.
      	* builtins.def (DEF_SYNC_BUILTIN): New.
      	(BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
      	BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
      	BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
      	BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
      	BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
      	BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
      	BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
      	BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
      	BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
      	BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
      	BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
      	BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
      	BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
      	BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
      	BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
      	BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
      	BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
      	BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
      	BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
      	BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
      	BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
      	BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
      	BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
      	BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
      	BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
      	BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
      	BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
      	BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
      	BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
      	BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
      	BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
      	BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
      	BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
      	BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
      	BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
      	BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
      	BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
      	BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
      	BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
      	BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
      	BUILT_IN_SYNCHRONIZE: New.
      	* builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
      	as a function.  Accept __sync_ as a prefix as well.
      	(expand_builtin_sync_operation, expand_builtin_compare_and_swap,
      	expand_builtin_lock_test_and_set, expand_builtin_synchronize,
      	expand_builtin_lock_release): New.
      	(expand_builtin): Call them.
      	* c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
      	neither BOTH_P nor FALLBACK_P are defined.
      	(builtin_type_for_size): New.
      	(sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
      	(resolve_overloaded_builtin): New.
      	* c-common.h (resolve_overloaded_builtin): Declare.
      	(builtin_type_for_size): Declare.
      	* c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
      	* expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
      	sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
      	sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
      	sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
      	sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
      	sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
      	sync_compare_and_swap_cc, sync_lock_test_and_set,
      	sync_lock_release): New.
      	* optabs.h: Declare them.
      	* expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
      	expand_sync_operation, expand_sync_fetch_operation,
      	expand_sync_lock_test_and_set): Declare.
      	* genopinit.c (optabs): Add sync optabs.
      	* optabs.c (init_optabs): Initialize sync optabs.
      	(expand_val_compare_and_swap_1, expand_val_compare_and_swap,
      	expand_bool_compare_and_swap, expand_compare_and_swap_loop,
      	expand_sync_operation, expand_sync_fetch_operation,
      	expand_sync_lock_test_and_set): New.
      	* doc/extend.texi (Atomic Builtins): New section
      	* doc/md.texi (Standard Names): Add sync patterns.
      
      From-SVN: r98154
      Richard Henderson committed
    • tree-eh.c (lower_try_finally_copy): Generate new code in response to goto_queue entries as if... · dd58eb5a
      * tree-eh.c (lower_try_finally_copy): Generate new code in
      response to goto_queue entries as if the queue was sorted by
      index, not pointers.
      (lower_try_finally_switch): Likewise.
      
      From-SVN: r98149
      Alexandre Oliva committed
    • re PR testsuite/21010 (New gcc.dg/vect tests fail) · b67af20b
      	PR testsuite/21010
      	* gcc.dg/vect/vect-ifcvt-1.c: Remove dg-do, add cleanup.
      	* gcc.dg/vect/vect-ifcvt-2.c: Ditto.
      	* gcc.dg/vect/vect-ifcvt-3.c: Ditto.
      	* gcc.dg/vect/vect-ifcvt-4.c: Ditto.
      	* gcc.dg/vect/vect-ifcvt-5.c: Ditto.
      	* gcc.dg/vect/vect-ifcvt-6.c: Ditto.
      	* gcc.dg/vect/vect-ifcvt-7.c: Ditto.
      	* gcc.dg/vect/vect-ifcvt-9.c: Ditto.
      
      From-SVN: r98148
      Janis Johnson committed
    • i386.c (ix86_expand_sse_cmp): Split out from ... · ae46a07a
              * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
              (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
              register.
              (ix86_expand_fp_movcc): Update to match.
              (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
              * config/i386/i386-protos.h: Update.
              * config/i386/sse.md (vcondv4sf, vcondv2df): New.
              (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
      
              * lib/target-supports.exp (check_effective_target_vect_condition):
              Add ia64, i?86, and x86_64.
      
      From-SVN: r98146
      Richard Henderson committed
    • cpp.texi, [...]: Change references to GCC 3.5 to refer to 4.0. · 25f710ba
      	* doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
      	refer to 4.0.
      
      From-SVN: r98144
      Joseph Myers committed
    • * Revert patch from 2005-04-13. · 07b12652
      From-SVN: r98143
      Julian Brown committed
    • * gfortran.dg/underflow.f90: Use tiny(x)/huge(x). · ab13f408
      From-SVN: r98142
      Steven G. Kargl committed
    • gfortran.h (gfc_real_info): Add subnormal struct member. · 2d0aa65f
      * gfortran.h (gfc_real_info): Add subnormal struct member.
      * arith.c (gfc_arith_init_1): Set it.
        (gfc_check_real_range): Use it.
      * simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.).
      
      From-SVN: r98141
      Steven G. Kargl committed
    • config.gcc: Set cpu_type for s390. · 6cecb0aa
      2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
      
      	* config.gcc: Set cpu_type for s390.
      
      From-SVN: r98140
      Andreas Krebbel committed
    • Whoops, wrong version of file. · 9b1d490c
      Sorry about that
      
      From-SVN: r98137
      Daniel Berlin committed
    • re PR tree-optimization/20963 (ICE tree check: expected value_handle, have… · 75a7d5d0
      re PR tree-optimization/20963 (ICE tree check: expected value_handle, have addr_expr in value_exists_in_set_bitmap, at tree-ssa-pre.c:437)
      
      2005-04-14  Daniel Berlin  <dberlin@dberlin.org>
      
      	Fix PR tree-optimization/20963
      	* tree-ssa-pre.c (compute_avail): Remove special case for
      	TREE_INVARIANT.
      	(create_expression_by_pieces): Add value numbers for forced out
      	statements.
      
      From-SVN: r98136
      Daniel Berlin committed
    • cris.md: Replace references to (reg:SI 16) with (reg:SI CRIS_SRP_REGNUM). · f16bb520
      	* config/cris/cris.md: Replace references to (reg:SI 16) with
      	(reg:SI CRIS_SRP_REGNUM).
      
      From-SVN: r98135
      Hans-Peter Nilsson committed
    • re PR tree-optimization/20657 ([tcb] VRP does not get rid of a redundant "if" statement.) · a0ce7978
      gcc/
      	PR tree-optimization/20657
      	* tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
      	create an appropriate range from it.
      
      testsuite/
      	PR tree-optimization/20657
      	* gcc.dg/tree-ssa/pr20657.c: New.
      
      From-SVN: r98134
      Kazu Hirata committed
    • cp-tree.h (SET_TMPL_ARG, [...]): Remove. · c44001c6
      	* cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
      	CLASSTYPE_TEMPLATE_LEVEL): Remove.
      
      From-SVN: r98133
      Kazu Hirata committed
    • reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and <UNSPEC_FIST_CEIL> case. · 4a927664
      	* reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
      	<UNSPEC_FIST_CEIL> case.
      
      	* config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
      	(*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
      	(fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
      	to implement lfloor and llfloor built-ins as x87 intrinsic function.
      	(fistdi2_floor, fist<mode>2_floor splitters): New splitters.
      	(lfloor<mode>2): New expanders.
      	(*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
      	(fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
      	to implement lceil and llceil built-ins as x87 intrinsic function.
      	(fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
      	(lceil<mode>2): New expanders.
      
      From-SVN: r98132
      Uros Bizjak committed
    • convert.c (convert_to_integer): Convert (long int)trunc{,f,l}, and (long long… · 2ec76fdb
      convert.c (convert_to_integer): Convert (long int)trunc{,f,l}, and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
      
      	* convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
      	and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
      
      testsuite:
      
      	* gcc.dg/builtins-53.c: Also check (int)trunc* and
      	(long long int)trunc*.
      
      From-SVN: r98131
      Uros Bizjak committed
    • re PR target/20927 (ICE in smallest_mode_for_size, at stor-layout.c:221 (s390x)) · 559be41a
      ChangeLog:
      
      	PR target/20927
      	* config/s390/s390-modes.def: Define TFmode.
      
      testsuite/ChangeLog:
      
      	PR target/20927
      	* gcc.dg/pr20927.c: New test.
      
      From-SVN: r98128
      Ulrich Weigand committed