Lines Matching defs:LF

1715                                   const LSRFixup &LF,
1719 Value *Expand(const LSRFixup &LF,
1724 void RewriteForPHI(PHINode *PN, const LSRFixup &LF,
1729 void Rewrite(const LSRFixup &LF,
2923 LSRFixup &LF = getNewFixup();
2924 LF.UserInst = UserInst;
2925 LF.OperandValToReplace = UI->getOperandValToReplace();
2926 LF.PostIncLoops = UI->getPostIncLoops();
2930 if (isAddressUse(LF.UserInst, LF.OperandValToReplace)) {
2932 AccessTy = getAccessType(LF.UserInst);
2943 if (ICmpInst *CI = dyn_cast<ICmpInst>(LF.UserInst))
2948 if (NV == LF.OperandValToReplace) {
2961 LF.PostIncLoops, SE, DT);
2976 LF.LUIdx = P.first;
2977 LF.Offset = P.second;
2978 LSRUse &LU = Uses[LF.LUIdx];
2979 LU.AllFixupsOutsideLoop &= LF.isUseFullyOutsideLoop(L);
2982 SE.getTypeSizeInBits(LF.OperandValToReplace->getType()))
2983 LU.WidestFixupType = LF.OperandValToReplace->getType();
2987 InsertInitialFormula(S, LU, LF.LUIdx);
2988 CountRegisters(LU.Formulae.back(), LF.LUIdx);
3109 LSRFixup &LF = getNewFixup();
3110 LF.UserInst = const_cast<Instruction *>(UserInst);
3111 LF.OperandValToReplace = UI.getUse();
3113 LF.LUIdx = P.first;
3114 LF.Offset = P.second;
3115 LSRUse &LU = Uses[LF.LUIdx];
3116 LU.AllFixupsOutsideLoop &= LF.isUseFullyOutsideLoop(L);
3119 SE.getTypeSizeInBits(LF.OperandValToReplace->getType()))
3120 LU.WidestFixupType = LF.OperandValToReplace->getType();
3121 InsertSupplementalFormula(U, LU, LF.LUIdx);
4313 const LSRFixup &LF,
4320 if (Instruction *I = dyn_cast<Instruction>(LF.OperandValToReplace))
4324 dyn_cast<Instruction>(cast<ICmpInst>(LF.UserInst)->getOperand(1)))
4326 if (LF.PostIncLoops.count(L)) {
4327 if (LF.isUseFullyOutsideLoop(L))
4334 for (PostIncLoopSet::const_iterator I = LF.PostIncLoops.begin(),
4335 E = LF.PostIncLoops.end(); I != E; ++I) {
4377 Value *LSRInstance::Expand(const LSRFixup &LF,
4382 const LSRUse &LU = Uses[LF.LUIdx];
4384 return LF.OperandValToReplace;
4388 IP = AdjustInsertPositionForExpand(IP, LF, LU, Rewriter);
4392 Rewriter.setPostInc(LF.PostIncLoops);
4395 Type *OpTy = LF.OperandValToReplace->getType();
4417 PostIncLoopSet &Loops = const_cast<PostIncLoopSet &>(LF.PostIncLoops);
4419 LF.UserInst, LF.OperandValToReplace,
4431 PostIncLoopSet &Loops = const_cast<PostIncLoopSet &>(LF.PostIncLoops);
4433 LF.UserInst, LF.OperandValToReplace,
4480 int64_t Offset = (uint64_t)F.BaseOffset + LF.Offset;
4519 ICmpInst *CI = cast<ICmpInst>(LF.UserInst);
4554 const LSRFixup &LF,
4561 if (PN->getIncomingValue(i) == LF.OperandValToReplace) {
4607 Value *FullV = Expand(LF, F, BB->getTerminator(), Rewriter, DeadInsts);
4610 Type *OpTy = LF.OperandValToReplace->getType();
4615 FullV, LF.OperandValToReplace->getType(),
4627 void LSRInstance::Rewrite(const LSRFixup &LF,
4634 if (PHINode *PN = dyn_cast<PHINode>(LF.UserInst)) {
4635 RewriteForPHI(PN, LF, F, Rewriter, DeadInsts, P);
4637 Value *FullV = Expand(LF, F, LF.UserInst, Rewriter, DeadInsts);
4640 Type *OpTy = LF.OperandValToReplace->getType();
4644 FullV, OpTy, "tmp", LF.UserInst);
4650 // its new value may happen to be equal to LF.OperandValToReplace, in
4653 if (Uses[LF.LUIdx].Kind == LSRUse::ICmpZero)
4654 LF.UserInst->setOperand(0, FullV);
4656 LF.UserInst->replaceUsesOfWith(LF.OperandValToReplace, FullV);
4659 DeadInsts.push_back(LF.OperandValToReplace);