This is an archive of the discontinued LLVM Phabricator instance.

[BOLT] Fragment all blocks (not just outlineable blocks)
ClosedPublic

Authored by FPar on Aug 22 2022, 5:16 PM.

Details

Summary

To enable split strategies that require view of the entire CFG (e.g. to
estimate cost of path from entry block), with this patch, all blocks of
a function are passed to SplitStrategy::fragment. Because this might
move non-outlineable blocks into a split fragment, these blocks are
moved back into the main fragment after fragmenting. This also gives
strategies the option to specify whether empty fragments should be
kept or removed.

Diff Detail

Event Timeline

FPar created this revision.Aug 22 2022, 5:16 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 22 2022, 5:16 PM
Herald added a subscriber: ayermolo. · View Herald Transcript
FPar requested review of this revision.Aug 22 2022, 5:16 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 22 2022, 5:16 PM
FPar edited the summary of this revision. (Show Details)Sep 8 2022, 2:04 PM
maksfb accepted this revision.Sep 8 2022, 5:03 PM

LGTM

This revision is now accepted and ready to land.Sep 8 2022, 5:03 PM
This revision was automatically updated to reflect the committed changes.