diff options
Diffstat (limited to 'lib/Transforms/Scalar/SCCP.cpp')
-rw-r--r-- | lib/Transforms/Scalar/SCCP.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/Transforms/Scalar/SCCP.cpp b/lib/Transforms/Scalar/SCCP.cpp index b721ca0..c284b0d 100644 --- a/lib/Transforms/Scalar/SCCP.cpp +++ b/lib/Transforms/Scalar/SCCP.cpp @@ -179,8 +179,7 @@ private: void visitReturnInst(ReturnInst &I) { /*does not have an effect*/ } void visitTerminatorInst(TerminatorInst &TI); - void visitUnaryOperator(Instruction &I); - void visitCastInst(CastInst &I) { visitUnaryOperator(I); } + void visitCastInst(CastInst &I); void visitBinaryOperator(Instruction &I); void visitShiftInst(ShiftInst &I) { visitBinaryOperator(I); } @@ -478,15 +477,14 @@ void SCCP::visitTerminatorInst(TerminatorInst &TI) { } } -void SCCP::visitUnaryOperator(Instruction &I) { +void SCCP::visitCastInst(CastInst &I) { Value *V = I.getOperand(0); InstVal &VState = getValueState(V); if (VState.isOverdefined()) { // Inherit overdefinedness of operand markOverdefined(&I); } else if (VState.isConstant()) { // Propogate constant value - Constant *Result = isa<CastInst>(I) - ? ConstantFoldCastInstruction(VState.getConstant(), I.getType()) - : ConstantFoldUnaryInstruction(I.getOpcode(), VState.getConstant()); + Constant *Result = + ConstantFoldCastInstruction(VState.getConstant(), I.getType()); if (Result) { // This instruction constant folds! |