1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/lib/CodeGen/SelectionDAG
Hans Wennborg 36d48161a2 Revert r313343 "[X86] PR32755 : Improvement in CodeGen instruction selection for LEAs."
This caused PR34629: asserts firing when building Chromium. It also broke some
buildbots building test-suite as reported on the commit thread.

> 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: 313376
2017-09-15 18:40:26 +00:00
..
CMakeLists.txt [DAG] Move BaseIndexOffset into separate Libarary. NFC. 2017-06-21 15:40:43 +00:00
DAGCombiner.cpp [DAGCombine] (shl (or x, c1), c2) -> (or (shl x, c2), c1 << c2) 2017-09-14 10:38:30 +00:00
FastISel.cpp Use helper function instead of manually constructing DBG_VALUEs (NFC) 2017-08-01 22:37:35 +00:00
FunctionLoweringInfo.cpp ISel: Fix FastISel of swifterror values 2017-06-15 17:34:42 +00:00
InstrEmitter.cpp Add llvm.codeview.annotation to implement MSVC __annotation 2017-09-05 20:14:58 +00:00
InstrEmitter.h
LegalizeDAG.cpp [SelectionDAG] Remove a check for type being a vector type after calling getShiftAmountTy. NFCI 2017-09-11 16:15:39 +00:00
LegalizeFloatTypes.cpp [legalize-types] Clean up softening machinery. 2017-07-04 01:08:55 +00:00
LegalizeIntegerTypes.cpp Reland "[mips] Fix multiprecision arithmetic." 2017-07-13 11:28:05 +00:00
LegalizeTypes.cpp Refactor DIBuilder::createFragmentExpression into a static DIExpression member 2017-08-30 20:04:17 +00:00
LegalizeTypes.h [SelectionDAG] Teach the vector-types operand scalarizer about SETCC 2017-08-17 08:06:36 +00:00
LegalizeTypesGeneric.cpp [legalize-types] Clean up softening machinery. 2017-07-04 01:08:55 +00:00
LegalizeVectorOps.cpp Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC. 2017-06-03 05:11:14 +00:00
LegalizeVectorTypes.cpp Fixed a bug in splitting Scatter operation in the Type Legalizer. 2017-09-11 06:18:15 +00:00
LLVMBuild.txt
ResourcePriorityQueue.cpp Refactoring with range-based for, NFC 2017-05-04 13:35:17 +00:00
ScheduleDAGFast.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
ScheduleDAGRRList.cpp Remove usages of deprecated std::unary_function and std::binary_function. 2017-09-14 18:33:25 +00:00
ScheduleDAGSDNodes.cpp Remove redundant call to GluedNodes.back() [NFC] 2017-02-19 16:56:18 +00:00
ScheduleDAGSDNodes.h [Target] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-01-11 01:45:03 +00:00
ScheduleDAGVLIW.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
SDNodeDbgValue.h [Debug info] Transfer DI to fragment expressions for split integer values. 2017-08-18 18:07:00 +00:00
SelectionDAG.cpp [SelectionDAG] ComputeNumSignBits - cleanup ROTL/ROTR wrapping to match DAGCombine etc. 2017-09-14 10:28:01 +00:00
SelectionDAGAddressAnalysis.cpp [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
SelectionDAGBuilder.cpp Fix a crash when emitting debug info for multi-reg function arguments 2017-09-08 02:31:37 +00:00
SelectionDAGBuilder.h Improve line debug info when translating a CaseBlock to SDNodes. 2017-08-17 16:57:13 +00:00
SelectionDAGDumper.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
SelectionDAGISel.cpp Revert r313343 "[X86] PR32755 : Improvement in CodeGen instruction selection for LEAs." 2017-09-15 18:40:26 +00:00
SelectionDAGPrinter.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
SelectionDAGTargetInfo.cpp [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
StatepointLowering.cpp Reland "[SelectionDAG] Enable target specific vector scalarization of calls and returns" 2017-06-09 14:37:08 +00:00
StatepointLowering.h
TargetLowering.cpp [SelectionDAG] Use APInt::isSubsetOf. NFC 2017-06-16 23:19:14 +00:00