]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.ssa] cmd/compile: update SSA TODOs
authorKeith Randall <khr@golang.org>
Wed, 20 Jan 2016 22:06:17 +0000 (14:06 -0800)
committerKeith Randall <khr@golang.org>
Thu, 21 Jan 2016 03:20:29 +0000 (03:20 +0000)
Change-Id: I78743987dcb45d821212caf95a00ae15b7a6cfd8
Reviewed-on: https://go-review.googlesource.com/18773
Reviewed-by: Andrew Gerrand <adg@golang.org>
src/cmd/compile/internal/ssa/TODO

index 23f8abb6ca99c13813998e3132e3ae735eb1c0bc..403f98cf40c454d78afef67d3deac50dbef8e678 100644 (file)
@@ -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)
 -------------------------------