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-05-14 21:32:52 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2018-01-19 17:13:12 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-30 14:57:12 +00:00
2017-07-28 20:21:02 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-30 18:06:51 +00:00
2017-12-07 10:40:31 +00:00
2017-07-28 20:21:02 +00:00
2018-05-09 02:40:45 +00:00
2018-01-19 17:13:12 +00:00
2018-05-09 02:40:45 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2018-01-19 17:13:12 +00:00
2018-01-19 17:13:12 +00:00
2018-01-09 17:31:07 +00:00
2017-08-01 22:20:49 +00:00
2018-01-19 17:13:12 +00:00
2018-03-14 21:52:13 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-06-22 12:11:38 +00:00
2017-06-28 07:07:03 +00:00
2018-02-10 15:14:00 +00:00
2018-01-31 22:04:26 +00:00
2018-05-09 02:40:45 +00:00
2018-02-16 09:35:16 +00:00
2017-11-30 16:12:24 +00:00
2017-12-13 10:45:21 +00:00
2018-03-27 16:44:41 +00:00
2018-03-27 16:44:41 +00:00
2017-11-28 04:07:59 +00:00
2017-06-17 02:08:18 +00:00
2017-08-01 22:20:49 +00:00
2018-02-16 09:23:59 +00:00
2017-06-28 07:07:03 +00:00
2017-07-07 13:41:33 +00:00
2017-07-07 13:41:33 +00:00
2017-06-30 00:03:54 +00:00
2017-12-04 17:18:51 +00:00
2018-01-19 17:13:12 +00:00
2017-08-23 11:53:24 +00:00
2017-08-18 19:13:56 +00:00
2017-11-13 11:56:48 +00:00
2017-06-28 07:07:03 +00:00
2018-04-07 10:57:03 +00:00
2017-12-06 15:30:13 +00:00
2018-05-09 02:40:45 +00:00
2017-08-28 20:20:47 +00:00
2018-02-16 09:23:59 +00:00
2018-02-28 17:13:07 +00:00
2017-12-04 17:18:51 +00:00
2017-12-21 01:22:13 +00:00
2017-08-01 22:20:49 +00:00
2017-12-04 17:18:51 +00:00
2017-11-29 10:12:15 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2018-02-16 09:23:59 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-02-16 09:23:59 +00:00
2017-06-30 19:51:02 +00:00
2018-02-16 09:23:59 +00:00
2017-12-04 17:18:51 +00:00
2018-05-09 02:40:45 +00:00
2017-06-28 07:07:03 +00:00
2018-01-20 01:26:46 +00:00
2018-02-22 08:41:55 +00:00
2017-07-01 02:55:22 +00:00
2018-05-09 02:40:45 +00:00
2017-09-07 04:00:13 +00:00
2018-01-19 17:13:12 +00:00
2018-01-19 17:13:12 +00:00
2017-12-04 17:18:51 +00:00
2017-12-04 17:18:51 +00:00
2017-07-12 15:30:59 +00:00
2017-07-12 15:30:59 +00:00
2017-07-12 15:30:59 +00:00
2017-12-04 17:18:51 +00:00
2017-12-04 17:18:51 +00:00
2017-07-12 15:30:59 +00:00
2017-07-12 15:30:59 +00:00
2017-07-12 15:30:59 +00:00
2017-12-04 17:18:51 +00:00
2018-04-27 11:29:49 +00:00
2017-12-07 10:40:31 +00:00
2018-01-19 17:13:12 +00:00
2017-12-04 17:18:51 +00:00
2017-08-22 11:02:37 +00:00
2017-08-01 22:20:49 +00:00
2017-06-30 00:03:54 +00:00
2017-06-30 00:03:54 +00:00
2017-06-28 07:07:03 +00:00
2017-06-28 07:07:03 +00:00
2017-06-28 07:07:03 +00:00
2018-04-07 19:09:50 +00:00
2018-05-09 02:40:45 +00:00
2018-05-09 02:40:45 +00:00
2018-05-09 02:40:45 +00:00
2018-05-09 02:40:45 +00:00
2018-01-19 17:13:12 +00:00
2018-05-09 02:40:45 +00:00
2018-05-09 02:40:45 +00:00
2018-05-09 02:40:45 +00:00
2018-05-09 02:40:45 +00:00
2018-05-09 02:40:45 +00:00
2018-05-09 02:40:45 +00:00
2018-05-09 02:40:45 +00:00
2017-12-04 17:18:51 +00:00
2018-01-22 10:05:23 +00:00
2018-01-12 09:24:41 +00:00
2018-02-09 17:13:37 +00:00
2018-01-19 17:13:12 +00:00
2018-05-09 02:40:45 +00:00
2018-02-09 17:13:37 +00:00
2018-02-09 17:13:37 +00:00
2017-11-17 08:04:40 +00:00
2017-08-01 22:20:49 +00:00
2018-02-28 17:48:55 +00:00
2018-02-28 17:48:55 +00:00
2017-07-01 02:55:22 +00:00
2017-07-01 02:55:22 +00:00
2017-11-13 11:56:48 +00:00
2018-01-31 22:04:26 +00:00
2018-04-11 16:03:07 +00:00
2018-04-11 16:03:07 +00:00
2018-04-11 16:03:07 +00:00
2018-04-13 22:25:20 +00:00
2018-04-11 16:03:07 +00:00
2018-03-28 10:02:26 +00:00
2017-07-11 22:23:00 +00:00
2017-07-28 09:21:00 +00:00
2018-02-02 11:51:06 +00:00
2017-09-22 09:50:52 +00:00
2018-05-09 02:40:45 +00:00
2018-05-09 02:40:45 +00:00
2018-05-15 14:16:24 +00:00
2018-03-19 13:35:25 +00:00
2018-03-19 13:35:25 +00:00
2018-04-25 18:58:06 +00:00
2018-04-25 18:58:06 +00:00
2018-02-22 10:43:57 +00:00
2018-02-22 10:43:57 +00:00
2018-02-16 09:23:59 +00:00
2017-06-28 07:07:03 +00:00
2018-04-13 15:34:26 +00:00
2018-04-13 15:34:26 +00:00
2018-01-31 22:04:26 +00:00
2018-02-17 19:59:29 +00:00
2018-04-20 15:07:55 +00:00
2018-03-27 16:44:41 +00:00
2018-03-27 16:44:41 +00:00
2017-08-01 22:20:49 +00:00
2017-08-22 11:02:37 +00:00
2017-06-28 07:07:03 +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-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-02-09 00:10:31 +00:00
2018-02-09 00:10:31 +00:00
2017-08-01 22:20:49 +00:00
2017-12-07 10:40:31 +00:00
2018-02-09 00:10:31 +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-11-30 16:12:24 +00:00
2017-08-11 06:57:08 +00:00
2017-06-28 07:07:03 +00:00
2018-02-15 19:17:55 +00:00
2018-02-15 14:44:22 +00:00
2018-01-19 17:13:12 +00:00
2018-02-27 16:59:10 +00:00
2017-06-28 07:07:03 +00:00
2017-12-04 17:18:51 +00:00
2018-05-03 12:54:25 +00:00
2018-01-19 17:13:12 +00:00
2017-06-28 07:07:03 +00:00
2018-03-14 21:52:13 +00:00
2017-08-03 02:16:21 +00:00
2017-11-30 16:12:24 +00:00
2017-12-14 18:06:25 +00:00
2018-01-31 22:04:26 +00:00
2018-03-27 17:33:50 +00:00
2018-03-27 17:33:50 +00:00
2017-11-13 20:45:38 +00:00
2017-11-30 16:12:24 +00:00
2017-06-28 07:07:03 +00:00
2018-02-16 09:23:59 +00:00
2018-02-16 09:51:01 +00:00
2017-09-18 17:28:15 +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-04-13 22:25:20 +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-02-06 23:22:14 +00:00
2018-01-19 17:13:12 +00:00
2017-12-07 10:40:31 +00:00
2017-06-28 07:07:03 +00:00
2018-03-14 21:52:13 +00:00
2018-01-31 22:04:26 +00:00
2017-08-01 22:20:49 +00:00
2017-12-04 17:18:51 +00:00
2017-12-04 17:18:51 +00:00
2018-04-27 12:50:40 +00:00
2017-12-04 17:18:51 +00:00
2017-08-09 15:39:10 +00:00
2017-08-30 18:06:51 +00:00
2017-09-01 18:36:26 +00:00
2017-12-04 17:18:51 +00:00
2018-04-07 10:57:03 +00:00
2018-01-19 17:46:27 +00:00
2017-08-01 22:20:49 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2017-11-30 16:12:24 +00:00
2018-02-06 23:00:17 +00:00
2017-11-28 01:17:52 +00:00
2017-12-11 12:13:45 +00:00
2017-12-11 12:13:45 +00:00
2017-12-11 12:13:45 +00:00
2018-03-07 09:10:44 +00:00
2018-01-31 22:04:26 +00:00
2018-01-08 14:47:19 +00:00
2017-11-30 16:12:24 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2017-09-14 14:48:59 +00:00
2017-07-05 17:55:42 +00:00
2018-02-28 17:13:07 +00:00
2017-08-01 22:20:49 +00:00
2018-01-31 22:04:26 +00:00
2018-05-09 02:40:45 +00:00
2017-08-28 20:20:47 +00:00
2017-08-28 20:20:47 +00:00
2017-12-04 17:18:51 +00:00
2018-02-16 09:51:01 +00:00
2018-02-16 09:23:59 +00:00
2018-01-31 22:55:19 +00:00
2018-02-16 09:23:59 +00:00
2017-09-28 19:04:30 +00:00
2018-04-09 08:16:11 +00:00
2018-01-24 18:00:57 +00:00
2017-06-12 17:15:41 +00:00
2018-03-14 21:52:13 +00:00
2018-03-14 15:44:07 +00:00
2017-09-28 19:04:14 +00:00
2018-01-12 09:21:09 +00:00
2017-07-19 12:57:16 +00:00
2018-02-02 00:08:19 +00:00
2017-08-01 22:20:49 +00:00
2018-01-19 17:13:12 +00:00
2018-03-26 20:40:22 +00:00
2017-06-30 00:03:54 +00:00
2018-02-16 09:51:01 +00:00
2018-01-19 17:13:12 +00:00
2017-08-22 11:02:37 +00:00
2018-01-09 17:31:07 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2018-04-11 16:03:07 +00:00
2018-01-31 22:04:26 +00:00
2018-02-09 00:10:31 +00:00
2018-01-19 17:13:12 +00:00
2018-02-09 00:10:31 +00:00
2017-11-27 10:13:14 +00:00
2017-08-01 22:20:49 +00:00
2018-01-31 22:04:26 +00:00
2017-06-29 14:51:54 +00:00
2017-11-30 16:12:24 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2018-02-12 11:06:27 +00:00
2017-11-02 10:43:10 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 00:28:40 +00:00
2017-12-20 11:13:57 +00:00
2018-01-31 22:04:26 +00:00
2017-06-20 15:01:38 +00:00
2018-01-26 10:20:58 +00:00
2017-12-04 17:18:51 +00:00
2017-08-01 22:20:49 +00:00
2017-12-04 17:18:51 +00:00
2017-06-28 07:07:03 +00:00
2017-11-30 16:12:24 +00:00
2017-08-01 22:20:49 +00:00
2017-12-04 17:18:51 +00:00
2017-11-30 16:12:24 +00:00
2017-06-28 07:07:03 +00:00
2018-05-01 19:26:15 +00:00
2017-06-22 12:11:38 +00:00
2017-08-01 22:20:49 +00:00
2017-12-04 17:18:51 +00:00
2017-08-01 22:20:49 +00:00
2018-05-09 02:40:45 +00:00
2017-06-28 07:07:03 +00:00
2018-01-31 22:04:26 +00:00
2017-06-28 07:07:03 +00:00
2017-06-28 07:07:03 +00:00
2018-03-02 13:02:55 +00:00
2018-03-02 13:02:55 +00:00
2017-06-28 07:07:03 +00:00
2017-06-28 07:07:03 +00:00
2018-01-31 22:04:26 +00:00
2017-08-01 22:20:49 +00:00
2017-12-04 17:18:51 +00:00
2018-04-13 12:45:12 +00:00
2017-08-01 22:20:49 +00:00
2017-09-25 19:26:08 +00:00
2017-06-28 07:07:03 +00:00
2018-03-02 13:02:55 +00:00
2018-03-02 13:02:55 +00:00
2017-06-28 07:07:03 +00:00
2017-12-04 17:18:51 +00:00
2018-05-03 12:54:25 +00:00
2017-12-04 17:18:51 +00:00
2017-08-22 11:02:45 +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
2017-08-01 22:20:49 +00:00