aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/TODO
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2016-01-11 21:05:33 -0800
committerKeith Randall <khr@golang.org>2016-01-20 22:37:11 +0000
commita734bbc95349a487c78ff02eda07e3f219808be3 (patch)
treefcd7692dd11201d31597f31c14f03efa481671c6 /src/cmd/compile/internal/ssa/TODO
parentb5c5efd5de4c4668b149d1dba4d9b00c88dd0b80 (diff)
downloadgo-a734bbc95349a487c78ff02eda07e3f219808be3.tar.gz
go-a734bbc95349a487c78ff02eda07e3f219808be3.zip
[dev.ssa] cmd/compile: Allow structs to be SSAd
Break small structs up into their components so they can be registerized. Change StructSelect to use field indexes instead of field offsets, as field offsets aren't unique in the presence of zero-sized fields. Change-Id: I2f1dc89f7fa58e1cf58aa1a32b238959d53f62e4 Reviewed-on: https://go-review.googlesource.com/18570 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/TODO')
-rw-r--r--src/cmd/compile/internal/ssa/TODO4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/ssa/TODO b/src/cmd/compile/internal/ssa/TODO
index d4904e1dcf..23f8abb6ca 100644
--- a/src/cmd/compile/internal/ssa/TODO
+++ b/src/cmd/compile/internal/ssa/TODO
@@ -9,6 +9,8 @@ Correctness
- Debugging info (check & fix as much as we can)
- Fix write barriers so cgo tests work (misc/cgo/errors/ptr.go)
- Re-enable TestStackBarrierProfiling (src/runtime/pprof/pprof_test.go)
+- @ directive in rewrites might read overwritten data. Save @loc
+ in variable before modifying v.
Optimizations (better compiled code)
------------------------------------
@@ -28,7 +30,7 @@ Optimizations (better compiled code)
- Use better write barrier calls
- If there are a lot of MOVQ $0, ..., then load
0 into a register and use the register as the source instead.
-- Allow structs (and arrays of length 1?) to be SSAable.
+- Allow arrays of length 1 (or longer, with all constant indexes?) to be SSAable.
- Figure out how to make PARAMOUT variables ssa-able.
They need to get spilled automatically at end-of-function somehow.
- If strings are being passed around without being interpreted (ptr