This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Don't confuse the scheduler for very large VLDMDIA etc.
ClosedPublic

Authored by efriedma on Mar 26 2019, 11:59 AM.

Details

Summary

ARMBaseInstrInfo::getNumLDMAddresses is making bad assumptions about the memory operands of load and store-multiple operations. This doesn't really fix the problem properly, but it's enough to prevent crashing, at least.

Fixes https://bugs.llvm.org/show_bug.cgi?id=41231 .

Diff Detail

Repository
rL LLVM

Event Timeline

efriedma created this revision.Mar 26 2019, 11:59 AM
Herald added a project: Restricted Project. · View Herald TranscriptMar 26 2019, 11:59 AM
peter.smith accepted this revision.Mar 27 2019, 3:13 AM

I've tentatively marked this as LGTM, if there are any disagreements please feel free to override. If I've understood correctly the only uses of that function are from the ARMSchedule*.td files which will treat larger number of registers as if they were the maximum size available. I think that this, or reverting the previous patch, are the most plausible short term ways to fix the bots (I've checked I can do a 2-stage build).

This revision is now accepted and ready to land.Mar 27 2019, 3:13 AM
This revision was automatically updated to reflect the committed changes.