On 02/07/2018 09:58 AM, Franz Sirl wrote:
> this is the result of an attempt to minimize the differences between the
> compile results of a Linux-based and a Cygwin64-based powerpc-eabi cross
> The method used was:
> - find the -fverbose-asm assembler files that differ
> - compile that file again on both platforms with
> -O2 -g3 -fdump-tree-all-all -fdump-rtl-all -fdump-noaddr
> - look for the first dump file with differences and check that pass
> for qsort's
> - stabilize the compare functions
> With some help on IRC to better understand the passes and some serious
> debugging of GCC I came up with this patch. On the tested codebase the
> differences in the assembler sources are now down to 0.
> If the various pass maintainers have better ideas on how to stabilize
> the compare functions, I'll be happy to verify them on the codebase.
> For the SRA patch I already have an alternate version with an additional
> ID member.
> Bootstrapped on linux-x86_64, no testsuite regressions.
> Franz Sirl
> 2018-02-07 Franz Sirl <franz.sirl-ker...@lauterbach.com>
> * ira-build.c (object_range_compare_func): Stabilize sort.
> * tree-sra.c (compare_access_positions): Likewise.
> * varasm.c (output_object_block_compare): Likewise.
> * tree-ssa-loop-ivopts.c (group_compare_offset): Likewise.
> (struct iv_common_cand): New member.
> (record_common_cand): Initialize new member.
> (common_cand_cmp): Use new member to stabilize sort.
> * tree-vrp.c (struct assert_locus): New member.
> (register_new_assert_for): Initialize new member.
> (compare_assert_loc): Use new member to stabilize sort.
This looks pretty reasonable. I don't think you've contributed much
recently, do you still have write access to the repository?