This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/69886] ICE: in process_insert_insn, at gcse.c:1976 with --param=gcse-unrestricted-cost=0 @ aarch64
- From: "ktkachov at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 22 Feb 2016 11:40:14 +0000
- Subject: [Bug target/69886] ICE: in process_insert_insn, at gcse.c:1976 with --param=gcse-unrestricted-cost=0 @ aarch64
- Auto-submitted: auto-generated
- References: <bug-69886-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69886
ktkachov at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |ktkachov at gcc dot gnu.org
--- Comment #2 from ktkachov at gcc dot gnu.org ---
The hoisting pass ends up creating:
(insn 88 0 0 (set (reg:OI 136)
(const_int 0 [0])) -1
(nil))
which isn't valid on aarch64.
want_to_gcse_p should have rejected it via
can_assign_to_reg_without_clobbers_p.
But can_assign_to_reg_without_clobbers_p doesn't see the OImode so it only
tries to create a normal word_mode move of const_int 0 which it thinks is ok,
so it allows the instruction, which is bogus.
I have an idea for a simple fix.