From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23568 invoked by alias); 6 Jul 2007 22:11:37 -0000 Received: (qmail 23538 invoked by uid 48); 6 Jul 2007 22:11:26 -0000 Date: Fri, 06 Jul 2007 22:11:00 -0000 Subject: [Bug target/32659] New: abort during reload on (subreg:PSI (reg:DI ...) 4) X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "zackw at panix dot com" 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-07/txt/msg00783.txt.bz2 The attached test case produces this RTL sequence after lreg, when compiled at -O2 -mcpu=m32cm: (insn 12 11 13 2 ba-bug.ii:24 (set (reg:DI 26 [ p.2 ]) (mem/s:DI (reg/f:PSI 31) [3 S8 A8])) 176 {movdi_splittable} (expr_list:R EG_DEAD (reg/f:PSI 31) (nil))) (insn 13 12 14 2 ba-bug.ii:24 (set (reg:PSI 25 [ p$second ]) (subreg:PSI (reg:DI 26 [ p.2 ]) 4)) 172 {movpsi_op} (nil)) [For reference, in -mcpu=m32cm mode, this target uses PSImode for 24-bit pointers, which appear to be being padded to 32 bits in memory.] During processing of insn 13, reload demands a MODE_PARTIAL_INT mode with at least 64 bits. There is no such mode, and the compiler aborts in smallest_mode_for_size. The test case is simplified from libstdc++ bitmap_alloc.cc. It is extremely fragile; any further simplification and the problem RTL sequence will be eliminated by earlier optimizers. -- Summary: abort during reload on (subreg:PSI (reg:DI ...) 4) Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: zackw at panix dot com GCC target triplet: m32c-unknown-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32659