| 114 | } |
| 115 | |
| 116 | static void PrintDataFlow(FILE *Out) { |
| 117 | for (size_t Func = 0; Func < __dft.NumFuncs; Func++) { |
| 118 | bool HasAny = false; |
| 119 | for (size_t Iter = 0; Iter < NumIterations; Iter++) |
| 120 | if (FuncLabelsPerIter[Iter][Func]) |
| 121 | HasAny = true; |
| 122 | if (!HasAny) |
| 123 | continue; |
| 124 | fprintf(Out, "F%zd ", Func); |
| 125 | size_t LenOfLastIteration = kNumLabels; |
| 126 | if (auto Tail = InputLen % kNumLabels) |
| 127 | LenOfLastIteration = Tail; |
| 128 | for (size_t Iter = 0; Iter < NumIterations; Iter++) |
| 129 | PrintBinary(Out, FuncLabelsPerIter[Iter][Func], |
| 130 | Iter == NumIterations - 1 ? LenOfLastIteration : kNumLabels); |
| 131 | fprintf(Out, "\n"); |
| 132 | } |
| 133 | } |
| 134 | |
| 135 | static void PrintCoverage(FILE *Out) { |
| 136 | ssize_t CurrentFuncGuard = -1; |