Adrian Prantl
fb3abba237
[PR27284] Reverse the ownership between DICompileUnit and DISubprogram.
...
Currently each Function points to a DISubprogram and DISubprogram has a
scope field. For member functions the scope is a DICompositeType. DIScopes
point to the DICompileUnit to facilitate type uniquing.
Distinct DISubprograms (with isDefinition: true) are not part of the type
hierarchy and cannot be uniqued. This change removes the subprograms
list from DICompileUnit and instead adds a pointer to the owning compile
unit to distinct DISubprograms. This would make it easy for ThinLTO to
strip unneeded DISubprograms and their transitively referenced debug info.
Motivation
----------
Materializing DISubprograms is currently the most expensive operation when
doing a ThinLTO build of clang.
We want the DISubprogram to be stored in a separate Bitcode block (or the
same block as the function body) so we can avoid having to expensively
deserialize all DISubprograms together with the global metadata. If a
function has been inlined into another subprogram we need to store a
reference the block containing the inlined subprogram.
Attached to https://llvm.org/bugs/show_bug.cgi?id=27284 is a python script
that updates LLVM IR testcases to the new format.
http://reviews.llvm.org/D19034
<rdar://problem/25256815>
llvm-svn: 266446
2016-04-15 15:57:41 +00:00
..
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2015-02-27 21:17:42 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2015-04-16 23:24:18 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2015-04-16 23:24:18 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2015-03-13 18:20:45 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2015-03-13 18:20:45 +00:00
2014-08-19 21:08:27 +00:00
2014-11-06 15:05:51 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2014-08-19 21:08:27 +00:00
2014-11-06 15:05:51 +00:00
2014-11-06 15:05:51 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-11-06 15:05:51 +00:00
2015-03-13 18:20:45 +00:00
2014-11-06 15:05:51 +00:00
2015-02-27 21:17:42 +00:00
2014-08-19 21:08:27 +00:00
2014-11-06 15:05:51 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2015-09-11 03:22:04 +00:00
2014-11-06 15:05:51 +00:00
2015-03-13 18:20:45 +00:00
2015-04-16 23:24:18 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2015-03-13 18:20:45 +00:00
2016-04-15 15:57:41 +00:00
2015-09-11 03:22:04 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2015-11-25 02:54:07 +00:00
2015-09-11 03:22:04 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-08-19 21:08:27 +00:00
2015-02-16 08:38:03 +00:00
2015-02-16 08:38:03 +00:00
2015-03-13 19:30:44 +00:00
2015-09-11 03:22:04 +00:00
2015-02-27 21:17:42 +00:00
2013-09-07 00:25:48 +00:00
2016-04-14 08:47:17 +00:00
2014-08-19 21:08:27 +00:00
2015-02-23 00:01:32 +00:00
2014-08-19 21:08:27 +00:00
2016-01-19 16:34:31 +00:00
2015-12-14 19:30:32 +00:00
2014-08-19 21:08:27 +00:00
2015-09-11 03:22:04 +00:00
2015-12-10 12:56:35 +00:00
2016-04-15 15:57:41 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2015-06-29 23:03:47 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-01-08 22:38:29 +00:00
2016-04-15 15:57:41 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2016-04-15 15:57:41 +00:00
2014-08-19 21:08:27 +00:00
2015-02-16 09:18:13 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-04-29 16:38:44 +00:00
2015-03-09 23:08:44 +00:00
2015-02-27 19:29:02 +00:00
2015-07-09 07:42:48 +00:00
2015-07-09 07:42:48 +00:00
2015-07-09 07:42:48 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 19:29:02 +00:00
2015-06-04 07:21:42 +00:00
2014-01-13 22:37:35 +00:00
2015-09-03 18:06:44 +00:00
2015-02-16 08:41:08 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2016-04-08 06:45:19 +00:00
2016-04-07 12:32:19 +00:00
2014-12-15 19:07:53 +00:00
2015-09-03 22:27:42 +00:00
2014-09-05 22:30:32 +00:00
2015-02-27 21:17:42 +00:00
2015-02-23 07:13:52 +00:00
2015-02-11 07:43:58 +00:00
2015-09-11 03:22:04 +00:00
2014-05-07 22:57:20 +00:00
2014-05-07 22:57:20 +00:00
2015-09-11 03:22:04 +00:00
2014-05-07 22:57:20 +00:00
2014-05-07 22:57:20 +00:00
2014-01-22 19:21:33 +00:00
2015-02-16 09:37:35 +00:00
2015-09-11 03:22:04 +00:00
2014-12-09 18:33:57 +00:00
2014-06-27 18:19:56 +00:00
2015-01-06 22:55:16 +00:00
2014-12-10 01:17:08 +00:00
2014-12-10 01:17:08 +00:00
2014-12-10 01:17:08 +00:00
2014-12-10 01:17:08 +00:00
2014-12-10 01:17:08 +00:00
2014-12-10 01:38:28 +00:00
2014-12-10 01:38:28 +00:00
2014-12-10 01:38:28 +00:00
2014-12-10 01:38:28 +00:00
2014-12-10 02:36:41 +00:00
2014-12-10 02:36:41 +00:00
2014-12-10 02:36:41 +00:00
2014-12-10 02:36:41 +00:00
2015-02-11 09:13:09 +00:00
2015-02-16 05:41:53 +00:00
2015-02-16 05:41:53 +00:00
2015-02-16 05:41:53 +00:00
2015-02-16 05:41:55 +00:00
2015-03-02 06:00:02 +00:00
2015-03-02 06:33:51 +00:00
2015-03-02 06:33:51 +00:00
2015-03-02 09:34:59 +00:00
2015-03-02 09:35:03 +00:00
2015-03-02 09:35:03 +00:00
2015-02-16 06:04:53 +00:00
2016-03-31 23:56:58 +00:00
2015-08-03 17:26:41 +00:00
2015-08-03 17:26:41 +00:00
2015-08-03 17:26:41 +00:00
2015-08-03 17:26:41 +00:00
2015-08-03 17:26:41 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-07-31 18:58:39 +00:00
2015-07-31 18:58:39 +00:00
2015-07-31 18:58:39 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-08-28 20:26:49 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-06-02 17:13:25 +00:00
2015-08-31 21:36:14 +00:00
2015-09-11 03:22:04 +00:00
2015-04-29 16:38:44 +00:00
2015-04-29 16:38:44 +00:00
2015-04-29 16:38:44 +00:00
2015-04-29 16:38:44 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 19:29:02 +00:00
2014-12-09 23:51:14 +00:00
2015-09-03 15:41:38 +00:00
2015-03-02 05:25:09 +00:00
2015-06-17 20:52:32 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-04-06 02:06:40 +00:00
2014-12-15 19:07:53 +00:00
2014-12-15 19:07:53 +00:00
2014-12-15 19:07:53 +00:00
2014-12-11 01:34:46 +00:00
2014-12-15 19:07:53 +00:00
2014-12-15 19:07:53 +00:00
2014-12-15 19:07:53 +00:00
2014-12-15 19:07:53 +00:00
2014-12-10 02:10:35 +00:00
2014-12-10 00:43:17 +00:00
2015-06-15 22:16:51 +00:00
2015-06-15 22:16:51 +00:00
2015-01-13 21:10:44 +00:00
2015-09-03 16:18:32 +00:00
2014-08-19 21:30:15 +00:00
2014-08-19 21:30:15 +00:00
2014-08-19 21:30:15 +00:00
2014-08-19 21:30:15 +00:00
2014-08-19 21:30:15 +00:00
2014-08-19 21:30:15 +00:00
2014-08-19 21:30:15 +00:00
2014-08-19 21:30:15 +00:00
2014-08-19 21:30:15 +00:00
2014-08-19 21:30:15 +00:00
2015-09-11 03:22:04 +00:00
2014-08-19 21:30:15 +00:00
2015-09-11 03:22:04 +00:00
2015-09-11 03:22:04 +00:00
2015-09-11 03:22:04 +00:00
2015-09-11 03:22:04 +00:00
2015-09-11 03:22:04 +00:00
2014-08-19 21:30:15 +00:00
2015-01-14 18:25:45 +00:00
2015-03-15 00:45:51 +00:00
2015-04-29 16:38:44 +00:00
2016-04-15 15:57:41 +00:00
2016-04-06 02:06:40 +00:00
2014-08-19 21:08:27 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2014-12-15 19:07:53 +00:00
2016-03-25 00:56:13 +00:00
2015-02-27 21:17:42 +00:00
2015-09-11 03:22:04 +00:00
2014-05-07 22:57:20 +00:00
2014-05-07 22:57:20 +00:00
2015-09-11 03:22:04 +00:00
2014-05-07 22:57:20 +00:00
2014-05-07 22:57:20 +00:00
2014-08-19 21:08:27 +00:00
2014-12-09 19:10:03 +00:00
2016-03-30 22:17:28 +00:00
2016-03-30 18:15:08 +00:00
2014-08-19 21:08:27 +00:00
2015-11-11 21:57:16 +00:00
2014-08-19 21:08:27 +00:00
2015-11-25 02:54:07 +00:00
2015-01-06 22:55:16 +00:00
2015-02-27 21:17:42 +00:00
2015-03-10 06:34:57 +00:00
2015-03-13 18:20:45 +00:00
2015-09-11 03:22:04 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00