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-02 11:00:53 -07:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-02 14:02:35 +08:00
2022-04-07 12:09:47 +02:00
2022-04-20 15:12:12 +01:00
2022-02-13 08:03:40 -05:00
2022-04-11 13:29:08 -07:00
2022-04-07 12:09:47 +02:00
2022-05-06 14:49:46 +01:00
2022-04-07 12:09:47 +02:00
2022-04-11 13:29:08 -07:00
2022-04-11 13:29:08 -07:00
2022-04-11 13:29:08 -07:00
2022-02-13 08:03:40 -05:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-05-07 13:38:40 +01:00
2022-04-07 12:09:47 +02:00
2022-04-11 13:29:08 -07:00
2022-04-11 13:29:08 -07:00
2022-04-11 13:29:08 -07:00
2022-04-11 13:29:08 -07:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-05-06 14:49:46 +01:00
2022-05-06 14:49:46 +01:00
2022-04-20 15:12:12 +01:00
2022-04-20 15:12:12 +01:00
2022-04-20 15:12:11 +01:00
2022-04-20 15:12:11 +01:00
2022-04-20 15:12:11 +01:00
2022-04-20 15:12:11 +01:00
2022-06-02 11:00:54 -07:00
2022-04-20 15:12:12 +01:00
2022-04-20 11:30:12 -04:00
2022-04-07 12:09:47 +02:00
2022-05-06 14:49:46 +01:00
2022-05-06 14:49:46 +01:00
2022-06-30 17:21:37 +08:00
2022-06-30 17:21:37 +08:00
2022-04-20 11:14:18 +01:00
2022-02-24 15:30:13 -05:00
2022-02-13 08:03:40 -05:00
2022-04-07 12:09:47 +02:00
2022-07-20 14:17:23 +02:00
2022-02-14 13:32:29 +08:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-03-24 09:41:22 +08:00
2022-04-07 12:09:47 +02:00
2022-02-13 08:03:40 -05:00
2022-02-13 08:03:40 -05:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-05-07 14:35:42 +01:00
2022-04-20 12:05:10 +01:00
2022-04-22 11:28:28 +08:00
2022-04-20 10:44:28 +01:00
2022-04-20 10:48:47 +01:00
2022-04-22 11:28:28 +08:00
2022-04-20 11:06:07 +01:00
2022-05-04 20:29:50 +08:00
2022-04-07 12:09:47 +02:00
2022-04-20 10:44:28 +01:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-02-13 08:03:40 -05:00
2022-04-07 12:09:47 +02:00
2022-02-13 08:03:40 -05:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-11 13:29:08 -07:00
2022-04-07 12:09:47 +02:00
2022-02-13 08:03:40 -05:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-02-13 08:03:40 -05:00
2022-02-13 08:03:40 -05:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-07-19 21:20:02 -07:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2022-07-19 16:13:41 +08:00
2022-02-13 08:03:40 -05:00
2022-02-13 08:03:40 -05:00
2022-04-07 12:09:47 +02:00
2022-02-13 08:03:40 -05:00
2022-02-13 08:03:40 -05:00
2022-04-20 10:44:27 +01:00
2022-04-20 10:44:27 +01:00