[ODE] Report: performances, OPCODE, x86-64, GCC 4.0, etc.

Tanguy Fautre tanguy.fautre at spaceapplications.com
Tue Apr 5 17:50:37 MST 2005

Adam D. Moss wrote:
>> So here are the new results:
>> 32 bits GCC 3.3: 4.2 fps
>> 64 bits GCC 3.3: 2.2 fps
>> 64 bits GCC 4.0: 7.0 fps
> That's amazing.  32 bits GCC 4.0 would be an interesting test
> to see how much of that boost is 64-bit specific!

But keep in mind that the 32 bits GCC 3.3 build is directly from the 
Debian package (which is a shared object library), while I compiled the 
others from the CVS. Hence it is not a fair apples-to-apples comparison.

For the moment, I think that GCC 4.0 is simply doing a better job on 
OPCODE with -O1 than GCC 3.x. I don't think the boost itself is 64 bits 

To be tested. ;-)

> I agree that this bug seems to have been prevailant through
> enough big GCC releases now to indicate that this may be an OPCODE
> problem.  The specific OPCODE code module which has the problem
> has been isolated in the past (and I thought I added a GCC flag
> workaround for that module, but now I can't find it; that may
> have been clobbered when OPCODE ceased to need to be built
> separately).  Anyway, a deep list archives search should
> hopefully turn it up...

Here is what ODE Makefile says:

# GCC versions 3.X generate bad code for some modules
# with -O2, so we use -O1 until we get this tied down a bit more.
# There are at least two problematic code modules with -O2, one of
# which is OPC_TreeCollider (if you identify the other, which causes
# problems with trimesh-trimesh collisions, then let us know).

Once you found both modules, good luck finding where the problem comes 
from. :-(

PS: Looking at OPCODE code tells me we should clean it up once. There is 
way too much noise (defines mainly) for it to be understandable and 



More information about the ODE mailing list