================ @@ -81,6 +81,47 @@ void naivelyFuseParallelOps(Region ®ion); LogicalResult peelForLoopAndSimplifyBounds(RewriterBase &rewriter, ForOp forOp, scf::ForOp &partialIteration); +/// Rewrite a for loop with bounds/step that potentially do not divide the +/// iteration space evenly into a chain of for loops where the step is a +/// power of 2 and decreases exponentially across subsequent loops. +/// +/// E.g., assuming a lower bound of 0, the following loop +/// ``` +/// scf.for %iv = %c0 to %ub step %c8 { +/// (loop body) +/// } +/// ``` +/// is rewritten into the following pseudo IR: +/// ``` +/// %newUb = %ub - (%ub mod %c8) +/// scf.for %iv = %c0 to %newUb step %c8 { +/// (loop body) +/// } +/// %newUb2 = %ub - (%ub mod %c4) +/// scf.for %iv2 = %newUb to %newUb2 { ---------------- matthias-springer wrote:
Step size is missing. https://github.com/llvm/llvm-project/pull/71555 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits