From 9b568ef2b86ad383e5db9bc57723d4ce554a319e Mon Sep 17 00:00:00 2001 From: Dave Cheney Date: Sun, 20 Jan 2013 20:14:24 +1100 Subject: [PATCH] cmd/5l: reduce the size of Prog and Sym Prog * Remove the unused Prog* dlink * note that align is also unused, but removing it does not help due to alignment issues. Saves 4 bytes, sizeof(Prog): 84 => 80. Sym * Align {u,}char fields on word boundaries Saves 4 bytes, sizeof(Sym): 136 => 132. Tested on linux/arm and freebsd/arm. R=minux.ma, remyoudompheng, rsc CC=golang-dev https://golang.org/cl/7106050 --- src/cmd/5l/l.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/cmd/5l/l.h b/src/cmd/5l/l.h index 69c85578785..21a3bced8ea 100644 --- a/src/cmd/5l/l.h +++ b/src/cmd/5l/l.h @@ -108,7 +108,6 @@ struct Prog } u0; Prog* cond; Prog* link; - Prog* dlink; int32 pc; int32 line; int32 spadj; @@ -117,7 +116,7 @@ struct Prog uchar as; uchar scond; uchar reg; - uchar align; + uchar align; // unused }; #define regused u0.u0regused @@ -136,8 +135,6 @@ struct Sym uchar reachable; uchar dynexport; uchar leaf; - uchar stkcheck; - uchar hide; int32 dynid; int32 plt; int32 got; @@ -148,6 +145,8 @@ struct Sym int32 elfsym; uchar special; uchar fnptr; // used as fn ptr + uchar stkcheck; + uchar hide; Sym* hash; // in hash table Sym* allsym; // in all symbol list Sym* next; // in text or data list