Lines Matching defs:LF

1432                                                      const LSRFixup &LF,
1435 Value *Expand(const LSRFixup &LF,
1440 void RewriteForPHI(PHINode *PN, const LSRFixup &LF,
1445 void Rewrite(const LSRFixup &LF,
2097 LSRFixup &LF = getNewFixup();
2098 LF.UserInst = UI->getUser();
2099 LF.OperandValToReplace = UI->getOperandValToReplace();
2100 LF.PostIncLoops = UI->getPostIncLoops();
2104 if (isAddressUse(LF.UserInst, LF.OperandValToReplace)) {
2106 AccessTy = getAccessType(LF.UserInst);
2117 if (ICmpInst *CI = dyn_cast<ICmpInst>(LF.UserInst))
2122 if (NV == LF.OperandValToReplace) {
2135 LF.PostIncLoops, SE, DT);
2150 LF.LUIdx = P.first;
2151 LF.Offset = P.second;
2152 LSRUse &LU = Uses[LF.LUIdx];
2153 LU.AllFixupsOutsideLoop &= LF.isUseFullyOutsideLoop(L);
2156 SE.getTypeSizeInBits(LF.OperandValToReplace->getType()))
2157 LU.WidestFixupType = LF.OperandValToReplace->getType();
2161 InsertInitialFormula(S, LU, LF.LUIdx);
2162 CountRegisters(LU.Formulae.back(), LF.LUIdx);
2279 LSRFixup &LF = getNewFixup();
2280 LF.UserInst = const_cast<Instruction *>(UserInst);
2281 LF.OperandValToReplace = UI.getUse();
2283 LF.LUIdx = P.first;
2284 LF.Offset = P.second;
2285 LSRUse &LU = Uses[LF.LUIdx];
2286 LU.AllFixupsOutsideLoop &= LF.isUseFullyOutsideLoop(L);
2289 SE.getTypeSizeInBits(LF.OperandValToReplace->getType()))
2290 LU.WidestFixupType = LF.OperandValToReplace->getType();
2291 InsertSupplementalFormula(U, LU, LF.LUIdx);
3439 const LSRFixup &LF,
3445 if (Instruction *I = dyn_cast<Instruction>(LF.OperandValToReplace))
3449 dyn_cast<Instruction>(cast<ICmpInst>(LF.UserInst)->getOperand(1)))
3451 if (LF.PostIncLoops.count(L)) {
3452 if (LF.isUseFullyOutsideLoop(L))
3459 for (PostIncLoopSet::const_iterator I = LF.PostIncLoops.begin(),
3460 E = LF.PostIncLoops.end(); I != E; ++I) {
3493 Value *LSRInstance::Expand(const LSRFixup &LF,
3498 const LSRUse &LU = Uses[LF.LUIdx];
3502 IP = AdjustInsertPositionForExpand(IP, LF, LU);
3506 Rewriter.setPostInc(LF.PostIncLoops);
3509 Type *OpTy = LF.OperandValToReplace->getType();
3531 PostIncLoopSet &Loops = const_cast<PostIncLoopSet &>(LF.PostIncLoops);
3533 LF.UserInst, LF.OperandValToReplace,
3552 PostIncLoopSet &Loops = const_cast<PostIncLoopSet &>(LF.PostIncLoops);
3554 LF.UserInst, LF.OperandValToReplace,
3590 int64_t Offset = (uint64_t)F.AM.BaseOffs + LF.Offset;
3629 ICmpInst *CI = cast<ICmpInst>(LF.UserInst);
3664 const LSRFixup &LF,
3671 if (PN->getIncomingValue(i) == LF.OperandValToReplace) {
3713 Value *FullV = Expand(LF, F, BB->getTerminator(), Rewriter, DeadInsts);
3716 Type *OpTy = LF.OperandValToReplace->getType();
3721 FullV, LF.OperandValToReplace->getType(),
3733 void LSRInstance::Rewrite(const LSRFixup &LF,
3740 if (PHINode *PN = dyn_cast<PHINode>(LF.UserInst)) {
3741 RewriteForPHI(PN, LF, F, Rewriter, DeadInsts, P);
3743 Value *FullV = Expand(LF, F, LF.UserInst, Rewriter, DeadInsts);
3746 Type *OpTy = LF.OperandValToReplace->getType();
3750 FullV, OpTy, "tmp", LF.UserInst);
3756 // its new value may happen to be equal to LF.OperandValToReplace, in
3759 if (Uses[LF.LUIdx].Kind == LSRUse::ICmpZero)
3760 LF.UserInst->setOperand(0, FullV);
3762 LF.UserInst->replaceUsesOfWith(LF.OperandValToReplace, FullV);
3765 DeadInsts.push_back(LF.OperandValToReplace);