llvm-project/llvm
Amy Kwan 150681f2f3 [PowerPC] Prevent the optimizer from producing wide vector types in IR.
This patch prevents the optimizer from producing wide vectors in the IR,
specifically the MMA types (v256i1, v512i1). The idea is that on Power, we only
want to be producing these types only if the vector_pair and vector_quad types
are used specifically.

To prevent the optimizer from producing these types in the IR,
vectorCostAdjustmentFactor() is updated to return an instruction cost factor or
an invalid instruction cost if the current type is that of an MMA type. An
invalid instruction cost returned by this function signifies to other cost
computing functions to return the maximum instruction cost to inform the
optimizer that producing these types within the IR is expensive, and should not
be produced in the first place.

This issue was first seen in the test case included within this patch.

Differential Revision: https://reviews.llvm.org/D113900
2021-11-25 12:35:26 -06:00
..
benchmarks
bindings
cmake [CMake] Add new cmake option to control adding comments in GenDAGISel 2021-11-25 12:11:35 -06:00
docs [docs] Incorprate first round of feedback on D114325 2021-11-22 11:02:38 -08:00
examples Revert "Use `GNUInstallDirs` to support custom installation dirs. -- LLVM" 2021-11-02 19:11:44 +01:00
include Revert "[ThreadPool] Support returning futures with results." 2021-11-25 12:19:35 -05:00
lib [PowerPC] Prevent the optimizer from producing wide vector types in IR. 2021-11-25 12:35:26 -06:00
projects Remove unused parallel-libs project 2021-10-21 14:34:39 -07:00
resources
runtimes
test [PowerPC] Prevent the optimizer from producing wide vector types in IR. 2021-11-25 12:35:26 -06:00
tools Revert "[ThreadPool] Do not return shared futures." 2021-11-24 19:01:47 +00:00
unittests Revert "[ThreadPool] Support returning futures with results." 2021-11-25 12:19:35 -05:00
utils [llvm][ubsan] Inclusive language: replace use of blacklist HandleLLVMOptions.cmake but use old option name 2021-11-25 10:23:14 -05:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [CMake] Add new cmake option to control adding comments in GenDAGISel 2021-11-25 12:11:35 -06:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.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.