|
11 | 11 | //===----------------------------------------------------------------------===//
|
12 | 12 |
|
13 | 13 | #include "flang/Optimizer/HLFIR/HLFIROps.h"
|
| 14 | + |
14 | 15 | #include "flang/Optimizer/Dialect/FIROpsSupport.h"
|
15 | 16 | #include "flang/Optimizer/Dialect/FIRType.h"
|
16 | 17 | #include "flang/Optimizer/Dialect/Support/FIRContext.h"
|
@@ -1152,7 +1153,9 @@ hlfir::MatmulOp::canonicalize(MatmulOp matmulOp,
|
1152 | 1153 |
|
1153 | 1154 | // but we do need to get rid of the hlfir.destroy for the hlfir.transpose
|
1154 | 1155 | // result (which is entirely removed)
|
1155 |
| - for (mlir::Operation *user : transposeOp->getResult(0).getUsers()) |
| 1156 | + llvm::SmallVector<mlir::Operation *> users( |
| 1157 | + transposeOp->getResult(0).getUsers()); |
| 1158 | + for (mlir::Operation *user : users) |
1156 | 1159 | if (auto destroyOp = mlir::dyn_cast_or_null<hlfir::DestroyOp>(user))
|
1157 | 1160 | rewriter.eraseOp(destroyOp);
|
1158 | 1161 | rewriter.eraseOp(transposeOp);
|
@@ -1864,7 +1867,8 @@ hlfir::ForallIndexOp::canonicalize(hlfir::ForallIndexOp indexOp,
|
1864 | 1867 | return mlir::failure();
|
1865 | 1868 |
|
1866 | 1869 | auto insertPt = rewriter.saveInsertionPoint();
|
1867 |
| - for (mlir::Operation *user : indexOp->getResult(0).getUsers()) |
| 1870 | + llvm::SmallVector<mlir::Operation *> users(indexOp->getResult(0).getUsers()); |
| 1871 | + for (mlir::Operation *user : users) |
1868 | 1872 | if (auto loadOp = mlir::dyn_cast<fir::LoadOp>(user)) {
|
1869 | 1873 | rewriter.setInsertionPoint(loadOp);
|
1870 | 1874 | rewriter.replaceOpWithNewOp<fir::ConvertOp>(
|
|
0 commit comments