mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-20 16:17:38 +00:00
Always compute all the bits in ComputeMaskedBits.
This allows us to keep passing reduced masks to SimplifyDemandedBits, but know about all the bits if SimplifyDemandedBits fails. This allows instcombine to simplify cases like the one in the included testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154011 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -36,11 +36,9 @@ namespace llvm {
|
||||
/// where V is a vector, the mask, known zero, and known one values are the
|
||||
/// same width as the vector element, and the bit is set only if it is true
|
||||
/// for all of the elements in the vector.
|
||||
void ComputeMaskedBits(Value *V, const APInt &Mask, APInt &KnownZero,
|
||||
APInt &KnownOne, const TargetData *TD = 0,
|
||||
unsigned Depth = 0);
|
||||
void computeMaskedBitsLoad(const MDNode &Ranges, const APInt &Mask,
|
||||
APInt &KnownZero);
|
||||
void ComputeMaskedBits(Value *V, APInt &KnownZero, APInt &KnownOne,
|
||||
const TargetData *TD = 0, unsigned Depth = 0);
|
||||
void computeMaskedBitsLoad(const MDNode &Ranges, APInt &KnownZero);
|
||||
|
||||
/// ComputeSignBit - Determine whether the sign bit is known to be zero or
|
||||
/// one. Convenience wrapper around ComputeMaskedBits.
|
||||
|
||||
@@ -980,8 +980,8 @@ public:
|
||||
/// bitsets. This code only analyzes bits in Mask, in order to short-circuit
|
||||
/// processing. Targets can implement the computeMaskedBitsForTargetNode
|
||||
/// method in the TargetLowering class to allow target nodes to be understood.
|
||||
void ComputeMaskedBits(SDValue Op, const APInt &Mask, APInt &KnownZero,
|
||||
APInt &KnownOne, unsigned Depth = 0) const;
|
||||
void ComputeMaskedBits(SDValue Op, APInt &KnownZero, APInt &KnownOne,
|
||||
unsigned Depth = 0) const;
|
||||
|
||||
/// ComputeNumSignBits - Return the number of times the sign bit of the
|
||||
/// register is replicated into the other bits. We know that at least 1 bit
|
||||
|
||||
@@ -873,7 +873,6 @@ public:
|
||||
/// Mask are known to be either zero or one and return them in the
|
||||
/// KnownZero/KnownOne bitsets.
|
||||
virtual void computeMaskedBitsForTargetNode(const SDValue Op,
|
||||
const APInt &Mask,
|
||||
APInt &KnownZero,
|
||||
APInt &KnownOne,
|
||||
const SelectionDAG &DAG,
|
||||
|
||||
Reference in New Issue
Block a user