aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/location.go
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2015-10-22 14:22:38 -0700
committerKeith Randall <khr@golang.org>2015-10-28 17:00:31 +0000
commitc24681ae2e1c96bd67c149cffa8f5ed394e68453 (patch)
tree901661939332bae3a55be8102da790778f1161e8 /src/cmd/compile/internal/ssa/location.go
parentd43f2e37edf4115e31a0c9218d87182d0aa1c4f0 (diff)
downloadgo-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.go6
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 {