------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-14 
23:37 -------
Subject: Bug 14311

CVSROOT:        /cvs/gcc
Module name:    gcc
Changes by:     [EMAIL PROTECTED]       2005-04-14 23:37:47

Modified files:
        gcc            : ChangeLog builtin-types.def builtins.c 
                         builtins.def c-common.c c-common.h c-typeck.c 
                         expr.c expr.h genopinit.c optabs.c optabs.h 
        gcc/doc        : extend.texi md.texi 
Added files:
        gcc/testsuite/gcc.c-torture/compile: sync-1.c 
        gcc/testsuite/gcc.dg: sync-1.c 

Log message:
        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.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.8294&r2=2.8295
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/builtin-types.def.diff?cvsroot=gcc&r1=1.30&r2=1.31
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/builtins.c.diff?cvsroot=gcc&r1=1.452&r2=1.453
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/builtins.def.diff?cvsroot=gcc&r1=1.101&r2=1.102
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-common.c.diff?cvsroot=gcc&r1=1.621&r2=1.622
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-common.h.diff?cvsroot=gcc&r1=1.283&r2=1.284
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-typeck.c.diff?cvsroot=gcc&r1=1.431&r2=1.432
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/expr.c.diff?cvsroot=gcc&r1=1.783&r2=1.784
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/expr.h.diff?cvsroot=gcc&r1=1.186&r2=1.187
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/genopinit.c.diff?cvsroot=gcc&r1=1.91&r2=1.92
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/optabs.c.diff?cvsroot=gcc&r1=1.270&r2=1.271
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/optabs.h.diff?cvsroot=gcc&r1=1.54&r2=1.55
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/extend.texi.diff?cvsroot=gcc&r1=1.250&r2=1.251
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/md.texi.diff?cvsroot=gcc&r1=1.128&r2=1.129
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/compile/sync-1.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/sync-1.c.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14311

Reply via email to