public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
@ 2010-11-10 2:36 ` hubicka at gcc dot gnu.org
2010-11-11 22:09 ` hubicka at gcc dot gnu.org
` (11 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: hubicka at gcc dot gnu.org @ 2010-11-10 2:36 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
--- Comment #37 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-11-10 02:35:23 UTC ---
Author: hubicka
Date: Wed Nov 10 02:35:19 2010
New Revision: 166517
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166517
Log:
PR tree-optimization/40436
* ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
* tree-inline.c (estimate_num_insns): Inexpensive builtins are like
normal instructions; be sure bultin is not implemented in this file;
compute non-zero return cost.
(init_inline_once): Reduce builtin_call_cost to 1; set return cost.
* tree-inline.h (eni_weights_d): Add return cost.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-inline.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/i386/recip-vec-sqrtf-avx.c
trunk/gcc/tree-inline.c
trunk/gcc/tree-inline.h
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
2010-11-10 2:36 ` [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852 hubicka at gcc dot gnu.org
@ 2010-11-11 22:09 ` hubicka at gcc dot gnu.org
2010-11-13 18:53 ` hubicka at gcc dot gnu.org
` (10 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: hubicka at gcc dot gnu.org @ 2010-11-11 22:09 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
--- Comment #38 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-11-11 22:08:31 UTC ---
Author: hubicka
Date: Thu Nov 11 22:08:26 2010
New Revision: 166624
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166624
Log:
PR tree-optimize/40436
* gcc.dg/tree-ssa/inline-5.c: New testcase.
* gcc.dg/tree-ssa/inline-6.c: New testcase.
* ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
(eliminated_by_inlining_prob): ... this one; return 50% probability for
SRA.
(estimate_function_body_sizes): Update use of eliminated_by_inlining_prob;
estimate static function size for 2 instructions.
Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/inline-5.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/inline-6.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-inline.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
2010-11-10 2:36 ` [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852 hubicka at gcc dot gnu.org
2010-11-11 22:09 ` hubicka at gcc dot gnu.org
@ 2010-11-13 18:53 ` hubicka at gcc dot gnu.org
2010-11-13 19:14 ` hubicka at gcc dot gnu.org
` (9 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: hubicka at gcc dot gnu.org @ 2010-11-13 18:53 UTC (permalink / raw)
To: gcc-bugs
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.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2010-11-13 18:53 ` hubicka at gcc dot gnu.org
@ 2010-11-13 19:14 ` hubicka at gcc dot gnu.org
2010-11-14 9:14 ` hubicka at gcc dot gnu.org
` (8 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: hubicka at gcc dot gnu.org @ 2010-11-13 19:14 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
--- Comment #40 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-11-13 19:02:03 UTC ---
Ahh, got the signs wrong. Those was main wins, main growths are
-3101 linux-2.4.23-pre3-testplatformfs/ext3/superb
-1622 compilervasb
-1597 linux-2.4.23-pre3-testplatformdrivers/char/n_ttyb
-1385 teem-1.6.0-srcsrc/limn/test/soidb
-1321 linux-2.4.23-pre3-testplatformmm/filemapb
-1287 linux-2.4.23-pre3-testplatformfs/ext3/iallocb
-1116 linux-2.4.23-pre3-testplatformfs/ext3/inodeb
-1057 teem-1.6.0-srcsrc/limn/test/tpsb
-1039 cg_compiler_opensrcsupportb
-941 teem-1.6.0-srcsrc/ell/quatb
-876 teem-1.6.0-srcsrc/nrrd/winKernelb
-861 teem-1.6.0-srcsrc/nrrd/measureb
-828 OpenTCP-1.0.4ethernetb
-805 linux-2.4.23-pre3-testplatformkernel/exec_domainb
-702 jikespg-1.3src/ctabsb
-701 linux-2.4.23-pre3-testplatformfs/nfsd/vfsb
-681 linux-2.4.23-pre3-testplatformfs/bufferb
-681 linux-2.4.23-pre3-testplatformmm/memoryb
-680 teem-1.6.0-srcsrc/echo/test/trendb
-646 teem-1.6.0-srcsrc/nrrd/kernelb
-613 linux-2.4.23-pre3-testplatformnet/core/devb
-613 linux-2.4.23-pre3-testplatformnet/ipv4/igmpb
-605 bzip2-1.0.2decompressb
-601 linux-2.4.23-pre3-testplatformfs/ext3/ballocb
-577 teem-1.6.0-srcsrc/echo/colorb
-574 linux-2.4.23-pre3-testplatformmm/shmemb
-514 compilerparserb
-511 linux-2.4.23-pre3-testplatformfs/nameib
-497 linux-2.4.23-pre3-testplatformfs/pipeb
-482 linux-2.4.23-pre3-testplatformfs/jbd/transactionb
-480 linux-2.4.23-pre3-testplatformfs/nfs/writeb
-473 libpng-1.2.5pngrtranb
-456 linux-2.4.23-pre3-testplatformfs/jbd/journalb
-417 linux-2.4.23-pre3-testplatformfs/namespaceb
-414 teem-1.6.0-srcsrc/ten/tendSatinb
-405 linux-2.4.23-pre3-testplatformnet/sunrpc/xprtb
-403 cg_compiler_opensrcprintutilsb
-403 teem-1.6.0-srcsrc/echo/intxb
-396 linux-2.4.23-pre3-testplatformarch/testplatform/kernel/debugb
-383 teem-1.6.0-srcsrc/mite/rayb
-379 linux-2.4.23-pre3-testplatformnet/sunrpc/schedb
-367 linux-2.4.23-pre3-testplatformnet/netlink/af_netlinkb
-362 linux-2.4.23-pre3-testplatformmm/mmapb
-359 linux-2.4.23-pre3-testplatformnet/ipv4/af_inetb
-356 linux-2.4.23-pre3-testplatformnet/ipv4/tcp_minisocksb
-342 linux-2.4.23-pre3-testplatformnet/sunrpc/svcsockb
-333 teem-1.6.0-srcsrc/limn/qnb
-328 libpng-1.2.5pngsetb
-328 linux-2.4.23-pre3-testplatformfs/lockd/svclockb
-327 linux-2.4.23-pre3-testplatformfs/nfsd/nfs3procb
-316 linux-2.4.23-pre3-testplatformdrivers/char/memb
-315 linux-2.4.23-pre3-testplatformnet/core/neighbourb
-307 compilercgb
-305 linux-2.4.23-pre3-testplatformlib/vsprintfb
Anyway that source bove is really bogus.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
` (3 preceding siblings ...)
2010-11-13 19:14 ` hubicka at gcc dot gnu.org
@ 2010-11-14 9:14 ` hubicka at gcc dot gnu.org
2010-11-14 10:07 ` hubicka at gcc dot gnu.org
` (7 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: hubicka at gcc dot gnu.org @ 2010-11-14 9:14 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
--- Comment #41 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-11-14 09:06:41 UTC ---
Created attachment 22389
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22389
preprocessed ext/super.c
Hi,
this testcase shows that we are no longer able to optimize away ext3_sops
in
sb->s_magic = (__builtin_constant_p((__u16)((es->s_magic))) ? ({ __u16 __x =
(((es->s_magic))); ((__u16)( (((__u16)(__x) & (__u16)0x00ffU) << 8) |
(((__u16)(__x) & (__u16)0xff00U) >> 8) )); }) : __fswab16(((es->s_magic))));
if (sb->s_magic != 0xEF53) {
if (!silent)
printk("<3>"
"VFS: Can't find ext3 filesystem on dev %s.\n",
bdevname(dev));
goto failed_mount;
}
The problem is that varpool code now expect that variable accesses are
optimized out at the end of gimple queue instead of using
TREE_SYMBOL_REFERENCED bit. In this case sb->s_magic shomehow manages to get
undefined and in GIMPLE land we keep the conditional around, while in RTL land
init-regs initialize it to 0 that consequently makes mount to always fail.
I guess it is not real code quality bug since it happens only on undefined
behaviour code, but we might consider doing initialization by zero sometime in
gimple queue, too.
Also I am not quite sure if we are not misoptimizing the code, it is
convoluted.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
` (4 preceding siblings ...)
2010-11-14 9:14 ` hubicka at gcc dot gnu.org
@ 2010-11-14 10:07 ` hubicka at gcc dot gnu.org
2010-11-14 11:23 ` hubicka at gcc dot gnu.org
` (6 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: hubicka at gcc dot gnu.org @ 2010-11-14 10:07 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
--- Comment #42 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-11-14 09:27:09 UTC ---
Fixing little bug in unreachable function removal and working around PR46470
gets me to:
-2933 linux-2.4.23-pre3-testplatformfs/ext3/superb 8069
-1572 linux-2.4.23-pre3-testplatformdrivers/char/n_ttyb 6038
-1385 teem-1.6.0-srcsrc/limn/test/soidb 5396
-1267 linux-2.4.23-pre3-testplatformfs/ext3/iallocb 2582
-1203 linux-2.4.23-pre3-testplatformmm/filemapb 15592
-1057 teem-1.6.0-srcsrc/limn/test/tpsb 4159
-1010 linux-2.4.23-pre3-testplatformfs/ext3/inodeb 12315
-843 teem-1.6.0-srcsrc/ell/quatb 11314
-834 cg_compiler_opensrcsupportb 27636
-828 OpenTCP-1.0.4ethernetb 1495
-820 teem-1.6.0-srcsrc/nrrd/winKernelb 16288
-807 teem-1.6.0-srcsrc/nrrd/measureb 9444
-677 jikespg-1.3src/ctabsb 48223
-656 teem-1.6.0-srcsrc/echo/test/trendb 9744
-619 linux-2.4.23-pre3-testplatformmm/memoryb 8051
-605 bzip2-1.0.2decompressb 8454
-595 teem-1.6.0-srcsrc/nrrd/kernelb 21446
-586 linux-2.4.23-pre3-testplatformfs/nfsd/vfsb 9082
-582 linux-2.4.23-pre3-testplatformfs/ext3/ballocb 4095
-572 teem-1.6.0-srcsrc/echo/colorb 7500
-546 linux-2.4.23-pre3-testplatformfs/bufferb 14617
-521 linux-2.4.23-pre3-testplatformnet/ipv4/igmpb 12205
-511 linux-2.4.23-pre3-testplatformnet/core/devb 11233
-462 libpng-1.2.5pngrtranb 21062
-427 linux-2.4.23-pre3-testplatformfs/nfs/writeb 6586
-419 linux-2.4.23-pre3-testplatformfs/nameib 11526
-414 teem-1.6.0-srcsrc/ten/tendSatinb 5479
-404 linux-2.4.23-pre3-testplatformfs/jbd/transactionb 10746
-387 teem-1.6.0-srcsrc/echo/intxb 10122
-380 teem-1.6.0-srcsrc/mite/rayb 3376
-357 linux-2.4.23-pre3-testplatformfs/jbd/journalb 9266
-349 cg_compiler_opensrcprintutilsb 12377
-340 linux-2.4.23-pre3-testplatformfs/namespaceb 5715
-317 teem-1.6.0-srcsrc/limn/qnb 2544
-311 linux-2.4.23-pre3-testplatformnet/ipv4/tcp_minisocksb 5169
-306 linux-2.4.23-pre3-testplatformnet/sunrpc/xprtb 8042
-291 linux-2.4.23-pre3-testplatformnet/netlink/af_netlinkb 5792
-289 linux-2.4.23-pre3-testplatformlib/vsprintfb 4266
-286 linux-2.4.23-pre3-testplatformnet/sunrpc/svcsockb 6488
-274 compilervasb 6631
What surprise me is that so far there was no inliner (or size estimate) related
problems... Does the ARM regression reported still exist?
I suppose the fact that we do see regression at our x86_64 CSiBE testing might
be just because of the unforunate 8 page alignments in the kernel.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
` (5 preceding siblings ...)
2010-11-14 10:07 ` hubicka at gcc dot gnu.org
@ 2010-11-14 11:23 ` hubicka at gcc dot gnu.org
2010-11-14 16:56 ` hubicka at gcc dot gnu.org
` (5 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: hubicka at gcc dot gnu.org @ 2010-11-14 11:23 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
--- Comment #43 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-11-14 11:06:59 UTC ---
Created attachment 22392
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22392
Preprocessed ialloc.
One of smaller units that grows a lot. The culprint seems to be ext3_new_inode
that is a lot smaller in GCC 4.3 variant. Not sure why, the inlining decisions
seems sane.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
` (6 preceding siblings ...)
2010-11-14 11:23 ` hubicka at gcc dot gnu.org
@ 2010-11-14 16:56 ` hubicka at gcc dot gnu.org
2010-11-14 18:00 ` rguenther at suse dot de
` (4 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: hubicka at gcc dot gnu.org @ 2010-11-14 16:56 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
--- Comment #44 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-11-14 16:16:35 UTC ---
OK, ialloc is because 4.3 folds:
oldbit_430 = 0;
D.12699_431 = oldbit_430 & 1;
D.12698_462 = D.12699_431;
D.12095_241 = D.12698_462;
if (D.12095_241 != 0)
goto <bb 71>;
else
goto <bb 72>;
In mainline the same sequence misses oldbit_430 = 0.
static __inline__ int
test_and_set_bit_simple(unsigned long nr, volatile void * addr)
{
unsigned long reg1, reg2;
int oldbit;
return oldbit & 1;
}
static __inline__ int
test_and_clear_bit_simple(unsigned long nr, volatile void * addr)
{
unsigned long reg1, reg2;
int oldbit;
return oldbit & 1;
}
static __inline__ int
test_and_change_bit_simple(unsigned long nr, volatile void * addr)
{
unsigned long reg1, reg2;
int oldbit;
return oldbit & 1;
}
So another source code bug.
Richard, do you remember if we dropped initialization by zero for uninitialized
vars?
I am officially declaring kernel part of CSiBE irrelevant and will look at the
other tests.
Honza
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
` (7 preceding siblings ...)
2010-11-14 16:56 ` hubicka at gcc dot gnu.org
@ 2010-11-14 18:00 ` rguenther at suse dot de
2010-11-19 8:24 ` hubicka at gcc dot gnu.org
` (3 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: rguenther at suse dot de @ 2010-11-14 18:00 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
--- Comment #45 from rguenther at suse dot de <rguenther at suse dot de> 2010-11-14 17:38:46 UTC ---
On Sun, 14 Nov 2010, hubicka at gcc dot gnu.org wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
>
> --- Comment #44 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-11-14 16:16:35 UTC ---
> OK, ialloc is because 4.3 folds:
> oldbit_430 = 0;
> D.12699_431 = oldbit_430 & 1;
> D.12698_462 = D.12699_431;
> D.12095_241 = D.12698_462;
> if (D.12095_241 != 0)
> goto <bb 71>;
> else
> goto <bb 72>;
>
> In mainline the same sequence misses oldbit_430 = 0.
>
> static __inline__ int
> test_and_set_bit_simple(unsigned long nr, volatile void * addr)
> {
> unsigned long reg1, reg2;
> int oldbit;
>
> return oldbit & 1;
> }
>
>
>
>
>
> static __inline__ int
> test_and_clear_bit_simple(unsigned long nr, volatile void * addr)
> {
> unsigned long reg1, reg2;
> int oldbit;
>
>
> return oldbit & 1;
> }
>
>
>
>
>
> static __inline__ int
> test_and_change_bit_simple(unsigned long nr, volatile void * addr)
> {
> unsigned long reg1, reg2;
> int oldbit;
>
>
> return oldbit & 1;
> }
>
> So another source code bug.
> Richard, do you remember if we dropped initialization by zero for uninitialized
> vars?
I don't even remember that we did that. Btw, CCP should be able
to fold it with UNDEFINED given that & 1 cannot yield zero (but
we're very conservative here now due to past bugs ...)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
` (8 preceding siblings ...)
2010-11-14 18:00 ` rguenther at suse dot de
@ 2010-11-19 8:24 ` hubicka at gcc dot gnu.org
2010-12-16 13:09 ` rguenth at gcc dot gnu.org
` (2 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: hubicka at gcc dot gnu.org @ 2010-11-19 8:24 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |WAITING
--- Comment #46 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-11-19 08:18:11 UTC ---
I think CCP is not folding one way or another as it might lead to inconsistent
control flows (i.e. one place assuming that the given undefined value is 0,
other that 1). Initializing them to 0 is one consistent way to get stuff
optimized out. I am not biggest friend of that (I think they should stay
undefined and liveness should handle it well) but givent hat RTL land does it
anyway there is no point to bother.
Anyway I looked at the date for jump in CSiBE sizes in our tester. It is May
30 2009
It coincide with Richard's EH unwind reorg
2009-05-29 Richard Henderson <rth@redhat.com>
* cfgcleanup.c (try_crossjump_to_edge): Only skip past
NOTE_INSN_BASIC_BLOCK.
* cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
Duplicate NOTE_INSN_EPILOGUE_BEG notes.
* cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
to be deleted.
* dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
add in_use field.
(add_cfi): Disable check redefining cfa away from drap.
(lookup_cfa_1): Add remember argument; handle remember/restore.
(lookup_cfa): Pass remember argument.
(cfa_remember): New.
given that it makes tables asynchronous and it is thus correcntess issue and
given that it is misaccounted as code size by "size" command and thus also
CSiBE and given that I analyzed quite few testcases and found no inliner bugs,
I think the bug no longer exists (-Os inliner was improved a lot).
It would be nice if someone tested it using the cross, for now I am putting it
into waiting stage and will open new PRs for the few new issues I noticed.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
` (9 preceding siblings ...)
2010-11-19 8:24 ` hubicka at gcc dot gnu.org
@ 2010-12-16 13:09 ` rguenth at gcc dot gnu.org
2011-04-28 14:58 ` [Bug tree-optimization/40436] [4.5/4.6/4.7 " rguenth at gcc dot gnu.org
2011-09-09 14:51 ` steven at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu.org @ 2010-12-16 13:09 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|4.5.2 |4.5.3
--- Comment #47 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-12-16 13:03:00 UTC ---
GCC 4.5.2 is being released, adjusting target milestone.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug tree-optimization/40436] [4.5/4.6/4.7 regression] 0.5% code size regression caused by r147852
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
` (10 preceding siblings ...)
2010-12-16 13:09 ` rguenth at gcc dot gnu.org
@ 2011-04-28 14:58 ` rguenth at gcc dot gnu.org
2011-09-09 14:51 ` steven at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-04-28 14:58 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|4.5.3 |4.5.4
--- Comment #48 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-04-28 14:51:14 UTC ---
GCC 4.5.3 is being released, adjusting target milestone.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug tree-optimization/40436] [4.5/4.6/4.7 regression] 0.5% code size regression caused by r147852
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
` (11 preceding siblings ...)
2011-04-28 14:58 ` [Bug tree-optimization/40436] [4.5/4.6/4.7 " rguenth at gcc dot gnu.org
@ 2011-09-09 14:51 ` steven at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: steven at gcc dot gnu.org @ 2011-09-09 14:51 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
Steven Bosscher <steven at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |RESOLVED
CC| |steven at gcc dot gnu.org
Resolution| |WORKSFORME
--- Comment #49 from Steven Bosscher <steven at gcc dot gnu.org> 2011-09-09 14:39:52 UTC ---
Bug without a clear issue, and in WAITING state for >6 months -> closing.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852
2009-06-13 22:35 [Bug tree-optimization/40436] New: [4.5 " rearnsha at gcc dot gnu dot org
@ 2010-07-31 9:35 ` rguenth at gcc dot gnu dot org
0 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-07-31 9:35 UTC (permalink / raw)
To: gcc-bugs
------- Comment #36 from rguenth at gcc dot gnu dot org 2010-07-31 09:29 -------
GCC 4.5.1 is being released, adjusting target milestone.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|4.5.1 |4.5.2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2011-09-09 14:40 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-40436-4@http.gcc.gnu.org/bugzilla/>
2010-11-10 2:36 ` [Bug tree-optimization/40436] [4.5/4.6 regression] 0.5% code size regression caused by r147852 hubicka at gcc dot gnu.org
2010-11-11 22:09 ` hubicka at gcc dot gnu.org
2010-11-13 18:53 ` hubicka at gcc dot gnu.org
2010-11-13 19:14 ` hubicka at gcc dot gnu.org
2010-11-14 9:14 ` hubicka at gcc dot gnu.org
2010-11-14 10:07 ` hubicka at gcc dot gnu.org
2010-11-14 11:23 ` hubicka at gcc dot gnu.org
2010-11-14 16:56 ` hubicka at gcc dot gnu.org
2010-11-14 18:00 ` rguenther at suse dot de
2010-11-19 8:24 ` hubicka at gcc dot gnu.org
2010-12-16 13:09 ` rguenth at gcc dot gnu.org
2011-04-28 14:58 ` [Bug tree-optimization/40436] [4.5/4.6/4.7 " rguenth at gcc dot gnu.org
2011-09-09 14:51 ` steven at gcc dot gnu.org
2009-06-13 22:35 [Bug tree-optimization/40436] New: [4.5 " rearnsha at gcc dot gnu dot org
2010-07-31 9:35 ` [Bug tree-optimization/40436] [4.5/4.6 " rguenth at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).