This is somewhat complex(annoying) as it involves directly tracking the uses within each of the callgraph nodes, and updating them as needed during inlining. The benefit of this is that we can have a more exact cost model, enable inlining some otherwise non-inlinable cases, and also ensure that newly dead callables are properly disposed of.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/lib/Transforms/Inliner.cpp | ||
---|---|---|
192 | Renamed to allSymUsesVisibile to make it clear. It means that the uses are hidden from other operations, i.e. can't be referenced. It essentially means that we can assume that all symbol uses are visible to the use list. |
I don't quite get the !op->getBlock()?'
(top-level module isn't hidden but isn't in a block)