On Tue, 19 Nov 2013, Jan Hubicka wrote: > Hi, > this patch fixes two issues with memcpy testcase - silences warning and > updates > the template as suggested by Uros in the PR. The testcase still fails on > i386. > This is because we end up with: > ;; Function t (t, funcdef_no=0, decl_uid=1763, symbol_order=2) > > t (unsigned int c) > { > void * b.0_4; > void * a.1_5; > > <bb 2>: > if (c_2(D) <= 9) > goto <bb 3>; > else > goto <bb 4>; > > <bb 3>: > b.0_4 = b; > a.1_5 = a; > memcpy (a.1_5, b.0_4, c_2(D)); > > <bb 4>: > return; > > } > and we have no useful value range on c_2 because assert_expr was removed, > while in 64bit version there is a cast in bb 3 that preserves the info. > Solving this is an independent (and I guess not terribly easy) problem.
Hmm, I thought Jakub fixed this already (with the checking whether there are any uses of c_2(D) before the conditional)? Or is this a different case? Richard. > Regtested x86_64-linux, will commit it shortly. > > Index: ChangeLog > =================================================================== > --- ChangeLog (revision 204984) > +++ ChangeLog (working copy) > @@ -1,3 +1,10 @@ > +2013-11-18 Jan Hubicka <j...@suse.cz> > + Uros Bizjak <ubiz...@gmail.com> > + > + PR middle-end/59175 > + * gcc.target/i386/memcpy-2.c: Fix template; > + add +1 so the testcase passes at 32bit. > + > 2013-11-18 Dominique d'Humieres <domi...@lps.ens.fr> > > * c-c++-common/cilk-plus/PS/reduction-3.c: Use stdlib.h. > Index: gcc.target/i386/memcpy-2.c > =================================================================== > --- gcc.target/i386/memcpy-2.c (revision 204984) > +++ gcc.target/i386/memcpy-2.c (working copy) > @@ -1,11 +1,11 @@ > /* { dg-do compile } */ > /* { dg-options "-O2" } */ > -/* Memcpy should be inlined because block size is known. */ > -/* { dg-final { scan-assembler-not "memcpy" } } */ > void *a; > void *b; > t(unsigned int c) > { > if (c<10) > - memcpy (a,b,c); > + __builtin_memcpy (a,b,c+1); > } > +/* Memcpy should be inlined because block size is known. */ > +/* { dg-final { scan-assembler-not "(jmp|call)\[\\t \]*memcpy" } } */ > > -- Richard Biener <rguent...@suse.de> SUSE / SUSE Labs SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 GF: Jeff Hawn, Jennifer Guild, Felix Imend"orffer