From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8620 invoked by alias); 7 Jan 2008 17:29:12 -0000 Received: (qmail 8428 invoked by uid 48); 7 Jan 2008 17:28:30 -0000 Date: Mon, 07 Jan 2008 17:41:00 -0000 Message-ID: <20080107172830.8427.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/34641] [4.3 Regression] ICE in reload_cse_simplify_operands, at postreload.c:395 In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "krebbel 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: 2008-01/txt/msg00640.txt.bz2 ------- Comment #5 from krebbel at gcc dot gnu dot org 2008-01-07 17:28 ------- The (const_int 3148725999 [0xbbadbeef]) is accepted by legitimate_constant_p since it is expected to end up in the literal pool. But in this case the constant becomes part of a REG_EQUIV note of an insn moving the constant into a pseudo register. Generating a reload for a later insn using the pseudo as memory base register the REG_EQUIV note is used by push_reload to replace the pseudo directly with the constant. The emitted move insn can't be recognized since none of the constraints of the move pattern accepts the large constant. I think push_reload has to make sure that the move pattern to be emitted is able to deal with the constant taken from the reg_equiv_constant array. -- krebbel at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2008-01-07 17:28:30 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34641