hanchenye-llvm-project/llvm/lib
Simon Pilgrim b68322f9d0 [SLP] Remove redundancy of performing operand reordering twice: once in buildTree() and later in vectorizeTree().
This is a refactoring patch that removes the redundancy of performing operand reordering twice, once in buildTree() and later in vectorizeTree().
To achieve this we need to keep track of the operands within the TreeEntry struct while building the tree, and later in vectorizeTree() we are just accessing them from the TreeEntry in the right order.

This patch is the first in a series of patches that will allow for better operand reordering across chains of instructions (e.g., a chain of ADDs), as presented here: https://www.youtube.com/watch?v=gIEn34LvyNo

Patch by: @vporpo (Vasileios Porpodas)

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

llvm-svn: 356814
2019-03-22 21:27:11 +00:00
..
Analysis [ValueTracking] Avoid redundant known bits calculation in computeOverflowForSignedAdd() 2019-03-22 17:51:40 +00:00
AsmParser IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
BinaryFormat [Object] Add basic minidump support 2019-03-21 09:18:59 +00:00
Bitcode [DebugInfoMetadata] Move main subprogram DIFlag into DISPFlags 2019-03-19 13:49:03 +00:00
CodeGen [TargetLowering] SimplifyDemandedBits trunc(srl(x, C1)) - early out for out of range C1. NFCI. 2019-03-22 20:53:49 +00:00
DebugInfo [DWARF] Refactor RelocVisitor and fix computation of SHT_RELA-typed relocation entries 2019-03-22 02:43:11 +00:00
Demangle
ExecutionEngine [perf][DebugInfo] follow up for "add SectionedAddress to DebugInfo interfaces" 2019-03-20 10:02:18 +00:00
FuzzMutate
Fuzzer
IR IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
IRReader [IRReader] Expose getLazyIRModule 2019-02-11 22:01:13 +00:00
LTO Reland "[Remarks] Add -foptimization-record-passes to filter remark emission" 2019-03-12 21:22:27 +00:00
LineEditor
Linker [Linker] Fix crash handling appending linkage 2019-03-20 19:20:07 +00:00
MC [llvm-objcopy] - Fix a st_name of the first symbol table entry. 2019-03-22 10:28:56 +00:00
MCA [MCA] Highlight kernel bottlenecks in the summary view. 2019-03-04 11:52:34 +00:00
Object [DWARF] Refactor RelocVisitor and fix computation of SHT_RELA-typed relocation entries 2019-03-22 02:43:11 +00:00
ObjectYAML [ObjectYAML] Add basic minidump generation support 2019-03-22 14:47:26 +00:00
Option
Passes Resubmit r356511 "[TailCallElim] Add tailcall elimination pass to LTO pipelines" 2019-03-20 19:08:18 +00:00
ProfileData [SampleFDO] add suffix elision control for fcn names 2019-03-14 13:56:49 +00:00
Remarks [Remarks] Fix mismatched delete due to missing virtual destructor 2019-03-20 17:44:24 +00:00
Support [X86] Add CMPXCHG8B feature flag. Set it for all CPUs except i386/i486 including 'generic'. Disable use of CMPXCHG8B when this flag isn't set. 2019-03-20 23:35:49 +00:00
TableGen [TableGen] Allow 2^63-1 and 2^63-2 as int literals. 2019-03-12 09:28:19 +00:00
Target [ARM] Don't form "ands" when it isn't scheduled correctly. 2019-03-22 20:49:15 +00:00
Testing
TextAPI
ToolDrivers [llvm-ar][libObject] Fix relative paths when nesting thin archives. 2019-02-13 23:39:41 +00:00
Transforms [SLP] Remove redundancy of performing operand reordering twice: once in buildTree() and later in vectorizeTree(). 2019-03-22 21:27:11 +00:00
WindowsManifest
XRay
CMakeLists.txt [OptRemarks] Make OptRemarks more generic: rename OptRemarks to Remarks 2019-03-05 20:45:17 +00:00
LLVMBuild.txt [OptRemarks] Make OptRemarks more generic: rename OptRemarks to Remarks 2019-03-05 20:45:17 +00:00