Generalize the analysis manager framework to work on any operation at any nesting.
authorRiver Riddle <riverriddle@google.com>
Wed, 28 Aug 2019 22:10:37 +0000 (15:10 -0700)
committerA. Unique TensorFlower <gardener@tensorflow.org>
Wed, 28 Aug 2019 22:11:17 +0000 (15:11 -0700)
commit29099e03ce2f8e4546f3ba1086fb51749abc0c62
tree5dfaa37c69e5b62731f692555e610e76fc2ab146
parent22254116903763d49be0a9fff226fcce498c6772
Generalize the analysis manager framework to work on any operation at any nesting.

The pass manager is moving towards being able to run on operations at arbitrary nesting. An operation may have both parent and child operations, and the AnalysisManager must be able to handle this generalization. The AnalysisManager class now contains generic 'getCachedParentAnalysis' and 'getChildAnalysis/getCachedChildAnalysis' functions to query analyses on parent/child operations. This removes the hard coded nesting relationship between Module/Function.

PiperOrigin-RevId: 266003636
mlir/g3doc/WritingAPass.md
mlir/include/mlir/Pass/AnalysisManager.h
mlir/include/mlir/Pass/Pass.h
mlir/lib/Pass/Pass.cpp
mlir/lib/Pass/PassDetail.h
mlir/unittests/Pass/AnalysisManagerTest.cpp