[all-commits] [llvm/llvm-project] a587bf: [NFC][SimplifyCFG] Count the number of invokes tur...
Roman Lebedev via All-commits
all-commits at lists.llvm.org
Sat Aug 8 10:04:48 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: a587bf3eb074340710a36c0c00c16dadcf5adb79
https://github.com/llvm/llvm-project/commit/a587bf3eb074340710a36c0c00c16dadcf5adb79
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2020-08-08 (Sat, 08 Aug 2020)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
Log Message:
-----------
[NFC][SimplifyCFG] Count the number of invokes turned into calls due to empty cleanup blocks
Commit: c2ebb3246551eb144fb4d684bc597c9495c0d0c0
https://github.com/llvm/llvm-project/commit/c2ebb3246551eb144fb4d684bc597c9495c0d0c0
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2020-08-08 (Sat, 08 Aug 2020)
Changed paths:
A llvm/test/Transforms/SimplifyCFG/invoke_unwind_lifetime.ll
Log Message:
-----------
[NFC][SimplifyCFG] Add a test showing invoke->call simplification failure
Commit: 1f452ac1d784dbeba983aed7986827e3a7cd9c59
https://github.com/llvm/llvm-project/commit/1f452ac1d784dbeba983aed7986827e3a7cd9c59
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2020-08-08 (Sat, 08 Aug 2020)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
Log Message:
-----------
[NFC][SimplifyCFG] Rewrite isCleanupBlockEmpty() to be iterator_range-based
Commit: e492f0e03b01a5e4ec4b6333abb02d303c3e479e
https://github.com/llvm/llvm-project/commit/e492f0e03b01a5e4ec4b6333abb02d303c3e479e
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2020-08-08 (Sat, 08 Aug 2020)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Transforms/SimplifyCFG/invoke_unwind_lifetime.ll
Log Message:
-----------
[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.
Compare: https://github.com/llvm/llvm-project/compare/99cd56906a4d...e492f0e03b01
More information about the All-commits
mailing list