https://github.com/matthias-springer updated
https://github.com/llvm/llvm-project/pull/71771
Sorry, this diff is unavailable.
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/matthias-springer approved this pull request.
https://github.com/llvm/llvm-project/pull/76670
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/matthias-springer edited
https://github.com/llvm/llvm-project/pull/71555
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/matthias-springer commented:
Sorry, I dropped the ball on this review. Here a few more small comments, I'm
going to do another more thorough review.
https://github.com/llvm/llvm-project/pull/71555
___
cfe-commits mailing list
cfe-co
@@ -105,6 +106,165 @@ static void specializeForLoopForUnrolling(ForOp op) {
op.erase();
}
+/// Create a new for loop for the remaining iterations (partiaIteration)
+/// after a for loop has been peeled. This is followed by correcting the
+/// loop bounds for both loops given
@@ -147,6 +147,43 @@ def LoopPeelOp : Op {
+ let description = [{
+Transforms the loop into a chain of loops, with step sizes that are
+powers of two and decrease exponetially across subsequent loops.
matthias-springer wrote:
typo
https://github.com/llv
@@ -206,6 +206,34 @@
transform::LoopPeelOp::applyToOne(transform::TransformRewriter &rewriter,
return DiagnosedSilenceableFailure::success();
}
+//===-===//
+// LoopContinuousPeelOp
+//===--
@@ -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 n
@@ -105,6 +106,165 @@ static void specializeForLoopForUnrolling(ForOp op) {
op.erase();
}
+/// Create a new for loop for the remaining iterations (partiaIteration)
+/// after a for loop has been peeled. This is followed by correcting the
+/// loop bounds for both loops given
@@ -105,6 +106,167 @@ static void specializeForLoopForUnrolling(ForOp op) {
op.erase();
}
+/// Create a new for loop for the remaining iterations (partiaIteration)
+/// after a for loop has been peeled. This is followed by correcting the
+/// loop bounds for both loops given
@@ -105,6 +106,167 @@ static void specializeForLoopForUnrolling(ForOp op) {
op.erase();
}
+/// Create a new for loop for the remaining iterations (partiaIteration)
+/// after a for loop has been peeled. This is followed by correcting the
+/// loop bounds for both loops given
@@ -0,0 +1,46 @@
+// RUN: mlir-opt %s
-scf-for-loop-continuous-peeling=convert-single-iter-loops-to-if=true
-split-input-file | FileCheck %s
+
+#map = affine_map<(d0, d1)[s0] -> (s0, d0 - d1)>
+func.func @foo(%ub: index) -> index {
+ %c0 = arith.constant 0 : index
+ %step = ar
@@ -105,6 +106,167 @@ static void specializeForLoopForUnrolling(ForOp op) {
op.erase();
}
+/// Create a new for loop for the remaining iterations (partiaIteration)
+/// after a for loop has been peeled. This is followed by correcting the
+/// loop bounds for both loops given
@@ -105,6 +106,167 @@ static void specializeForLoopForUnrolling(ForOp op) {
op.erase();
}
+/// Create a new for loop for the remaining iterations (partiaIteration)
+/// after a for loop has been peeled. This is followed by correcting the
+/// loop bounds for both loops given
@@ -105,6 +106,167 @@ static void specializeForLoopForUnrolling(ForOp op) {
op.erase();
}
+/// Create a new for loop for the remaining iterations (partiaIteration)
+/// after a for loop has been peeled. This is followed by correcting the
+/// loop bounds for both loops given
@@ -0,0 +1,46 @@
+// RUN: mlir-opt %s
-scf-for-loop-continuous-peeling=convert-single-iter-loops-to-if=true
-split-input-file | FileCheck %s
+
+#map = affine_map<(d0, d1)[s0] -> (s0, d0 - d1)>
+func.func @foo(%ub: index) -> index {
+ %c0 = arith.constant 0 : index
+ %step = ar
@@ -189,16 +188,17 @@ LogicalResult
scf::canonicalizeMinMaxOpInLoop(RewriterBase &rewriter,
/// * Inside the peeled loop: min(step, ub - iv) == step
/// * Inside the partial iteration: min(step, ub - iv) == ub - iv
///
-/// Returns `success` if the given operation was replaced
@@ -105,6 +106,167 @@ static void specializeForLoopForUnrolling(ForOp op) {
op.erase();
}
+/// Create a new for loop for the remaining iterations (partiaIteration)
+/// after a for loop has been peeled. This is followed by correcting the
+/// loop bounds for both loops given
@@ -105,6 +106,167 @@ static void specializeForLoopForUnrolling(ForOp op) {
op.erase();
}
+/// Create a new for loop for the remaining iterations (partiaIteration)
+/// after a for loop has been peeled. This is followed by correcting the
+/// loop bounds for both loops given
@@ -105,6 +106,167 @@ static void specializeForLoopForUnrolling(ForOp op) {
op.erase();
}
+/// Create a new for loop for the remaining iterations (partiaIteration)
matthias-springer wrote:
typo: partiaIteration
https://github.com/llvm/llvm-project/pull/715
@@ -105,6 +106,167 @@ static void specializeForLoopForUnrolling(ForOp op) {
op.erase();
}
+/// Create a new for loop for the remaining iterations (partiaIteration)
+/// after a for loop has been peeled. This is followed by correcting the
+/// loop bounds for both loops given
matthias-springer wrote:
Can you re-open the old PR and force-push the contents of this PR to the old
PR? Ideally, we'd keep using the old PR, so that we don't loose the review
comments.
https://github.com/llvm/llvm-project/pull/77328
___
cfe-commit
@@ -105,6 +106,161 @@ static void specializeForLoopForUnrolling(ForOp op) {
op.erase();
}
+/// Create a new for loop for the remaining iterations (partialIteration)
+/// after a for loop has been peeled. This is followed by correcting the
+/// loop bounds for both loops give
@@ -105,6 +106,161 @@ static void specializeForLoopForUnrolling(ForOp op) {
op.erase();
}
+/// Create a new for loop for the remaining iterations (partialIteration)
+/// after a for loop has been peeled. This is followed by correcting the
+/// loop bounds for both loops give
https://github.com/matthias-springer closed
https://github.com/llvm/llvm-project/pull/79098
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/matthias-springer approved this pull request.
https://github.com/llvm/llvm-project/pull/79786
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -351,6 +354,16 @@ struct BufferizationOptions {
/// used.
UnknownTypeConverterFn unknownTypeConverterFn = nullptr;
+ // Use during type conversion to determine the memory space for memref based
+ // on the originanl tensor type
+ GetMemorySpaceFn getMemorySpaceFn = n
@@ -0,0 +1,8 @@
+// RUN: mlir-opt %s
-pass-pipeline='builtin.module(func.func(scf-parallel-loop-tiling{parallel-loop-tile-sizes=0,0}))'
-split-input-file -verify-diagnostics
+
+// XFAIL: *
matthias-springer wrote:
I didn't know that. Sounds good!
https://githu
https://github.com/matthias-springer approved this pull request.
https://github.com/llvm/llvm-project/pull/66563
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/matthias-springer updated
https://github.com/llvm/llvm-project/pull/65852
>From d9d8bcbb98e8f5aecb9733329389d61a489bd731 Mon Sep 17 00:00:00 2001
From: Yingwei Zheng
Date: Sat, 9 Sep 2023 23:07:29 +0800
Subject: [PATCH 01/10] [InstCombine] Simplify the pattern `a ne/eq (zext
https://github.com/matthias-springer updated
https://github.com/llvm/llvm-project/pull/65852
>From d9d8bcbb98e8f5aecb9733329389d61a489bd731 Mon Sep 17 00:00:00 2001
From: Yingwei Zheng
Date: Sat, 9 Sep 2023 23:07:29 +0800
Subject: [PATCH 01/10] [InstCombine] Simplify the pattern `a ne/eq (zext
https://github.com/matthias-springer approved this pull request.
https://github.com/llvm/llvm-project/pull/106658
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -189,7 +189,7 @@ static StringRef NormalizeGNUAttrSpelling(StringRef
AttrSpelling) {
typedef std::vector> ParsedAttrMap;
-static ParsedAttrMap getParsedAttrList(const RecordKeeper &Records,
matthias-springer wrote:
I expected to see more `const` instead
@@ -16,7 +16,7 @@ like Toy to get the information they need.
MLIR provides a set of always available-hooks for certain core transformations,
as seen in the [previous chapter](Ch-3.md), where we registered some
-canonicalizations via a hook on our operations (`getCanonicalizati
@@ -121,7 +121,7 @@ struct EmulateWideIntPass final
[&typeConverter](Operation *op) { return typeConverter.isLegal(op); });
RewritePatternSet patterns(ctx);
-// Add common pattenrs to support contants, functions, etc.
matthias-springer wrote:
@@ -14,7 +14,7 @@
"name": "punctuation.definition.string.begin.cpp"
},
"1": {
- "name": "mlir.delimeter.raw.string.cpp"
matthias-springer wrote:
I'm not sure if this is safe to change...
https://github.com/llvm/llvm-project/
@@ -316,7 +316,7 @@ static omp::DeclareReductionOp
declareReduction(PatternRewriter &builder,
reduction, {arith::CmpFPredicate::OLT, arith::CmpFPredicate::OLE},
{arith::CmpFPredicate::OGT, arith::CmpFPredicate::OGE}, isMin) ||
matchSelectReduction(
-
@@ -239,7 +239,7 @@ std::optional
mlir::detail::getDefaultIndexBitwidth(
// Returns the endianness if specified in the given entry. If the entry is
empty
// the default endianness represented by an empty attribute is returned.
-Attribute mlir::detail::getDefaultEndianness(Da
@@ -335,7 +335,7 @@ SPIR-V Dialect op| LLVM Dialect op
`spirv.FOrdEqual` | `llvm.fcmp "oeq"`
`spirv.FOrdGreaterThan`| `llvm.fcmp "ogt"`
`spirv.FOrdGreaterThanEqual` | `llvm.fcmp "oge"`
-`spirv.FOrdLessThan` | `llvm.fcmp "olt"`
--
@@ -41,7 +41,7 @@ def Arith_CmpFPredicateAttr : I64EnumAttr<
I64EnumAttrCase<"OEQ", 1, "oeq">,
I64EnumAttrCase<"OGT", 2, "ogt">,
I64EnumAttrCase<"OGE", 3, "oge">,
- I64EnumAttrCase<"OLT", 4, "olt">,
matthias-springer wrote:
This is not a
matthias-springer wrote:
There are various places in `APFloat.h` and `APFloat.cpp` that contain
switch-case / if-check sequences for checking the type of semantics. I'm trying
to reduce these. What I had in mind:
* Removing `APFloatBase::IEEEhalf()`, `APFloatBase::BFloat()`, ..., and use a
si
https://github.com/matthias-springer created
https://github.com/llvm/llvm-project/pull/117291
* Add missing semantics to the `Semantics` enum.
* Move all documentation of the different semantics to the header file.
* Rename the `EnumToSemanatics` to `getSemantics`.
* Store enum value in `fltSema
https://github.com/matthias-springer edited
https://github.com/llvm/llvm-project/pull/117291
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/matthias-springer created
https://github.com/llvm/llvm-project/pull/123374
None
>From f595dfc75253a3ca80196f6e7f5fb38ca6d82376 Mon Sep 17 00:00:00 2001
From: Matthias Springer
Date: Fri, 17 Jan 2025 18:08:14 +0100
Subject: [PATCH] [experiment] Make `fltSemantics` public
---
44 matches
Mail list logo