This is an archive of the discontinued LLVM Phabricator instance.

[MachineScheduler] Check pending instructions when an instruction is scheduled
ClosedPublic

Authored by jmolloy on Apr 18 2019, 3:41 AM.

Details

Summary

Pending instructions that may have been blocked from being available by the HazardRecognizer may no longer may not be blocked any more when an instruction is scheduled; pending instructions should be re-checked in this case.

No testcase as no in-tree targets have this behavior and the CheckPending behavior (AFAICT) is intended only for compile performance, not correctness.

Diff Detail

Repository
rL LLVM

Event Timeline

jmolloy created this revision.Apr 18 2019, 3:41 AM
Herald added a project: Restricted Project. · View Herald TranscriptApr 18 2019, 3:42 AM

Pending instructions that may have been blocked from being available by the HazardRecognizer may no longer may not be blocked any more when an instruction is scheduled; pending instructions should be re-checked in this case.

You mean in the same cycle? Are you using the hazard recognizer to enforce some kind of co-scheduling requirement? I ask because we already set CheckPending to true in bumpCycle.

Hi Hal,

Yes, that's right. The architecture in question is VLIW, so there is plenty of available parallelism per cycle and esoteric constraints.

Cheers,

James

hfinkel accepted this revision.Apr 18 2019, 12:27 PM

Hi Hal,

Yes, that's right. The architecture in question is VLIW, so there is plenty of available parallelism per cycle and esoteric constraints.

Okay, can you please update the comment to make it clear that this is specifically to support this kind of situation?

Otherwise, I think this is fine.

Cheers,

James

This revision is now accepted and ready to land.Apr 18 2019, 12:27 PM
This revision was automatically updated to reflect the committed changes.

Thanks Hal! r358743.