http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55137
--- Comment #7 from Sebastian Huber <sebastian.hu...@embedded-brains.de> 2012-11-06 15:50:38 UTC --- (In reply to comment #6) > What I mean that for your testcase while you have s: .zero 8 > instead of s: .long 4, 16399, there is also dynamic initialization: > movl $4, s(%rip) > movl $16399, s+4(%rip) > (at -O2, at -O0 worse). Ok, I should have looked at the assembler output. I hit this problem on the RTEMS operating system. It uses a supposed to be statically initialized configuration structure for system initialization. The global constructors run in the initialization task (which would dynamically initialize the configuration structure now). To be able to start the initialization task, we need the configuration. >From my point of view this dynamic initialization is pretty bad here.