1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
Go to file
Roman Lebedev 903dd081e7 [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 f5b5ccf2a68 2020-08-07 23:43:14 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore [clangd] Store index in '.cache/clangd/index' instead of '.clangd/index' 2020-07-07 14:53:45 +02:00
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
configure
CREDITS.TXT [test commit] Add my name to the CREDITS.TXT 2020-07-24 12:05:53 -05:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt Test commit. 2020-03-14 18:08:26 -07:00
RELEASE_TESTERS.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.