From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by sourceware.org (Postfix) with ESMTPS id 27B9F3858409 for ; Fri, 31 Dec 2021 21:16:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 27B9F3858409 Received: by mail-pl1-x62e.google.com with SMTP id c3so7672323pls.5 for ; Fri, 31 Dec 2021 13:16:09 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+IQo7RK0EAhag9qdVbYfZDFPHG4dhwHYHpadIjy7Q4Y=; b=o2cCS79b9j9z005PX16T9q4/OVCDaKqJbOQJCIDMQ3TtbJPfZbZM0HGtHDxZ0mcmia ZeeNxHJpx6NiCwtQUhlV+bXZGNnZu+JqQ9OzQd2BGOi0VrNEjfiJTSXc7YjbqStnrsgy Vo37P05qzQUz6r9aeAU5hCIMZEh+xlGdGsQI9SlGFmAgffyL12GK3yYZFSe5QPbamOt5 bzxMcfAGxxBMS85vVSn9Uao7MGUtfv0sXq4LBRPplMm62kUEGarwhGQIld0J6/xRTjgu RyLGtJN2/C/bXNkv1WDtg8cJ1a8eTd0s3IT/8onfVj6xh5lqcWQL1pq3dJN6mzZNPrWn hmKQ== X-Gm-Message-State: AOAM5303ECAYmzpOuxkRB/TBfwQs2mHql9pRl1fqmSk6mNEHVc5xU9mR kYEtK9r1SpiMei76uy8ntKBZkZhGr7HNCy8Q91g= X-Google-Smtp-Source: ABdhPJzEEc7sjpgAwYoWcMpC+6hII71agA2QW95WokKi4AEsnvgluMmh2vb9ExRus7kQInuPBxAWecrIKA4BHSUZzPA= X-Received: by 2002:a17:90a:604f:: with SMTP id h15mr45001021pjm.87.1640985368202; Fri, 31 Dec 2021 13:16:08 -0800 (PST) MIME-Version: 1.0 References: <20211231182010.107040-1-hjl.tools@gmail.com> <87h7aofqtx.fsf@mid.deneb.enyo.de> <878rw0fpxm.fsf@mid.deneb.enyo.de> In-Reply-To: <878rw0fpxm.fsf@mid.deneb.enyo.de> From: Noah Goldstein Date: Fri, 31 Dec 2021 15:15:57 -0600 Message-ID: Subject: Re: [PATCH] x86-64: Optimize memset for zeroing To: Florian Weimer Cc: "H.J. Lu" , "H.J. Lu via Libc-alpha" , GCC Development , Arjan van de Ven Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Dec 2021 21:16:10 -0000 On Fri, Dec 31, 2021 at 3:02 PM Florian Weimer wrote: > > * H. J. Lu: > > > On Fri, Dec 31, 2021 at 12:43 PM Florian Weimer wrote: > >> > >> * H. J. Lu via Libc-alpha: > >> > >> > bzero is an alias of SSE2 memset in glibc. Should we add __memsetzero > >> > like __memcmpeq? It should be almost free in glibc. GCC can use > >> > __memsetzero if it is available. Think __memsetzero makes sense. > >> > >> bzero does not have the interface ambiguity that bcmp has. So the > >> only reason for not using it would be namespace cleanliness. > > > > bzero isn't a standard C function and it isn't optimized like memset > > in glibc. It could be an issue if the "optimization" was made and then the binary was run with an older version of GCC that was still using the aliasing bzero. Would end up being a deoptimization then. > > GCC already uses non-standard functions whose names are not > implementation-defined for optimization purposes if a suitable > prototype is available. stpcpy is an example, for: > > strcpy (a, b); > return a + strlen (a);