Lines Matching defs:Flow
115 if (Edge.Flow > 0) {
116 TotalCost += Edge.Cost * Edge.Flow;
118 TotalFlow += Edge.Flow;
141 SrcEdge.Flow = 0;
148 DstEdge.Flow = 0;
163 std::vector<std::pair<uint64_t, int64_t>> Flow;
165 if (Edge.Flow > 0)
166 Flow.push_back(std::make_pair(Edge.Dst, Edge.Flow));
168 return Flow;
173 int64_t Flow = 0;
176 Flow += Edge.Flow;
179 return Flow;
223 assert(Edge.Capacity >= Edge.Flow && "incorrect edge flow");
224 uint64_t EdgeCapacity = uint64_t(Edge.Capacity - Edge.Flow);
272 if (Edge.Flow < Edge.Capacity) {
302 Edge.Flow += PathCapacity;
303 RevEdge.Flow -= PathCapacity;
428 uint64_t MaxIntFlow = double(Edge->Capacity - Edge->Flow) / EdgeFlow;
449 EdgeFlow = std::min(EdgeFlow, uint64_t(Edge->Capacity - Edge->Flow));
482 assert(uint64_t(Edge->Capacity - Edge->Flow) >= Edge->AugmentedFlow);
485 Edge->Flow += Edge->AugmentedFlow;
486 RevEdge.Flow -= Edge->AugmentedFlow;
487 if (Edge->Capacity == Edge->Flow && Edge->AugmentedFlow > 0)
517 Edge.Capacity > Edge.Flow &&
518 uint64_t(Edge.Capacity - Edge.Flow) >= MinCapacity;
557 int64_t Flow;
627 if (Block.Flow > 0 && !Visited[I]) {
633 Func.Blocks[Func.Entry].Flow += 1;
635 Jump->Flow += 1;
636 Func.Blocks[Jump->Target].Flow += 1;
657 if (Jump->Flow > 0 && !Visited[Dst]) {
749 /// - to minimize the number of Flow == 0 jumps used and subject to that,
750 /// - minimizes total multiplicative Flow increase for the remaining edges.
758 std::min(Func.Blocks[Func.Entry].Flow,
760 if (Jump->Flow > 0)
761 return BaseDistance + BaseDistance / Jump->Flow;
804 if (SrcBlock->HasUnknownWeight || SrcBlock->Flow == 0)
900 if (Jump->IsUnlikely && Jump->Flow == 0)
915 if (!JumpTarget->HasUnknownWeight && JumpTarget->Flow == 0)
981 assert(SrcBlock->Flow > 0 && "zero-flow block in unknown subgraph");
989 BlockFlow += Jump->Flow;
999 BlockFlow += Jump->Flow;
1001 Block->Flow = BlockFlow;
1028 uint64_t Flow = std::min(SuccFlow, BlockFlow);
1029 Jump->Flow = Flow;
1030 BlockFlow -= Flow;
1195 int64_t Flow = 0;
1198 Flow = int64_t(Jump.Weight) + AuxFlow;
1200 Flow = int64_t(Jump.Weight) + (AuxFlow > 0 ? AuxFlow : 0);
1202 Jump.Flow = Flow;
1203 assert(Flow >= 0 && "negative jump flow");
1210 InFlow[Jump.Target] += Jump.Flow;
1211 OutFlow[Jump.Source] += Jump.Flow;
1215 Block.Flow = std::max(OutFlow[B], InFlow[B]);
1263 InFlow[Jump.Target] += Jump.Flow;
1264 OutFlow[Jump.Source] += Jump.Flow;
1272 TotalInFlow += Block.Flow;
1273 assert(Block.Flow == OutFlow[I] && "incorrectly computed control flow");
1275 TotalOutFlow += Block.Flow;
1276 assert(Block.Flow == InFlow[I] && "incorrectly computed control flow");
1278 assert(Block.Flow == OutFlow[I] && "incorrectly computed control flow");
1279 assert(Block.Flow == InFlow[I] && "incorrectly computed control flow");
1289 if (Jump.Flow > 0) {
1314 assert((Visited[I] || Block.Flow == 0) && "an isolated flow component");
1329 Block.Flow = Block.Weight;
1334 Jump.Flow = Jump.Weight;