Fangrui Song
b3b970744d
[ThinLTO] Add Visibility bits to GlobalValueSummary::GVFlags
...
Imported functions and variable get the visibility from the module supplying the
definition. However, non-imported definitions do not get the visibility from
(ELF) the most constraining visibility among all modules (Mach-O) the visibility
of the prevailing definition.
This patch
* adds visibility bits to GlobalValueSummary::GVFlags
* computes the result visibility and propagates it to all definitions
Protected/hidden can imply dso_local which can enable some optimizations (this
is stronger than GVFlags::DSOLocal because the implied dso_local can be
leveraged for ELF -shared while default visibility dso_local has to be cleared
for ELF -shared).
Note: we don't have summaries for declarations, so for ELF if a declaration has
the most constraining visibility, the result visibility may not be that one.
Differential Revision: https://reviews.llvm.org/D92900
2021-01-27 10:43:51 -08:00
..
2020-12-09 13:13:58 -08:00
2019-05-29 16:50:46 +00:00
2019-09-10 23:15:38 +00:00
2019-04-17 17:38:09 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2020-01-27 07:55:05 -08:00
2020-07-28 21:21:58 -07:00
2019-09-10 23:15:38 +00:00
2020-07-04 18:12:04 +03:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2020-07-14 12:16:57 -07:00
2019-09-10 23:15:38 +00:00
2020-10-27 12:37:19 -07:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2020-10-12 10:11:56 -07:00
2020-01-27 07:55:05 -08:00
2020-01-27 07:55:05 -08:00
2020-01-27 07:55:05 -08:00
2019-10-30 17:59:08 -07:00
2020-06-24 10:51:24 -07:00
2020-01-27 07:55:05 -08:00
2020-11-02 09:06:36 -08:00
2020-01-27 07:55:05 -08:00
2020-01-27 07:55:05 -08:00
2020-01-27 07:55:05 -08:00
2020-01-27 07:55:05 -08:00
2020-03-09 14:05:15 +03:00
2019-09-10 23:15:38 +00:00
2019-12-02 13:04:43 -08:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2020-05-28 10:33:05 -07:00
2019-11-08 17:02:01 -08:00
2019-09-10 23:15:38 +00:00
2020-01-15 19:29:01 +03:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2020-05-04 18:31:09 -07:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2021-01-27 10:43:51 -08:00
2019-09-10 23:15:38 +00:00
2019-11-19 12:46:09 +03:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-11-07 15:13:35 +03:00
2019-11-01 13:57:01 -07:00
2019-09-10 23:15:38 +00:00
2020-08-20 12:13:43 +03:00
2020-09-02 14:40:41 -07:00
2020-01-15 19:29:01 +03:00
2020-12-02 14:56:43 +01:00
2020-04-07 15:46:01 -07:00
2020-04-07 15:46:01 -07:00
2019-09-10 23:15:38 +00:00
2020-04-07 15:46:01 -07:00
2020-04-07 15:46:01 -07:00
2020-04-07 15:46:01 -07:00
2020-04-07 15:46:01 -07:00
2020-04-07 15:46:01 -07:00
2020-04-07 15:46:01 -07:00
2020-04-07 15:46:01 -07:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2020-08-26 10:15:00 -07:00
2019-12-26 18:23:08 -05:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-06-17 09:51:07 +00:00
2019-09-10 23:15:38 +00:00
2021-01-27 10:43:51 -08:00
2019-09-10 23:15:38 +00:00
2019-11-07 15:13:35 +03:00
2020-08-26 10:15:00 -07:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2020-03-01 19:35:58 +02:00
2019-09-10 23:15:38 +00:00
2020-07-14 12:16:57 -07:00
2019-09-10 23:15:38 +00:00
2020-12-02 13:13:58 -08:00
2019-10-22 09:24:12 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2019-04-17 17:38:09 +00:00
2019-08-28 01:55:06 +00:00
2019-09-10 23:15:38 +00:00
2020-01-30 10:12:48 -08:00
2019-09-10 23:15:38 +00:00
2019-04-17 17:38:09 +00:00
2020-01-17 10:08:42 -08:00
2020-01-14 10:54:03 -08:00
2019-09-10 23:15:38 +00:00
2019-09-10 23:15:38 +00:00
2020-07-14 12:16:57 -07:00
2021-01-27 10:43:51 -08:00
2021-01-27 10:43:51 -08:00
2019-10-22 09:24:12 +00:00
2020-08-26 10:15:00 -07:00
2020-08-26 10:15:00 -07:00
2019-12-04 14:59:27 -08:00
2019-12-04 14:59:27 -08:00
2019-12-05 16:33:54 -08:00