From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id 2491F3858D1E for ; Tue, 25 Apr 2023 09:13:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2491F3858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn Received: from loongson.cn (unknown [10.20.4.97]) by gateway (Coremail) with SMTP id _____8AxX+ubmUdkQGsAAA--.723S3; Tue, 25 Apr 2023 17:13:00 +0800 (CST) Received: from [10.20.4.97] (unknown [10.20.4.97]) by localhost.localdomain (Coremail) with SMTP id AQAAf8DxwOSZmUdkV286AA--.42697S3; Tue, 25 Apr 2023 17:12:57 +0800 (CST) Subject: Re: [PATCH] LoongArch: Enable shrink wrapping To: Lulu Cheng , Xi Ruoyao , gcc-patches@gcc.gnu.org Cc: WANG Xuerui , Chenghua Xu References: <20230423131903.155998-1-xry111@xry111.site> From: Guo Jie Message-ID: Date: Tue, 25 Apr 2023 17:12:57 +0800 User-Agent: Mozilla/5.0 (X11; Linux mips64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-CM-TRANSID:AQAAf8DxwOSZmUdkV286AA--.42697S3 X-CM-SenderInfo: xjxryx3h6o00pqjv00gofq/ X-Coremail-Antispam: 1Uk129KBjvJXoW7WryrAF4xZF4kGr4xGF18Grg_yoW8GF45pa 1xGFW5KFykAFn3Wr4xWFy5XFyfXr17K3WUZwn3XFyUArZ3AryFgrnYg3yqgF17Gw48Jr1Y vr98ursI93WUZ3DanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUj1kv1TuYvTs0mT0YCTnIWj qI5I8CrVACY4xI64kE6c02F40Ex7xfYxn0WfASr-VFAUDa7-sFnT9fnUUIcSsGvfJTRUUU bI8YFVCjjxCrM7AC8VAFwI0_Jr0_Gr1l1xkIjI8I6I8E6xAIw20EY4v20xvaj40_Wr0E3s 1l1IIY67AEw4v_Jr0_Jr4l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xv wVC0I7IYx2IY67AKxVWUJVWUCwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwA2z4 x0Y4vEx4A2jsIE14v26r4UJVWxJr1l84ACjcxK6I8E87Iv6xkF7I0E14v26r4UJVWxJr1l e2I262IYc4CY6c8Ij28IcVAaY2xG8wAqjxCEc2xF0cIa020Ex4CE44I27wAqx4xG64xvF2 IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_JrI_JrylYx0Ex4A2jsIE14v26r1j6r4U McvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvEwIxGrwCYjI0SjxkI62AI1cAE67vIY487Mx AIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_ Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0EwI xGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8 JwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcV C2z280aVCY1x0267AKxVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvjxUrNtxDUUUU X-Spam-Status: No, score=-13.3 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_SHORT,NICE_REPLY_A,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: /* snip */ >>   diff --git a/gcc/testsuite/gcc.target/loongarch/shrink-wrap.c >> b/gcc/testsuite/gcc.target/loongarch/shrink-wrap.c >> new file mode 100644 >> index 00000000000..f2c867a2769 >> --- /dev/null >> +++ b/gcc/testsuite/gcc.target/loongarch/shrink-wrap.c >> @@ -0,0 +1,22 @@ >> +/* { dg-do compile } */ >> +/* { dg-options "-O -fshrink-wrap" } */ >> + >> +/* f(x) should do nothing if x is 0.  */ >> +/* { dg-final { scan-assembler "bnez\t\\\$r4,\[^\n\]*\n\tjr\t\\\$r1" >> } } */ >> + >> +void g(void); >> + >> +void >> +f(int x) >> +{ >> +  if (x) >> +    { >> +      register int s0 asm("s0") = x; >> +      register int s1 asm("s1") = x; >> +      register int s2 asm("s2") = x; >> +      asm("" : : "r"(s0)); >> +      asm("" : : "r"(s1)); >> +      asm("" : : "r"(s2)); >> +      g(); >> +    } >> +} I think the test case cannot fully reflect the optimization effect of the current patch, because even without the patch, -O -fshrink-wrap will still perform architecture independent optimization. This patch considers architecture related registers as finer grained optimization for shrink wrapping, I think a test case like the one below is more suitable: int foo(int x) {   if (x)   {     __asm__ ("":::"s0","s1");     return x;   }   __asm__ ("":::"s2","s3");   return 0; } Otherwise LGTM, thanks!