This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/34641] [4.3 Regression] ICE in reload_cse_simplify_operands, at postreload.c:395
- From: "krebbel at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 7 Jan 2008 17:28:30 -0000
- Subject: [Bug target/34641] [4.3 Regression] ICE in reload_cse_simplify_operands, at postreload.c:395
- References: <bug-34641-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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