9 #ifndef MLIR_PASS_PASSINSTRUMENTATION_H_ 10 #define MLIR_PASS_PASSINSTRUMENTATION_H_ 14 #include "llvm/ADT/DenseMapInfo.h" 15 #include "llvm/ADT/StringRef.h" 24 struct PassInstrumentorImpl;
122 void addInstrumentation(std::unique_ptr<PassInstrumentation> pi);
125 std::unique_ptr<detail::PassInstrumentorImpl> impl;
136 auto pair = PairInfo::getEmptyKey();
137 return {pair.first,
reinterpret_cast<mlir::Pass *
>(pair.second)};
140 auto pair = PairInfo::getTombstoneKey();
141 return {pair.first,
reinterpret_cast<mlir::Pass *
>(pair.second)};
153 #endif // MLIR_PASS_PASSINSTRUMENTATION_H_ Definition: InferTypeOpInterface.cpp:20
virtual void runAfterPassFailed(Pass *pass, Operation *op)
Definition: PassInstrumentation.h:72
Definition: STLExtras.h:95
Definition: PassRegistry.cpp:413
Definition: Operation.h:27
Definition: PassInstrumentation.h:35
Pass * parentPass
The pass that spawned this pipeline.
Definition: PassInstrumentation.h:41
virtual void runBeforeAnalysis(StringRef name, AnalysisID *id, Operation *op)
Definition: PassInstrumentation.h:77
virtual void runAfterAnalysis(StringRef name, AnalysisID *id, Operation *op)
Definition: PassInstrumentation.h:83
static unsigned getHashValue(T val)
Definition: PassInstrumentation.h:143
static T getEmptyKey()
Definition: PassInstrumentation.h:135
ClassID AnalysisID
Definition: AnalysisManager.h:22
virtual void runBeforePipeline(const OperationName &name, const PipelineParentInfo &parentInfo)
Definition: PassInstrumentation.h:49
uint64_t parentThreadID
Definition: PassInstrumentation.h:38
virtual void runAfterPass(Pass *pass, Operation *op)
Definition: PassInstrumentation.h:66
Definition: PassInstrumentation.h:89
static T getTombstoneKey()
Definition: PassInstrumentation.h:139
Definition: PassInstrumentation.h:30
virtual void runAfterPipeline(const OperationName &name, const PipelineParentInfo &parentInfo)
Definition: PassInstrumentation.h:55
virtual void runBeforePass(Pass *pass, Operation *op)
Definition: PassInstrumentation.h:61
Definition: OperationSupport.h:203
static bool isEqual(T lhs, T rhs)
Definition: PassInstrumentation.h:146