[mlir] Refactor the implementation of Symbol use lists.
authorRiver Riddle <riddleriver@gmail.com>
Tue, 28 Jan 2020 06:57:06 +0000 (22:57 -0800)
committerRiver Riddle <riddleriver@gmail.com>
Tue, 28 Jan 2020 07:01:46 +0000 (23:01 -0800)
commitab9e5598cdc793890f514c2756866c53ad7971f3
tree8aeddfdcd0a9618be01354b62d5f6c780a562997
parentaff4ed73268d4930618b547bde21325bf8b662b7
[mlir] Refactor the implementation of Symbol use lists.

Summary: This revision refactors the implementation of the symbol use-list functionality to be a bit cleaner, as well as easier to reason about. Aside from code cleanup, this revision updates the user contract to never recurse into operations if they define a symbol table. The current functionality, which does recurse, makes it difficult to examine the uses held by a symbol table itself. Moving forward users may provide a specific region to examine for uses instead.

Differential Revision: https://reviews.llvm.org/D73427
mlir/include/mlir/IR/SymbolTable.h
mlir/lib/IR/SymbolTable.cpp
mlir/test/lib/IR/TestSymbolUses.cpp