On 14 Nov 2011, at 20:44, H.J. Lu wrote:

On Mon, Nov 14, 2011 at 12:40 PM, Iain Sandoe
<develo...@sandoe-acoustics.co.uk> wrote:

On 14 Nov 2011, at 20:36, H.J. Lu wrote:

2011/11/14 Jan Hubicka <hubi...@ucw.cz>:

On Mon, Nov 14, 2011 at 9:03 AM, Jan Hubicka <hubi...@ucw.cz> wrote:

Hi,
this is hopefully final variant of patch. The epilogue code was broken
in some
scenarios for memset, but should work safely now. I also fixed the
tables for
core/buldozer/amdfam10 chips.

But before it can be comitted, we need to reoslve copyright assignment
issues.
You don't seem to be liested as having copyright assignment, does you
company
have one?  Otherwise, please try to get one soon.

Honza

2011-11-14  Zolotukhin Michael  <michael.v.zolotuk...@gmail.com>
          Jan Hubicka  <j...@suse.cz>


Zolotukhin Michael works for Intel and has copyright assignment with
FSF.

Thank you.  I went ahead and comitted the patch then.


GCC failed to bootstrap:

../../src-trunk/libiberty/sort.c:100:14: internal compiler error: in
decide_alg, at config/i386/i386.c:22094
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[6]: *** [sort.o] Error 1


Assuming that the target is a core processor:

I'm testing a patch from Honza for this - which he has asked to be checked
in if it works out OK.

just a pasto...




Index: i386.c
===================================================================
--- i386.c      (revision 181360)
+++ i386.c      (working copy)
@@ -1877,10 +1877,10 @@ struct processor_costs core_cost = {
{libcall, {{16, loop}, {24, unrolled_loop}, {1024, rep_prefix_8_byte},
{-1, libcall}}}}},

 /* stringop_algs for memset.  */
-  {{{libcall, {{256, rep_prefix_4_byte}}}, /* Known alignment.  */
-    {libcall, {{256, rep_prefix_8_byte}}}},
-   {{libcall, {{256, rep_prefix_4_byte}}}, /* Unknown alignment.  */
-    {libcall, {{256, rep_prefix_8_byte}}}}},
+  {{{libcall, {{256, rep_prefix_4_byte}, {-1 libcall}}}, /* Known
alignment.  */
+    {libcall, {{256, rep_prefix_8_byte}, {-1 libcall}}}},
+   {{libcall, {{256, rep_prefix_4_byte}, {-1 libcall}}}, /* Unknown
alignment.  */
+    {libcall, {{256, rep_prefix_8_byte}, {-1 libcall}}}}},
 1,                                    /* scalar_stmt_cost.  */
 1,                                    /* scalar load_cost.  */
 1,                                    /* scalar_store_cost.  */


It looks reasonable.

bootstrap completed on i686-darwin9, so I've applied the following as requested,
Iain

gcc:

2011-11-14  Jan Hubicka  <j...@suse.cz>

        * config/i386/i386.c (core cost model): Correct pasto.

 ndex: gcc/config/i386/i386.c
===================================================================
--- gcc/config/i386/i386.c      (revision 181364)
+++ gcc/config/i386/i386.c      (working copy)
@@ -1877,10 +1877,10 @@ struct processor_costs core_cost = {
{libcall, {{16, loop}, {24, unrolled_loop}, {1024, rep_prefix_8_byte}, {-1, libcall}}}}},

   /* stringop_algs for memset.  */
-  {{{libcall, {{256, rep_prefix_4_byte}}}, /* Known alignment.  */
-    {libcall, {{256, rep_prefix_8_byte}}}},
-   {{libcall, {{256, rep_prefix_4_byte}}}, /* Unknown alignment.  */
-    {libcall, {{256, rep_prefix_8_byte}}}}},
+ {{{libcall, {{256, rep_prefix_4_byte}, {-1, libcall}}}, /* Known alignment. */
+    {libcall, {{256, rep_prefix_8_byte}, {-1, libcall}}}},
+ {{libcall, {{256, rep_prefix_4_byte}, {-1, libcall}}}, /* Unknown alignment. */
+    {libcall, {{256, rep_prefix_8_byte}, {-1, libcall}}}}},
   1,                                   /* scalar_stmt_cost.  */
   1,                                   /* scalar load_cost.  */
   1,                                   /* scalar_store_cost.  */


Reply via email to