gcc-4.9.1 generating different code between two successive builds

Georg-Johann Lay avr@gjlay.de
Wed Dec 30 15:33:00 GMT 2015


Cole schrieb:
> Hi,
> 
> I am busy trying to generate a package for gcc that is consistent
> between two successive builds, and I am now down to the final few
> files.
> 
> I am stuck with the file: cilk-abi-cilk-for.o, which is obviously
> built with -O2, but between two successive builds, the assembly code
> generated is different. Please refer to [1] for output and details.
> 
> Would anyone have any suggestions that I might be able to try to get
> the file to generate the same assembly code?

IIRC the mentioned problem with qsort is in the register allocator as it 
sorts registetr classes according to their cost.  If two different 
classes have the same cost then the result depends on the qsort 
implementation.  This can lead to different code across different 
platforms, but the code built on one specific platform should be the same.

Some parts of the compiler use the address of objects to compute hashes, 
but I don't remember which part(s) actually do this.  That technique can 
lead to different code for different runs of the compiler even on the 
same system.  This is hard to reproduce as it depends on how the OS is 
supplying memory, and it might depend on the "history" of the machine 
and the actual OS.

Johann



More information about the Gcc mailing list