Lines Matching defs:LF

2278                                                      const LSRFixup &LF,
2281 Value *Expand(const LSRUse &LU, const LSRFixup &LF, const Formula &F,
2284 void RewriteForPHI(PHINode *PN, const LSRUse &LU, const LSRFixup &LF,
2287 void Rewrite(const LSRUse &LU, const LSRFixup &LF, const Formula &F,
3621 LSRFixup &LF = LU.getNewFixup();
3622 LF.UserInst = UserInst;
3623 LF.OperandValToReplace = U.getOperandValToReplace();
3624 LF.PostIncLoops = TmpPostIncLoops;
3625 LF.Offset = Offset;
3626 LU.AllFixupsOutsideLoop &= LF.isUseFullyOutsideLoop(L);
3629 if (!VisitedLSRUse.count(LUIdx) && !LF.isUseFullyOutsideLoop(L)) {
3638 SE.getTypeSizeInBits(LF.OperandValToReplace->getType()))
3639 LU.WidestFixupType = LF.OperandValToReplace->getType();
3812 LSRFixup &LF = LU.getNewFixup();
3813 LF.UserInst = const_cast<Instruction *>(UserInst);
3814 LF.OperandValToReplace = U;
3815 LF.Offset = Offset;
3816 LU.AllFixupsOutsideLoop &= LF.isUseFullyOutsideLoop(L);
3819 SE.getTypeSizeInBits(LF.OperandValToReplace->getType()))
3820 LU.WidestFixupType = LF.OperandValToReplace->getType();
4435 for (auto &LF : LU.Fixups)
4436 Loops.push_back(LF.PostIncLoops);
5623 BasicBlock::iterator LowestIP, const LSRFixup &LF, const LSRUse &LU) const {
5628 if (Instruction *I = dyn_cast<Instruction>(LF.OperandValToReplace))
5632 dyn_cast<Instruction>(cast<ICmpInst>(LF.UserInst)->getOperand(1)))
5634 if (LF.PostIncLoops.count(L)) {
5635 if (LF.isUseFullyOutsideLoop(L))
5642 for (const Loop *PIL : LF.PostIncLoops) {
5684 Value *LSRInstance::Expand(const LSRUse &LU, const LSRFixup &LF,
5688 return LF.OperandValToReplace;
5692 IP = AdjustInsertPositionForExpand(IP, LF, LU);
5697 Rewriter.setPostInc(LF.PostIncLoops);
5700 Type *OpTy = LF.OperandValToReplace->getType();
5720 Reg = denormalizeForPostIncUse(Reg, LF.PostIncLoops, SE);
5730 PostIncLoopSet &Loops = const_cast<PostIncLoopSet &>(LF.PostIncLoops);
5788 assert(F.BaseOffset.isCompatibleImmediate(LF.Offset) &&
5791 Immediate Offset = F.BaseOffset.addUnsigned(LF.Offset);
5830 ICmpInst *CI = cast<ICmpInst>(LF.UserInst);
5869 PHINode *PN, const LSRUse &LU, const LSRFixup &LF, const Formula &F,
5880 if (PN->getIncomingValue(i) == LF.OperandValToReplace) {
5934 Expand(LU, LF, F, BB->getTerminator()->getIterator(), DeadInsts);
5937 Type *OpTy = LF.OperandValToReplace->getType();
5941 LF.OperandValToReplace->getType(), "tmp",
6000 void LSRInstance::Rewrite(const LSRUse &LU, const LSRFixup &LF,
6005 if (PHINode *PN = dyn_cast<PHINode>(LF.UserInst)) {
6006 RewriteForPHI(PN, LU, LF, F, DeadInsts);
6008 Value *FullV = Expand(LU, LF, F, LF.UserInst->getIterator(), DeadInsts);
6011 Type *OpTy = LF.OperandValToReplace->getType();
6015 FullV, OpTy, "tmp", LF.UserInst->getIterator());
6021 // its new value may happen to be equal to LF.OperandValToReplace, in
6025 LF.UserInst->setOperand(0, FullV);
6027 LF.UserInst->replaceUsesOfWith(LF.OperandValToReplace, FullV);
6030 if (auto *OperandIsInstr = dyn_cast<Instruction>(LF.OperandValToReplace))
6291 for (const LSRFixup &LF : LU.Fixups) {
6293 LF.print(OS);