[all-commits] [llvm/llvm-project] 0cfc65: [InstCombine] ease use constraint in tryFactorizat...
Sanjay Patel via All-commits
all-commits at lists.llvm.org
Wed Aug 24 09:11:12 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 0cfc6510323fbb5a56a5de23cbc65f7cc30fd34c
https://github.com/llvm/llvm-project/commit/0cfc6510323fbb5a56a5de23cbc65f7cc30fd34c
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2022-08-24 (Wed, 24 Aug 2022)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/test/Transforms/InstCombine/add.ll
M llvm/test/Transforms/InstCombine/and-or.ll
M llvm/test/Transforms/InstCombine/ctpop.ll
M llvm/test/Transforms/InstCombine/sub.ll
Log Message:
-----------
[InstCombine] ease use constraint in tryFactorization()
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
More information about the All-commits
mailing list