llvm-capstone/llvm/lib
Alexey Bataev f5d45d70a5 [SLP]Further improvement of the cost model for scalars used in buildvectors.
Further improvement of the cost model for the scalars used in
buildvectors sequences. The main functionality is outlined into
a separate function.
The cost is calculated in the following way:
1. If the Base vector is not undef vector, resizing the very first mask to
have common VF and perform action for 2 input vectors (including non-undef
Base). Other shuffle masks are combined with the resulting after the 1 stage and processed as a shuffle of 2 elements.
2. If the Base is undef vector and have only 1 shuffle mask, perform the
action only for 1 vector with the given mask, if it is not the identity
mask.
3. If > 2 masks are used, perform serie of shuffle actions for 2 vectors,
combing the masks properly between the steps.

The original implementation misses the very first analysis for the Base
vector, so the cost might too optimistic in some cases. But it improves
the cost for the insertelements which are part of the current SLP graph.

Part of D107966.

Differential Revision: https://reviews.llvm.org/D115750
2022-05-11 06:08:55 -07:00
..
Analysis [BasicAA] Fix order in which we pass MemoryLocations to alias() 2022-05-10 12:05:38 -07:00
AsmParser [AsmParser] Automatically declare and lex attribute keywords (NFC) 2022-04-27 09:27:26 +02:00
BinaryFormat Fix DXBC magic parsing 2022-05-03 14:41:48 -07:00
Bitcode [Bitcode] Include indirect users of BlockAddresses in bitcode 2022-05-10 16:03:42 -07:00
Bitstream
CodeGen [TypePromotion] Fix sext vs zext in promoted constant 2022-05-11 10:47:44 +01:00
DebugInfo DWARFVerifier: Verify CU/TU index overlap issues 2022-05-05 18:18:53 +00:00
Debuginfod Fix buildbot failures from 7917b3c6. 2022-03-21 17:58:22 +00:00
Demangle Revert "[demangler] Simplify OutputBuffer initialization" 2022-04-26 20:24:06 +00:00
DWARFLinker
DWP
ExecutionEngine [ORC] Fix sorting of contructors by priority 2022-05-11 09:06:41 +02:00
Extensions
FileCheck
Frontend [OpenMP] Make generating offloading entries more generic 2022-04-29 09:14:31 -04:00
Fuzzer
FuzzMutate Reland "[FuzzMutate] Split out FuzzerCLI library that doesn't depend on IR." 2022-05-07 13:49:54 +02:00
InterfaceStub
IR [IR][CostModel] A scalable vector shuffle can't be an identity or reverse shuffle. 2022-05-09 21:37:25 -07:00
IRReader
LineEditor
Linker Support the min of module flags when linking, use for AArch64 BTI/PAC-RET 2022-04-13 09:31:51 +02:00
LTO [iwyu] Handle regressions in libLLVM header include 2022-04-13 20:53:19 +02:00
MC [llvm-ml] Implement support for MASM's extern directive 2022-05-10 14:36:06 -04:00
MCA
ObjCopy [ObjCopy][NFC] Refactor handling of linkedit_data_command in MachOWriter 2022-04-10 02:09:11 +00:00
Object [NFC] Add missing switch cases 2022-05-02 18:13:07 -05:00
ObjectYAML [AMDGPU] Add gfx11 subtarget ELF definition 2022-04-29 12:27:17 -04:00
Option [Driver] Simplify hasFlag pattern with addOptInFlag/addOptOutFlag helpers 2022-04-11 12:29:25 -07:00
Passes [NFC] [Coroutines] Remove EnableReuseStorageInFrame option 2022-05-10 17:28:43 +08:00
ProfileData [memprof] Use unknown_function error type for missing functions 2022-05-04 13:02:30 -07:00
Remarks
Support [RISCV] 'K'-extension ordering 2022-05-11 00:52:00 +08:00
TableGen
Target [RISCV][NFC] Rename variable to appease code style 2022-05-11 12:41:25 +01:00
Testing
TextAPI
ToolDrivers [llvm-lib] Add /WX, warn by default on empty inputs, add opt-out 2022-04-11 13:15:30 -04:00
Transforms [SLP]Further improvement of the cost model for scalars used in buildvectors. 2022-05-11 06:08:55 -07:00
WindowsDriver
WindowsManifest
XRay
CMakeLists.txt