/external/llvm/include/llvm/CodeGen/ |
H A D | MachineLoopInfo.h | 69 LoopInfoBase<MachineBasicBlock, MachineLoop> LI; member in class:llvm::MachineLoopInfo 82 LoopInfoBase<MachineBasicBlock, MachineLoop>& getBase() { return LI; } 86 inline iterator begin() const { return LI.begin(); } 87 inline iterator end() const { return LI.end(); } 88 bool empty() const { return LI.empty(); } 93 return LI.getLoopFor(BB); 98 return LI.getLoopFor(BB); 103 return LI.getLoopDepth(BB); 108 return LI.isLoopHeader(BB); 114 void releaseMemory() override { LI [all...] |
/external/swiftshader/third_party/LLVM/include/llvm/CodeGen/ |
H A D | MachineLoopInfo.h | 61 LoopInfoBase<MachineBasicBlock, MachineLoop> LI; member in class:llvm::MachineLoopInfo 74 LoopInfoBase<MachineBasicBlock, MachineLoop>& getBase() { return LI; } 80 inline iterator begin() const { return LI.begin(); } 81 inline iterator end() const { return LI.end(); } 82 bool empty() const { return LI.empty(); } 88 return LI.getLoopFor(BB); 94 return LI.getLoopFor(BB); 100 return LI.getLoopDepth(BB); 105 return LI.isLoopHeader(BB); 112 virtual void releaseMemory() { LI [all...] |
/external/llvm/include/llvm/Analysis/ |
H A D | LazyBlockFrequencyInfo.h | 60 : Calculated(false), F(nullptr), BPI(nullptr), LI(nullptr) {} 64 const LoopInfo *LI) { 67 this->LI = LI; 73 assert(F && BPI && LI && "call setAnalysis"); 74 BFI.calculate(*F, *BPI, *LI); 95 const LoopInfo *LI; member in class:llvm::LazyBlockFrequencyInfoPass::LazyBlockFrequencyInfo 63 setAnalysis(const Function *F, const BranchProbabilityInfo *BPI, const LoopInfo *LI) argument
|
H A D | CFG.h | 61 /// Using DT or LI allows us to answer more quickly. LI reduces the cost of 65 /// on branchy code but not loops, and LI is most useful on code with loops but 69 const LoopInfo *LI = nullptr); 79 const LoopInfo *LI = nullptr); 91 const LoopInfo *LI = nullptr);
|
/external/swiftshader/third_party/LLVM/include/llvm/Transforms/Utils/ |
H A D | UnrollLoop.h | 26 unsigned TripMultiple, LoopInfo* LI, LPPassManager* LPM);
|
/external/llvm/lib/Transforms/Scalar/ |
H A D | LoopSimplifyCFG.cpp | 39 static bool simplifyLoopCFG(Loop &L, DominatorTree &DT, LoopInfo &LI) { argument 53 if (!Pred || !Pred->getSingleSuccessor() || LI.getLoopFor(Pred) != &L) 59 LI.removeBlock(Pred); 72 auto *LI = FAM.getCachedResult<LoopAnalysis>(*F); local 74 assert((LI && DT) && "Analyses for LoopSimplifyCFG not available"); 76 if (!simplifyLoopCFG(L, *DT, *LI)) 94 LoopInfo &LI = getAnalysis<LoopInfoWrapperPass>().getLoopInfo(); variable 95 return simplifyLoopCFG(*L, DT, LI);
|
H A D | LoopDeletion.cpp | 83 for (Loop::block_iterator LI = L->block_begin(), LE = L->block_end(); 84 LI != LE; ++LI) { 85 for (Instruction &I : **LI) { 176 for (Loop::block_iterator LI = L->block_begin(), LE = L->block_end(); 177 LI != LE; ++LI) { 180 ChildNodes.insert(ChildNodes.begin(), DT[*LI]->begin(), DT[*LI]->end()); 186 DT.eraseNode(*LI); 224 auto &LI = *FAM.getCachedResult<LoopAnalysis>(*F); local [all...] |
H A D | Sink.cpp | 96 DominatorTree &DT, LoopInfo &LI) { 126 Loop *succ = LI.getLoopFor(SuccToSinkTo); 127 Loop *cur = LI.getLoopFor(Inst->getParent()); 141 DominatorTree &DT, LoopInfo &LI, AAResults &AA) { 173 IsAcceptableTarget(Inst, Candidate, DT, LI)) 181 if (IsAcceptableTarget(Inst, *I, DT, LI)) 200 static bool ProcessBlock(BasicBlock &BB, DominatorTree &DT, LoopInfo &LI, argument 229 if (SinkInstruction(Inst, Stores, DT, LI, AA)) { 241 LoopInfo &LI, AAResults &AA) { 249 MadeChange |= ProcessBlock(I, DT, LI, A 95 IsAcceptableTarget(Instruction *Inst, BasicBlock *SuccToSinkTo, DominatorTree &DT, LoopInfo &LI) argument 139 SinkInstruction(Instruction *Inst, SmallPtrSetImpl<Instruction *> &Stores, DominatorTree &DT, LoopInfo &LI, AAResults &AA) argument 240 iterativelySinkInstructions(Function &F, DominatorTree &DT, LoopInfo &LI, AAResults &AA) argument 259 auto &LI = AM.getResult<LoopAnalysis>(F); local 281 auto &LI = getAnalysis<LoopInfoWrapperPass>().getLoopInfo(); variable [all...] |
/external/swiftshader/third_party/LLVM/lib/CodeGen/ |
H A D | LiveRangeCalc.h | 72 // LI - The live range that is live-in to this block. The algorithms can 74 LiveInterval *LI; member in struct:llvm::LiveRangeCalc::LiveInBlock 77 // Cleared when the final value has been determined and LI has been updated. 82 // determined, the range from the block start to Kill will be added to LI. 89 : LI(li), DomNode(node), Kill(kill), Value(0) {} 98 /// findReachingDefs - Assuming that LI is live-in to KillMBB and killed at 99 /// Kill, search for values that can reach KillMBB. All blocks that need LI 103 VNInfo *findReachingDefs(LiveInterval *LI, 138 /// and uses. LI must be empty with no values. 139 void calculate(LiveInterval *LI, 206 addLiveInBlock(LiveInterval *LI, MachineDomTreeNode *DomNode, SlotIndex Kill = SlotIndex()) argument [all...] |
H A D | LiveRangeEdit.cpp | 39 LiveInterval &LI = LIS.getOrCreateInterval(VReg); local 40 newRegs_.push_back(&LI); 41 return LI; 162 bool LiveRangeEdit::foldAsLoad(LiveInterval *LI, argument 170 for (MachineRegisterInfo::reg_nodbg_iterator I = MRI.reg_nodbg_begin(LI->reg), 196 if (UseMI->readsWritesVirtualRegister(LI->reg, &Ops).second) 205 DefMI->addRegisterDead(LI->reg, 0); 249 LiveInterval &LI = LIS.getInterval(Reg); local 257 LI.killedAt(Idx))) 258 ToShrink.insert(&LI); 285 LiveInterval *LI = ToShrink.back(); local 302 DEBUG(dbgs() << NumComp << " components: " << *LI << '\\n'); local 324 LiveInterval &LI = **I; local [all...] |
/external/llvm/lib/TableGen/ |
H A D | StringMatcher.cpp | 106 for (std::map<char, std::vector<const StringPair*> >::iterator LI = 107 MatchesByLetter.begin(), E = MatchesByLetter.end(); LI != E; ++LI) { 109 OS << Indent << "case '" << LI->first << "':\t // " 110 << LI->second.size() << " string"; 111 if (LI->second.size() != 1) OS << 's'; 113 if (EmitStringMatcherForChar(LI->second, CharNo+1, IndentCount+1)) 139 for (std::map<unsigned, std::vector<const StringPair*> >::iterator LI = 140 MatchesByLength.begin(), E = MatchesByLength.end(); LI != E; ++LI) { [all...] |
/external/swiftshader/third_party/LLVM/utils/TableGen/ |
H A D | StringMatcher.cpp | 106 for (std::map<char, std::vector<const StringPair*> >::iterator LI = 107 MatchesByLetter.begin(), E = MatchesByLetter.end(); LI != E; ++LI) { 109 OS << Indent << "case '" << LI->first << "':\t // " 110 << LI->second.size() << " string"; 111 if (LI->second.size() != 1) OS << 's'; 113 if (EmitStringMatcherForChar(LI->second, CharNo+1, IndentCount+1)) 139 for (std::map<unsigned, std::vector<const StringPair*> >::iterator LI = 140 MatchesByLength.begin(), E = MatchesByLength.end(); LI != E; ++LI) { [all...] |
/external/llvm/lib/Target/NVPTX/ |
H A D | NVPTXLowerAlloca.cpp | 90 auto LI = dyn_cast<LoadInst>(AllocaUse.getUser()); local 91 if (LI && LI->getPointerOperand() == allocaInst && !LI->isVolatile()) { 92 LI->setOperand(LI->getPointerOperandIndex(), NewASCToGeneric);
|
/external/swiftshader/third_party/LLVM/tools/llvm-diff/ |
H A D | DifferenceEngine.cpp | 197 BasicBlock::iterator LI = L->begin(), LE = L->end(); local 203 assert(LI != LE && RI != R->end()); 204 Instruction *LeftI = &*LI, *RightI = &*RI; 217 ++LI, ++RI; 218 } while (LI != LE); // This is sufficient: we can't get equality of 223 for (LI = L->begin(), RI = R->begin(); LI != LE; ++LI, ++RI) 224 unify(&*LI, &*RI); 228 void runBlockDiff(BasicBlock::iterator LI, BasicBloc 281 InvokeInst *LI = cast<InvokeInst>(L); local 293 BranchInst *LI = cast<BranchInst>(L); local 311 SwitchInst *LI = cast<SwitchInst>(L); local 545 BasicBlock::iterator LI = LStart, RI = RStart; local [all...] |
/external/llvm/tools/llvm-diff/ |
H A D | DifferenceEngine.cpp | 194 BasicBlock::iterator LI = L->begin(), LE = L->end(); local 198 assert(LI != LE && RI != R->end()); 199 Instruction *LeftI = &*LI, *RightI = &*RI; 212 ++LI; 214 } while (LI != LE); // This is sufficient: we can't get equality of 219 for (LI = L->begin(), RI = R->begin(); LI != LE; ++LI, ++RI) 220 unify(&*LI, &*RI); 224 void runBlockDiff(BasicBlock::iterator LI, BasicBloc 277 InvokeInst *LI = cast<InvokeInst>(L); local 289 BranchInst *LI = cast<BranchInst>(L); local 307 SwitchInst *LI = cast<SwitchInst>(L); local 545 BasicBlock::iterator LI = LStart, RI = RStart; local [all...] |
/external/llvm/lib/Transforms/Utils/ |
H A D | LCSSA.cpp | 65 PredIteratorCache &PredCache, LoopInfo *LI) { 148 if (auto *OtherLoop = LI->getLoopFor(ExitBB)) 184 Loop *OtherLoop = LI->getLoopFor(PHIBB); 193 processInstruction(*OtherLoop, *I, DT, EBs, PredCache, LI); 216 bool llvm::formLCSSA(Loop &L, DominatorTree &DT, LoopInfo *LI, 246 Changed |= processInstruction(L, I, DT, ExitBlocks, PredCache, LI); 262 bool llvm::formLCSSARecursively(Loop &L, DominatorTree &DT, LoopInfo *LI, 268 Changed |= formLCSSARecursively(*SubLoop, DT, LI, SE); 270 Changed |= formLCSSA(L, DT, LI, SE); 275 static bool formLCSSAOnAllLoops(LoopInfo *LI, DominatorTre 63 processInstruction(Loop &L, Instruction &Inst, DominatorTree &DT, const SmallVectorImpl<BasicBlock *> &ExitBlocks, PredIteratorCache &PredCache, LoopInfo *LI) argument [all...] |
/external/llvm/lib/Transforms/InstCombine/ |
H A D | InstCombineLoadStoreAlloca.cpp | 69 if (LoadInst *LI = dyn_cast<LoadInst>(I)) { 71 if (!LI->isSimple()) return false; 320 static LoadInst *combineLoadToNewType(InstCombiner &IC, LoadInst &LI, Type *NewTy, argument 322 Value *Ptr = LI.getPointerOperand(); 323 unsigned AS = LI.getPointerAddressSpace(); 325 LI.getAllMetadata(MD); 329 LI.getAlignment(), LI.isVolatile(), LI.getName() + Suffix); 330 NewLoad->setAtomic(LI 460 combineLoadToOperationType(InstCombiner &IC, LoadInst &LI) argument 518 unpackLoadToAggregate(InstCombiner &IC, LoadInst &LI) argument 789 visitLoadInst(LoadInst &LI) argument [all...] |
/external/llvm/include/llvm/Transforms/Utils/ |
H A D | LoopSimplify.h | 60 bool simplifyLoop(Loop *L, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE,
|
H A D | BasicBlockUtils.h | 53 LoopInfo *LI = nullptr, 78 LoopInfo *LI; member in struct:llvm::CriticalEdgeSplittingOptions 84 LoopInfo *LI = nullptr) 85 : DT(DT), LI(LI), MergeIdenticalEdges(false), 173 DominatorTree *DT = nullptr, LoopInfo *LI = nullptr); 180 DominatorTree *DT = nullptr, LoopInfo *LI = nullptr); 200 LoopInfo *LI = nullptr, 220 LoopInfo *LI = nullptr, 249 /// Updates DT and LI i [all...] |
/external/llvm/lib/Analysis/ |
H A D | CFG.cpp | 113 static const Loop *getOutermostLoop(const LoopInfo *LI, const BasicBlock *BB) { argument 114 const Loop *L = LI->getLoopFor(BB); 123 static bool loopContainsBoth(const LoopInfo *LI, argument 125 const Loop *L1 = getOutermostLoop(LI, BB1); 126 const Loop *L2 = getOutermostLoop(LI, BB2); 132 const DominatorTree *DT, const LoopInfo *LI) { 150 if (LI && loopContainsBoth(LI, BB, StopBB)) 159 if (const Loop *Outer = LI ? getOutermostLoop(LI, B 130 isPotentiallyReachableFromMany( SmallVectorImpl<BasicBlock *> &Worklist, BasicBlock *StopBB, const DominatorTree *DT, const LoopInfo *LI) argument 174 isPotentiallyReachable(const BasicBlock *A, const BasicBlock *B, const DominatorTree *DT, const LoopInfo *LI) argument 186 isPotentiallyReachable(const Instruction *A, const Instruction *B, const DominatorTree *DT, const LoopInfo *LI) argument [all...] |
/external/swiftshader/third_party/LLVM/lib/Transforms/Scalar/ |
H A D | LoopDeletion.cpp | 112 for (Loop::block_iterator LI = L->block_begin(), LE = L->block_end(); 113 LI != LE; ++LI) { 114 for (BasicBlock::iterator BI = (*LI)->begin(), BE = (*LI)->end(); 205 for (Loop::block_iterator LI = L->block_begin(), LE = L->block_end(); 206 LI != LE; ++LI) { 209 ChildNodes.insert(ChildNodes.begin(), DT[*LI]->begin(), DT[*LI] [all...] |
/external/llvm/lib/Target/WebAssembly/ |
H A D | WebAssemblyRegColoring.cpp | 106 LiveInterval *LI = &Liveness->getInterval(VReg); local 107 assert(LI->weight == 0.0f); 108 LI->weight = computeWeight(MRI, MBFI, VReg); 109 DEBUG(LI->dump()); 110 SortedIntervals.push_back(LI); 136 LiveInterval *LI = SortedIntervals[i]; local 137 unsigned Old = LI->reg; 148 if (!OtherLI->empty() && OtherLI->overlaps(*LI)) 159 Assignments[Color].push_back(LI); 161 << TargetRegisterInfo::virtReg2Index(LI [all...] |
/external/swiftshader/third_party/LLVM/lib/Transforms/InstCombine/ |
H A D | InstCombineLoadStoreAlloca.cpp | 89 static Instruction *InstCombineLoadCast(InstCombiner &IC, LoadInst &LI, argument 91 User *CI = cast<User>(LI.getOperand(0)); 113 Idxs[0] = Constant::getNullValue(Type::getInt32Ty(LI.getContext())); 125 (SrcPTy->isPointerTy() == LI.getType()->isPointerTy()) && 133 IC.Builder->CreateLoad(CastOp, LI.isVolatile(), CI->getName()); 134 NewLoad->setAlignment(LI.getAlignment()); 135 NewLoad->setAtomic(LI.getOrdering(), LI.getSynchScope()); 137 return new BitCastInst(NewLoad, LI.getType()); 144 Instruction *InstCombiner::visitLoadInst(LoadInst &LI) { argument [all...] |
/external/llvm/lib/CodeGen/ |
H A D | LiveRangeEdit.cpp | 39 LiveInterval &LI = LIS.createEmptyInterval(VReg); local 40 return LI; 164 bool LiveRangeEdit::foldAsLoad(LiveInterval *LI, argument 169 for (MachineOperand &MO : MRI.reg_nodbg_operands(LI->reg)) { 205 if (UseMI->readsWritesVirtualRegister(LI->reg, &Ops).second) 214 DefMI->addRegisterDead(LI->reg, nullptr); 220 bool LiveRangeEdit::useIsKill(const LiveInterval &LI, argument 224 if (LI.Query(Idx).isKill()) 229 for (const LiveInterval::SubRange &S : LI.subranges()) { 293 LiveInterval &LI local 379 LiveInterval *LI = ToShrink.back(); local 440 LiveInterval &LI = LIS.getInterval(get(I)); local [all...] |
H A D | RenameIndependentSubregs.cpp | 78 bool renameComponents(LiveInterval &LI) const; 85 LiveInterval &LI) const; 122 bool RenameIndependentSubregs::renameComponents(LiveInterval &LI) const { 124 if (LI.valnos.size() < 2) 129 if (!findComponents(Classes, SubRangeInfos, LI)) 133 unsigned Reg = LI.reg; 136 Intervals.push_back(&LI); 157 LiveInterval &LI) const { 161 for (LiveInterval::SubRange &SR : LI.subranges()) { 178 unsigned Reg = LI 279 subRangeLiveAt(const LiveInterval &LI, SlotIndex Pos) argument 294 LiveInterval &LI = *Intervals[I]; local 380 LiveInterval &LI = LIS->getInterval(Reg); local [all...] |