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





    

Reply via email to