[fortran PATCH] Implement a(:,:) = 0.0 using memset
Andrew Pinski
pinskia@gmail.com
Mon Dec 18 18:14:00 GMT 2006
On Mon, 2006-12-18 at 10:36 -0700, roger@eyesopen.com wrote:
> we currently generate the following with -fdump-tree-original
>
> int8 S.0;
>
> S.0 = 1;
> while (1)
> {
> if (S.0 > 20) goto L.1; else (void) 0;
> (*a)[NON_LVALUE_EXPR <S.0> + -1] = 0;
> S.0 = S.0 + 1;
> }
> L.1:;
>
> with the patch below, we now generate this instead.
>
> (void) __builtin_memset ((void *) a, 0, 80);
This optimization should really be done in the tree level and not done
in the front-end.
In fact Thomas from SUSE has a patch to do this (based on my original
patch):
http://www.gccsummit.org/2006/view_abstract.php?content_key=27
Thanks,
Andrew Pinski
More information about the Gcc-patches
mailing list