Commit ad5ceafa authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder

[dev.ssa] cmd/compile: update SSA todos

Change-Id: I1271c015e602cd7ec92bf24f019dd8839b3180fc
Reviewed-on: https://go-review.googlesource.com/14346Reviewed-by: default avatarKeith Randall <khr@golang.org>
parent fa5fe191
...@@ -3,17 +3,13 @@ be complete soon. ...@@ -3,17 +3,13 @@ be complete soon.
Coverage Coverage
-------- --------
- Complex numbers
- Defer?
- Closure args - Closure args
- PHEAP vars - PHEAP vars
Correctness Correctness
----------- -----------
- GC maps
- Write barriers - Write barriers
- Debugging info - Debugging info
- Deferreturn
- Can/should we move control values out of their basic block? - Can/should we move control values out of their basic block?
- Anything to do for the race detector? - Anything to do for the race detector?
- Slicing details (avoid ptr to next object) [done for string] - Slicing details (avoid ptr to next object) [done for string]
...@@ -24,11 +20,10 @@ Optimizations (better compiled code) ...@@ -24,11 +20,10 @@ Optimizations (better compiled code)
- More strength reduction: multiply -> shift/add combos (Worth doing?) - More strength reduction: multiply -> shift/add combos (Worth doing?)
- Strength reduction: constant divides -> multiply - Strength reduction: constant divides -> multiply
- Expand current optimizations to all bit widths - Expand current optimizations to all bit widths
- Nil/bounds check removal - Add a value range propagation pass (for bounds elim & bitwidth reduction)
- Combining nil checks with subsequent load - Combining nil checks with subsequent load
- Implement memory zeroing with REPSTOSQ and DuffZero - Implement memory zeroing with REPSTOSQ and DuffZero
- Implement memory copying with REPMOVSQ and DuffCopy - Implement memory copying with REPMOVSQ and DuffCopy
- Add a value range propagation pass (for bounds elim & bitwidth reduction)
- Stackalloc: organize values to allow good packing - Stackalloc: organize values to allow good packing
- Regalloc: use arg slots as the home for arguments (don't copy args to locals) - 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) - Reuse stack slots for noninterfering & compatible values (but see issue 8740)
...@@ -44,6 +39,7 @@ Optimizations (better compiler) ...@@ -44,6 +39,7 @@ Optimizations (better compiler)
- Reuseable slices (e.g. []int of size NumValues()) cached in Func - Reuseable slices (e.g. []int of size NumValues()) cached in Func
- Handle signed division overflow and sign extension earlier - Handle signed division overflow and sign extension earlier
- Implement 64 bit const division with high multiply, maybe in the frontend? - Implement 64 bit const division with high multiply, maybe in the frontend?
- Add bit widths to complex ops
Regalloc Regalloc
-------- --------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment