<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJy1U8uOmzAU_RrYXA0CQ0JYsMhMpqsuqvYLDFwHVwYj2yTK3_caSEJGzUjVqJIFts99HJ9jV7q5lME2XkZ8COJ9p5tRIQRZPHDn0PQWgvx1xgCGRkXLPgTpHirsUUgXsF0SsGIdCRCwTUxBhynJXQZ8gJLnELtBekDD-2Zq5cs9hKXPwpKHsGwKm0Kc1ESbMaE1fYm0bxawt2s1n534gieuRpyB9boAeAnSd5gzk3XGdAhW3Dv7TYNnIx0uLNbazDhRsjO6Ypwfrovb9D559Gr-1pY65xachr9G_QdHn7j5qV3scx-SxYfkn32IP_Vh5QH76MFNf_YV_c-trFsQ2tRIJrQIHXe0IXsyREhFysr-CLpXFzq9vZ8bztK1V80saDElW97hpG-07rFvGl_EygYBhcDaeb-9MtyBQm6dn_vyrqUd2Q1K1tJRy5oPbjTETBjdTR2wP0mj-w57B7bVo2qgRTVEYVOmTZEWPOSja7Upe1lrxe2JW6l43WI4GlW2zg2WBA_YNxpHOsJYRbXuaKHU6fp7GYz-TSxpKa0d0dJkk-62adiWaZYV-XbXYF6wLBPptua7nai2xQabmgseKl6hsmWweSWVOiUNtau1QX9XNofw6xxkyWJGI9kkeRZnuyitRMJFQsrGVZrS9cli7LhUka8TaXMMTTmVrMajJVBJ6-wd5NbKY4-4UP4pT2jyOF_4OvIByx-H75Ot4B_IzfS3X-_04lp-ktqAtNAR049GhxP7cqL-B_Nnnu4>53863</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
PDL type and operands CSE behavior is missing side effects
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir:core
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
River707
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
nicolasvasilache
</td>
</tr>
</table>
<pre>
```
module @patterns {
pdl.pattern : benefit(1) {
%0 = pdl.type
%1 = pdl.type
%2 = pdl.operand : %0
%3 = pdl.operand : %1
%4 = operation "foo"(%2, %3 : !pdl.value, !pdl.value) -> (%1 : !pdl.type)
pdl.rewrite %4 {
pdl.erase %4
}
}
}
```
cse's to
```
module @patterns {
pdl.pattern : benefit(1) {
%0 = type
%1 = operand : %0
%2 = operation "foo"(%1, %1 : !pdl.value, !pdl.value) -> (%0 : !pdl.type)
rewrite %2 {
erase %2
}
}
}
```
which forces the match into filtering only ops "foo" with operands of the same type.
Adding side effects to, at least, ops that implicitly captures from the environment should help.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1Uk2PmzAQ_TVwGS0CGwI5cMhutqceqvYXGBiCK4ORbYjy7zsmX2TVrLSqKllg-83MezPPlW5OZbCJLyveB_Gu182kEII0HoVzaAYLQf56xgDGRkWXewj4DiocsJUuYEUSsO06EiBgWUxB-yXJnUZ8gJLnELtBekQjhmah8uUewvizsOQhLF3ClhAnNclmrNWaviTakwXs7VrNZye-4CzUhGdgfd4CvAT8Hc6ZyTpjaYJt78z-0uDRSIcXFevZnHGSZM_oSnG-vx5u2_vm0avzt7bEnFtwGv4a9R8cfeLmp3axz31ILj4kX_Yh_tSHlQfsowe3-bN_mf-xk3UHrTY1kgkdQi8cXciBDGmlosnK4QB6UCfq3t77hqN03XVmFnS7JFvR4zLfaM2xaxpfxMoGAdsWa-f99pMRDhQK6_zel3cd3ch-VLKWjihrMbrJkLLW6H5hwGGWRg89Dg5spyfVQIdqjMKm5M2Wb0XoKBPLH_vvixDwlt5kvv16pzfSiVlqA9JCL639KC2cjCo750ZLzgTsG60D9TpVUa17Oig1X38vo9G_KYeOVGhCS5uMFxsediWyTVGwrKhYnsZZsWk4JnmRpmLLedzwPFSiQmXLIHulcfZKGqKrtUH_qLJ9KEsWM1pJllCBtIh41SaiTUhlXHFOrySNsRdSRV5JpM0hNOUiqpoOlkAlrbN3UFCnhwHxQvhTzmjyOL-wicl12pSDrLUSdhZWKlF3GC5tlUtPfwAKlYgX">