Hi Honza, I did not find any differences in tree level dumps. These are the dump differences in IPA
In gimple-fold.c.000i.cgraph (--Snip--) < _Z25gimple_build_omp_continueP9tree_nodeS0_/761 (gimple_build_omp_continue(tree_node*, tree_node*)) @0x3ff7ebda548 --- > _Z25gimple_build_omp_continueP9tree_nodeS0_/761 > (gimple_build_omp_continue(tree_node*, tree_node*)) @0x3ff92b5a548 28865c28865 < _Z26gimple_build_omp_taskgroupP21gimple_statement_base/760 (gimple_build_omp_taskgroup(gimple_statement_base*)) @0x3ff7ebda400 --- > _Z26gimple_build_omp_taskgroupP21gimple_statement_base/760 > (gimple_build_omp_taskgroup(gimple_statement_base*)) @0x3ff92b5a400 28875c28875 < _Z23gimple_build_omp_masterP21gimple_statement_base/759 (gimple_build_omp_master(gimple_statement_base*)) @0x3ff7ebda2b8 --- > _Z23gimple_build_omp_masterP21gimple_statement_base/759 > (gimple_build_omp_master(gimple_statement_base*)) @0x3ff92b5a2b8 28885c28885 < _Z24gimple_build_omp_sectionP21gimple_statement_base/758 (gimple_build_omp_section(gimple_statement_base*)) @0x3ff7ebda170 --- > _Z24gimple_build_omp_sectionP21gimple_statement_base/758 > (gimple_build_omp_section(gimple_statement_base*)) @0x3ff92b5a170 (--Snip--) In gimple.c.044i.profile_estimate (--Snip--) 1987c1987 < vec<tree_node*, va_heap, vl_ptr>::qsort(int (*)(void const*, void const*)) (struct vec * const this, int (*<T10f9>) (const void *, const void *) cmp) --- > vec<tree_node*, va_heap, vl_ptr>::qsort(int (*)(void const*, void const*)) > (struct vec * const this, int (*<T10fb>) (const void *, const void *) cmp) (--Snip--) gimple.c.048i.inline (--Snip--) < min size: 6 --- > min size: 0 6590c6590 < min size: 14 --- > min size: 0 6607c6607 < min size: 28 (--Snip--) On 7 August 2014 19:14, Jan Hubicka <hubi...@ucw.cz> wrote: >> >> As a First step I compared the "objump -D" dump between >> "stage2-gcc/gimple.o" and "stage3-gcc/gimple.o". Differences are in >> LTO sections .gnu.lto_.decls.0, .gnu.lto_.symtab. >> Ref: http://paste.ubuntu.com/7949238/ > > If you see the differences already in .o files (i.e. at compile time), I > think the next > step is to produce -fdump-tree-all -fdump-ipa-all dumps of stage2-gcc/gimple.o > and stage3-gcc/gimple.o and see how they differ. > > Debugging misoptimization of LTO stage2 compiler will be interesting - I > guess we can > first try to identify what is wrong rahter than usual bisecting method... > > Honza >> >> No differences when when using "objdump -d". >> >> Next I passed "-save-temps" to stage2 and stage3 builds and compared >> the assembly files. The differences are in strings dumped via .ascii >> and ,string directives. >> >> Next I checked the flags passed to the stage 2 and stage 3 builds. It >> is same and below is the flag set being passed. >> >> -save-temps -O2 -g -flto -flto=jobserver -frandom-seed=1 >> -ffat-lto-objects -DIN_GCC -fno-exceptions -fno-rtti >> -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings >> -Wcast-qual -Wmissing-forma t-attribute -pedantic >> -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings >> >> Can you please suggest on how to fix/debug further these comparison >> failures in GCC 4.9? >> >> regards, >> Venkat.