From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16911 invoked by alias); 19 Aug 2009 13:54:23 -0000 Received: (qmail 16902 invoked by uid 22791); 19 Aug 2009 13:54:23 -0000 X-SWARE-Spam-Status: No, hits=-1.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_51,J_CHICKENPOX_93 X-Spam-Check-By: sourceware.org Received: from mail1-relais-roc.national.inria.fr (HELO mail1-relais-roc.national.inria.fr) (192.134.164.82) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 19 Aug 2009 13:54:15 +0000 Received: from gaia.futurs.inria.fr (HELO [195.83.212.216]) ([195.83.212.216]) by mail1-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 19 Aug 2009 15:54:13 +0200 Message-ID: <4A8C0405.9030008@inria.fr> Date: Wed, 19 Aug 2009 14:44:00 -0000 From: Albert Cohen User-Agent: Mozilla-Thunderbird 2.0.0.19 (X11/20090103) MIME-Version: 1.0 To: Richard Guenther CC: gcc@gcc.gnu.org Subject: Re: complete_unrolli / complete_unroll References: <4A8BE7B2.7080708@inria.fr> <84fc9c000908190507x708772cdueb8193a0ff7517aa@mail.gmail.com> <4A8BFF5F.5070708@inria.fr> In-Reply-To: <4A8BFF5F.5070708@inria.fr> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2009-08/txt/msg00341.txt.bz2 Albert Cohen wrote: > Thanks a lot for the quick and detailed response. > > It is more difficult than I thought, then :-( We'll think more, and > maybe come up with yet another pass ordering proposal, but definitely > this tramp3d code deserves to be processed by graphite AFTER > unrolling+cse has done its specialization trick. One way out would be to make unrolli pass a little more careful. As you suggest, the heuristic is already not quite satisfactory as it sometimes unrolls outemost loops. A better heursitic would be to run through the different cases where unrolling helps specialization (e.g., the subscripts of subscripts in the tramp3d example), and check for these patterns explicitely. But this is not easy to implement (or to make it robust, and not too syntax-dependent). Albert