llvm-project/llvm
Roman Lebedev e492f0e03b
[SimplifyCFG] Fix invoke->call fold w/ multiple invokes in presence of lifetime intrinsics
SimplifyCFG has two main folds for resumes - one when resume is directly
using the landingpad, and the other one where resume is using a PHI node.

While for the first case, we were already correctly ignoring all the
PHI nodes, and both the debug info intrinsics and lifetime intrinsics,
in the PHI-based-one, we weren't ignoring PHI's in the resume block,
and weren't ignoring lifetime intrinsics. That is clearly a bug.

On RawSpeed library, this results in +9.34% (+81) more invoke->call folds,
-0.19% (-39) landing pads, -0.24% (-81) invoke instructions
but +51 call instructions and -132 basic blocks.

Though, the run-time performance impact appears to be within the noise.
2020-08-08 20:00:28 +03:00
..
benchmarks
bindings [Bindings] Remove ipc_propagation. 2020-08-02 22:36:53 +01:00
cmake Revert "Reland D64327 [MC][ELF] Allow STT_SECTION referencing SHF_MERGE on REL targets" 2020-08-07 10:56:33 -07:00
docs [llvm-libtool-darwin] Add support for -D and -U options 2020-08-07 14:44:32 -07:00
examples [llvm][examples][SimplifyCFG] Fix pass's IR changed reporting 2020-07-27 13:39:58 -06:00
include Reland "Revert "[NewPM][CodeGen] Introduce machine pass and machine pass manager"" 2020-08-07 16:40:49 -07:00
lib [SimplifyCFG] Fix invoke->call fold w/ multiple invokes in presence of lifetime intrinsics 2020-08-08 20:00:28 +03:00
projects
resources
runtimes [CMake] Bump CMake minimum version to 3.13.4 2020-07-22 14:25:07 -04:00
test [SimplifyCFG] Fix invoke->call fold w/ multiple invokes in presence of lifetime intrinsics 2020-08-08 20:00:28 +03:00
tools [llvm-libtool-darwin] Add support for -D and -U options 2020-08-07 14:44:32 -07:00
unittests Reland "Revert "[NewPM][CodeGen] Introduce machine pass and machine pass manager"" 2020-08-07 16:40:49 -07:00
utils [gn build] Port f5b5ccf2a6 2020-08-07 23:43:14 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [CMake] Bump CMake minimum version to 3.13.4 2020-07-22 14:25:07 -04:00
CODE_OWNERS.TXT Remove Olesen from LLVM code owners 2020-08-05 11:12:10 -07:00
CREDITS.TXT [test commit] Add my name to the CREDITS.TXT 2020-07-24 12:05:53 -05:00
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.