summaryrefslogtreecommitdiffstats
path: root/mlir/lib/Pass
diff options
context:
space:
mode:
authorRiver Riddle <riverriddle@google.com>2019-09-13 13:18:44 -0700
committerA. Unique TensorFlower <gardener@tensorflow.org>2019-09-13 13:19:19 -0700
commit8a1cdeb31bd56d6eb5182a3ca3e019ca9654ef39 (patch)
treed4e536a2aa305112c18fa907401e3d7092dd1723 /mlir/lib/Pass
parentd3787e58654c15f8bfacc3471eba056f34782055 (diff)
downloadbcm5719-llvm-8a1cdeb31bd56d6eb5182a3ca3e019ca9654ef39.tar.gz
bcm5719-llvm-8a1cdeb31bd56d6eb5182a3ca3e019ca9654ef39.zip
Forward diagnostics from untracked threads in ParallelDiagnosticHandler.
This allows for the use of multiple ParallelDiagnosticHandlers without having them conflict with each other. PiperOrigin-RevId: 268967407
Diffstat (limited to 'mlir/lib/Pass')
-rw-r--r--mlir/lib/Pass/Pass.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/mlir/lib/Pass/Pass.cpp b/mlir/lib/Pass/Pass.cpp
index ee5ad2e9166..5d5ed9d78a8 100644
--- a/mlir/lib/Pass/Pass.cpp
+++ b/mlir/lib/Pass/Pass.cpp
@@ -410,6 +410,12 @@ void OpToOpPassAdaptorParallel::runOnOperation() {
if (instrumentor)
instrumentor->runAfterPipeline(pm->getOpName(), parentThreadID);
+ // Drop this thread from being tracked by the diagnostic handler.
+ // After this task has finished, the thread may be used outside of
+ // this pass manager context meaning that we don't want to track
+ // diagnostics from it anymore.
+ diagHandler.eraseOrderIDForThread();
+
// Handle a failed pipeline result.
if (failed(pipelineResult)) {
passFailed = true;
OpenPOWER on IntegriCloud