From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 69C3C3858D35 for ; Fri, 10 Nov 2023 11:30:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 69C3C3858D35 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=foss.arm.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=foss.arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 69C3C3858D35 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699615856; cv=none; b=HW26LJGF4FyPzNTnCKRRxMl2UyGXSRH3aHpV9iWhhqUITtuKcbDuaqKO0wi7x4tdTZP28+hFVNRIQngbN/d3XS55lUXkdtZhZzKLwtb2pQxTqybwcW9W3tCg/O3dBYS3moJPcuEviu8zIDydnDNtErWlH3NRNuNzRagMYJLv3cQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699615856; c=relaxed/simple; bh=WcX0ouPepbpdLBldAjCtMXYIZ4gSKtHeLWYFhV4TqQU=; h=Message-ID:Date:MIME-Version:Subject:To:From; b=TSv+SkEDKe/59WFhfF4lHEvxNS5YTpYvcntkqGCVdCUblR+zSYM36OZ93Mtl15lYZCRL9w+KnS1oINMrJlEjVKA2XX5CmJahfi1O/pjDymA/5ZzfNVM+zSy7+g+n2rATkEkbu5A5rqpbt8d4kuF55UlR/thVaEvXFB5rODNL054= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 67B3E106F; Fri, 10 Nov 2023 03:31:39 -0800 (PST) Received: from [10.57.1.86] (unknown [10.57.1.86]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E194D3F7C5; Fri, 10 Nov 2023 03:30:53 -0800 (PST) Message-ID: <372b9689-24b5-41f4-a990-5aee0226e15f@foss.arm.com> Date: Fri, 10 Nov 2023 11:30:52 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] AArch64: Cleanup memset expansion Content-Language: en-GB To: Wilco Dijkstra , Kyrylo Tkachov , GCC Patches Cc: Richard Sandiford , Richard Earnshaw References: From: Richard Earnshaw In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3489.2 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE 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 10/11/2023 10:17, Wilco Dijkstra wrote: > Hi Kyrill, > >> +  /* Reduce the maximum size with -Os.  */ >> +  if (optimize_function_for_size_p (cfun)) >> +    max_set_size = 96; >> + > >> .... This is a new "magic" number in this code. It looks sensible, but how did you arrive at it? > > We need 1 instruction to create the value to store (DUP or MOVI) and 1 STP > for every 32 bytes, so the 96 means 4 instructions for typical sizes > (sizes not > a multiple of 16 can add one extra instruction). > > I checked codesize on SPECINT2017, and 96 had practically identical size. > Using 128 would also be a reasonable Os value with a very slight size > increase, > and 384 looks good for O2 - however I didn't want to tune these values > as this > is a cleanup patch. > > Cheers, > Wilco Shouldn't this be a param then? Also, manifest constants in the middle of code are a potential nightmare, please move it to a #define (even if that's then used as the default value for the param).