This is an archive of the discontinued LLVM Phabricator instance.

[ModuloSchedule] Add interface call to accept/reject SMS schedules
ClosedPublic

Authored by dpenry on Aug 18 2022, 1:10 PM.

Details

Summary

This interface allows a target to reject a proposed
SMS schedule. For Hexagon/PowerPC, all schedules
are accepted, leaving behavior unchanged. For ARM,
schedules which exceed register pressure limits are
rejected.

Also, two RegisterPressureTracker methods now need to be public so
that register pressure can be computed by more callers.

Reapplication of D128941/(reversion:D132037) with small fix.

Diff Detail

Event Timeline

dpenry created this revision.Aug 18 2022, 1:10 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 18 2022, 1:10 PM
dpenry requested review of this revision.Aug 18 2022, 1:10 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 18 2022, 1:10 PM
dpenry edited the summary of this revision. (Show Details)Aug 18 2022, 1:12 PM
This revision was not accepted when it landed; it landed in state Needs Review.Aug 22 2022, 12:11 PM
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
kuaizilh added inline comments.
llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
6959

why this should be setted by Stg - Stg2? is it related to the previous code?"CrossIterationNeeds.insert(std::make_pair(Reg.id(), IterNeed())).first->second |= ((1 << (OStg - Stg)) - 1);"