reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
411 unsigned SrcValStoreSize = DL.getTypeStoreSize(SrcVal->getType()); 414 assert(SrcVal->isSimple() && "Cannot widen volatile/atomic load!"); 415 assert(SrcVal->getType()->isIntegerTy() && "Can't widen non-integer load"); 422 Value *PtrVal = SrcVal->getPointerOperand(); 426 IRBuilder<> Builder(SrcVal->getParent(), ++BasicBlock::iterator(SrcVal)); 426 IRBuilder<> Builder(SrcVal->getParent(), ++BasicBlock::iterator(SrcVal)); 430 Builder.SetCurrentDebugLocation(SrcVal->getDebugLoc()); 433 NewLoad->takeName(SrcVal); 434 NewLoad->setAlignment(MaybeAlign(SrcVal->getAlignment())); 436 LLVM_DEBUG(dbgs() << "GVN WIDENED LOAD: " << *SrcVal << "\n"); 444 RV = Builder.CreateTrunc(RV, SrcVal->getType()); 445 SrcVal->replaceAllUsesWith(RV); 447 SrcVal = NewLoad; 450 return getStoreValueForLoad(SrcVal, Offset, LoadTy, InsertPt, DL);