QUOTE
Originally posted by ff123
What, exactly, is causing the difference in bitrates?
Is there some sort of real-time clock in the code somewhere? A difference in dynamic memory allocation? Less accurate floating-point calculations?
They have to do with changes the compiler makes to the code itself during aggressive optimizations. I'm not sure specifically what the differences in that regard are between GCC and MSVC, but as for ICL, it uses some extremely aggressive optimizations. It will reorder functions, change divisions to multiplications and stuff like that (I think), slightly alter other math related functions for speed at a slight cost in accuracy, make automatic use of mmx and sse (which will further alter some math functions), some other areas are modified as well such as conversions between floating point variables and integers (speed over accuracy), etc.
Most of the stuff in ICL you can disable progressively which will continuously result in a drop in speed until the output is much closer to MSVC. So far though, even with the very aggressive options used I haven't noticed a degredation in quality yet... only an increase in bitrate.