aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/TODO
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2015-08-25 10:39:23 -0700
committerKeith Randall <khr@golang.org>2015-08-25 17:45:06 +0000
commitec39d78ddd2168d617e52086a1f5841a6cc03959 (patch)
treee89bee25f32e57857b7f037e30b217330ef8b877 /src/cmd/compile/internal/ssa/TODO
parent3526cf586be92cb4c741aed54ccfd37cf00ddfc5 (diff)
downloadgo-ec39d78ddd2168d617e52086a1f5841a6cc03959.tar.gz
go-ec39d78ddd2168d617e52086a1f5841a6cc03959.zip
[dev.ssa] cmd/compile/internal/ssa: update TODO and comments
Change-Id: I3c598faff8af18530ae863b9e72f0cef379b4a1f Reviewed-on: https://go-review.googlesource.com/13909 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/ssa/TODO')
-rw-r--r--src/cmd/compile/internal/ssa/TODO13
1 files changed, 2 insertions, 11 deletions
diff --git a/src/cmd/compile/internal/ssa/TODO b/src/cmd/compile/internal/ssa/TODO
index 9e52a67ed0..fbe4f56760 100644
--- a/src/cmd/compile/internal/ssa/TODO
+++ b/src/cmd/compile/internal/ssa/TODO
@@ -3,10 +3,7 @@ be complete soon.
Coverage
--------
-- Floating point numbers
- Complex numbers
-- Integer division (MOD)
-- Fat objects (strings/slices/interfaces) vs. Phi
- Defer?
- Closure args
- PHEAP vars
@@ -16,11 +13,10 @@ Correctness
- GC maps
- Write barriers
- Debugging info
-- Handle flags register correctly (clobber/spill/restore)
-- Proper panic edges from checks & calls (+deferreturn)
+- Deferreturn
- Can/should we move control values out of their basic block?
- Anything to do for the race detector?
-- Slicing details (avoid ptr to next object)
+- Slicing details (avoid ptr to next object) [done for string]
Optimizations (better compiled code)
------------------------------------
@@ -32,10 +28,7 @@ Optimizations (better compiled code)
- Combining nil checks with subsequent load
- Implement memory zeroing with REPSTOSQ and DuffZero
- Implement memory copying with REPMOVSQ and DuffCopy
-- Make deadstore work with zeroing
-- Add branch predictions
- Add a value range propagation pass (for bounds elim & bitwidth reduction)
-- Stackalloc: group pointer-containing variables & spill slots together
- Stackalloc: organize values to allow good packing
- Regalloc: use arg slots as the home for arguments (don't copy args to locals)
- Reuse stack slots for noninterfering & compatible values (but see issue 8740)
@@ -55,10 +48,8 @@ Optimizations (better compiler)
Regalloc
--------
- Make less arch-dependent
-- Don't spill everything at every basic block boundary
- Allow args and return values to be ssa-able
- Handle 2-address instructions
-- Make calls clobber all registers
- Make liveness analysis non-quadratic
- Materialization of constants