From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2812 invoked by alias); 7 Sep 2004 13:47:39 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 2803 invoked from network); 7 Sep 2004 13:47:38 -0000 Received: from unknown (HELO mx2.redhat.com) (66.187.237.31) by sourceware.org with SMTP; 7 Sep 2004 13:47:38 -0000 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.12.10/8.12.10) with ESMTP id i87Dl9l3022386; Tue, 7 Sep 2004 09:47:09 -0400 Received: from potter.sfbay.redhat.com (potter.sfbay.redhat.com [172.16.27.15]) by int-mx2.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i87Dla723327; Tue, 7 Sep 2004 09:47:36 -0400 Received: from pain (vpn50-38.rdu.redhat.com [172.16.50.38]) by potter.sfbay.redhat.com (8.11.6/8.11.6) with ESMTP id i87DlYV07952; Tue, 7 Sep 2004 06:47:34 -0700 Subject: Re: Problem with operand handling From: Andrew MacLeod To: Richard Kenner Cc: gcc mailing list , Diego Novillo In-Reply-To: <10409071331.AA24912@vlsi1.ultra.nyu.edu> References: <10409071331.AA24912@vlsi1.ultra.nyu.edu> Content-Type: text/plain Message-Id: <1094564853.31335.78.camel@pain> Mime-Version: 1.0 Date: Tue, 07 Sep 2004 13:47:00 -0000 Content-Transfer-Encoding: 7bit X-SW-Source: 2004-09/txt/msg00291.txt.bz2 On Tue, 2004-09-07 at 09:31, Richard Kenner wrote: > > It was happening via a TMT "variable". > > These are alias variables and should never pass the is_gimple_test, so > we ought not be doing anything with the address being passed into > add_stmt_operand, the entire function should be dealing with just the > 'var' aspect of whats being passed in. > > Does your variable pass this causing it to be a gimple_reg? Perhaps a > flag is set incorrectly or something? > > OK, I went back to the code before any of my changes. > > The add_stmt_operand is being called from the EXECUTE_IF_SET_IN_BITMAP > call that's looking at call_clobbered_vars. The variable in this case is > decorator_traceback and is_gimple_reg is set. In the initial case, > a TMT variable isn't involved. what is 'decorator_traceback'? >From your other note, it seems to indicate that the root of the problem is that it is being treated as *both* a virtual and a real operand, which is not allowed. The call clobbered list should NOT contain anything which passes is_gimple_reg(), to the best of my knowledge. Did you call mark_call_clobbered() on decorator_traceback? If so, why if it passes all the tests in is_gimple_reg.. ie, its not volatile, its address is not taken, and its not global... Andrew