This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Drop generic32 cost model
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Ian Lance Taylor <iant at google dot com>
- Cc: Jan Hubicka <hubicka at ucw dot cz>, gcc-patches <gcc-patches at gcc dot gnu dot org>, Michael Matz <matz at suse dot de>, "H.J. Lu" <hongjiu dot lu at intel dot com>
- Date: Thu, 19 Sep 2013 17:38:22 +0200
- Subject: Re: Drop generic32 cost model
- Authentication-results: sourceware.org; auth=none
- References: <20130918203949 dot GB11466 at kam dot mff dot cuni dot cz> <CAKOQZ8zQceBPZDwSALhrK3LK-WhrYTOzNv-W+PkjD5_WogKCfA at mail dot gmail dot com>
>
>
> decide_alg is being called from ix86_expand_movmem, from
> expand_builtin_memcpy, for the call at line 61 of go-append.c.
> __builtin_memcpy (n, a.__values, a.__count * element_size);
>
> I'm continuing to look.
Indeed it is problem of this patch - the issue is that generic64 had
dummy 32bit alg entries (those should not cause infinite loop, I will
fix that too)
I am testing:
Index: i386.c
===================================================================
--- i386.c (revision 202741)
+++ i386.c (working copy)
@@ -1648,11 +1648,13 @@ struct processor_costs slm_cost = {
and btver1 (and newer chips). */
static stringop_algs generic_memcpy[2] = {
- DUMMY_STRINGOP_ALGS,
+ {libcall, {{32, loop, false}, {8192, rep_prefix_4_byte, false},
+ {-1, libcall, false}}},
{libcall, {{32, loop, false}, {8192, rep_prefix_8_byte, false},
{-1, libcall, false}}}};
static stringop_algs generic_memset[2] = {
- DUMMY_STRINGOP_ALGS,
+ {libcall, {{32, loop, false}, {8192, rep_prefix_4_byte, false},
+ {-1, libcall, false}}},
{libcall, {{32, loop, false}, {8192, rep_prefix_8_byte, false},
{-1, libcall, false}}}};
static const
>
> Ian