This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]