llvm-project/llvm
Konstantina 5bc8791187 [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block.
NewGVN tables are not cleared out between the initial run of NewGVN and the verification. In case of phi-of-ops optimization, OpSafeForPHIOfOps goes out of sync between the two runs. One operand might not be safe for one basic block, but it might be safe for one of its successors. In this case, the operand will be added in OpSafeForPHIOfOps map. In verification phase, we reuse OpSafeForPHIOfOps without updating it again. As a result, the operand will be considered safe for phi-of-ops optimization even for the case that it is not. This patch fixes this problem.

Fix for 53807.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D130910
2022-08-17 18:57:46 -07:00
..
benchmarks
bindings
cmake [FindGRPC.cmake] Use `llvm_add_library()` for the custom proto target instead of `add_llvm_library()` 2022-08-17 09:42:50 -07:00
docs [llvm-objdump --macho] Rename --dyld_info to --dyld-info 2022-08-17 12:58:29 -04:00
examples [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
include [JITLink] Pass Allocator (rather than storage) into Symbol named constructors. 2022-08-17 15:55:42 -07:00
lib [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block. 2022-08-17 18:57:46 -07:00
projects
resources
runtimes [CMake] Fix runtimes cross-compilation when using LLVM_USE_LINKER 2022-08-03 11:24:09 -07:00
test [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block. 2022-08-17 18:57:46 -07:00
tools [llvm-objdump --macho] Rename --dyld_info to --dyld-info 2022-08-17 12:58:29 -04:00
unittests [JITLink] Fix typo in block address in unittest. 2022-08-17 15:55:43 -07:00
utils [gn build] build libclang_rt.ubsan_osx_dynamic.dylib on mac 2022-08-17 15:35:41 -04:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [llvm] Include utils/unittest before projects and runtimes 2022-08-15 09:54:35 -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.