summaryrefslogtreecommitdiffstats
path: root/mlir/lib/Transforms/Utils
diff options
context:
space:
mode:
authorRiver Riddle <riverriddle@google.com>2019-10-03 23:04:56 -0700
committerA. Unique TensorFlower <gardener@tensorflow.org>2019-10-03 23:05:21 -0700
commita20d96e436272b52d36f52c4a07c86ed285502e9 (patch)
treea11b0ee1c681d4ce4b1705d231ec3af1d753f288 /mlir/lib/Transforms/Utils
parent8c95223e3c9555165fb9f56db35c3c8e85ddd4c1 (diff)
downloadbcm5719-llvm-a20d96e436272b52d36f52c4a07c86ed285502e9.tar.gz
bcm5719-llvm-a20d96e436272b52d36f52c4a07c86ed285502e9.zip
Update the Inliner pass to work on SCCs of the CallGraph.
This allows for the inliner to work on arbitrary call operations. The updated inliner will also work bottom-up through the callgraph enabling support for multiple levels of inlining. PiperOrigin-RevId: 272813876
Diffstat (limited to 'mlir/lib/Transforms/Utils')
-rw-r--r--mlir/lib/Transforms/Utils/InliningUtils.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/mlir/lib/Transforms/Utils/InliningUtils.cpp b/mlir/lib/Transforms/Utils/InliningUtils.cpp
index 901599ce023..6ca875b25ae 100644
--- a/mlir/lib/Transforms/Utils/InliningUtils.cpp
+++ b/mlir/lib/Transforms/Utils/InliningUtils.cpp
@@ -186,6 +186,9 @@ LogicalResult mlir::inlineRegion(InlinerInterface &interface, Region *src,
if (!shouldCloneInlinedRegion)
remapInlinedOperands(newBlocks, mapper);
+ // Process the newly inlined blocks.
+ interface.processInlinedBlocks(newBlocks);
+
// Handle the case where only a single block was inlined.
if (std::next(newBlocks.begin()) == newBlocks.end()) {
// Have the interface handle the terminator of this block.
OpenPOWER on IntegriCloud