]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/obj: simplify Plists
authorMatthew Dempsky <mdempsky@google.com>
Sat, 17 Sep 2016 01:31:25 +0000 (18:31 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Sat, 17 Sep 2016 02:09:23 +0000 (02:09 +0000)
Keep Plists in a slice instead of a linked list.
Eliminate unnecessary fields.
Also, while here remove gc's unused breakpc and continpc vars.

Change-Id: Ia04264036c0442843869965d247ccf68a5295115
Reviewed-on: https://go-review.googlesource.com/29367
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Dave Cheney <dave@cheney.net>
src/cmd/compile/internal/gc/dcl.go
src/cmd/compile/internal/gc/go.go
src/cmd/compile/internal/gc/pgen.go
src/cmd/internal/obj/link.go
src/cmd/internal/obj/plist.go

index 0a1d63ae3d3397b784e83dbab1bf51ee222ba815..fa54e709cfa01f0c86fad9e8325a859b2249fb2a 100644 (file)
@@ -1260,8 +1260,6 @@ func funccompile(n *Node) {
        compile(n)
        Curfn = nil
        Pc = nil
-       continpc = nil
-       breakpc = nil
        funcdepth = 0
        dclcontext = PEXTERN
        if nerrors != 0 {
index d090e5cb95b15b26363b4f448be82491d0c8599a..ccf2a86bb3f1419f5c9023e337bfb41c5066904a 100644 (file)
@@ -274,10 +274,6 @@ var writearchive bool
 
 var Nacl bool
 
-var continpc *obj.Prog
-
-var breakpc *obj.Prog
-
 var Pc *obj.Prog
 
 var nodfp *Node
index fd7ab08a1a7b5e6fa37ecf82e12cf53d8d00d8b1..a43ec32176d6c7e012d61369ac5ba0ab27b026c8 100644 (file)
@@ -372,11 +372,7 @@ func compile(fn *Node) {
                return
        }
 
-       continpc = nil
-       breakpc = nil
-
-       pl := newplist()
-       pl.Name = Linksym(Curfn.Func.Nname.Sym)
+       newplist()
 
        setlineno(Curfn)
 
index a9af709be6db6d25ea91a1c29cfdf11a904163f4..c5d600d5649b0cd24028ab7af57abfdf7533a143 100644 (file)
@@ -679,8 +679,7 @@ type Link struct {
        Hash          map[SymVer]*LSym
        LineHist      LineHist
        Imports       []string
-       Plist         *Plist
-       Plast         *Plist
+       Plists        []*Plist
        Sym_div       *LSym
        Sym_divu      *LSym
        Sym_mod       *LSym
index 9d76ea9ee8c5a9bad3036a47b1f81988e38ce9a2..4890d9c03fecb337ea2453b321fed80c35f96327 100644 (file)
@@ -11,10 +11,7 @@ import (
 )
 
 type Plist struct {
-       Name    *LSym
        Firstpc *Prog
-       Recur   int
-       Link    *Plist
 }
 
 /*
@@ -22,12 +19,7 @@ type Plist struct {
  */
 func Linknewplist(ctxt *Link) *Plist {
        pl := new(Plist)
-       if ctxt.Plist == nil {
-               ctxt.Plist = pl
-       } else {
-               ctxt.Plast.Link = pl
-       }
-       ctxt.Plast = pl
+       ctxt.Plists = append(ctxt.Plists, pl)
        return pl
 }
 
@@ -45,7 +37,7 @@ func flushplist(ctxt *Link, freeProgs bool) {
        var etext *Prog
        var text []*LSym
 
-       for pl := ctxt.Plist; pl != nil; pl = pl.Link {
+       for _, pl := range ctxt.Plists {
                var plink *Prog
                for p := pl.Firstpc; p != nil; p = plink {
                        if ctxt.Debugasm != 0 && ctxt.Debugvlog != 0 {
@@ -182,8 +174,7 @@ func flushplist(ctxt *Link, freeProgs bool) {
        // Add to running list in ctxt.
        ctxt.Text = append(ctxt.Text, text...)
        ctxt.Data = append(ctxt.Data, gendwarf(ctxt, text)...)
-       ctxt.Plist = nil
-       ctxt.Plast = nil
+       ctxt.Plists = nil
        ctxt.Curp = nil
        if freeProgs {
                ctxt.freeProgs()