Sanjoy Das
3336f681e3
[Verifier] Add verification for TBAA metadata
...
Summary:
This change adds some verification in the IR verifier around struct path
TBAA metadata.
Other than some basic sanity checks (e.g. we get constant integers where
we expect constant integers), this checks:
- That by the time an struct access tuple `(base-type, offset)` is
"reduced" to a scalar base type, the offset is `0`. For instance, in
C++ you can't start from, say `("struct-a", 16)`, and end up with
`("int", 4)` -- by the time the base type is `"int"`, the offset
better be zero. In particular, a variant of this invariant is needed
for `llvm::getMostGenericTBAA` to be correct.
- That there are no cycles in a struct path.
- That struct type nodes have their offsets listed in an ascending
order.
- That when generating the struct access path, you eventually reach the
access type listed in the tbaa tag node.
Reviewers: dexonsmith, chandlerc, reames, mehdi_amini, manmanren
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D26438
llvm-svn: 289402
2016-12-11 20:07:15 +00:00
..
2016-11-11 08:27:37 +00:00
2016-11-06 19:46:54 +00:00
2016-08-23 09:19:22 +00:00
2015-11-19 05:56:52 +00:00
2016-07-15 21:10:29 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2016-09-13 01:12:59 +00:00
2016-04-15 15:57:41 +00:00
2016-08-23 09:19:22 +00:00
2016-08-23 09:19:22 +00:00
2016-09-13 01:12:59 +00:00
2015-11-19 05:56:52 +00:00
2016-10-11 20:36:43 +00:00
2016-05-10 19:17:47 +00:00
2016-05-10 19:17:47 +00:00
2016-05-10 19:17:47 +00:00
2016-12-11 20:07:15 +00:00
2016-05-10 19:17:47 +00:00
2016-11-11 17:50:09 +00:00
2016-09-13 01:12:59 +00:00
2016-08-23 09:19:22 +00:00
2015-11-19 05:56:52 +00:00
2015-11-19 05:56:52 +00:00
2015-02-27 21:17:42 +00:00
2015-11-19 05:56:52 +00:00
2016-09-23 18:28:31 +00:00
2016-08-12 03:33:22 +00:00
2016-06-14 07:30:20 +00:00
2016-12-09 17:18:24 +00:00
2015-02-27 21:17:42 +00:00
2016-05-08 05:11:54 +00:00
2016-08-26 13:00:39 +00:00
2015-02-27 21:17:42 +00:00
2014-04-03 16:01:44 +00:00
2014-08-21 12:50:31 +00:00
2015-02-27 21:17:42 +00:00
2014-04-03 16:01:44 +00:00
2015-02-24 17:22:34 +00:00
2016-01-26 00:03:25 +00:00
2016-12-09 17:18:24 +00:00
2010-07-09 20:27:06 +00:00
2015-10-30 16:29:44 +00:00
2014-04-03 17:35:22 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2010-04-17 21:29:25 +00:00
2010-04-17 21:29:25 +00:00
2015-04-16 23:24:18 +00:00
2016-09-07 03:17:19 +00:00
2016-11-03 14:08:01 +00:00
2015-04-16 23:24:18 +00:00
2016-06-24 21:14:33 +00:00
2016-08-21 00:08:10 +00:00
2013-07-14 06:24:09 +00:00
2016-05-19 21:39:00 +00:00
2016-05-19 21:39:00 +00:00
2015-02-27 21:17:42 +00:00
2016-11-07 13:38:21 +00:00
2016-08-08 15:28:31 +00:00
2015-12-15 03:28:11 +00:00
2016-11-11 01:34:21 +00:00
2016-08-25 01:27:13 +00:00
2016-03-21 18:00:02 +00:00
2015-09-22 17:22:58 +00:00
2016-10-20 18:06:52 +00:00
2015-02-27 21:17:42 +00:00
2016-11-03 21:49:08 +00:00
2016-03-21 18:00:02 +00:00
2016-08-22 19:07:15 +00:00
2014-04-03 16:01:44 +00:00
2015-11-16 10:49:25 +00:00
2016-06-01 12:01:01 +00:00
2014-04-03 16:01:44 +00:00
2012-06-18 14:51:32 +00:00
2016-01-08 18:43:41 +00:00
2014-04-03 16:01:44 +00:00
2013-07-14 06:24:09 +00:00
2016-01-25 11:26:11 +00:00
2016-10-24 18:57:55 +00:00
2016-10-24 18:57:55 +00:00
2016-10-24 18:57:55 +00:00
2016-10-24 18:57:55 +00:00
2016-10-24 18:57:55 +00:00
2016-10-19 13:43:02 +00:00
2016-11-01 15:59:37 +00:00
2015-12-07 14:22:39 +00:00
2015-12-07 14:22:39 +00:00
2015-12-07 14:22:39 +00:00
2015-12-07 14:22:39 +00:00
2015-12-07 14:22:39 +00:00
2016-10-07 12:06:40 +00:00
2016-01-26 00:03:25 +00:00
2016-11-03 14:08:01 +00:00
2016-06-16 16:09:53 +00:00
2016-01-28 18:59:04 +00:00
2016-05-19 12:59:17 +00:00
2016-05-19 12:59:17 +00:00
2015-10-28 22:56:36 +00:00
2012-06-11 08:07:26 +00:00
2016-02-22 20:55:50 +00:00
2016-12-01 22:58:35 +00:00
2016-02-22 20:55:50 +00:00
2016-09-13 01:12:59 +00:00
2016-10-20 18:06:52 +00:00
2015-12-04 01:53:14 +00:00
2016-11-01 13:37:41 +00:00
2014-02-16 07:31:05 +00:00
2016-10-17 12:54:07 +00:00
2016-09-26 07:26:24 +00:00
2016-10-06 07:44:05 +00:00
2016-10-06 07:56:00 +00:00
2015-12-08 02:37:48 +00:00
2016-11-15 11:34:54 +00:00
2016-05-10 19:17:47 +00:00
2015-11-19 05:56:52 +00:00
2015-06-17 20:52:32 +00:00
2016-01-15 21:56:40 +00:00
2016-08-29 12:47:22 +00:00
2015-07-13 15:37:30 +00:00
2016-08-23 09:19:22 +00:00
2016-10-12 13:44:24 +00:00
2016-03-21 11:43:46 +00:00
2014-08-21 12:50:31 +00:00
2016-04-25 21:12:04 +00:00
2014-05-30 10:09:59 +00:00
2016-09-28 17:51:14 +00:00
2014-08-26 12:47:26 +00:00
2016-08-23 09:19:22 +00:00
2015-06-17 20:52:32 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2016-08-23 09:19:22 +00:00
2016-04-15 15:57:41 +00:00
2016-12-02 00:37:57 +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
2016-04-15 15:57:41 +00:00
2016-01-29 10:23:32 +00:00
2016-06-24 21:14:33 +00:00
2016-05-28 10:41:15 +00:00
2016-12-05 23:55:13 +00:00
2015-08-24 09:17:18 +00:00
2016-10-07 13:28:53 +00:00
2015-02-27 21:17:42 +00:00
2016-08-23 09:19:22 +00:00
2015-11-19 05:56:52 +00:00
2016-10-11 10:06:59 +00:00
2016-01-27 19:32:29 +00:00
2016-01-26 00:03:25 +00:00
2016-01-26 00:03:25 +00:00
2016-06-24 21:14:33 +00:00
2016-01-26 00:03:25 +00:00
2016-06-16 16:09:53 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-01-13 00:03:35 +00:00
2013-07-13 20:38:47 +00:00
2015-07-28 22:44:28 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2016-05-28 04:47:13 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2016-05-10 19:17:47 +00:00
2015-09-18 20:08:18 +00:00
2015-02-27 21:17:42 +00:00
2016-08-23 09:19:22 +00:00
2014-07-16 22:20:51 +00:00
2016-05-28 04:47:13 +00:00
2015-10-26 20:49:49 +00:00
2016-06-20 17:45:33 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 18:32:11 +00:00
2015-05-06 04:14:02 +00:00
2015-05-06 22:09:29 +00:00
2015-07-07 06:54:42 +00:00
2015-04-16 23:24:18 +00:00
2016-05-28 04:47:13 +00:00
2016-01-15 10:26:17 +00:00
2014-04-03 16:01:44 +00:00
2012-08-14 00:56:06 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2016-10-26 20:01:00 +00:00
2014-04-03 16:01:44 +00:00
2016-01-08 17:46:05 +00:00
2016-05-31 18:50:25 +00:00
2016-05-06 00:58:00 +00:00
2016-06-24 21:14:33 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2015-02-27 21:17:42 +00:00
2015-08-29 11:50:08 +00:00
2015-02-27 21:17:42 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2015-02-27 21:17:42 +00:00
2014-04-03 16:01:44 +00:00
2015-02-27 21:17:42 +00:00
2014-04-03 16:01:44 +00:00
2015-02-27 21:17:42 +00:00
2015-08-21 10:48:17 +00:00
2016-11-11 17:50:09 +00:00
2016-01-26 00:03:25 +00:00
2016-05-10 19:17:47 +00:00
2009-09-09 00:09:15 +00:00
2016-08-23 09:19:22 +00:00
2013-07-14 06:24:09 +00:00
2014-04-25 17:24:24 +00:00
2014-04-03 16:01:44 +00:00
2016-08-10 18:36:18 +00:00
2016-08-23 09:19:22 +00:00
2015-11-18 00:40:54 +00:00
2015-11-18 00:40:54 +00:00
2016-12-09 17:18:24 +00:00
2015-12-01 05:29:22 +00:00
2015-12-01 05:29:22 +00:00
2016-08-23 09:19:22 +00:00
2015-02-27 21:17:42 +00:00
2016-12-09 19:08:15 +00:00
2016-12-09 19:08:15 +00:00
2014-04-03 16:01:44 +00:00
2016-09-09 13:35:36 +00:00
2016-08-25 00:06:52 +00:00
2015-02-27 21:17:42 +00:00
2014-04-03 16:01:44 +00:00
2016-07-20 09:48:24 +00:00
2014-04-03 16:01:44 +00:00
2015-02-27 19:29:02 +00:00
2014-07-25 09:55:01 +00:00
2014-04-03 16:01:44 +00:00
2016-01-08 00:34:44 +00:00
2016-01-08 00:34:44 +00:00
2016-05-12 21:22:37 +00:00
2016-04-08 18:15:37 +00:00
2016-04-08 18:15:37 +00:00
2016-04-25 14:29:18 +00:00
2016-04-26 03:43:49 +00:00
2014-04-03 16:01:44 +00:00
2016-08-23 09:19:22 +00:00
2014-04-03 16:01:44 +00:00
2016-04-11 22:27:40 +00:00
2016-04-13 03:08:27 +00:00
2016-09-13 12:18:15 +00:00
2016-06-17 00:52:41 +00:00
2014-11-17 14:08:57 +00:00
2016-04-12 23:21:53 +00:00
2016-11-01 13:37:41 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-05-31 12:39:30 +00:00
2016-06-07 11:47:24 +00:00
2015-10-05 14:49:54 +00:00
2015-03-13 18:20:45 +00:00
2016-02-17 16:35:18 +00:00
2015-02-27 21:17:42 +00:00
2016-08-23 09:19:22 +00:00
2016-01-15 10:26:51 +00:00
2015-02-27 21:17:42 +00:00
2016-05-18 22:04:49 +00:00
2016-05-05 18:38:53 +00:00
2015-02-27 21:17:42 +00:00
2016-10-10 16:01:54 +00:00
2015-10-26 18:23:16 +00:00
2015-10-05 14:49:54 +00:00
2015-08-13 10:48:22 +00:00
2016-05-10 19:17:47 +00:00
2014-05-08 14:06:24 +00:00
2014-04-03 16:01:44 +00:00
2015-02-27 21:17:42 +00:00
2016-10-27 10:43:02 +00:00
2016-04-13 23:08:27 +00:00
2016-09-09 12:52:24 +00:00
2016-10-18 09:08:54 +00:00
2016-08-23 09:19:22 +00:00
2015-11-19 05:56:52 +00:00
2015-02-27 21:17:42 +00:00
2016-08-24 19:02:29 +00:00
2016-05-13 19:16:14 +00:00
2014-04-03 16:01:44 +00:00
2015-11-19 05:56:52 +00:00
2015-10-05 14:49:54 +00:00
2016-06-03 15:38:55 +00:00
2016-08-23 09:19:22 +00:00
2016-12-09 17:18:24 +00:00
2014-12-15 19:07:53 +00:00
2015-08-19 14:11:27 +00:00
2016-07-15 07:55:21 +00:00
2014-01-23 13:43:47 +00:00
2014-04-03 16:01:44 +00:00
2016-01-15 10:25:14 +00:00
2016-06-08 15:26:34 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 17:35:22 +00:00
2015-06-01 12:02:47 +00:00
2016-10-19 16:58:59 +00:00
2015-02-27 21:17:42 +00:00
2015-11-17 13:21:35 +00:00
2016-07-29 23:33:48 +00:00
2016-04-11 22:27:40 +00:00
2016-08-23 09:19:22 +00:00
2015-02-19 00:45:04 +00:00
2015-04-16 23:24:18 +00:00
2014-04-03 16:01:44 +00:00
2015-02-27 21:17:42 +00:00
2016-06-16 16:09:53 +00:00
2016-05-31 15:31:55 +00:00
2016-04-22 20:40:10 +00:00
2016-03-31 19:42:04 +00:00
2015-10-26 10:04:52 +00:00
2015-12-17 01:29:08 +00:00
2016-02-19 03:13:40 +00:00
2013-03-11 03:49:23 +00:00
2016-01-26 00:03:25 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-11-13 16:05:22 +00:00
2013-05-23 19:11:20 +00:00
2015-09-30 10:56:37 +00:00
2016-03-03 22:38:39 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2016-07-20 04:13:01 +00:00
2014-04-03 16:01:44 +00:00
2015-10-27 10:25:20 +00:00
2015-12-20 06:41:44 +00:00
2015-01-19 15:16:06 +00:00
2011-07-02 20:43:11 +00:00
2014-05-06 20:43:01 +00:00
2015-02-27 21:17:42 +00:00
2016-09-09 12:52:24 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2015-07-16 22:34:16 +00:00
2016-11-16 20:54:28 +00:00
2016-01-29 19:18:46 +00:00
2011-03-15 01:49:08 +00:00
2016-06-21 12:29:03 +00:00
2016-05-10 19:17:47 +00:00
2016-01-27 19:32:29 +00:00
2016-10-24 18:57:55 +00:00
2016-08-02 12:44:27 +00:00
2015-02-27 21:17:42 +00:00
2016-01-25 11:25:36 +00:00
2016-01-25 11:25:36 +00:00
2015-12-20 06:41:44 +00:00
2015-12-20 06:41:44 +00:00
2016-07-25 22:25:25 +00:00
2016-07-25 22:25:25 +00:00
2015-03-17 18:20:47 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2014-04-23 01:09:29 +00:00
2015-11-19 05:56:52 +00:00
2014-12-15 19:07:53 +00:00
2016-12-09 17:18:24 +00:00
2016-05-31 12:39:30 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-04-03 16:01:44 +00:00
2016-07-29 09:16:46 +00:00
2016-05-10 19:17:47 +00:00
2015-11-19 05:56:52 +00:00
2014-05-08 14:06:24 +00:00
2016-08-05 20:58:29 +00:00
2016-04-05 22:44:44 +00:00
2016-10-28 17:21:05 +00:00
2016-03-02 19:20:00 +00:00
2016-11-14 20:28:24 +00:00
2016-08-23 09:19:22 +00:00
2016-09-08 13:12:22 +00:00
2016-08-10 09:34:34 +00:00
2016-06-07 12:13:34 +00:00
2015-04-30 22:15:59 +00:00
2016-09-07 03:17:19 +00:00
2016-11-17 10:56:58 +00:00
2016-05-10 19:17:47 +00:00
2016-11-17 10:56:58 +00:00
2015-12-01 05:29:22 +00:00
2015-12-15 10:10:40 +00:00
2015-09-18 18:19:40 +00:00
2016-07-20 04:13:01 +00:00
2016-04-19 20:51:05 +00:00
2015-11-30 20:37:58 +00:00
2016-07-13 20:36:03 +00:00
2016-05-10 19:17:47 +00:00
2016-09-19 09:11:09 +00:00
2016-01-26 00:03:25 +00:00
2015-05-01 00:45:55 +00:00
2016-06-01 21:57:11 +00:00
2015-02-27 21:17:42 +00:00
2016-01-26 00:03:25 +00:00
2016-01-26 00:03:25 +00:00
2016-01-29 10:23:32 +00:00
2016-02-17 16:35:18 +00:00
2016-07-15 22:31:14 +00:00
2015-10-26 21:32:53 +00:00
2015-07-28 22:44:28 +00:00
2014-05-22 04:46:46 +00:00
2013-07-14 06:24:09 +00:00
2016-10-03 10:12:32 +00:00
2015-12-20 06:41:44 +00:00
2015-12-20 06:41:44 +00:00
2016-07-25 22:25:25 +00:00
2016-08-10 09:34:34 +00:00
2009-09-09 00:09:15 +00:00
2016-08-23 09:19:22 +00:00
2016-06-24 00:08:01 +00:00
2016-05-10 19:17:47 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-11 18:54:22 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2016-04-26 05:04:37 +00:00
2016-03-17 20:10:28 +00:00
2016-03-17 20:10:28 +00:00
2015-03-05 19:37:53 +00:00
2015-07-17 23:18:30 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-07-17 23:18:30 +00:00
2015-09-01 11:12:35 +00:00
2015-02-27 21:17:42 +00:00
2016-09-12 13:14:14 +00:00
2016-05-10 19:17:47 +00:00
2015-10-28 22:56:36 +00:00
2016-04-15 15:57:41 +00:00
2015-04-16 23:24:18 +00:00
2016-10-18 21:03:40 +00:00
2015-02-27 21:17:42 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2016-04-14 07:13:24 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2013-12-18 22:25:17 +00:00
2015-11-17 17:25:15 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-08-23 09:19:22 +00:00
2015-04-16 23:24:18 +00:00
2014-04-03 16:01:44 +00:00
2016-03-21 18:00:02 +00:00
2016-07-06 11:22:11 +00:00
2016-11-23 02:07:04 +00:00
2016-11-23 02:07:04 +00:00
2016-11-23 02:07:04 +00:00
2016-04-19 23:51:52 +00:00
2015-02-27 21:17:42 +00:00