3 Commits

Author SHA1 Message Date
fabrizio-indirli
dbd9818db3
[mlir][scf] Add parallelLoopUnrollByFactors() (#164958)
- In the SCF Utils, add the `parallelLoopUnrollByFactors()` function to
unroll scf::ParallelOp loops according to the specified unroll factors
- Add a test pass "TestParallelLoopUnrolling" and the related LIT test
- Expose `mlir::parallelLoopUnrollByFactors()`,
`mlir::generateUnrolledLoop()`, and `mlir::scf::computeUbMinusLb()`
functions in the mlir/Dialect/SCF/Utils/Utils.h and /IR/SCF.h headers to
make them available to other passes.
- In `mlir::generateUnrolledLoop()`, add an optional `IRMapping *clonedToSrcOpsMap` 
argument to map the new cloned operations to their
original ones. In the function body, change the default `AnnotateFn`
type to `static const` to silence potential warnings about dangling
references when a function_ref is assigned to a variable with automatic
storage.

Signed-off-by: Fabrizio Indirli <Fabrizio.Indirli@arm.com>
2025-10-27 14:51:51 +00:00
fabrizio-indirli
92e1be489a
Revert "[mlir][scf] Add parallelLoopUnrollByFactors()" (#164949)
Reverts llvm/llvm-project#163806 due to linking errors on the function
`mlir::scf::computeUbMinusLb`
2025-10-24 10:44:05 +01:00
fabrizio-indirli
86a2073b5b
[mlir][scf] Add parallelLoopUnrollByFactors() (#163806)
- In the SCF Utils, add the `parallelLoopUnrollByFactors()` function
  to unroll scf::ParallelOp loops according to the specified unroll factors
- Add a test pass "TestParallelLoopUnrolling" and the related LIT test
- Expose `mlir::parallelLoopUnrollByFactors()`, `mlir::generateUnrolledLoop()`,
  and `mlir::scf::computeUbMinusLb()` functions in the
  mlir/Dialect/SCF/Utils/Utils.h header to make them available 
  to other passes.
- In `mlir::generateUnrolledLoop()`, add also an optional 
  `IRMapping *clonedToSrcOpsMap` argument to map the new cloned 
  operations to their original ones.
  In the function body, change the default `AnnotateFn` type to 
  `static const` to silence potential warnings about dangling references 
   when a function_ref is assigned  to a variable with automatic storage.

Signed-off-by: Fabrizio Indirli <Fabrizio.Indirli@arm.com>
2025-10-24 10:01:02 +01:00