llvm-project/llvm
Sanjay Patel b267d3ce8d [InstCombine] avoid infinite loops from min/max canonicalization
The intrinsics have an extra chunk of known bits logic
compared to the normal cmp+select idiom. That allows
folding the icmp in each case to something better, but
that then opposes the canonical form of min/max that
we try to form for a select.

I'm carving out a narrow exception to preserve all
existing regression tests while avoiding the inf-loop.
It seems unlikely that this is the only bug like this
left, but this should fix:
https://llvm.org/PR51419
2021-08-10 14:42:37 -04:00
..
benchmarks
bindings
cmake [CMake] Improve GetHostTriple for Windows/ARM configurations 2021-08-09 11:31:28 +03:00
docs [Security] Replace Josh Eads with Tim Penge as a Sony rep 2021-08-10 12:54:23 -04:00
examples [examples] Fix incomplete_type on ZLinux when compiling RemoteJITUtils. 2021-08-02 15:15:15 +10:00
include [OpenMP] AlwaysInline __kmpc_parallel_51 to improve inlining hueristics 2021-08-10 14:41:43 -04:00
lib [InstCombine] avoid infinite loops from min/max canonicalization 2021-08-10 14:42:37 -04:00
projects
resources
runtimes [OpenMP] Fixing llvm-omp-device-info compilation with runtimes 2021-07-30 13:09:08 -05:00
test [InstCombine] avoid infinite loops from min/max canonicalization 2021-08-10 14:42:37 -04:00
tools [llvm-objcopy][ELF][NFC] Remove unneeded methods of Object 2021-08-09 15:44:03 +07:00
unittests [GlobalISel] Look through truncs and extends in narrowScalarShift 2021-08-10 13:49:22 +02:00
utils [gn build] Port 6f7f5b54c8 2021-08-10 04:47:01 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [flang][driver] Delete `f18` (i.e. the old Flang driver) 2021-08-05 12:57:15 +00:00
CODE_OWNERS.TXT Add Johannes to CODE_OWNERS for openmp offloading 2021-08-02 19:45:47 +01: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.