Lines Matching defs:interface
158 static bool isLegalToInline(InlinerInterface &interface, Region *src,
164 if (!interface.isLegalToInline(&op, insertRegion,
173 if (interface.shouldAnalyzeRecursively(&op) &&
175 return !isLegalToInline(interface, ®ion, insertRegion,
188 static void handleArgumentImpl(InlinerInterface &interface, OpBuilder &builder,
205 Value newArgument = interface.handleArgument(
215 static void handleResultImpl(InlinerInterface &interface, OpBuilder &builder,
236 interface.handleResult(builder, call, callable, result, resAttr);
248 inlineRegionImpl(InlinerInterface &interface, Region *src, Block *inlineBlock,
266 if (!interface.isLegalToInline(insertRegion, src, shouldCloneInlinedRegion,
268 !isLegalToInline(interface, src, insertRegion, shouldCloneInlinedRegion,
276 handleArgumentImpl(interface, builder, call, callable, mapper);
306 interface.processInlinedCallBlocks(call, newBlocks);
307 interface.processInlinedBlocks(newBlocks);
309 bool singleBlockFastPath = interface.allowSingleBlockOptimization(newBlocks);
317 handleResultImpl(interface, builder, call, callable,
320 // Have the interface handle the terminator of this block.
321 interface.handleTerminator(firstBlockTerminator, resultsToReplace);
340 handleResultImpl(interface, builder, call, callable,
345 interface.handleTerminator(newBlock.getTerminator(), postInsertBlock);
356 inlineRegionImpl(InlinerInterface &interface, Region *src, Block *inlineBlock,
380 return inlineRegionImpl(interface, src, inlineBlock, inlinePoint, mapper,
385 LogicalResult mlir::inlineRegion(InlinerInterface &interface, Region *src,
391 return inlineRegion(interface, src, inlinePoint->getBlock(),
395 LogicalResult mlir::inlineRegion(InlinerInterface &interface, Region *src,
402 return inlineRegionImpl(interface, src, inlineBlock, inlinePoint, mapper,
407 LogicalResult mlir::inlineRegion(InlinerInterface &interface, Region *src,
413 return inlineRegion(interface, src, inlinePoint->getBlock(),
417 LogicalResult mlir::inlineRegion(InlinerInterface &interface, Region *src,
424 return inlineRegionImpl(interface, src, inlineBlock, inlinePoint,
429 /// Utility function used to generate a cast operation from the given interface,
431 static Value materializeConversion(const DialectInlinerInterface *interface,
435 if (!interface)
438 // Check to see if the interface for the call can materialize a conversion.
439 Operation *castOp = interface->materializeCallConversion(castBuilder, arg,
457 LogicalResult mlir::inlineCall(InlinerInterface &interface,
492 const auto *callInterface = interface.getInterfaceFor(call->getDialect());
530 if (!interface.isLegalToInline(call, callable, shouldCloneInlinedRegion))
534 if (failed(inlineRegionImpl(interface, src, call->getBlock(),