[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From mmitchel at gcc dot gnu dot org 2005-05-10 01:33 --- Removing target milestone; 68k is not a primary platform. -- What|Removed |Added Target Milestone|3.4.4 |--- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From corsepiu at gcc dot gnu dot org 2004-12-16 08:41 --- I am going to reopen them and remove the avr/h8300 from PR18542. You can easily check that by testing if reverting the patch from comment #2 helps. Please read what I wrote in comment #10. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-16 05:47 --- *** Bug 18542 has been marked as a duplicate of this bug. *** -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-16 05:48 --- *** Bug 18563 has been marked as a duplicate of this bug. *** -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-16 05:49 --- (In reply to comment #12) (In reply to comment #11) Comment #7 in PR18542 said that separate PR's were going to be filed for avr and h8300. They were (PR18563 and PR18564), but somebody else has closed them as duplicates of PR15542 and merged the avr and h8300 variants of PR18542 back into PR18542. I am going to reopen them and remove the avr/h8300 from PR18542. You can easily check that by testing if reverting the patch from comment #2 helps. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From bernie at develer dot com 2004-12-15 22:37 --- Note: PR 18542 also covers avr-* targets. Comment #7 in PR18542 said that separate PR's were going to be filed for avr and h8300. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From corsepiu at gcc dot gnu dot org 2004-12-16 05:33 --- (In reply to comment #11) Comment #7 in PR18542 said that separate PR's were going to be filed for avr and h8300. They were (PR18563 and PR18564), but somebody else has closed them as duplicates of PR15542 and merged the avr and h8300 variants of PR18542 back into PR18542. I am going to reopen them and remove the avr/h8300 from PR18542. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From corsepiu at gcc dot gnu dot org 2004-12-14 13:58 --- PR18542 and this PR are not identical: Proof: * Compiling the example from comment #3 # m68k-rtems4.7-gcc -m68020 -O2 -o tmp.o -c pr18549.c pr18549.c: In function `foo': pr18549.c:31: internal compiler error: output_operand: invalid expression as operand # m68k-rtems4.7-gcc -m68000 -O2 -o tmp.o -c pr18549.c [No ICE] * Compling the example from PR18542: # m68k-rtems4.7-gcc -m68000 -O2 -o tmp.o -c cpuboot.c cpuboot.c: In function `boot_phase_1': cpuboot.c:8: internal compiler error: output_operand: invalid expression as operand # m68k-rtems4.7-gcc -m68020 -O2 -o tmp.o -c cpuboot.c cpuboot.c: In function `boot_phase_1': cpuboot.c:8: internal compiler error: output_operand: invalid expression as operand = The ICE from the example in PR15492 is independent of -m68020 Furthermore, no ICE occurs for the example from comment #3 with avr-*: # avr-rtems4.7-gcc -O2 -o tmp.o -c pr18549.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From bernie at develer dot com 2004-12-13 09:14 --- And you also need -m68020 to trigger the bug. Works fine with -m68000, so the bug must hide in one of the TARGET_68020 patterns. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From bernie at develer dot com 2004-12-13 09:29 --- It happens both on ColdFire and 680x0 (x=2), but not on 68000. output_addr_const() gets passed a TRUNCATE (HImode) rtx. I could find it in the last dump before the ICE: (insn 87 45 127 3 (set (reg:HI 0 %d0 [35]) (const:HI (truncate:HI (minus:SI (label_ref:SI 11) (label_ref:SI 54) 28 {*m68k.md:784} (nil) (insn_list:REG_LABEL 11 (insn_list:REG_LABEL 54 (nil The pattern definition in m68k.md is: (define_insn [(set (match_operand:HI 0 nonimmediate_operand =g) (match_operand:HI 1 general_src_operand gS))] !TARGET_COLDFIRE * return output_move_himode (operands);) It seems output_move_himode() inappropriately lets the TRUNCATE pass through, but since the instruction being generater is a move.l, the only place in output_move_himode() where this could have happened is: else if (CONSTANT_P (operands[1])) return move%.l %1,%0; I don't know how to fix it, this is all I could do. The full GDB backtrace is: #0 output_addr_const (file=0x82b7b50, x=0xb7fa94f0) at /usr/local/src/uclinux-tools/gcc-3.4.3/gcc/final.c:3276 #1 0x080fa36e in output_addr_const (file=0x82b7b50, x=0xb7fa94f8) at /usr/local/src/uclinux-tools/gcc-3.4.3/gcc/final.c:3202 #2 0x081d575e in print_operand () #3 0x080fa26b in output_operand (x=0xb7fa94f8, code=0) at /usr/local/src/uclinux-tools/gcc-3.4.3/gcc/final.c:3145 #4 0x080fa03c in output_asm_insn (template=0x8246011 move%.l %1,%0, operands=0x828ec20) at /usr/local/src/uclinux-tools/gcc-3.4.3/gcc/final.c:3071 #5 0x080f9105 in final_scan_insn (insn=0xb7ff6820, file=0x82b7b50, optimize=2, prescan=0, nopeepholes=0, seen=0xb4fc) at /usr/local/src/uclinux-tools/gcc-3.4.3/gcc/final.c:2449 #6 0x080f7de7 in final (first=0xb7ff32c0, file=0x82b7b50, optimize=2, prescan=0) at /usr/local/src/uclinux-tools/gcc-3.4.3/gcc/final.c:1572 #7 0x081b8461 in rest_of_compilation () #8 0x081d81a2 in tree_rest_of_compilation () #9 0x08059ba2 in c_expand_body_1 () #10 0x081d937b in cgraph_expand_function () #11 0x081da690 in cgraph_optimize () #12 0x0807dd51 in c_objc_common_finish_file () #13 0x081b9c44 in toplev_main () #14 0x0808da4b in main () -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From bernie at develer dot com 2004-12-13 09:44 --- *** Bug 18542 has been marked as a duplicate of this bug. *** -- What|Removed |Added CC||corsepiu at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From schwab at suse dot de 2004-12-13 10:38 --- I.e. though this PR and PR18542 might be the same for the m68k, I doubt this bug to be identical to the ICE on the avr. You can easily check that by testing if reverting the patch from comment #2 helps. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From bernie at develer dot com 2004-12-13 09:45 --- Please see additional comments attached to PR18542: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18542 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From corsepiu at gcc dot gnu dot org 2004-12-13 10:19 --- (In reply to comment #4) And you also need -m68020 to trigger the bug. Works fine with -m68000, so the bug must hide in one of the TARGET_68020 patterns. Note: PR 18542 also covers avr-* targets. I.e. though this PR and PR18542 might be the same for the m68k, I doubt this bug to be identical to the ICE on the avr. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From belyshev at lubercy dot com 2004-12-07 00:39 --- // small testcase, use '-O2' void foo (int j, int k) { for(;;) { switch (j) { case 2: j = 1; break; case 1: switch (k) {} break; case 4: switch (k) {} break; case 3: switch (k) {} break; case 5: j = 1; break; } } } -- What|Removed |Added Known to fail|3.3.5 3.4.3 |3.3.5 3.4.3 3.4.4 Last reconfirmed|2004-11-23 17:11:09 |2004-12-07 00:39:26 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
-- What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jh at suse dot cz |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed||1 Last reconfirmed|-00-00 00:00:00 |2004-11-23 17:11:09 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From debian-gcc at lists dot debian dot org 2004-11-21 11:44 --- Created an attachment (id=7575) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=7575action=view) preprocessed source -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
-- What|Removed |Added CC||zippel at linux-m68k dot ||org, schwab at suse dot de Known to fail||3.3.5 3.4.3 Known to work||3.2.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
-- What|Removed |Added Keywords||ice-on-valid-code Known to work|3.2.3 |3.2.3 4.0.0 Target Milestone|--- |3.4.4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592
[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand
--- Additional Comments From schwab at suse dot de 2004-11-21 22:59 --- This is the change that triggers the bug: Sun Jul 21 00:54:54 CEST 2002 Jan Hubicka [EMAIL PROTECTED] * gcse.c: Include cselib.h (constptop_register): Break out from ... (cprop_insn): ... here; kill basic_block argument. (do_local_cprop, local_cprop_pass): New functions. (one_cprop_pass): Call local_cprop_pass. -- What|Removed |Added CC||jh at suse dot cz http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18592