Home
last modified time | relevance | path

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

123

/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DMachineLoopInfo.h44 class MachineLoop; variable
45 extern template class LoopBase<MachineBasicBlock, MachineLoop>;
47 class MachineLoop : public LoopBase<MachineBasicBlock, MachineLoop> {
93 friend class LoopInfoBase<MachineBasicBlock, MachineLoop>;
98 explicit MachineLoop(MachineBasicBlock *MBB) in MachineLoop() function
99 : LoopBase<MachineBasicBlock, MachineLoop>(MBB) {} in MachineLoop()
101 MachineLoop() = default;
106 LoopInfoBase<MachineBasicBlock, MachineLoop>;
108 class MachineLoopInfo : public LoopInfoBase<MachineBasicBlock, MachineLoop> {
109 friend class LoopBase<MachineBasicBlock, MachineLoop>;
[all …]
H A DModuloSchedule.h73 class MachineLoop; variable
83 MachineLoop *Loop;
107 ModuloSchedule(MachineFunction &MF, MachineLoop *Loop, in ModuloSchedule()
120 MachineLoop *getLoop() const { return Loop; } in getLoop()
442 static bool canApply(MachineLoop &L);
H A DWindowScheduler.h66 MachineLoop &Loop;
107 WindowScheduler(MachineSchedContext *C, MachineLoop &ML);
H A DMachinePipeliner.h109 bool canPipelineLoop(MachineLoop &L);
110 bool scheduleLoop(MachineLoop &L);
111 bool swingModuloScheduler(MachineLoop &L);
112 void setPragmaPipelineOptions(MachineLoop &L);
113 bool runWindowScheduler(MachineLoop &L);
285 MachineLoop &Loop;
375 SwingSchedulerDAG(MachinePipeliner &P, MachineLoop &L, LiveIntervals &lis, in SwingSchedulerDAG()
H A DMachineTraceMetrics.h63 class MachineLoop; variable
363 const MachineLoop *getLoopFor(const MachineBasicBlock*) const;
H A DMachineRegionInfo.h41 using LoopT = MachineLoop;
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DMachineLoopInfo.cpp32 llvm::LoopBase<MachineBasicBlock, MachineLoop>;
34 llvm::LoopInfoBase<MachineBasicBlock, MachineLoop>;
92 MachineBasicBlock *MachineLoop::getTopBlock() { in getTopBlock()
107 MachineBasicBlock *MachineLoop::getBottomBlock() { in getBottomBlock()
122 MachineBasicBlock *MachineLoop::findLoopControlBlock() const { in findLoopControlBlock()
132 DebugLoc MachineLoop::getStartLoc() const { in getStartLoc()
149 MachineLoopInfo::findLoopPreheader(MachineLoop *L, bool SpeculativePreheader, in findLoopPreheader()
177 MachineLoop *T = getLoopFor(S); in findLoopPreheader()
185 MDNode *MachineLoop::getLoopID() const { in getLoopID()
216 bool MachineLoop::isLoopInvariantImplicitPhysReg(Register Reg) const { in isLoopInvariantImplicitPhysReg()
[all …]
H A DMachineLICM.cpp144 SmallDenseMap<MachineLoop *, bool> AllowedToHoistLoads;
147 DenseMap<MachineLoop *, SmallVector<MachineBasicBlock *, 8>> ExitBlockMap;
149 bool isExitBlock(MachineLoop *CurLoop, const MachineBasicBlock *MBB) { in isExitBlock()
217 void HoistRegionPostRA(MachineLoop *CurLoop);
219 void HoistPostRA(MachineInstr *MI, Register Def, MachineLoop *CurLoop);
224 MachineLoop *CurLoop);
226 void AddToLiveIns(MCRegister Reg, MachineLoop *CurLoop);
228 bool IsLICMCandidate(MachineInstr &I, MachineLoop *CurLoop);
230 bool IsLoopInvariantInst(MachineInstr &I, MachineLoop *CurLoop);
232 bool HasLoopPHIUse(const MachineInstr *MI, MachineLoop *CurLoop);
[all …]
H A DMachineTraceMetrics.cpp181 const MachineLoop*
317 static bool isExitingLoop(const MachineLoop *From, const MachineLoop *To) { in isExitingLoop()
357 const MachineLoop *CurLoop = getLoopFor(MBB); in pickTracePred()
385 const MachineLoop *CurLoop = getLoopFor(MBB); in pickTraceSucc()
507 if (const MachineLoop *FromLoop = LB.Loops->getLoopFor(*From)) { in insertEdge()
644 const MachineLoop *Loop = getLoopFor(MBB); in verify()
652 const MachineLoop *Loop = getLoopFor(MBB); in verify()
653 const MachineLoop *SuccLoop = getLoopFor(TBI.Succ); in verify()
1106 if (const MachineLoop *Loop = getLoopFor(MBB)) in computeInstrHeights()
H A DMachineBlockPlacement.cpp559 const MachineLoop &L,
561 MachineBasicBlock *findBestLoopTop(const MachineLoop &L,
563 MachineBasicBlock *findBestLoopExit(const MachineLoop &L,
566 BlockFilterSet collectLoopBlockSet(const MachineLoop &L);
567 void buildLoopChains(const MachineLoop &L);
570 void rotateLoopWithProfile(BlockChain &LoopChain, const MachineLoop &L,
2168 MachineBasicBlock *OldTop, const MachineLoop &L, in findBestLoopTopHelper()
2236 MachineBlockPlacement::findBestLoopTop(const MachineLoop &L, in findBestLoopTop()
2265 MachineBlockPlacement::findBestLoopExit(const MachineLoop &L, in findBestLoopExit()
2326 if (MachineLoop *ExitLoop = MLI->getLoopFor(Succ)) { in findBestLoopExit()
[all …]
H A DRegAllocGreedy.h52 class MachineLoop; variable
440 RAGreedyStats reportStats(MachineLoop *L);
/freebsd/contrib/llvm-project/llvm/lib/Target/PowerPC/
H A DPPCCTRLoops.cpp71 bool processLoop(MachineLoop *ML);
73 void expandNormalLoops(MachineLoop *ML, MachineInstr *Start,
75 void expandCTRLoops(MachineLoop *ML, MachineInstr *Start, MachineInstr *Dec);
140 bool PPCCTRLoops::processLoop(MachineLoop *ML) { in processLoop()
144 for (MachineLoop *I : *ML) in processLoop()
234 void PPCCTRLoops::expandNormalLoops(MachineLoop *ML, MachineInstr *Start, in expandNormalLoops()
310 void PPCCTRLoops::expandCTRLoops(MachineLoop *ML, MachineInstr *Start, in expandCTRLoops()
/freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/
H A DWebAssemblySortRegion.h24 class MachineLoop; variable
67 DenseMap<const MachineLoop *, std::unique_ptr<SortRegion>> LoopMap;
83 MachineBasicBlock *getBottom(const MachineLoop *ML);
H A DWebAssemblySortRegion.cpp11 bool ConcreteSortRegion<MachineLoop>::isLoop() const { in isLoop()
33 It->second = std::make_unique<ConcreteSortRegion<MachineLoop>>(ML); in getRegionFor()
52 MachineBasicBlock *SortRegionInfo::getBottom(const MachineLoop *ML) { in getBottom()
H A DWebAssemblyCFGSort.cpp198 if (MachineLoop *L = MLI.getLoopFor(&MBB)) in sortBlocks()
245 if (MachineLoop *SuccL = MLI.getLoopFor(Succ)) in sortBlocks()
/freebsd/contrib/llvm-project/llvm/lib/Target/ARM/
H A DARMBlockPlacement.cpp45 bool fixBackwardsWLS(MachineLoop *ML);
46 bool processPostOrderLoops(MachineLoop *ML);
76 static MachineInstr *findWLS(MachineLoop *ML) { in findWLS()
154 bool ARMBlockPlacement::fixBackwardsWLS(MachineLoop *ML) { in fixBackwardsWLS()
206 bool ARMBlockPlacement::processPostOrderLoops(MachineLoop *ML) { in processPostOrderLoops()
H A DMVETPAndVPTOptimisationsPass.cpp71 bool LowerWhileLoopStart(MachineLoop *ML);
72 bool MergeLoopEnd(MachineLoop *ML);
73 bool ConvertTailPredLoop(MachineLoop *ML, MachineDominatorTree *DT);
110 static bool findLoopComponents(MachineLoop *ML, MachineRegisterInfo *MRI, in findLoopComponents()
227 bool MVETPAndVPTOptimisations::LowerWhileLoopStart(MachineLoop *ML) { in LowerWhileLoopStart()
318 bool MVETPAndVPTOptimisations::MergeLoopEnd(MachineLoop *ML) { in MergeLoopEnd()
436 bool MVETPAndVPTOptimisations::ConvertTailPredLoop(MachineLoop *ML, in ConvertTailPredLoop()
1074 for (MachineLoop *ML : MLI->getLoopsInPreorder()) { in runOnMachineFunction()
H A DARMLowOverheadLoops.cpp127 MachineLoop &ML;
133 PostOrderLoopTraversal(MachineLoop &ML, MachineLoopInfo &MLI) in PostOrderLoopTraversal()
363 MachineLoop &ML;
385 LowOverheadLoop(MachineLoop &ML, MachineLoopInfo &MLI, in LowOverheadLoop()
500 bool ProcessLoop(MachineLoop *ML);
1062 ARMBasicBlockUtils *BBUtils, MachineLoop &ML) { in Validate()
1121 static bool ValidateMVEStore(MachineInstr *MI, MachineLoop *ML) { in ValidateMVEStore()
1311 bool ARMLowOverheadLoops::ProcessLoop(MachineLoop *ML) { in ProcessLoop()
1315 for (MachineLoop *L : *ML) in ProcessLoop()
/freebsd/contrib/llvm-project/llvm/lib/Target/Hexagon/
H A DHexagonHardwareLoops.cpp176 bool findInductionRegister(MachineLoop *L, Register &Reg,
188 CountValue *getLoopTripCount(MachineLoop *L,
198 CountValue *computeCount(MachineLoop *Loop, const MachineOperand *Start,
209 bool containsInvalidInstruction(MachineLoop *L, bool IsInnerHWLoop) const;
213 bool convertToHardwareLoop(MachineLoop *L, bool &L0used, bool &L1used);
231 bool isLoopFeeder(MachineLoop *L, MachineBasicBlock *A, MachineInstr *MI,
238 MachineBasicBlock *MBB, MachineLoop *L,
245 MachineBasicBlock *MBB, MachineLoop *L,
291 bool fixupInductionVariable(MachineLoop *L);
295 MachineBasicBlock *createPreheaderForLoop(MachineLoop *L);
[all …]
H A DHexagonEarlyIfConv.cpp170 bool matchFlowPattern(MachineBasicBlock *B, MachineLoop *L,
172 bool visitBlock(MachineBasicBlock *B, MachineLoop *L);
173 bool visitLoop(MachineLoop *L);
227 MachineLoop *L = MLI->getLoopFor(SB); in isPreheader()
232 MachineLoop *L, FlowPattern &FP) { in matchFlowPattern()
591 MachineLoop *L) { in visitBlock()
635 bool HexagonEarlyIfConversion::visitLoop(MachineLoop *L) { in visitLoop()
642 for (MachineLoop *I : *L) in visitLoop()
1059 for (MachineLoop *L : *MLI) in runOnMachineFunction()
H A DHexagonSplitDouble.cpp87 using LoopRegMap = std::map<const MachineLoop *, USet>;
97 void collectIndRegsForLoop(const MachineLoop *L, USet &Rs);
447 const MachineLoop *L = MLI->getLoopFor(PB); in isProfitable()
468 void HexagonSplitDoubleRegs::collectIndRegsForLoop(const MachineLoop *L, in collectIndRegsForLoop()
565 using LoopVector = std::vector<MachineLoop *>; in collectIndRegs()
574 for (MachineLoop *L : WorkQ) { in collectIndRegs()
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DR600MachineCFGStructurizer.cpp91 using LoopLandInfoMap = std::map<MachineLoop *, MachineBasicBlock *>;
168 for (const MachineLoop *L : LoopInfo) in PrintLoopinfo()
174 MachineBasicBlock *getLoopLandInfo(MachineLoop *LoopRep) const;
240 int mergeLoop(MachineLoop *LoopRep);
280 MachineBasicBlock *normalizeInfiniteLoopExit(MachineLoop *LoopRep);
305 std::map<MachineLoop *, bool> Visited;
321 MachineBasicBlock *R600MachineCFGStructurizer::getLoopLandInfo(MachineLoop *LoopRep) in getLoopLandInfo()
330 MachineLoop *LoopRep = MLI->getLoopFor(MBB); in hasBackEdge()
345 MachineLoop *LoopRep = MLI->getLoopFor(MBB); in isActiveLoophead()
684 for (MachineLoop *LoopRep : *MLI) { in prepare()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/SystemZ/
H A DSystemZMachineScheduler.cpp41 const MachineLoop *Loop) { in getSingleSchedPred()
89 LLVM_DEBUG(const MachineLoop *Loop = MLI->getLoopFor(MBB); in enterMBB()
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/
H A DAArch64FalkorHWPFFix.cpp195 void runOnLoop(MachineLoop &L, MachineFunction &Fn);
669 void FalkorHWPFFix::runOnLoop(MachineLoop &L, MachineFunction &Fn) { in runOnLoop()
822 for (MachineLoop *I : LI) in runOnMachineFunction()
823 for (MachineLoop *L : depth_first(I)) in runOnMachineFunction()
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/
H A DX86CmovConversion.cpp237 SmallVector<MachineLoop *, 4> Loops(MLI->begin(), MLI->end()); in runOnMachineFunction()
243 for (MachineLoop *CurrLoop : Loops) { in runOnMachineFunction()
881 if (MachineLoop *L = MLI->getLoopFor(MBB)) { in convertCmovInstsToBranches()

123