llvm-project/llvm
Kai Nacke d897a14c2e [SystemZ] Fix check for zero size when lowering memcmp.
During lowering of memcmp/bcmp, the check for a size of 0 is done
in 2 different ways. In rare cases this can lead to a crash in
SystemZSelectionDAGInfo::EmitTargetCodeForMemcmp(). The root cause
is that SelectionDAGBuilder::visitMemCmpBCmpCall() checks for a
constant int value which is not yet evaluated. When the value is
turned into a SDValue, then the evaluation is done and results in
a ConstantSDNode. But EmitTargetCodeForMemcmp() expects the special
case of 0 length to be handled, which results in an assertion.

The fix is to turn the value into a SDValue, so that both functions
use the same check.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D126900
2022-06-08 14:52:13 -04:00
..
benchmarks
bindings [llvm-ocaml] Add and use opaque pointer compatible bindings 2022-06-02 11:42:24 +02:00
cmake [cmake] Don't try creating an executable when detecting the linker 2022-06-08 14:36:54 -04:00
docs [Docs] Add version support information for opaque pointers (NFC) 2022-06-08 11:54:34 +02:00
examples Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options 2022-06-05 01:07:51 -07:00
include [PseudoProbe] Use callee name as callsite identfier for MCDecodedPseudoProbeInlineTree. 2022-06-08 10:54:40 -07:00
lib [SystemZ] Fix check for zero size when lowering memcmp. 2022-06-08 14:52:13 -04:00
projects
resources
runtimes Revert "[runtimes] Detect changes to Tests.cmake" 2022-05-26 09:34:18 -07:00
test [SystemZ] Fix check for zero size when lowering memcmp. 2022-06-08 14:52:13 -04:00
tools [llvm-ml] Remove all file extension restrictions 2022-06-07 13:03:19 -04:00
unittests [ADT][NFC] Early bail out for ComputeEditDistance 2022-06-08 08:20:29 +01:00
utils [gn build] Port 916e9052ba 2022-06-08 10:19:18 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [CMake] Enable LLVM_ENABLE_PER_TARGET_RUNTIME_DIR by default on Linux 2022-06-07 21:22:38 -07: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.