diff options
author | Keith Randall <khr@golang.org> | 2016-02-24 10:29:27 -0800 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2016-02-24 22:20:24 +0000 |
commit | ed737fd8cdc1a668027bb5f5dac8879afabcca3b (patch) | |
tree | 676bd1b45e6b36cccf052936f5e9f3d57c9dfcaf /src/cmd/compile/internal/ssa/TODO | |
parent | e173ab14345b1f205a8f14e25a81184752a9d43b (diff) | |
download | go-git-ed737fd8cdc1a668027bb5f5dac8879afabcca3b.tar.gz |
[dev.ssa] cmd/compile: fix @ rewrite rules
The @ directive used to read the target block after some value
structure had already changed. I don't think it was ever really
a bug, but it's confusing.
It might fail like this:
(Foo x y) -> @v.Args[0].Block (Bar y (Baz ...))
v.Op = Bar
v.Args[0] = y
v.Args[1] = v.Args[0].Block.NewValue(Baz, ...)
That new value is allocated in the block of y, not the
block of x.
Anyway, read the destination block first so this
potential bug can't happen.
Change-Id: Ie41d2fc349b35cefaa319fa9327808bcb781b4e2
Reviewed-on: https://go-review.googlesource.com/19900
Run-TryBot: Todd Neal <todd@tneal.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Todd Neal <todd@tneal.org>
Diffstat (limited to 'src/cmd/compile/internal/ssa/TODO')
-rw-r--r-- | src/cmd/compile/internal/ssa/TODO | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/src/cmd/compile/internal/ssa/TODO b/src/cmd/compile/internal/ssa/TODO index 91983476a2..69356d6226 100644 --- a/src/cmd/compile/internal/ssa/TODO +++ b/src/cmd/compile/internal/ssa/TODO @@ -7,8 +7,6 @@ Coverage Correctness ----------- - Debugging info (check & fix as much as we can) -- @ directive in rewrites might read overwritten data. Save @loc - in variable before modifying v. Optimizations (better compiled code) ------------------------------------ |