For interative sample-pgo, if a hot call site is inlined in the profiling binary, we should inline it in before profile annotation in the backend. Before that, the compile phase first collects all GUIDs that needs to be imported and creates virtual "hot" call edge in the summary. However, "hot" is not good enough to guarantee the callsites get inlined. This patch introduces "critical" call edge, and assign much higher importing threshold for those edges.
Details
Details
Diff Detail
Diff Detail
- Build Status
Buildable 8030 Build 8030: arc lint + arc unit
Event Timeline
Comment Actions
LGTM. It might be nicer to rework the FunctionImport logic to ignore thresholds for edges marked critical, but this seems like a reasonable hammer in the meantime.
Comment Actions
Missing test showing the import happening on critical and not without. Right now the test you provided only shows that the "critical" flag is encoded in the binary. The change in the function importer is not tested, unless I missed something.
include/llvm/IR/ModuleSummaryIndex.h | ||
---|---|---|
56 | Some documentation on Critical at this level could be nice. |
Some documentation on Critical at this level could be nice.