diff options
author | Michael Munday <mike.munday@ibm.com> | 2017-03-29 14:01:41 -0400 |
---|---|---|
committer | Michael Munday <mike.munday@ibm.com> | 2017-08-24 16:53:56 +0000 |
commit | 744ebfde0460e1d8fff10672e4d1e8d9ece52556 (patch) | |
tree | 30f9eca8178f7ce2b7534ab394e0e1dac4e42e60 /src/cmd/compile/internal/ssa/compile.go | |
parent | 18b48afec9be0a1da4b23bebace0dc9f081dcee1 (diff) | |
download | go-744ebfde0460e1d8fff10672e4d1e8d9ece52556.tar.gz go-744ebfde0460e1d8fff10672e4d1e8d9ece52556.zip |
cmd/compile: eliminate stores to unread auto variables
This is a crude compiler pass to eliminate stores to auto variables
that are only ever written to.
Eliminates an unnecessary store to x from the following code:
func f() int {
var x := 1
return *(&x)
}
Fixes #19765.
Change-Id: If2c63a8ae67b8c590b6e0cc98a9610939a3eeffa
Reviewed-on: https://go-review.googlesource.com/38746
Run-TryBot: Michael Munday <mike.munday@ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/ssa/compile.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/compile.go | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/ssa/compile.go b/src/cmd/compile/internal/ssa/compile.go index 315416babd..00a4b04ce5 100644 --- a/src/cmd/compile/internal/ssa/compile.go +++ b/src/cmd/compile/internal/ssa/compile.go @@ -356,6 +356,7 @@ var passes = [...]pass{ {name: "tighten", fn: tighten}, // move values closer to their uses {name: "lower", fn: lower, required: true}, {name: "lowered cse", fn: cse}, + {name: "elim unread autos", fn: elimUnreadAutos}, {name: "lowered deadcode", fn: deadcode, required: true}, {name: "checkLower", fn: checkLower, required: true}, {name: "late phielim", fn: phielim}, |