[PATCH] D30368: [ARM] Check correct instructions for load/store rescheduling.
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 28 11:29:59 PST 2017
efriedma added a comment.
Sorry; added a better description to the summary. Quoting for the mailing list:
> See also https://reviews.llvm.org/D30124. I don't think this can actually cause a miscompile, but it's not obvious.
>
> This code starts from the high end of the sorted vector of offsets, and works backwards: it tries to find contiguous offsets, process them, then pops them from the end of the vector. Most of the code agrees with this order of processing, but one loop doesn't: it instead processes elements from the low end of the vector (which are nodes with unrelated offsets). Fix that loop to process the correct elements.
>
> This has a few implications. One, we don't incorrectly return early when processing multiple groups of offsets in the same block (which allows rescheduling prera-ldst-insertpt.mir). Two, we pick the correct insert point for loads, so they're correctly sorted (which affects the scheduling of vldm-liveness.ll). I think it might also impact some of the heuristics slightly.
Repository:
rL LLVM
https://reviews.llvm.org/D30368
More information about the llvm-commits
mailing list