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

    <tr>
        <th>Summary</th>
        <td>
            [mlir][DataLayoutInterface] no impl `filterEntryForIdentifier(TargetDeviceSpecListRef entries,...)`
        </td>
    </tr>

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

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

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

<pre>
    [This decl](https://github.com/llvm/llvm-project/blob/5c1752e368585e55c0335a7d7651fe43d42af282/mlir/include/mlir/Interfaces/DataLayoutInterfaces.h#L108-L111) has no impl [here](https://github.com/llvm/llvm-project/blob/9192367ad1af30c59d5b7adc0a099bd7e524e5dd/mlir/lib/Interfaces/DataLayoutInterfaces.cpp#L314-L323) (or anywhere else).

I'm not clear on the semantics so I'm not sure what an impl should look like? Possibly

```c++
TargetDeviceSpecInterface
mlir::detail::filterEntryForIdentifier(TargetDeviceSpecListRef entries,
                                       StringAttr id) {
  const auto *it = llvm::find_if(entries, [id](TargetDeviceSpecInterface entry) {
 if (auto attr = dyn_cast<StringAttr>(entry.getSpecForIdentifier(id).getKey()))
      return attr == id;
    return false;
  });
  return it == entries.end() ? TargetDeviceSpecInterface() : *it;
}
```

but I'm not sure (I don't work with this interface often).
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJykVMGO4ygQ_ZrKBY2FixDbhxycyURqbQ6rnbmPsCnHbBOIAHcr-_UrbHdn1NqRZjURUhIo6r16VTwVo7k4oj3IAyD-Q8E3ZVUDIsjjRk1p9GF_Vc_R0gu5pOym8_qeo7-NJjJNvQV5BKzHlG4RRAt4AjxdTBqnruj9FfBk7cvb16db8H9TnwBPnfUd4En2ZSWRxK6WtSQpey6EVJWudrIcaCv0FtWANQKertYEwJNxvZ00PTaeXKIwqJ4i4Omokjqru5_SY7sYAcW55PWnc1mWgA0bVWTOM3O9WQbyMFKg3yujKRsUu0rpUg2C97LRsquU7rniTdPpiiRuSWr9YG1N90vc-9stsxfl9tNZoMjsAWsfmHL310yckY0E2BTAW-DtE2B1Zc4n1ltSgXnH0kgs0lW5ZPrIomePmDgFYq-jSky5RY44-slqZr1_ZtY8E4gT-9PHaDp7XxBgx5fVAx7y4u03FS6UjvRievp6o_6dP_B2rle0IFpNSRm7_B6MTRS-uBTuJx-eNLlkBkMBsP6Y7Gxi-osGRi4Fk4X6DLxlv_b5moJxlzalwIyetasO8-3eu5iYmpJngK1JDMSRzS1e6Tn93QyA9QM1T4rRy5z8tOCZ5f0HJDPkfs1AKtPIOPruvvcqJhCfHwRBfFnh7sWFUs76UZm5hHz4B90Ba8BmXW96BEpTcO9AGctoEIc1YD0eVJ6YdReqY86w_lsjFj3y9bX8gpxeEFkeiJ_3-y2mXWRd8maMH-ZmGaNuSh8HEbB-Yto7wCqxVx-e2atJI0vZasy7wn5I5LIQG70XuhGN2tC-rMSuFM1WVptxrzSvt1KoEnk51H0tSOLAVVX1vS53g9qYPXKUvOQ7vpWVqIqal9WAVa1khzvqKthyuipjizwShQ-XjYlxon2JZSVwY1VHNq6muTzo2TDDfraHbrpE2HJrYoqPDMkkOxvtfEEeQR7-48WDPD6sacd_650URZF7u-ObKdj9__a2ueRsTGvVL3v8NwAA__9VGeuw">