From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4058 invoked by alias); 21 Sep 2010 19:04:49 -0000 Received: (qmail 3801 invoked by alias); 21 Sep 2010 19:04:28 -0000 Date: Tue, 21 Sep 2010 19:04:00 -0000 Message-ID: <20100921190428.3800.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug fortran/45648] [4.6 regression] Unnecessary temporary for transpose calls as actual argument. In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "mikael at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-09/txt/msg02421.txt.bz2 ------- Comment #7 from mikael at gcc dot gnu dot org 2010-09-21 19:04 ------- Subject: Bug 45648 Author: mikael Date: Tue Sep 21 19:04:09 2010 New Revision: 164494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=164494 Log: 2010-09-21 Mikael Morin PR fortran/45648 * trans-array.c (gfc_conv_expr_descriptor): Calculate dim out of n and info->dim. PR fortran/45648 * trans-array.c (gfc_conv_expr_descriptor): Unset full if we are accessing dimensions in reversed order. PR fortran/45648 * trans-array.c (gfc_conv_expr_descriptor): Special case noncopying intrinsic function call. * trans-array.c (gfc_conv_expr_descriptor): Remove ss lookup. Update asserts accordingly. PR fortran/45648 * trans.h (gfc_se): New field force_tmp. * trans-expr.c (gfc_conv_procedure_call): Check for argument alias and set parmse.force_tmp if some alias is found. * trans-array.c (gfc_conv_expr_descriptor): Force a temporary creation if se->force_tmp is set. 2010-09-21 Mikael Morin PR fortran/45648 * gfortran.dg/inline_transpose_1.f90: Update temporary's locations and counts. Add non-elemental function call check. PR fortran/45648 * gfortran.dg/inline_transpose_1.f90: Add function calls with aliasing arguments checks. Update temporary counts. * gfortran.dg/transpose_optimization_1.f90: New. Added: trunk/gcc/testsuite/gfortran.dg/transpose_optimization_1.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans-array.c trunk/gcc/fortran/trans-expr.c trunk/gcc/fortran/trans.h trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gfortran.dg/inline_transpose_1.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45648