Peter Collingbourne
d4bff30370
DI: Reverse direction of subprogram -> function edge.
...
Previously, subprograms contained a metadata reference to the function they
described. Because most clients need to get or set a subprogram for a given
function rather than the other way around, this created unneeded inefficiency.
For example, many passes needed to call the function llvm::makeSubprogramMap()
to build a mapping from functions to subprograms, and the IR linker needed to
fix up function references in a way that caused quadratic complexity in the IR
linking phase of LTO.
This change reverses the direction of the edge by storing the subprogram as
function-level metadata and removing DISubprogram's function field.
Since this is an IR change, a bitcode upgrade has been provided.
Fixes PR23367. An upgrade script for textual IR for out-of-tree clients is
attached to the PR.
Differential Revision: http://reviews.llvm.org/D14265
llvm-svn: 252219
2015-11-05 22:03:56 +00:00
..
2015-09-16 05:34:32 +00:00
2015-09-16 05:34:32 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-09-16 05:34:32 +00:00
2015-09-16 05:34:32 +00:00
2015-04-23 18:30:38 +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
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-06-17 20:52:32 +00:00
2015-09-16 05:34:32 +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
2015-04-23 18:30:38 +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
2015-08-31 07:51:36 +00:00
2015-08-30 07:50:35 +00:00
2015-09-11 03:22:04 +00:00
2015-04-16 23:24:18 +00:00
2015-04-23 18:30:38 +00:00
2015-04-23 18:30:38 +00:00
2015-04-23 18:30:38 +00:00
2015-04-23 23:05:08 +00:00
2015-04-23 23:05:08 +00:00
2015-04-23 23:05:08 +00:00
2015-04-23 18:30:38 +00:00
2015-04-16 23:24:18 +00:00
2015-07-14 17:25:20 +00:00
2015-06-11 06:21:25 +00:00
2015-04-23 18:30:38 +00:00
2015-04-23 18:30:38 +00:00
2015-10-15 05:28:38 +00:00
2015-04-23 18:30:38 +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
2015-10-28 22:25:52 +00:00
2015-10-28 19:58:02 +00:00
2015-04-23 18:30:38 +00:00
2015-10-28 23:43:00 +00:00
2015-09-08 22:14:58 +00:00
2015-04-16 23:24:18 +00:00
2015-10-28 03:26:45 +00:00
2015-11-05 22:03:56 +00:00
2015-04-09 23:54:37 +00:00
2015-04-09 23:54:37 +00:00
2015-04-23 16:45:24 +00:00
2015-04-20 00:01:30 +00:00
2015-07-28 20:38:29 +00:00
2015-06-17 20:52:32 +00:00
2015-04-10 03:39:00 +00:00
2015-07-24 01:07:50 +00:00
2015-07-24 01:07:50 +00:00
2015-07-24 01:07:50 +00:00
2015-07-24 01:07:50 +00:00
2015-07-24 01:07:50 +00:00
2015-07-24 01:07:50 +00:00
2015-07-24 01:07:50 +00:00
2015-07-24 01:07:50 +00:00
2015-07-24 01:07:50 +00:00
2015-07-24 01:07:50 +00:00
2015-06-17 20:52:32 +00:00
2015-07-24 01:07:50 +00:00
2015-04-04 02:26:47 +00:00
2015-07-24 01:07:50 +00:00
2015-07-24 01:07:50 +00:00
2015-07-25 00:48:08 +00:00
2015-07-24 01:07:50 +00:00
2015-07-24 01:07:50 +00:00
2015-04-20 20:29:40 +00:00
2015-04-20 20:29:40 +00:00
2015-05-29 17:13:25 +00:00
2015-08-20 01:18:20 +00:00
2015-08-13 17:40:44 +00:00
2015-06-17 20:52:32 +00:00
2015-06-18 22:38:20 +00:00
2015-03-25 19:36:23 +00:00
2015-04-23 18:30:38 +00:00
2015-09-16 05:34:32 +00:00
2015-10-28 03:26:45 +00:00
2015-04-10 15:05:02 +00:00
2015-04-12 17:18:56 +00:00
2015-06-30 19:45:45 +00:00
2015-07-15 08:23:05 +00:00
2015-03-19 02:40:56 +00:00
2015-08-05 07:45:28 +00:00
2015-04-23 16:45:24 +00:00
2015-04-15 15:59:37 +00:00
2015-04-23 16:45:24 +00:00
2015-08-28 17:31:28 +00:00
2015-03-31 20:35:26 +00:00
2015-03-31 20:56:09 +00:00
2015-09-28 08:02:14 +00:00
2015-05-08 14:04:54 +00:00
2015-06-16 16:01:15 +00:00
2015-09-06 04:17:30 +00:00
2015-04-01 00:40:48 +00:00
2015-11-02 14:01:11 +00:00
2015-09-02 16:52:37 +00:00
2015-04-11 00:33:08 +00:00
2015-04-23 18:30:38 +00:00
2015-08-10 19:01:27 +00:00
2015-07-12 00:37:44 +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
2015-07-14 22:26:06 +00:00
2015-07-14 20:02:02 +00:00
2015-07-14 20:02:02 +00:00
2015-05-25 15:49:26 +00:00
2015-09-18 17:41:00 +00:00
2015-07-12 00:37:44 +00:00
2015-07-14 22:53:11 +00:00
2015-04-16 23:24:18 +00:00
2015-07-14 22:26:06 +00:00
2015-04-23 18:30:38 +00:00
2015-05-07 18:24:05 +00:00
2015-07-14 20:02:02 +00:00
2015-03-26 00:57:33 +00:00
2015-09-30 17:29:03 +00:00
2015-04-16 23:24:18 +00:00
2015-11-05 22:03:56 +00:00
2015-06-17 20:52:32 +00:00
2015-07-29 14:31:57 +00:00
2015-11-05 22:03:56 +00:00
2015-08-31 23:15:04 +00:00
2015-10-14 20:45:00 +00:00
2015-04-22 11:32:25 +00:00
2015-06-17 20:52:32 +00:00
2015-03-23 08:22:43 +00:00
2015-09-03 22:37:44 +00:00
2015-07-12 02:33:57 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-09-05 00:02:59 +00:00
2015-04-23 18:30:38 +00:00
2015-08-10 19:01:27 +00:00
2015-04-23 18:30:38 +00:00
2015-04-23 18:30:38 +00:00
2015-04-23 18:30:38 +00:00
2015-04-16 23:24:18 +00:00
2015-04-23 18:30:38 +00:00
2015-08-10 19:01:27 +00:00
2015-08-30 22:12:50 +00:00
2015-10-28 03:20:10 +00:00
2015-10-28 03:26:45 +00:00
2015-07-14 20:02:02 +00:00
2015-04-16 23:24:18 +00:00
2015-04-23 18:30:38 +00:00
2015-08-10 21:27:03 +00:00
2015-04-23 18:30:38 +00:00
2015-04-23 18:30:38 +00:00
2015-04-27 19:57:34 +00:00
2015-05-06 15:40:46 +00:00
2015-07-13 22:58:19 +00:00
2015-07-02 19:01:22 +00:00
2015-07-13 22:58:19 +00:00
2015-07-21 21:40:17 +00:00
2015-07-14 20:02:02 +00:00
2015-04-16 23:24:18 +00:00
2015-09-02 21:03:28 +00:00
2015-09-03 21:12:15 +00:00
2015-11-05 22:03:56 +00:00
2015-04-16 23:24:18 +00:00
2015-08-10 19:01:27 +00:00
2015-04-03 13:48:24 +00:00
2015-06-25 15:17:40 +00:00
2015-07-20 15:43:21 +00:00
2015-05-16 01:02:12 +00:00
2015-05-21 20:48:49 +00:00
2015-10-28 23:03:45 +00:00
2015-09-21 15:59:46 +00:00
2015-04-03 10:02:21 +00:00
2015-07-16 21:14:07 +00:00
2015-08-13 17:40:44 +00:00
2015-04-23 18:30:38 +00:00
2015-07-05 06:03:51 +00:00
2015-07-14 20:02:02 +00:00
2015-08-24 23:48:28 +00:00
2015-08-21 21:34:24 +00:00
2015-07-14 20:02:02 +00:00
2015-04-27 19:57:34 +00:00
2015-04-27 19:57:34 +00:00
2015-05-21 19:32:49 +00:00
2015-04-16 23:24:18 +00:00
2015-11-02 14:01:11 +00:00
2015-08-20 03:02:02 +00:00