From ec39d78ddd2168d617e52086a1f5841a6cc03959 Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Tue, 25 Aug 2015 10:39:23 -0700 Subject: [PATCH] [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 --- src/cmd/compile/internal/ssa/TODO | 13 ++----------- src/cmd/compile/internal/ssa/gen/genericOps.go | 1 - 2 files changed, 2 insertions(+), 12 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 diff --git a/src/cmd/compile/internal/ssa/gen/genericOps.go b/src/cmd/compile/internal/ssa/gen/genericOps.go index 66bb6596fa..726a62e6be 100644 --- a/src/cmd/compile/internal/ssa/gen/genericOps.go +++ b/src/cmd/compile/internal/ssa/gen/genericOps.go @@ -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"},