1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
llvm-mirror/test
Jatin Bhateja 856f7f79e2 [X86] PR32755 : Improvement in CodeGen instruction selection for LEAs.
Summary:
   1/  Operand folding during complex pattern matching for LEAs has been
       extended, such that it promotes Scale to accommodate similar operand
       appearing in the DAG.
       e.g.
          T1 = A + B
          T2 = T1 + 10
          T3 = T2 + A
       For above DAG rooted at T3, X86AddressMode will no look like
          Base = B , Index = A , Scale = 2 , Disp = 10

   2/  During OptimizeLEAPass down the pipeline factorization is now performed over LEAs
       so that if there is an opportunity then complex LEAs (having 3 operands)
       could be factored out.
       e.g.
          leal 1(%rax,%rcx,1), %rdx
          leal 1(%rax,%rcx,2), %rcx
       will be factored as following
          leal 1(%rax,%rcx,1), %rdx
          leal (%rdx,%rcx)   , %edx

   3/ Aggressive operand folding for AM based selection for LEAs is sensitive to loops,
      thus avoiding creation of any complex LEAs within a loop.

Reviewers: lsaba, RKSimon, craig.topper, qcolombet

Reviewed By: lsaba

Subscribers: spatel, igorb, llvm-commits

Differential Revision: https://reviews.llvm.org/D35014

llvm-svn: 313343
2017-09-15 05:29:51 +00:00
..
Analysis [TargetTransformInfo] Detect 0 latency instructions 2017-09-14 19:20:02 +00:00
Assembler
Bindings
Bitcode [Bitcode] Add a compatibility test for 5.0.0 bitcode 2017-09-13 21:40:59 +00:00
BugPoint
CodeGen [X86] PR32755 : Improvement in CodeGen instruction selection for LEAs. 2017-09-15 05:29:51 +00:00
DebugInfo [codeview] Use a type index of zero for static method "this" types 2017-09-15 00:59:07 +00:00
DllTool
Examples
ExecutionEngine
Feature
FileCheck
Instrumentation [SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer 2017-08-30 22:49:31 +00:00
Integer
JitListener
LibDriver
Linker llvm-dwarfdump: Make -brief the default and add a -verbose option instead. 2017-09-11 23:05:20 +00:00
LTO Reland r313157, "ThinLTO: Correctly follow aliasee references when dead stripping." which was reverted in r313222. 2017-09-14 05:02:59 +00:00
MC [WebAssembly] Use a separate wasm data segment for each global symbol 2017-09-14 23:07:53 +00:00
Object [MachO] Prevent heap overflow when load command extends past EOF 2017-09-13 13:43:01 +00:00
ObjectYAML [WebAssembly] Update relocation names to match spec 2017-09-01 17:32:01 +00:00
Other [PM/CGSCC] Teach the CGSCC pass manager components to gracefully handle 2017-09-14 08:33:57 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen TableGen support for parameterized register class information 2017-09-14 16:56:21 +00:00
ThinLTO/X86 ModuleSummaryAnalysis: Correctly handle all function operand references. 2017-09-07 05:35:35 +00:00
tools [WebAssembly] Use a separate wasm data segment for each global symbol 2017-09-14 23:07:53 +00:00
Transforms [X86] PR32755 : Improvement in CodeGen instruction selection for LEAs. 2017-09-15 05:29:51 +00:00
Unit Revert "[lit] Force site configs to run before source-tree configs" 2017-09-15 02:56:40 +00:00
Verifier Revert "Revert r312139 "Verifier: Verify the correctness of fragment expressions attached to globals."" 2017-08-31 00:07:33 +00:00
YAMLParser
.clang-format
CMakeLists.txt Add llvm-isel-fuzzer to test/CMakeLists.txt 2017-09-03 03:00:27 +00:00
lit.cfg Revert "[lit] Force site configs to run before source-tree configs" 2017-09-15 02:56:40 +00:00
lit.site.cfg.in [lit] Revert "Add a lit.llvm module that all llvm projects can use" 2017-09-15 00:56:08 +00:00
TestRunner.sh