Lines Matching refs:Jump
634 for (auto &Jump : Path) { in joinIsolatedComponents() local
635 Jump->Flow += 1; in joinIsolatedComponents()
636 Func.Blocks[Jump->Target].Flow += 1; in joinIsolatedComponents()
638 findReachable(Jump->Target, Visited); in joinIsolatedComponents()
655 for (auto *Jump : Func.Blocks[Src].SuccJumps) { in findReachable() local
656 uint64_t Dst = Jump->Target; in findReachable()
657 if (Jump->Flow > 0 && !Visited[Dst]) { in findReachable()
706 for (auto *Jump : Func.Blocks[Src].SuccJumps) { in findShortestPath() local
707 uint64_t Dst = Jump->Target; in findShortestPath()
708 int64_t JumpDist = jumpDistance(Jump); in findShortestPath()
713 Parent[Dst] = Jump; in findShortestPath()
753 int64_t jumpDistance(FlowJump *Jump) const { in jumpDistance()
754 if (Jump->IsUnlikely) in jumpDistance()
760 if (Jump->Flow > 0) in jumpDistance()
761 return BaseDistance + BaseDistance / Jump->Flow; in jumpDistance()
809 for (auto *Jump : SrcBlock->SuccJumps) { in canRebalanceAtRoot() local
810 if (Func.Blocks[Jump->Target].HasUnknownWeight) { in canRebalanceAtRoot()
837 for (auto *Jump : Block.SuccJumps) { in findUnknownSubgraph() local
839 if (ignoreJump(SrcBlock, nullptr, Jump)) in findUnknownSubgraph()
842 uint64_t Dst = Jump->Target; in findUnknownSubgraph()
882 for (auto *Jump : Block->SuccJumps) { in canRebalanceSubgraph() local
883 if (ignoreJump(SrcBlock, DstBlock, Jump)) in canRebalanceSubgraph()
898 const FlowJump *Jump) { in ignoreJump() argument
900 if (Jump->IsUnlikely && Jump->Flow == 0) in ignoreJump()
903 auto JumpSource = &Func.Blocks[Jump->Source]; in ignoreJump()
904 auto JumpTarget = &Func.Blocks[Jump->Target]; in ignoreJump()
928 for (auto *Jump : Block->SuccJumps) { in isAcyclicSubgraph() local
929 if (ignoreJump(SrcBlock, DstBlock, Jump)) in isAcyclicSubgraph()
931 LocalInDegree[Jump->Target]++; in isAcyclicSubgraph()
957 for (auto *Jump : Block->SuccJumps) { in isAcyclicSubgraph() local
958 if (ignoreJump(SrcBlock, DstBlock, Jump)) in isAcyclicSubgraph()
960 uint64_t Dst = Jump->Target; in isAcyclicSubgraph()
986 for (auto *Jump : SrcBlock->SuccJumps) { in rebalanceUnknownSubgraph() local
987 if (ignoreJump(SrcBlock, DstBlock, Jump)) in rebalanceUnknownSubgraph()
989 BlockFlow += Jump->Flow; in rebalanceUnknownSubgraph()
998 for (auto *Jump : Block->PredJumps) { in rebalanceUnknownSubgraph() local
999 BlockFlow += Jump->Flow; in rebalanceUnknownSubgraph()
1012 for (auto *Jump : Block->SuccJumps) { in rebalanceBlock() local
1013 if (ignoreJump(SrcBlock, DstBlock, Jump)) in rebalanceBlock()
1025 for (auto *Jump : Block->SuccJumps) { in rebalanceBlock() local
1026 if (ignoreJump(SrcBlock, DstBlock, Jump)) in rebalanceBlock()
1029 Jump->Flow = Flow; in rebalanceBlock()
1049 const FlowJump &Jump);
1104 auto &Jump = Func.Jumps[J]; in initializeNetwork() local
1107 uint64_t Jin = 2 * Jump.Source + 1; in initializeNetwork()
1108 uint64_t Jout = 2 * Jump.Target; in initializeNetwork()
1111 auto [AuxCostInc, AuxCostDec] = assignJumpCosts(Params, Jump); in initializeNetwork()
1115 if (Jump.Weight > 0) { in initializeNetwork()
1116 Network.addEdge(Jout, Jin, Jump.Weight, AuxCostDec); in initializeNetwork()
1117 Network.addEdge(S1, Jout, Jump.Weight, 0); in initializeNetwork()
1118 Network.addEdge(Jin, T1, Jump.Weight, 0); in initializeNetwork()
1156 const FlowJump &Jump) { in assignJumpCosts() argument
1158 if (Jump.IsUnlikely) in assignJumpCosts()
1165 if (Jump.Source + 1 == Jump.Target) { in assignJumpCosts()
1170 if (Jump.HasUnknownWeight) { in assignJumpCosts()
1172 if (Jump.Source + 1 == Jump.Target) in assignJumpCosts()
1178 assert(Jump.Weight > 0 && "found zero-weight jump with a positive weight"); in assignJumpCosts()
1191 auto &Jump = Func.Jumps[J]; in extractWeights() local
1192 uint64_t SrcOut = 2 * Jump.Source + 1; in extractWeights()
1193 uint64_t DstIn = 2 * Jump.Target; in extractWeights()
1197 if (Jump.Source != Jump.Target) in extractWeights()
1198 Flow = int64_t(Jump.Weight) + AuxFlow; in extractWeights()
1200 Flow = int64_t(Jump.Weight) + (AuxFlow > 0 ? AuxFlow : 0); in extractWeights()
1202 Jump.Flow = Flow; in extractWeights()
1209 for (auto &Jump : Func.Jumps) { in extractWeights() local
1210 InFlow[Jump.Target] += Jump.Flow; in extractWeights()
1211 OutFlow[Jump.Source] += Jump.Flow; in extractWeights()
1235 for (auto &Jump : Block.SuccJumps) { in verifyInput() local
1236 auto It = UniqueSuccs.insert(Jump->Target); in verifyInput()
1251 for (auto &Jump : Func.Jumps) { in verifyInput() local
1252 assert((!Jump.HasUnknownWeight || Jump.Weight == 0) && in verifyInput()
1262 for (const auto &Jump : Func.Jumps) { in verifyOutput() local
1263 InFlow[Jump.Target] += Jump.Flow; in verifyOutput()
1264 OutFlow[Jump.Source] += Jump.Flow; in verifyOutput()
1288 for (const auto &Jump : Func.Jumps) { in verifyOutput() local
1289 if (Jump.Flow > 0) { in verifyOutput()
1290 PositiveFlowEdges[Jump.Source].push_back(Jump.Target); in verifyOutput()
1331 for (FlowJump &Jump : Func.Jumps) { in applyFlowInference()
1332 if (Jump.Weight > 0) in applyFlowInference()
1334 Jump.Flow = Jump.Weight; in applyFlowInference()