llvm-project/llvm/lib
Guozhi Wei d22d1b953d [SLPVectorizer] Don't ignore scalar extraction instructions of aggregate value
In SLPVectorizer, the vector build instructions (insertvalue for aggregate type) is passed to BoUpSLP.buildTree, it is treated as UserIgnoreList, so later in cost estimation, the cost of these instructions are not counted. 
For aggregate value, later usage are more likely to be done in scalar registers, either used as individual scalars or used as a whole for function call or return value. Ignore scalar extraction instructions may cause too aggressive vectorization for aggregate values, and slow down performance. So for vectorization of aggregate value, the scalar extraction instructions are required in cost estimation.

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

llvm-svn: 320736
2017-12-14 19:35:43 +00:00
..
Analysis [ScalarEvolution] Fix base condition in isNormalAddRecPHI. 2017-12-14 14:47:52 +00:00
AsmParser Hardware-assisted AddressSanitizer (llvm part). 2017-12-09 00:21:41 +00:00
BinaryFormat Simplify. 2017-10-19 01:32:18 +00:00
Bitcode Remove redundant includes from lib/Bitcode. 2017-12-13 21:30:45 +00:00
CodeGen Revert CodeGen: Fix assertion in machine inst sheduler due to llvm.dbg.value 2017-12-14 16:12:04 +00:00
DebugInfo [COFF] Teach LLD to use the COFF .debug$H section. 2017-12-14 18:07:04 +00:00
Demangle [ItaniumDemangle] Fix a exponential string copying bug 2017-05-28 23:24:52 +00:00
ExecutionEngine Remove redundant includes from lib/ExecutionEngine. 2017-12-13 21:30:50 +00:00
FuzzMutate Remove redundant includes from various places. 2017-12-13 21:31:03 +00:00
Fuzzer [libFuzzer] Delete llvm/lib/Fuzzer 2017-10-16 20:48:19 +00:00
IR Add MVT::v128i1, NFC 2017-12-14 19:05:21 +00:00
IRReader Remove redundant includes from various places. 2017-12-13 21:31:03 +00:00
LTO Remove redundant includes from lib/LTO. 2017-12-13 21:30:53 +00:00
LineEditor
Linker Linker: Create a function declaration when moving a non-prevailing alias of function type. 2017-08-10 01:07:44 +00:00
MC [MC] Allow .file directives to be out-of-order 2017-12-14 18:46:43 +00:00
Object Remove redundant includes from lib/Object. 2017-12-13 21:30:55 +00:00
ObjectYAML [CodeView] Teach clang to emit the .debug$H COFF section. 2017-12-13 22:33:58 +00:00
Option Reverting r315590; it did not include changes for llvm-tblgen, which is causing link errors for several people. 2017-10-15 14:32:27 +00:00
Passes Remove redundant includes from various places. 2017-12-13 21:31:03 +00:00
ProfileData Remove redundant includes from lib/ProfileData. 2017-12-13 21:30:57 +00:00
Support Recover some overzealously removed includes. 2017-12-13 22:21:02 +00:00
TableGen [TableGen] Give the option of tolerating duplicate register names 2017-12-07 09:51:55 +00:00
Target [X86] Don't zero the upper bits of the k-register before extracting a single bit from a vXi1. 2017-12-14 18:35:25 +00:00
Testing Force #define GTEST_LANG_CXX11. 2017-10-27 21:12:28 +00:00
ToolDrivers Remove redundant includes from various places. 2017-12-13 21:31:03 +00:00
Transforms [SLPVectorizer] Don't ignore scalar extraction instructions of aggregate value 2017-12-14 19:35:43 +00:00
WindowsManifest Fix bug 34608 by moving private header out of public header. 2017-09-14 23:01:13 +00:00
XRay [XRay] Use optimistic logging model for FDR mode 2017-11-21 07:16:57 +00:00
CMakeLists.txt Moving libFuzzer from LLVM to compiler-rt. 2017-08-21 23:25:12 +00:00
LLVMBuild.txt Re-apply "Introduce FuzzMutate library" 2017-08-21 22:57:06 +00:00