Kai Lin
df58c38b5a
[RISCV][DAGCombiner] Fix potential missed combine in VL->VW extension ( #168026 )
...
The previous implementation of `combineOp_VLToVWOp_VL` manually replaced
old
nodes with newly created widened nodes, but only added the new node
itself to
the `DAGCombiner` worklist. Since the users of the new node were not
added,
some combine opportunities could be missed when external `DAGCombiner`
passes
expected those users to be reconsidered.
This patch replaces the custom replacement logic with a call to
`DCI.CombineTo()`, which performs node replacement in a way consistent
with
`DAGCombiner::Run`:
- Replace all uses of the old node.
- Add the new node and its users to the worklist.
- Clean up unused nodes when appropriate.
Using `CombineTo` ensures that `combineOp_VLToVWOp_VL` behaves
consistently with
the standard `DAGCombiner` update model, avoiding discrepancies between
the
private worklist inside this routine and the global worklist managed by
the
combiner.
This resolves missed combine cases involving VL -> VW operator widening.
---------
Co-authored-by: Kai Lin <omg_link@qq.com>
2025-11-19 12:20:22 -08:00
..
2025-11-17 19:05:19 -08:00
2025-10-21 18:27:21 -07:00
2025-11-18 18:49:13 +00:00
2025-10-25 06:23:43 -07:00
2025-11-11 22:32:57 -08:00
2025-08-22 09:21:10 +02:00
2025-11-05 14:31:17 +00:00
2025-11-19 06:51:18 +00:00
2025-06-04 16:11:43 +08:00
2025-10-14 02:01:57 +00:00
2025-08-11 08:57:53 +02:00
2025-08-11 08:57:53 +02:00
2025-07-30 16:30:48 +08:00
2025-11-19 06:51:18 +00:00
2025-10-23 15:50:04 +08:00
2025-10-25 06:23:43 -07:00
2025-11-10 15:43:55 -08:00
2025-10-28 12:51:11 -07:00
2025-11-12 15:47:49 +05:30
2025-11-10 16:09:57 +08:00
2025-04-22 19:24:29 -07:00
2025-11-18 02:46:43 -05:00
2025-11-18 02:46:43 -05:00
2025-10-20 08:50:09 +00:00
2025-10-07 21:30:09 -07:00
2025-09-08 15:02:48 +08:00
2025-11-13 09:11:19 +00:00
2025-11-02 17:16:47 -08:00
2025-10-13 23:19:23 -07:00
2025-09-04 16:02:34 +00:00
2025-05-09 12:36:59 -07:00
2025-11-12 15:47:49 +05:30
2025-11-10 16:24:39 -08:00
2025-10-31 14:42:16 +00:00
2025-10-21 09:33:19 -07:00
2025-09-22 20:50:17 +03:00
2025-10-31 14:42:16 +00:00
2025-10-31 14:42:16 +00:00
2025-08-22 14:46:41 -07:00
2025-11-14 07:48:37 +00:00
2025-05-15 10:58:13 +08:00
2025-11-12 15:47:49 +05:30
2025-09-19 23:57:59 +08:00
2025-10-16 21:26:34 -07:00
2025-09-30 19:53:21 -07:00
2025-09-30 19:53:21 -07:00
2025-09-30 19:53:21 -07:00
2025-10-11 09:57:10 -07:00
2025-10-06 11:33:20 -07:00
2025-11-12 15:47:49 +05:30
2025-08-15 01:19:03 +00:00
2025-10-24 18:09:03 +00:00
2025-11-17 19:05:19 -08:00
2025-08-21 13:12:46 +08:00
2025-11-04 09:56:59 -08:00
2025-09-04 16:02:34 +00:00
2025-10-07 22:24:52 -07:00
2025-10-07 21:30:09 -07:00
2025-10-24 18:20:53 +00:00
2025-07-24 18:03:30 -07:00
2025-08-25 14:06:28 -07:00
2025-05-22 08:39:57 -07:00
2025-09-17 12:10:47 -07:00
2025-11-03 12:35:06 -08:00
2025-09-18 11:03:48 +08:00
2025-08-22 14:46:41 -07:00
2025-09-15 00:57:31 +03:00
2025-05-09 12:36:59 -07:00
2025-05-14 09:54:07 -07:00
2025-08-25 14:06:28 -07:00
2025-05-09 12:36:59 -07:00
2025-11-10 04:06:17 +00:00
2025-09-19 07:49:31 +00:00
2025-08-02 21:53:58 -07:00
2025-09-05 11:38:58 +08:00
2025-10-13 15:06:31 +00:00
2025-10-20 08:50:09 +00:00
2025-11-12 19:32:06 -08:00
2025-10-14 02:01:57 +00:00
2025-11-19 12:20:22 -08:00
2025-11-18 11:13:54 -08:00
2025-06-25 23:09:24 -07:00
2025-10-06 11:33:20 -07:00
2025-04-25 17:12:27 -07:00
2025-10-25 06:23:43 -07:00
2025-08-06 14:46:34 -04:00
2025-10-03 08:53:58 -07:00
2025-05-23 08:30:29 -07:00
2025-08-20 09:07:58 -07:00
2025-10-30 08:42:38 -07:00
2025-11-19 06:51:18 +00:00
2025-10-10 01:26:17 +00:00
2025-04-18 10:59:32 +08:00
2025-11-05 14:31:17 +00:00
2025-06-25 23:09:24 -07:00
2025-10-31 10:05:14 -07:00
2025-09-12 09:18:50 +00:00
2025-11-11 17:01:45 +08:00
2025-08-13 11:19:49 -07:00
2025-07-10 14:15:22 +08:00
2025-07-10 14:15:22 +08:00
2025-07-10 14:15:22 +08:00
2025-10-24 18:09:03 +00:00
2025-07-10 14:15:22 +08:00
2025-07-10 14:15:22 +08:00
2025-07-10 14:15:22 +08:00
2025-07-10 14:15:22 +08:00
2025-11-19 14:53:20 -03:00
2025-07-10 14:15:22 +08:00
2025-07-10 14:15:22 +08:00
2025-07-10 14:15:22 +08:00
2025-07-10 14:15:22 +08:00
2025-10-24 18:09:03 +00:00
2025-10-10 01:26:17 +00:00
2025-10-24 18:09:03 +00:00
2025-07-10 14:15:22 +08:00
2025-11-16 18:26:03 +03:00
2025-08-04 12:51:14 +05:30
2025-11-19 00:08:24 -08:00
2025-11-12 21:12:19 +00:00
2025-05-22 08:46:48 -07:00
2025-11-19 06:51:18 +00:00
2025-06-15 16:51:09 -07:00
2025-06-15 16:51:09 -07:00
2025-11-19 09:51:12 +08:00
2025-11-19 09:51:12 +08:00
2025-07-18 10:56:07 +08:00
2025-11-10 15:43:55 -08:00
2025-11-18 06:38:55 +00:00
2025-05-23 08:30:29 -07:00