This is an archive of the discontinued LLVM Phabricator instance.

[MachineInstr] Add isCandidateForCallSiteEntry predicate
ClosedPublic

Authored by vsk on Feb 6 2020, 1:20 PM.

Details

Summary

Add the isCandidateForCallSiteEntry predicate to MachineInstr to
determine whether a DWARF call site entry should be created for an
instruction.

For now, it's enough to have any call instruction that doesn't belong to
a blacklisted set of opcodes. For these opcodes, a call site entry isn't
meaningful.

c.f. https://reviews.llvm.org/D74121, which takes a whitelisting approach.

Diff Detail

Event Timeline

vsk created this revision.Feb 6 2020, 1:20 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 6 2020, 1:20 PM
vsk updated this revision to Diff 243025.Feb 6 2020, 3:16 PM
  • Add back IgnoreBundle.
vsk added a comment.Feb 6 2020, 3:37 PM

I went ahead with the rebases for local testing, so I thought I'd share the patches here.

Rebased version of D73700:

Rebased version of D74122:

djtodoro accepted this revision.Feb 7 2020, 2:31 AM

Hi @vsk, thanks for this!

If this defines all the instructions we want to avoid, this is better approach.

This revision is now accepted and ready to land.Feb 7 2020, 2:33 AM
vsk added a comment.Feb 7 2020, 9:36 AM

Hi @vsk, thanks for this!

If this defines all the instructions we want to avoid, this is better approach.

Yes, I believe this blacklist is complete for the currently supported set of targets. In the future, if we need to plumb target-specific information into this predicate, a TargetInstrInfo will be available via getMF()->getSubtarget().getInstrInfo().

This revision was automatically updated to reflect the committed changes.