llvm-6502/lib
Jingyue Wu d4ceea3837 [SLSR] handle candidate form (B + i * S)
Summary:
With this patch, SLSR may rewrite

S1: X = B + i * S
S2: Y = B + i' * S

to

S2: Y = X + (i' - i) * S

A secondary improvement: if (i' - i) is a power of 2, emit Y as X + (S << log(i' - i)). (S << log(i' -i)) is in a canonical form and thus more likely GVN'ed than (i' - i) * S.

Test Plan: slsr-add.ll

Reviewers: hfinkel, sanjoy, meheff, broune, eliben

Reviewed By: eliben

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D8983

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235019 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-15 16:46:13 +00:00
..
Analysis Re-apply r234898 and fix tests. 2015-04-15 06:24:07 +00:00
AsmParser
Bitcode Revert "Verify sizes when trying to read a VBR" 2015-04-15 11:10:17 +00:00
CodeGen [MBP] Spell the conditions the same way through out this if statement. 2015-04-15 13:39:42 +00:00
DebugInfo
ExecutionEngine [RuntimeDyld] Add casts to make delta computation 64-bit. 2015-04-15 04:46:01 +00:00
Fuzzer
IR uselistorder: Remove the global bits 2015-04-15 03:14:06 +00:00
IRReader
LineEditor
Linker
LTO uselistorder: Remove the global bits 2015-04-15 03:14:06 +00:00
MC Write section and section table entries in the same order. 2015-04-15 13:07:47 +00:00
Object Change range-based for-loops to be -Wrange-loop-analysis clean. 2015-04-15 01:21:15 +00:00
Option
Passes
ProfileData
Support Fix lib\support\Windows/TimeValue.inc(48): warning C4189: 2015-04-15 07:45:52 +00:00
TableGen
Target [X86] add an exedepfix entry for movq == movlps == movlpd 2015-04-15 15:47:51 +00:00
Transforms [SLSR] handle candidate form (B + i * S) 2015-04-15 16:46:13 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile