]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: change Func.Inldcl from []*Node to *[]*Node
authorIan Lance Taylor <iant@golang.org>
Fri, 26 Feb 2016 21:48:24 +0000 (13:48 -0800)
committerIan Lance Taylor <iant@golang.org>
Fri, 26 Feb 2016 22:45:21 +0000 (22:45 +0000)
Save a few bytes in Func.

Passes toolstash -cmp.

Update #14473.

Change-Id: I824fa7d5cb2d93f6f59938ccd86114abcbea0043
Reviewed-on: https://go-review.googlesource.com/19968
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/compile/internal/gc/inl.go
src/cmd/compile/internal/gc/syntax.go
src/cmd/compile/internal/gc/test [new file with mode: 0755]

index 17cc61a823f8be27554d6d0f959adc1d42c984e3..f5c3265a82f008b7a5095cd9f3bfaafe98d19518 100644 (file)
@@ -150,7 +150,10 @@ func caninl(fn *Node) {
 
        fn.Func.Nname.Func.Inl = fn.Nbody
        fn.Nbody = inlcopylist(fn.Func.Nname.Func.Inl)
-       fn.Func.Nname.Func.Inldcl = inlcopyslice(fn.Func.Nname.Name.Defn.Func.Dcl)
+       inldcl := inlcopyslice(fn.Func.Nname.Name.Defn.Func.Dcl)
+       if len(inldcl) > 0 {
+               fn.Func.Nname.Func.Inldcl = &inldcl
+       }
        fn.Func.Nname.Func.InlCost = int32(maxBudget - budget)
 
        // hack, TODO, check for better way to link method nodes back to the thing with the ->inl
@@ -569,9 +572,13 @@ func mkinlcall1(np **Node, fn *Node, isddd bool) {
        //dumplist("ninit pre", ninit);
 
        var dcl []*Node
-       if fn.Name.Defn != nil { // local function
-               dcl = fn.Func.Inldcl // imported function
+       if fn.Name.Defn != nil {
+               // local function
+               if fn.Func.Inldcl != nil {
+                       dcl = *fn.Func.Inldcl
+               }
        } else {
+               // imported function
                dcl = fn.Func.Dcl
        }
 
index 8b4fe8708a7b693f40d2e8d2d9a1525b45da68ee..edc3f3ca10d2ae9beb20ba35aed1bf3daac6dd1a 100644 (file)
@@ -153,7 +153,7 @@ type Func struct {
        Exit       *NodeList
        cvars      *[]*Node // closure params
        Dcl        []*Node  // autodcl for this func/closure
-       Inldcl     []*Node  // copy of dcl for use in inlining
+       Inldcl     *[]*Node // copy of dcl for use in inlining
        Closgen    int
        Outerfunc  *Node
        Fieldtrack []*Type
diff --git a/src/cmd/compile/internal/gc/test b/src/cmd/compile/internal/gc/test
new file mode 100755 (executable)
index 0000000..5c696bc
Binary files /dev/null and b/src/cmd/compile/internal/gc/test differ