From patchwork Tue Sep 8 10:46:41 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 515374 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 19872140134 for ; Tue, 8 Sep 2015 20:47:23 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=mUtFtFP0; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:to :from:subject:message-id:date:mime-version:content-type; q=dns; s=default; b=bKOhvpqYcU1qQkaSeVCPhuLCp3tL/p5V2y+nqFDrPoZSAb57/u yTGUsAcI63iaRRIrlh5HvvuX4YyviIWw0iGuR9ah/OEGdUDlOYTXo2WcXFiHOW2k u77+lAAHZPa/+3Kxq+fijBG8SzFKrOuVyVzK1QMRAPimZFBPaWtaVeNew= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:to :from:subject:message-id:date:mime-version:content-type; s= default; bh=ieCeKIMD6SmF9WH0WIou2bMdG30=; b=mUtFtFP0xAQR2aM7MVPH vlH5Qtttzgyrdq1cCzwLIZWKHutQmTUjvPOAm6wvEbuaO17DdW93OFnS7GRPZALp ysqEx5cpsOnSWrep1K5e0y8xDWN+hUUV1Pz57lRWlMnVi+dTZk88ZlB2Z/XHqGHt 6XYjVs5KdpMqYKPbXxsolBk= Received: (qmail 11178 invoked by alias); 8 Sep 2015 10:47:16 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 11158 invoked by uid 89); 8 Sep 2015 10:47:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL, BAYES_00, SPF_PASS, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: fencepost.gnu.org Received: from fencepost.gnu.org (HELO fencepost.gnu.org) (208.118.235.10) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Tue, 08 Sep 2015 10:47:12 +0000 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47309) by fencepost.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ZZGQg-0007QD-Fv for gcc-patches@gnu.org; Tue, 08 Sep 2015 06:47:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZZGQc-0004nZ-Mt for gcc-patches@gnu.org; Tue, 08 Sep 2015 06:47:10 -0400 Received: from relay1.mentorg.com ([192.94.38.131]:51713) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZGQc-0004mX-Gt for gcc-patches@gnu.org; Tue, 08 Sep 2015 06:47:06 -0400 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=SVR-IES-FEM-01.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1ZZGQa-0005FR-6s from Tom_deVries@mentor.com for gcc-patches@gnu.org; Tue, 08 Sep 2015 03:47:04 -0700 Received: from [127.0.0.1] (137.202.0.76) by SVR-IES-FEM-01.mgc.mentorg.com (137.202.0.104) with Microsoft SMTP Server id 14.3.224.2; Tue, 8 Sep 2015 11:47:02 +0100 To: "gcc-patches@gnu.org" From: Tom de Vries Subject: [RFC] Prevent unnecessary recompilation for trivial params.def changes Message-ID: <55EEBC91.7060901@mentor.com> Date: Tue, 8 Sep 2015 12:46:41 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Windows NT kernel [generic] [fuzzy] X-Received-From: 192.94.38.131 Hi, this patch adds generation of params.list, a file containing a list of names of all the parameters in params.def. By including params.list in params.h, rather than params.def itself, we prevent recompiling the 118 c files that include params.h for trivial changes in params.def, such as f.i. changing the default value of a parameter. I did a minimal build with the patch, and tested the behaviour by doing both trivial an non-trivial changes in params.def, and rebuilding. Any comments? Thanks, - Tom Add params.list --- gcc/Makefile.in | 6 +++++- gcc/params-list.h | 4 ++++ gcc/params.h | 5 +---- 3 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 gcc/params-list.h diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 3d1c1e5..f1ce154 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -2415,7 +2415,7 @@ generated_files = config.h tm.h $(TM_P_H) $(TM_H) multilib.h \ $(ALL_GTFILES_H) gtype-desc.c gtype-desc.h gcov-iov.h \ options.h target-hooks-def.h insn-opinit.h \ common/common-target-hooks-def.h pass-instances.def \ - c-family/c-target-hooks-def.h + c-family/c-target-hooks-def.h params.list # # How to compile object files to run on the build machine. @@ -3236,6 +3236,10 @@ installdirs: $(mkinstalldirs) $(DESTDIR)$(man1dir) $(mkinstalldirs) $(DESTDIR)$(man7dir) +params.list: $(srcdir)/params-list.h $(srcdir)/params.def + $(CPP) $(srcdir)/params-list.h | sed 's/^#.*//;/^$$/d' > tmp-params.list + $(SHELL) $(srcdir)/../move-if-change tmp-params.list params.list + PLUGIN_HEADERS = $(TREE_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ toplev.h $(DIAGNOSTIC_CORE_H) $(BASIC_BLOCK_H) $(HASH_TABLE_H) \ tree-ssa-alias.h $(INTERNAL_FN_H) gimple-fold.h tree-eh.h gimple-expr.h \ diff --git a/gcc/params-list.h b/gcc/params-list.h new file mode 100644 index 0000000..49301d2 --- /dev/null +++ b/gcc/params-list.h @@ -0,0 +1,4 @@ +#define DEFPARAM(enumerator, option, nocmsgid, default, min, max) \ + enumerator, +#include "params.def" +#undef DEFPARAM diff --git a/gcc/params.h b/gcc/params.h index f53426d..9f7618a 100644 --- a/gcc/params.h +++ b/gcc/params.h @@ -81,10 +81,7 @@ extern void set_param_value (const char *name, int value, enum compiler_param { -#define DEFPARAM(enumerator, option, nocmsgid, default, min, max) \ - enumerator, -#include "params.def" -#undef DEFPARAM +#include "params.list" LAST_PARAM }; -- 1.9.1