llvm-project/llvm
Christudasan Devadasan d7a05698ef [AMDGPU] Move LowerSwitch pass to CodeGenPrepare.
It is possible that LowerSwitch pass leaves certain blocks
unreachable from the entry. If not removed, these dead blocks
can cause undefined behavior in the subsequent passes.
It caused a crash in the AMDGPU backend after the instruction
selection when a PHI node has its incoming values coming from
these unreachable blocks.

In the AMDGPU pass flow, the last invocation of UnreachableBlockElim
precedes where LowerSwitch is currently placed and eventually
missed out on the opportunity to get these blocks eliminated.
This patch ensures that LowerSwitch pass get inserted earlier
to make use of the existing unreachable block elimination pass.

Reviewed By: sameerds, arsenm

Differential Revision: https://reviews.llvm.org/D83584
2020-07-11 16:33:38 +05:30
..
benchmarks
bindings
cmake [cmake] Use CMAKE_GENERATOR to determine if Ninja is used 2020-07-08 13:04:13 +02:00
docs [docs] LLVM Security Group and Process 2020-07-10 15:24:02 -07:00
examples [docs/examples] As part of using inclusive language within the llvm 2020-06-20 00:51:18 -07:00
include [OpenMP] Identify GPU kernels (aka. OpenMP target regions) 2020-07-11 01:44:00 -05:00
lib [AMDGPU] Move LowerSwitch pass to CodeGenPrepare. 2020-07-11 16:33:38 +05:30
projects
resources
runtimes [libc++] Fix the runtimes build after making __config_site mandatory 2020-06-26 01:26:34 -04:00
test [AMDGPU] Move LowerSwitch pass to CodeGenPrepare. 2020-07-11 16:33:38 +05:30
tools [NFC] Extract the code to write instr profile into function writeInstrProfile 2020-07-09 16:30:28 -07:00
unittests [ARM] Add Cortex-A78 and Cortex-X1 Support for Clang and LLVM 2020-07-10 18:24:11 +01:00
utils [gn build] (manually) merge 943660fd15 2020-07-11 06:44:28 -04:00
.clang-format
.clang-tidy
.gitattributes
.gitignore [clangd] Store index in '.cache/clangd/index' instead of '.clangd/index' 2020-07-07 14:53:45 +02:00
CMakeLists.txt Fix missing build dependencies on omp_gen 2020-07-02 07:55:20 -06: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.