diff options
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/IPO/IndMemRemoval.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Transforms/IPO/RaiseAllocations.cpp | 8 | ||||
| -rw-r--r-- | llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp | 55 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Instrumentation/ProfilingUtils.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Instrumentation/TraceValues.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Transforms/LevelRaise.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LowerGC.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Utils/LowerAllocations.cpp | 17 | 
8 files changed, 49 insertions, 47 deletions
| diff --git a/llvm/lib/Transforms/IPO/IndMemRemoval.cpp b/llvm/lib/Transforms/IPO/IndMemRemoval.cpp index 9d3c147a1f6..9ad25dd9fa0 100644 --- a/llvm/lib/Transforms/IPO/IndMemRemoval.cpp +++ b/llvm/lib/Transforms/IPO/IndMemRemoval.cpp @@ -74,8 +74,8 @@ bool IndMemRemPass::runOnModule(Module &M) {  				  GlobalValue::LinkOnceLinkage,   				  "malloc_llvm_bounce", &M);        BasicBlock* bb = new BasicBlock("entry",FN); -      Instruction* c =  -        CastInst::createInferredCast(FN->arg_begin(), Type::UIntTy, "c", bb); +      Instruction* c = CastInst::createIntegerCast( +          FN->arg_begin(), Type::UIntTy, false, "c", bb);        Instruction* a = new MallocInst(Type::SByteTy, c, "m", bb);        new ReturnInst(a, bb);        ++NumBounce; diff --git a/llvm/lib/Transforms/IPO/RaiseAllocations.cpp b/llvm/lib/Transforms/IPO/RaiseAllocations.cpp index 77a9a3d57ea..46c6815994f 100644 --- a/llvm/lib/Transforms/IPO/RaiseAllocations.cpp +++ b/llvm/lib/Transforms/IPO/RaiseAllocations.cpp @@ -141,8 +141,8 @@ bool RaiseAllocations::runOnModule(Module &M) {            // source size.            if (Source->getType() != Type::UIntTy)              Source =  -              CastInst::createInferredCast(Source, Type::UIntTy, -                                           "MallocAmtCast", I); +              CastInst::createIntegerCast(Source, Type::UIntTy, false/*ZExt*/, +                                          "MallocAmtCast", I);            std::string Name(I->getName()); I->setName("");            MallocInst *MI = new MallocInst(Type::SByteTy, Source, Name, I); @@ -193,8 +193,8 @@ bool RaiseAllocations::runOnModule(Module &M) {            //            Value *Source = *CS.arg_begin();            if (!isa<PointerType>(Source->getType())) -            Source = CastInst::createInferredCast( -                Source, PointerType::get(Type::SByteTy), "FreePtrCast", I); +            Source = new IntToPtrInst(Source, PointerType::get(Type::SByteTy),  +                                      "FreePtrCast", I);            new FreeInst(Source, I);            // If the old instruction was an invoke, add an unconditional branch diff --git a/llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp b/llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp index f989d1dd162..8f2b94d1d8b 100644 --- a/llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp +++ b/llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp @@ -1009,7 +1009,8 @@ struct memcmpOptimization : public LibCallOptimization {        Value *S2V = new LoadInst(Op2Cast, RHS->getName()+".val", CI);        Value *RV = BinaryOperator::createSub(S1V, S2V, CI->getName()+".diff",CI);        if (RV->getType() != CI->getType()) -        RV = CastInst::createInferredCast(RV, CI->getType(), RV->getName(), CI); +        RV = CastInst::createIntegerCast(RV, CI->getType(), false,  +                                         RV->getName(), CI);        CI->replaceAllUsesWith(RV);        CI->eraseFromParent();        return true; @@ -1037,8 +1038,8 @@ struct memcmpOptimization : public LibCallOptimization {                                                CI->getName()+".d1", CI);          Value *Or = BinaryOperator::createOr(D1, D2, CI->getName()+".res", CI);          if (Or->getType() != CI->getType()) -          Or = CastInst::createInferredCast(Or, CI->getType(), Or->getName(),  -                                            CI); +          Or = CastInst::createIntegerCast(Or, CI->getType(), false /*ZExt*/,  +                                           Or->getName(), CI);          CI->replaceAllUsesWith(Or);          CI->eraseFromParent();          return true; @@ -1222,8 +1223,8 @@ struct LLVMMemSetOptimization : public LibCallOptimization {      }      // Cast dest to the right sized primitive and then load/store -    CastInst* DestCast = CastInst::createInferredCast( -        dest, PointerType::get(castType), dest->getName()+".cast", ci); +    CastInst* DestCast = new BitCastInst(dest, PointerType::get(castType),  +                                         dest->getName()+".cast", ci);      new StoreInst(ConstantInt::get(castType,fill_value),DestCast, ci);      ci->eraseFromParent();      return true; @@ -1365,7 +1366,7 @@ public:          Function* putchar_func = SLC.get_putchar();          if (!putchar_func)            return false; -        CastInst* cast = CastInst::createInferredCast( +        CastInst* cast = CastInst::createSExtOrBitCast(              ci->getOperand(2), Type::IntTy, CI->getName()+".int", ci);          new CallInst(putchar_func, cast, "", ci);          ci->replaceAllUsesWith(ConstantInt::get(Type::IntTy, 1)); @@ -1499,7 +1500,7 @@ public:          Function* fputc_func = SLC.get_fputc(FILEptr_type);          if (!fputc_func)            return false; -        CastInst* cast = CastInst::createInferredCast( +        CastInst* cast = CastInst::createSExtOrBitCast(              ci->getOperand(3), Type::IntTy, CI->getName()+".int", ci);          new CallInst(fputc_func,cast,ci->getOperand(1),"",ci);          ci->replaceAllUsesWith(ConstantInt::get(Type::IntTy,1)); @@ -1606,8 +1607,8 @@ public:                                              ConstantInt::get(Len->getType(), 1),                                                Len->getName()+"1", ci);        if (Len1->getType() != SLC.getIntPtrType()) -        Len1 = CastInst::createInferredCast( -            Len1, SLC.getIntPtrType(), Len1->getName(), ci); +        Len1 = CastInst::createIntegerCast(Len1, SLC.getIntPtrType(), false, +                                           Len1->getName(), ci);        std::vector<Value*> args;        args.push_back(CastToCStr(ci->getOperand(1), *ci));        args.push_back(CastToCStr(ci->getOperand(3), *ci)); @@ -1618,8 +1619,8 @@ public:        // The strlen result is the unincremented number of bytes in the string.        if (!ci->use_empty()) {          if (Len->getType() != ci->getType()) -          Len = CastInst::createInferredCast( -              Len, ci->getType(), Len->getName(), ci); +          Len = CastInst::createIntegerCast(Len, ci->getType(), false,  +                                            Len->getName(), ci);          ci->replaceAllUsesWith(Len);        }        ci->eraseFromParent(); @@ -1627,7 +1628,7 @@ public:      }      case 'c': {        // sprintf(dest,"%c",chr) -> store chr, dest -      CastInst* cast = CastInst::createInferredCast( +      CastInst* cast = CastInst::createTruncOrBitCast(            ci->getOperand(3), Type::SByteTy, "char", ci);        new StoreInst(cast, ci->getOperand(1), ci);        GetElementPtrInst* gep = new GetElementPtrInst(ci->getOperand(1), @@ -1684,8 +1685,8 @@ public:            return false;          LoadInst* loadi = new LoadInst(ci->getOperand(1),            ci->getOperand(1)->getName()+".byte",ci); -        CastInst* casti = CastInst::createInferredCast( -            loadi, Type::IntTy, loadi->getName()+".int", ci); +        CastInst* casti = new SExtInst(loadi, Type::IntTy,  +                                       loadi->getName()+".int", ci);          new CallInst(fputc_func,casti,ci->getOperand(2),"",ci);          break;        } @@ -1738,16 +1739,16 @@ public:      }      // isdigit(c)   -> (unsigned)c - '0' <= 9 -    CastInst* cast = CastInst::createInferredCast(ci->getOperand(1), -        Type::UIntTy, ci->getOperand(1)->getName()+".uint", ci); +    CastInst* cast = CastInst::createIntegerCast(ci->getOperand(1), +        Type::UIntTy, false/*ZExt*/, ci->getOperand(1)->getName()+".uint", ci);      BinaryOperator* sub_inst = BinaryOperator::createSub(cast,          ConstantInt::get(Type::UIntTy,0x30),          ci->getOperand(1)->getName()+".sub",ci);      SetCondInst* setcond_inst = new SetCondInst(Instruction::SetLE,sub_inst,          ConstantInt::get(Type::UIntTy,9),          ci->getOperand(1)->getName()+".cmp",ci); -    CastInst* c2 = CastInst::createInferredCast( -        setcond_inst, Type::IntTy, ci->getOperand(1)->getName()+".isdigit", ci); +    CastInst* c2 = new SExtInst(setcond_inst, Type::IntTy,  +        ci->getOperand(1)->getName()+".isdigit", ci);      ci->replaceAllUsesWith(c2);      ci->eraseFromParent();      return true; @@ -1769,14 +1770,13 @@ public:      // isascii(c)   -> (unsigned)c < 128      Value *V = CI->getOperand(1);      if (V->getType()->isSigned()) -      V = CastInst::createInferredCast(V, V->getType()->getUnsignedVersion(),  -                                       V->getName(), CI); +      V = new BitCastInst(V, V->getType()->getUnsignedVersion(), V->getName(),  +                          CI);      Value *Cmp = BinaryOperator::createSetLT(V, ConstantInt::get(V->getType(),                                                                    128),                                               V->getName()+".isascii", CI);      if (Cmp->getType() != CI->getType()) -      Cmp = CastInst::createInferredCast( -          Cmp, CI->getType(), Cmp->getName(), CI); +      Cmp = new BitCastInst(Cmp, CI->getType(), Cmp->getName(), CI);      CI->replaceAllUsesWith(Cmp);      CI->eraseFromParent();      return true; @@ -1870,10 +1870,11 @@ public:      Function *F = SLC.getModule()->getOrInsertFunction(CTTZName, ArgType,                                                         ArgType, NULL); -    Value *V = CastInst::createInferredCast( -        TheCall->getOperand(1), ArgType, "tmp", TheCall); +    Value *V = CastInst::createIntegerCast(TheCall->getOperand(1), ArgType,  +                                           false/*ZExt*/, "tmp", TheCall);      Value *V2 = new CallInst(F, V, "tmp", TheCall); -    V2 = CastInst::createInferredCast(V2, Type::IntTy, "tmp", TheCall); +    V2 = CastInst::createIntegerCast(V2, Type::IntTy, true/*SExt*/,  +                                     "tmp", TheCall);      V2 = BinaryOperator::createAdd(V2, ConstantInt::get(Type::IntTy, 1),                                     "tmp", TheCall);      Value *Cond =  @@ -2116,9 +2117,11 @@ bool getConstantStringLength(Value *V, uint64_t &len, ConstantArray **CA) {  /// inserting the cast before IP, and return the cast.  /// @brief Cast a value to a "C" string.  Value *CastToCStr(Value *V, Instruction &IP) { +  assert(V->getType()->getTypeID() == Type::PointerTyID &&  +         "Can't cast non-pointer type to C string type");    const Type *SBPTy = PointerType::get(Type::SByteTy);    if (V->getType() != SBPTy) -    return CastInst::createInferredCast(V, SBPTy, V->getName(), &IP); +    return new BitCastInst(V, SBPTy, V->getName(), &IP);    return V;  } diff --git a/llvm/lib/Transforms/Instrumentation/ProfilingUtils.cpp b/llvm/lib/Transforms/Instrumentation/ProfilingUtils.cpp index 887de5bfe2f..274275a689b 100644 --- a/llvm/lib/Transforms/Instrumentation/ProfilingUtils.cpp +++ b/llvm/lib/Transforms/Instrumentation/ProfilingUtils.cpp @@ -67,6 +67,7 @@ void llvm::InsertProfilingInitCall(Function *MainFn, const char *FnName,      } else {        InitCall->setOperand(2, AI);      } +    /* FALL THROUGH */    case 1:      AI = MainFn->arg_begin(); diff --git a/llvm/lib/Transforms/Instrumentation/TraceValues.cpp b/llvm/lib/Transforms/Instrumentation/TraceValues.cpp index 7451b51c31a..f6048f140d1 100644 --- a/llvm/lib/Transforms/Instrumentation/TraceValues.cpp +++ b/llvm/lib/Transforms/Instrumentation/TraceValues.cpp @@ -281,7 +281,7 @@ InsertReleaseInst(Value *V, BasicBlock *BB,    const Type *SBP = PointerType::get(Type::SByteTy);    if (V->getType() != SBP)    // Cast pointer to be sbyte* -    V = CastInst::createInferredCast(V, SBP, "RPSN_cast", InsertBefore); +    V = new BitCastInst(V, SBP, "RPSN_cast", InsertBefore);    std::vector<Value*> releaseArgs(1, V);    new CallInst(ReleasePtrFunc, releaseArgs, "", InsertBefore); @@ -293,7 +293,7 @@ InsertRecordInst(Value *V, BasicBlock *BB,                   Function* RecordPtrFunc) {      const Type *SBP = PointerType::get(Type::SByteTy);    if (V->getType() != SBP)     // Cast pointer to be sbyte* -    V = CastInst::createInferredCast(V, SBP, "RP_cast", InsertBefore); +    V = new BitCastInst(V, SBP, "RP_cast", InsertBefore);    std::vector<Value*> releaseArgs(1, V);    new CallInst(RecordPtrFunc, releaseArgs, "", InsertBefore); diff --git a/llvm/lib/Transforms/LevelRaise.cpp b/llvm/lib/Transforms/LevelRaise.cpp index 56622693a25..c5ac8c98b97 100644 --- a/llvm/lib/Transforms/LevelRaise.cpp +++ b/llvm/lib/Transforms/LevelRaise.cpp @@ -258,8 +258,8 @@ bool RPR::PeepholeOptimize(BasicBlock *BB, BasicBlock::iterator &BI) {                // The existing and new operand 0 types are different so we must                // replace CI with a new CastInst so that we are assured to                 // get the correct cast opcode. -              CastInst *NewCI = CastInst::createInferredCast( -                GEP, CI->getType(), CI->getName(), CI); +              CastInst *NewCI = new BitCastInst(GEP, CI->getType(),  +                                                CI->getName(), CI);                CI->replaceAllUsesWith(NewCI);                CI->eraseFromParent();                CI = NewCI; diff --git a/llvm/lib/Transforms/Scalar/LowerGC.cpp b/llvm/lib/Transforms/Scalar/LowerGC.cpp index fdfbf7f11ca..e844213b6a1 100644 --- a/llvm/lib/Transforms/Scalar/LowerGC.cpp +++ b/llvm/lib/Transforms/Scalar/LowerGC.cpp @@ -146,8 +146,7 @@ static void Coerce(Instruction *I, unsigned OpNum, Type *Ty) {      if (Constant *C = dyn_cast<Constant>(I->getOperand(OpNum)))        I->setOperand(OpNum, ConstantExpr::getBitCast(C, Ty));      else { -      CastInst *CI =  -        CastInst::createInferredCast(I->getOperand(OpNum), Ty, "", I); +      CastInst *CI = new BitCastInst(I->getOperand(OpNum), Ty, "", I);        I->setOperand(OpNum, CI);      }    } diff --git a/llvm/lib/Transforms/Utils/LowerAllocations.cpp b/llvm/lib/Transforms/Utils/LowerAllocations.cpp index d011d754757..30b0ab827e0 100644 --- a/llvm/lib/Transforms/Utils/LowerAllocations.cpp +++ b/llvm/lib/Transforms/Utils/LowerAllocations.cpp @@ -135,7 +135,8 @@ bool LowerAllocations::runOnBasicBlock(BasicBlock &BB) {          } else {            Value *Scale = MI->getOperand(0);            if (Scale->getType() != IntPtrTy) -            Scale = CastInst::createInferredCast(Scale, IntPtrTy, "", I); +            Scale = CastInst::createIntegerCast(Scale, IntPtrTy, false /*ZExt*/, +                                                "", I);            // Multiply it by the array size if necessary...            MallocArg = BinaryOperator::create(Instruction::Mul, Scale, @@ -149,13 +150,12 @@ bool LowerAllocations::runOnBasicBlock(BasicBlock &BB) {        if (MallocFTy->getNumParams() > 0 || MallocFTy->isVarArg()) {          if (MallocFTy->isVarArg()) {            if (MallocArg->getType() != IntPtrTy) -            MallocArg = CastInst::createInferredCast(MallocArg, IntPtrTy, "",  -                                                     I); +            MallocArg = CastInst::createIntegerCast(MallocArg, IntPtrTy,  +                                                    false /*ZExt*/, "", I);          } else if (MallocFTy->getNumParams() > 0 &&                     MallocFTy->getParamType(0) != Type::UIntTy) -          MallocArg =  -            CastInst::createInferredCast(MallocArg, MallocFTy->getParamType(0), -                                         "",I); +          MallocArg = CastInst::createIntegerCast( +              MallocArg, MallocFTy->getParamType(0), false/*ZExt*/, "",I);          MallocArgs.push_back(MallocArg);        } @@ -170,7 +170,7 @@ bool LowerAllocations::runOnBasicBlock(BasicBlock &BB) {        // Create a cast instruction to convert to the right type...        Value *MCast;        if (MCall->getType() != Type::VoidTy) -        MCast = CastInst::createInferredCast(MCall, MI->getType(), "", I); +        MCast = new BitCastInst(MCall, MI->getType(), "", I);        else          MCast = Constant::getNullValue(MI->getType()); @@ -187,8 +187,7 @@ bool LowerAllocations::runOnBasicBlock(BasicBlock &BB) {          Value *MCast = FI->getOperand(0);          if (FreeFTy->getNumParams() > 0 &&              FreeFTy->getParamType(0) != MCast->getType()) -          MCast = CastInst::createInferredCast(MCast, FreeFTy->getParamType(0),  -                                               "", I); +          MCast = new BitCastInst(MCast, FreeFTy->getParamType(0), "", I);          FreeArgs.push_back(MCast);        } | 

