[PATCH] D75476: [mlir] Add support for detecting single use callables in the Inliner.
    Mehdi AMINI via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Sat Mar 14 12:20:10 PDT 2020
    
    
  
mehdi_amini accepted this revision.
mehdi_amini added inline comments.
This revision is now accepted and ready to land.
================
Comment at: mlir/lib/Transforms/Inliner.cpp:192
+  };
+  walkSymbolTables(op, /*opIsHidden=*/!op->getBlock(), walkFn);
+
----------------
I don't quite get the `!op->getBlock()`?'
(top-level module isn't hidden but isn't in a block)
================
Comment at: mlir/lib/Transforms/Inliner.cpp:245
+  if (!SymbolTable::isSymbol(node->getCallableRegion()->getParentOp())) {
+    Operation *nodeOp = node->getCallableRegion()->getParentOp();
+    return nodeOp->hasNoSideEffect() && nodeOp->hasOneUse();
----------------
Nit: if you move this above the `if` you can use it in the if condition (and the if block becomes a one liner)
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75476/new/
https://reviews.llvm.org/D75476
    
    
More information about the llvm-commits
mailing list