Since we don't break BBs for function calls. We might get some insane counts
(wrap of unsigned) in the presence of noreturn calls.
This patch sets these counts to zero instead of the wrapped number.
Differential D27602
[PGO] Fix insane counts due to nonreturn calls xur on Dec 8 2016, 4:54 PM. Authored by
Details Since we don't break BBs for function calls. We might get some insane counts This patch sets these counts to zero instead of the wrapped number.
Diff Detail
Event TimelineComment Actions Using the test case as the example: exit() is called in bar0. The instrumentation is in bb2 (which calls bar0), bb4 and bb5. The real issue is that we don't have an edge from bar0 to the fake exit. We don't know if bar0 has a noreturn call. We know this limitation when implementing IR PGO and we chose to tolerate this. Comment Actions lgtm
|
Can you explain how this happens? For non return calls, should an edge be added from the call's BB to exit bb?