On 02/07/2018 09:58 AM, Franz Sirl wrote: > Hi, > > 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 > toolchain. > 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. > > Comments? > > 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?
jeff