Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-07-05 Thread Jeff Law
On 04/10/2018 06:27 AM, Martin Liška wrote: > On 04/10/2018 11:19 AM, Jakub Jelinek wrote: >> On Mon, Apr 09, 2018 at 02:31:04PM +0200, Martin Liška wrote: >>> gcc/testsuite/ChangeLog: >>> >>> 2018-03-28 Martin Liska >>> >>> * gcc.dg/string-opt-1.c: >> I guess you really didn't mean to keep

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657, take 2)

2018-04-13 Thread Jakub Jelinek
On Fri, Apr 13, 2018 at 12:10:33PM +, Wilco Dijkstra wrote: > > Anyway, here is what I think Richard was asking for, that I'm currently > > bootstrapping/regtesting.  It can be easily combined with Martin's target > > hook if needed, or do it only for > > endp == 1 && target != const0_rtx && CA

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657, take 2)

2018-04-13 Thread H.J. Lu
On Fri, Apr 13, 2018 at 5:10 AM, Wilco Dijkstra wrote: > This patch causes regressions on AArch64 since it now always calls mempcpy > again, so yes either it would need to be done only for tailcalls (which fixes > the > reported regression) or we need Martin's change too so each target can state

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657, take 2)

2018-04-13 Thread Wilco Dijkstra
Jakub Jelinek wrote:  >On Thu, Apr 12, 2018 at 05:29:35PM +, Wilco Dijkstra wrote: >> > Depending on what you mean old, I see e.g. in 2010 power7 mempcpy got >> > added, >> > in 2013 other power versions, in 2016 s390*, etc.  Doing a decent mempcpy >> > isn't hard if you have asm version of m

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657, take 2)

2018-04-13 Thread Richard Biener
On April 13, 2018 12:35:54 AM GMT+02:00, Jakub Jelinek wrote: >On Thu, Apr 12, 2018 at 07:37:22PM +0200, Jakub Jelinek wrote: >> On Thu, Apr 12, 2018 at 05:29:35PM +, Wilco Dijkstra wrote: >> > > Depending on what you mean old, I see e.g. in 2010 power7 mempcpy >got added, >> > > in 2013 other

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657, take 2)

2018-04-12 Thread Jakub Jelinek
On Thu, Apr 12, 2018 at 07:37:22PM +0200, Jakub Jelinek wrote: > On Thu, Apr 12, 2018 at 05:29:35PM +, Wilco Dijkstra wrote: > > > Depending on what you mean old, I see e.g. in 2010 power7 mempcpy got > > > added, > > > in 2013 other power versions, in 2016 s390*, etc.  Doing a decent mempcpy

[PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657, take 2)

