llvm-project/llvm/test/Other
Francesco Petrogalli 0be81968a2 [VectorUtils] Introduce the Vector Function Database (VFDatabase).
This patch introduced the VFDatabase, the framework proposed in
http://lists.llvm.org/pipermail/llvm-dev/2019-June/133484.html. [*]

In this patch the VFDatabase is used to bridge the TargetLibraryInfo
(TLI) calls that were previously used to query for the availability of
vector counterparts of scalar functions.

The VFISAKind field `ISA` of VFShape have been moved into into VFInfo,
under the assumption that different vector ISAs may provide the same
vector signature. At the moment, the vectorizer accepts any of the
available ISAs as long as the signature provided by the VFDatabase
matches the one expected in the vectorization process. For example,
when targeting AVX or AVX2, which both have 256-bit registers, the IR
signature of the two vector functions associated to the two ISAs is
the same. The `getVectorizedFunction` method at the moment returns the
first available match. We will need to add more heuristics to the
search system to decide which of the available version (TLI, AVX,
AVX2, ...)  the system should prefer, when multiple versions with the
same VFShape are present.

Some of the code in this patch is based on the work done by Sumedh
Arani in https://reviews.llvm.org/D66025.

[*] Notice that in the proposal the VFDatabase was called SVFS. The
name VFDatabase is more in line with LLVM recommendations for
naming classes and variables.

