@@ -1754,6 +1754,10 @@ ConversionPatternRewriter::ConversionPatternRewriter(
1754
1754
1755
1755
ConversionPatternRewriter::~ConversionPatternRewriter () = default ;
1756
1756
1757
+ const ConversionConfig &ConversionPatternRewriter::getConfig () const {
1758
+ return impl->config ;
1759
+ }
1760
+
1757
1761
void ConversionPatternRewriter::replaceOp (Operation *op, Operation *newOp) {
1758
1762
assert (op && newOp && " expected non-null op" );
1759
1763
replaceOp (op, newOp->getResults ());
@@ -1895,7 +1899,7 @@ void ConversionPatternRewriter::inlineBlockBefore(Block *source, Block *dest,
1895
1899
// ops should be moved one-by-one ("slow path"), so that a separate
1896
1900
// `MoveOperationRewrite` is enqueued for each moved op. Moving ops in bulk is
1897
1901
// a bit more efficient, so we try to do that when possible.
1898
- bool fastPath = !impl-> config .listener ;
1902
+ bool fastPath = !getConfig () .listener ;
1899
1903
1900
1904
if (fastPath)
1901
1905
impl->inlineBlockBefore (source, dest, before);
@@ -2018,8 +2022,7 @@ class OperationLegalizer {
2018
2022
using LegalizationAction = ConversionTarget::LegalizationAction;
2019
2023
2020
2024
OperationLegalizer (const ConversionTarget &targetInfo,
2021
- const FrozenRewritePatternSet &patterns,
2022
- const ConversionConfig &config);
2025
+ const FrozenRewritePatternSet &patterns);
2023
2026
2024
2027
// / Returns true if the given operation is known to be illegal on the target.
2025
2028
bool isIllegal (Operation *op) const ;
@@ -2116,16 +2119,12 @@ class OperationLegalizer {
2116
2119
2117
2120
// / The pattern applicator to use for conversions.
2118
2121
PatternApplicator applicator;
2119
-
2120
- // / Dialect conversion configuration.
2121
- const ConversionConfig &config;
2122
2122
};
2123
2123
} // namespace
2124
2124
2125
2125
OperationLegalizer::OperationLegalizer (const ConversionTarget &targetInfo,
2126
- const FrozenRewritePatternSet &patterns,
2127
- const ConversionConfig &config)
2128
- : target(targetInfo), applicator(patterns), config(config) {
2126
+ const FrozenRewritePatternSet &patterns)
2127
+ : target(targetInfo), applicator(patterns) {
2129
2128
// The set of patterns that can be applied to illegal operations to transform
2130
2129
// them into legal ones.
2131
2130
DenseMap<OperationName, LegalizationPatterns> legalizerPatterns;
@@ -2286,7 +2285,7 @@ OperationLegalizer::legalizeWithFold(Operation *op,
2286
2285
LLVM_DEBUG (logFailure (rewriterImpl.logger ,
2287
2286
" failed to legalize generated constant '{0}'" ,
2288
2287
newOp->getName ()));
2289
- if (!config .allowPatternRollback ) {
2288
+ if (!rewriter. getConfig () .allowPatternRollback ) {
2290
2289
// Rolling back a folder is like rolling back a pattern.
2291
2290
llvm::report_fatal_error (
2292
2291
" op '" + opName +
@@ -2306,6 +2305,7 @@ LogicalResult
2306
2305
OperationLegalizer::legalizeWithPattern (Operation *op,
2307
2306
ConversionPatternRewriter &rewriter) {
2308
2307
auto &rewriterImpl = rewriter.getImpl ();
2308
+ const ConversionConfig &config = rewriter.getConfig ();
2309
2309
2310
2310
#if MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS
2311
2311
Operation *checkOp;
@@ -2749,8 +2749,7 @@ struct OperationConverter {
2749
2749
const FrozenRewritePatternSet &patterns,
2750
2750
const ConversionConfig &config,
2751
2751
OpConversionMode mode)
2752
- : config(config), opLegalizer(target, patterns, this ->config),
2753
- mode(mode) {}
2752
+ : config(config), opLegalizer(target, patterns), mode(mode) {}
2754
2753
2755
2754
// / Converts the given operations to the conversion target.
2756
2755
LogicalResult convertOperations (ArrayRef<Operation *> ops);
0 commit comments