| /llvm-project-15.0.7/llvm/lib/Target/AMDGPU/ |
| H A D | AMDGPULateCodeGenPrepare.cpp | 78 bool visitLoadInst(LoadInst &LI); 105 unsigned AS = LI.getPointerAddressSpace(); in canWidenScalarExtLoad() 111 if (!LI.isSimple()) in canWidenScalarExtLoad() 113 auto *Ty = LI.getType(); in canWidenScalarExtLoad() 125 return DA->isUniform(&LI); in canWidenScalarExtLoad() 134 if (LI.getAlign() >= 4) in visitLoadInst() 137 if (!canWidenScalarExtLoad(LI)) in visitLoadInst() 152 LI.setAlignment(Align(4)); in visitLoadInst() 156 IRBuilder<> IRB(&LI); in visitLoadInst() 172 NewLd->copyMetadata(LI); in visitLoadInst() [all …]
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/ |
| H A D | LiveIntervalCalc.cpp | 54 unsigned Reg = LI.reg(); in calculate() 65 if (!LI.hasSubRanges() && !LI.empty()) { in calculate() 67 LI.createSubRangeFrom(*Alloc, ClassMask, LI); in calculate() 70 LI.refineSubRanges( in calculate() 87 LI.removeEmptySubRanges(); in calculate() 93 if (LI.hasSubRanges()) { in calculate() 99 LI.clear(); in calculate() 100 constructMainRangeFromSubranges(LI); in calculate() 109 LiveRange &MainRange = LI; in constructMainRangeFromSubranges() 121 extendToUses(MainRange, LI.reg(), LaneBitmask::getAll(), &LI); in constructMainRangeFromSubranges() [all …]
|
| H A D | CalcSpillWeights.cpp | 84 Register Reg = LI.reg(); in isRematerializable() 86 for (LiveInterval::const_vni_iterator I = LI.vni_begin(), E = LI.vni_end(); in isRematerializable() 141 float Weight = weightCalcHelper(LI); in calculateSpillWeightAndHint() 145 LI.setWeight(Weight); in calculateSpillWeightAndHint() 162 if (LI.isSpillable()) { in weightCalcHelper() 163 Register Reg = LI.reg(); in weightCalcHelper() 170 LI.markNotSpillable(); in weightCalcHelper() 174 bool IsSpillable = LI.isSpillable(); in weightCalcHelper() 235 LI.markNotSpillable(); in weightCalcHelper() 279 MRI.clearSimpleHint(LI.reg()); in weightCalcHelper() [all …]
|
| H A D | RenameIndependentSubregs.cpp | 124 if (LI.valnos.size() < 2) in INITIALIZE_PASS_DEPENDENCY() 133 unsigned Reg = LI.reg(); in INITIALIZE_PASS_DEPENDENCY() 136 Intervals.push_back(&LI); in INITIALIZE_PASS_DEPENDENCY() 157 LiveInterval &LI) const { in findComponents() 178 unsigned Reg = LI.reg(); in findComponents() 307 unsigned Reg = LI.reg(); in computeMainRangesFixFlags() 309 LI.removeEmptySubRanges(); in computeMainRangesFixFlags() 367 LI.clear(); in computeMainRangesFixFlags() 373 LIS->shrinkToUses(&LI); in computeMainRangesFixFlags() 398 if (!LI.hasSubRanges()) in runOnMachineFunction() [all …]
|
| H A D | LiveRangeEdit.cpp | 41 LI.markNotSpillable(); in createEmptyIntervalFrom() 49 LI.createSubRange(Alloc, S.LaneMask); in createEmptyIntervalFrom() 51 return LI; in createEmptyIntervalFrom() 263 if (LI.Query(Idx).isKill()) in useIsKill() 346 ToShrink.insert(&LI); in eliminateDeadDef() 354 LIS.removeVRegDefAt(LI, Idx); in eliminateDeadDef() 355 if (LI.empty()) in eliminateDeadDef() 440 if (foldAsLoad(LI, Dead)) in eliminateDeadDefs() 442 unsigned VReg = LI->reg(); in eliminateDeadDefs() 445 if (!LIS.shrinkToUses(LI, &Dead)) in eliminateDeadDefs() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Utils/ |
| H A D | FixIrreducible.cpp | 141 if (LI.getLoopFor(BB) != Child) in INITIALIZE_PASS_DEPENDENCY() 143 LI.changeLoopFor(BB, NewLoop); in INITIALIZE_PASS_DEPENDENCY() 153 LI.destroy(Child); in INITIALIZE_PASS_DEPENDENCY() 205 auto NewLoop = LI.AllocateLoop(); in createNaturalLoopInternal() 209 LI.addTopLevelLoop(NewLoop); in createNaturalLoopInternal() 228 LI.changeLoopFor(BB, NewLoop); in createNaturalLoopInternal() 243 LI.verify(DT); in createNaturalLoopInternal() 324 Changed |= makeReducible(LI, DT, &F); in FixIrreducibleImpl() 328 append_range(WorkList, LI); in FixIrreducibleImpl() 346 return FixIrreducibleImpl(F, LI, DT); in runOnFunction() [all …]
|
| H A D | PromoteMemoryToRegister.cpp | 69 if (LI->isVolatile() || LI->getType() != AI->getAllocatedType()) in isAllocaPromotable() 306 LoadNotNull->insertAfter(LI); in addAssumeNonNull() 401 if (ReplVal == LI) in rewriteSingleStoreAlloca() 409 addAssumeNonNull(AC, LI); in rewriteSingleStoreAlloca() 412 LI->eraseFromParent(); in rewriteSingleStoreAlloca() 413 LBI.deleteValue(LI); in rewriteSingleStoreAlloca() 481 if (!LI) in promoteSingleBlockAlloca() 510 addAssumeNonNull(AC, LI); in promoteSingleBlockAlloca() 514 if (ReplVal == LI) in promoteSingleBlockAlloca() 518 LI->eraseFromParent(); in promoteSingleBlockAlloca() [all …]
|
| H A D | MatrixUtils.cpp | 26 LoopInfo &LI) { in CreateLoop() argument 60 L->addBasicBlockToLoop(Header, LI); in CreateLoop() 61 L->addBasicBlockToLoop(Body, LI); in CreateLoop() 62 L->addBasicBlockToLoop(Latch, LI); in CreateLoop() 72 LoopInfo &LI) { in CreateTiledLoops() argument 73 Loop *ColumnLoopInfo = LI.AllocateLoop(); in CreateTiledLoops() 74 Loop *RowLoopInfo = LI.AllocateLoop(); in CreateTiledLoops() 75 Loop *KLoopInfo = LI.AllocateLoop(); in CreateTiledLoops() 78 if (Loop *ParentL = LI.getLoopFor(Start)) in CreateTiledLoops() 81 LI.addTopLevelLoop(ColumnLoopInfo); in CreateTiledLoops() [all …]
|
| H A D | LCSSA.cpp | 100 Loop *L = LI.getLoopFor(InstBB); in formLCSSAForInstructions() 197 if (auto *OtherLoop = LI.getLoopFor(ExitBB)) in formLCSSAForInstructions() 368 if (LI->getLoopFor(BB) != &L) in formLCSSA() 412 Changed |= formLCSSA(L, DT, LI, SE); in formLCSSARecursively() 420 for (auto &L : *LI) in formLCSSAOnAllLoops() 421 Changed |= formLCSSARecursively(*L, DT, LI, SE); in formLCSSAOnAllLoops() 434 LoopInfo *LI; member 444 assert(all_of(*LI, in verifyAnalysis() 495 return formLCSSAOnAllLoops(LI, *DT, SE); in runOnFunction() 499 auto &LI = AM.getResult<LoopAnalysis>(F); in run() local [all …]
|
| H A D | LoopSimplify.cpp | 280 Loop *NewOuter = LI->AllocateLoop(); in separateNestedLoop() 286 LI->changeTopLevelLoop(L, NewOuter); in separateNestedLoop() 324 if ((*LI)[BB] == L) { in separateNestedLoop() 343 formLCSSA(*L, *DT, LI, SE); in separateNestedLoop() 466 L->addBasicBlockToLoop(BEBlock, *LI); in insertUniqueBackedgeBlock() 679 LI->removeBlock(ExitingBlock); in simplifyOneLoop() 723 assert(LI && "LI not available."); in simplifyLoop() 819 for (auto *L : *LI) in runOnFunction() 825 *LI, [&](Loop *L) { return L->isRecursivelyLCSSAForm(*DT, *LI); }); in runOnFunction() 849 for (auto *L : *LI) in run() [all …]
|
| /llvm-project-15.0.7/llvm/tools/llvm-diff/lib/ |
| H A D | DifferenceEngine.cpp | 218 ++LI; in diff() 225 for (LI = L->begin(), RI = R->begin(); LI != LE; ++LI, ++RI) in diff() 622 LI != LE && RI != RE; ++LI, ++RI) in diff() 675 for (BasicBlock::const_iterator LI = LStart; LI != LE; ++LI, ++Index) { in runBlockDiff() local 712 unify(&*LI, &*RI); in runBlockDiff() 714 ++LI; in runBlockDiff() 727 ++LI; ++RI; in runBlockDiff() 733 ++LI; in runBlockDiff() 746 while (LI != LE) { in runBlockDiff() 748 unify(&*LI, &*RI); in runBlockDiff() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineLoadStoreAlloca.cpp | 474 NewTy, NewPtr, LI.getAlign(), LI.isVolatile(), LI.getName() + Suffix); in combineLoadToNewType() 475 NewLoad->setAtomic(LI.getOrdering(), LI.getSyncScopeID()); in combineLoadToNewType() 584 if (LI.use_empty()) in combineLoadToOperationType() 938 Op, DL.getPrefTypeAlign(LI.getType()), DL, &LI, &AC, &DT); in visitLoadInst() 945 return &LI; in visitLoadInst() 960 LI, Builder.CreateBitOrPointerCast(AvailableVal, LI.getType(), in visitLoadInst() 979 return replaceInstUsesWith(LI, PoisonValue::get(LI.getType())); in visitLoadInst() 1008 V1->setAtomic(LI.getOrdering(), LI.getSyncScopeID()); in visitLoadInst() 1010 V2->setAtomic(LI.getOrdering(), LI.getSyncScopeID()); in visitLoadInst() 1306 if (!all_of(LI->users(), [LI, LoadAddr](User *U) { in removeBitcastsFromLoadStoreOnMinMax() [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/CodeGen/ |
| H A D | MachineLoopInfo.h | 92 LoopInfoBase<MachineBasicBlock, MachineLoop> LI; variable 121 inline iterator end() const { return LI.end(); } in end() 122 bool empty() const { return LI.empty(); } in empty() 127 return LI.getLoopFor(BB); in getLoopFor() 132 return LI.getLoopFor(BB); 137 return LI.getLoopDepth(BB); in getLoopDepth() 142 return LI.isLoopHeader(BB); in isLoopHeader() 161 LI.changeLoopFor(BB, L); in changeLoopFor() 167 LI.changeTopLevelLoop(OldLoop, NewLoop); in changeTopLevelLoop() 172 LI.addTopLevelLoop(New); in addTopLevelLoop() [all …]
|
| /llvm-project-15.0.7/llvm/unittests/Transforms/Utils/ |
| H A D | LoopUtilsTest.cpp | 31 ScalarEvolution &SE, LoopInfo &LI)> in run() 38 LoopInfo LI(DT); in run() local 39 ScalarEvolution SE(*F, TLI, AC, DT, LI); in run() 40 Test(*F, DT, SE, LI); in run() 73 [&](Function &F, DominatorTree &DT, ScalarEvolution &SE, LoopInfo &LI) { in TEST() argument 74 assert(LI.begin() != LI.end() && "Expecting loops in function F"); in TEST() 75 Loop *L = *LI.begin(); in TEST() 78 deleteDeadLoop(L, &DT, &SE, &LI); in TEST() 82 LI.verify(DT); in TEST() 83 assert(LI.begin() == LI.end() && in TEST()
|
| /llvm-project-15.0.7/llvm/lib/Target/NVPTX/ |
| H A D | NVPTXLowerAggrCopies.cpp | 71 if (LoadInst *LI = dyn_cast<LoadInst>(&I)) { in runOnFunction() local 72 if (!LI->hasOneUse()) in runOnFunction() 75 if (DL.getTypeStoreSize(LI->getType()) < MaxAggrCopySize) in runOnFunction() 79 if (SI->getOperand(0) != LI) in runOnFunction() 81 AggrLoads.push_back(LI); in runOnFunction() 104 for (LoadInst *LI : AggrLoads) { in runOnFunction() 105 auto *SI = cast<StoreInst>(*LI->user_begin()); in runOnFunction() 106 Value *SrcAddr = LI->getOperand(0); in runOnFunction() 108 unsigned NumLoads = DL.getTypeStoreSize(LI->getType()); in runOnFunction() 115 /* SrcAlign */ LI->getAlign(), in runOnFunction() [all …]
|
| /llvm-project-15.0.7/llvm/unittests/CodeGen/GlobalISel/ |
| H A D | LegalizerInfoTest.cpp | 252 LegalizerInfo LI; in TEST() local 268 LegalizerInfo LI; in TEST() local 281 LegalizerInfo LI; in TEST() local 294 LegalizerInfo LI; in TEST() local 311 LegalizerInfo LI; in TEST() local 325 LegalizerInfo LI; in TEST() local 339 LegalizerInfo LI; in TEST() local 357 LegalizerInfo LI; in TEST() local 374 LegalizerInfo LI; in TEST() local 392 LegalizerInfo LI; in TEST() local [all …]
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Scalar/ |
| H A D | LoopSimplifyCFG.cpp | 95 Loop *BBL = LI.getLoopFor(BB); in getInnermostLoopFor() 114 LoopInfo &LI; member in __anon5fa539ba0111::ConstantTerminatorFoldingImpl 206 DFS.perform(&LI); in analyze() 403 LI.addTopLevelLoop(&L); in handleDeadExits() 447 if (LI.isLoopHeader(BB)) { in deleteDeadLoopBlocks() 449 Loop *DL = LI.getLoopFor(BB); in deleteDeadLoopBlocks() 455 LI.addTopLevelLoop(DL); in deleteDeadLoopBlocks() 457 LI.erase(DL); in deleteDeadLoopBlocks() 465 LI.removeBlock(BB); in deleteDeadLoopBlocks() 531 : L(L), LI(LI), DT(DT), SE(SE), MSSAU(MSSAU), DFS(&L), in ConstantTerminatorFoldingImpl() [all …]
|
| /llvm-project-15.0.7/llvm/test/CodeGen/PowerPC/ |
| H A D | mi-peepholes-trap-opt.mir | 54 %0:gprc = LI 3 55 %1:gprc = LI 0 70 %0:gprc = LI 3 71 %1:gprc = LI 0 86 %0:gprc = LI 3 87 %1:gprc = LI 3 101 %0:gprc = LI 3 102 %1:gprc = LI 3 117 %0:gprc = LI 3 118 %1:gprc = LI 5 [all …]
|
| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | SyncDependenceAnalysis.cpp | 165 auto *NestedLoop = LI.getLoopFor(NextBB); in computeStackPO() 186 computeLoopPO(LI, *NestedLoop, CallBack, Finalized); in computeStackPO() 218 computeStackPO(Stack, LI, nullptr, CallBack, Finalized); in computeTopLevelPO() 241 computeStackPO(Stack, LI, &Loop, CallBack, Finalized); in computeLoopPO() 253 : DT(DT), PDT(PDT), LI(LI) { in SyncDependenceAnalysis() 254 computeTopLevelPO(*DT.getRoot()->getParent(), LI, in SyncDependenceAnalysis() 265 const LoopInfo &LI; member 281 : LoopPOT(LoopPOT), DT(DT), PDT(PDT), LI(LI), DivTermBlock(DivTermBlock), in DivergencePropagator() 352 const auto *DivBlockLoop = LI.getLoopFor(&DivTermBlock); in computeJoinPoints() 373 const auto *BlockLoop = LI.getLoopFor(SuccBlock); in computeJoinPoints() [all …]
|
| H A D | CFG.cpp | 129 const Loop *L = LI->getLoopFor(BB); in getOutermostLoop() 136 const LoopInfo *LI) { in isPotentiallyReachableFromMany() argument 151 if (LI && ExclusionSet) { in isPotentiallyReachableFromMany() 153 if (const Loop *L = getOutermostLoop(LI, BB)) in isPotentiallyReachableFromMany() 158 const Loop *StopLoop = LI ? getOutermostLoop(LI, StopBB) : nullptr; in isPotentiallyReachableFromMany() 174 if (LI) { in isPotentiallyReachableFromMany() 175 Outer = getOutermostLoop(LI, BB); in isPotentiallyReachableFromMany() 210 const LoopInfo *LI) { in isPotentiallyReachable() argument 235 const LoopInfo *LI) { in isPotentiallyReachable() argument 249 if (LI && LI->getLoopFor(BB) != nullptr) in isPotentiallyReachable() [all …]
|
| H A D | MemDerefPrinter.cpp | 55 if (LoadInst *LI = dyn_cast<LoadInst>(&I)) { in runOnFunction() local 56 Value *PO = LI->getPointerOperand(); in runOnFunction() 57 if (isDereferenceablePointer(PO, LI->getType(), DL)) in runOnFunction() 59 if (isDereferenceableAndAlignedPointer(PO, LI->getType(), LI->getAlign(), in runOnFunction() 90 if (LoadInst *LI = dyn_cast<LoadInst>(&I)) { in run() local 91 Value *PO = LI->getPointerOperand(); in run() 92 if (isDereferenceablePointer(PO, LI->getType(), DL)) in run() 94 if (isDereferenceableAndAlignedPointer(PO, LI->getType(), LI->getAlign(), in run()
|
| /llvm-project-15.0.7/llvm/unittests/Analysis/ |
| H A D | LoopInfoTest.cpp | 29 LoopInfo LI(DT); in runWithLoopInfo() local 30 Test(*F, LI); in runWithLoopInfo() 44 LoopInfo LI(DT); in runWithLoopInfoPlus() local 46 Test(*F, LI, SE); in runWithLoopInfoPlus() 85 Loop *L = LI.getLoopFor(Header); in TEST() 135 Loop *L = LI.getLoopFor(Header); in TEST() 188 LoopInfo LI; in TEST() local 189 LI.analyze(DT); in TEST() 194 Loop &L_0 = *LI.getLoopFor(&*I++); in TEST() 202 Loop &L_1 = *LI.getLoopFor(&*I++); in TEST() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Transforms/IPO/ |
| H A D | LoopExtractor.cpp | 81 bool extractLoop(Loop *L, LoopInfo &LI, DominatorTree &DT); 170 LoopInfo &LI = LookupLoopInfo(F); in runOnFunction() local 173 if (LI.empty()) in runOnFunction() 180 if (std::next(LI.begin()) != LI.end()) in runOnFunction() 181 return Changed | extractLoops(LI.begin(), LI.end(), LI, DT); in runOnFunction() 184 Loop *TLL = *LI.begin(); in runOnFunction() 210 return Changed | extractLoop(TLL, LI, DT); in runOnFunction() 217 return Changed | extractLoops(TLL->begin(), TLL->end(), LI, DT); in runOnFunction() 221 LoopInfo &LI, DominatorTree &DT) { in extractLoops() argument 232 Changed |= extractLoop(L, LI, DT); in extractLoops() [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/Analysis/ |
| H A D | LoopAnalysisManager.h | 55 LoopInfo &LI; member 88 explicit Result(LoopAnalysisManager &InnerAM, LoopInfo &LI) in Result() argument 89 : InnerAM(&InnerAM), LI(&LI) {} in Result() 91 : InnerAM(std::move(Arg.InnerAM)), LI(Arg.LI), MSSAUsed(Arg.MSSAUsed) { in Result() 99 LI = RHS.LI; 137 LoopInfo *LI; variable
|
| /llvm-project-15.0.7/llvm/lib/TableGen/ |
| H A D | StringMatcher.cpp | 112 for (const auto &LI : MatchesByLetter) { in EmitStringMatcherForChar() local 114 OS << Indent << "case '" << LI.first << "':\t // " << LI.second.size() in EmitStringMatcherForChar() 116 if (LI.second.size() != 1) in EmitStringMatcherForChar() 119 if (EmitStringMatcherForChar(LI.second, CharNo + 1, IndentCount + 1, in EmitStringMatcherForChar() 145 for (const auto &LI : MatchesByLength) { in Emit() local 147 << "case " << LI.first << ":\t // " << LI.second.size() << " string" in Emit() 148 << (LI.second.size() == 1 ? "" : "s") << " to match.\n"; in Emit() 149 if (EmitStringMatcherForChar(LI.second, 0, Indent, IgnoreDuplicates)) in Emit()
|