This is an archive of the discontinued LLVM Phabricator instance.

Add macro-fusion hook in MIScheduler and support cluster instructions scheduling in PostRAScheduler
AbandonedPublic

Authored by nemanjai on Jul 10 2016, 1:36 AM.

Details

Summary
  • Allow targets plug their own macro-fusion logic to replace default one in default pre-scheduler (i.e. ScheduleDAGMILive).
  • Teach PostRAScheduler being able to schedule cluster instructions in adjacent fashion.

Diff Detail

Event Timeline

cycheng updated this revision to Diff 63417.Jul 10 2016, 1:36 AM
cycheng retitled this revision from to Add macro-fusion hook in MIScheduler and support cluster instructions scheduling in PostRAScheduler.
cycheng updated this object.
cycheng added a subscriber: llvm-commits.
amehsan added inline comments.Jul 11 2016, 8:09 AM
lib/CodeGen/MachineScheduler.cpp
3108–3129

Why not adding Target specific code to create scheduler objects and add any mutations that we need, there? What we want to do here, is Target specific and I think sooner or later we will have other target specific requirements to satisfy when creating scheduler, strategy and mutations. Why do you want to do this here?

lib/CodeGen/PostRASchedulerList.cpp
465–471

I have doubts that we need to make any changes in this file. We want to switch to post-ra MIScheduler. So I don't see much benefit in making changes here.

cycheng added inline comments.Jul 11 2016, 6:30 PM
lib/CodeGen/MachineScheduler.cpp
3108–3129

Because EnableMacroFusion is true by default, so we will call MacroFusion::apply by default, also it looks like a general feature across different targets, so I think we should also be able to hook customized MacroFusion for different targets.

amehsan edited edge metadata.Jul 16 2016, 5:03 PM

For two of the three files that I checked, the changes here appear in D22194 as well. Did you mean to abandon this patch and use D22194 instead?

For two of the three files that I checked, the changes here appear in D22194 as well. Did you mean to abandon this patch and use D22194 instead?

No, because D22194 is depend on D22193, I don't know whether I can make a diff based on D22193, so I just make both patches against on master.
Is there any more appropriate way to express this kind of dependency on Phabricator?

nemanjai commandeered this revision.Feb 2 2018, 6:01 AM
nemanjai edited reviewers, added: cycheng; removed: nemanjai.
nemanjai abandoned this revision.Feb 2 2018, 6:02 AM

There are no current plans to implement fusion. Abandoning this patch.