diff options
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombine.h | 1 | ||||
| -rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp | 35 | 
2 files changed, 18 insertions, 18 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombine.h b/llvm/lib/Transforms/InstCombine/InstCombine.h index 136bb885e51..536790004e8 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombine.h +++ b/llvm/lib/Transforms/InstCombine/InstCombine.h @@ -150,7 +150,6 @@ public:    Instruction *FoldShiftByConstant(Value *Op0, ConstantInt *Op1,                                     BinaryOperator &I);    Instruction *commonCastTransforms(CastInst &CI); -  Instruction *commonIntCastTransforms(CastInst &CI);    Instruction *commonPointerCastTransforms(CastInst &CI);    Instruction *visitTrunc(TruncInst &CI);    Instruction *visitZExt(ZExtInst &CI); diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp index 3b4821d9c95..4bea64d9a6f 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp @@ -302,19 +302,6 @@ Instruction *InstCombiner::commonCastTransforms(CastInst &CI) {    return 0;  } -/// commonIntCastTransforms - This function implements the common transforms -/// for trunc, zext, and sext. -Instruction *InstCombiner::commonIntCastTransforms(CastInst &CI) { -  if (Instruction *Result = commonCastTransforms(CI)) -    return Result; - -  // See if we can simplify any instructions used by the LHS whose sole  -  // purpose is to compute bits we don't care about. -  if (SimplifyDemandedInstructionBits(CI)) -    return &CI; -  return 0; -} -  /// CanEvaluateTruncated - Return true if we can evaluate the specified  /// expression tree as type Ty instead of its larger type, and arrive with the  /// same value.  This is used by code that tries to eliminate truncates. @@ -420,9 +407,14 @@ static bool CanEvaluateTruncated(Value *V, const Type *Ty) {  }  Instruction *InstCombiner::visitTrunc(TruncInst &CI) { -  if (Instruction *Result = commonIntCastTransforms(CI)) +  if (Instruction *Result = commonCastTransforms(CI))      return Result; +  // See if we can simplify any instructions used by the input whose sole  +  // purpose is to compute bits we don't care about. +  if (SimplifyDemandedInstructionBits(CI)) +    return &CI; +      Value *Src = CI.getOperand(0);    const Type *DestTy = CI.getType(), *SrcTy = Src->getType(); @@ -690,11 +682,15 @@ static int CanEvaluateZExtd(Value *V, const Type *Ty,unsigned &NumCastsRemoved,  Instruction *InstCombiner::visitZExt(ZExtInst &CI) {    // If one of the common conversion will work, do it. -  if (Instruction *Result = commonIntCastTransforms(CI)) +  if (Instruction *Result = commonCastTransforms(CI))      return Result; -  Value *Src = CI.getOperand(0); +  // See if we can simplify any instructions used by the input whose sole  +  // purpose is to compute bits we don't care about. +  if (SimplifyDemandedInstructionBits(CI)) +    return &CI; +  Value *Src = CI.getOperand(0);    const Type *SrcTy = Src->getType(), *DestTy = CI.getType();    // Attempt to extend the entire input expression tree to the destination @@ -941,9 +937,14 @@ static unsigned CanEvaluateSExtd(Value *V, const Type *Ty,  }  Instruction *InstCombiner::visitSExt(SExtInst &CI) { -  if (Instruction *I = commonIntCastTransforms(CI)) +  if (Instruction *I = commonCastTransforms(CI))      return I; +  // See if we can simplify any instructions used by the input whose sole  +  // purpose is to compute bits we don't care about. +  if (SimplifyDemandedInstructionBits(CI)) +    return &CI; +      Value *Src = CI.getOperand(0);    const Type *SrcTy = Src->getType(), *DestTy = CI.getType();  | 

