diff options
author | Matthias Springer <me@m-sp.org> | 2025-06-18 09:50:40 +0000 |
---|---|---|
committer | Matthias Springer <me@m-sp.org> | 2025-06-20 10:13:54 +0000 |
commit | 8371d783d5a474c42ed8f58294a66f1fd68a4fb4 (patch) | |
tree | a5a8e5bb31708b9e58c2328980e165a0f443eb16 | |
parent | 95bd05d7cae327e431ccdaf0a452a0573ade5357 (diff) | |
download | llvm-users/matthias-springer/unres_rew.zip llvm-users/matthias-springer/unres_rew.tar.gz llvm-users/matthias-springer/unres_rew.tar.bz2 |
[mlir][Transforms][NFC] Dialect Conversion: Manually push rewrite onto stackusers/matthias-springer/unres_rew
-rw-r--r-- | mlir/lib/Transforms/Utils/DialectConversion.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/mlir/lib/Transforms/Utils/DialectConversion.cpp b/mlir/lib/Transforms/Utils/DialectConversion.cpp index 3b669f5..623cb81 100644 --- a/mlir/lib/Transforms/Utils/DialectConversion.cpp +++ b/mlir/lib/Transforms/Utils/DialectConversion.cpp @@ -869,9 +869,10 @@ struct ConversionPatternRewriterImpl : public RewriterBase::Listener { /// Append a rewrite. Rewrites are committed upon success and rolled back upon /// failure. template <typename RewriteTy, typename... Args> - void appendRewrite(Args &&...args) { + RewriteTy *appendRewrite(Args &&...args) { rewrites.push_back( std::make_unique<RewriteTy>(*this, std::forward<Args>(args)...)); + return static_cast<RewriteTy *>(rewrites.back().get()); } /// Undo the rewrites (motions, splits) one by one in reverse order until @@ -1181,7 +1182,6 @@ UnresolvedMaterializationRewrite::UnresolvedMaterializationRewrite( mappedValues(std::move(mappedValues)) { assert((!originalType || kind == MaterializationKind::Target) && "original type is valid only for target materializations"); - rewriterImpl.unresolvedMaterializations[op] = this; } void UnresolvedMaterializationRewrite::rollback() { @@ -1471,8 +1471,9 @@ ValueRange ConversionPatternRewriterImpl::buildUnresolvedMaterialization( mapping.map(valuesToMap, convertOp.getResults()); if (castOp) *castOp = convertOp; - appendRewrite<UnresolvedMaterializationRewrite>( - convertOp, converter, kind, originalType, std::move(valuesToMap)); + unresolvedMaterializations[convertOp] = + appendRewrite<UnresolvedMaterializationRewrite>( + convertOp, converter, kind, originalType, std::move(valuesToMap)); return convertOp.getResults(); } |