Received: by 2002:a25:ef43:0:0:0:0:0 with SMTP id w3csp863895ybm; Wed, 27 May 2020 09:47:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxlgrhh3EHY4E79joCyd3E/Z1bUACro/KWmW91nIzu2BacyyyL5QcVNVzJtdCGLVsNCJ1r4 X-Received: by 2002:a17:907:b11:: with SMTP id h17mr6877826ejl.430.1590598023490; Wed, 27 May 2020 09:47:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590598023; cv=none; d=google.com; s=arc-20160816; b=XvajoFbTA1lKHAGbXJt0wkQEj8NZOWqrHvd7yVU0a1j0+7CFG7KOMX6Oi7kWHrpxio Nq6N6NRYwYE2NYzex2Z32vNkL0gU53tYE6QF3LER/BN2d8VIACQzwr7MTGCxutoeIVOR N7SlLNiUKgj0x/7PcbhcQ0R8ZDznHDSROeVIIyxxk6wIAnK5yHsP5IpXguMCGisSJD1l LnN2NFpd/Od6E66+QxWGP0qo95g9j5bLvNaeHNCQ6pDuBxUZWSfsRTDU6ZIdCwbJEFJW 7ydqPQ5kj14xPUiDslttbU5J7kKa7B/PvDwe7p8BoBqEjXAvE4I53+g6ogAse4KACuPU AfGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version; bh=uawALYrHZFhHKBQzwvHiRgX4LtFZuMYOk/gpUBYfqmA=; b=iXwn4v5f10wp+ycYMxG2pgi8DMFzSxhEjBui4maa8hMwdMiEdtf7qqfFKZkhfzqZFl K2WbtI3NdLibiN6M3hqvbhOlYj/imTZf4GRukE3khiXX2S5oEVo7xD+83lxdo0skyfem ljd4JLDxVMgGLG9y6Bpne+UrYflBUVbh9q74GUj/1M5v/pu4d+d2T3Z9tfy2QbGwWIiD blNN9D3H0xi7I0b8gHuuvH/8uUtjr1n7NDiEGJFQE8W6BwBJ7nFiwWqxA61r2jq1lpY+ C0xLorGgF5ZD0Pl8x9lRmZFXD+zHxVcRaX1QnE7nTqlCbifYpPL7dLBnIF936KPbwxuP 00nQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o20si2316321eji.71.2020.05.27.09.46.40; Wed, 27 May 2020 09:47:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730005AbgE0L1L (ORCPT + 99 others); Wed, 27 May 2020 07:27:11 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:35123 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725883AbgE0L1K (ORCPT ); Wed, 27 May 2020 07:27:10 -0400 Received: from mail-qk1-f175.google.com ([209.85.222.175]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPSA (Nemesis) id 1MXXhv-1jVttD35Z9-00YwXx for ; Wed, 27 May 2020 13:27:08 +0200 Received: by mail-qk1-f175.google.com with SMTP id 205so10785812qkg.3 for ; Wed, 27 May 2020 04:27:08 -0700 (PDT) X-Gm-Message-State: AOAM530vg0P08A0uFEzxS6AWocI6316m1BDTKGSkEie1ktEmna+w7PZ7 fO7OgZJlM9f4emP04fHSsjWlb3J46UAIDG3cnJU= X-Received: by 2002:a37:434b:: with SMTP id q72mr3711430qka.352.1590578827661; Wed, 27 May 2020 04:27:07 -0700 (PDT) MIME-Version: 1.0 References: <20200527103236.148700-1-elver@google.com> In-Reply-To: <20200527103236.148700-1-elver@google.com> From: Arnd Bergmann Date: Wed, 27 May 2020 13:26:51 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH -tip] compiler_types.h: Optimize __unqual_scalar_typeof compilation time To: Marco Elver Cc: Will Deacon , Peter Zijlstra , Borislav Petkov , Thomas Gleixner , Ingo Molnar , clang-built-linux , "Paul E. McKenney" , Dmitry Vyukov , Alexander Potapenko , Andrey Konovalov , kasan-dev , "linux-kernel@vger.kernel.org" , Nick Desaulniers , Stephen Rothwell Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:J3mYKozi9qcfSPfrL19tbd/nl686s0nV1s9lUV7w/3ZibJ4OaI/ 6LMFOclqEandcqWFMX9im0hpI48GoOBgizJmm0LhaYvZyvv7szhdWDTsRImII8th1mfY9hi 3aLED4+LHnzsOnrPoBiWos5ZKViJfaak2G0bF7rGRiuU7uvrUVgdnWQKOYIrcVTl4EcDi60 ZfQzqOshlrtKbkQTRCe3w== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:a0cE8+5pDVw=:oE+/BmVkRS4ikqU8wqm5RB yTbWeRGeg+e2PC7X0eRgGWkLzjNQh1zk+AtbNhT0tNf0EuZv726t+vN2Ik56iaxI3z6IPGTDD G5OQ4oV+lVL6BedS2crdC2kj3QQhCoLMjJKo+psxl/1qSkoO+6OdwWURXK+OT4Dat9QqMgt5A RRPo1Usd17GVQNREgt+SO7GWqJVA06RuedEOZMnUvxKiJxh3WArsrfTx1QNaa9QqLx9g5HJi5 +eHk1Z/AUJZacURbpFdcv77p8+MtlZoExon3gRenBj14iNLXVHqTLUZEOQuYYcUMkz8T09yDS EyLk9zwyTpg5zF7wNqJyVs1f+4FYRG6r42DbG0+iAzE33Mfym6vtFRnfl4t5xlfbN5x1OuFaZ f9RzOKnk5jURhFYrMOT294bMhit+WNe4gLV1OZElEftS19iHjKuu0HyCuLmzRA7V314/8ANsU IQBzEWbeRfQj8Wwyv3f1lyw/EvBcGKYPmODIIutAGhdAnS0lGCZcKmF89NPk28xroX2Elq0wi hiSfdpvz1ys4mhqJ7BStYKem0Ro4mAAk6jPAsdewX0/i8bDVKiXYeTGB9u7jSMU9v7eRNWrvk Q/l1GEMdGzlXe/0NI0x+iwWKo9s1Ea9xV7eMgOdQ5SuivVQMEc0kgiS3wBGDSA+qr1ATKKe/n HP+DAZRjKQ9P65M7Zx+8TTW+9JBPtO7p5RG7JbzjPBPBDdA3tRTSFf9Ne8a8oyabWAwWKlGRk O0E6urzPwz3LG6Cn+xi/ZnVka9ujlpAJgswoAdOq1lHpn8pQGlxuadjKT017J/8NBvHmbvocc rWb1L6PWZa7irgUcm14yyVtk3Doewbe+fkHvrtgXy3I15D1mkg= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 27, 2020 at 12:33 PM Marco Elver wrote: > > If the compiler supports C11's _Generic, use it to speed up compilation > times of __unqual_scalar_typeof(). GCC version 4.9 or later and > all supported versions of Clang support the feature (the oldest > supported compiler that doesn't support _Generic is GCC 4.8, for which > we use the slower alternative). > > The non-_Generic variant relies on multiple expansions of > __pick_integer_type -> __pick_scalar_type -> __builtin_choose_expr, > which increases pre-processed code size, and can cause compile times to > increase in files with numerous expansions of READ_ONCE(), or other > users of __unqual_scalar_typeof(). > > Summary of compile-time benchmarking done by Arnd Bergmann [1]: > > clang-11 gcc-9 > this patch 0.78 0.91 > ideal 0.76 0.86 > > [1] https://lkml.kernel.org/r/CAK8P3a3UYQeXhiufUevz=rwe09WM_vSTCd9W+KvJHJcOeQyWVA@mail.gmail.com > > Further compile-testing done with: > gcc 4.8, 4.9, 5.5, 6.4, 7.5, 8.4; > clang 9, 10. > > Reported-by: Arnd Bergmann > Signed-off-by: Marco Elver This gives us back 80% of the performance drop on clang, and 50% of the drop I saw with gcc, compared to current mainline. Tested-by: Arnd Bergmann