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 optimization/12280] [3.4 Regression] unrecognizable insn on simple Java code


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12280


pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
          Component|java                        |optimization
     Ever Confirmed|                            |1
  GCC build triplet|i686-pc-linux-gnu           |
   GCC host triplet|i686-pc-linux-gnu           |
           Keywords|                            |ice-on-valid-code
   Last reconfirmed|0000-00-00 00:00:00         |2003-09-14 23:31:40
               date|                            |
            Summary|unrecognizable insn on      |[3.4 Regression]
                   |simple Java code            |unrecognizable insn on
                   |                            |simple Java code
   Target Milestone|---                         |3.4


------- Additional Comments From pinskia at gcc dot gnu dot org  2003-09-14 23:31 -------
I can confirm this on the mainline (20030914).  This is a regression from 3.3.
Note this is a target bug not a java bug because it compiles just fine on powerpc-apple-darwin6.6.

The problem is that combine is combining two insn which should not be combined (I thought I saw 
a bug about this before but I cannot find it right now):

(insn 4 3 5 0 Dup.java:8 (set (reg/v/f:SI 59 [ type ])
        (mem/f:SI (plus:SI (reg/f:SI 16 argp)
                (const_int 4 [0x4])) [0 type+0 S4 A32])) 38 {*movsi_1} (nil)
    (expr_list:REG_EQUIV (mem/f:SI (plus:SI (reg/f:SI 16 argp)
                (const_int 4 [0x4])) [0 type+0 S4 A32])
        (nil)))
(insn 10 9 35 0 Dup.java:8 (set (reg:CCGC 17 flags)
        (compare:CCGC (mem/s/j:SI (plus:SI (reg/v/f:SI 59 [ type ])
                    (const_int 4 [0x4])) [0 <variable>.size+0 S4 A32])
            (const_int 4 [0x4]))) 2 {*cmpsi_1_insn} (insn_list 4 (nil))
    (expr_list:REG_UNUSED (reg:CCGC 17 flags)
        (nil)))
into:
(insn 35 10 36 0 Dup.java:8 (set (reg:CCGC 17 flags)
        (compare:CCGC (mem/s/j:SI (plus:SI (mem/f:SI (plus:SI (reg/f:SI 16 argp)
                            (const_int 4 [0x4])) [0 type+0 S4 A32])
                    (const_int 4 [0x4])) [0 <variable>.size+0 S4 A32])
            (const_int 5 [0x5]))) -1 (nil)
    (expr_list:REG_DEAD (reg/v/f:SI 59 [ type ])
        (nil)))


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