This is an archive of the discontinued LLVM Phabricator instance.

[New PM][PassInstrumentation] Adding PassInstrumentation to the AnalysisManager runs
ClosedPublic

Authored by fedor.sergeev on Aug 26 2018, 5:10 PM.

Details

Summary

As a prerequisite to pass-times implementation which needs to time both passes
and analyses, adding instrumentation points to the Analysis Manager.
The are two functional differences between Pass and Analysis instrumentation:

  • the latter does not increment pass execution counter
  • it does not provide ability to skip execution of the corresponding analysis

Diff Detail

Repository
rL LLVM

Event Timeline

fedor.sergeev created this revision.Aug 26 2018, 5:10 PM

ehm... forgot to commit before the update

no major changes, just rebased

adding unittest changes

adding const to Analysis argument of callbacks.

philip.pfaffe accepted this revision.Sep 14 2018, 1:52 PM

This looks entirely straightforward.

test/Other/new-pm-thinlto-defaults.ll
69 ↗(On Diff #165523)

Why does this change?

This revision is now accepted and ready to land.Sep 14 2018, 1:52 PM
fedor.sergeev added inline comments.Sep 14 2018, 2:05 PM
test/Other/new-pm-thinlto-defaults.ll
69 ↗(On Diff #165523)

Since this analysis is now run for analyses as well, order of executions somewhat changes (naturally, those analyses that hit cache are not run, including passinstrumenation one). Full debugging output made perfect sense to me, though it really took some time to figure out a proper set of checks that works for all RUNs, and now I honestly do not remember exact sequence.

This revision was automatically updated to reflect the committed changes.