Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp1885583ioo; Mon, 23 May 2022 05:37:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwSLLsrX+IRSWH07Op8uaqiuhPOEN8+qYoP+djbIjRlQMGPH4lroDbsT7xDgldGr/IvPXJZ X-Received: by 2002:a63:5b13:0:b0:3c2:163c:b9cb with SMTP id p19-20020a635b13000000b003c2163cb9cbmr19820520pgb.145.1653309423208; Mon, 23 May 2022 05:37:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653309423; cv=none; d=google.com; s=arc-20160816; b=DX+xEWA3sSpHREV4k5nuwyIGblHuPPLyMpi5WzNufIgLIjFtE6e2/KbNasdEvJP6+O uIaoIZxQfEaAwrxjtAqXxExfJ+R2AHd0Hy1IzJI9Z2ThcmtdhAr2g7PEHI7C2o5FERkY GPcU3D3GseJqYI2ZEknKjE/Bc8ZowGMlQrFgtjkWzxmpRnvTAvKxGQSK6KsJSpsemkje Z+/9zPp/WkI3ZWcqmQHUBnWGYF/NiuUmRYAII5flmFLkm51ontVOK+NgQ3beibRLxCR7 BKLo2t7N1ugC8t0Iab4O92rbjBKOEnMx231tTLuNRTQcyWZ31vkq1vDVND9VYhh050Xp n4wQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=zWW6thDJ98/KzWOHjOmZlsh4+inUgZI3sNPxS+N5zm4=; b=iOcH0VtHTk/R8MbzF2G81SQ5522p/0RnyRWmEdYmaaCSzbC38mzUfZ4sm2+9F3iPS/ 88Ug2NTNAtBET2ynyiEaInyOHhpz2iRZiGNT583m16kRU5zE1c8xQXV1LXyOSKYjltzt 4QS3s2hdUdJNRCndMvLAiq+jv3YIOcizgWiC6D5D12RO1mwvMpbhCEbbNld7VVt7GqLe 3rD+mFVjGjlS48OaS2c3dLxUcDiifK9aRvyV6BYXSs+2GFQ1w2k8QCIE+o+qnj/vuVMv gzHio3RmFBW0XqvzH+UTVSZi8w592ksFsYzBef/yQOBat71rw2n9L3/vac0+/QkbdTXo HYdg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Fb+2IhZR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id a13-20020a631a4d000000b003c6bf875c80si9717507pgm.679.2022.05.23.05.37.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 May 2022 05:37:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Fb+2IhZR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 7B86B4D24F; Mon, 23 May 2022 05:36:51 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235489AbiEWMez (ORCPT + 99 others); Mon, 23 May 2022 08:34:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44022 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235417AbiEWMev (ORCPT ); Mon, 23 May 2022 08:34:51 -0400 Received: from mail-qk1-x72a.google.com (mail-qk1-x72a.google.com [IPv6:2607:f8b0:4864:20::72a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7CF2743EEF; Mon, 23 May 2022 05:34:47 -0700 (PDT) Received: by mail-qk1-x72a.google.com with SMTP id p123so2486282qke.5; Mon, 23 May 2022 05:34:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=zWW6thDJ98/KzWOHjOmZlsh4+inUgZI3sNPxS+N5zm4=; b=Fb+2IhZRT4kRSIPikn+2vrZ3ASxWPm9JevY9AyDxBmT0f96Tnjg97FewA8Z2eOHV9d 3q6EtAFe80QFNOneuVVUOiPoyMHFCfKDdJfI99TA8S8/00y3BM0i+RAy/DTMamwLdVx3 LivEDJxlb54BM4jD+44FiMjqRvcC1m4a0vQr/7D/dKXQFxovELDKdyRS3Yd28qPvyfs/ z5fsbg4+TG+DgU+1p3W/Rl8KNKTucF/5+P5cMVxJSxoXxA28yYkJ5Eksnb4YX/3MFNb+ 78tTvvlsUHn7MoUdk/K6sw00DibL6xOgbTxAJMEETVsd3ExtbZ0ILhwN15M7LwQWyu4h iOsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=zWW6thDJ98/KzWOHjOmZlsh4+inUgZI3sNPxS+N5zm4=; b=kglG3W6T+/KJUZL2ee0Xs0viHQocBwigspQDWJJivBMy73TbfbIfCtOkPEuh36at4g eE/KHm4LZTJ4BCwqc84n5TrTudrdB9qHTpvYfTPoFd4//7WK399Wa8etjcaL98GCBZRQ 1DByv294wlXCxzzoP0+ppT1gVcVD4ZhqcYjRsNveV7Kp9aj5PYW1O2NCNzjot4s426zf zhaZRklgD72MlEKovku6tu3opLV/xNy4b59adAIZ6wNb2g0L9CnueagY9YXfUlwTSmJD LW4PC0nhPKHY1cWB4eJL71ERH7bGlYWiclnGA4YnQZzl4ZfXqDyun5jyj9S2goT7qAy7 QQfA== X-Gm-Message-State: AOAM532Y8uZnWKXOF09L4dXhksT4xfF/Rna/tsBKc9NiyYVtPQg5GXxT 04C64TC0cUVNlOghGb0rpeI= X-Received: by 2002:a37:a74e:0:b0:6a3:95f5:48f8 with SMTP id q75-20020a37a74e000000b006a395f548f8mr2585829qke.126.1653309286500; Mon, 23 May 2022 05:34:46 -0700 (PDT) Received: from mail.google.com ([207.246.89.135]) by smtp.gmail.com with ESMTPSA id 9-20020a370809000000b006a346e0f653sm4374569qki.15.2022.05.23.05.34.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 May 2022 05:34:46 -0700 (PDT) Date: Mon, 23 May 2022 20:34:36 +0800 From: Changbin Du To: Masahiro Yamada Cc: Christophe JAILLET , Dan Carpenter , Michal Marek , Nick Desaulniers , Linux Kernel Mailing List , kernel-janitors@vger.kernel.org, Linux Kbuild mailing list , Arnd Bergmann , Changbin Du Subject: Re: [RFC PATCH] kbuild: Add an option to enable -O1 and speed-up compilation time Message-ID: <20220523123436.b5gwj55xacc2hxcv@mail.google.com> References: <23e0ba7863d51ab629498762a97d477645aeafea.1653123744.git.christophe.jaillet@wanadoo.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,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 lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, May 22, 2022 at 12:38:17AM +0900, Masahiro Yamada wrote: > (+CC: Arnd, Changbin Du) > > > If -O1 support does not require additional effort, > I have no objection to this patch. > > (but I do not have enough insight about > the compiler's inlining heuristic) > > > > BTW, when we attempted to add the -Og support, > we fixed various parts, and Linus rejected it. > > https://lore.kernel.org/linux-kbuild/CAK7LNARQggM3aKEPRKJqa4tunFAfmfErMZuS-rrnRv6UB1VpPQ@mail.gmail.com/ > > > > > > > I am afraid that '-O1' has the same situation with '-Og'. As described in GCC mannual: Like -O0, -Og completely disables a number of optimization passes so that individual options controlling them have no effect. Otherwise -Og enables all -O1 optimization flags except for those that may interfere with debugging: -fbranch-count-reg -fdelayed-branch -fdse -fif-conversion -fif-conversion2 -finline-functions-called-once -fmove-loop-invariants -fmove-loop-stores -fssa-phiopt -ftree-bit-ccp -ftree-dse -ftree-pta -ftree-sra > On Sat, May 21, 2022 at 6:04 PM Christophe JAILLET > wrote: > > > > Add a new compilation option which speeds-up compilation time. > > This can be useful when using static checker such as smatch or build-bots. > > In such cases, the speed and quality of the generated code is not > > important. > > > > Using -O0 would be even better, but unfortunately, building fails with > > this option. > > > > Signed-off-by: Christophe JAILLET > > --- > > Makefile | 5 ++++- > > init/Kconfig | 8 ++++++++ > > 2 files changed, 12 insertions(+), 1 deletion(-) > > > > diff --git a/Makefile b/Makefile > > index 1f8bef92868f..14467386f947 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -817,7 +817,10 @@ KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation) > > KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow) > > KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member) > > > > -ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE > > +ifdef CONFIG_CC_OPTIMIZE_FOR_COMPILATION_SPEED > > +KBUILD_CFLAGS += -O1 > > +KBUILD_RUSTFLAGS_OPT_LEVEL_MAP := 1 > > +else ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE > > KBUILD_CFLAGS += -O2 > > KBUILD_RUSTFLAGS_OPT_LEVEL_MAP := 2 > > else ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 > > diff --git a/init/Kconfig b/init/Kconfig > > index a96776a9b080..3177a1830c9a 100644 > > --- a/init/Kconfig > > +++ b/init/Kconfig > > @@ -1384,6 +1384,14 @@ choice > > prompt "Compiler optimization level" > > default CC_OPTIMIZE_FOR_PERFORMANCE > > > > +config CC_OPTIMIZE_FOR_COMPILATION_SPEED > > + bool "Optimize for compilation speed (-O1)" > > + help > > + This option can be useful when running a static checker such as smatch > > + or a build-bot. > > + Compilation time is slighly faster than -O2 and it requires less > > + memory. > > + > > config CC_OPTIMIZE_FOR_PERFORMANCE > > bool "Optimize for performance (-O2)" > > help > > -- > > 2.34.1 > > > > > -- > Best Regards > Masahiro Yamada -- Cheers, Changbin Du