From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17152 invoked by alias); 8 Nov 2007 00:35:15 -0000 Received: (qmail 17069 invoked by uid 22791); 8 Nov 2007 00:35:13 -0000 X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 08 Nov 2007 00:35:10 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.8/8.13.1) with ESMTP id lA80Z7rU031183; Wed, 7 Nov 2007 19:35:08 -0500 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [10.10.36.72]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id lA80Z79d019810; Wed, 7 Nov 2007 19:35:07 -0500 Received: from devserv.devel.redhat.com (localhost.localdomain [127.0.0.1]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id lA80Z7X9026163; Wed, 7 Nov 2007 19:35:07 -0500 Received: (from jakub@localhost) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11/Submit) id lA80Z77p026161; Wed, 7 Nov 2007 19:35:07 -0500 Date: Thu, 08 Nov 2007 00:35:00 -0000 From: Jakub Jelinek To: Diego Novillo Cc: gcc-patches@gcc.gnu.org Subject: Re: Fix PR 33870 Message-ID: <20071108003507.GQ5451@devserv.devel.redhat.com> Reply-To: Jakub Jelinek References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i X-IsSubscribed: yes 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 X-SW-Source: 2007-11/txt/msg00376.txt.bz2 On Wed, Nov 07, 2007 at 07:24:32PM -0500, Diego Novillo wrote: > --- tree.h (revision 129956) > +++ tree.h (working copy) > @@ -2573,15 +2573,21 @@ struct tree_struct_field_tag GTY(()) > /* Size of the field. */ > unsigned HOST_WIDE_INT size; > > + /* True if this SFT is for a field in a nested structure. */ > + unsigned int in_nested_struct : 1; > + > /* Alias set for a DECL_NONADDRESSABLE_P field. Otherwise -1. */ > alias_set_type alias_set; > }; Doesn't this grow struct tree_struct_field_tag by in most cases 8 bytes? Aren't there enough bitfields that could be used for this bit instead? struct tree_memory_tag GTY(()) { struct tree_decl_minimal common; bitmap GTY ((skip)) aliases; unsigned int is_global:1; }; 31 or even 63 bits in tree_memory_tag (and then tree_base has a whole bunch of spare bits, so perhaps if is_global moved to one of those too (of course guarded with TREE_MEMORY_TAG_CHECK resp. STRUCT_FIELD_TAG_CHECK), we would save even 8 more bytes here. I know [tuples] does far more here, but even 4.3 will be used in the wild and every byte in often used structs counts. Jakub