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