Nicolai Hähnle
1ddc51d89d
Inliner: don't mark call sites as 'nounwind' if that would be redundant
...
When F calls G calls H, G is nounwind, and G is inlined into F, then the
inlined call-site to H should be effectively nounwind so as not to lose
information during inlining.
If H itself is nounwind (which often happens when H is an intrinsic), we
no longer mark the callsite explicitly as nounwind. Previously, there
were cases where the inlined call-site of H differs from a pre-existing
call-site of H in F *only* in the explicitly added nounwind attribute,
thus preventing common subexpression elimination.
v2:
- just check CI->doesNotThrow
v3 (resubmit after revert at 3443788087 ):
- update Clang tests
Differential Revision: https://reviews.llvm.org/D129860
2022-07-20 14:17:23 +02:00
..
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-04-21 10:59:11 +08:00
2022-04-21 10:59:11 +08:00
2022-07-19 07:25:04 -07:00
2022-06-14 14:23:46 +08:00
2022-07-18 10:41:29 -07:00
2022-04-21 10:59:11 +08:00
2022-04-21 10:59:11 +08:00
2022-04-21 10:59:11 +08:00
2022-07-18 10:41:29 -07:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-04-21 10:59:11 +08:00
2022-04-21 10:59:11 +08:00
2022-07-07 10:47:09 +08:00
2022-04-19 11:04:24 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-07-18 13:14:52 +02:00
2022-06-27 10:54:56 +08:00
2022-07-15 10:18:17 +02:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-03-07 11:23:02 +01:00
2022-03-07 11:23:02 +01:00
2022-03-07 11:23:02 +01:00
2022-06-14 14:23:46 +08:00
2022-06-27 10:54:56 +08:00
2022-06-27 10:54:56 +08:00
2022-06-27 10:54:56 +08:00
2022-06-14 14:23:46 +08:00
2022-06-27 10:54:56 +08:00
2022-06-27 10:54:56 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-03-07 11:23:02 +01:00
2022-06-14 14:23:46 +08:00
2022-03-23 11:03:26 -07:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-04-21 10:59:11 +08:00
2022-04-21 10:59:11 +08:00
2022-06-14 14:23:46 +08:00
2022-04-21 10:59:11 +08:00
2022-06-14 14:23:46 +08:00
2022-07-20 14:17:23 +02:00
2022-05-05 15:13:27 +08:00
2022-06-14 14:23:46 +08:00
2022-05-05 15:13:27 +08:00
2022-04-19 11:04:24 +08:00
2022-05-05 15:13:27 +08:00
2022-05-05 15:13:27 +08:00
2022-07-12 10:39:38 -07:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-27 12:09:13 -07:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-27 10:54:56 +08:00
2022-06-27 10:54:56 +08:00
2022-06-27 10:54:56 +08:00
2022-06-27 10:54:56 +08:00
2022-06-27 10:54:56 +08:00
2022-06-27 10:54:56 +08:00
2022-06-27 10:54:56 +08:00
2022-06-30 11:37:41 +08:00
2022-06-30 11:37:41 +08:00
2022-06-30 11:15:40 +08:00
2022-06-30 11:15:40 +08:00
2022-06-27 10:54:56 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-04-21 10:59:11 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-06-14 14:23:46 +08:00
2022-05-05 15:15:09 +08:00