David Green
b65267ca7b
[LV] Invalidate widening decisions after maximizing vector bandwidth
...
When MaximizeVectorBandwidth is enabled, we can end up (via calls to
collectUniformsAndScalars/setCostBasedWideningDecision through
calculateRegisterUsage) making widening decisions before we have decided
whether to fold the tail by masking. These decisions will be wrong if we
later decided to fold the tail, for example when the trip count is very
low. It will use incorrect costs for loads that should get masked, using
standard memory operation costs instead.
This still at the moment uses the EmulatedMaskMemRefHack costs (a bit
unfortunately), but the old costs without this change were 1, leading to
too optimistic vectorization.
This slightly changes the way that the MaximizeVectorBandwidth option
works to make it easier to test, always honouring the option if it is
set.
Differential Revision: https://reviews.llvm.org/D120215
2022-03-31 09:19:31 +01:00
..
2022-03-31 09:19:31 +01:00
2021-06-07 12:13:21 +01:00
2022-03-13 17:15:24 +00:00
2022-02-28 14:12:20 +00:00
2022-01-22 20:18:40 -08:00
2022-03-07 19:32:37 +03:00
2022-03-29 22:52:43 +01:00
2021-08-06 10:13:15 +01:00
2021-12-13 16:56:22 -08:00
2022-03-09 17:50:34 -05:00
2022-03-02 10:12:38 +00:00
2021-11-28 09:49:28 +00:00
2021-06-07 10:47:52 +01:00
2022-03-23 20:21:58 +00:00
2021-05-24 19:43:40 +02:00
2022-02-02 12:07:51 +00:00
2021-05-24 19:43:40 +02:00
2022-01-05 10:46:06 +00:00
2022-01-29 16:25:27 +00:00
2022-01-29 16:25:27 +00:00
2022-01-24 12:03:31 +00:00
2021-04-28 17:27:52 -04:00
2021-12-13 16:56:22 -08:00
2021-06-07 10:47:52 +01:00
2022-02-11 09:15:42 +00:00
2022-03-13 17:15:24 +00:00
2022-03-07 19:57:26 +00:00
2022-03-13 17:15:24 +00:00
2022-03-18 11:53:45 +08:00
2022-03-13 17:15:24 +00:00
2021-10-27 22:21:37 +03:00
2021-11-24 16:20:35 +00:00
2022-01-08 20:46:31 +00:00
2021-10-18 16:48:10 -07:00
2022-03-13 17:15:24 +00:00
2021-06-07 10:47:52 +01:00
2021-12-20 15:10:41 +00:00
2022-02-28 14:12:20 +00:00
2021-05-24 19:43:40 +02:00
2022-02-28 14:12:20 +00:00
2022-03-13 21:42:17 +00:00
2022-02-26 16:26:39 +00:00
2021-10-27 22:21:37 +03:00
2022-03-18 11:53:45 +08:00
2022-03-14 19:39:30 +00:00
2022-03-07 19:32:37 +03:00
2021-12-13 16:56:22 -08:00
2022-03-18 11:53:45 +08:00
2021-06-17 09:38:28 +02:00
2021-12-13 16:56:22 -08:00
2021-12-13 16:56:22 -08:00
2022-03-13 17:15:24 +00:00
2021-08-05 14:39:08 +01:00
2022-03-13 17:15:24 +00:00
2022-03-07 19:32:37 +03:00
2021-12-13 16:56:22 -08:00
2022-02-09 20:02:54 +00:00
2022-02-23 15:57:39 +00:00
2021-12-20 16:23:29 +00:00
2021-09-15 10:45:50 +01:00
2021-05-24 19:43:40 +02:00
2021-10-18 18:03:09 +01:00
2021-10-18 18:03:09 +01:00
2022-03-07 19:32:37 +03:00
2021-08-16 20:40:55 +02:00
2021-09-10 15:18:23 +02:00
2022-03-07 19:32:37 +03:00
2021-06-07 10:47:52 +01:00
2022-03-07 19:32:37 +03:00
2022-02-28 14:12:20 +00:00
2022-02-09 20:02:54 +00:00
2021-06-07 10:47:52 +01:00
2021-06-07 10:47:52 +01:00
2022-01-12 13:42:13 +00:00
2021-06-07 10:47:52 +01:00
2022-02-28 14:12:20 +00:00
2021-09-18 20:51:00 +02:00
2022-01-12 12:37:46 +00:00
2022-01-15 11:26:44 +00:00
2022-01-17 13:28:59 +00:00
2021-06-07 14:47:36 -07:00
2022-03-07 19:32:37 +03:00
2022-03-13 17:15:24 +00:00
2022-02-26 16:26:39 +00:00
2022-01-07 14:49:02 +00:00
2022-01-29 16:25:27 +00:00
2022-02-26 16:26:39 +00:00
2022-02-26 16:26:39 +00:00
2021-10-18 18:03:09 +01:00
2022-01-29 16:25:27 +00:00
2021-06-07 10:47:52 +01:00
2022-02-22 12:04:35 +00:00
2022-02-24 09:01:20 +01:00
2022-02-22 12:04:35 +00:00
2022-02-24 09:01:20 +01:00
2022-01-17 14:34:21 +00:00
2022-03-15 11:13:18 +00:00
2022-02-24 09:01:20 +01:00
2021-11-15 13:12:57 +00:00
2022-01-24 21:26:38 +00:00
2021-05-11 14:32:34 +01:00
2021-07-15 08:53:51 -07:00
2022-02-28 14:12:20 +00:00
2021-05-24 19:43:40 +02:00
2022-02-28 14:12:20 +00:00
2021-05-24 19:43:40 +02:00
2022-02-07 12:08:56 +00:00
2022-01-11 17:30:48 +00:00
2021-06-07 10:47:52 +01:00
2021-08-06 10:13:15 +01:00
2021-08-10 08:27:43 +01:00
2022-03-13 17:15:24 +00:00
2021-08-06 10:13:15 +01:00
2021-06-07 10:47:52 +01:00
2021-08-06 10:13:15 +01:00
2021-11-10 09:42:58 +00:00
2021-07-07 15:30:10 +01:00
2021-08-15 12:15:52 +01:00
2021-10-27 22:21:37 +03:00
2021-04-28 13:41:07 +01:00
2021-11-18 14:08:57 +00:00
2021-05-24 19:43:40 +02:00
2021-10-27 22:21:37 +03:00
2021-10-11 09:41:38 +01:00
2022-02-26 16:26:39 +00:00
2022-03-13 17:15:24 +00:00
2021-11-10 11:21:19 +00:00
2022-01-29 16:25:27 +00:00
2022-02-07 12:08:56 +00:00
2022-02-09 20:02:54 +00:00
2021-07-30 18:04:09 +01:00
2022-03-13 17:15:24 +00:00
2021-10-27 22:21:37 +03:00
2021-06-07 10:47:52 +01:00
2022-02-07 18:07:19 +00:00
2022-02-02 12:07:51 +00:00
2022-02-28 14:12:20 +00:00
2022-02-26 14:52:55 +00:00
2022-03-07 19:32:37 +03:00
2021-12-13 16:56:22 -08:00
2022-01-24 13:04:09 +00:00
2021-09-14 11:19:12 +01:00
2022-03-02 16:23:19 +00:00
2022-03-20 10:11:40 +00:00
2022-03-02 16:23:19 +00:00
2022-03-13 17:15:24 +00:00
2022-01-12 13:42:13 +00:00
2022-01-12 13:42:13 +00:00