llvm-project/llvm/lib
David Green 8675ef100f [LV] Logical and/or select costs
D99674 stopped the folding of certain select operations into and/or, due
to incorrect folding in the presence of poison. D97360 added some costs
to attempt to account for the change, but only worked at the getUserCost
level, not the getCmpSelInstrCost that the vectorizer will use directly.
This adds similar logic into the vectorizer to handle these logical
and/or selects, treating them like and/or directly.

This fixes 60% performance regressions from code like the attached test
case.

Differential Revision: https://reviews.llvm.org/D99884
2021-04-08 10:39:47 +01:00
..
Analysis [SCEV] Fix false-positive recognition of simple recurrences. PR49856 2021-04-07 13:55:17 +07:00
AsmParser [DebugInfo] Upgrade DISubragne::count to accept DIExpression also 2021-03-30 09:16:55 +05:30
BinaryFormat [NFC] Reordering parameters in getFile and getFileOrSTDIN 2021-03-25 09:47:49 -04:00
Bitcode Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
Bitstream [llvm] Use llvm::append_range (NFC) 2021-01-06 18:27:33 -08:00
CodeGen [GreedyRA ORE] Extract computeNumberOfSplillsReloads to use in different places. NFC. 2021-04-08 14:40:45 +07:00
DWARFLinker [dsymutil] Stop emulating dsymutil-classic CIE caching behavior 2021-04-06 20:15:41 -07:00
DebugInfo * NFC. Refactored DIPrinter for better support of new print styles. 2021-04-05 15:40:41 +04:00
Demangle [Demangle] Support demangling Swift calling convention in MS demangler. 2021-01-27 13:24:54 -08:00
ExecutionEngine [JITLink] Switch from StringRef to ArrayRef<char>, add some generic x86-64 utils 2021-03-30 21:07:24 -07:00
Extensions
FileCheck [FileCheck] Fix PR49531: invalid use of string var 2021-03-24 18:49:58 +00:00
Frontend [OpenMP] Change OMPIRBuilder to append function attributes 2021-03-24 09:08:29 -04:00
FuzzMutate [NFC] Reordering parameters in getFile and getFileOrSTDIN 2021-03-25 09:47:49 -04:00
Fuzzer
IR [Constant] ConstantStruct/Array should not lower poison to undef 2021-04-08 15:23:12 +09:00
IRReader [NFC] Reordering parameters in getFile and getFileOrSTDIN 2021-03-25 09:47:49 -04:00
InterfaceStub [elfabi] Fix a bug when .dynsym contains no non-local symbol 2021-02-19 11:36:53 -08:00
LTO [SystemZ][z/OS][Windows] Add new OF_TextWithCRLF flag and use this flag instead of OF_Text 2021-04-06 07:23:31 -04:00
LineEditor
Linker Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
MC [AsmParser] Recognize more escaped characters between single quotes 2021-04-08 09:59:37 +02:00
MCA [MCA] Support carry-over instructions for in-order processors 2021-03-26 00:06:19 +03:00
Object [TextAPI] move source code files out of subdirectory, NFC 2021-04-05 10:24:42 -07:00
ObjectYAML AMDGPU: Add target id and code object v4 support 2021-03-24 11:54:05 -04:00
Option [clang][cli] NFC: Remove ArgList infrastructure for recording queries 2021-02-25 13:53:24 +01:00
Passes [NPM] Fix typo inisLTOPreLink for loop rotate 2021-04-07 15:08:37 +01:00
ProfileData [SystemZ][z/OS][Windows] Add new OF_TextWithCRLF flag and use this flag instead of OF_Text 2021-04-06 07:23:31 -04:00
Remarks Add intrinsics_gen as a dependency of libRemarks 2021-03-08 14:17:27 -08:00
Support [Windows] Remove global OF_None flag for Windows in ToolOutputFiles 2021-04-07 14:10:04 -04:00
TableGen [SystemZ][z/OS][TableGen] TableGen files should be text 2021-04-07 11:23:00 -04:00
Target [RISCV] Support OR/XOR/AND reductions on vector masks 2021-04-08 09:46:38 +01:00
Testing [clangd] Implement semanticTokens modifiers 2021-02-09 16:31:22 +01:00
TextAPI [TextAPI] move source code files out of subdirectory, NFC 2021-04-05 10:24:42 -07:00
ToolDrivers [NFC] Reordering parameters in getFile and getFileOrSTDIN 2021-03-25 09:47:49 -04:00
Transforms [LV] Logical and/or select costs 2021-04-08 10:39:47 +01:00
WindowsManifest
XRay
CMakeLists.txt