From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14775 invoked by alias); 22 Nov 2007 15:53:24 -0000 Received: (qmail 14730 invoked by uid 48); 22 Nov 2007 15:53:05 -0000 Date: Thu, 22 Nov 2007 15:53:00 -0000 Message-ID: <20071122155305.14729.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug inline-asm/23200] [4.0/4.1/4.2/4.3 regression] rejects "i"(&var + 1) 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: 2007-11/txt/msg02123.txt.bz2 ------- Comment #32 from jakub at gcc dot gnu dot org 2007-11-22 15:52 ------- Or alternatively make sure to gimplify all inputs which allow reg or mem first, then gimplify those that don't allow either, which for -O0 should hopefully mean all such expressions stay in the same basic block as the asm and then if (!optimize) in expand_gimple_basic_block look at asm inputs and if some of them doesn't allow mem nor reg and is gimple register, walk back to find definitions within the bb and reconstruct the expression (kind of very lame TER alternative) and stop whenever some of the used gimple reg definitions can't be found, or once it is not TREE_CONSTANT. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23200