This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, x86] Use vector moves in memmove expanding


On Mon, Sep 09, 2013 at 11:52:49AM +0400, Michael V. Zolotukhin wrote:
> > I don't see anything i386 specific on the testcase, except the flags,
> > and don't see why you need -fno-common in there, there are no global vars.
> > So, I think it would be better to stick it into gcc.dg/torture/, drop
> > dg-require-* line and instead just add
> > /* { dg-additional-options "-march=pentiumpro" { target ia32 } } */
> > /* { dg-additional-options "-minline-all-stringops" { target { i?86-*-* x86_64-*-* } } } */
> > or so (and let it cycle through all the -O* options).
> Originally the test targeted a specific situation, happening on pentiumpro (and
> thus ia32), because on pentium pro we want 64-bit alignment for 32-bit
> rep-moves.  So, it reveals an issue when desired alignment is bigger than size
> of move_mode.
> I don't see if it could be helpful on other platforms, though if
> you think it's worthwhile, I'll update the test as you suggested.

I think it is worthwhile, various targets have many different ways to expand
memcpy, admittedly i?86/x86_64 probably the biggest number of these, and
while right now you've encountered it on ia32 with certain options doesn't
mean that in a few years it couldn't hit some unrelated target, arm, sh,
sparc, whatever.

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]