From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15337 invoked by alias); 13 Jan 2015 16:33:02 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 15250 invoked by uid 89); 13 Jan 2015 16:33:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-la0-f54.google.com Received: from mail-la0-f54.google.com (HELO mail-la0-f54.google.com) (209.85.215.54) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Tue, 13 Jan 2015 16:32:59 +0000 Received: by mail-la0-f54.google.com with SMTP id pv20so3540537lab.13 for ; Tue, 13 Jan 2015 08:32:55 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=Vvh24eCD1qmDcJdZqWCvYnhty3l+eR2wn4M8YkII1LA=; b=hCpUn5XeVGeLzXDGyccFmFhQwyoYPYZvK3XGx8Va+Ekq2XNqomC4S57qyZiK7l8ZaQ xREW2vHQeG4fvpKcNu/n+XRaa21bQtwv3AnLeERiwBZH2dxXd+eBRxLYPe0MDU16PrUi 3u6w/PBcirt1qBZpzenfyST56MMP5ZIMjYdFxYXIJGrN7KR5Sx94ZugAT+Is1nnnGD52 IxPjuujRZ5fPSiBndCxOFOPCN8UsNvzCM5GEjrysJK1qZEa4DWnuy0p0zNoWRNpUppfs Ch/2uL5txfTq8bDjxgJr1Xdn8/oa9bPBzefODtGSn9800sIbiJzjs9ASMxfAuSxS0TCF +UIw== X-Gm-Message-State: ALoCoQnCBCUwCEkhSBBFbk4gsbZS4AuEI4wGxcrQ/QmzlPLIcGwNoBuvt5sh1auTs7knboYJRfXb MIME-Version: 1.0 X-Received: by 10.152.25.194 with SMTP id e2mr43267199lag.22.1421166775380; Tue, 13 Jan 2015 08:32:55 -0800 (PST) Received: by 10.25.211.16 with HTTP; Tue, 13 Jan 2015 08:32:55 -0800 (PST) In-Reply-To: References: Date: Tue, 13 Jan 2015 16:38:00 -0000 Message-ID: Subject: Re: flatten expr.h (version 2) From: Prathamesh Kulkarni To: Richard Biener Cc: gcc Patches , Michael Collison , Andrew MacLeod , Maxim Kuvyrkov , Jeff Law Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2015-01/txt/msg00902.txt.bz2 On 13 January 2015 at 16:06, Prathamesh Kulkarni wrote: > On 13 January 2015 at 15:34, Richard Biener wrote: >> On Sun, 11 Jan 2015, Prathamesh Kulkarni wrote: >> >>> Hi, >>> This is a revamped expr.h flattening flattening patch rebased on >>> tree.h and tree-core.h flattening patch (r219402). >>> It depends upon the following patch to get committed. >>> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html >>> >>> Changes: >>> * Removed all includes except tree-core.h. Put includes required by >>> expr.h in a comment. >>> * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively. >>> * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c. >>> * Did not put includes in gcc-plugin.h since expr.h cannot be included >>> by plugins >>> (putting them broke building a file in c-family/ since expr.h is not >>> allowed in front-ends) >>> * Affects java front-end (expr.h is allowed in java front-end). >>> >>> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages: >>> all,go,ada,jit >>> Built on all targets in config-list.mk with languages: all, go. >>> OK to commit ? >> >> diff --git a/gcc/expr.c b/gcc/expr.c >> index fc22862..824541e 100644 >> --- a/gcc/expr.c >> +++ b/gcc/expr.c >> @@ -41,11 +41,17 @@ along with GCC; see the file COPYING3. If not see >> #include "regs.h" >> #include "hard-reg-set.h" >> #include "except.h" >> -#include "input.h" >> #include "function.h" >> #include "insn-config.h" >> #include "insn-attr.h" >> /* Include expr.h after insn-config.h so we get HAVE_conditional_move. >> */ >> +#include "hashtab.h" >> +#include "emit-rtl.h" >> +#include "expmed.h" >> +#include "stmt.h" >> +#include "statistics.h" >> +#include "real.h" >> +#include "fixed-value.h" >> #include "expr.h" >> >> Please move the comment to the proper place > ah, my flattening tool doesn't look at comments. I will move the > comment before expr.h include, thanks. >> >> diff --git a/gcc/expr.h b/gcc/expr.h >> index a7638b8..f1be8dc 100644 >> --- a/gcc/expr.h >> +++ b/gcc/expr.h >> @@ -20,7 +20,8 @@ along with GCC; see the file COPYING3. If not see >> #ifndef GCC_EXPR_H >> #define GCC_EXPR_H >> >> -/* For inhibit_defer_pop */ >> +/* expr.h required includes */ >> +#if 0 >> #include "hashtab.h" >> #include "hash-set.h" >> #include "vec.h" >> @@ -29,15 +30,17 @@ along with GCC; see the file COPYING3. If not see >> #include "hard-reg-set.h" >> #include "input.h" >> #include "function.h" >> -/* For XEXP, GEN_INT, rtx_code */ >> #include "rtl.h" >> -/* For optimize_size */ >> #include "flags.h" >> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop, >> - ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes, */ >> #include "tree-core.h" >> -/* For GET_MODE_BITSIZE, word_mode */ >> #include "insn-config.h" >> +#include "alias.h" >> +#include "emit-rtl.h" >> +#include "expmed.h" >> +#include "stmt.h" >> +#endif >> >> Err, please remove the #if 0 section > I kept it because if something breaks later (hopefully not!), it will > be easier to fix. > I will remove it. >> >> + >> +#include "tree-core.h" >> >> Why? The original comment says >> >> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop, >> - ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes, */ >> >> but all those are declared in tree.h. Which means the files including >> expr.h must already include tree.h. >> >> If that's not the reason we need to include tree-core.h from expr.c >> please add a comment explaining why. > bt-load.c fails to compile because it includes expr.h but does not > include tree.h > I will place tree.h include in all files that include expr.h and rebuild. This is not going to work, since tree.h is now flattened. Shall also require including all headers required by tree.h in all files that include expr.h. Could we retain tree-core.h in expr.h for now ? Or should I insert tree.h (along with tree.h required includes) in all files that include expr.h ? Thanks, Prathamesh >> >> -/* Definitions from emit-rtl.c */ >> -#include "emit-rtl.h" >> - >> /* Return a memory reference like MEMREF, but with its mode widened to >> MODE and adjusted by OFFSET. */ >> extern rtx widen_memory_access (rtx, machine_mode, HOST_WIDE_INT); >> >> err - functions defined in emit-rtl.c should be declared in emit-rtl.h. >> Please fix that first. expr.h should _only_ contain prototypes >> for stuff defined in expr.c. > oops, missed it :( >> >> Andrew did a good job with this, first cleaning up a header moving >> declarations to proper places and only after that flattening it. >> >> The rest of the patch looks good to me but expr.h isn't in a good >> shape after it. > I will work on it and send patch with suggested changes by tomorrow. > > Thanks, > Prathamesh >> >> Thanks, >> Richard.