Messages in this thread | | | Date | Tue, 19 Jun 2007 15:27:18 +0200 | From | Adrian Bunk <> | Subject | Re: [PATCH] trivial: the memset operation on a automatic array variable should be optimized out by data initialization |
| |
On Mon, Jun 18, 2007 at 10:07:21AM -0700, Jeremy Fitzhardinge wrote: > Denis Cheng wrote: > > From: Denis Cheng <crquan@gmail.com> > > > > the explicit memset call could be optimized out by data initialization, > > thus all the fill working can be done by the compiler implicitly. > > How does the generated code change? Does gcc do something stupid like > statically allocate a prototype structure full of zeros, and then memcpy > it in? Or does it generate a series of explicit assignments for each > member? Or does it generate a memset anyway? > > Seems to me that this gives gcc the opportunity to be more stupid, and > the only right answer is what we're doing anyway.
I checked with gcc 4.2, and gcc is quite clever:
If an array is big, gcc uses memset. If an array is small, gcc does it directly in assembler.
> J
cu Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |