We currently assume profile hash conflicts will be caught by an upfront check and we assert for the cases that escape the check. The assumption is not always true as there are chances of conflict. This patch prints a warning and skips annotating the function for the escaped cases,.
Details
Diff Detail
Event Timeline
lib/Transforms/Instrumentation/PGOInstrumentation.cpp | ||
---|---|---|
1155 | this is profile mismatch, usually from stale profile (source change), or using the profile generated from other binaries. Is this the standard message for mismatch? We have the check here for the cases that escapes funchash conflict detection. |
lib/Transforms/Instrumentation/PGOInstrumentation.cpp | ||
---|---|---|
1155 | When there is a hash conflict, it means the function name is also the same. Perhaps add more information: " the profile may be stale or there is a function name collision". |
update the comments about the return value.