llvm-6502/include/llvm
Hal Finkel ab90084bca BBVectorize: Cap the number of candidate pairs in each instruction group
For some basic blocks, it is possible to generate many candidate pairs for
relatively few pairable instructions. When many (tens of thousands) of these pairs
are generated for a single instruction group, the time taken to generate and
rank the different vectorization plans can become quite large. As a result, we now
cap the number of candidate pairs within each instruction group. This is done by
closing out the group once the threshold is reached (set now at 3000 pairs).

Although this will limit the overall compile-time impact, this may not be the best
way to achieve this result. It might be better, for example, to prune excessive
candidate pairs after the fact the prevent the generation of short, but highly-connected
groups. We can experiment with this in the future.

This change reduces the overall compile-time slowdown of the csa.ll test case in
PR15222 to ~5x. If 5x is still considered too large, a lower limit can be
used as the default.

This represents a functionality change, but only for very large inputs
(thus, there is no regression test).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175251 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-15 04:28:42 +00:00
..
ADT Add missing typename to unbreak the MSVC 2012 build. 2013-02-14 03:24:14 +00:00
Analysis Metadata for annotating loops as parallel. The first consumer for this 2013-02-13 18:08:57 +00:00
Assembly Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +00:00
Bitcode use memcpy instead of dubious union to type pun two values, 2013-02-13 04:53:40 +00:00
CodeGen Mark getRawBits const. 2013-02-14 22:49:29 +00:00
Config Fix MSan annotations inclusion guard. 2013-02-13 10:40:01 +00:00
DebugInfo Add support for the pubnames section to llvm-dwarfdump. 2013-02-12 16:20:28 +00:00
ExecutionEngine Add support for applying in-memory relocations to the .debug_line section and, in the case of ELF files, using symbol addresses when available for relocations to the .debug_info section. Also extending the llvm-rtdyld tool to add the ability to dump line number information for testing purposes. 2013-01-25 22:50:58 +00:00
IR Add some accessor and query methods for retrieving Attribute objects and such. 2013-02-13 08:42:21 +00:00
MC [ms-inline-asm] Implement align directive (which is roughly equivalent to .align). 2013-02-12 21:33:51 +00:00
Object include/llvm/Object/ELF.h: do debug checks only when NDEBUG 2013-02-14 18:41:42 +00:00
Option
Support llvm-gcc -pedantic warns about C++ comments in C90 mode even if they're 2013-02-13 22:45:52 +00:00
TableGen Fix comment formatting 2013-02-05 16:40:22 +00:00
Target Add deprecation of neverHasSideEffects to documentation comments. 2013-02-14 16:31:06 +00:00
Transforms BBVectorize: Cap the number of candidate pairs in each instruction group 2013-02-15 04:28:42 +00:00
AutoUpgrade.h
CMakeLists.txt
DebugInfo.h PR14566: Debug Info: Removing top level lexical blocks 2013-01-26 21:55:23 +00:00
DIBuilder.h DIBuilder: make the return type of createBasicType more specific 2013-02-12 00:40:41 +00:00
GVMaterializer.h
InitializePasses.h Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +00:00
InstVisitor.h
LinkAllIR.h
LinkAllPasses.h Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +00:00
Linker.h
Pass.h
PassAnalysisSupport.h
PassManager.h
PassManagers.h
PassRegistry.h
PassSupport.h