This is an archive of the discontinued LLVM Phabricator instance.

[ThinLTO] Ignore callee edge to global variable
ClosedPublic

Authored by tejohnson on Jun 7 2023, 3:50 PM.

Details

Summary

Since the symbols in the ThinLTO summary are indexed by GUID we can end
up in corner cases where a callee edge in the combined index goes to a
summary for a global variable. This could happen in the case of hash
collisions, and in the case of SamplePGO profiles could potentially happen
due to code changes (since we synthesize call edges to GUIDs that were
inlined callees in the profiled code).

Handle this by simply ignoring any non-FunctionSummary callees.

Diff Detail

Event Timeline

tejohnson created this revision.Jun 7 2023, 3:50 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 7 2023, 3:50 PM
tejohnson requested review of this revision.Jun 7 2023, 3:50 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 7 2023, 3:50 PM
mtrofin accepted this revision.Jun 7 2023, 5:02 PM

lgtm

This revision is now accepted and ready to land.Jun 7 2023, 5:02 PM
This revision was automatically updated to reflect the committed changes.