This is an archive of the discontinued LLVM Phabricator instance.

[clang][CallGraphSection] Add type id metadata to indirect call and targets
AbandonedPublic

Authored by necipfazil on Jul 16 2021, 11:43 AM.

Details

Reviewers
None
Summary

Create and add generalized type identifier metadata to indirect calls,
and to functions that may be target to indirect calls.

To avoid metadata loss, indirect callsite type identifier metadata are
carried with operand bundles.

Type identifiers will be used by the back-end to construct the call
graph section to precisely represent the possible targets for indirect calls.
The type information is deliberately pulled from the front-end to have extra
precision since some type information is lost at IR, and to ensure
consistent type identifiers between object files compiled at different
times (as C/C++ standards require language-level types to match).

Diff Detail

Event Timeline

necipfazil created this revision.Jul 16 2021, 11:43 AM
necipfazil requested review of this revision.Jul 16 2021, 11:43 AM
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptJul 16 2021, 11:43 AM
necipfazil abandoned this revision.Jul 16 2021, 11:47 AM

Please disregard this revision.