mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Don't use ConstantExpr::getShift anymore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10791 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -596,19 +596,11 @@ void SCCP::visitBinaryOperator(Instruction &I) {
|
||||
Result.markOverdefined();
|
||||
break; // Cannot fold this operation over the PHI nodes!
|
||||
} else if (In1.isConstant() && In2.isConstant()) {
|
||||
Constant *Val = 0;
|
||||
if (isa<BinaryOperator>(I))
|
||||
Val = ConstantExpr::get(I.getOpcode(), In1.getConstant(),
|
||||
In2.getConstant());
|
||||
else {
|
||||
assert(isa<ShiftInst>(I) &&
|
||||
"Can only handle binops and shifts here!");
|
||||
Val = ConstantExpr::getShift(I.getOpcode(), In1.getConstant(),
|
||||
In2.getConstant());
|
||||
}
|
||||
Constant *V = ConstantExpr::get(I.getOpcode(), In1.getConstant(),
|
||||
In2.getConstant());
|
||||
if (Result.isUndefined())
|
||||
Result.markConstant(Val);
|
||||
else if (Result.isConstant() && Result.getConstant() != Val) {
|
||||
Result.markConstant(V);
|
||||
else if (Result.isConstant() && Result.getConstant() != V) {
|
||||
Result.markOverdefined();
|
||||
break;
|
||||
}
|
||||
@@ -652,17 +644,8 @@ void SCCP::visitBinaryOperator(Instruction &I) {
|
||||
|
||||
markOverdefined(IV, &I);
|
||||
} else if (V1State.isConstant() && V2State.isConstant()) {
|
||||
Constant *Result = 0;
|
||||
if (isa<BinaryOperator>(I))
|
||||
Result = ConstantExpr::get(I.getOpcode(), V1State.getConstant(),
|
||||
V2State.getConstant());
|
||||
else {
|
||||
assert (isa<ShiftInst>(I) && "Can only handle binops and shifts here!");
|
||||
Result = ConstantExpr::getShift(I.getOpcode(), V1State.getConstant(),
|
||||
V2State.getConstant());
|
||||
}
|
||||
|
||||
markConstant(IV, &I, Result); // This instruction constant folds!
|
||||
markConstant(IV, &I, ConstantExpr::get(I.getOpcode(), V1State.getConstant(),
|
||||
V2State.getConstant()));
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user