<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/55984>55984</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Pass timing does not track properly thread ID
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir:core
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          joker-eph
      </td>
    </tr>
</table>

<pre>
    This simple patch should have no effect:

 ```
diff --git a/mlir/lib/IR/Verifier.cpp b/mlir/lib/IR/Verifier.cpp
index 96364bd81b9f..ca400ecf864d 100644
--- a/mlir/lib/IR/Verifier.cpp
+++ b/mlir/lib/IR/Verifier.cpp
@@ -74,6 +74,9 @@ private:
 
 LogicalResult OperationVerifier::verifyOpAndDominance(Operation &op) {
   // Verify the operation first, collecting any IsolatedFromAbove operations.
+  if (op.getContext()->isMultithreadingEnabled()) {
+    llvm::ThreadPoolTaskGroup tasksGroup(op.getContext()->getThreadPool());
+  }
   if (failed(verifyOperation(op)))
     return failure();
 ```

However this is enough to confuse our thread tracking for the pass timing:
```
Command Output (stderr):
--
mlir/test/Pass/pass-timing.mlir:45:22: error: MT_PIPELINE-NEXT: is not on the line after the previous match
// MT_PIPELINE-NEXT: CSE
                     ^
<stdin>:13:32: note: 'next' match was here
 0.0006 ( 7.7%) 0.0006 ( 9.5%) CSE
                               ^
<stdin>:11:47: note: previous match ended here
 0.0014 ( 17.8%) 0.0010 ( 15.9%) Canonicalizer
                                              ^
<stdin>:12:1: note: non-matching line after previous match is here
 0.0007 ( 9.8%) 0.0007 ( 10.8%) 'func.func' Pipeline
^

Input file: <stdin>
Check file: mlir/test/Pass/pass-timing.mlir

-dump-input=help explains the following input dump.

Input was:
<<<<<<
         .
         .
         .
         8:  0.0016 ( 20.4%) 0.0011 ( 18.3%) 'func.func' Pipeline 
         9:  0.0001 ( 1.8%) 0.0001 ( 1.9%) CSE 
        10:  0.0000 ( 0.2%) 0.0000 ( 0.2%) (A) DominanceInfo 
        11:  0.0014 ( 17.8%) 0.0010 ( 15.9%) Canonicalizer 
        12:  0.0007 ( 9.8%) 0.0007 ( 10.8%) 'func.func' Pipeline 
        13:  0.0006 ( 7.7%) 0.0006 ( 9.5%) CSE 
next:45                                    !~~  error: match on wrong line
        14:  0.0000 ( 0.2%) 0.0000 ( 0.2%) (A) DominanceInfo 
        15:  0.0001 ( 0.9%) 0.0000 ( 0.6%) Canonicalizer 
        16:  0.0000 ( 0.2%) 0.0000 ( 0.1%) CSE 
        17:  0.0000 ( 0.0%) 0.0000 ( 0.0%) (A) DominanceInfo 
        18:  0.0000 ( 0.2%) 0.0000 ( 0.1%) CSE 
         .
         .
         .
>>>>>>
```


The `NestedMatcher` is also broken right now by this:

```
mlir-opt: mlir/include/mlir/Dialect/Affine/Analysis/NestedMatcher.h:162: mlir::NestedPatternContext::NestedPatternContext(): Assertion `NestedMatch::allocator() == nullptr && "Only a single NestedPatternContext is supported"' failed.
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1V1tv2zYU_jXyCyGBulnygx_c2NkMNI3RBsPeBkqiLDY0KZBUUu_X75CSbVlNF3fFDIKUefnOx3PTUSGr4_KpYRppdmg5RS0xZYN0IzteoYa8UCQkonVNS-PFKw-vPTz0yJvjobn_Fatr5Pt7ZhDxovsDZwoGzgrot5-h-4MqVjOqgrJtUfHulh6ViYp-Q4t5PE-KKg-LRR0EJUkwpmWdz5MKhRjPk6Tf7Pv-DbKHS0Qf-nYzFS_B0JCfJV50N0dw1D0t0LDQKvZCDD2rCQ3DR7lnJeGfqe64QY8tVcQwKU4C7P549WL_HR_blajW8sAEESX1ovy8G8TNZetFIC37MAAjmLyHhhzUEZmGInk-UDOlDfBDpeQczMfEHhFxRFstOdCs7pU8rAr5Mjqjg7NuEGI1wOeyDfbU3Elh6DdAy4GB78Ubph_gMsw0ipIKkDeCFJxW_YYrlg4LIc5fDv1Nn9yZnZT8iejn35TsWmTgSbvHH4uEucvRsyAvHsvxsvVZNz3_mrCe10nBw1WdnAEC2ukQQoqaToH24Fyn6CDnJGTq833_u3ylAA_6hziCRoXs9g0yElQv6k6Dhju7askjo0j5bG1RS-Us1hKtkWFg8_0lwq7F3MnDgYgKPXam7Yy9ljYVVcpRW518vx8HTzbUGv9-B-AwWBl-LyNwG-JVkkIXRdAhQJJ2Cj08_bXb7jYft582_qfNn092Du4jpEHgUJYsZ4IiUhs6cFf0hclOo4NNGydDOJ98C-vuy2ak6enPS4dVL76D-zEBRodTYQxd7IgCERteoIBMON_IesHolWjUUDBXj44DDFnB6gllQeZFqfXI0eQiSIfJf2f0PrfQajIbc7tWCfhCRasptzBxNMIsyEfkQtzPpsHixI4IKWzuYH9DnriF5420rTbDMWuQ4zvC1jNHRp7chn2v5mzQ6Pgmw2SIz7NgqroTZWA7a7Yda6kVM7A703T9VlgvryFwnbFH1PtoaGj5fF6-zd9H6H7VHVqfWRlevG4obxH91nLChHY-XUO6lK9WD24PstuD7-mBy13CNb6btmtjBT_5P7c3652i99gIB8nYVcJewXkQv6NgNEFenJHxgHFtudPk4hIgE4gQXyB6j8VBNIaYTsK_lR3P77WtqOUUNLzc-L8ExxQuunD8NQedAscX4FsTzADhMpbNuzcFbhR62QYaumTnPgQhEb8qOUTphFzyf1gmnXoMPpvgCnR-i13mNzIMf-x-2fcQ-C0I_DOXzH-Z160x7jLwdXvrlT_unyArwcInSHG0erBeAG-DObbZmHAtUaHkMxVIsX1jIJO_ouLoapFJwT6RYPOiL1szSqJMlLyr6KUeXjNiS0d4WtW19Td4EIQfNbNZ9opQ0Nh3yjw6w7lir9-yIwZeJuJU0v14Zai2VmilNVV93Xt18f4sgQxdEgNh4Q7AK2INDYmO89YoWypDgyF6FPyICHzbiD1827wl0ipRd20rlbFlYmRjv68Zgze1NquWcbWIF2QG1S-ny92lekOVpH2x5Go8eHfawpofT5Xfdj3rFF82xrTONK5Ogs-lpiuCUh7s54ctkvvBh9Nfe9UzrTtq9Z2mizyZNUsc5ZimWZFGcZ4WizwiYYGTGFZLGic1mXFSUK6XXgrfN9FgjFLaajby0vWMLSMcRXge4iiO5skiqEJMcVYmMSlzErmvGXoAJQSWSSDVfqaWjlTR7TUscqaNviyCCtheUOoEAj7pTCPV8it4pfJp28zcDZaO_j8aOOLn">