The stronger one-use checks prevented transforms like this: (x * y) + x --> x * (y + 1) (x * y) - x --> x * (y - 1) https://alive2.llvm.org/ce/z/eMhvQa This is one of the IR transforms suggested in issue #57255. This should be better in IR because it removes a use of a variable operand (we already fold the case with a constant multiply operand). The backend should be able to re-distribute the multiply if that's better for the target. Differential Revision: https://reviews.llvm.org/D132412 |
||
|---|---|---|
| .. | ||
| AggressiveInstCombine | ||
| CFGuard | ||
| Coroutines | ||
| Hello | ||
| IPO | ||
| InstCombine | ||
| Instrumentation | ||
| ObjCARC | ||
| Scalar | ||
| Utils | ||
| Vectorize | ||
| CMakeLists.txt | ||