inconsistent code generation at -m32 with -fprofile-generate -D_PROFILE_GENERATE

Jack Howarth
Sat Dec 15 14:33:00 GMT 2012

   It appears that the gcc.dg/tree-prof/pr44777.c execution, -fprofile-generate -D_PROFILE_GENERATE 
testcase exposes inconsistent code generation on both x86_64 darwin and x86_64 linux at -m32.
The darwin linker developer looked at the crashing pr44777.exe executable that this testcase

I looked at this further was surprised to find that each time the compilation...

/home/howarth/work-gcc/gcc/xgcc -B/home/howarth/work-gcc/gcc/
-fno-diagnostics-show-caret   -O0 -fprofile-generate -D_PROFILE_GENERATE  -lm  
-m32 -o /home/howarth/work-gcc/gcc/testsuite/gcc/pr44777.x01 --save-temps

produces slightly different assembly...

--- pr44777.s.orig    2012-12-15 09:40:32.507293659 -0500
+++ pr44777.s    2012-12-15 09:40:45.323922586 -0500
@@ -250,7 +250,7 @@
     .long    875575397
     .long    0
-    .long    -1627233075
+    .long    -1627220258
     .long    .LC0
     .long    __gcov_merge_add
     .long    0

but always at this location. Can you take a look at this under linux? You won't
see the crashing executable but you will see the variable assembly generation
in the -D_PROFILE_GENERATE compile.

More information about the Gcc mailing list