diff options
author | Keith Randall <khr@golang.org> | 2016-01-20 14:06:17 -0800 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2016-01-21 03:20:29 +0000 |
commit | 7730880f7ceda51c025a3c6bd296e1fa2de52318 (patch) | |
tree | 35b73dae1ecdf8da56cd9ff5429a449e2a55493c /src/cmd/compile/internal/ssa/TODO | |
parent | a734bbc95349a487c78ff02eda07e3f219808be3 (diff) | |
download | go-git-7730880f7ceda51c025a3c6bd296e1fa2de52318.tar.gz |
[dev.ssa] cmd/compile: update SSA TODOs
Change-Id: I78743987dcb45d821212caf95a00ae15b7a6cfd8
Reviewed-on: https://go-review.googlesource.com/18773
Reviewed-by: Andrew Gerrand <adg@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/ssa/TODO')
-rw-r--r-- | src/cmd/compile/internal/ssa/TODO | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/ssa/TODO b/src/cmd/compile/internal/ssa/TODO index 23f8abb6ca..403f98cf40 100644 --- a/src/cmd/compile/internal/ssa/TODO +++ b/src/cmd/compile/internal/ssa/TODO @@ -37,6 +37,20 @@ Optimizations (better compiled code) and len feilds being accessed) pass them in xmm registers? Same for interfaces? - boolean logic: movb/xorb$1/testb/jeq -> movb/testb/jne +- (ADDQconst (SUBQconst x)) and vice-versa +- (CMP (Load ...)) and (CMPconst (Load ...)) in one instruction + (all instructions, really) +- combine LEAQs +- store followed by load to same address +- short circuit blocks which are just a jump (undo critical edge processing when no instructions are put in it by regalloc) +- (CMPconst [0] (AND x y)) -> (TEST x y) +- more (LOAD (ADDQ )) -> LOADIDX +- CMPL/SETEQ/TESTB/JEQ -> CMPL/JEQ + CMPL/SETGE/TESTB/JEQ +- blockEQ (CMP x x) +- better computing of &&/|| in non-if/for contexts +- OpArrayIndex should take its index in AuxInt, not a full value. +- remove FLAGS from REP instruction clobbers Optimizations (better compiler) ------------------------------- |