Maxim Kuvyrkov wrote: Note I've committed: https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00309.html which does change qsort to (qsort) like Jakub proposed.
> I think that this is the best solution so far. Could you add a comment like > the following? > == > Ideally, we would call autopref_rank_data() here, but we can't since it is > not guaranteed > to return transitive results fro multi_mem_insns. We use an approximation > here and rely > on lookahead_guard below to force instruction order according to > autopref_rank_data(). > == The issue is that autopref_rank_data() doesn't do anything useful. It checks for overlaps which shouldn't happen much, if at all. And as discussed declaring a comparison as "unordered" is simply not possible. lookahead_guard can't fix things up either, so there is really no point in keeping this function. Similarly all the min/max offset calculations are redundant even if we assume the offsets in a LDP/STP instruction are completely random. Wilco