Lines Matching full:flow

14 /// successive if-then (with a flow block to do predicate inversion). Consider a
23 /// bb.flow:
30 /// As register allocator has no idea of the thread-control-flow, it will just
40 /// through inserting a phi-node in bb.flow saying that %a is undef when coming
104 void collectElseRegionBlocks(MachineBasicBlock *Flow,
109 collectCandidateRegisters(MachineBasicBlock *If, MachineBasicBlock *Flow,
124 MachineBasicBlock *Flow) const;
127 Register Reg, Register NewReg, MachineBasicBlock *Flow,
133 MachineBasicBlock *Flow, MachineBasicBlock *Endif,
172 // Check whether the MBB is a else flow block and get the branching target which
184 MachineBasicBlock *Flow, MachineBasicBlock *Endif, in collectElseRegionBlocks() argument
186 assert(Flow != Endif); in collectElseRegionBlocks()
192 if (Pred != Flow && !Blocks.contains(Pred)) in collectElseRegionBlocks()
223 MachineBasicBlock *If, MachineBasicBlock *Flow, MachineBasicBlock *Endif, in collectCandidateRegisters() argument
272 if (Pred == Flow) in collectCandidateRegisters()
307 if (UseMBB == Flow || UseMBB == Endif) { in collectCandidateRegisters()
312 // The register is live through the path If->Flow or Flow->Endif. in collectCandidateRegisters()
314 if ((UseMBB == Flow && IncomingMBB != If) || in collectCandidateRegisters()
315 (UseMBB == Endif && IncomingMBB == Flow)) in collectCandidateRegisters()
401 Register Reg, MachineBasicBlock *If, MachineBasicBlock *Flow) const { in updateLiveRangeInThenRegion()
405 // Collect all successors until we see the flow block, where we should in updateLiveRangeInThenRegion()
410 if (Succ != Flow && !Blocks.contains(Succ)) { in updateLiveRangeInThenRegion()
470 Register Reg, Register NewReg, MachineBasicBlock *Flow, in updateLiveRangeInElseRegion() argument
500 Register Reg, MachineBasicBlock *If, MachineBasicBlock *Flow, in optimizeLiveRange() argument
509 MachineInstrBuilder PHI = BuildMI(*Flow, Flow->getFirstNonPHI(), DebugLoc(), in optimizeLiveRange()
511 for (auto *Pred : Flow->predecessors()) { in optimizeLiveRange()
544 // The optimized Reg is not alive through Flow blocks anymore. in optimizeLiveRange()
546 OldVarInfo.AliveBlocks.reset(Flow->getNumber()); in optimizeLiveRange()
548 updateLiveRangeInElseRegion(Reg, NewReg, Flow, Endif, ElseBlocks); in optimizeLiveRange()
549 updateLiveRangeInThenRegion(Reg, If, Flow); in optimizeLiveRange()
659 // Skip unexpected control flow. in runOnMachineFunction()