From patchwork Thu Jun 29 05:16:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luc Van Oostenryck X-Patchwork-Id: 9815957 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 2847A60365 for ; Thu, 29 Jun 2017 05:19:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 21DB2280DE for ; Thu, 29 Jun 2017 05:19:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 16506285D3; Thu, 29 Jun 2017 05:19:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 93267280DE for ; Thu, 29 Jun 2017 05:19:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751703AbdF2FTH (ORCPT ); Thu, 29 Jun 2017 01:19:07 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:33147 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751666AbdF2FTG (ORCPT ); Thu, 29 Jun 2017 01:19:06 -0400 Received: by mail-wm0-f67.google.com with SMTP id j85so351869wmj.0 for ; Wed, 28 Jun 2017 22:19:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=sE9NYRAfXKRloqigfDOmt2fhK04/A78Lul4zNoL+yUQ=; b=cHycU2O8WWTY8e1bxt4mJ5gsgYY0ndHu7fV9c0QgMjOmcqncoccSQ6Ea1THo7HH4z2 zfqAzDwq3FGYtPMGMimOmPsYzfpD4Pc6tjjiM5rR4b1FWyIMBijIdwH1/HYs9Z5gBKRi 7hZBpuKUNZsTf6qJo9SDD6dZJjDAb+Hn0ynljy+yNkMZfmVfhkmDrggJC4SrOnNFxAi6 0mDZfWyW8OA3j7vxb8JUUIOE9y4uXCVjzHouFBeuLeTECDx6TVcF9TR02+KOccyJuGgH NlglHu1k9jU2aJI/No1iqPJxbce6XoF139ivyb/ZzE5c0kIJKv18VjO1siwh+pThJCXe DJyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=sE9NYRAfXKRloqigfDOmt2fhK04/A78Lul4zNoL+yUQ=; b=b/r0Ec7554kkk1fEDt4QMNlDa+d2gPfZZL3aZsNNTVg57KiUov6s9y4BpDdoScQxwN mvfqHe4mmTRgRnkSOfizpi4dTW8Rde0jCccI9kHUuY9muj408id/RsA3Ad+Q9+1DOnpl 1lloRlcTXLDNMFV6Kgn/5cA0Wqs6RMQ5kZjZnGWRNvWhsE/sdf47+s63IDUD7xpuJWIt HkVbQx+9sSqcD9ciACS3RHw3uTRzozGJc789SLncTN75cUVK/MW42gvs8B5FRdRfU3rJ RkDY9Hfd4ylLa8pIA53uYj4ATx/Qe2z/IWE9imf8vDW5KgKLjP+NcggFZbsOiPMA1vjc s51Q== X-Gm-Message-State: AKS2vOydl+EIzPI7+gGDMJHp5ce8YsGxs2k6fWDyEVOnToydxcBUU2mf q9J3Vsup9cozu6U3NcY= X-Received: by 10.80.131.6 with SMTP id 6mr310389edh.178.1498713544486; Wed, 28 Jun 2017 22:19:04 -0700 (PDT) Received: from localhost.localdomain ([2a02:a03f:837:f300:1816:df24:7b15:fb23]) by smtp.gmail.com with ESMTPSA id z58sm132566edb.50.2017.06.28.22.19.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Jun 2017 22:19:03 -0700 (PDT) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Christopher Li , Luc Van Oostenryck Subject: [PATCH 7/7] diet: squeeze struct ctype's members Date: Thu, 29 Jun 2017 07:16:46 +0200 Message-Id: <20170629051646.35988-8-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170629051646.35988-1-luc.vanoostenryck@gmail.com> References: <20170629051646.35988-1-luc.vanoostenryck@gmail.com> Sender: linux-sparse-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sparse@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Using 'int' instead of 'long' for alignment and shuffling struct ctype's member around avoid any hole in the structure (on a 64bit machine), making it and struct symbol smaller. Signed-off-by: Luc Van Oostenryck --- compile-i386.c | 10 +++++----- show-parse.c | 6 +++--- symbol.h | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/compile-i386.c b/compile-i386.c index 633d9a476..24e408baa 100644 --- a/compile-i386.c +++ b/compile-i386.c @@ -899,13 +899,13 @@ static void emit_func_post(struct symbol *sym) /* emit object (a.k.a. variable, a.k.a. data) prologue */ static void emit_object_pre(const char *name, unsigned long modifiers, - unsigned long alignment, unsigned int byte_size) + unsigned int alignment, unsigned int byte_size) { if ((modifiers & MOD_STATIC) == 0) printf(".globl %s\n", name); emit_section(".data"); if (alignment) - printf("\t.align %lu\n", alignment); + printf("\t.align %u\n", alignment); printf("\t.type\t%s, @object\n", name); printf("\t.size\t%s, %d\n", name, byte_size); printf("%s:\n", name); @@ -940,7 +940,7 @@ static void emit_scalar(struct expression *expr, unsigned int bit_size) } static void emit_global_noinit(const char *name, unsigned long modifiers, - unsigned long alignment, unsigned int byte_size) + unsigned int alignment, unsigned int byte_size) { char s[64]; @@ -949,7 +949,7 @@ static void emit_global_noinit(const char *name, unsigned long modifiers, textbuf_push(&unit_post_text, s); } if (alignment) - sprintf(s, "\t.comm\t%s,%d,%lu\n", name, byte_size, alignment); + sprintf(s, "\t.comm\t%s,%d,%u\n", name, byte_size, alignment); else sprintf(s, "\t.comm\t%s,%d\n", name, byte_size); textbuf_push(&unit_post_text, s); @@ -1796,7 +1796,7 @@ static void emit_switch_statement(struct statement *stmt) static void x86_struct_member(struct symbol *sym) { - printf("\t%s:%d:%ld at offset %ld.%d", show_ident(sym->ident), sym->bit_size, sym->ctype.alignment, sym->offset, sym->bit_offset); + printf("\t%s:%d:%u at offset %ld.%d", show_ident(sym->ident), sym->bit_size, sym->ctype.alignment, sym->offset, sym->bit_offset); printf("\n"); } diff --git a/show-parse.c b/show-parse.c index dd7e76fc4..5e3e13165 100644 --- a/show-parse.c +++ b/show-parse.c @@ -72,7 +72,7 @@ static void do_debug_symbol(struct symbol *sym, int indent) if (!sym) return; - fprintf(stderr, "%.*s%s%3d:%lu %s %s (as: %d) %p (%s:%d:%d) %s\n", + fprintf(stderr, "%.*s%s%3d:%u %s %s (as: %d) %p (%s:%d:%d) %s\n", indent, indent_string, typestr[sym->type], sym->bit_size, sym->ctype.alignment, modifier_string(sym->ctype.modifiers), show_ident(sym->ident), sym->ctype.as, @@ -166,7 +166,7 @@ const char *modifier_string(unsigned long mod) static void show_struct_member(struct symbol *sym) { - printf("\t%s:%d:%ld at offset %ld.%d", show_ident(sym->ident), sym->bit_size, sym->ctype.alignment, sym->offset, sym->bit_offset); + printf("\t%s:%d:%u at offset %ld.%d", show_ident(sym->ident), sym->bit_size, sym->ctype.alignment, sym->offset, sym->bit_offset); printf("\n"); } @@ -432,7 +432,7 @@ void show_symbol(struct symbol *sym) return; if (sym->ctype.alignment) - printf(".align %ld\n", sym->ctype.alignment); + printf(".align %u\n", sym->ctype.alignment); show_type(sym); type = sym->ctype.base_type; diff --git a/symbol.h b/symbol.h index d8733e99f..ab3124662 100644 --- a/symbol.h +++ b/symbol.h @@ -99,9 +99,9 @@ DECLARE_PTR_LIST(context_list, struct context); struct ctype { unsigned long modifiers; - unsigned long alignment; - struct context_list *contexts; + unsigned int alignment; unsigned int as; + struct context_list *contexts; struct symbol *base_type; };