<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">