2018-04-12 Thread Jakub Jelinek
On Thu, Apr 12, 2018 at 05:29:35PM +, Wilco Dijkstra wrote: > > Depending on what you mean old, I see e.g. in 2010 power7 mempcpy got added, > > in 2013 other power versions, in 2016 s390*, etc.  Doing a decent mempcpy > > isn't hard if you have asm version of memcpy and one spare register. >

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Jakub Jelinek
On Thu, Apr 12, 2018 at 04:30:07PM +, Wilco Dijkstra wrote: > Jakub Jelinek wrote: > > On Thu, Apr 12, 2018 at 03:53:13PM +, Wilco Dijkstra wrote: > > >> The tailcall issue is just a distraction. Historically the handling of > >> mempcpy  > >> has been horribly inefficient in both GCC and

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Jakub Jelinek
On Thu, Apr 12, 2018 at 05:17:29PM +0200, Richard Biener wrote: > >For -Os that is easily measurable regression, for -O2 it depends on the > >relative speed of memcpy vs. mempcpy and whether one or both of them > >are in > >I-cache or not. > > Well, then simply unconditionally not generate a libca

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Wilco Dijkstra
Jakub Jelinek wrote: >On Thu, Apr 12, 2018 at 04:30:07PM +, Wilco Dijkstra wrote: >> Jakub Jelinek wrote: >> Frankly I don't see why it is a P1 regression. Do you have a benchmark that > >That is how regression priorities are defined. How can one justify considering this a release blocker wit

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Jakub Jelinek
On Thu, Apr 12, 2018 at 03:53:13PM +, Wilco Dijkstra wrote: > Jakub Jelinek wrote: > > On Thu, Apr 12, 2018 at 03:52:09PM +0200, Richard Biener wrote: > >> Not sure if I missed some important part of the discussion but > >> for the testcase we want to preserve the tailcall, right? So > >> it w

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Wilco Dijkstra
Jakub Jelinek wrote: > On Thu, Apr 12, 2018 at 03:53:13PM +, Wilco Dijkstra wrote: >> The tailcall issue is just a distraction. Historically the handling of >> mempcpy  >> has been horribly inefficient in both GCC and GLIBC for practically all >> targets. >> This is why it was decided to def

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread H.J. Lu
On Thu, Apr 12, 2018 at 8:53 AM, Wilco Dijkstra wrote: > So generally it's a good idea to change mempcpy into memcpy by default. It's > not slower than calling mempcpy even if you have a fast implementation, it's > faster > if you use an up to date GLIBC which calls memcpy, and it's significantl

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Richard Biener
On April 12, 2018 5:38:44 PM GMT+02:00, Jakub Jelinek wrote: >On Thu, Apr 12, 2018 at 05:17:29PM +0200, Richard Biener wrote: >> >For -Os that is easily measurable regression, for -O2 it depends on >the >> >relative speed of memcpy vs. mempcpy and whether one or both of them >> >are in >> >I-cache

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Wilco Dijkstra
Jakub Jelinek wrote: > On Thu, Apr 12, 2018 at 03:52:09PM +0200, Richard Biener wrote: >> Not sure if I missed some important part of the discussion but >> for the testcase we want to preserve the tailcall, right? So >> it would be enough to set avoid_libcall to >> endp != 0 && CALL_EXPR_TAILCALL

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Richard Biener
On April 12, 2018 4:31:12 PM GMT+02:00, Jakub Jelinek wrote: >On Thu, Apr 12, 2018 at 04:19:38PM +0200, Richard Biener wrote: >> Well, but that wouldn't be a fix for a regression and IMHO there's >> no reason for a really lame mempcpy. If targets disgree well, > >It is a regression as well, in th

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Jakub Jelinek
On Thu, Apr 12, 2018 at 04:19:38PM +0200, Richard Biener wrote: > Well, but that wouldn't be a fix for a regression and IMHO there's > no reason for a really lame mempcpy. If targets disgree well, It is a regression as well, in the past we've emitted mempcpy when user wrote mempcpy, now we don't.

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Jakub Jelinek
On Thu, Apr 12, 2018 at 03:52:09PM +0200, Richard Biener wrote: > Not sure if I missed some important part of the discussion but > for the testcase we want to preserve the tailcall, right? So > it would be enough to set avoid_libcall to > endp != 0 && CALL_EXPR_TAILCALL (exp) (and thus also handle

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Richard Biener
On Thu, 12 Apr 2018, Jakub Jelinek wrote: > On Thu, Apr 12, 2018 at 03:52:09PM +0200, Richard Biener wrote: > > Not sure if I missed some important part of the discussion but > > for the testcase we want to preserve the tailcall, right? So > > it would be enough to set avoid_libcall to > > endp !

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Richard Biener
On Thu, 12 Apr 2018, Martin Liška wrote: > Hi. > > I'm reminding review request from Richi for generic part > and Uros/Honza for target part. Not sure if I missed some important part of the discussion but for the testcase we want to preserve the tailcall, right? So it would be enough to set avo

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Jan Hubicka
> Hi. > > I'm reminding review request from Richi for generic part > and Uros/Honza for target part. OK for i386 bits. Honza > > Thanks, > Martin

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-12 Thread Martin Liška
Hi. I'm reminding review request from Richi for generic part and Uros/Honza for target part. Thanks, Martin

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-10 Thread Martin Liška
On 04/10/2018 11:19 AM, Jakub Jelinek wrote: > On Mon, Apr 09, 2018 at 02:31:04PM +0200, Martin Liška wrote: >> gcc/testsuite/ChangeLog: >> >> 2018-03-28 Martin Liska >> >> * gcc.dg/string-opt-1.c: > > I guess you really didn't mean to keep the above entry around, just the one > below, rig

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-10 Thread Jakub Jelinek
On Mon, Apr 09, 2018 at 02:31:04PM +0200, Martin Liška wrote: > gcc/testsuite/ChangeLog: > > 2018-03-28 Martin Liska > > * gcc.dg/string-opt-1.c: I guess you really didn't mean to keep the above entry around, just the one below, right? > gcc/testsuite/ChangeLog: > > 2018-03-14 Martin

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-09 Thread Martin Liška
Hi. I'm sending updated version of the patch. Patch can bootstrap on ppc64le-redhat-linux and x86_64-linux and survives regression tests. Martin >From 6d19b1bf0c28a683e1458e16943e34bb547d36d6 Mon Sep 17 00:00:00 2001 From: marxin Date: Wed, 14 Mar 2018 09:44:18 +0100 Subject: [PATCH] Introduce

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-04-04 Thread Martin Liška
PING^1 On 03/29/2018 02:31 PM, Martin Liška wrote: > On 03/29/2018 02:25 PM, Jakub Jelinek wrote: >> On Thu, Mar 29, 2018 at 01:28:13PM +0200, Martin Liška wrote: >>> On 03/28/2018 06:36 PM, Jakub Jelinek wrote: On Wed, Mar 28, 2018 at 06:30:21PM +0200, Martin Liška wrote: > --- a/gcc/con

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-29 Thread Jakub Jelinek
On Thu, Mar 29, 2018 at 01:28:13PM +0200, Martin Liška wrote: > On 03/28/2018 06:36 PM, Jakub Jelinek wrote: > > On Wed, Mar 28, 2018 at 06:30:21PM +0200, Martin Liška wrote: > > > --- a/gcc/config/linux.c > > > +++ b/gcc/config/linux.c > > > @@ -37,3 +37,24 @@ linux_libc_has_function (enum functio

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-29 Thread Martin Liška
On 03/29/2018 02:25 PM, Jakub Jelinek wrote: On Thu, Mar 29, 2018 at 01:28:13PM +0200, Martin Liška wrote: On 03/28/2018 06:36 PM, Jakub Jelinek wrote: On Wed, Mar 28, 2018 at 06:30:21PM +0200, Martin Liška wrote: --- a/gcc/config/linux.c +++ b/gcc/config/linux.c @@ -37,3 +37,24 @@ linux_libc_

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-29 Thread H.J. Lu
On Thu, Mar 29, 2018 at 4:28 AM, Martin Liška wrote: > On 03/28/2018 06:36 PM, Jakub Jelinek wrote: >> >> On Wed, Mar 28, 2018 at 06:30:21PM +0200, Martin Liška wrote: >>> >>> --- a/gcc/config/linux.c >>> +++ b/gcc/config/linux.c >>> @@ -37,3 +37,24 @@ linux_libc_has_function (enum function_class

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-29 Thread Martin Liška
On 03/28/2018 06:36 PM, Jakub Jelinek wrote: On Wed, Mar 28, 2018 at 06:30:21PM +0200, Martin Liška wrote: --- a/gcc/config/linux.c +++ b/gcc/config/linux.c @@ -37,3 +37,24 @@ linux_libc_has_function (enum function_class fn_class) return false; } + +/* This hook determines whether a fu

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-28 Thread Jakub Jelinek
On Wed, Mar 28, 2018 at 06:30:21PM +0200, Martin Liška wrote: > --- a/gcc/config/linux.c > +++ b/gcc/config/linux.c > @@ -37,3 +37,24 @@ linux_libc_has_function (enum function_class fn_class) > >return false; > } > + > +/* This hook determines whether a function from libc has a fast > imple

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-28 Thread Martin Liška
On 03/28/2018 04:31 PM, Jakub Jelinek wrote: On Wed, Mar 28, 2018 at 04:18:45PM +0200, Martin Liška wrote: 2018-03-14 Martin Liska PR middle-end/81657 * builtins.c (expand_builtin_memory_copy_args): Handle situation when libc library provides a fast mempcpy implementa

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-28 Thread Jakub Jelinek
On Wed, Mar 28, 2018 at 04:18:45PM +0200, Martin Liška wrote: > 2018-03-14 Martin Liska > > PR middle-end/81657 > * builtins.c (expand_builtin_memory_copy_args): Handle situation > when libc library provides a fast mempcpy implementation/ > * config/i386/i386-protos.h (g

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-28 Thread Martin Liška
On 03/21/2018 11:34 AM, Jakub Jelinek wrote: On Wed, Mar 14, 2018 at 02:54:00PM +0100, Martin Liška wrote: The variable is not named very well, shouldn't it be avoid_libcall or something similar? Perhaps the variable should have a comment describing what it is. Do you need separate argument fo

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-21 Thread Jakub Jelinek
On Wed, Mar 14, 2018 at 02:54:00PM +0100, Martin Liška wrote: > > The variable is not named very well, shouldn't it be avoid_libcall or > > something similar? Perhaps the variable should have a comment describing > > what it is. Do you need separate argument for that bool and > > is_move_done, ra

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-18 Thread Martin Liška
PING^1 On 03/14/2018 02:54 PM, Martin Liška wrote: On 03/14/2018 02:07 PM, Jakub Jelinek wrote: On Wed, Mar 14, 2018 at 01:54:39PM +0100, Martin Liška wrote: --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -3651,13 +3651,24 @@ expand_builtin_memory_copy_args (tree dest, tree src, tree len, s

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-14 Thread Martin Liška
On 03/14/2018 02:07 PM, Jakub Jelinek wrote: > On Wed, Mar 14, 2018 at 01:54:39PM +0100, Martin Liška wrote: >> --- a/gcc/builtins.c >> +++ b/gcc/builtins.c >> @@ -3651,13 +3651,24 @@ expand_builtin_memory_copy_args (tree dest, tree >> src, tree len, >>src_mem = get_memory_rtx (src, len); >>

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-14 Thread Jakub Jelinek
On Wed, Mar 14, 2018 at 02:08:07PM +0100, Martin Liška wrote: > > diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy.c > > b/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy.c > > index d82e2232d7b..91e1c87f83f 100644 > > --- a/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-14 Thread Jakub Jelinek
On Wed, Mar 14, 2018 at 01:54:39PM +0100, Martin Liška wrote: > --- a/gcc/builtins.c > +++ b/gcc/builtins.c > @@ -3651,13 +3651,24 @@ expand_builtin_memory_copy_args (tree dest, tree src, > tree len, >src_mem = get_memory_rtx (src, len); >set_mem_align (src_mem, src_align); > > + bool i

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-14 Thread Martin Liška
On 03/14/2018 01:57 PM, H.J. Lu wrote: > On Wed, Mar 14, 2018 at 5:54 AM, Martin Liška wrote: >> On 03/13/2018 04:23 PM, Jakub Jelinek wrote: >>> On Tue, Mar 13, 2018 at 04:19:21PM +0100, Martin Liška wrote: > Yes, see e.g. TARGET_LIBC_HAS_FUNCTION target hook, > where in particular linux_

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-14 Thread H.J. Lu
On Wed, Mar 14, 2018 at 5:54 AM, Martin Liška wrote: > On 03/13/2018 04:23 PM, Jakub Jelinek wrote: >> On Tue, Mar 13, 2018 at 04:19:21PM +0100, Martin Liška wrote: Yes, see e.g. TARGET_LIBC_HAS_FUNCTION target hook, where in particular linux_libc_has_function deals with various C librar

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-14 Thread Martin Liška
On 03/13/2018 04:23 PM, Jakub Jelinek wrote: > On Tue, Mar 13, 2018 at 04:19:21PM +0100, Martin Liška wrote: >>> Yes, see e.g. TARGET_LIBC_HAS_FUNCTION target hook, >>> where in particular linux_libc_has_function deals with various C libraries. >>> Of course, in this case you need another target ho

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-13 Thread Jakub Jelinek
On Tue, Mar 13, 2018 at 04:19:21PM +0100, Martin Liška wrote: > > Yes, see e.g. TARGET_LIBC_HAS_FUNCTION target hook, > > where in particular linux_libc_has_function deals with various C libraries. > > Of course, in this case you need another target hook, that is dependent both > > on the target ba

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-13 Thread Martin Liška
On 03/13/2018 09:32 AM, Jakub Jelinek wrote: On Tue, Mar 13, 2018 at 09:24:11AM +0100, Martin Liška wrote: On 03/12/2018 10:39 AM, Marc Glisse wrote: On Mon, 12 Mar 2018, Martin Liška wrote: This is fix for the PR that introduces a new target macro. Using the macro one can say that a target h

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-13 Thread Richard Biener
On Tue, Mar 13, 2018 at 9:32 AM, Jakub Jelinek wrote: > On Tue, Mar 13, 2018 at 09:24:11AM +0100, Martin Liška wrote: >> On 03/12/2018 10:39 AM, Marc Glisse wrote: >> > On Mon, 12 Mar 2018, Martin Liška wrote: >> > >> > > This is fix for the PR that introduces a new target macro. Using the >> > >

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-13 Thread Jakub Jelinek
On Tue, Mar 13, 2018 at 09:24:11AM +0100, Martin Liška wrote: > On 03/12/2018 10:39 AM, Marc Glisse wrote: > > On Mon, 12 Mar 2018, Martin Liška wrote: > > > > > This is fix for the PR that introduces a new target macro. Using the macro > > > one can say that a target has a fast mempcpy and thus i

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-13 Thread Martin Liška
On 03/12/2018 10:39 AM, Marc Glisse wrote: On Mon, 12 Mar 2018, Martin Liška wrote: This is fix for the PR that introduces a new target macro. Using the macro one can say that a target has a fast mempcpy and thus it's preferred to be used if possible. Patch can bootstrap on ppc64le-redhat-linu

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-12 Thread Jakub Jelinek
On Mon, Mar 12, 2018 at 09:57:09AM +0100, Martin Liška wrote: > Hi. > > This is fix for the PR that introduces a new target macro. Using the macro > one can say that a target has a fast mempcpy and thus it's preferred to be > used > if possible. > > Patch can bootstrap on ppc64le-redhat-linux an

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-12 Thread Richard Biener
On Mon, Mar 12, 2018 at 9:57 AM, Martin Liška wrote: > Hi. > > This is fix for the PR that introduces a new target macro. Using the macro Don't add new target macros, use target hooks. > one can say that a target has a fast mempcpy and thus it's preferred to be > used > if possible. > > Patch c

Re: [PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-12 Thread Marc Glisse
On Mon, 12 Mar 2018, Martin Liška wrote: This is fix for the PR that introduces a new target macro. Using the macro one can say that a target has a fast mempcpy and thus it's preferred to be used if possible. Patch can bootstrap on ppc64le-redhat-linux and survives regression tests. I also test

[PATCH] Prefer mempcpy to memcpy on x86_64 target (PR middle-end/81657).

2018-03-12 Thread Martin Liška
Hi. This is fix for the PR that introduces a new target macro. Using the macro one can say that a target has a fast mempcpy and thus it's preferred to be used if possible. Patch can bootstrap on ppc64le-redhat-linux and survives regression tests. I also tested on x86_64-linux-gnu. Ready to be in