================ @@ -220,6 +220,31 @@ def LoopLikeOpInterface : OpInterface<"LoopLikeOpInterface"> { /*defaultImplementation=*/[{ return ::mlir::failure(); }] + >, + InterfaceMethod<[{ + Add a zero-trip-check around the loop to check if the loop body is ever + run and return the new loop inside the check. The loop body is moved + over to the new loop. Returns "failure" if the loop doesn't support + this transformation. + + After the transformation, the ops inserted to the parent region of the + loop are guaranteed to be run only if the loop body runs at least one + iteration. + + Note: Ops in the loop body might be rearranged because of loop rotating + to maintain the semantic. Terminators might be removed/added during this + transformation. Also callers are not required to check the side-effect + of loop condition, so the transformation needs to consider that to make + sure the loop behavior is unchanged when moving the condtion out of the ---------------- pzread wrote:
Fixed. https://github.com/llvm/llvm-project/pull/80331 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits