From patchwork Sat Jun 28 00:48:22 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siddhesh Poyarekar X-Patchwork-Id: 1810 Received: (qmail 25544 invoked by alias); 28 Jun 2014 00:47:06 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 25531 invoked by uid 89); 28 Jun 2014 00:47:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.5 required=5.0 tests=AWL, BAYES_00, SPF_HELO_PASS, SPF_PASS, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Date: Sat, 28 Jun 2014 06:18:22 +0530 From: Siddhesh Poyarekar To: Chris Metcalf Cc: Will Newton , Roland McGrath , libc-alpha Subject: Re: [PATCH v2] Fix Wundef warning for MEMCPY_OK_FOR_FWD_MEMMOVE Message-ID: <20140628004821.GK4477@spoyarek.pnq.redhat.com> References: <20140626185412.GA1826@spoyarek.pnq.redhat.com> <20140626190423.572732C3993@topped-with-meat.com> <20140627092109.GD4477@spoyarek.pnq.redhat.com> <20140627171326.GE4477@spoyarek.pnq.redhat.com> <53ADD391.2030803@tilera.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <53ADD391.2030803@tilera.com> User-Agent: Mutt/1.5.22.1-rc1 (2013-10-16) On Fri, Jun 27, 2014 at 04:26:57PM -0400, Chris Metcalf wrote: > On 6/27/2014 1:13 PM, Siddhesh Poyarekar wrote: > >I've moved the macro definition to memcopy.h with tile overriding the > >definition in its memcopy.h. This also allows us to get rid of the > >tile-specific memmove.c. The tile bit is untested, so I'll need Chris > >to verify that it doesn't cause any problems. The code is unchanged > >on x86_64. > > > >Siddhesh > > > > * sysdeps/generic/memcopy.h: Define MEMCPY_OK_FOR_FWD_MEMMOVE. > > * sysdeps/tile/memcopy.h: Redefine MEMCPY_OK_FOR_FWD_MEMMOVE. > > * sysdeps/tile/tilegx/memmove.c: Remove file. > > The problem with this is that tilepro's memmove.c can't use the optimization, > just tilegx, thus the placement in sysdeps/tile/tilegx/memmove.c. So with an > #ifdef __tilegx__, and copying in the comment from the old memmove.c, > this would seem to be OK. Thanks, this is what I committed. Siddhesh commit 64df73c2ea0e02f7794ba2f08540a74a9bb198db Author: Siddhesh Poyarekar Date: Sat Jun 28 06:05:24 2014 +0530 Fix Wundef warning for MEMCPY_OK_FOR_FWD_MEMMOVE Define MEMCPY_OK_FOR_FWD_MEMMOVE in memcopy.h and let arch-specific implementations of that file override the value if necessary. This override is only useful for tile and moving this macro to memcopy.h allows us to remove the tile-specific memmove.c. diff --git a/ChangeLog b/ChangeLog index 3582966..0f8b538 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-06-28 Siddhesh Poyarekar + + * sysdeps/generic/memcopy.h: Define MEMCPY_OK_FOR_FWD_MEMMOVE. + * sysdeps/tile/memcopy.h: Redefine MEMCPY_OK_FOR_FWD_MEMMOVE. + * sysdeps/tile/tilegx/memmove.c: Remove file. + 2014-06-27 Joseph Myers * Makeconfig ($(common-objpfx)soversions.mk): Do not generate diff --git a/sysdeps/generic/memcopy.h b/sysdeps/generic/memcopy.h index 49e5363..b39a960 100644 --- a/sysdeps/generic/memcopy.h +++ b/sysdeps/generic/memcopy.h @@ -148,4 +148,6 @@ extern void _wordcopy_bwd_dest_aligned (long int, long int, size_t) __THROW; /* Threshold value for when to enter the unrolled loops. */ #define OP_T_THRES 16 +#define MEMCPY_OK_FOR_FWD_MEMMOVE 0 + #endif /* memcopy.h */ diff --git a/sysdeps/tile/memcopy.h b/sysdeps/tile/memcopy.h index e8326ee..8333101 100644 --- a/sysdeps/tile/memcopy.h +++ b/sysdeps/tile/memcopy.h @@ -19,6 +19,12 @@ #include #include +/* The tilegx implementation of memcpy is safe to use for memmove. */ +#ifdef __tilegx__ +# undef MEMCPY_OK_FOR_FWD_MEMMOVE +# define MEMCPY_OK_FOR_FWD_MEMMOVE 1 +#endif + /* Support more efficient copying on tilegx32, which supports long long as a native 64-bit type. */ #if defined (__tilegx__) && __WORDSIZE == 32 diff --git a/sysdeps/tile/tilegx/memmove.c b/sysdeps/tile/tilegx/memmove.c deleted file mode 100644 index 38323ce..0000000 --- a/sysdeps/tile/tilegx/memmove.c +++ /dev/null @@ -1,22 +0,0 @@ -/* Copy memory to memory until the specified number of bytes - has been copied. Overlap is handled correctly. - Copyright (C) 2012-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* The tilegx implementation of memcpy is safe to use for memmove. */ -#define MEMCPY_OK_FOR_FWD_MEMMOVE 1 -#include