]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.ssa] cmd/compile/internal/ssa: update TODO and comments
authorKeith Randall <khr@golang.org>
Tue, 25 Aug 2015 17:39:23 +0000 (10:39 -0700)
committerKeith Randall <khr@golang.org>
Tue, 25 Aug 2015 17:45:06 +0000 (17:45 +0000)
Change-Id: I3c598faff8af18530ae863b9e72f0cef379b4a1f
Reviewed-on: https://go-review.googlesource.com/13909
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/compile/internal/ssa/TODO
src/cmd/compile/internal/ssa/gen/genericOps.go

index 9e52a67ed05632146a8c6e136ee69e036f18868a..fbe4f56760b25477cd5702f8070ccef07ec1cf58 100644 (file)
@@ -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
 
index 66bb6596faa404d2b8028563c8c26b55a4f687be..726a62e6befdb94eda2ce7a31e074ace54c73e24 100644 (file)
@@ -25,7 +25,6 @@ var genericOps = []opData{
        {name: "Sub32F"},
        {name: "Sub64F"},
        // TODO: Sub64C, Sub128C
-       // TODO: Sub32F, Sub64F, Sub64C, Sub128C
 
        {name: "Mul8"}, // arg0 * arg1
        {name: "Mul16"},