llvm-6502/lib
Jingyue Wu 439d17ca9f [SLSR] handle candidate form &B[i * S]
Summary:
This patch enhances SLSR to handle another candidate form &B[i * S]. If
we found two candidates

S1: X = &B[i * S]
S2: Y = &B[i' * S]

and S1 dominates S2, we can replace S2 with

Y = &X[(i' - i) * S]

Test Plan:
slsr-gep.ll
X86/no-slsr.ll: verify that we do not run SLSR on GEPs that already fit into
an addressing mode

Reviewers: eliben, atrick, meheff, hfinkel

Reviewed By: hfinkel

Subscribers: sanjoy, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233286 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-26 16:49:24 +00:00
..
Analysis [ValueTracking] Fix PR23011. 2015-03-25 22:33:53 +00:00
AsmParser AsmParser: Stop requiring 'name:' when it's not printed 2015-03-16 19:01:54 +00:00
Bitcode Internalize BitcodeReader. Not used outside of BitcodeReader.cpp. 2015-03-17 20:40:24 +00:00
CodeGen [RegisterCoalescer] Add a rule to consider more profitable copies first when 2015-03-26 01:01:48 +00:00
DebugInfo Raising minimum required CMake version to 2.8.12.2. 2015-03-23 20:03:57 +00:00
ExecutionEngine [Orc] Refactor JITCompileCallbackManagerBase and CompileOnDemandLayer to support 2015-03-25 02:45:50 +00:00
Fuzzer [sanitizer/coverage] Add AFL-style coverage counters (search heuristic for fuzzing). 2015-03-03 23:27:02 +00:00
IR WinEH: Create an unwind help alloca for __CxxFrameHandler3 xdata tables 2015-03-25 20:10:36 +00:00
IRReader
LineEditor
Linker Revert "Linker: Drop function pointers for overridden subprograms" 2015-03-26 05:27:45 +00:00
LTO Verifier: Remove the separate -verify-di pass 2015-03-19 22:24:17 +00:00
MC clang-format bits of code to make another patch readable. 2015-03-25 19:24:39 +00:00
Object Be lazy about loading metadata in IRObjectFile. 2015-03-13 21:54:20 +00:00
Option Make getLastArgNoClaim work for up to 4 arguments. 2015-03-20 23:32:58 +00:00
Passes
ProfileData Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
Support Sometimes report_fatal_error is called when there is not a handler function used to fail gracefully. In that case, RunInterruptHandlers is called, which attempts to enter a critical section object. Ensure that the critical section is properly initialized so that this code functions properly, and tools like clang-tidy do not crash in Debug builds. 2015-03-26 16:24:38 +00:00
TableGen
Target [mips] Move the setATReg definition inside the MipsAssemblerOptions class. NFC. 2015-03-26 13:08:55 +00:00
Transforms [SLSR] handle candidate form &B[i * S] 2015-03-26 16:49:24 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00