mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 06:25:18 +00:00
The TargetData is not used for the isPowerOfTwo determination. It has never
been used in the first place. It simply was passed to the function and to the recursive invocations. Simply drop the parameter and update the callers for the new signature. Patch by Saleem Abdulrasool! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169988 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -37,7 +37,7 @@ static Value *simplifyValueKnownNonZero(Value *V, InstCombiner &IC) {
|
||||
if (match(V, m_LShr(m_OneUse(m_Shl(m_Value(PowerOf2), m_Value(A))),
|
||||
m_Value(B))) &&
|
||||
// The "1" can be any value known to be a power of 2.
|
||||
isPowerOfTwo(PowerOf2, IC.getDataLayout())) {
|
||||
isPowerOfTwo(PowerOf2)) {
|
||||
A = IC.Builder->CreateSub(A, B);
|
||||
return IC.Builder->CreateShl(PowerOf2, A);
|
||||
}
|
||||
@@ -45,8 +45,7 @@ static Value *simplifyValueKnownNonZero(Value *V, InstCombiner &IC) {
|
||||
// (PowerOfTwo >>u B) --> isExact since shifting out the result would make it
|
||||
// inexact. Similarly for <<.
|
||||
if (BinaryOperator *I = dyn_cast<BinaryOperator>(V))
|
||||
if (I->isLogicalShift() &&
|
||||
isPowerOfTwo(I->getOperand(0), IC.getDataLayout())) {
|
||||
if (I->isLogicalShift() && isPowerOfTwo(I->getOperand(0))) {
|
||||
// We know that this is an exact/nuw shift and that the input is a
|
||||
// non-zero context as well.
|
||||
if (Value *V2 = simplifyValueKnownNonZero(I->getOperand(0), IC)) {
|
||||
|
Reference in New Issue
Block a user