This is an archive of the discontinued LLVM Phabricator instance.

MachineScheduler: Export function to construct "default" scheduler.
ClosedPublic

Authored by MatzeB on Nov 22 2016, 12:27 PM.

Details

Summary

This makes the createGenericSchedLive() function that constructs the
default scheduler available for the public API. This should help when
you want to get a scheduler and the default list of DAG mutations.

This also shrinks the list of default DAG mutations:
{Load|Store}ClusterDAGMutation and MacroFusionDAGMutation are no longer
added by default. Targets can easily add them if they need them. It also
makes it easier for targets to add alternative/custom macrofusion or
clustering mutations while staying with the default
createGenericSchedLive(). It also make the
TargetInstrInfo::enableClusterLoads()/enableClusterStores() callbacks unnecessary.

Diff Detail

Repository
rL LLVM

Event Timeline

MatzeB updated this revision to Diff 78924.Nov 22 2016, 12:27 PM
MatzeB retitled this revision from to MachineScheduler: Export function to construct "default" scheduler..
MatzeB updated this object.
MatzeB added a reviewer: atrick.
MatzeB set the repository for this revision to rL LLVM.
MatzeB added a subscriber: llvm-commits.
atrick accepted this revision.Nov 22 2016, 4:30 PM
atrick edited edge metadata.

This change is consistent with the original intention of the design.

Sometimes it's nice if the cmdline flag overrides default behavior in either direction (disables or enables the feature independent of the target's default choice). That way we don't end up with redundant target-specific cmdline options. However, in this case I think it's not worth the complexity. It's not hard to change the target source to enable a DAG mutation and recompile.

This revision is now accepted and ready to land.Nov 22 2016, 4:30 PM
This revision was automatically updated to reflect the committed changes.