[llvm] 0b8711e - [GlobalISel] GISelKnownBits::computeKnownBitsImpl - Replace TargetOpcode::G_MUL handling with the common KnownBits::computeForMul implementation
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 4 09:25:52 PST 2020
Author: Simon Pilgrim
Date: 2020-11-04T17:25:24Z
New Revision: 0b8711e1af97d6c82dc9d25c12c5a06af060cc56
URL: https://github.com/llvm/llvm-project/commit/0b8711e1af97d6c82dc9d25c12c5a06af060cc56
DIFF: https://github.com/llvm/llvm-project/commit/0b8711e1af97d6c82dc9d25c12c5a06af060cc56.diff
LOG: [GlobalISel] GISelKnownBits::computeKnownBitsImpl - Replace TargetOpcode::G_MUL handling with the common KnownBits::computeForMul implementation
Avoid code duplication
Added:
Modified:
llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp b/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
index 81a89a6eb0b7..862764f30522 100644
--- a/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
@@ -287,20 +287,7 @@ void GISelKnownBits::computeKnownBitsImpl(Register R, KnownBits &Known,
Depth + 1);
computeKnownBitsImpl(MI.getOperand(1).getReg(), Known2, DemandedElts,
Depth + 1);
- // If low bits are zero in either operand, output low known-0 bits.
- // Also compute a conservative estimate for high known-0 bits.
- // More trickiness is possible, but this is sufficient for the
- // interesting case of alignment computation.
- unsigned TrailZ =
- Known.countMinTrailingZeros() + Known2.countMinTrailingZeros();
- unsigned LeadZ =
- std::max(Known.countMinLeadingZeros() + Known2.countMinLeadingZeros(),
- BitWidth) -
- BitWidth;
-
- Known.resetAll();
- Known.Zero.setLowBits(std::min(TrailZ, BitWidth));
- Known.Zero.setHighBits(std::min(LeadZ, BitWidth));
+ Known = KnownBits::computeForMul(Known, Known2);
break;
}
case TargetOpcode::G_SELECT: {
More information about the llvm-commits
mailing list