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 rtl-optimization/63633] New: [avr] internal compiler error: urecognizable insn with multi insns


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63633

            Bug ID: 63633
           Summary: [avr] internal compiler error: urecognizable insn with
                    multi insns
           Product: gcc
           Version: 4.9.2
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gjl at gcc dot gnu.org
            Target: avr

void ice_mult (int x)
{
    register long reg asm ("22");
    __asm volatile (" " :: "r" (reg = 0x12345 * x));
}

This programm raises ICE when compiler with

$ avr-gcc-4.9.2 -S -Os -mmcu=avr51

Some pass is propagating hard reg:SI 22 to SET_DEST of insn 7 even though that
register is covered by clobber reg:DI 18  (DI 18 covers R18...R25):


-.c: In function 'ice_mult':
-.c:5:1: error: unrecognizable insn:
 }
 ^
(insn 7 6 8 2 (parallel [
            (set (reg/v:SI 22 r22 [ reg ])
                (mult:SI (reg:SI 45 [ D.1458 ])
                    (const_int 74565 [0x12345])))
            (clobber (reg:HI 26 r26))
            (clobber (reg:DI 18 r18))
        ]) fun-eval-avr.c:4 -1
     (nil))
-.c:5:1: internal compiler error: in extract_insn, at recog.c:2202
-.c:5:1: internal compiler error: Segmentation fault


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