Fix MLIR test pass crash
authorMehdi Amini <joker.eph@gmail.com>
Tue, 25 Jul 2023 02:47:23 +0000 (19:47 -0700)
committerMehdi Amini <joker.eph@gmail.com>
Tue, 25 Jul 2023 02:54:56 +0000 (19:54 -0700)
The pass tried to fold in reverse-post-order, but it cause an issue
when a parent is folded before the chilren as they will still be
present in the worklist.
Use reverse-preorder instead here.

Fixes #64089

mlir/test/lib/Transforms/TestConstantFold.cpp

index 9896cf3..aa67e0a 100644 (file)
@@ -49,7 +49,7 @@ void TestConstantFold::runOnOperation() {
 
   // Collect and fold the operations within the operation.
   SmallVector<Operation *, 8> ops;
-  getOperation()->walk([&](Operation *op) { ops.push_back(op); });
+  getOperation()->walk<mlir::WalkOrder::PreOrder>([&](Operation *op) { ops.push_back(op); });
 
   // Fold the constants in reverse so that the last generated constants from
   // folding are at the beginning. This creates somewhat of a linear ordering to