From patchwork Fri Oct 28 04:07:38 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 122337 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 87AD61007DB for ; Fri, 28 Oct 2011 15:08:50 +1100 (EST) Received: (qmail 13678 invoked by alias); 28 Oct 2011 04:08:25 -0000 Received: (qmail 13385 invoked by uid 22791); 28 Oct 2011 04:08:19 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, SPF_NEUTRAL, T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from eggs.gnu.org (HELO eggs.gnu.org) (140.186.70.92) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 28 Oct 2011 04:08:02 +0000 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RJdjb-0006sU-Lw for gcc-patches@gcc.gnu.org; Fri, 28 Oct 2011 00:08:01 -0400 Received: from mail-gy0-f175.google.com ([209.85.160.175]:40931) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RJdjb-0006sL-FZ for gcc-patches@gcc.gnu.org; Fri, 28 Oct 2011 00:07:59 -0400 Received: by gyc15 with SMTP id 15so3770497gyc.20 for ; Thu, 27 Oct 2011 21:07:58 -0700 (PDT) Received: by 10.236.23.67 with SMTP id u43mr792586yhu.123.1319774878095; Thu, 27 Oct 2011 21:07:58 -0700 (PDT) Received: from localhost.localdomain (c-98-203-235-125.hsd1.wa.comcast.net. [98.203.235.125]) by mx.google.com with ESMTPS id j25sm10849016yhm.12.2011.10.27.21.07.57 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 27 Oct 2011 21:07:57 -0700 (PDT) From: Richard Henderson To: gcc-patches@gcc.gnu.org Cc: amacleod@redhat.com Subject: [PATCH 9/9] Update ChangeLogs. Date: Thu, 27 Oct 2011 21:07:38 -0700 Message-Id: <1319774858-9181-10-git-send-email-rth@redhat.com> In-Reply-To: <1319774858-9181-1-git-send-email-rth@redhat.com> References: <1319774858-9181-1-git-send-email-rth@redhat.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 209.85.160.175 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org --- gcc/ChangeLog.mm | 58 +++++++++++++++++++++++++++++++++++++++++++++ gcc/c-family/ChangeLog.mm | 4 +++ 2 files changed, 62 insertions(+), 0 deletions(-) diff --git a/gcc/ChangeLog.mm b/gcc/ChangeLog.mm index 498cc15..758b510 100644 --- a/gcc/ChangeLog.mm +++ b/gcc/ChangeLog.mm @@ -1,3 +1,61 @@ +2011-10-27 Richard Henderson + + * config/i386/i386.md (UNSPECV_CMPXCHG): Split into ... + (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, + UNSPECV_CMPXCHG_3, UNSPECV_CMPXCHG_4): New. + * config/i386/sync.md (mem_thread_fence): Rename from memory_barrier. + Handle the added memory model parameter. + (mfence_nosse): Rename from memory_barrier_nosse. + (sync_compare_and_swap): Split into ... + (atomic_compare_and_swap): this and ... + (atomic_compare_and_swap): this. Handle the new parameters. + (atomic_compare_and_swap_single): Rename from + sync_compare_and_swap; rewrite to use split unspecs. + (atomic_compare_and_swap_double): Rename from + sync_double_compare_and_swap; rewrite to use split unspecs. + (*atomic_compare_and_swap_doubledi_pic): Rename from + sync_double_compare_and_swapdi_pic; rewrite to use split unspecs. + (atomic_fetch_add): Rename from sync_old_add; add memory + model parameter. + (*atomic_fetch_add_cmp): Similarly. + (atomic_add, atomic): Similarly. + (atomic_sub): Similarly. Use x86_maybe_negate_const_int. + (sync_lock_test_and_set): Merge with ... + (atomic_exchange): ... this. + + * optabs.c (get_atomic_op_for_code): Split out from ... + (maybe_emit_op): ... here. + * optabs.h (struct atomic_op_functions): Move from optabs.c and + rename from struct op_functions. + (get_atomic_op_for_code): Declare. + * omp-low.c (expand_omp_atomic_fetch_op): Use get_atomic_op_for_code + and test both atomic and sync optabs. + + * genopinit.c (optabs): Add atomic_add, atomic_sub, atomic_and, + atomic_nand, atomic_xor, atomic_or. + + * optabs.c (expand_val_compare_and_swap_1): Remove. + (expand_val_compare_and_swap, expand_bool_compare_and_swap): Remove. + (expand_atomic_compare_and_swap): Rename from + expand_atomic_compare_exchange. Rewrite to return both success and + oldval return values; expand via both atomic and sync optabs. + (expand_compare_and_swap_loop): Use expand_atomic_compare_and_swap. + (expand_atomic_load): Likewise. + * builtins.c (expand_builtin_compare_and_swap): Likewise. + (expand_builtin_atomic_compare_exchange): Likewise. + * expr.h, optabs.h: Update. + + * optabs.c (can_compare_and_swap_p): New. + (expand_atomic_exchange, expand_atomic_fetch_op): Use it. + * builtins.c (fold_builtin_atomic_always_lock_free): Likewise. + * omp-low.c (expand_omp_atomic_pipeline): Likewise. + * optabs.h: Update. + + * optabs.c (maybe_gen_insn): Handle 8 operands. + + * builtins.c (expand_builtin_mem_thread_fence): Fixup thinko in + mem_thread_fence case. + 2011-10-26 Andrew MacLeod * builtins.c (expand_builtin_atomic_fetch_op): External calls for diff --git a/gcc/c-family/ChangeLog.mm b/gcc/c-family/ChangeLog.mm index f23e1c0..5845d68 100644 --- a/gcc/c-family/ChangeLog.mm +++ b/gcc/c-family/ChangeLog.mm @@ -1,3 +1,7 @@ +2011-10-27 Richard Henderson + + * c-cppbuiltin.c (c_cpp_builtins): Test both atomic and sync patterns. + 2011-10-25 Andrew MacLeod * c-common.c (get_atomic_generic_size): New. Find size of generic