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

1234567

/freebsd-9.3-release/contrib/llvm/include/llvm/CodeGen/
H A DMachineLoopInfo.h73 LoopInfoBase<MachineBasicBlock, MachineLoop> LI; member in class:llvm::MachineLoopInfo
86 LoopInfoBase<MachineBasicBlock, MachineLoop>& getBase() { return LI; }
92 inline iterator begin() const { return LI.begin(); }
93 inline iterator end() const { return LI.end(); }
94 bool empty() const { return LI.empty(); }
100 return LI.getLoopFor(BB);
106 return LI.getLoopFor(BB);
112 return LI.getLoopDepth(BB);
117 return LI.isLoopHeader(BB);
124 virtual void releaseMemory() { LI
[all...]
H A DLiveIntervalAnalysis.h129 LiveInterval &LI = createEmptyInterval(Reg); local
130 computeVirtRegInterval(LI);
131 return LI;
155 /// extendToIndices - Extend the live range of LI to reach all points in
157 /// existing defs in LI. PHI-defs are added as needed to maintain SSA form.
159 /// If a SlotIndex in Indices is the end index of a basic block, LI will be
165 /// pruneValue - If an LI value is live at Kill, prune its live range by
167 /// EndPoints such that extendToIndices(LI, EndPoints) will reconstruct the
172 void pruneValue(LiveInterval *LI, SlotIndex Kill,
264 /// intervalIsInOneMBB - If LI i
[all...]
/freebsd-9.3-release/contrib/llvm/include/llvm/Transforms/Utils/
H A DUnrollLoop.h26 unsigned TripMultiple, LoopInfo* LI, LPPassManager* LPM);
28 bool UnrollRuntimeLoopProlog(Loop *L, unsigned Count, LoopInfo *LI,
/freebsd-9.3-release/contrib/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...]
/freebsd-9.3-release/contrib/llvm/lib/CodeGen/
H A DLiveRangeCalc.h83 // Cleared when the final value has been determined and LI has been updated.
88 // determined, the range from the block start to Kill will be added to LI.
104 /// Assuming that LI is live-in to KillMBB and killed at Kill, find the set
108 /// to LI, and the function returns true.
110 /// If multiple values can reach Kill, the blocks that need LI to be live in
154 /// extend - Extend the live range of LI to reach Kill.
156 /// The existing values in LI must be live so they jointly dominate Kill. If
164 /// createDeadDefs - Create a dead def in LI for every def operand of Reg.
169 /// createDeadDefs - Create a dead def in LI for every def of LI
170 createDeadDefs(LiveInterval &LI) argument
181 extendToUses(LiveInterval &LI) argument
[all...]
H A DLiveRangeEdit.cpp38 LiveInterval &LI = LIS.createEmptyInterval(VReg); local
39 return LI;
165 bool LiveRangeEdit::foldAsLoad(LiveInterval *LI, argument
170 for (MachineRegisterInfo::reg_nodbg_iterator I = MRI.reg_nodbg_begin(LI->reg),
209 if (UseMI->readsWritesVirtualRegister(LI->reg, &Ops).second)
218 DefMI->addRegisterDead(LI->reg, 0);
273 LiveInterval &LI = LIS.getInterval(Reg); local
281 LI.Query(Idx).isKill()))
282 ToShrink.insert(&LI);
286 if (VNInfo *VNI = LI
345 LiveInterval *LI = ToShrink.back(); local
376 DEBUG(dbgs() << NumComp << " components: " << *LI << '\\n'); local
413 LiveInterval &LI = LIS.getInterval(get(I)); local
[all...]
H A DLiveIntervalAnalysis.cpp181 void LiveIntervals::computeVirtRegInterval(LiveInterval &LI) { argument
183 assert(LI.empty() && "Should only compute empty intervals.");
185 LRCalc->createDeadDefs(LI);
186 LRCalc->extendToUses(LI);
452 void LiveIntervals::pruneValue(LiveInterval *LI, SlotIndex Kill, argument
454 LiveQueryResult LRQ = LI->Query(Kill);
465 LI->removeSegment(Kill, LRQ.endPoint());
471 LI->removeSegment(Kill, MBBEnd);
489 LiveQueryResult LRQ = LI->Query(MBBStart);
498 LI
524 LiveInterval *LI = &getInterval(Reg); local
604 hasPHIKill(const LiveInterval &LI, const VNInfo *VNI) const argument
647 checkRegMaskInterference(LiveInterval &LI, BitVector &UsableRegs) argument
753 LiveInterval &LI = LIS.getInterval(Reg); local
1089 LiveInterval &LI = getInterval(Reg); local
[all...]
H A DRegisterCoalescer.cpp1047 LiveInterval &LI = LIS->getInterval(CP.getSrcReg()); local
1048 DEBUG(dbgs() << "\tCopy already coalesced: " << LI << '\n');
1049 LiveQueryResult LRQ = LI.Query(LIS->getInstructionIndex(CopyMI));
1054 LI.MergeValueNumberInto(DefVNI, ReadVNI);
1055 DEBUG(dbgs() << "\tMerged values: " << LI << '\n');
1279 LiveInterval &LI; member in class:__anon2173::JoinVals
1293 // Value number assignments. Maps value numbers in LI to entries in NewVNInfo.
1325 // Per-value info for LI. The lane bit masks are all relative to the final
1338 // Value in LI being redefined by this def.
1371 // One entry per value number in LI
1914 << Def << ": " << LI << '\\n'); local
1941 DEBUG(dbgs() << "\\t\\tremoved " << i << '@' << Def << ": " << LI << '\\n'); local
[all...]
/freebsd-9.3-release/contrib/llvm/include/llvm/Analysis/
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 = 0);
79 const LoopInfo *LI = 0);
H A DLoopInfo.h241 void addBasicBlockToLoop(BlockT *NewBB, LoopInfoBase<BlockT, LoopT> &LI);
590 LoopInfoBase<BasicBlock, Loop> LI; member in class:llvm::LoopInfo
602 LoopInfoBase<BasicBlock, Loop>& getBase() { return LI; }
609 inline iterator begin() const { return LI.begin(); }
610 inline iterator end() const { return LI.end(); }
611 inline reverse_iterator rbegin() const { return LI.rbegin(); }
612 inline reverse_iterator rend() const { return LI.rend(); }
613 bool empty() const { return LI.empty(); }
619 return LI.getLoopFor(BB);
625 return LI
[all...]
H A DLoopIterator.h64 void perform(LoopInfo *LI);
129 LoopInfo *LI; member in class:llvm::LoopBlocksTraversal
133 DFS(Storage), LI(LInfo) {}
154 if (!DFS.L->contains(LI->getLoopFor(BB)))
/freebsd-9.3-release/contrib/llvm/tools/llvm-diff/
H A DDifferenceEngine.cpp195 BasicBlock::iterator LI = L->begin(), LE = L->end(); local
199 assert(LI != LE && RI != R->end());
200 Instruction *LeftI = &*LI, *RightI = &*RI;
213 ++LI, ++RI;
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...]
/freebsd-9.3-release/contrib/llvm/lib/Analysis/
H A DCFG.cpp119 static const Loop *getOutermostLoop(const LoopInfo *LI, const BasicBlock *BB) { argument
120 const Loop *L = LI->getLoopFor(BB);
129 static bool loopContainsBoth(const LoopInfo *LI, argument
131 const Loop *L1 = getOutermostLoop(LI, BB1);
132 const Loop *L2 = getOutermostLoop(LI, BB2);
139 const LoopInfo *LI) {
157 if (LI && loopContainsBoth(LI, BB, StopBB))
166 if (const Loop *Outer = LI ? getOutermostLoop(LI, B
136 isPotentiallyReachableInner(SmallVectorImpl<BasicBlock *> &Worklist, BasicBlock *StopBB, const DominatorTree *DT, const LoopInfo *LI) argument
182 isPotentiallyReachable(const BasicBlock *A, const BasicBlock *B, const DominatorTree *DT, const LoopInfo *LI) argument
194 isPotentiallyReachable(const Instruction *A, const Instruction *B, const DominatorTree *DT, const LoopInfo *LI) argument
[all...]
H A DLoads.cpp113 if (LoadInst *LI = dyn_cast<LoadInst>(BBI)) {
114 if (AreEquivalentAddressValues(LI->getOperand(0), V)) return true;
170 if (LoadInst *LI = dyn_cast<LoadInst>(Inst))
171 if (AreEquivalentAddressValues(LI->getOperand(0), Ptr)) {
172 if (TBAATag) *TBAATag = LI->getMetadata(LLVMContext::MD_tbaa);
173 return LI;
H A DIVUsers.cpp50 ScalarEvolution *SE, LoopInfo *LI) {
58 SE->getSCEVAtScope(AR, LI->getLoopFor(I->getParent())) != AR);
62 return isInteresting(AR->getStart(), I, L, SE, LI) &&
63 !isInteresting(AR->getStepRecurrence(*SE), I, L, SE, LI);
71 if (isInteresting(*OI, I, L, SE, LI)) {
86 const LoopInfo *LI,
92 Loop *DomLoop = LI->getLoopFor(DomBB);
142 if (!isInteresting(ISE, I, L, SE, LI))
165 if (!isSimplifiedLoopNest(UseBB, DT, LI, SimpleLoopNests))
175 if (LI
49 isInteresting(const SCEV *S, const Instruction *I, const Loop *L, ScalarEvolution *SE, LoopInfo *LI) argument
85 isSimplifiedLoopNest(BasicBlock *BB, const DominatorTree *DT, const LoopInfo *LI, SmallPtrSet<Loop*,16> &SimpleLoopNests) argument
[all...]
H A DLoopInfo.cpp425 LoopInfo *LI; member in class:__anon2072::UnloopUpdater
441 Unloop(UL), LI(LInfo), DFS(UL), FoundIB(false) {}
460 LoopBlocksTraversal Traversal(DFS, LI);
464 Loop *L = LI->getLoopFor(*POI);
471 LI->changeLoopFor(*POI, NL);
492 Loop *L = LI->getLoopFor(*POI);
497 LI->changeLoopFor(*POI, NL);
511 Loop *OuterParent = LI->getLoopFor(*BI);
538 LI->addTopLevelLoop(Subloop);
575 Loop *L = LI
722 perform(LoopInfo *LI) argument
[all...]
H A DLoopPass.cpp64 LI = NULL;
71 LI->updateUnloop(L);
102 LI->addTopLevelLoop(L);
180 LI = &getAnalysis<LoopInfo>();
195 for (LoopInfo::reverse_iterator I = LI->rbegin(), E = LI->rend(); I != E; ++I)
248 TimeRegion PassTimer(getPassTimer(LI));
H A DDelinearization.cpp43 LoopInfo *LI; member in class:__anon2057::Delinearization
68 LI = &getAnalysis<LoopInfo>();
95 for (Loop *L = LI->getLoopFor(BB); L != NULL; L = L->getParentLoop()) {
/freebsd-9.3-release/contrib/llvm/lib/Transforms/Scalar/
H A DLoopDeletion.cpp114 for (Loop::block_iterator LI = L->block_begin(), LE = L->block_end();
115 LI != LE; ++LI) {
116 for (BasicBlock::iterator BI = (*LI)->begin(), BE = (*LI)->end();
207 for (Loop::block_iterator LI = L->block_begin(), LE = L->block_end();
208 LI != LE; ++LI) {
211 ChildNodes.insert(ChildNodes.begin(), DT[*LI]->begin(), DT[*LI]
[all...]
H A DLowerAtomic.cpp98 static bool LowerLoadInst(LoadInst *LI) { argument
99 LI->setAtomic(NotAtomic);
124 else if (LoadInst *LI = dyn_cast<LoadInst>(Inst)) {
125 if (LI->isAtomic())
126 LowerLoadInst(LI);
H A DScalarReplAggregates.cpp182 void RewriteLoadUserOfWholeAlloca(LoadInst *LI, AllocaInst *AI,
472 if (LoadInst *LI = dyn_cast<LoadInst>(User)) {
474 if (!LI->isSimple())
477 if (LI->getType()->isX86_MMXTy())
480 MergeInTypeForLoadOrStore(LI->getType(), Offset);
627 if (LoadInst *LI = dyn_cast<LoadInst>(User)) {
631 = ConvertScalar_ExtractValue(LoadedVal, LI->getType(), Offset,
633 LI->replaceAllUsesWith(NewLoadVal);
634 LI->eraseFromParent();
1083 if (LoadInst *LI
1143 LoadInst *LI = dyn_cast<LoadInst>(*UI); local
1184 LoadInst *LI = dyn_cast<LoadInst>(*UI); local
1329 LoadInst *LI = cast<LoadInst>(SI->use_back()); local
1376 LoadInst *LI = cast<LoadInst>(PN->use_back()); local
2446 RewriteLoadUserOfWholeAlloca(LoadInst *LI, AllocaInst *AI, SmallVectorImpl<AllocaInst *> &NewElts) argument
2453 DEBUG(dbgs() << "PROMOTING LOAD OF WHOLE ALLOCA: " << *AI << '\\n' << *LI local
[all...]
/freebsd-9.3-release/contrib/llvm/lib/CodeGen/AsmPrinter/
H A DErlangGCPrinter.cpp112 for (GCFunctionInfo::live_iterator LI = MD.live_begin(PI),
114 LI != LE; ++LI) {
117 AP.EmitInt16(LI->StackOffset / IntPtrSize);
/freebsd-9.3-release/contrib/llvm/lib/Transforms/InstCombine/
H A DInstCombineLoadStoreAlloca.cpp57 if (LoadInst *LI = dyn_cast<LoadInst>(U)) {
59 if (!LI->isSimple()) return false;
283 static Instruction *InstCombineLoadCast(InstCombiner &IC, LoadInst &LI, argument
285 User *CI = cast<User>(LI.getOperand(0));
322 LI.getType()->isPtrOrPtrVectorTy()) &&
330 IC.Builder->CreateLoad(CastOp, LI.isVolatile(), CI->getName());
331 NewLoad->setAlignment(LI.getAlignment());
332 NewLoad->setAtomic(LI.getOrdering(), LI.getSynchScope());
334 return new BitCastInst(NewLoad, LI
341 visitLoadInst(LoadInst &LI) argument
[all...]
/freebsd-9.3-release/contrib/llvm/lib/Transforms/Utils/
H A DPromoteMemoryToRegister.cpp67 if (const LoadInst *LI = dyn_cast<LoadInst>(U)) {
70 if (LI->isVolatile())
144 LoadInst *LI = cast<LoadInst>(User); local
147 UsingBlocks.push_back(LI->getParent());
148 AllocaPointerVal = LI;
368 LoadInst *LI = cast<LoadInst>(UserInst); local
375 if (LI->getParent() == StoreBB) {
382 if (unsigned(StoreIndex) > LBI.getInstructionIndex(LI)) {
388 } else if (LI->getParent() != StoreBB &&
389 !DT.dominates(StoreBB, LI
471 LoadInst *LI = dyn_cast<LoadInst>(*UI++); local
[all...]
H A DBreakCriticalEdges.cpp213 LoopInfo *LI = P->getAnalysisIfAvailable<LoopInfo>(); local
216 if (DT == 0 && LI == 0)
275 if (LI) {
276 if (Loop *TIL = LI->getLoopFor(TIBB)) {
278 // either, and thus LI doesn't need to be updated.
279 if (Loop *DestLoop = LI->getLoopFor(DestBB)) {
282 DestLoop->addBasicBlockToLoop(NewBB, LI->getBase());
285 TIL->addBasicBlockToLoop(NewBB, LI->getBase());
288 DestLoop->addBasicBlockToLoop(NewBB, LI->getBase());
297 P->addBasicBlockToLoop(NewBB, LI
[all...]

Completed in 235 milliseconds

1234567