<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJytVU2P4jgQ_TXhYoEShzTNgUN3My2NxGhGu6u9O0kFvG3iyHZg-Pf7ygmBbo16DrsoH_ir6tWrV5XS1pfNi229rsmJcCDRWGPsWbd78WO7E50KgVybyBdxPpAjcSZxUCcSqhVYcrrsAyZ1OAgl3lp7bkW4dJTkT0m6TdKn5CEdrzjsarMYTQrsESW11OiQyMcskWshktXzsBF_ZZFiz1bwGbYZD-hc3m3Ipg03LLwrnjW2gt1EyjluzGYFPyT8TBZuluRkyXbkVNAWAKV8wR1BSflqbRxgG3tOVtvrcT7l6Ow0e78FMCzAmKfoYfK22o6eJxsfWBqeTz7mo-p9sMeYDH9pg_optBdJ8Vz1zlEbzEXUoLClOim2iPcQQueZfvmK62i0WxhzOi6s22Nc28rjtdXKUBX4L-x-73zcnQPvxOOcj95P2G4EB_6gBoYGhgemztoY5FLoVtUncmHApVvkuXMUqBZqCOakTM8SG6Q22V7cx_2BjLt8ICq-QN9D-i7pGAvONc7kT8NgGWVYfGG4-Wtclcvo_jbJ5-e1rsKcBTx_o8vZuvqTlPx1APeOfG-CR3gf6oWcQ2AokxZl4z2iDgdn-_2B8TKdc9sFRodYdru_vwlQ5TmwbLlIF-mtZn4JIH_xodZtkn_Bxhz3Iys9-hwkv3pPiVwJ2wn62SHRgGJbZMS2JGzD6oHdSBDMI5l4DdRgWGxFsJxMT-H_K7X4Y-Y_C6a1gTsHPLPso7zFlP7RWTZWoPwQrYwAipTbCIpwEBpv_QQbF2K0iuXs2mbYwBzAxDh38_GZLiDm0qItftt9_UNYp_coBaa9cahddRXAoODvU0jQAlSEJoMG84yWWoszCqVzXDm16D2r6r3GGqP2nhFr0GPopEDRtQy9sEcdolfosHR00uESpf5rSd0j-sE-4eCV7UdC1ove0w6mzZ-VZVriHLWqNLSlst9_bRs7zP6uYoy1b3jqN7AkcJLxA6ECdFI-8LdEe9-P3xEOGModmt3YbcBERViBschwbcmzXMRRwagOU6Up0fToRRiATCSuE6pBF4Kemb2R2cWs3uT1Ol-rmerDwboNatZdwtnOemc271voHpj6clHZIwbcSsfXvHP2H9QWhhE899AiT_N0dtiss8cmVamipljm62W1lquVLCoq61SWTV7MjCrJ-A0XYrGd_XeXeiNTKdMsfUgLmaGf1JnKakmNfKyrUi6rZJnSUWkzfQxmbhNNIh0ei0b74G-LaF963xJdEQYdDG0i9VDbx87-vivE0ptFgJuI7l95O4Yh>53030</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            MLIR loc interpreted as pdl.attribute value
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          henrytwo
      </td>
    </tr>
</table>

<pre>
    Consider the following PDL pattern, where we have an attribute with a known type:
```
pdl.pattern : benefit(1)  {
  %0 = pdl.type : i32
  %1 = pdl.attribute : %0 loc("-":15:12)
  
  %2 = pdl.operation "C" {"Foo" = %1}
  pdl.rewrite {
    pdl.erase %2
  } 
}
```

As the custom PDL syntax is [currently defined](https://mlir.llvm.org/docs/Dialects/PDLOps/#pdlattribute-mlirpdlattributeop
), the location will be inadvertently interpreted as the value for the attribute.

```
operation ::= `pdl.attribute` (`:` $type^)? ($value^)? attr-dict-with-keyword
```

This results in the following error when passed through `mlir-opt` on LLVM version 14.0.0:

```
<stdin>:3:8: error: 'pdl.attribute' op expected only one of [`type`, `value`] to be set
  %1 = pdl.attribute : %0 loc("-":15:12)
       ^
<stdin>:3:8: note: see current operation: %1 = "pdl.attribute"(%0) {value = loc("-":15:12)} : (!pdl.type) -> !pdl.attribute
```

The above MLIR originated from a `mlir::Operation` in C++ and was printed using the following flags (irrelevant locations omitted for brevity):
```
mlir::OpPrintingFlags().useLocalScope().enableDebugInfo()
```

This looks like a bug (or at least an issue with the op syntax), since this MLIR does not make it through a full round trip after being printed.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVU1v2zgQ_TXyhbAhU1YcH3xI4gYokKLF7mLvlDiy2dCiQFJ2_e_7hlJkJyiylzX0YX7NvHnzZlQ5fdk-uTYYTV7EA4nGWevOpt2LH7sX0akYybeZfBLnA3kSZxIHdSKhWoElb6o-YtLEg1DitXXnVsRLR1nxkOW7LH_I7vLxSsNO28VoUmCPqKilxsRM3i8zuREiWz8OG_FXljn27ASfYZvpgCnkzYbltOGKhXels9bVsJtJOceN2WXJDwk_k4WrJTlZch15FY0DQCmfcCdQUj47lwbYxp6z9e7tOJ_ydPaGvV8DGBZgLFDyMHlb70bPk40PLA3Ph5DyUfchumNKRri0Uf0SJoisfKx776mN9iI0KGxJZ-UO8R5i7ALTL59xHa3xC2tPx4Xze4y1qwNeO6Ms1ZH_wu73LqTdBfBOPM756O2E60Zw4A9qYGhgeGDqbKxFLoVplT6RjwMu0yLPnadIWqghmJOyPUtskNpke3Eb9wcybvKBqPgCfXf5u6RjLDjXOFM8DINVkmH5heEWz2lVrpL76ySfn2tTxzkLeP5Kl7Pz-pOU_HMA955Cb2NAeB_qhbxHYCiTFmUTAqKOB-_6_YHxMp1z10VGh1heXv79JkBV4MCWq0W-yK8180cAxVOI2rRZ8QUbC9z3rPTkc5D8-j0lci1cJ-hXh0QDimuREdeScA2rB3YTQTCPZOI1UINhuRPRcTIDxf-v1NKPmf8smNZF7hzwzLJP8hZT-kdny7EC5YdoZQJQ5txGUISD0HjrJ9i4EJNVLC_f2gwbmAOYGOeuPj7TBcRcObTFby9f_xLOmz1KgWlvPGpXvQlgUPD3KSRoASpCk0GDeURL1eKMQuk8V44WfWBVvddYY9U-MGIDeiydFCh6K8Mg3NHE5BU6rDydTLwkqf9ZUreIfrBPOHhm-4mQzaIP9ALT9u_aMS1pjlpVWdpR1e-_to0bZv-rYqxzr3iaV7AkcJLxA6ECdFIh8rfEhNCP3xEOGModmt3YbcBETViBscSwdhRYLuKoYNTEqdKUaHr0IgxAJhLXCdWgC0HPzN7I7GKmt4XeFBs1iyZa2iaboPFjy3ov96SpWe_t9n2T3QN1Xy1qd8SAm-34mnfe_UT1YZjC4y5bFnmRzw7bZr2RVMrmbqNXm6q6XzVKEzX3UuV3TdmsZ1ZVZMOWS7XczcxW5lLmy_wuL-US_UIv1VJLauS9riu5qrNVTkdl7NTsZ36bMIDugEVrQgzXRbQns2-J3uyrPh6c36J1-Us8u1nCu01gfwODTXFk">