diff options
author | Keith Randall <khr@golang.org> | 2015-05-28 16:45:33 -0700 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2015-05-30 06:08:26 +0000 |
commit | a9cec30fdcc549282e0a5d520edb2eaf60f3061a (patch) | |
tree | dbcd629c320607cb71e523e25e27349add3eed29 /src/cmd/compile/internal/ssa/TODO | |
parent | b0da62903d045f6d3e832ba1181387a1e9ad33f1 (diff) | |
download | go-a9cec30fdcc549282e0a5d520edb2eaf60f3061a.tar.gz go-a9cec30fdcc549282e0a5d520edb2eaf60f3061a.zip |
[dev.ssa] cmd/compile/internal/ssa: Implement block rewriting rules
Change-Id: I47e5349e34fc18118c4d35bf433f875b958cc3e5
Reviewed-on: https://go-review.googlesource.com/10495
Reviewed-by: Alan Donovan <adonovan@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/TODO')
-rw-r--r-- | src/cmd/compile/internal/ssa/TODO | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/ssa/TODO b/src/cmd/compile/internal/ssa/TODO index e3ffdd2692..2ffba17612 100644 --- a/src/cmd/compile/internal/ssa/TODO +++ b/src/cmd/compile/internal/ssa/TODO @@ -34,13 +34,22 @@ Regalloc - Don't spill everything at every basic block boundary. - Allow args and return values to be ssa-able. - Handle 2-address instructions. + - Floating point registers Rewrites - Strength reduction (both arch-indep and arch-dependent?) - Code sequence for shifts >= wordsize - Start another architecture (arm?) + - 64-bit ops on 32-bit machines + - <regwidth ops. For example, x+y on int32s on amd64 needs (MOVLQSX (ADDL x y)). + Then add rewrites like (MOVLstore (MOVLQSX x) m) -> (MOVLstore x m) + to get rid of most of the MOVLQSX. Common-Subexpression Elimination - 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? + +Other + - Make go:generate less painful. Have a subpackage that just has the + generate commands in it? |