From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-f174.google.com (mail-il1-f174.google.com [209.85.166.174]) by sourceware.org (Postfix) with ESMTPS id ED742385C64F for ; Mon, 12 Dec 2022 14:57:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org ED742385C64F Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=opensuse.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cristianrodriguez.net Received: by mail-il1-f174.google.com with SMTP id d14so3451612ilq.11 for ; Mon, 12 Dec 2022 06:57:48 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=duu1WANonBqnpbl0iGnc53gSX8ThsEpWALSLqzeV9ts=; b=f+5h8+AR8J7UPn2W0dmu+A5Br61At15WEm8iMY/Ywx6HrujoYWOxMoAj8z0m+q53xk H37u1LIDJWadvciM6m4ulqQOWREgeJb4CwdvI5AYrJlyGT6Gg9YitVXnoEZHTmzhp0xN pOJAphxggAmRc/XviGiEF1Rk0LtXnL7bzUqCfPs5HMMqvibVbD4W3Xvl9Znt5R56kDZx saKaGHKM0WlUJSinUp8UnO9rj36cPeIMhTMfEff7ApjNqjoCOUKNNdDvjc4fXqQSTgtI knnF9dG3Uw0U3RGNZ+jfoPEyw86UM/oxi9pvZJAbbsrqav006gWh/CrkobOuBShUeJge pJkw== X-Gm-Message-State: ANoB5plxhgtFFByUDv9ayusI8L5tC+yTPZ5cFPsRR5rBMr11Q6omGS2i tYoxZjpgd2A2Hogr2P1axN6fGSdEp8L9HULV9vMjOw== X-Google-Smtp-Source: AA0mqf4yfDCuDz6k6iteoQ50Jt3rFc0Un2J2IEIVoYl2sblLugd5Vq35hq99l4Eso2mjPccDvgNvhsxMXUsrNXQbXaA= X-Received: by 2002:a92:ccca:0:b0:2ff:e796:926 with SMTP id u10-20020a92ccca000000b002ffe7960926mr36397044ilq.216.1670857068156; Mon, 12 Dec 2022 06:57:48 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Cristian_Rodr=C3=ADguez?= Date: Mon, 12 Dec 2022 11:57:36 -0300 Message-ID: Subject: Re: Missing optimization: mempcpy(3) vs memcpy(3) To: Wilco Dijkstra Cc: "Alejandro Colomar (man-pages)" , GNU C Library , "gcc@gcc.gnu.org" Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Mon, Dec 12, 2022 at 11:35 AM Wilco Dijkstra via Libc-alpha wrote: > > Hi, > > I don't believe there is a missing optimization here: compilers expand mempcpy > by default into memcpy since that is the standard library call. That means even > if your source code contains mempcpy, there will never be any calls to mempcpy. > > The reason is obvious: most targets support optimized memcpy in the C library > while very few optimize mempcpy. The same is true for bzero, bcmp and bcopy. > > Targets can do it differently, IIRC x86 is the only target that emits calls both to > memcpy and mempcpy. yeah, x86_64 at least uses both, but I think open coded mempcpy needs to be transformed into a library call anyway. Other optimizations that are actually missing are: - the cases where of snprintf %s could become memccpy - open coded memccpy could also be turned into library calls.