Solve the endless loop caused by iterative guess. The main function of this option is guessEdgeByIterativeApproach, where the do while loop involves guessPredEdgeCounts and guessSuccessEdgeCounts. In some scenarios, the do while loop will fall into an endless loop. The reason is that although the GuessedPredEdgeCounts function has guessed the pred-edges counts, GuessedArcs does not insert the corresponding BB block, resulting in the changed variable always being true.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
Thanks for the context, the fix looks good to me. Unfortunately, we can't check in the test as is because we can't guarantee the .fdata file will always make sense -- we would typically write this test in assembly language to guarantee offsets remain the same.
It's fine to commit this without the test as the fix is pretty clear now.