Differential Revision: https://reviews.llvm.org/D67572
2019-12-10 16:36:44 +00:00
..
Inputs [PGO] Context sensitive PGO (part 4) 2019-03-06 19:31:37 +00:00
X86 [lit] Delete empty lines at the end of lit.local.cfg NFC 2019-06-17 09:51:07 +00:00
2002-01-31-CallGraph.ll
2002-02-24-InlineBrokePHINodes.ll
2002-03-11-ConstPropCrash.ll
2003-02-19-LoopInfoNestingBug.ll
2004-08-16-PackedConstantInlineStore.ll
2004-08-16-PackedGlobalConstant.ll
2004-08-16-PackedSelect.ll
2004-08-16-PackedSimple.ll
2004-08-20-PackedControlFlow.ll
2006-02-05-PassManager.ll
2007-04-24-eliminate-mostly-empty-blocks.ll Fix inconsistency with/without debug information (-g) 2018-08-07 12:14:01 +00:00
2007-06-05-PassID.ll Revert "Extend CFGPrinter and CallPrinter with Heat Colors" 2018-06-29 17:48:58 +00:00
2007-06-28-PassManager.ll
2007-09-10-PassManager.ll
2008-02-14-PassManager.ll
2008-06-04-FieldSizeInPacked.ll
2008-10-06-RemoveDeadPass.ll
2008-10-15-MissingSpace.ll
2009-03-31-CallGraph.ll
2009-06-05-no-implicit-float.ll
2009-09-14-function-elements.ll
2010-05-06-Printer.ll [PassInstrumentation] Remove excess newline for the new pass manager 2019-11-28 17:20:17 -08:00
FileCheck-space.txt
ResponseFile.ll
attribute-comment.ll
available-externally-lto.ll [clang][NewPM] Do not eliminate available_externally durng `-O2 -flto` runs 2019-06-20 19:44:51 +00:00
bcanalyzer-block-info.txt
bcanalyzer-dump-option.txt [llvm-bcanalyzer] Don't dump the contents if -dump is not passed 2019-11-13 10:38:57 -08:00
can-execute.txt test/Other/can-execute.txt: delete %t after the test 2018-09-14 20:41:42 +00:00
cfg-printer-branch-weights.ll [CFG Printer] Add support for writing the dot files with a custom 2018-10-09 04:30:23 +00:00
cgscc-devirt-iteration.ll [BuildLibCalls] Noalias annotation 2019-08-14 16:50:06 +00:00
cgscc-disconnected-invalidation.ll
cgscc-iterate-function-mutation.ll
cgscc-libcall-update.ll [SimplifyLibCalls] Mark known arguments with nonnull 2019-09-17 09:32:52 +00:00
cgscc-observe-devirt.ll
cleanup-lcssa.ll
close-stderr.ll
codegenprepare-and-debug.ll Fix inconsistency with/without debug information (-g) 2018-08-07 12:14:01 +00:00
constant-fold-gep-address-spaces.ll
constant-fold-gep.ll
cspgo-O2-pipeline.ll [PGO] Context sensitive PGO (part 4) 2019-03-06 19:31:37 +00:00
debugcounter-dce.ll [DCE] Add DebugCounter support 2018-09-13 20:29:50 +00:00
debugcounter-earlycse.ll [EarlyCSE] Add debug counter for debugging mis-optimizations. NFC. 2018-04-06 18:47:33 +00:00
debugcounter-newgvn.ll
debugcounter-predicateinfo.ll [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types. 2018-07-24 14:49:52 +00:00
extract-alias.ll
extract-linkonce.ll
extract-weak-odr.ll
extract.ll
invalid-commandline-option.ll
invariant.group.ll [FunctionAttrs] Annotate "willreturn" for intrinsics 2019-07-28 06:09:56 +00:00
lint.ll [Intrinsics] Add a 'NoAlias' intrinsic property; annotate llvm.memcpy 2019-08-14 08:33:07 +00:00
lit-globbing.ll
lit-quoting.txt
lit-unicode.txt Remove some unnecessary REQUIRES: shell lines 2019-09-10 00:06:52 +00:00
llvm-nm-without-aliases.ll [llvm-nm][llvm-readelf] Avoid single-dash -long-option in tests 2019-04-27 16:12:14 +00:00
loop-deletion-printer.ll [NewPM] -print-module-scope -print-after now prints module even after invalidated Loop/SCC 2018-12-21 11:49:05 +00:00
loop-pass-ordering.ll
loop-pass-printer.ll [New PM][PassInstrumentation] IR printing support for New Pass Manager 2018-09-24 16:08:15 +00:00
loop-pm-invalidation.ll [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
machine-size-remarks.ll Add REQUIRES line to machine-size-remarks 2018-09-10 23:53:08 +00:00
module-pass-printer.ll [IRPrinting] Improve module pass printer to work better with -filter-print-funcs 2019-09-04 08:08:58 +00:00
new-pass-manager.ll Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
new-pm-cspgo.ll [PGO] Context sensitive PGO (part 4) 2019-03-06 19:31:37 +00:00
new-pm-defaults.ll Revert "Revert "As a follow-up to my initial mail to llvm-dev here's a first pass at the O1 described there."" 2019-11-26 20:28:52 -08:00
new-pm-lto-defaults.ll Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
new-pm-pgo-O0.ll [PGO] Add PGO support at -O0 in the experimental new pass manager 2019-08-01 22:36:34 +00:00
new-pm-pgo.ll [HotColdSplit] Schedule splitting late to fix perf regression 2019-02-15 18:46:44 +00:00
new-pm-pr42726-cgscc.ll [NewPassManager] Resolve assertion in CGSCCPassManager when CallCounts change. 2019-08-02 18:37:03 +00:00
new-pm-thinlto-defaults.ll Revert "Revert "As a follow-up to my initial mail to llvm-dev here's a first pass at the O1 described there."" 2019-11-26 20:28:52 -08:00
opt-O0-pipeline.ll [test] Allow for optional No-Op Barrier Pass in O0 pipeline 2018-03-23 12:47:54 +00:00
opt-O2-pipeline.ll [VectorUtils] Introduce the Vector Function Database (VFDatabase). 2019-12-10 16:36:44 +00:00
opt-O3-pipeline.ll [VectorUtils] Introduce the Vector Function Database (VFDatabase). 2019-12-10 16:36:44 +00:00
opt-Os-pipeline.ll [VectorUtils] Introduce the Vector Function Database (VFDatabase). 2019-12-10 16:36:44 +00:00
opt-bisect-helper.py Python compat - print statement 2019-01-03 14:11:33 +00:00
opt-bisect-legacy-pass-manager.ll [lit, python] Always add quotes around the python path in lit 2018-08-06 22:37:44 +00:00
opt-hot-cold-split.ll [HotColdSplit] Schedule splitting late to fix perf regression 2019-02-15 18:46:44 +00:00
opt-override-mcpu-mattr.ll
opt-twice.ll
optimization-remarks-inline.ll
optimization-remarks-invalidation.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
optimization-remarks-lazy-bfi.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
optimize-inrange-gep.ll Prevent Constant Folding From Optimizing inrange GEP 2018-09-11 01:53:36 +00:00
optimize-options.ll
pass-pipeline-parsing.ll [NewPM] Fixing test failure on Windows - removed opt binary name from pattern 2018-10-17 11:01:15 +00:00
pass-pipelines.ll [LegacyPM] Fix pass structure dumping 2019-11-01 14:43:51 +03:00
pipefail.txt
pr32085.ll Use no-op opt run to eliminate the difference in bb pred comment, per chandler's suggestion. It is better than using sed on portability. 2018-05-01 17:19:25 +00:00
print-debug-counter.ll Actually fix test from r345085 REQUIRE: asserts 2018-10-23 22:07:34 +00:00
print-module-scope.ll [New PM][PassInstrumentation] IR printing support for New Pass Manager 2018-09-24 16:08:15 +00:00
print-slotindexes.ll [SlotIndexes] Add print-slotindexes to disable printing slotindexes 2019-08-22 13:44:47 +00:00
printer.ll [PassInstrumentation] Remove excess newline for the new pass manager 2019-11-28 17:20:17 -08:00
scalable-vector-array.ll Scalable Vector IR Type with further LTO fixes 2019-07-05 12:48:16 +00:00
scalable-vector-struct.ll Scalable Vector IR Type with further LTO fixes 2019-07-05 12:48:16 +00:00
scalable-vectors-core-ir.ll [SVE][IR] Scalable Vector size queries and IR instruction support 2019-10-08 12:53:54 +00:00
scc-deleted-printer.ll [NewPM] -print-module-scope -print-after now prints module even after invalidated Loop/SCC 2018-12-21 11:49:05 +00:00
scc-pass-printer.ll Fixing -print-module-scope for legacy SCC passes 2018-12-03 14:48:15 +00:00
size-remarks.ll Make YAML quote forward slashes. 2018-10-12 16:31:20 +00:00
spir_cc.ll
statistic.ll Reland: [Timers] Use the pass argument name for JSON keys in time-passes 2018-06-13 21:03:56 +00:00
time-passes.ll [TimePasses] allow -time-passes reporting into a custom stream 2019-03-15 22:15:23 +00:00
umask.ll [CMake] Use normalized Windows target triples 2018-08-09 02:16:18 +00:00
unroll-sroa.ll [NewPM] Add an SROA pass after loop unroll 2019-11-01 14:59:08 -07:00
writing-to-stdout.ll