llvm-project/llvm
Anna Thomas 6f732bfb79 [LV] Teach vectorizer about variant value store into uniform address
Summary:
Teach vectorizer about vectorizing variant value stores to uniform
address. Similar to rL343028, we do not allow vectorization if we have
multiple stores to the same uniform address.

Cost model already has the change for considering the extract
instruction cost for a variant value store. See added test cases for how
vectorization is done.
The patch also contains changes to the ORE messages.

Reviewers: Ayal, mkuper, anemet, hsaito

Subscribers: rkruppe, llvm-commits

Differential Revision: https://reviews.llvm.org/D52656

llvm-svn: 344613
2018-10-16 15:46:26 +00:00
..
benchmarks
bindings
cmake [CMake] Use LLVM_ENABLE_IDE instead of CMAKE_CONFIGURATION_TYPES 2018-10-15 21:20:02 +00:00
docs [Intrinsic] Add llvm.minimum and llvm.maximum instrinsic functions 2018-10-13 07:21:44 +00:00
examples [ORC] Rename ORC layers to make the "new" ORC layers the default. 2018-10-15 22:56:10 +00:00
include [LV] Teach vectorizer about variant value store into uniform address 2018-10-16 15:46:26 +00:00
lib [LV] Teach vectorizer about variant value store into uniform address 2018-10-16 15:46:26 +00:00
projects
resources
runtimes
test [LV] Teach vectorizer about variant value store into uniform address 2018-10-16 15:46:26 +00:00
tools [llvm-objcopy] Factor out Buffer 2018-10-16 05:40:18 +00:00
unittests [ORC] Rename ORC layers to make the "new" ORC layers the default. 2018-10-15 22:56:10 +00:00
utils [VPlan] Script to extract VPlan digraphs from log 2018-10-16 09:37:52 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [CMake] Fix a missing LLVM_ENABLE_IDE from r344555 2018-10-15 22:36:59 +00:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.