lkml.org 
[lkml]   [2000]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: where did memset go?
> > Ok then. The issue is that gcc generates internally that memset for the
> > local structure assignment. You can workaround it by doing what the patchlet
> > sais. I think this is a bug in gcc because it normally expands memcpy/memset
> > internally on i386.
> > But I wonder why i386 does not export memcpy/memset for such cases, IMHO it
> > should.
> > But the patch below gives you more efficient code anyway.
>
> Does compiling with -fno-builtin for all kernels make sense?

It does not and will not cure this anyway.
A simplified testcase for what's gcc doing is:

struct c { char name[20]; };
void bar(struct c *);
void foo(void)
{
struct c a = {"string"};
bar(&a);
}

where it fills the remaining 20-7 bytes of the structure with memset and not
rep stos* on i386.

Cheers,
Jakub
___________________________________________________________________
Jakub Jelinek | jakub@redhat.com | http://sunsite.mff.cuni.cz/~jj
Linux version 2.3.41 on a sparc64 machine (1343.49 BogoMips)
___________________________________________________________________

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:56    [W:0.074 / U:0.096 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site