Florian Hahn
6f253e87dd
Reapply "[VPlan] Run narrowInterleaveGroups during general VPlan optimizations. ( #149706 )"
...
This reverts commit 8d29d09309654541fb2861524276ada6a3ebf84c.
The underlying issue causing the revert has been fixed independently
as 301fa24671256734df6b7ee65f23ad885400108e.
Original message:
Move narrowInterleaveGroups to to general VPlan optimization stage.
To do so, narrowInterleaveGroups now has to find a suitable VF where all
interleave groups are consecutive and saturate the full vector width.
If such a VF is found, the original VPlan is split into 2:
a) a new clone which contains all VFs of Plan, except VFToOptimize, and
b) the original Plan with VFToOptimize as single VF.
The original Plan is then optimized. If a new copy for the other VFs has
been created, it is returned and the caller has to add it to the list of
candidate plans.
Together with https://github.com/llvm/llvm-project/pull/149702 , this
allows to take the narrowed interleave groups into account when
computing costs to choose the best VF and interleave count.
One example where we currently miss interleaving/unrolling when
narrowing interleave groups is https://godbolt.org/z/Yz77zbacz
PR: https://github.com/llvm/llvm-project/pull/149706
2026-02-15 20:10:10 +00:00
..
2026-02-06 18:38:56 +00:00
2025-06-11 22:19:31 -07:00
2025-10-14 22:00:25 +00:00
2025-10-14 22:00:25 +00:00
2024-12-02 17:08:07 -08:00
2025-01-09 22:36:10 -08:00
2025-07-03 07:25:38 +09:00
2025-01-22 22:39:43 -08:00
2025-04-02 20:27:43 +01:00
2026-02-06 00:40:25 +00:00
2024-12-10 09:21:58 -08:00
2025-06-24 11:40:47 -07:00
2024-12-02 17:08:07 -08:00
2025-07-03 11:01:36 +01:00
2025-01-09 22:36:10 -08:00
2025-09-19 10:11:15 -07:00
2025-07-03 07:25:38 +09:00
2025-09-19 10:11:15 -07:00
2025-08-08 11:09:34 +02:00
2025-02-17 09:04:29 +00:00
2024-10-22 13:48:00 -07:00
2025-04-30 15:01:00 +02:00
2025-04-30 15:01:00 +02:00
2025-09-08 15:43:51 +00:00
2026-01-21 09:50:28 +00:00
2026-01-25 18:24:12 -05:00
2026-01-25 18:24:12 -05:00
2025-09-25 14:49:25 -07:00
2024-10-09 14:31:16 -07:00
2024-10-09 14:31:16 -07:00
2025-11-12 04:33:41 +08:00
2025-11-12 04:33:41 +08:00
2026-01-08 15:07:59 +01:00
2026-01-08 15:07:59 +01:00
2026-01-30 12:05:15 -08:00
2025-07-03 07:25:38 +09:00
2024-12-02 17:08:07 -08:00
2025-09-02 16:21:35 -07:00
2024-12-10 06:28:09 -08:00
2025-07-01 20:26:30 -07:00
2025-10-20 09:12:00 +01:00
2025-02-17 09:09:52 +00:00
2025-07-25 12:30:59 -07:00
2025-04-01 10:47:35 -07:00
2024-12-10 06:28:09 -08:00
2026-01-08 16:19:44 -08:00
2026-01-08 15:07:59 +01:00
2025-02-26 14:05:00 -08:00
2026-02-12 13:33:18 -08:00
2025-07-29 09:58:57 +02:00
2025-07-29 09:58:57 +02:00
2026-02-12 13:33:18 -08:00
2026-02-12 13:33:18 -08:00
2026-02-12 13:33:18 -08:00
2026-02-12 13:33:18 -08:00
2025-08-12 09:56:51 +09:00
2025-12-02 18:23:17 +00:00
2025-10-13 17:22:48 -07:00
2025-08-15 12:06:47 -07:00
2026-02-15 20:10:10 +00:00
2024-12-10 09:21:58 -08:00
2024-12-10 06:28:09 -08:00
2025-12-22 11:13:56 +01:00
2025-03-20 18:18:03 -07:00
2025-08-27 11:39:26 +01:00
2026-02-06 12:41:39 -08:00
2025-07-03 11:01:36 +01:00
2025-09-30 08:28:56 +01:00
2025-06-24 11:40:47 -07:00
2025-06-24 11:40:47 -07:00
2025-06-24 11:40:47 -07:00
2024-10-15 02:41:43 +09:00
2025-08-07 13:07:04 -07:00
2024-12-02 17:08:07 -08:00
2025-07-22 15:34:23 -07:00
2025-08-08 11:09:34 +02:00
2025-10-08 11:52:18 -07:00
2026-02-06 12:41:39 -08:00
2026-02-06 12:41:39 -08:00
2025-06-24 11:40:47 -07:00
2026-01-25 18:24:12 -05:00
2025-07-01 15:13:08 -07:00
2025-11-17 10:39:18 +00:00
2025-07-21 09:17:29 -07:00
2026-02-03 17:02:53 +09:00
2025-11-18 02:41:16 -08:00
2025-07-21 09:17:29 -07:00
2025-07-01 15:13:08 -07:00
2026-01-15 08:39:42 +00:00
2026-01-08 09:28:14 +09:00
2026-01-08 09:28:14 +09:00
2026-01-12 09:25:54 +00:00
2025-10-16 15:01:57 +00:00
2026-01-08 15:07:59 +01:00
2026-01-28 09:25:41 +00:00
2026-01-28 09:25:41 +00:00
2025-10-13 16:50:53 +01:00
2025-07-11 10:13:05 +01:00
2025-10-07 23:52:25 +00:00
2025-08-15 12:06:47 -07:00
2025-11-24 09:27:25 +08:00
2025-04-03 11:14:08 +01:00
2026-01-28 20:45:04 +09:00
2026-01-08 16:19:44 -08:00
2025-11-20 08:57:08 +00:00
2025-10-22 11:43:44 +01:00
2025-01-21 23:55:50 +07:00
2026-01-14 12:26:10 +00:00
2025-06-24 11:40:47 -07:00
2024-12-02 17:08:07 -08:00
2025-07-30 13:04:02 -07:00
2024-12-02 17:08:07 -08:00
2024-11-26 17:19:14 -08:00
2024-12-10 06:28:09 -08:00
2025-11-05 01:35:15 +00:00
2025-07-09 09:25:53 +09:00
2026-01-09 08:51:06 -08:00
2026-02-10 09:01:13 +00:00
2025-09-10 21:33:44 +00:00
2026-02-12 13:33:18 -08:00
2025-03-31 11:36:32 -07:00
2025-03-21 06:57:57 +00:00