[Bug target/45402] New: [Regression gcc.dg/pr28796-2] ICE in extract_insn, at recog.c:2127
After the following pathes, I got a regression at gcc.dg/pr28796-2.c. http://gcc.gnu.org/ml/gcc-patches/2010-06/msg01650.html http://gcc.gnu.org/ml/gcc-patches/2010-06/msg01997.html http://gcc.gnu.org/ml/gcc-patches/2010-06/msg03084.html Executing on host: /home5/rx/KPIT/build/rx-elfbldtrunk/build-gcc-trunk/gcc/xgcc -B/home5/rx/KPIT/build/rx-elfbldtrunk/build-gcc-trunk/gcc/ /home5/rx/fsf/src/gcc-trunk/gcc/testsuite/gcc.dg/pr28796-2.c -O2 -funsafe-math-optimizations -fno-finite-math-only -DUNSAFE -DSTACK_SIZE=4096 -msim-lm -o ./pr28796-2.exe(timeout = 300) In file included from /home5/rx/fsf/src/gcc-trunk/gcc/testsuite/gcc.dg/pr28796-2.c:6:0: /home5/rx/fsf/src/gcc-trunk/gcc/testsuite/gcc.dg/tg-tests.h: In function 'foo_1': /home5/rx/fsf/src/gcc-trunk/gcc/testsuite/gcc.dg/tg-tests.h:96:1: error: unrecognizable insn: (jump_insn 287 286 467 104 (set (pc) (if_then_else (unle (reg:SF 34 [ D.2050 ]) (const_double:SF -256 [0xff00] 3.4028234663852885981170418348451692544e+38 [0x0.ffp+128])) (label_ref 290) (pc))) /home5/rx/fsf/src/gcc-trunk/gcc/testsuite/gcc.dg/tg-tests.h:89 -1 (expr_list:REG_BR_PROB (const_int 5000 [0x1388]) (nil)) - 290) /home5/rx/fsf/src/gcc-trunk/gcc/testsuite/gcc.dg/tg-tests.h:96:1: internal compiler error: in extract_insn, at recog.c:2127 Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions. compiler exited with status 1 Regards, Kazuhiro Inaoka -- Summary: [Regression gcc.dg/pr28796-2] ICE in extract_insn, at recog.c:2127 Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: critical Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kazuhiro dot inaoka dot ud at renesas dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: rx-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45402
[Bug target/45000] RX signed extened unsigned char or short return value.
--- Comment #5 from kazuhiro dot inaoka dot ud at renesas dot com 2010-08-03 09:32 --- (In reply to comment #4) Hi Nick, My request seems to depend on Renesas callee/caller-extension spec. May I also suggest that you contact Matt Newsome matt.news...@renesas.com at Renesas who is also concerned with this particular problem. OK. Please close this ticket. Best Regards, Kazuhiro Inaoka -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45000
[Bug target/45000] RX signed extened unsigned char or short return value.
--- Comment #2 from kazuhiro dot inaoka dot ud at renesas dot com 2010-07-28 07:19 --- (In reply to comment #1) Hi Nick Thank you for your reply. Your example is OK. But I'm not clear. extension being performed. Eg: int bar (int a) { return a func(); } If the func() is external function, output code is the following. _bar: push.l r7 mov.L r1, r7 bsr_func mouv.B r1, r1 cmpr7, r1 scgt.L r1 rtsd #4, r7-r7 If the return value is zero exteneded, movu.B r1, r1 code can be removed. Is the explanation san integer conversion rank? PS. See section 6.3.1.1 of the ISO C99 standard for more information about this behaviour I think that my request is depend on rx cpu target like sh, m32r not m32c. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45000
[Bug target/45000] New: RX signed extened unsigned char or short return value.
When a function return type is unsigned char, the return value is sign extended by MOV instruction. It should be MOVU instruction. ex) unsigned char uA; unsigned char func() { return uA; } NG) _func: mov.L #_uA, r14 mov.B [r14], r1 rts .size _func, .-_func .comm _uA,1,4 -- Summary: RX signed extened unsigned char or short return value. Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kazuhiro dot inaoka dot ud at renesas dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: rx-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45000
[Bug c/44884] New: RX tst insn has been not fixed yet.
Hi Nick, Thank you for the following pathes of RX optimizing. http://gcc.gnu.org/ml/gcc-patches/2010-06/msg01650.html http://gcc.gnu.org/ml/gcc-patches/2010-06/msg01997.html http://gcc.gnu.org/ml/gcc-patches/2010-06/msg03084.html The msg03084 patch include to generate TST instruction rule. But I can't see TST from some C patterns. Regards, Kazuhiro Inaoka -- Summary: RX tst insn has been not fixed yet. Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kazuhiro dot inaoka dot ud at renesas dot com GCC build triplet: i686-linux GCC host triplet: i686-linux GCC target triplet: rx-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44884
[Bug c/44884] RX tst insn has been not fixed yet.
--- Comment #1 from kazuhiro dot inaoka dot ud at renesas dot com 2010-07-09 05:02 --- Created an attachment (id=21154) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21154action=view) check pattern C source This is a check pattern. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44884
[Bug c/44884] RX tst insn has been not fixed yet.
--- Comment #3 from kazuhiro dot inaoka dot ud at renesas dot com 2010-07-09 05:09 --- Created an attachment (id=21155) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21155action=view) It's not enough case. The code that I expect is the following. _func: tst #4, r1 bne .L6 tst #1, r1 bne .L7 tst #2, r1 bne .L8 bra _f4 .L8: bra _f3 .L6: bra _f1 .L7: bra _f2 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44884
[Bug c/44884] RX tst insn has been not fixed yet.
--- Comment #5 from kazuhiro dot inaoka dot ud at renesas dot com 2010-07-09 05:24 --- (In reply to comment #4) Right, I haven't sent the patch in yet. The other bug needs to be fixed first; the TST patch triggers an ICE otherwise. Thank you for quick response, OK, I'm waiting for it. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44884