llvm-project/llvm
Congzhe Cao 75b33d6bd5 [LoopInterchange] Check phis in all subloops
This is the bugfix to the miscompile mentioned in
https://reviews.llvm.org/D132055#3814831. The IR
that reproduced the bug is added as the test case in
this patch.

What this patch does is that, during legality phase
instead of checking the phi nodes only in `InnerLoop`
and `OuterLoop`, we check phi nodes in all subloops
of the `OuterLoop`. Suppose if the loop nest is triply
nested, and `InnerLoop` and `OuterLoop` is the middle
loop and the outermost loop respectively, we'll check
phi nodes in the innermost loop as well, in addition to
the ones in the middle and outermost loops.

Reviewed By: Meinersbur, #loopoptwg

Differential Revision: https://reviews.llvm.org/D134930
2022-11-04 00:20:52 -04:00
..
benchmarks
bindings [llvm][ocaml] Replace deprecated C functions in OCaml bindings 2022-10-31 10:23:35 +01:00
cmake Set LLVM_ATOMIC_LIB variable for convenient linking against libatomic 2022-11-03 21:07:43 +01:00
docs [X86] Support -march=raptorlake, meteorlake 2022-11-04 09:32:17 +08:00
examples Revert "[LegacyPM] Remove pipeline extension mechanism" 2022-10-28 10:26:58 -07:00
include [X86] Support -march=raptorlake, meteorlake 2022-11-04 09:32:17 +08:00
lib [LoopInterchange] Check phis in all subloops 2022-11-04 00:20:52 -04:00
projects
resources
runtimes [runtimes] Use a response file for runtimes test suites 2022-10-12 08:01:19 +00:00
test [LoopInterchange] Check phis in all subloops 2022-11-04 00:20:52 -04:00
tools [Binary] Support extracting offloading files from COFF 2022-11-03 16:19:14 -05:00
unittests [IR Verifier] didn't check if switch case is constant, align IR Verifier's check with LLParser. 2022-11-03 15:26:54 -07:00
utils [test-release] Build BOLT by default for x86/arm 2022-11-03 13:25:31 -07:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Harmonize cmake_policy() across standalone builds of all projects 2022-10-28 08:46:48 +02:00
CODE_OWNERS.TXT [SPIRV] support the enqueue_kernel builtin function 2022-11-01 02:52:08 +03:00
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.