From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#24703: Store references in 8-byte chunks in compiled code Date: Sun, 06 Nov 2016 21:58:23 +0100 Message-ID: <87bmxsz5ow.fsf@gnu.org> References: <8737jwnb1c.fsf@netris.org> <87r37gstf6.fsf_-_@netris.org> <87d1j0sl1l.fsf@netris.org> <87a8e4glot.fsf@gnu.org> <8f2024ad-13c1-d4b1-1541-c2a5bddcb403@etorok.net> <87h98bdvng.fsf@gnu.org> <87k2d6qqee.fsf@netris.org> <20161024194022.GA1772@jasmine> <87insh1oxz.fsf@gnu.org> <87a8de7s6q.fsf@inria.fr> <20161105183650.GA21301@jasmine> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53211) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c3UWv-0005GQ-J6 for bug-guix@gnu.org; Sun, 06 Nov 2016 15:59:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c3UWs-0008Jr-Hv for bug-guix@gnu.org; Sun, 06 Nov 2016 15:59:05 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:59996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1c3UWs-0008Je-DZ for bug-guix@gnu.org; Sun, 06 Nov 2016 15:59:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <20161105183650.GA21301@jasmine> (Leo Famulari's message of "Sat, 5 Nov 2016 14:36:50 -0400") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Leo Famulari Cc: 24703@debbugs.gnu.org Leo Famulari skribis: > On Sat, Nov 05, 2016 at 12:15:25AM +0100, Ludovic Court=C3=A8s wrote: [...] >> Instead, the knobs we have are (1) global flag to enable/disable each >> built-in function (like -fno-builtin-=E2=80=A6 does), and (2) an x86-spe= cific >> knob to determine whether to use =E2=80=98movabs=E2=80=99 or not (=E2=80= =98-mmemcpy-strategy=E2=80=99 >> supposedly controls that, but =E2=80=98-mmemcpy-strategy=3Dlibcall:-1:no= align=E2=80=99 >> doesn=E2=80=99t seem to have any effect for instance.) > > Please correct me if I paraphrase the choices incorrectly: > (1) Completely disable the strcpy optimization for all architectures > (2) Ostensibly change how strcpy is optimized on x86, except the knob > seems to have no effect Correct. >> These knobs are not great because that would lead us to disable the >> optimization wholesale, which is not desirable. > > What are the costs of (1)? Should we report (2) upstream? -fno-builtin-{strcpy,memcpy} disables not just use of =E2=80=98movabs=E2=80= =99 but also all the optimizations that GCC can make when the built-ins are being used (see the doc for =E2=80=98-mmemcpy-strategy=E2=80=99). It wouldn=E2= =80=99t feel right to disable that completely. Ludo=E2=80=99.