llvm-project/llvm
Matt Arsenault 3b95986a32 AMDGPU: Run AMDGPUCodeGenPrepare after scalar opts
The mul24 matching could interfere with SLSR and the other addressing
mode related passes. This probably is not the optimal placement, but
is an intermediate step. This should probably be moved after all the
generic IR passes, particularly LSR. Moving this after LSR seems to
help in some cases, and hurts others.

As-is in this patch, in idiv-licm, it saves 1-2 instructions inside
some of the loop bodies, but increases the number in others. Moving
this later helps these loops. In the new lsr tests in
mul24-pass-ordering, the intrinsic prevents introducing more
instructions in the loop preheader, so moving this later ends up
hurting them. This shouldn't be any worse than before the intrinsics
were introduced in r366094, and LSR should probably be smarter. I
think it's because it doesn't know the and inside the loop will be
folded away.

llvm-svn: 369991
2019-08-27 00:08:31 +00:00
..
benchmarks
bindings Bump llvm-go to C++14 2019-08-15 10:55:25 +00:00
cmake [CMake] Update C4324 MSVC warning comment to explain its still broken at VS2019 2019-08-20 11:20:05 +00:00
docs Debug Info: Support for DW_AT_export_symbols for anonymous structs 2019-08-23 17:19:21 +00:00
examples [ORC] Make sure we linker-mangle symbol names in the SpeculationLayer. 2019-08-18 21:29:57 +00:00
include [ORC] Make sure that queries on emitted-but-not-ready symbols fail correctly. 2019-08-26 21:42:51 +00:00
lib AMDGPU: Run AMDGPUCodeGenPrepare after scalar opts 2019-08-27 00:08:31 +00:00
projects [libc++] Take 2: Integrate the PSTL into libc++ 2019-08-05 18:29:14 +00:00
resources
runtimes
test AMDGPU: Run AMDGPUCodeGenPrepare after scalar opts 2019-08-27 00:08:31 +00:00
tools [NFC][cmake] Build fix in tools/llvm-config/CMakeLists.txt 2019-08-26 09:42:30 +00:00
unittests [ORC] Make sure that queries on emitted-but-not-ready symbols fail correctly. 2019-08-26 21:42:51 +00:00
utils [GlobalISel] Import patterns containing INSERT_SUBREG 2019-08-26 21:38:57 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Autogenerate the shebang lines for tools/opt-viewer 2019-08-21 01:48:28 +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.