llvm-project
8c05b5cc - [mlir][Affine] Cancel delinearize_index ops fully reversed by apply (#163440)

Commit
20 days ago
[mlir][Affine] Cancel delinearize_index ops fully reversed by apply (#163440) If an `affine.apply` uses every result of an `affine.delinearize_index` operaration in an expresession of the form x_0 * S_0 + x_1 * S_1 + ... + x_n * S_n + ..., where S_i is the "stride" of the i-th delinerization result (the value it got divided by), then, that chain of additions contains the inverse of the affine.delinearize_index. We don't want to compose affine.delinearize_index into affine.apply in general, since this leads to "simplifications" (mainly the `x % y => x - (x / y) * y` rewrite) thate are bad for code generation and algetbraic reasoning. However, if we do see an exact inverse, we should cancel it out.
Author
Parents
Loading