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).