[Bug target/69886] ICE: in process_insert_insn, at gcse.c:1976 with --param=gcse-unrestricted-cost=0 @ aarch64

ktkachov at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Feb 22 11:40:00 GMT 2016


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.


More information about the Gcc-bugs mailing list