aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/dwarfgen
diff options
context:
space:
mode:
authorBaokun Lee <bk@golangcn.org>2021-01-21 15:24:38 +0800
committerBaokun Lee <bk@golangcn.org>2021-01-21 09:56:27 +0000
commitd7e71c01ad1c8edd568380ce9276c265dfd3635b (patch)
treee1492bdae628d3aa4b93b26028aed9e60d348b05 /src/cmd/compile/internal/dwarfgen
parent5248f59a224e390cc59c9850f7795479f07757a7 (diff)
downloadgo-d7e71c01ad1c8edd568380ce9276c265dfd3635b.tar.gz
go-d7e71c01ad1c8edd568380ce9276c265dfd3635b.zip
[dev.regabi] cmd/compile: replace ir.Name map with ir.NameSet for dwarf
Same as CL 284897, but for dwarf. Passes toolstash -cmp. Fixes #43819 Change-Id: Icbe43aa2e3cb96e6a6c318523c643247da8e4c74 Reviewed-on: https://go-review.googlesource.com/c/go/+/284899 Run-TryBot: Baokun Lee <bk@golangcn.org> Trust: Baokun Lee <bk@golangcn.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/cmd/compile/internal/dwarfgen')
-rw-r--r--src/cmd/compile/internal/dwarfgen/dwarf.go18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/cmd/compile/internal/dwarfgen/dwarf.go b/src/cmd/compile/internal/dwarfgen/dwarf.go
index bf039c8fbb..dd22c033cc 100644
--- a/src/cmd/compile/internal/dwarfgen/dwarf.go
+++ b/src/cmd/compile/internal/dwarfgen/dwarf.go
@@ -136,7 +136,7 @@ func createDwarfVars(fnsym *obj.LSym, complexOK bool, fn *ir.Func, apDecls []*ir
// Collect a raw list of DWARF vars.
var vars []*dwarf.Var
var decls []*ir.Name
- var selected map[*ir.Name]bool
+ var selected ir.NameSet
if base.Ctxt.Flag_locationlists && base.Ctxt.Flag_optimize && fn.DebugInfo != nil && complexOK {
decls, vars, selected = createComplexVars(fnsym, fn)
} else {
@@ -161,7 +161,7 @@ func createDwarfVars(fnsym *obj.LSym, complexOK bool, fn *ir.Func, apDecls []*ir
// For non-SSA-able arguments, however, the correct information
// is known -- they have a single home on the stack.
for _, n := range dcl {
- if _, found := selected[n]; found {
+ if selected.Has(n) {
continue
}
c := n.Sym().Name[0]
@@ -244,10 +244,10 @@ func preInliningDcls(fnsym *obj.LSym) []*ir.Name {
// createSimpleVars creates a DWARF entry for every variable declared in the
// function, claiming that they are permanently on the stack.
-func createSimpleVars(fnsym *obj.LSym, apDecls []*ir.Name) ([]*ir.Name, []*dwarf.Var, map[*ir.Name]bool) {
+func createSimpleVars(fnsym *obj.LSym, apDecls []*ir.Name) ([]*ir.Name, []*dwarf.Var, ir.NameSet) {
var vars []*dwarf.Var
var decls []*ir.Name
- selected := make(map[*ir.Name]bool)
+ var selected ir.NameSet
for _, n := range apDecls {
if ir.IsAutoTmp(n) {
continue
@@ -255,7 +255,7 @@ func createSimpleVars(fnsym *obj.LSym, apDecls []*ir.Name) ([]*ir.Name, []*dwarf
decls = append(decls, n)
vars = append(vars, createSimpleVar(fnsym, n))
- selected[n] = true
+ selected.Add(n)
}
return decls, vars, selected
}
@@ -312,19 +312,19 @@ func createSimpleVar(fnsym *obj.LSym, n *ir.Name) *dwarf.Var {
// createComplexVars creates recomposed DWARF vars with location lists,
// suitable for describing optimized code.
-func createComplexVars(fnsym *obj.LSym, fn *ir.Func) ([]*ir.Name, []*dwarf.Var, map[*ir.Name]bool) {
+func createComplexVars(fnsym *obj.LSym, fn *ir.Func) ([]*ir.Name, []*dwarf.Var, ir.NameSet) {
debugInfo := fn.DebugInfo.(*ssa.FuncDebug)
// Produce a DWARF variable entry for each user variable.
var decls []*ir.Name
var vars []*dwarf.Var
- ssaVars := make(map[*ir.Name]bool)
+ var ssaVars ir.NameSet
for varID, dvar := range debugInfo.Vars {
n := dvar
- ssaVars[n] = true
+ ssaVars.Add(n)
for _, slot := range debugInfo.VarSlots[varID] {
- ssaVars[debugInfo.Slots[slot].N] = true
+ ssaVars.Add(debugInfo.Slots[slot].N)
}
if dvar := createComplexVar(fnsym, fn, ssa.VarID(varID)); dvar != nil {