Home | History | Annotate | Download | only in Scalar

Lines Matching refs:LF

1617                                   const LSRFixup &LF,
1621 Value *Expand(const LSRFixup &LF,
1626 void RewriteForPHI(PHINode *PN, const LSRFixup &LF,
1631 void Rewrite(const LSRFixup &LF,
2816 LSRFixup &LF = getNewFixup();
2817 LF.UserInst = UserInst;
2818 LF.OperandValToReplace = UI->getOperandValToReplace();
2819 LF.PostIncLoops = UI->getPostIncLoops();
2823 if (isAddressUse(LF.UserInst, LF.OperandValToReplace)) {
2825 AccessTy = getAccessType(LF.UserInst);
2836 if (ICmpInst *CI = dyn_cast<ICmpInst>(LF.UserInst))
2841 if (NV == LF.OperandValToReplace) {
2854 LF.PostIncLoops, SE, DT);
2869 LF.LUIdx = P.first;
2870 LF.Offset = P.second;
2871 LSRUse &LU = Uses[LF.LUIdx];
2872 LU.AllFixupsOutsideLoop &= LF.isUseFullyOutsideLoop(L);
2875 SE.getTypeSizeInBits(LF.OperandValToReplace->getType()))
2876 LU.WidestFixupType = LF.OperandValToReplace->getType();
2880 InsertInitialFormula(S, LU, LF.LUIdx);
2881 CountRegisters(LU.Formulae.back(), LF.LUIdx);
2998 LSRFixup &LF = getNewFixup();
2999 LF.UserInst = const_cast<Instruction *>(UserInst);
3000 LF.OperandValToReplace = UI.getUse();
3002 LF.LUIdx = P.first;
3003 LF.Offset = P.second;
3004 LSRUse &LU = Uses[LF.LUIdx];
3005 LU.AllFixupsOutsideLoop &= LF.isUseFullyOutsideLoop(L);
3008 SE.getTypeSizeInBits(LF.OperandValToReplace->getType()))
3009 LU.WidestFixupType = LF.OperandValToReplace->getType();
3010 InsertSupplementalFormula(U, LU, LF.LUIdx);
4198 const LSRFixup &LF,
4205 if (Instruction *I = dyn_cast<Instruction>(LF.OperandValToReplace))
4209 dyn_cast<Instruction>(cast<ICmpInst>(LF.UserInst)->getOperand(1)))
4211 if (LF.PostIncLoops.count(L)) {
4212 if (LF.isUseFullyOutsideLoop(L))
4219 for (PostIncLoopSet::const_iterator I = LF.PostIncLoops.begin(),
4220 E = LF.PostIncLoops.end(); I != E; ++I) {
4262 Value *LSRInstance::Expand(const LSRFixup &LF,
4267 const LSRUse &LU = Uses[LF.LUIdx];
4271 IP = AdjustInsertPositionForExpand(IP, LF, LU, Rewriter);
4275 Rewriter.setPostInc(LF.PostIncLoops);
4278 Type *OpTy = LF.OperandValToReplace->getType();
4300 PostIncLoopSet &Loops = const_cast<PostIncLoopSet &>(LF.PostIncLoops);
4302 LF.UserInst, LF.OperandValToReplace,
4314 PostIncLoopSet &Loops = const_cast<PostIncLoopSet &>(LF.PostIncLoops);
4316 LF.UserInst, LF.OperandValToReplace,
4363 int64_t Offset = (uint64_t)F.AM.BaseOffs + LF.Offset;
4402 ICmpInst *CI = cast<ICmpInst>(LF.UserInst);
4437 const LSRFixup &LF,
4444 if (PN->getIncomingValue(i) == LF.OperandValToReplace) {
4486 Value *FullV = Expand(LF, F, BB->getTerminator(), Rewriter, DeadInsts);
4489 Type *OpTy = LF.OperandValToReplace->getType();
4494 FullV, LF.OperandValToReplace->getType(),
4506 void LSRInstance::Rewrite(const LSRFixup &LF,
4513 if (PHINode *PN = dyn_cast<PHINode>(LF.UserInst)) {
4514 RewriteForPHI(PN, LF, F, Rewriter, DeadInsts, P);
4516 Value *FullV = Expand(LF, F, LF.UserInst, Rewriter, DeadInsts);
4519 Type *OpTy = LF.OperandValToReplace->getType();
4523 FullV, OpTy, "tmp", LF.UserInst);
4529 // its new value may happen to be equal to LF.OperandValToReplace, in
4532 if (Uses[LF.LUIdx].Kind == LSRUse::ICmpZero)
4533 LF.UserInst->setOperand(0, FullV);
4535 LF.UserInst->replaceUsesOfWith(LF.OperandValToReplace, FullV);
4538 DeadInsts.push_back(LF.OperandValToReplace);