From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15561 invoked by alias); 13 Dec 2001 08:15:55 -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 12699 invoked from network); 13 Dec 2001 08:14:37 -0000 Received: from unknown (HELO atrey.karlin.mff.cuni.cz) (195.113.31.123) by sources.redhat.com with SMTP; 13 Dec 2001 08:14:37 -0000 Received: (from hubicka@localhost) by atrey.karlin.mff.cuni.cz (8.9.3/8.9.3/Debian 8.9.3-21) id JAA25335; Thu, 13 Dec 2001 09:14:33 +0100 Date: Thu, 13 Dec 2001 01:28:00 -0000 From: Jan Hubicka To: John David Anglin Cc: gcc@gcc.gnu.org, jh@suse.cz, rth@redhat.com Subject: Re: Question regarding ICE in instantiate_virtual_regs_1, at function.c:3880 Message-ID: <20011213091433.F24699@atrey.karlin.mff.cuni.cz> References: <200112121636.fBCGaQ0Z019485@hiauly1.hia.nrc.ca> <200112122350.fBCNoD9E020213@hiauly1.hia.nrc.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200112122350.fBCNoD9E020213@hiauly1.hia.nrc.ca> User-Agent: Mutt/1.3.20i X-SW-Source: 2001-12/txt/msg00689.txt.bz2 > > > I am seeing a number of ICEs in the testsuite in instantiate_virtual_regs_1, > > > at function.c:3880, on vax-dec-ultrix4.3 with the main. The first one that > > > I looked at occurs on this insn in gcc.c-torture/compile/991213-1.c: > > > > > > (insn 22 21 23 (set (mem/f:DF (plus:SI (reg/f:SI 17 virtual-stack-vars) > > > (const_int -20 [0xffffffec])) [0 arg+8 S8 A64]) > > > (subreg:DF (mem:DC (plus:SI (mult:SI (reg:SI 21) > > > (const_int 16 [0x10])) > > > (mem/f:SI (reg/f:SI 16 virtual-incoming-args) [0 t+0 S4 A32])) [0 S16 A32]) 8)) -1 (nil) > > > (nil)) > > > > > I have come to the conclusion that there is a problem with > GO_IF_LEGITIMATE_ADDRESS on the vax (ie, it shouldn't accept a > DCmode MEM with the above indexing) since the maximum number > of bytes that can be moved in a single insn is 8. Yes, this is the complex type hackery - basically it does the DC modes behind scene w/o validation from backend splitting it later. What you need is to figure out from where the subreg is comming and replace gen_SUBREG by simplify_gen_subreg. That should be enought I guess. In case simplify_gen_subreg for some purpose refuse to simplify memory in question, let me know. Honza > > Dave > -- > J. David Anglin dave.anglin@nrc.ca > National Research Council of Canada (613) 990-0752 (FAX: 952-6605)