Amara Emerson
0d6a26dffc
[GlobalISel][IRTranslator] Split aggregates during IR translation.
...
We currently handle all aggregates by creating one large LLT, and letting the
legalizer deal with splitting them up. However using this approach means that
we can't support big endian code correctly.
This patch changes the way that the IRTranslator deals with aggregate values,
by splitting them up into their constituent element values. To do this, parts
of the translator need to be modified to deal with multiple VRegs for a single
Value.
A new Value to VReg mapper is introduced to help keep compile time under
control, currently there is no measurable impact on CTMark despite the extra
code being generated in some cases.
Patch is based on the original work of Tim Northover.
Differential Revision: https://reviews.llvm.org/D46018
llvm-svn: 332449
2018-05-16 10:32:02 +00:00
..
2018-05-16 10:32:02 +00:00
2018-01-02 16:30:47 +00:00
2017-08-01 21:13:54 +00:00
2018-05-09 02:40:45 +00:00
2017-12-07 10:40:31 +00:00
2018-01-31 22:04:26 +00:00
2018-01-19 17:13:12 +00:00
2017-12-04 17:18:51 +00:00
2018-02-27 16:59:10 +00:00
2018-03-07 22:07:13 +00:00
2017-10-03 22:39:24 +00:00
2018-04-01 23:44:04 +00:00
2018-04-01 23:44:04 +00:00
2018-03-14 21:52:13 +00:00
2018-03-09 14:29:21 +00:00
2017-06-01 14:24:31 +00:00
2017-12-04 17:18:51 +00:00
2018-01-02 16:30:47 +00:00
2017-08-30 18:06:51 +00:00
2018-04-10 16:19:30 +00:00
2017-12-07 10:40:31 +00:00
2018-05-01 19:26:15 +00:00
2018-04-11 16:03:07 +00:00
2018-01-26 16:51:27 +00:00
2018-01-02 16:30:47 +00:00
2018-02-18 13:51:33 +00:00
2018-04-23 19:09:34 +00:00
2018-02-27 16:59:10 +00:00
2018-04-10 11:29:40 +00:00
2018-03-01 22:32:25 +00:00
2018-04-10 16:19:30 +00:00
2017-11-13 01:47:52 +00:00
2018-01-24 14:13:47 +00:00
2018-01-04 21:43:12 +00:00
2017-12-04 17:18:51 +00:00
2017-11-13 01:47:52 +00:00
2018-03-09 14:29:21 +00:00
2017-12-06 15:30:13 +00:00
2018-02-18 13:51:33 +00:00
2018-01-31 22:04:26 +00:00
2017-12-07 10:40:31 +00:00
2017-11-20 14:36:40 +00:00
2017-06-23 19:20:12 +00:00
2018-01-02 16:30:47 +00:00
2018-01-02 16:30:47 +00:00
2018-01-02 16:30:47 +00:00
2018-03-06 16:54:55 +00:00
2017-07-17 17:32:45 +00:00
2018-01-02 16:30:47 +00:00
2018-01-02 16:30:47 +00:00
2018-04-11 16:03:07 +00:00
2018-01-02 16:30:47 +00:00
2018-01-02 16:30:47 +00:00
2018-01-02 16:30:47 +00:00
2018-04-11 16:03:07 +00:00
2018-01-02 16:30:47 +00:00
2018-04-11 16:03:07 +00:00
2018-01-02 16:30:47 +00:00
2018-01-02 16:30:47 +00:00
2018-01-02 16:30:47 +00:00
2018-01-02 16:30:47 +00:00
2018-04-11 16:03:07 +00:00
2017-12-18 10:36:00 +00:00
2018-03-23 14:47:07 +00:00
2017-12-04 17:18:51 +00:00
2018-01-29 19:56:42 +00:00
2017-12-04 17:18:51 +00:00
2018-05-11 16:25:06 +00:00
2017-12-04 17:18:51 +00:00
2017-07-14 21:46:16 +00:00
2017-12-21 01:22:13 +00:00
2018-05-11 18:40:08 +00:00
2017-09-19 15:46:35 +00:00
2018-01-31 22:04:26 +00:00
2018-04-10 16:19:30 +00:00
2018-01-19 17:13:12 +00:00
2018-01-19 17:13:12 +00:00
2018-01-19 17:13:12 +00:00
2018-01-19 17:13:12 +00:00
2018-01-19 17:13:12 +00:00
2018-01-18 17:59:06 +00:00
2018-03-14 21:52:13 +00:00
2018-04-10 16:19:30 +00:00
2018-05-01 20:00:14 +00:00
2017-12-06 15:30:13 +00:00
2018-01-30 15:40:27 +00:00
2018-02-07 00:51:37 +00:00
2018-05-14 15:26:35 +00:00
2018-05-04 17:21:26 +00:00
2018-05-14 15:26:35 +00:00
2017-09-25 14:05:00 +00:00
2018-04-18 17:10:19 +00:00
2018-04-09 00:54:47 +00:00
2018-04-11 16:03:07 +00:00
2018-04-01 23:44:04 +00:00
2018-03-23 14:47:07 +00:00
2018-01-31 22:04:26 +00:00
2017-11-13 01:47:52 +00:00
2017-06-24 16:00:26 +00:00
2018-04-07 10:57:03 +00:00
2018-01-02 16:30:47 +00:00
2017-06-12 17:15:41 +00:00
2017-11-20 14:36:40 +00:00
2017-11-20 14:36:40 +00:00
2018-05-09 02:40:45 +00:00
2018-05-09 02:40:45 +00:00
2018-05-15 20:41:12 +00:00
2017-12-06 15:30:13 +00:00
2018-01-24 05:04:35 +00:00
2018-01-24 00:39:53 +00:00
2018-01-24 00:39:53 +00:00
2018-01-02 16:30:47 +00:00
2018-03-14 13:09:10 +00:00
2017-11-20 14:36:40 +00:00
2017-11-20 14:36:40 +00:00
2018-04-04 10:12:53 +00:00
2017-11-20 14:36:40 +00:00
2018-04-10 16:19:30 +00:00
2017-11-20 14:36:40 +00:00
2018-01-02 16:30:47 +00:00
2018-03-05 17:02:47 +00:00
2018-04-23 19:09:34 +00:00
2017-07-18 20:06:24 +00:00
2017-09-15 09:24:48 +00:00
2018-01-19 17:13:12 +00:00
2017-10-09 15:15:09 +00:00
2018-02-27 16:59:10 +00:00
2018-02-08 08:39:05 +00:00
2018-02-12 17:03:11 +00:00
2017-12-04 17:18:51 +00:00
2018-01-29 19:56:42 +00:00
2018-01-23 15:11:27 +00:00
2018-04-12 05:53:20 +00:00
2018-03-01 22:32:25 +00:00
2017-11-20 14:36:40 +00:00
2018-01-02 16:30:47 +00:00
2018-05-15 16:27:34 +00:00
2017-12-04 17:18:51 +00:00
2018-03-05 17:02:47 +00:00
2018-04-10 19:01:58 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2017-12-20 06:51:45 +00:00
2017-10-17 21:43:52 +00:00
2018-02-27 16:59:10 +00:00
2018-04-10 16:19:30 +00:00
2017-12-26 23:27:44 +00:00
2017-11-20 14:36:40 +00:00
2017-06-28 15:09:11 +00:00
2018-02-18 13:51:33 +00:00
2018-02-27 16:59:10 +00:00
2017-09-25 14:05:00 +00:00
2018-01-02 16:30:47 +00:00
2017-07-18 20:06:24 +00:00
2018-01-17 23:55:23 +00:00
2018-01-30 19:50:58 +00:00
2017-11-03 07:33:20 +00:00
2018-02-28 17:48:55 +00:00
2018-02-28 17:48:55 +00:00
2018-02-07 05:38:29 +00:00
2017-07-17 17:32:45 +00:00
2017-08-24 14:47:06 +00:00
2018-02-27 16:59:10 +00:00
2018-03-30 15:42:52 +00:00
2017-07-18 16:14:22 +00:00
2018-04-10 21:43:03 +00:00
2017-07-14 21:44:12 +00:00
2017-12-04 17:18:51 +00:00
2018-01-02 16:30:47 +00:00
2017-12-04 17:18:51 +00:00
2017-12-04 17:18:51 +00:00
2018-01-19 17:13:12 +00:00
2018-01-02 16:30:47 +00:00
2018-01-31 22:04:26 +00:00
2017-09-21 21:10:06 +00:00
2017-12-04 17:18:51 +00:00
2017-07-11 22:23:00 +00:00
2018-02-27 16:59:10 +00:00
2017-08-07 05:51:14 +00:00
2018-04-23 19:09:34 +00:00
2018-03-20 20:25:40 +00:00
2018-03-15 13:42:28 +00:00
2018-04-04 10:12:53 +00:00
2018-03-15 13:42:28 +00:00
2018-03-15 13:42:28 +00:00
2018-04-04 10:12:53 +00:00
2018-03-15 13:42:28 +00:00
2018-01-22 14:16:11 +00:00
2017-11-20 14:36:40 +00:00
2017-11-20 14:36:40 +00:00
2018-05-15 20:41:12 +00:00
2017-11-20 14:36:40 +00:00
2017-12-18 10:36:00 +00:00
2018-04-20 15:07:55 +00:00
2018-04-10 16:19:30 +00:00
2018-04-10 16:19:30 +00:00
2018-03-27 16:44:41 +00:00
2018-03-27 16:44:41 +00:00
2018-04-23 19:09:34 +00:00
2018-04-23 19:09:34 +00:00
2018-04-23 19:09:34 +00:00
2018-02-18 13:51:33 +00:00
2018-01-31 19:12:50 +00:00
2018-05-16 09:33:25 +00:00
2018-01-19 17:13:12 +00:00
2018-03-14 17:10:58 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-02-27 16:59:10 +00:00
2018-01-31 22:04:26 +00:00
2018-01-19 17:13:12 +00:00
2018-01-19 17:13:12 +00:00
2018-01-31 22:04:26 +00:00
2018-03-27 17:33:50 +00:00
2017-12-04 17:18:51 +00:00
2018-01-31 22:04:26 +00:00
2017-12-09 23:59:55 +00:00
2017-09-18 17:28:15 +00:00
2018-01-30 15:40:27 +00:00
2018-01-31 13:54:30 +00:00
2018-01-31 22:04:26 +00:00
2017-12-07 10:40:31 +00:00
2018-01-31 22:04:26 +00:00
2018-03-30 00:56:03 +00:00
2018-03-27 22:23:48 +00:00
2018-04-27 23:36:35 +00:00
2018-04-24 22:38:15 +00:00
2018-04-27 23:36:35 +00:00
2018-05-09 02:40:45 +00:00
2018-05-15 23:36:46 +00:00
2018-03-28 17:52:31 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-04-13 22:25:20 +00:00
2018-01-30 15:40:16 +00:00
2018-01-19 17:13:12 +00:00
2018-02-27 16:59:10 +00:00
2018-01-24 00:39:53 +00:00
2018-01-19 17:13:12 +00:00
2017-12-13 10:30:59 +00:00
2018-01-11 15:13:47 +00:00
2018-04-10 16:19:30 +00:00
2018-01-30 15:40:16 +00:00
2018-02-23 19:27:43 +00:00
2018-01-30 15:40:16 +00:00
2017-08-21 21:57:43 +00:00
2018-01-24 00:39:53 +00:00
2018-05-04 19:25:09 +00:00
2018-01-31 22:04:26 +00:00
2018-02-27 16:59:10 +00:00
2017-12-04 17:18:51 +00:00
2018-03-05 17:42:18 +00:00
2018-02-07 00:51:37 +00:00
2018-04-27 13:45:32 +00:00
2018-02-26 23:19:25 +00:00
2018-05-04 14:33:55 +00:00
2018-03-06 16:54:55 +00:00
2017-12-04 17:18:51 +00:00
2017-10-23 20:46:36 +00:00
2018-01-30 15:40:27 +00:00
2018-03-19 20:06:50 +00:00
2018-01-29 19:56:42 +00:00
2018-05-09 05:00:17 +00:00
2018-04-09 00:54:47 +00:00
2018-01-19 17:13:12 +00:00
2018-05-09 02:40:45 +00:00
2018-04-27 19:59:20 +00:00
2018-01-19 17:13:12 +00:00
2018-01-02 16:30:47 +00:00
2018-01-30 15:40:16 +00:00
2017-07-19 23:47:32 +00:00
2017-12-04 17:18:51 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2017-09-25 14:05:00 +00:00
2018-04-27 15:30:54 +00:00
2018-01-31 22:04:26 +00:00
2017-12-04 17:18:51 +00:00
2018-04-04 21:55:44 +00:00
2018-04-18 13:37:12 +00:00
2017-12-04 17:18:51 +00:00
2017-06-12 17:15:41 +00:00
2018-03-22 20:06:47 +00:00
2018-01-31 22:04:26 +00:00
2018-04-26 18:50:45 +00:00
2018-01-31 22:04:26 +00:00
2018-02-01 17:57:45 +00:00
2017-06-23 19:20:12 +00:00
2018-04-21 00:07:46 +00:00
2018-02-26 23:19:25 +00:00
2018-02-16 20:00:57 +00:00
2018-02-11 14:38:23 +00:00
2017-09-22 04:31:44 +00:00
2018-01-02 16:30:47 +00:00
2018-04-11 16:03:07 +00:00
2017-06-20 18:43:14 +00:00
2018-01-02 16:30:47 +00:00
2017-12-04 17:18:51 +00:00
2018-02-26 15:23:42 +00:00
2018-01-29 19:56:42 +00:00
2018-01-02 16:30:47 +00:00
2017-12-06 15:30:13 +00:00
2018-01-19 17:13:12 +00:00
2018-01-19 17:13:12 +00:00
2018-04-24 10:32:08 +00:00
2017-07-27 21:27:25 +00:00
2017-06-23 19:20:12 +00:00
2018-04-23 20:38:42 +00:00
2018-04-23 20:38:42 +00:00
2018-04-23 20:38:42 +00:00
2018-04-23 20:38:42 +00:00
2018-05-07 16:42:47 +00:00
2018-04-11 13:37:25 +00:00
2018-05-15 14:16:24 +00:00
2017-11-20 14:36:40 +00:00
2018-02-17 14:26:32 +00:00
2018-03-19 20:06:50 +00:00
2018-03-09 09:45:37 +00:00
2018-03-12 18:47:43 +00:00
2017-09-04 05:34:58 +00:00
2017-09-04 05:34:58 +00:00
2018-04-07 23:36:10 +00:00