[mlir][Inliner] Properly handle callgraph node deletion
authorRiver Riddle <riddleriver@gmail.com>
Wed, 17 Jun 2020 20:13:48 +0000 (13:13 -0700)
committerRiver Riddle <riddleriver@gmail.com>
Wed, 17 Jun 2020 22:45:56 +0000 (15:45 -0700)
commitf4ef77cbb48b549211ecc18085f14ec7a17c01fc
tree157345b20b97dae92429fc2f1ab21b2eaca214ae
parent55d53d4f5448db87ab0bec903be94b696c8ed3e8
[mlir][Inliner] Properly handle callgraph node deletion

We previously weren't properly updating the SCC iterator when nodes were removed, leading to asan failures in certain situations. This commit adds a CallGraphSCC class and defers operation deletion until inlining has finished.

Differential Revision: https://reviews.llvm.org/D81984
mlir/lib/Transforms/Inliner.cpp
mlir/test/Transforms/inlining-dce.mlir
mlir/test/lib/Dialect/Test/TestDialect.cpp
mlir/test/lib/Dialect/Test/TestOps.td