Home
last modified time | relevance | path

Searched refs:MachineLoop (Results 1 – 25 of 48) sorted by relevance

12

/external/llvm/include/llvm/CodeGen/
DMachineLoopInfo.h40 class MachineLoop; variable
41 extern template class LoopBase<MachineBasicBlock, MachineLoop>;
43 class MachineLoop : public LoopBase<MachineBasicBlock, MachineLoop> {
45 MachineLoop();
60 friend class LoopInfoBase<MachineBasicBlock, MachineLoop>;
61 explicit MachineLoop(MachineBasicBlock *MBB) in MachineLoop() function
62 : LoopBase<MachineBasicBlock, MachineLoop>(MBB) {} in MachineLoop()
66 extern template class LoopInfoBase<MachineBasicBlock, MachineLoop>;
69 LoopInfoBase<MachineBasicBlock, MachineLoop> LI;
70 friend class LoopBase<MachineBasicBlock, MachineLoop>;
[all …]
DMachineTraceMetrics.h61 class MachineLoop; variable
323 const MachineLoop *getLoopFor(const MachineBasicBlock*) const;
DMachineRegionInfo.h42 typedef MachineLoop LoopT;
/external/swiftshader/third_party/LLVM/include/llvm/CodeGen/
DMachineLoopInfo.h38 class MachineLoop : public LoopBase<MachineBasicBlock, MachineLoop> {
40 MachineLoop();
55 friend class LoopInfoBase<MachineBasicBlock, MachineLoop>;
56 explicit MachineLoop(MachineBasicBlock *MBB) in MachineLoop() function
57 : LoopBase<MachineBasicBlock, MachineLoop>(MBB) {} in MachineLoop()
61 LoopInfoBase<MachineBasicBlock, MachineLoop> LI;
62 friend class LoopBase<MachineBasicBlock, MachineLoop>;
74 LoopInfoBase<MachineBasicBlock, MachineLoop>& getBase() { return LI; } in getBase()
79 typedef LoopInfoBase<MachineBasicBlock, MachineLoop>::iterator iterator;
87 inline MachineLoop *getLoopFor(const MachineBasicBlock *BB) const { in getLoopFor()
[all …]
DMachineLoopRanges.h25 class MachineLoop; variable
39 const MachineLoop *const Loop;
49 MachineLoopRange(const MachineLoop*, Allocator&, SlotIndexes&);
53 const MachineLoop *getLoop() const { return Loop; } in getLoop()
87 typedef DenseMap<const MachineLoop*, MachineLoopRange*> CacheMap;
101 MachineLoopRange *getLoopRange(const MachineLoop *Loop);
/external/swiftshader/third_party/LLVM/lib/CodeGen/
DSplitter.h66 typedef std::map<MachineLoop*, LoopRanges> LoopRangeMap;
69 void dumpLoopInfo(MachineLoop &loop);
75 bool canInsertPreHeader(MachineLoop &loop);
76 MachineBasicBlock& insertPreHeader(MachineLoop &loop);
78 bool isCriticalEdge(MachineLoop::Edge &edge);
79 bool canSplitEdge(MachineLoop::Edge &edge);
80 MachineBasicBlock& splitEdge(MachineLoop::Edge &edge, MachineLoop &loop);
82 LoopRanges& getLoopRanges(MachineLoop &loop);
84 MachineLoop &loop);
86 void dumpLoopRanges(MachineLoop &loop);
[all …]
DSplitter.cpp56 LoopSplit(LoopSplitter &ls, LiveInterval &li, MachineLoop &loop) in LoopSplit()
64 MachineLoop& getLoop() const { return loop; } in getLoop()
74 void splitOutgoing(MachineLoop::Edge &edge) { outSplits.insert(edge); } in splitOutgoing()
89 MachineLoop &loop;
91 std::set<MachineLoop::Edge> outSplits;
158 for (std::set<MachineLoop::Edge>::iterator osItr = outSplits.begin(), in applyOutgoing()
161 MachineLoop::Edge edge = *osItr; in applyOutgoing()
232 for (MachineLoop::block_iterator bbItr = loop.block_begin(), in copyRanges()
368 void LoopSplitter::dumpLoopInfo(MachineLoop &loop) { in dumpLoopInfo()
370 typedef SmallVector<MachineLoop::Edge, 8> ExitEdgesList; in dumpLoopInfo()
[all …]
DCodePlacementOpt.cpp60 MachineLoop *L);
62 MachineLoop *L);
63 bool OptimizeIntraLoopEdgesInLoopNest(MachineFunction &MF, MachineLoop *L);
66 bool AlignLoop(MachineFunction &MF, MachineLoop *L, unsigned Align);
155 MachineLoop *L) { in EliminateUnconditionalJumpsToTop()
250 MachineLoop *L) { in MoveDiscontiguousLoopBlocks()
279 for (MachineLoop::block_iterator BI = L->block_begin(), BE = L->block_end(); in MoveDiscontiguousLoopBlocks()
343 MachineLoop *L) { in OptimizeIntraLoopEdgesInLoopNest()
347 for (MachineLoop::iterator I = L->begin(), E = L->end(); I != E; ++I) in OptimizeIntraLoopEdgesInLoopNest()
397 bool CodePlacementOpt::AlignLoop(MachineFunction &MF, MachineLoop *L, in AlignLoop()
[all …]
DMachineLoopInfo.cpp24 #define MLB class LoopBase<MachineBasicBlock, MachineLoop>
27 #define MLIB class LoopInfoBase<MachineBasicBlock, MachineLoop>
53 MachineBasicBlock *MachineLoop::getTopBlock() { in getTopBlock()
67 MachineBasicBlock *MachineLoop::getBottomBlock() { in getBottomBlock()
81 void MachineLoop::dump() const { in dump()
DPrologEpilogInserter.h92 DenseMap<MachineBasicBlock*, MachineLoop*> TLLoops;
146 MachineBasicBlock* getTopLevelLoopPreheader(MachineLoop* LP);
147 MachineLoop* getTopLevelLoopParent(MachineLoop *LP);
150 void propagateUsesAroundLoop(MachineBasicBlock* MBB, MachineLoop* LP);
DMachineLoopRanges.cpp49 MachineLoopRange *MachineLoopRanges::getLoopRange(const MachineLoop *Loop) { in getLoopRange()
57 MachineLoopRange::MachineLoopRange(const MachineLoop *loop, in MachineLoopRange()
62 for (MachineLoop::block_iterator I = Loop->block_begin(), in MachineLoopRange()
DShrinkWrapping.cpp104 MachineBasicBlock* PEI::getTopLevelLoopPreheader(MachineLoop* LP) { in getTopLevelLoopPreheader()
107 MachineLoop* PLP = LP->getParentLoop(); in getTopLevelLoopPreheader()
115 MachineLoop* PEI::getTopLevelLoopParent(MachineLoop *LP) { in getTopLevelLoopParent()
118 MachineLoop* PLP = LP->getParentLoop(); in getTopLevelLoopParent()
327 void PEI::propagateUsesAroundLoop(MachineBasicBlock* MBB, MachineLoop* LP) { in propagateUsesAroundLoop()
441 if (MachineLoop* LP = LI.getLoopFor(MBB)) { in calculateSets()
444 MachineLoop* PLP = getTopLevelLoopParent(LP); in calculateSets()
457 for (MachineLoop* PLP = LP->getParentLoop(); PLP; in calculateSets()
636 for (DenseMap<MachineBasicBlock*, MachineLoop*>::iterator in addUsesForTopLevelLoops()
639 MachineLoop* LP = I->second; in addUsesForTopLevelLoops()
DScheduleDAGInstrs.h50 void VisitLoop(const MachineLoop *Loop) { in VisitLoop()
69 const MachineLoop *Loop, in VisitRegion()
DMachineLICM.cpp81 MachineLoop *CurLoop; // The current loop we are working on.
295 static bool LoopIsOuterMostWithPredecessor(MachineLoop *CurLoop) { in LoopIsOuterMostWithPredecessor()
300 for (MachineLoop *L = CurLoop->getParentLoop(); L; L = L->getParentLoop()) in LoopIsOuterMostWithPredecessor()
340 SmallVector<MachineLoop *, 8> Worklist(MLI->begin(), MLI->end()); in runOnMachineFunction()
479 const MachineLoop *ML = MLI->getLoopFor(BB); in HoistRegionPostRA()
619 const MachineLoop *ML = MLI->getLoopFor(BB); in HoistRegion()
DMachineBasicBlock.cpp624 if (MachineLoop *TIL = MLI->getLoopFor(this)) { in SplitCriticalEdge()
627 if (MachineLoop *DestLoop = MLI->getLoopFor(Succ)) { in SplitCriticalEdge()
644 if (MachineLoop *P = DestLoop->getParentLoop()) in SplitCriticalEdge()
/external/llvm/lib/CodeGen/
DMachineLoopInfo.cpp26 template class llvm::LoopBase<MachineBasicBlock, MachineLoop>;
27 template class llvm::LoopInfoBase<MachineBasicBlock, MachineLoop>;
50 MachineBasicBlock *MachineLoop::getTopBlock() { in getTopBlock()
65 MachineBasicBlock *MachineLoop::getBottomBlock() { in getBottomBlock()
81 LLVM_DUMP_METHOD void MachineLoop::dump() const { in dump()
DMachineBlockPlacement.cpp323 MachineBasicBlock *findBestLoopTop(MachineLoop &L,
325 MachineBasicBlock *findBestLoopExit(MachineLoop &L,
327 BlockFilterSet collectLoopBlockSet(MachineLoop &L);
328 void buildLoopChains(MachineLoop &L);
331 void rotateLoopWithProfile(BlockChain &LoopChain, MachineLoop &L,
902 MachineBlockPlacement::findBestLoopTop(MachineLoop &L, in findBestLoopTop()
956 MachineBlockPlacement::findBestLoopExit(MachineLoop &L, in findBestLoopExit()
1016 if (MachineLoop *ExitLoop = MLI->getLoopFor(Succ)) { in findBestLoopExit()
1120 BlockChain &LoopChain, MachineLoop &L, const BlockFilterSet &LoopBlockSet) { in rotateLoopWithProfile()
1257 MachineBlockPlacement::collectLoopBlockSet(MachineLoop &L) { in collectLoopBlockSet()
[all …]
DMachineTraceMetrics.cpp156 const MachineLoop*
293 static bool isExitingLoop(const MachineLoop *From, const MachineLoop *To) { in isExitingLoop()
316 const MachineLoop *CurLoop = getLoopFor(MBB); in pickTracePred()
344 const MachineLoop *CurLoop = getLoopFor(MBB); in pickTraceSucc()
440 if (const MachineLoop *FromLoop = LB.Loops->getLoopFor(From)) { in insertEdge()
576 const MachineLoop *Loop = getLoopFor(MBB); in verify()
584 const MachineLoop *Loop = getLoopFor(MBB); in verify()
585 const MachineLoop *SuccLoop = getLoopFor(TBI.Succ); in verify()
1046 if (const MachineLoop *Loop = getLoopFor(MBB)) in computeInstrHeights()
DMachineLICM.cpp88 MachineLoop *CurLoop; // The current loop we are working on.
250 static bool LoopIsOuterMostWithPredecessor(MachineLoop *CurLoop) { in INITIALIZE_PASS_DEPENDENCY()
255 for (MachineLoop *L = CurLoop->getParentLoop(); L; L = L->getParentLoop()) in INITIALIZE_PASS_DEPENDENCY()
298 SmallVector<MachineLoop *, 8> Worklist(MLI->begin(), MLI->end()); in runOnMachineFunction()
456 const MachineLoop *ML = MLI->getLoopFor(BB); in HoistRegionPostRA()
641 const MachineLoop *ML = MLI->getLoopFor(BB); in HoistOutOfLoop()
/external/llvm/lib/Target/WebAssembly/
DWebAssemblyCFGStackify.cpp75 static MachineBasicBlock *LoopBottom(const MachineLoop *Loop) { in LoopBottom()
118 const MachineLoop *Loop;
125 explicit Entry(const MachineLoop *L) in Entry()
142 if (MachineLoop *L = MLI.getLoopFor(&MBB)) in SortBlocks()
165 const MachineLoop *L = MLI.getLoopFor(MBB); in SortBlocks()
184 if (MachineLoop *SuccL = MLI.getLoopFor(Succ)) in SortBlocks()
246 SmallSetVector<MachineLoop *, 8> OnStack; in SortBlocks()
256 MachineLoop *Loop = MLI.getLoopFor(&MBB); in SortBlocks()
354 for (MachineLoop *Loop = MLI.getLoopFor(LayoutPred); in PlaceBlockMarker()
361 MachineLoop *HeaderLoop = MLI.getLoopFor(Header); in PlaceBlockMarker()
[all …]
DWebAssemblyFixIrreducibleControlFlow.cpp65 bool VisitLoop(MachineFunction &MF, MachineLoopInfo &MLI, MachineLoop *Loop);
92 explicit MetaBlock(MachineLoop *Loop) : Block(Loop->getHeader()) { in MetaBlock()
120 explicit SuccessorList(MachineLoop *Loop) in SuccessorList()
135 MachineLoop *Loop) { in VisitLoop()
159 MachineLoop *InnerLoop = MLI.getLoopFor(Next); in VisitLoop()
279 SmallVector<MachineLoop *, 8> Worklist(MLI.begin(), MLI.end()); in runOnMachineFunction()
281 MachineLoop *CurLoop = Worklist.pop_back_val(); in runOnMachineFunction()
/external/llvm/lib/Target/Hexagon/
DHexagonHardwareLoops.cpp156 bool findInductionRegister(MachineLoop *L, unsigned &Reg,
168 CountValue *getLoopTripCount(MachineLoop *L,
178 CountValue *computeCount(MachineLoop *Loop, const MachineOperand *Start,
189 bool containsInvalidInstruction(MachineLoop *L, bool IsInnerHWLoop) const;
193 bool convertToHardwareLoop(MachineLoop *L, bool &L0used, bool &L1used);
211 bool isLoopFeeder(MachineLoop *L, MachineBasicBlock *A, MachineInstr *MI,
218 MachineBasicBlock *MBB, MachineLoop *L,
225 MachineBasicBlock *MBB, MachineLoop *L,
271 bool fixupInductionVariable(MachineLoop *L);
275 MachineBasicBlock *createPreheaderForLoop(MachineLoop *L);
[all …]
DHexagonEarlyIfConv.cpp156 bool matchFlowPattern(MachineBasicBlock *B, MachineLoop *L,
158 bool visitBlock(MachineBasicBlock *B, MachineLoop *L);
159 bool visitLoop(MachineLoop *L);
208 MachineLoop *L = MLI->getLoopFor(SB); in isPreheader()
214 MachineLoop *L, FlowPattern &FP) { in matchFlowPattern()
552 MachineLoop *L) { in visitBlock()
597 bool HexagonEarlyIfConversion::visitLoop(MachineLoop *L) { in visitLoop()
603 for (MachineLoop::iterator I = L->begin(), E = L->end(); I != E; ++I) in visitLoop()
DHexagonSplitDouble.cpp72 typedef std::map<const MachineLoop*,USet> LoopRegMap;
81 void collectIndRegsForLoop(const MachineLoop *L, USet &Rs);
409 const MachineLoop *L = MLI->getLoopFor(PB); in isProfitable()
430 void HexagonSplitDoubleRegs::collectIndRegsForLoop(const MachineLoop *L, in collectIndRegsForLoop()
527 typedef std::vector<MachineLoop*> LoopVector; in collectIndRegs()
539 MachineLoop *L = WorkQ[i]; in collectIndRegs()
/external/llvm/lib/Target/AMDGPU/
DAMDILCFGStructurizer.cpp127 typedef std::map<MachineLoop *, MachineBasicBlock *> LoopLandInfoMap;
204 for (MachineLoop::iterator iter = LoopInfo.begin(), in PrintLoopinfo()
212 MachineBasicBlock *getLoopLandInfo(MachineLoop *LoopRep) const;
273 int mergeLoop(MachineLoop *LoopRep);
312 MachineBasicBlock *normalizeInfiniteLoopExit(MachineLoop *LoopRep);
336 std::map<MachineLoop *, bool> Visited;
348 MachineBasicBlock *AMDGPUCFGStructurizer::getLoopLandInfo(MachineLoop *LoopRep) in getLoopLandInfo()
357 MachineLoop *LoopRep = MLI->getLoopFor(MBB); in hasBackEdge()
372 MachineLoop *LoopRep = MLI->getLoopFor(MBB); in isActiveLoophead()
721 MachineLoop *LoopRep = (*It); in prepare()
[all …]

12