From: Josh Bleecher Snyder Date: Mon, 25 Aug 2014 02:07:27 +0000 (-0700) Subject: cmd/5g, cmd/6g, cmd/8g: clear Addr node when registerizing X-Git-Tag: go1.4beta1~725 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=be2ad1d7f587a235fc69b80f280f5e3702647434;p=gostls13.git cmd/5g, cmd/6g, cmd/8g: clear Addr node when registerizing Update #8525 Some temporary variables that were fully registerized nevertheless had stack space allocated for them because the Addrs were still marked as having associated nodes. Distribution of stack space reserved for temporary variables while running make.bash (6g): BEFORE 40.89% 7026 allocauto: 0 to 0 7.83% 1346 allocauto: 0 to 24 7.22% 1241 allocauto: 0 to 8 6.30% 1082 allocauto: 0 to 16 4.96% 853 allocauto: 0 to 56 4.59% 789 allocauto: 0 to 32 2.97% 510 allocauto: 0 to 40 2.32% 399 allocauto: 0 to 48 2.10% 360 allocauto: 0 to 64 1.91% 328 allocauto: 0 to 72 AFTER 48.49% 8332 allocauto: 0 to 0 9.52% 1635 allocauto: 0 to 16 5.28% 908 allocauto: 0 to 48 4.80% 824 allocauto: 0 to 32 4.73% 812 allocauto: 0 to 8 3.38% 581 allocauto: 0 to 24 2.35% 404 allocauto: 0 to 40 2.32% 399 allocauto: 0 to 64 1.65% 284 allocauto: 0 to 56 1.34% 230 allocauto: 0 to 72 LGTM=rsc R=rsc CC=dave, dvyukov, golang-codereviews, minux https://golang.org/cl/126160043 --- diff --git a/src/cmd/5g/reg.c b/src/cmd/5g/reg.c index d259a232e6..8e49a2d9c8 100644 --- a/src/cmd/5g/reg.c +++ b/src/cmd/5g/reg.c @@ -1315,6 +1315,7 @@ void addreg(Adr *a, int rn) { a->sym = nil; + a->node = nil; a->name = D_NONE; a->type = D_REG; a->reg = rn; diff --git a/src/cmd/6g/reg.c b/src/cmd/6g/reg.c index 5e3a198186..1f757e1972 100644 --- a/src/cmd/6g/reg.c +++ b/src/cmd/6g/reg.c @@ -1191,6 +1191,7 @@ void addreg(Adr *a, int rn) { a->sym = nil; + a->node = nil; a->offset = 0; a->type = rn; diff --git a/src/cmd/8g/reg.c b/src/cmd/8g/reg.c index a69d124db8..302b273a1b 100644 --- a/src/cmd/8g/reg.c +++ b/src/cmd/8g/reg.c @@ -1168,6 +1168,7 @@ void addreg(Adr *a, int rn) { a->sym = nil; + a->node = nil; a->offset = 0; a->type = rn;