Searched refs:LI (Results 1 - 25 of 409) sorted by relevance

1234567891011>>

/external/llvm/include/llvm/CodeGen/
H A DMachineLoopInfo.h69 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 DMachineLoopInfo.h61 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 DLazyBlockFrequencyInfo.h60 : 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 DCFG.h61 /// 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 DUnrollLoop.h26 unsigned TripMultiple, LoopInfo* LI, LPPassManager* LPM);
/external/llvm/lib/Transforms/Scalar/
H A DLoopSimplifyCFG.cpp39 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 DLoopDeletion.cpp83 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 DSink.cpp96 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 DLiveRangeCalc.h72 // 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 DLiveRangeEdit.cpp39 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 DStringMatcher.cpp106 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 DStringMatcher.cpp106 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 DNVPTXLowerAlloca.cpp90 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 DDifferenceEngine.cpp197 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 DDifferenceEngine.cpp194 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 DLCSSA.cpp65 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 DInstCombineLoadStoreAlloca.cpp69 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 DLoopSimplify.h60 bool simplifyLoop(Loop *L, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE,
H A DBasicBlockUtils.h53 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 DCFG.cpp113 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 DLoopDeletion.cpp112 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 DWebAssemblyRegColoring.cpp106 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 DInstCombineLoadStoreAlloca.cpp89 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 DLiveRangeEdit.cpp39 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 DRenameIndependentSubregs.cpp78 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...]

Completed in 560 milliseconds

1234567891011>>