<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62374>62374</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR] The program getting stuck when performing `affine` optimizations
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
BealZephyr
</td>
</tr>
</table>
<pre>
Test commit: https://github.com/llvm/llvm-project/commit/da0730b908a43e490430717beda8486598667ab8
Steps to reproduce:
```
mlir-opt test.mlir -affine-loop-tile -affine-data-copy-generate -debug
```
Test case:
```
#map3 = affine_map<(d0, d1) -> ((d0 * 72 + d1) floordiv 2304 + ((((d0 * 72 + d1) mod 2304) mod 1152) mod 9) floordiv 3)>
#map4 = affine_map<(d0, d1) -> ((d0 * 72 + d1) mod 2304 - (((d0 * 72 + d1) mod 2304) floordiv 1152) * 1151 - ((((d0 * 72 + d1) mod 2304) mod 1152) floordiv 9) * 9 - (((((d0 * 72 + d1) mod 2304) mod 1152) mod 9) floordiv 3) * 3)>
#map5 = affine_map<(d0, d1) -> (((((d0 * 72 + d1) mod 2304) mod 1152) floordiv 9) floordiv 8)>
func.func @main(%arg0: memref<4x4x16x1xf32>) {
%c0 = arith.constant 0 : index
%0 = memref.alloc() : memref<1x2x3x3x16x1xf32>
affine.for %i0 = 0 to 64 {
affine.for %i1 = 0 to 9 {
%2 = affine.apply #map3(%i0, %i1)
%3 = affine.apply #map4(%i0, %i1)
%4 = affine.apply #map5(%i0, %i1)
%5 = affine.load %arg0[%2, %c0, %4, %c0] : memref<4x4x16x1xf32>
}
}
return
}
```
[log.txt](https://github.com/llvm/llvm-project/files/11329422/log.txt) is the log of the program execution in debug mode. There is a timeout problem caused by `-affine-loop-tile -affine-data-copy-generate`, and then the program keeps getting stuck.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVU2PpDYQ_TXuS6mR8QcfBw7T09tSpOSS7CmXyEBBO2swMmbD5NdHhqaH3uxEM8pKLdou6r2qV2VTahx12yMWRJ6IPB_U5K_WFSdU5nccri_uUNr6pfiMo4fKdp32hD_B1fthJPyJsAthl1b761RGle0Iuxjzdfs7Ds7-iZUn7HKDskutaMppmdNMCY4ip4LTNE5LrFUmskTmWZKkqswIPRP6tD5_8ziM4C04HJytpwpD6J0DSejtt2w7o93RDh7A4-ijsAU4qqbRPR6NtcPRa4N3S628OlZ2eDm22KNTHuFYYzm13yVfK6HGXQ6PDoTxTg0cCD_DGuGPTg2EPxOW1ZSwZ6hjwnI4Ev4JCMsWMxD2BCkDwk63142x1tX6KzBOxWJffd9GdLZenLd1HEu2rfMHSk5YTvinfb7i_-a7RYcjvDvLe0JbqsE7jmW8J_mg2jtnvhHm37D9kPIt-O_UUX6kjj9A4H2X7XNppr6KwgOIoJ3S_RJGKtfScH077Bw2hD-LWcxxMsdzw1kAB13paeUAIExWdNXjtL9Gle1Hr3oPwfgEuq9xvvkSJlfPlTpSxthqCZrDQ8R4ZjOf-UPUW7i1aFFjXaDTKx8N9z4R-7T-5Rm_euaPjosGtmtJpIbBvMDtjq5V0UtzFqJQw0cwfwss3gEWb4HlO8D7kxQZq2rYOihPQdUNWm0c4tUgz_Cfbb4HIun53uz70qGfXH871Jv124-cPBnbRn72RJ4Jyz48EBptcCTsEsec5YKx4HEjZDnoEfwVwdgWbLMsB2dbpzrAGavJa9uD7mH5SofLgRF8vqLDAFTgdYd28gFTGuygUtOINZQvQBL6kTkQ5LJnUH0dcugfEvmCYSi16L3uWxj9VH2J9jPpUBe8znmuDljEScZElmVMHK6FyEQi8lyUKi6RUpU0SSrrikmplKhSetAFo-His4QmlDIRySTPlKSZqmTSJCIjgmKntIlCTSPr2oMexwmLhPFUHIwq0YzbPHfFUvhyakciqNGjH19hXnuzTP5ffv7p13BqPu8EPkiDv4L-AV1jXResJKFr2UhCwQ5ed_pvFfoyHiZnig-fh0VBOBCLiH8CAAD__xRtYRQ">