diff options
author | Keith Randall <khr@golang.org> | 2015-10-22 14:22:38 -0700 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2015-10-28 17:00:31 +0000 |
commit | c24681ae2e1c96bd67c149cffa8f5ed394e68453 (patch) | |
tree | 901661939332bae3a55be8102da790778f1161e8 /src/cmd/compile/internal/ssa/location.go | |
parent | d43f2e37edf4115e31a0c9218d87182d0aa1c4f0 (diff) | |
download | go-c24681ae2e1c96bd67c149cffa8f5ed394e68453.tar.gz go-c24681ae2e1c96bd67c149cffa8f5ed394e68453.zip |
[dev.ssa] cmd/compile: remember names of values
For debugging, spill values to named variables instead of autotmp_
variables if possible. We do this by keeping a name -> value map
for each function, keep it up-to-date during deadcode elim, and use
it to override spill decisions in stackalloc.
It might even make stack frames a bit smaller, as it makes it easy
to identify a set of spills which are likely not to interfere.
This just works for one-word variables for now. Strings/slices
will be a separate CL.
Change-Id: Ie89eba8cab16bcd41b311c479ec46dd7e64cdb67
Reviewed-on: https://go-review.googlesource.com/16336
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/location.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/location.go | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/cmd/compile/internal/ssa/location.go b/src/cmd/compile/internal/ssa/location.go index 9f445e5b5a..0f9fb33eeb 100644 --- a/src/cmd/compile/internal/ssa/location.go +++ b/src/cmd/compile/internal/ssa/location.go @@ -4,10 +4,6 @@ package ssa -import ( - "fmt" -) - // A place that an ssa variable can reside. type Location interface { Name() string // name to use in assembly templates: %rax, 16(%rsp), ... @@ -26,7 +22,7 @@ func (r *Register) Name() string { // A LocalSlot is a location in the stack frame. type LocalSlot struct { - N fmt.Stringer // a *gc.Node for an auto variable + N GCNode // a *gc.Node for an auto variable } func (s *LocalSlot) Name() string { |