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-03-03 15:25:32 -05:00
2021-08-10 11:51:31 -07:00
2021-10-29 12:32:03 -07:00
2022-06-16 09:14:22 -07:00
2022-06-24 16:27:26 +02:00
2022-01-06 14:23:51 +01:00
2022-06-27 09:42:17 +02:00
2021-07-09 20:57:44 +02:00
2021-10-25 14:10:58 -07:00
2022-03-17 15:40:24 -07:00
2022-06-20 16:53:31 -07:00
2021-11-15 14:44:53 -08:00
2022-07-12 09:17:54 -07:00
2022-07-15 10:18:17 +02:00
2022-03-22 13:48:48 -07:00
2021-10-08 15:27:30 -07:00
2022-02-14 18:35:52 +01:00
2022-07-15 10:18:17 +02:00
2021-11-09 11:03:29 +08:00
2022-03-18 14:16:29 -07:00
2021-12-16 09:59:50 +01:00
2021-10-29 12:32:03 -07:00
2021-11-25 07:21:42 -05:00
2021-11-09 11:03:29 +08:00
2021-11-09 11:03:29 +08:00
2022-06-27 09:42:17 +02:00
2022-01-13 14:48:38 -08:00
2022-01-13 14:48:38 -08:00
2021-07-21 08:47:45 -07:00
2021-10-18 16:48:10 -07:00
2022-01-06 14:23:51 +01:00
2022-06-14 08:06:52 -07:00
2021-10-21 20:30:01 +02:00
2021-12-16 09:59:50 +01:00
2021-11-09 11:03:29 +08:00
2022-06-30 11:49:17 +02:00
2022-04-26 20:20:10 +08:00
2022-04-25 18:13:23 +01:00
2022-04-26 20:20:10 +08:00
2021-08-10 11:51:31 -07:00
2022-01-13 12:04:49 +01:00
2021-11-09 11:03:29 +08:00
2021-09-02 17:35:06 +00:00
2021-09-02 17:35:06 +00:00
2021-09-02 17:35:06 +00:00
2021-09-02 17:35:06 +00:00
2021-09-02 17:35:06 +00:00
2021-11-09 11:03:29 +08:00
2021-10-18 13:56:48 -07:00
2022-03-07 23:51:09 -08:00
2021-10-07 08:33:25 -07:00
2021-11-09 11:03:29 +08:00
2022-07-01 02:37:35 -04:00
2022-07-08 21:32:39 -07:00
2021-10-05 14:01:25 -07:00
2021-09-08 11:58:03 -07:00
2022-06-23 10:57:46 -07:00
2022-05-26 11:37:19 +01:00
2021-09-02 17:35:06 +00:00
2021-11-09 11:03:29 +08:00
2021-11-09 11:03:29 +08:00
2021-11-09 11:03:29 +08:00
2021-11-09 11:03:29 +08:00
2021-11-09 11:03:29 +08:00
2022-04-26 20:20:10 +08:00
2021-07-09 09:47:03 +02:00
2022-03-07 23:51:09 -08:00
2022-03-07 23:51:09 -08:00
2021-11-09 11:03:29 +08:00
2022-07-20 14:17:23 +02:00
2022-07-20 14:17:23 +02:00
2022-07-20 14:17:23 +02:00
2022-07-20 14:17:23 +02:00
2021-10-14 17:41:41 -07:00
2021-11-09 11:03:29 +08:00
2022-04-12 11:05:33 +02:00
2021-08-10 11:51:31 -07:00
2022-06-24 10:06:43 -07:00
2021-08-10 11:51:31 -07:00
2021-08-10 11:51:31 -07:00
2021-11-09 11:03:29 +08:00
2021-07-20 19:52:41 +02:00
2021-10-12 10:42:41 -07:00
2022-01-31 09:31:34 +01:00
2022-05-09 15:08:09 -07:00
2022-01-19 12:05:27 +01:00