Adrian Prantl
02474a32eb
Move the complex address expression out of DIVariable and into an extra
...
argument of the llvm.dbg.declare/llvm.dbg.value intrinsics.
Previously, DIVariable was a variable-length field that has an optional
reference to a Metadata array consisting of a variable number of
complex address expressions. In the case of OpPiece expressions this is
wasting a lot of storage in IR, because when an aggregate type is, e.g.,
SROA'd into all of its n individual members, the IR will contain n copies
of the DIVariable, all alike, only differing in the complex address
reference at the end.
By making the complex address into an extra argument of the
dbg.value/dbg.declare intrinsics, all of the pieces can reference the
same variable and the complex address expressions can be uniqued across
the CU, too.
Down the road, this will allow us to move other flags, such as
"indirection" out of the DIVariable, too.
The new intrinsics look like this:
declare void @llvm.dbg.declare(metadata %storage, metadata %var, metadata %expr)
declare void @llvm.dbg.value(metadata %storage, i64 %offset, metadata %var, metadata %expr)
This patch adds a new LLVM-local tag to DIExpressions, so we can detect
and pretty-print DIExpression metadata nodes.
What this patch doesn't do:
This patch does not touch the "Indirect" field in DIVariable; but moving
that into the expression would be a natural next step.
http://reviews.llvm.org/D4919
rdar://problem/17994491
Thanks to dblaikie and dexonsmith for reviewing this patch!
Note: I accidentally committed a bogus older version of this patch previously.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218787 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-01 18:55:02 +00:00
..
2014-06-09 22:42:55 +00:00
2013-03-12 16:27:52 +00:00
2011-06-01 16:13:09 +00:00
2009-09-08 23:54:48 +00:00
2010-02-09 06:41:03 +00:00
2014-04-12 00:59:48 +00:00
2011-06-17 06:36:20 +00:00
2014-02-13 14:44:26 +00:00
2013-07-13 20:38:47 +00:00
2009-09-08 23:54:48 +00:00
2012-07-02 19:09:46 +00:00
2014-06-25 12:41:52 +00:00
2010-09-30 23:57:10 +00:00
2009-09-08 23:54:48 +00:00
2014-07-30 22:51:54 +00:00
2009-09-08 23:54:48 +00:00
2014-07-15 03:00:41 +00:00
2009-09-08 23:54:48 +00:00
2014-05-28 18:15:43 +00:00
2009-09-08 23:54:48 +00:00
2009-09-08 23:54:48 +00:00
2012-02-01 23:20:51 +00:00
2012-07-02 12:47:22 +00:00
2014-10-01 18:55:02 +00:00
2014-02-13 14:44:26 +00:00
2012-07-02 12:47:22 +00:00
2010-04-15 04:31:42 +00:00
2014-06-25 12:41:52 +00:00
2014-08-28 03:41:28 +00:00
2013-07-14 06:24:09 +00:00
2014-10-01 18:55:02 +00:00
2013-07-14 06:24:09 +00:00
2010-05-03 22:36:46 +00:00
2014-07-01 18:53:31 +00:00
2014-10-01 18:55:02 +00:00
2014-10-01 18:55:02 +00:00
2010-02-01 22:40:09 +00:00
2010-04-21 20:57:54 +00:00
2014-07-24 22:15:28 +00:00
2014-02-13 14:44:26 +00:00
2012-06-08 23:15:12 +00:00
2010-05-21 00:52:33 +00:00
2014-10-01 18:55:02 +00:00
2014-10-01 18:55:02 +00:00
2014-10-01 18:55:02 +00:00
2014-10-01 18:55:02 +00:00
2014-02-13 14:44:26 +00:00
2014-10-01 18:55:02 +00:00
2010-07-15 18:45:27 +00:00
2014-10-01 18:55:02 +00:00
2014-06-13 14:24:07 +00:00
2014-10-01 18:55:02 +00:00
2014-10-01 18:55:02 +00:00
2012-07-16 19:35:43 +00:00
2014-09-02 13:54:53 +00:00
2013-08-23 20:39:19 +00:00
2011-11-08 01:25:24 +00:00
2013-02-04 15:19:18 +00:00
2011-12-07 00:50:54 +00:00
2012-01-12 15:31:55 +00:00
2014-10-01 03:19:43 +00:00
2012-07-15 20:27:43 +00:00
2012-07-14 22:26:05 +00:00
2012-07-17 09:07:37 +00:00
2014-08-02 00:50:10 +00:00
2014-10-01 18:55:02 +00:00
2014-10-01 18:55:02 +00:00
2014-10-01 18:55:02 +00:00
2014-08-29 21:53:01 +00:00
2014-06-09 14:20:23 +00:00
2014-06-09 12:32:53 +00:00
2014-09-03 07:11:34 +00:00
2014-09-11 17:50:20 +00:00
2014-07-15 16:24:24 +00:00
2014-07-16 22:40:28 +00:00
2014-08-21 09:43:43 +00:00
2013-10-24 06:50:17 +00:00
2014-07-30 22:51:54 +00:00
2014-08-20 19:58:59 +00:00
2012-08-10 23:43:32 +00:00
2014-08-07 09:41:19 +00:00
2013-12-13 18:37:10 +00:00
2014-03-31 22:14:04 +00:00
2014-04-19 22:45:44 +00:00
2014-04-01 08:13:07 +00:00
2014-06-03 21:01:39 +00:00
2014-07-01 18:53:31 +00:00
2014-07-01 18:53:31 +00:00
2014-07-01 18:53:31 +00:00
2014-07-01 18:53:31 +00:00
2014-07-14 15:31:13 +00:00
2014-07-01 18:53:31 +00:00
2014-09-25 17:27:43 +00:00
2014-09-02 22:16:29 +00:00
2014-07-01 18:53:31 +00:00
2014-09-23 20:59:25 +00:00
2014-07-01 18:53:31 +00:00
2014-07-14 16:28:13 +00:00
2014-07-01 18:53:31 +00:00
2014-05-20 19:25:04 +00:00
2014-04-10 00:27:43 +00:00
2014-05-27 03:42:20 +00:00
2014-09-06 10:00:01 +00:00
2014-09-06 10:00:01 +00:00
2014-05-31 00:52:23 +00:00
2014-04-09 23:28:11 +00:00
2014-03-27 09:45:08 +00:00
2014-08-18 11:59:06 +00:00
2014-06-18 14:04:37 +00:00
2014-08-14 17:13:33 +00:00
2014-05-12 07:18:51 +00:00
2014-07-02 14:11:05 +00:00
2014-09-25 23:48:47 +00:00
2014-09-30 12:15:52 +00:00
2014-07-28 13:46:45 +00:00
2014-08-06 15:40:34 +00:00
2014-06-18 16:51:10 +00:00
2014-08-21 13:28:02 +00:00
2014-09-11 16:51:10 +00:00
2014-08-18 11:59:06 +00:00
2014-08-13 00:30:05 +00:00
2014-08-29 08:46:04 +00:00
2014-09-30 12:15:52 +00:00
2014-07-28 13:46:45 +00:00
2014-09-26 09:48:50 +00:00
2014-08-29 08:46:04 +00:00
2014-09-30 12:15:52 +00:00
2014-09-26 09:48:50 +00:00
2014-08-29 08:46:04 +00:00
2014-07-28 13:46:45 +00:00
2014-09-30 12:15:52 +00:00
2014-09-26 09:48:50 +00:00
2014-08-13 10:46:00 +00:00
2014-08-29 08:46:04 +00:00
2014-09-15 10:35:41 +00:00
2014-09-30 02:52:28 +00:00
2014-06-25 12:41:52 +00:00
2014-09-06 10:00:01 +00:00
2014-09-06 10:00:01 +00:00
2014-09-25 00:26:15 +00:00
2014-09-15 10:35:41 +00:00
2014-06-25 17:41:58 +00:00
2014-09-15 10:35:41 +00:00
2013-07-14 06:24:09 +00:00
2014-06-25 17:41:58 +00:00
2014-06-25 17:41:58 +00:00
2014-09-30 02:52:28 +00:00
2014-01-16 06:31:20 +00:00
2014-09-30 02:52:28 +00:00
2014-07-23 07:08:53 +00:00
2014-04-22 07:40:34 +00:00
2014-04-19 13:47:43 +00:00
2011-03-04 20:03:14 +00:00
2014-07-03 07:04:38 +00:00
2013-08-27 13:46:45 +00:00
2011-06-09 15:39:01 +00:00
2014-08-06 18:09:15 +00:00
2014-03-26 12:52:28 +00:00
2014-03-28 21:40:47 +00:00
2014-05-05 16:47:07 +00:00
2013-07-14 06:24:09 +00:00
2014-06-06 21:08:55 +00:00
2014-06-13 17:29:39 +00:00
2014-06-13 17:29:39 +00:00
2013-06-24 09:51:30 +00:00
2009-09-08 23:54:48 +00:00
2014-06-13 14:24:07 +00:00
2014-09-16 22:36:07 +00:00
2014-05-13 15:42:45 +00:00
2014-04-12 00:59:48 +00:00
2013-07-14 06:24:09 +00:00
2014-09-19 01:14:56 +00:00
2014-06-27 18:19:56 +00:00
2014-09-20 21:18:43 +00:00
2013-02-22 19:53:30 +00:00
2014-05-30 23:17:53 +00:00
2014-05-15 15:18:15 +00:00
2014-05-15 15:18:15 +00:00
2014-07-15 00:02:32 +00:00
2014-05-08 17:44:04 +00:00
2014-05-15 15:45:31 +00:00
2014-08-13 16:09:40 +00:00
2014-07-19 07:52:58 +00:00
2014-09-14 22:41:37 +00:00
2014-08-16 00:29:44 +00:00
2009-09-15 01:22:01 +00:00
2013-08-04 12:05:16 +00:00
2013-03-29 21:54:00 +00:00
2014-05-30 15:00:45 +00:00
2014-04-02 22:21:01 +00:00
2014-05-05 18:10:15 +00:00
2014-07-15 03:00:39 +00:00
2014-07-14 22:57:27 +00:00
2014-09-05 18:03:38 +00:00
2014-08-20 18:03:00 +00:00
2014-07-17 11:12:12 +00:00
2014-06-12 16:04:47 +00:00
2014-10-01 18:55:02 +00:00
2014-10-01 18:55:02 +00:00
2014-07-23 07:08:53 +00:00
2014-07-30 22:51:54 +00:00
2014-07-30 22:51:54 +00:00
2014-01-14 15:22:47 +00:00
2014-09-09 01:13:36 +00:00
2014-06-27 18:19:56 +00:00
2014-06-27 18:19:56 +00:00
2014-09-15 18:32:58 +00:00
2014-09-15 10:35:41 +00:00
2014-04-26 02:58:04 +00:00
2009-09-08 23:54:48 +00:00
2012-10-17 23:45:54 +00:00
2014-09-14 22:41:37 +00:00
2014-04-18 10:45:33 +00:00
2014-06-13 12:05:06 +00:00
2014-06-12 20:12:34 +00:00
2014-06-13 00:45:11 +00:00
2014-06-16 23:58:24 +00:00
2014-08-19 19:44:10 +00:00
2014-06-17 21:55:43 +00:00
2014-08-19 19:44:13 +00:00
2014-06-12 23:27:57 +00:00
2014-08-19 19:44:10 +00:00
2014-06-23 21:55:36 +00:00
2014-06-23 21:55:36 +00:00
2014-06-25 20:06:12 +00:00
2014-06-23 21:55:44 +00:00
2014-06-23 21:55:40 +00:00
2014-06-23 21:55:36 +00:00
2014-06-13 02:21:58 +00:00
2014-07-30 22:51:54 +00:00
2014-08-19 19:44:10 +00:00
2014-09-08 20:24:10 +00:00
2013-11-15 19:09:27 +00:00
2014-07-03 15:06:47 +00:00
2012-02-22 19:06:13 +00:00
2014-05-07 22:52:58 +00:00
2014-07-17 17:14:35 +00:00
2014-09-11 16:08:44 +00:00
2013-01-06 19:00:15 +00:00
2014-05-19 19:45:57 +00:00
2011-11-26 03:38:02 +00:00
2013-09-19 21:58:20 +00:00
2014-10-01 18:55:02 +00:00
2014-08-07 09:41:19 +00:00
2014-06-25 12:41:52 +00:00
2014-08-28 20:13:31 +00:00
2013-09-02 12:00:53 +00:00
2014-06-12 10:53:48 +00:00
2014-06-19 10:29:41 +00:00
2014-07-18 13:01:25 +00:00
2009-09-08 23:54:48 +00:00
2014-07-24 22:15:28 +00:00
2014-07-24 19:53:33 +00:00
2014-04-29 10:06:10 +00:00
2014-08-01 22:19:41 +00:00
2014-03-28 23:28:07 +00:00
2014-03-26 16:30:54 +00:00
2014-04-12 00:59:48 +00:00
2014-07-24 22:15:28 +00:00
2014-07-30 22:51:54 +00:00
2014-06-05 19:29:43 +00:00
2014-06-05 19:29:43 +00:00
2009-10-23 17:57:43 +00:00
2009-09-08 23:54:48 +00:00
2014-08-20 11:59:22 +00:00
2014-08-20 11:59:22 +00:00
2014-08-20 11:59:22 +00:00
2014-08-20 11:59:22 +00:00
2014-08-20 11:59:22 +00:00
2011-02-16 01:08:31 +00:00
2010-12-19 20:12:58 +00:00
2014-06-18 11:52:44 +00:00
2013-05-30 13:19:42 +00:00
2011-01-03 22:53:22 +00:00
2014-06-09 22:42:55 +00:00
2014-05-14 21:14:37 +00:00
2010-04-17 16:29:15 +00:00
2009-09-08 23:54:48 +00:00
2014-10-01 15:22:13 +00:00
2014-07-24 22:15:28 +00:00
2014-04-15 19:30:48 +00:00
2011-11-27 06:54:59 +00:00
2014-05-19 20:38:59 +00:00
2014-01-22 09:12:27 +00:00
2014-10-01 18:55:02 +00:00
2014-06-27 18:19:56 +00:00
2014-05-20 19:25:04 +00:00
2014-08-29 20:50:31 +00:00
2014-08-02 00:50:10 +00:00
2013-07-13 20:38:47 +00:00
2013-02-25 14:20:21 +00:00
2014-04-12 00:59:48 +00:00
2014-04-12 00:59:48 +00:00
2014-01-21 22:39:19 +00:00
2010-09-30 23:57:10 +00:00
2013-07-14 06:24:09 +00:00
2014-05-06 01:20:42 +00:00
2009-09-08 23:54:48 +00:00
2013-08-23 20:39:19 +00:00
2014-08-01 21:54:37 +00:00
2014-08-06 18:09:04 +00:00
2014-04-29 23:55:41 +00:00
2014-08-29 21:42:08 +00:00
2014-04-29 23:55:41 +00:00
2014-05-06 16:51:25 +00:00
2014-05-06 16:51:25 +00:00
2014-07-23 07:08:53 +00:00
2009-10-26 15:32:57 +00:00
2011-11-07 23:08:21 +00:00
2014-06-25 05:31:22 +00:00
2014-08-19 19:44:06 +00:00
2014-02-13 14:44:26 +00:00
2014-07-31 00:11:11 +00:00
2014-07-31 00:11:16 +00:00
2009-09-08 23:54:48 +00:00
2014-05-14 16:14:45 +00:00
2014-09-15 19:00:31 +00:00
2014-04-03 20:07:51 +00:00
2013-10-23 21:06:07 +00:00
2014-07-26 03:46:54 +00:00
2012-12-30 02:33:22 +00:00
2014-07-01 18:53:31 +00:00
2011-06-03 23:53:54 +00:00
2011-06-02 20:02:48 +00:00
2013-08-23 20:39:19 +00:00
2014-07-24 22:15:28 +00:00
2014-07-03 15:19:40 +00:00
2014-06-25 03:05:47 +00:00
2013-10-16 19:04:11 +00:00
2014-01-17 19:47:03 +00:00
2012-06-04 11:27:21 +00:00
2014-09-22 18:07:20 +00:00
2014-07-07 23:25:23 +00:00
2014-04-11 21:51:09 +00:00
2014-06-30 17:14:21 +00:00
2013-10-15 23:33:07 +00:00
2014-04-24 20:14:08 +00:00
2012-07-20 21:29:31 +00:00
2014-04-30 19:17:32 +00:00
2014-05-22 16:21:39 +00:00
2014-08-08 08:21:19 +00:00
2013-07-14 06:24:09 +00:00
2014-09-22 13:11:35 +00:00
2014-09-22 13:11:35 +00:00
2014-08-04 21:29:59 +00:00
2011-06-03 23:53:54 +00:00
2011-06-17 03:14:27 +00:00
2013-07-14 06:24:09 +00:00
2013-07-13 20:38:47 +00:00
2009-09-08 23:54:48 +00:00
2011-06-09 22:14:44 +00:00
2014-07-10 18:21:04 +00:00
2014-07-13 21:02:14 +00:00
2014-09-25 23:14:26 +00:00
2014-09-22 18:54:01 +00:00
2011-08-31 21:39:05 +00:00
2014-06-11 23:11:02 +00:00
2014-06-25 13:12:54 +00:00
2014-03-17 18:58:01 +00:00
2014-05-12 13:12:08 +00:00
2014-09-16 00:24:42 +00:00
2014-09-16 00:15:20 +00:00
2014-05-17 03:29:20 +00:00
2014-09-30 02:52:28 +00:00
2014-09-06 10:00:01 +00:00
2014-09-06 10:00:01 +00:00
2014-09-06 10:00:01 +00:00
2012-07-02 18:37:59 +00:00
2010-03-30 22:47:00 +00:00
2009-09-08 23:54:48 +00:00
2013-12-10 15:22:48 +00:00
2014-02-01 01:36:16 +00:00
2014-07-25 19:31:34 +00:00
2014-03-26 16:30:54 +00:00
2014-10-01 18:55:02 +00:00
2014-04-17 19:08:36 +00:00
2014-10-01 18:55:02 +00:00
2014-06-12 03:29:26 +00:00
2014-06-26 23:39:52 +00:00
2014-07-25 04:50:08 +00:00
2014-07-24 20:40:55 +00:00
2014-08-01 18:26:27 +00:00
2014-05-20 17:40:03 +00:00
2014-07-24 22:15:28 +00:00
2013-07-14 06:24:09 +00:00
2014-03-26 17:27:01 +00:00
2014-07-08 15:22:29 +00:00
2014-07-08 15:22:29 +00:00
2014-07-24 22:09:56 +00:00
2013-11-22 10:30:39 +00:00
2014-08-20 19:00:37 +00:00
2014-07-10 18:00:53 +00:00
2013-07-14 06:24:09 +00:00
2014-04-18 21:10:11 +00:00
2013-11-17 10:53:19 +00:00
2014-07-24 22:15:28 +00:00
2012-04-16 13:49:17 +00:00
2013-04-29 22:41:29 +00:00
2014-08-22 21:59:26 +00:00
2014-08-29 21:25:28 +00:00
2014-08-22 21:59:26 +00:00
2014-07-10 12:32:32 +00:00
2014-09-12 15:10:56 +00:00
2014-07-23 07:08:53 +00:00
2014-09-14 22:41:37 +00:00
2014-08-05 20:16:35 +00:00
2014-08-14 15:15:28 +00:00
2014-07-16 15:37:08 +00:00
2014-07-15 02:44:49 +00:00
2014-09-05 23:19:45 +00:00
2014-08-27 11:39:47 +00:00
2009-09-08 23:54:48 +00:00
2009-09-08 23:54:48 +00:00
2014-09-14 23:39:01 +00:00
2014-04-18 19:44:16 +00:00
2014-08-02 11:17:41 +00:00
2014-09-14 22:41:37 +00:00
2014-06-21 12:56:42 +00:00
2014-08-28 18:59:22 +00:00
2014-09-05 22:26:22 +00:00
2014-07-07 19:03:32 +00:00
2014-07-26 10:58:14 +00:00
2014-10-01 11:14:02 +00:00
2014-10-01 02:25:54 +00:00
2014-10-01 00:41:21 +00:00
2014-10-01 00:41:21 +00:00
2014-10-01 00:41:21 +00:00
2014-10-01 00:41:21 +00:00
2014-10-01 00:41:21 +00:00
2014-10-01 00:41:21 +00:00
2014-10-01 00:41:21 +00:00
2014-07-02 15:09:44 +00:00
2014-03-27 09:45:08 +00:00
2014-08-21 13:28:02 +00:00
2014-07-24 22:15:28 +00:00
2014-07-09 10:06:58 +00:00
2014-07-08 08:45:38 +00:00
2014-07-24 22:15:28 +00:00
2014-09-19 20:00:32 +00:00
2014-07-24 22:15:28 +00:00
2014-07-10 18:04:55 +00:00
2014-05-09 22:32:13 +00:00
2014-08-04 21:05:27 +00:00
2014-06-25 12:41:52 +00:00
2014-09-02 18:42:44 +00:00
2014-07-15 02:34:12 +00:00
2014-09-17 07:09:23 +00:00
2014-09-17 07:09:23 +00:00
2014-09-17 07:09:23 +00:00
2014-09-17 07:09:23 +00:00
2014-06-07 21:23:09 +00:00
2014-07-30 22:51:54 +00:00
2014-05-12 22:01:27 +00:00
2014-08-07 09:41:19 +00:00
2014-06-17 23:22:41 +00:00
2014-07-24 22:15:28 +00:00
2014-07-30 20:26:09 +00:00
2014-07-24 22:15:28 +00:00
2014-05-29 23:52:53 +00:00
2014-08-19 19:44:06 +00:00