http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436

--- Comment #39 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-11-13 
18:42:01 UTC ---
I ran comparsion on x86-64 comparing mainline with GCC 4.3.
We get bigger sum of object sizes, but results are not too bad overall.
Main code size grains are:
222   jikespg-1.3src/remspb
247   OpenTCP-1.0.4smtp/smtp_clientb
248   linux-2.4.23-pre3-testplatformarch/testplatform/kernel/setupb
256   linux-2.4.23-pre3-testplatformlib/rbtreeb
261   teem-1.6.0-srcsrc/bane/hvolb
262   jikespg-1.3src/produceb
265   mpeg2dec-0.3.1libvo/yuv2rgbb
267   zlib-1.1.4treesb
280   linux-2.4.23-pre3-testplatformnet/ipv4/tcp_ipv4b
287   jikespg-1.3src/lpgparseb
290   teem-1.6.0-srcsrc/nrrd/reorderb
295   linux-2.4.23-pre3-testplatformarch/testplatform/mm/faultb
295   linux-2.4.23-pre3-testplatformlib/zlib_deflate/deftreeb
306   jpeg-6bjdcoefctb
311   linux-2.4.23-pre3-testplatformkernel/exitb
315   teem-1.6.0-srcsrc/nrrd/test/axb
320   linux-2.4.23-pre3-testplatformfs/nfs/procb
320   linux-2.4.23-pre3-testplatformnet/ipv4/tcpb
324   cg_compiler_opensrccompileb
337   flex-2.5.31miscb
368   teem-1.6.0-srcsrc/nrrd/ccb
374   teem-1.6.0-srcsrc/air/enumb
376   linux-2.4.23-pre3-testplatformfs/locksb
377   flex-2.5.31parseb
388   teem-1.6.0-srcsrc/gage/updateb
400   teem-1.6.0-srcsrc/gage/sclfilterb
414   OpenTCP-1.0.4pop3/pop3_clientb
417   teem-1.6.0-srcsrc/hest/parseHestb
421   teem-1.6.0-srcsrc/nrrd/filtb
432   libmspackmspack/lzxdb
433   cg_compiler_opensrctokensb
442   compilerscannerb
446   linux-2.4.23-pre3-testplatformkernel/schedb
480   linux-2.4.23-pre3-testplatformkernel/signalb
510   teem-1.6.0-srcsrc/gage/miscGageb
530   linux-2.4.23-pre3-testplatformfs/nfsd/statsb
532   teem-1.6.0-srcsrc/nrrd/supersetb
534   jikespg-1.3src/spacetabb
578   ttt-0.10.1.preprocsrc/connect4b
580   teem-1.6.0-srcsrc/echo/boundsb
601   cg_compiler_opensrcconstfoldb
699   jikespg-1.3src/globalsb
758   bzip2-1.0.2blocksortb
790   jpeg-6btransuppb
810   teem-1.6.0-srcsrc/nrrd/accessorsb
823   flex-2.5.31scanb
950   linux-2.4.23-pre3-testplatformnet/ipv4/routeb
1069   ttt-0.10.1.preprocsrc/tttb
1072   linux-2.4.23-pre3-testplatformkernel/sysb
1172   libmspackmspack/qtmdb
1453   linux-2.4.23-pre3-testplatformnet/ipv4/tcp_inputb
1643   bzip2-1.0.2compressb
2009   teem-1.6.0-srcsrc/nrrd/convertNrrdb
16144   linux-2.4.23-pre3-testplatformarch/testplatform/kernel/init_taskb

init_taskb is bogus:
union task_union init_task_union __attribute__((aligned(16384))) =
  { { state: 0, flags: 0, sigpending: 0, addr_limit: ((mm_segment_t) { (0) }),
exec_domain: &default_exec_domain, lock_depth: -1, counter: (10*100/100), nice:
(0), policy: 0, mm: ((void *)0), active_mm: &init_mm, cpus_runnable: ~0UL,
cpus_allowed: ~0UL, run_list: { &(init_task_union.task.run_list),
&(init_task_union.task.run_list) }, next_task: &init_task_union.task,
prev_task: &init_task_union.task, p_opptr: &init_task_union.task, p_pptr:
&init_task_union.task, thread_group: { &(init_task_union.task.thread_group),
&(init_task_union.task.thread_group) }, wait_chldexit: { lock: (spinlock_t) {
}, task_list: { &(init_task_union.task.wait_chldexit).task_list,
&(init_task_union.task.wait_chldexit).task_list }, }, real_timer: { function:
it_real_fn }, cap_effective: (~0 & ~(1 << (8))), cap_inheritable: (0),
cap_permitted: (~0), keep_capabilities: 0, rlim: { { (~0UL), (~0UL) }, {
(~0UL), (~0UL) }, { (~0UL), (~0UL) }, { (8*1024*1024), (~0UL) }, { 0, (~0UL) },
{ (~0UL), (~0UL) }, { 0, 0 }, { 1024, 1024 }, { (~0UL), (~0UL) }, { (~0UL),
(~0UL) }, { (~0UL), (~0UL) }, }, user: (&root_user), comm: "swapper", thread:
{{0,{{0},{0},{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0}}}, 0, 0,
sizeof((init_task_union.stack)) + (addr_t) &(init_task_union.stack), ((unsigned
long)((addr_t) &swapper_pg_dir[0]) + (0x4|0x1|0x40|0x100)), 0,0,0, (per_struct)
{{{{0,}}},0,0,0,0,{{0,}}}, 0, 0, 0 }, fs: &init_fs, files: &init_files,
sigmask_lock: (spinlock_t) { }, sig: &init_signals, pending: { ((void *)0),
&init_task_union.task.pending.head, {{0}}}, blocked: {{0}}, alloc_lock:
(spinlock_t) { }, journal_info: ((void *)0), } };

tsk... Looks like GCC 4.3 ignored overly large alignments of variables.

Reply via email to