mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-17 03:30:28 +00:00
For PR1205:
Provide an APIntified version of MaskedValueIsZero. This will (temporarily) cause a "defined but not used" message from the compiler. It will be used in the next patch in this series. Patch by Sheng Zhou. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35019 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3e7594f187
commit
e7816b5c9e
@ -979,6 +979,16 @@ static bool MaskedValueIsZero(Value *V, uint64_t Mask, unsigned Depth = 0) {
|
|||||||
return (KnownZero & Mask) == Mask;
|
return (KnownZero & Mask) == Mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// MaskedValueIsZero - Return true if 'V & Mask' is known to be zero. We use
|
||||||
|
/// this predicate to simplify operations downstream. Mask is known to be zero
|
||||||
|
/// for bits that V cannot have.
|
||||||
|
static bool MaskedValueIsZero(Value *V, const APInt& Mask, unsigned Depth = 0) {
|
||||||
|
APInt KnownZero(Mask), KnownOne(Mask);
|
||||||
|
ComputeMaskedBits(V, Mask, KnownZero, KnownOne, Depth);
|
||||||
|
assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
|
||||||
|
return (KnownZero & Mask) == Mask;
|
||||||
|
}
|
||||||
|
|
||||||
/// ShrinkDemandedConstant - Check to see if the specified operand of the
|
/// ShrinkDemandedConstant - Check to see if the specified operand of the
|
||||||
/// specified instruction is a constant integer. If so, check to see if there
|
/// specified instruction is a constant integer. If so, check to see if there
|
||||||
/// are any bits set in the constant that are not demanded. If so, shrink the
|
/// are any bits set in the constant that are not demanded. If so, shrink the
|
||||||
|
Loading…
Reference in New Issue
Block a user