Without this change I believe the mi scheduler treats these transformed loads/stores as scheduling barriers. Therefore, I don't think we want to just drop the MMOs.
Chad
Paths
| Differential D16369
[AArch64] Don't drop MMOs in the load/store optimizer when forming ldp/stp instructions or pre-/post-index loads/stores. ClosedPublic Authored by mcrosier on Jan 20 2016, 12:22 PM.
Details
Diff Detail Event TimelineComment Actions Looks like this change is exposing a correctness issue in the MI scheduler. Investigating.. Comment Actions Per Junmo. I'm going to defer the part that adds the MMOs to the unscaled pairs until D8705 lands. This revision is now accepted and ready to land.Jan 28 2016, 7:17 AM Comment Actions Can't all the other added memref cases also potentially run into the scheduler bug you're seeing? Comment Actions
It's not a problem in this case because we're just copying a single MMO from the ldr/str to the pre-/post-index equivalent. We run into problems only with the paired instructions where we have multiple MMOs.
Revision Contents
Diff 45455 lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
test/CodeGen/AArch64/aarch64-a57-fp-load-balancing.ll
|
For consistency, could you change this to drop the "MIB->" and just build off the above expr as was done in the change above?