[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