This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: New prologue/epilogue code for i386 string functions
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Ondrej Bilka <neleai at seznam dot cz>
- Date: Thu, 26 Dec 2013 12:34:13 -0800
- Subject: Re: New prologue/epilogue code for i386 string functions
- Authentication-results: sourceware.org; auth=none
- References: <20131022155844 dot GA6049 at kam dot mff dot cuni dot cz>
On Tue, Oct 22, 2013 at 8:58 AM, Jan Hubicka <hubicka@ucw.cz> wrote:
> Hi,
> this patch adds code to produce prologues/epilogues as suggested by Ondrej Bilka
> (I described more the approach in http://gcc.gnu.org/ml/gcc-patches/2013-09/msg02082.html)
> This patch is updated and cleaned up version after Mikhail changes merging memset/memcpy
> generation code. (I will continue with some incremental cleanups for the code dulication
> we ended up with).
>
> For now I don't have value range code in, but all logic is in place once
> http://gcc.gnu.org/ml/gcc-patches/2013-09/msg02011.html
> gets reviewed.
>
> Bootstrapped/regtesed x86_64-linux also with -minline-all-stringops and tested on SPEC2k6.
> I will commit it later today after more testing.
>
> Honza
>
> * i386.h (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES): New tuning flag.
> * x86-tune.def (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES): Define it.
> * i386.c (expand_small_movmem_or_setmem): New function.
> (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): New function
> (alg_usable_p): Add support for value ranges; cleanup.
> (ix86_expand_set_or_movmem): Add support for misaligned moves.
This caused:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59605
--
H.J.