From 7730880f7ceda51c025a3c6bd296e1fa2de52318 Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Wed, 20 Jan 2016 14:06:17 -0800 Subject: [PATCH] [dev.ssa] cmd/compile: update SSA TODOs Change-Id: I78743987dcb45d821212caf95a00ae15b7a6cfd8 Reviewed-on: https://go-review.googlesource.com/18773 Reviewed-by: Andrew Gerrand --- src/cmd/compile/internal/ssa/TODO | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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) ------------------------------- -- 2.48.1