From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3097 invoked by alias); 10 Feb 2009 10:21:15 -0000 Received: (qmail 2986 invoked by uid 48); 10 Feb 2009 10:20:55 -0000 Date: Tue, 10 Feb 2009 10:21:00 -0000 Message-ID: <20090210102055.2985.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/39139] [4.4 Regression] ICE with stringop and register var In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "jakub 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: 2009-02/txt/msg00862.txt.bz2 ------- Comment #24 from jakub at gcc dot gnu dot org 2009-02-10 10:20 ------- Their loads and stores are already separated from other computations, as they aren't is_gimple_reg. And they do have VDEFs/VUSES: # a1D.1284_24 = VDEF { a1D.1284 } a1D.1284 = 11; y.0D.1287_15 = (long unsigned intD.4) &eD.1268; # a2D.1285_26 = VDEF { a2D.1285 } a2D.1285 = y.0D.1287_15; # eD.1268_28 = VDEF # rD.1283_29 = VDEF # a1D.1284_30 = VDEF # a2D.1285_31 = VDEF { eD.1268 rD.1283 a1D.1284 a2D.1285 } __asm__ __volatile__("" : "=r" rD.1283, "=r" a1D.1284, "=r" a2D.1285 : "1" a1D.1284 : "2" a2D.1285 : "memory"); But that is not enough to prevent sinking in between these, sinking of e = {} looks solely at eD.1268_* VUSEs and the immediate user is therefore the asm. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39139