]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/5l: reduce the size of Prog and Sym
authorDave Cheney <dave@cheney.net>
Sun, 20 Jan 2013 09:14:24 +0000 (20:14 +1100)
committerDave Cheney <dave@cheney.net>
Sun, 20 Jan 2013 09:14:24 +0000 (20:14 +1100)
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

index 69c85578785c09f7877a55e4c7b528a974b828c4..21a3bced8ea644010c721493d64168e565c90d22 100644 (file)
@@ -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