aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/TODO
diff options
context:
space:
mode:
authorJosh Bleecher Snyder <josharian@gmail.com>2015-06-24 14:34:28 -0700
committerJosh Bleecher Snyder <josharian@gmail.com>2015-06-29 03:27:30 +0000
commitd9a704cd40e8d248b473a831f099d8d4ca4c409b (patch)
tree7e3e276848754b588077edfd7df67336da231ab6 /src/cmd/compile/internal/ssa/TODO
parentdbd83c4464ed37b350deae313eddf7babc3e4c41 (diff)
downloadgo-d9a704cd40e8d248b473a831f099d8d4ca4c409b.tar.gz
go-d9a704cd40e8d248b473a831f099d8d4ca4c409b.zip
[dev.ssa] cmd/compile/ssa: refine type equality in cse
The correct way to compare gc.Types is Eqtype, rather than pointer equality. Introduce an Equal method for ssa.Type to allow us to use it. In the cse pass, use a type's string to build the coarse partition, and then use Type.Equal during refinement. This lets the cse pass do a better job. In the ~20% of the standard library that SSA can compile, the number of common subexpressions recognized by the cse pass increases from 27,550 to 32,199 (+17%). The number of nil checks eliminated increases from 75 to 115 (+50%). Change-Id: I0bdbfcf613ca6bc2ec987eb19b6b1217b51f3008 Reviewed-on: https://go-review.googlesource.com/11451 Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/ssa/TODO')
-rw-r--r--src/cmd/compile/internal/ssa/TODO1
1 files changed, 0 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/ssa/TODO b/src/cmd/compile/internal/ssa/TODO
index 30d49044e1..e2e3fb8a57 100644
--- a/src/cmd/compile/internal/ssa/TODO
+++ b/src/cmd/compile/internal/ssa/TODO
@@ -47,7 +47,6 @@ Rewrites
and which need code generated, and do the code generation.
Common-Subexpression Elimination
- - Canonicalize types.
- Make better decision about which value in an equivalence class we should
choose to replace other values in that class.
- Can we move control values out of their basic block?