From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5695 invoked by alias); 22 Jul 2010 14:58:59 -0000 Received: (qmail 5653 invoked by uid 48); 22 Jul 2010 14:58:38 -0000 Date: Thu, 22 Jul 2010 14:58:00 -0000 Message-ID: <20100722145838.5652.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug bootstrap/45028] [4.6 regression] ICE building 64-bit libjava on Solaris 2/SPARC: output_operand: invalid expression as operand 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: 2010-07/txt/msg02401.txt.bz2 ------- Comment #18 from jakub at gcc dot gnu dot org 2010-07-22 14:58 ------- Sounds like a cprop_hardreg bug. Before that pass we have (after a call_insn): (insn 264 263 266 2 /vol/gcc/src/hg/trunk/local/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java:123 (set (reg/f:DI 1 %g1 [332]) (reg:DI 8 %o0)) 60 {*movdi_insn_sp64} (expr_list:REG_NOALIAS (reg/f:DI 1 %g1 [332]) (nil))) (debug_insn 266 264 267 2 /vol/gcc/src/hg/trunk/local/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java:123 (var_location:DI this (reg/f:DI 1 %g1 [332])) -1 (nil)) ... (insn 1290 273 274 2 /vol/gcc/src/hg/trunk/local/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java:199 (set (mem/c:DI (plus:DI (reg/f:DI 30 %fp) (const_int 2023 [0x7e7])) [53 S8 A64]) (reg:DI 1 %g1)) 60 {*movdi_insn_sp64} (expr_list:REG_DEAD (reg:DI 1 %g1) (nil))) but in *.cprop_hardreg: (insn 264 263 266 2 /vol/gcc/src/hg/trunk/local/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java:123 (set (reg/f:DI 1 %g1 [332]) (reg:DI 8 %o0)) 60 {*movdi_insn_sp64} (expr_list:REG_NOALIAS (reg/f:DI 1 %g1 [332]) (nil))) (debug_insn 266 264 267 2 /vol/gcc/src/hg/trunk/local/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java:123 (var_location:DI this (reg/f:DI 1 %g1 [332])) -1 (nil)) ... (insn 1290 273 274 2 /vol/gcc/src/hg/trunk/local/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java:199 (set (mem/c:DI (plus:DI (reg/f:DI 30 %fp) (const_int 2023 [0x7e7])) [53 S8 A64]) (reg:DI 8 %o0 [1])) 60 {*movdi_insn_sp64} (expr_list:REG_DEAD (reg:DI 1 %g1) (nil))) The %g1 use in 1290 was the only use of %g1 in real insns, but cprop_hardreg failed to replace the %g1 uses in debug_insn for some reason. Then in *.dce the insn 264 is removed as dead, but nothing resets the debug_insns. Rainer, do you think you could run make check in gcc/ subdir (assuming libjava was the last unbuilt library and say libstdc++/libgfortran/libgomp are already built) to see if this can be reproduced even on some C or C++ testcase? Debugging Java failures with cross isn't fun. -- jakub at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aoliva at gcc dot gnu dot | |org Last reconfirmed|0000-00-00 00:00:00 |2010-07-22 14:58:37 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45028