From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28095 invoked by alias); 16 Dec 2007 17:53:37 -0000 Received: (qmail 28086 invoked by uid 22791); 16 Dec 2007 17:53:37 -0000 X-Spam-Check-By: sourceware.org Received: from province.act-europe.fr (HELO province.act-europe.fr) (212.99.106.214) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sun, 16 Dec 2007 17:53:30 +0000 Received: from localhost (localhost [127.0.0.1]) by filtered-province.act-europe.fr (Postfix) with ESMTP id A29041648EA for ; Sun, 16 Dec 2007 18:53:17 +0100 (CET) Received: from province.act-europe.fr ([127.0.0.1]) by localhost (province.act-europe.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dyPPx4lBZoEj for ; Sun, 16 Dec 2007 18:53:17 +0100 (CET) Received: from [192.168.1.3] (dyn-83-156-59-86.ppp.tiscali.fr [83.156.59.86]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by province.act-europe.fr (Postfix) with ESMTP id 5B6B41648E9 for ; Sun, 16 Dec 2007 18:53:17 +0100 (CET) From: Eric Botcazou To: gcc@gcc.gnu.org Subject: Problem with SSA inlining and default defs Date: Sun, 16 Dec 2007 18:01:00 -0000 User-Agent: KMail/1.7.1 MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_VZWZHv3j8kVF3v0" Message-Id: <200712161854.29543.ebotcazou@adacore.com> 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: 2007-12/txt/msg00471.txt.bz2 --Boundary-00=_VZWZHv3j8kVF3v0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 679 Hi, How SSA inlining and default defs for uninitialized variables are supposed to interact? Suppose you have the following situation BB0 ... | \ (ab) | BB1 s_2 = f(s_1(D)) | / BB2 s_3 = PHI in a function that gets inlined into a loop. The liveness of s_1(D) in BB0 will propagate to BB2 along the backwards edge and you get overlapping live ranges for s_1(D) and s_3. If s_1(D) is SSA_NAME_OCCURS_IN_ABNORMAL_PHI, the compilation will abort during SSA coalescing because they must be coalesced. This is on the mainline, Ada testcase attached, run 'gnatchop' on it and compile at -O -gnatp. Thanks in advance. -- Eric Botcazou --Boundary-00=_VZWZHv3j8kVF3v0 Content-Type: text/plain; charset="us-ascii"; name="p.ada" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="p.ada" Content-length: 508 package Q is procedure Read(S : out Integer); procedure Restore(S : in out Integer); end Q; package P is type Int_Ptr is access all Integer; procedure Exec(P : Int_Ptr); end P; with Q; use Q; package body P is procedure Lock is S : Integer; begin Read(S); Restore(S); exception when others => Restore(S); end; procedure Exec(P : Int_Ptr) is begin while P /= NULL loop Lock; end loop; end; end P; --Boundary-00=_VZWZHv3j8kVF3v0--