@@ -246,8 +246,9 @@ static void handleResultImpl(InlinerInterface &interface, OpBuilder &builder,
246246}
247247
248248static LogicalResult
249- inlineRegionImpl (InlinerInterface &interface, const InlinerConfig &config,
250- Region *src, Block *inlineBlock, Block::iterator inlinePoint,
249+ inlineRegionImpl (InlinerInterface &interface,
250+ InlinerConfig::CloneCallbackTy cloneCallback, Region *src,
251+ Block *inlineBlock, Block::iterator inlinePoint,
251252 IRMapping &mapper, ValueRange resultsToReplace,
252253 TypeRange regionResultTypes, std::optional<Location> inlineLoc,
253254 bool shouldCloneInlinedRegion, CallOpInterface call = {}) {
@@ -278,8 +279,8 @@ inlineRegionImpl(InlinerInterface &interface, const InlinerConfig &config,
278279
279280 // Clone the callee's source into the caller.
280281 Block *postInsertBlock = inlineBlock->splitBlock (inlinePoint);
281- config. getCloneCallback () (builder, src, inlineBlock, postInsertBlock, mapper,
282- shouldCloneInlinedRegion);
282+ cloneCallback (builder, src, inlineBlock, postInsertBlock, mapper,
283+ shouldCloneInlinedRegion);
283284
284285 // Get the range of newly inserted blocks.
285286 auto newBlocks = llvm::make_range (std::next (inlineBlock->getIterator ()),
@@ -348,8 +349,9 @@ inlineRegionImpl(InlinerInterface &interface, const InlinerConfig &config,
348349}
349350
350351static LogicalResult
351- inlineRegionImpl (InlinerInterface &interface, const InlinerConfig &config,
352- Region *src, Block *inlineBlock, Block::iterator inlinePoint,
352+ inlineRegionImpl (InlinerInterface &interface,
353+ InlinerConfig::CloneCallbackTy cloneCallback, Region *src,
354+ Block *inlineBlock, Block::iterator inlinePoint,
353355 ValueRange inlinedOperands, ValueRange resultsToReplace,
354356 std::optional<Location> inlineLoc,
355357 bool shouldCloneInlinedRegion, CallOpInterface call = {}) {
@@ -373,54 +375,54 @@ inlineRegionImpl(InlinerInterface &interface, const InlinerConfig &config,
373375 }
374376
375377 // Call into the main region inliner function.
376- return inlineRegionImpl (interface, config, src, inlineBlock, inlinePoint,
377- mapper, resultsToReplace, resultsToReplace.getTypes (),
378- inlineLoc, shouldCloneInlinedRegion, call);
378+ return inlineRegionImpl (interface, cloneCallback, src, inlineBlock,
379+ inlinePoint, mapper, resultsToReplace,
380+ resultsToReplace.getTypes (), inlineLoc,
381+ shouldCloneInlinedRegion, call);
379382}
380383
381384LogicalResult mlir::inlineRegion (InlinerInterface &interface,
382- const InlinerConfig &config, Region *src ,
383- Operation *inlinePoint, IRMapping &mapper ,
384- ValueRange resultsToReplace,
385+ InlinerConfig::CloneCallbackTy cloneCallback ,
386+ Region *src, Operation *inlinePoint ,
387+ IRMapping &mapper, ValueRange resultsToReplace,
385388 TypeRange regionResultTypes,
386389 std::optional<Location> inlineLoc,
387390 bool shouldCloneInlinedRegion) {
388- return inlineRegion (interface, config , src, inlinePoint->getBlock (),
391+ return inlineRegion (interface, cloneCallback , src, inlinePoint->getBlock (),
389392 ++inlinePoint->getIterator (), mapper, resultsToReplace,
390393 regionResultTypes, inlineLoc, shouldCloneInlinedRegion);
391394}
392395
393396LogicalResult mlir::inlineRegion (
394- InlinerInterface &interface, const InlinerConfig &config, Region *src ,
395- Block *inlineBlock, Block::iterator inlinePoint, IRMapping &mapper ,
396- ValueRange resultsToReplace, TypeRange regionResultTypes,
397+ InlinerInterface &interface, InlinerConfig::CloneCallbackTy cloneCallback ,
398+ Region *src, Block *inlineBlock, Block::iterator inlinePoint,
399+ IRMapping &mapper, ValueRange resultsToReplace, TypeRange regionResultTypes,
397400 std::optional<Location> inlineLoc, bool shouldCloneInlinedRegion) {
398- return inlineRegionImpl (interface, config, src, inlineBlock, inlinePoint,
399- mapper, resultsToReplace, regionResultTypes ,
400- inlineLoc, shouldCloneInlinedRegion);
401+ return inlineRegionImpl (
402+ interface, cloneCallback, src, inlineBlock, inlinePoint, mapper ,
403+ resultsToReplace, regionResultTypes, inlineLoc, shouldCloneInlinedRegion);
401404}
402405
403406LogicalResult mlir::inlineRegion (InlinerInterface &interface,
404- const InlinerConfig &config, Region *src ,
405- Operation *inlinePoint,
407+ InlinerConfig::CloneCallbackTy cloneCallback ,
408+ Region *src, Operation *inlinePoint,
406409 ValueRange inlinedOperands,
407410 ValueRange resultsToReplace,
408411 std::optional<Location> inlineLoc,
409412 bool shouldCloneInlinedRegion) {
410- return inlineRegion (interface, config , src, inlinePoint->getBlock (),
413+ return inlineRegion (interface, cloneCallback , src, inlinePoint->getBlock (),
411414 ++inlinePoint->getIterator (), inlinedOperands,
412415 resultsToReplace, inlineLoc, shouldCloneInlinedRegion);
413416}
414417
415- LogicalResult
416- mlir::inlineRegion (InlinerInterface &interface, const InlinerConfig &config,
417- Region *src, Block *inlineBlock, Block::iterator inlinePoint,
418- ValueRange inlinedOperands, ValueRange resultsToReplace,
419- std::optional<Location> inlineLoc,
420- bool shouldCloneInlinedRegion) {
421- return inlineRegionImpl (interface, config, src, inlineBlock, inlinePoint,
422- inlinedOperands, resultsToReplace, inlineLoc,
423- shouldCloneInlinedRegion);
418+ LogicalResult mlir::inlineRegion (
419+ InlinerInterface &interface, InlinerConfig::CloneCallbackTy cloneCallback,
420+ Region *src, Block *inlineBlock, Block::iterator inlinePoint,
421+ ValueRange inlinedOperands, ValueRange resultsToReplace,
422+ std::optional<Location> inlineLoc, bool shouldCloneInlinedRegion) {
423+ return inlineRegionImpl (interface, cloneCallback, src, inlineBlock,
424+ inlinePoint, inlinedOperands, resultsToReplace,
425+ inlineLoc, shouldCloneInlinedRegion);
424426}
425427
426428// / Utility function used to generate a cast operation from the given interface,
@@ -452,7 +454,7 @@ static Value materializeConversion(const DialectInlinerInterface *interface,
452454// / corresponds to whether the source region should be cloned into the 'call' or
453455// / spliced directly.
454456LogicalResult mlir::inlineCall (InlinerInterface &interface,
455- const InlinerConfig &config ,
457+ InlinerConfig::CloneCallbackTy cloneCallback ,
456458 CallOpInterface call,
457459 CallableOpInterface callable, Region *src,
458460 bool shouldCloneInlinedRegion) {
@@ -529,7 +531,7 @@ LogicalResult mlir::inlineCall(InlinerInterface &interface,
529531 return cleanupState ();
530532
531533 // Attempt to inline the call.
532- if (failed (inlineRegionImpl (interface, config , src, call->getBlock (),
534+ if (failed (inlineRegionImpl (interface, cloneCallback , src, call->getBlock (),
533535 ++call->getIterator (), mapper, callResults,
534536 callableResultTypes, call.getLoc (),
535537 shouldCloneInlinedRegion, call)))
0 commit comments