From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-f171.google.com (mail-il1-f171.google.com [209.85.166.171]) by sourceware.org (Postfix) with ESMTPS id D6ABD3858423 for ; Mon, 12 Dec 2022 14:57:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D6ABD3858423 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-f171.google.com with SMTP id y2so3465996ily.5 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=k/gZ6+W5Cu51T8g3F+2xZSff6HUPW9lAXtd+J+h8zn69PqL3XZPBJgsz07wesj9stQ 2fYeyIQX+/jIr1R4RA0TVGeeQHSKJpojKDximyU7GfQroV3n4UjHq+BqldFxZFdXb2cd oNmqFZGhNBhxaPALFnJjw3YDVC3Ui3I7DJc25eoyDdXc2qulufeokYJl0ZI4jr0QD3/C X/qMUsr8ER2dBkL2XsWzIkpnN/xYCnVKVV1T3HI9DTt44fTmggaErPZ3xT6kBfimaa6U q6ai8qKoiRVmLJu5MgRuu0BbVdY70xjBN7AleUTNZrHdOEtPV/EFKl8kSRrHW9jugFyY gvRg== X-Gm-Message-State: ANoB5pnRFoWHGCzSXrBE1Chk9nstR4WcGgbUipsWXVH27iCdDGqbIKsV OwztXGuMFCEfdU4MSjEyFJFrdBSHF+ouXrs1Tojc3g== 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.8 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.