[VectorUtils] Rework the Vector Function Database (VFDatabase).
authorFrancesco Petrogalli <francesco.petrogalli@arm.com>
Fri, 13 Dec 2019 19:43:26 +0000 (19:43 +0000)
committerFrancesco Petrogalli <francesco.petrogalli@arm.com>
Thu, 16 Jan 2020 15:08:26 +0000 (15:08 +0000)
commit66c120f02560ef528a60924104ead66f330190f1
tree5e917600b9e55121dcef6ae5d9d9d574a9e3cfcf
parentcbaa32650a0b5b17b42fc123de068de69b290bf5
[VectorUtils] Rework the Vector Function Database (VFDatabase).

Summary:
This commits is a rework of the patch in
https://reviews.llvm.org/D67572.

The rework was requested to prevent out-of-tree performance regression
when vectorizing out-of-tree IR intrinsics. The vectorization of such
intrinsics is enquired via the static function `isTLIScalarize`. For
detail see the discussion in https://reviews.llvm.org/D67572.

Reviewers: uabelho, fhahn, sdesmalen

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D72734
14 files changed:
llvm/include/llvm/Analysis/TargetLibraryInfo.h
llvm/include/llvm/Analysis/VectorUtils.h
llvm/lib/Analysis/LazyCallGraph.cpp
llvm/lib/Analysis/LoopAccessAnalysis.cpp
llvm/lib/Analysis/VectorUtils.cpp
llvm/lib/Transforms/Utils/InjectTLIMappings.cpp
llvm/lib/Transforms/Utils/ModuleUtils.cpp
llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/test/Other/opt-O2-pipeline.ll
llvm/test/Other/opt-O3-pipeline.ll
llvm/test/Other/opt-Os-pipeline.ll
llvm/test/Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll
llvm/unittests/Analysis/VectorFunctionABITest.cpp