This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [patch, fortran] Reduce stack use in blocked matmul
- From: Christophe Lyon <christophe dot lyon at linaro dot org>
- To: Jerry DeLisle <jvdelisle at charter dot net>
- Cc: Thomas Koenig <tkoenig at netcologne dot de>, "fortran at gcc dot gnu dot org" <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 9 May 2017 14:41:02 +0200
- Subject: Re: [patch, fortran] Reduce stack use in blocked matmul
- Authentication-results: sourceware.org; auth=none
- References: <2f81b4a0-79b7-1366-56f3-7355bb9f264a@netcologne.de> <83c3a05b-be3f-4775-59d0-cfd498ad62c3@charter.net>
Hi,
On 8 May 2017 at 18:58, Jerry DeLisle <jvdelisle@charter.net> wrote:
> On 05/05/2017 01:31 PM, Thomas Koenig wrote:
>> Hello world,
>>
>> the attached patch reduces the stack usage by the blocked
>> version of matmul for cases where we don't need the full buffer.
>> This should improve stack usage.
>>
>> Regression-tested. I also added a stress test (around 3 secs of
>> CPU time on my system), it will only run once due to the "dg-do run"
>> hack).
>>
>> OK for trunk?
>>
>
> OK, thanks.
>
Since this was committed (r247753), I've noticed the following failures
on arm* targets:
- PASS now FAIL [PASS => FAIL]:
Executed from: gfortran.dg/dg.exp
gfortran.dg/allocatable_function_8.f90 -O0 execution test
gfortran.dg/allocatable_function_8.f90 -O1 execution test
gfortran.dg/allocatable_function_8.f90 -O2 execution test
gfortran.dg/allocatable_function_8.f90 -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions execution
test
gfortran.dg/allocatable_function_8.f90 -O3 -g execution test
gfortran.dg/allocatable_function_8.f90 -Os execution test
gfortran.dg/generic_20.f90 -O0 execution test
gfortran.dg/generic_20.f90 -O1 execution test
gfortran.dg/generic_20.f90 -O2 execution test
gfortran.dg/generic_20.f90 -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions execution
test
gfortran.dg/generic_20.f90 -O3 -g execution test
gfortran.dg/generic_20.f90 -Os execution test
gfortran.dg/matmul_6.f90 -O0 execution test
gfortran.dg/matmul_bounds_6.f90 -O0 execution test
gfortran.dg/matmul_bounds_6.f90 -O1 execution test
gfortran.dg/matmul_bounds_6.f90 -O2 execution test
gfortran.dg/matmul_bounds_6.f90 -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions execution
test
gfortran.dg/matmul_bounds_6.f90 -O3 -g execution test
gfortran.dg/matmul_bounds_6.f90 -Os execution test
gfortran.dg/operator_1.f90 -O0 execution test
Executed from: gfortran.fortran-torture/execute/execute.exp
gfortran.fortran-torture/execute/intrinsic_matmul.f90 execution, -O0
and the new tests fail too:
- FAIL appears [ => FAIL]:
Executed from: gfortran.dg/dg.exp
gfortran.dg/matmul_15.f90 -O execution test
gfortran.dg/matmul_bounds_5.f90 -O0 output pattern test, is
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Christophe
> Jerry