From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17795 invoked by alias); 21 Jul 2010 09:33:56 -0000 Received: (qmail 17742 invoked by uid 48); 21 Jul 2010 09:33:42 -0000 Date: Wed, 21 Jul 2010 09:33:00 -0000 Message-ID: <20100721093342.17741.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug rtl-optimization/43494] [4.4/4.5/4.6 Regression] Overlooked dependency causes wrong scheduling, wrong code In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "steven 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: 2010-07/txt/msg02194.txt.bz2 ------- Comment #19 from steven at gcc dot gnu dot org 2010-07-21 09:33 ------- x_addr is a VALUE that has no locs: Breakpoint 4, true_dependence (mem=0x20000000005ddf68, mem_mode=VOIDmode, x=0x20000000005ddfb0, varies=0x2000000000496720) at ../../trunk/gcc/alias.c:2330 2330 if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem)) (gdb) cont Continuing. Breakpoint 11, get_addr (x=0x6000000000316e28) at ../../trunk/gcc/alias.c:1726 1726 if (GET_CODE (x) != VALUE) (gdb) up #1 0x400000000036eb50 in true_dependence (mem=0x20000000005ddf68, mem_mode=SImode, x=0x20000000005ddfb0, varies=0x2000000000496720) at ../../trunk/gcc/alias.c:2367 2367 x_addr = get_addr (x_addr); (gdb) down #0 get_addr (x=0x6000000000316e28) at ../../trunk/gcc/alias.c:1726 1726 if (GET_CODE (x) != VALUE) (gdb) next 1728 v = CSELIB_VAL_PTR (x); (gdb) 1729 if (v) (gdb) 1731 for (l = v->locs; l; l = l->next) (gdb) p v->locs $72 = (struct elt_loc_list *) 0x0 (gdb) p debug_rtx(x) (value:DI 10:10 @0x6000000000316e28/0x6000000000316d10) $73 = void (gdb) So get_addr just returns the VALUE. Is it *ever* OK for get_addr to return a VALUE rtx? It seems to me this should never happen, and we should assert that. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43494