Model UB in integer division operations in the arith dialect
authorSanjoy Das <sanjoy.das@getcruise.com>
Fri, 11 Nov 2022 05:31:33 +0000 (21:31 -0800)
committerSanjoy Das <sanjoy.das@getcruise.com>
Fri, 11 Nov 2022 18:42:31 +0000 (10:42 -0800)
commited39825be48805b174d3177f1d8d41ed84784d18
tree5d2be0af0ab9ef7d848952abb0712fb0157f5d78
parentcf15d23e80af0e44ff5893d675294024bdd90eb8
Model UB in integer division operations in the arith dialect

Before this commit `arith.{ceil}div{u|s}i` were marked `Pure` which is
incorrect because these operations invoke UB on certain inputs.

Fixes: https://github.com/llvm/llvm-project/issues/58700

Reviewed By: kuhar

Differential Revision: https://reviews.llvm.org/D137814
mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
mlir/lib/Dialect/Arith/IR/ArithOps.cpp
mlir/test/Transforms/loop-invariant-code-motion.mlir