From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 38583 invoked by alias); 5 Apr 2015 23:15:41 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 38544 invoked by uid 89); 5 Apr 2015 23:15:36 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=3.0 required=5.0 tests=AWL,BAYES_20,KAM_LAZY_DOMAIN_SECURITY,SPAM_BODY,T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: nef2.ens.fr Received: from nef2.ens.fr (HELO nef2.ens.fr) (129.199.96.40) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 05 Apr 2015 23:15:34 +0000 Received: from mailhost.lps.ens.fr (tournesol.lps.ens.fr [129.199.120.1]) by nef2.ens.fr (8.13.6/1.01.28121999) with ESMTP id t35NFUf7031137 ; Mon, 6 Apr 2015 01:15:31 +0200 (CEST) X-Envelope-To: gcc-patches@gcc.gnu.org Received: from localhost (localhost [127.0.0.1]) by mailhost.lps.ens.fr (Postfix) with ESMTP id BF123105; Mon, 6 Apr 2015 01:15:30 +0200 (CEST) Received: from mailhost.lps.ens.fr ([127.0.0.1]) by localhost (tournesol.lps.ens.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id j8To0RVenFcy; Mon, 6 Apr 2015 01:15:30 +0200 (CEST) Received: from [192.168.1.11] (log78-1-82-242-47-10.fbx.proxad.net [82.242.47.10]) by mailhost.lps.ens.fr (Postfix) with ESMTPSA id 798DAF5; Mon, 6 Apr 2015 01:15:30 +0200 (CEST) Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\)) Subject: Re: [patch, fortran, RFC] First steps towards inlining matmul From: =?windows-1252?Q?Dominique_d=27Humi=E8res?= In-Reply-To: <55219D1C.6070507@netcologne.de> Date: Sun, 05 Apr 2015 23:15:00 -0000 Cc: gcc-patches@gcc.gnu.org, fortran@gcc.gnu.org, jvdelisle@charter.com Content-Transfer-Encoding: quoted-printable Message-Id: <9F588746-B32C-4919-AEFC-4EF5E6792001@lps.ens.fr> References: <20150405135519.AF21A105@mailhost.lps.ens.fr> <552147A3.7000603@netcologne.de> <4DA1047C-92D3-485A-9457-61655ED14681@lps.ens.fr> <55219D1C.6070507@netcologne.de> To: Thomas Koenig X-SW-Source: 2015-04/txt/msg00175.txt.bz2 The patch causes the following regressions: FAIL: gfortran.dg/coarray/dummy_1.f90 -fcoarray=3Dsingle -O2 -latomic (in= ternal compiler error) FAIL: gfortran.dg/coarray/dummy_1.f90 -fcoarray=3Dsingle -O2 -latomic (te= st for excess errors) FAIL: gfortran.dg/coarray/dummy_1.f90 -fcoarray=3Dlib -O2 -lcaf_single -l= atomic (internal compiler error) FAIL: gfortran.dg/coarray/dummy_1.f90 -fcoarray=3Dlib -O2 -lcaf_single -l= atomic (test for excess errors) FAIL: gfortran.dg/array_function_3.f90 -O (internal compiler error) FAIL: gfortran.dg/array_function_3.f90 -O (test for excess errors) FAIL: gfortran.dg/bind_c_vars.f90 -g -flto (test for excess errors) FAIL: gfortran.dg/bound_2.f90 -O0 (internal compiler error) FAIL: gfortran.dg/bound_2.f90 -O0 (test for excess errors) FAIL: gfortran.dg/bound_2.f90 -O1 (internal compiler error) FAIL: gfortran.dg/bound_2.f90 -O1 (test for excess errors) FAIL: gfortran.dg/bound_2.f90 -O2 (internal compiler error) FAIL: gfortran.dg/bound_2.f90 -O2 (test for excess errors) FAIL: gfortran.dg/bound_2.f90 -O3 -fomit-frame-pointer (internal compile= r error) FAIL: gfortran.dg/bound_2.f90 -O3 -fomit-frame-pointer (test for excess = errors) FAIL: gfortran.dg/bound_2.f90 -O3 -fomit-frame-pointer -funroll-loops (i= nternal compiler error) FAIL: gfortran.dg/bound_2.f90 -O3 -fomit-frame-pointer -funroll-loops (t= est for excess errors) FAIL: gfortran.dg/bound_2.f90 -O3 -fomit-frame-pointer -funroll-all-loops= -finline-functions (internal compiler error) FAIL: gfortran.dg/bound_2.f90 -O3 -fomit-frame-pointer -funroll-all-loops= -finline-functions (test for excess errors) FAIL: gfortran.dg/bound_2.f90 -O3 -g (internal compiler error) FAIL: gfortran.dg/bound_2.f90 -O3 -g (test for excess errors) FAIL: gfortran.dg/bound_2.f90 -Os (internal compiler error) FAIL: gfortran.dg/bound_2.f90 -Os (test for excess errors) FAIL: gfortran.dg/bound_2.f90 -g -flto (internal compiler error) FAIL: gfortran.dg/bound_7.f90 -O0 (test for excess errors) FAIL: gfortran.dg/bound_7.f90 -O1 (internal compiler error) FAIL: gfortran.dg/bound_7.f90 -O1 (test for excess errors) FAIL: gfortran.dg/bound_7.f90 -O2 (internal compiler error) FAIL: gfortran.dg/bound_7.f90 -O2 (test for excess errors) FAIL: gfortran.dg/bound_7.f90 -O3 -fomit-frame-pointer (internal compile= r error) FAIL: gfortran.dg/bound_7.f90 -O3 -fomit-frame-pointer (test for excess = errors) FAIL: gfortran.dg/bound_7.f90 -O3 -fomit-frame-pointer -funroll-loops (i= nternal compiler error) FAIL: gfortran.dg/bound_7.f90 -O3 -fomit-frame-pointer -funroll-loops (t= est for excess errors) FAIL: gfortran.dg/bound_7.f90 -O3 -fomit-frame-pointer -funroll-all-loops= -finline-functions (internal compiler error) FAIL: gfortran.dg/bound_7.f90 -O3 -fomit-frame-pointer -funroll-all-loops= -finline-functions (test for excess errors) FAIL: gfortran.dg/bound_7.f90 -O3 -g (internal compiler error) FAIL: gfortran.dg/bound_7.f90 -O3 -g (test for excess errors) FAIL: gfortran.dg/bound_7.f90 -Os (internal compiler error) FAIL: gfortran.dg/bound_7.f90 -Os (test for excess errors) FAIL: gfortran.dg/bound_7.f90 -g -flto (internal compiler error) FAIL: gfortran.dg/bound_7.f90 -g -flto (test for excess errors) FAIL: gfortran.dg/bound_8.f90 -O0 (internal compiler error) FAIL: gfortran.dg/bound_8.f90 -O0 (test for excess errors) FAIL: gfortran.dg/bound_8.f90 -O1 (internal compiler error) FAIL: gfortran.dg/bound_8.f90 -O1 (test for excess errors) FAIL: gfortran.dg/bound_8.f90 -O2 (internal compiler error) FAIL: gfortran.dg/bound_8.f90 -O2 (test for excess errors) FAIL: gfortran.dg/bound_8.f90 -O3 -fomit-frame-pointer (internal compile= r error) FAIL: gfortran.dg/bound_8.f90 -O3 -fomit-frame-pointer (test for excess = errors) FAIL: gfortran.dg/bound_8.f90 -O3 -fomit-frame-pointer -funroll-loops (i= nternal compiler error) FAIL: gfortran.dg/bound_8.f90 -O3 -fomit-frame-pointer -funroll-loops (t= est for excess errors) FAIL: gfortran.dg/bound_8.f90 -O3 -fomit-frame-pointer -funroll-all-loops= -finline-functions (internal compiler error) FAIL: gfortran.dg/bound_8.f90 -O3 -fomit-frame-pointer -funroll-all-loops= -finline-functions (test for excess errors) FAIL: gfortran.dg/bound_8.f90 -O3 -g (internal compiler error) FAIL: gfortran.dg/bound_8.f90 -O3 -g (test for excess errors) FAIL: gfortran.dg/bound_8.f90 -Os (internal compiler error) FAIL: gfortran.dg/bound_8.f90 -Os (test for excess errors) FAIL: gfortran.dg/bound_8.f90 -g -flto (internal compiler error) FAIL: gfortran.dg/bound_8.f90 -g -flto (test for excess errors) I think the line if (!upper && as->type =3D=3D AS_ASSUMED_SHAPE && dim) should be something such as (untested) if (!upper && dim && as && as->type =3D=3D AS_ASSUMED_SHAPE) Dominique > Le 5 avr. 2015 =E0 22:37, Thomas Koenig a =E9crit= : >=20 > Hi Dominique, >=20 >> which means that -fexternal-blas should disable the inlining. >=20 > It is not surprising that a higly tuned BLAS library is better than > a simple inlining for large matrices. >=20 > I did some tests by adjusting n; it seems the inline version is > faster for n<=3D22, which is not too bad. >=20 > Regarding your other test case: This tests matrix*vector > multiplication, which is not implemented yet :-) >=20 > Regards, >=20 > Thomas