From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11292 invoked by alias); 23 Feb 2012 21:12:13 -0000 Received: (qmail 11276 invoked by uid 22791); 23 Feb 2012 21:12:12 -0000 X-SWARE-Spam-Status: No, hits=-6.7 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 23 Feb 2012 21:12:00 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q1NLBxs8002553 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 23 Feb 2012 16:11:59 -0500 Received: from austin.quesejoda.com (vpn-9-163.rdu.redhat.com [10.11.9.163]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id q1NLBwdb028397; Thu, 23 Feb 2012 16:11:58 -0500 Message-ID: <4F46AB9D.7050407@redhat.com> Date: Thu, 23 Feb 2012 21:41:00 -0000 From: Aldy Hernandez User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.1) Gecko/20120209 Thunderbird/10.0.1 MIME-Version: 1.0 To: Richard Henderson , gcc-patches CC: Torvald Riegel Subject: Re: [PR51752] publication safety violations in loop invariant motion pass References: <4F46833C.2090808@redhat.com> In-Reply-To: <4F46833C.2090808@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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 X-SW-Source: 2012-02/txt/msg01213.txt.bz2 On 02/23/12 12:19, Aldy Hernandez wrote: > about hit me. Instead now I save all loads in a function and iterate > through them in a brute force way. I'd like to rewrite this into a hash > of some sort, but before I go any further I'm interested to know if the > main idea is ok. For the record, it may be ideal to reuse some of the iterations we already do over the function's basic blocks, so we don't have to iterate yet again over the IL stream. Though it may complicate the pass unnecessarily.