1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test
Stanislav Mekhanoshin 4e48d88543 [SLP] Control maximum vectorization factor from TTI
D82227 has added a proper check to limit PHI vectorization to the
maximum vector register size. That unfortunately resulted in at
least a couple of regressions on SystemZ and x86.

This change reverts PHI handling from D82227 and replaces it with
a more general check in SLPVectorizerPass::tryToVectorizeList().
Moved to tryToVectorizeList() it allows to restart vectorization
if initial chunk fails.

However, this function is more general and handles not only PHI
but everything which SLP handles. If vectorization factor would
be limited to maximum vector register size it would limit much
more vectorization than before leading to further regressions.
Therefore a new TTI callback getMaximumVF() is added with the
default 0 to preserve current behavior and limit nothing. Then
targets can decide what is better for them.

The callback gets ElementSize just like a similar getMinimumVF()
function and the main opcode of the chain. The latter is to avoid
regressions at least on the AMDGPU. We can have loads and stores
up to 128 bit wide, and <2 x 16> bit vector math on some
subtargets, where the rest shall not be vectorized. I.e. we need
to differentiate based on the element size and operation itself.

Differential Revision: https://reviews.llvm.org/D92059
2020-12-14 08:49:40 -08:00
..
Analysis [BasicAA] Handle known non-zero variable index 2020-12-13 13:20:05 +01:00
Assembler
Bindings
Bitcode
BugPoint
CodeGen [VE] Add logical mask intrinsic instructions 2020-12-15 01:34:31 +09:00
DebugInfo Reland [DebugInfo] Improve dbg preservation in LSR. 2020-12-14 16:15:18 +01:00
Demangle
Examples
ExecutionEngine
Feature
FileCheck
Instrumentation [dfsan] Track field/index-level shadow values in variables 2020-12-09 19:38:35 +00:00
Integer
JitListener
Linker
LTO
MachineVerifier
MC [llvm-readobj] - For SHT_REL relocations, don't display an addend. 2020-12-14 12:03:00 +03:00
Object [llvm-readobj] - For SHT_REL relocations, don't display an addend. 2020-12-14 12:03:00 +03:00
ObjectYAML
Other [PGO] Enable preinline and cleanup when optimize for size 2020-12-10 12:29:17 -08:00
Reduce
SafepointIRVerifier
Support
SymbolRewriter
TableGen Revert "[openmp] Remove clause from OMPKinds.def and use OMP.td info" 2020-12-10 10:34:59 -05:00
ThinLTO/X86 [NFCI] Add missing triple to several LTO tests 2020-12-09 13:13:58 -08:00
tools [llvm-readobj] - For SHT_REL relocations, don't display an addend. 2020-12-14 12:03:00 +03:00
Transforms [SLP] Control maximum vectorization factor from TTI 2020-12-14 08:49:40 -08:00
Unit
Verifier [SelectionDAG] Add llvm.vector.{extract,insert} intrinsics 2020-12-09 11:08:41 +00:00
YAMLParser
.clang-format
CMakeLists.txt [CMake] Add llvm-profgen to LLVM_TEST_DEPENDS 2020-12-09 09:34:51 -08:00
lit.cfg.py [FileCheck] Enforce --allow-unused-prefixes=false for llvm/test/Transforms 2020-12-09 08:51:38 -08:00
lit.site.cfg.py.in
TestRunner.sh