diff options
author | Keith Randall <khr@golang.org> | 2016-01-30 11:25:38 -0800 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2016-01-31 05:30:13 +0000 |
commit | 1cc5789df9eb8c88e0d7248a9a16b3d4ca854962 (patch) | |
tree | 4a8e8e88ebede8a417a42e008a9488e524c5c4de /src/cmd/compile/internal/ssa/TODO | |
parent | f962f33035bccd67c08fa3e0002659d6b9978bbc (diff) | |
download | go-1cc5789df9eb8c88e0d7248a9a16b3d4ca854962.tar.gz go-1cc5789df9eb8c88e0d7248a9a16b3d4ca854962.zip |
[dev.ssa] cmd/compile: lots of small rewrite optimizations
Small optimizations I noticed while looking at Giovanni's test cases.
More shifts by constants.
Indexed stores for smaller types.
Fold LEA into loads/stores.
More extending loads.
CMP $0 of AND -> TEST
Fix order of TEST ops.
Giovanni's test cases at https://gist.github.com/rasky/62fba94e3a20d1b05b2a
Change-Id: I7077bc0b5319bf05767eeb39f401f4bb4b39f635
Reviewed-on: https://go-review.googlesource.com/19086
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Todd Neal <todd@tneal.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/TODO | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/ssa/TODO b/src/cmd/compile/internal/ssa/TODO index 5245753c07..3191670a0e 100644 --- a/src/cmd/compile/internal/ssa/TODO +++ b/src/cmd/compile/internal/ssa/TODO @@ -51,6 +51,8 @@ Optimizations (better compiled code) Note that this is challenging for ops that generate flags because flagalloc wants to move those instructions around for flag regeneration. +- In forms like if ... { call } else { no call }, mark the call branch as unlikely. +- Non-constant rotate detection. Optimizations (better compiler) ------------------------------- |