[Bug target/18592] [3.3/3.4 regression] [m68k] ICE in output_operand: invalid expression as operand

2005-05-09 Thread mmitchel at gcc dot gnu dot org

--- 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

2004-12-16 Thread corsepiu at gcc dot gnu dot org

--- 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

2004-12-15 Thread pinskia at gcc dot gnu dot org

--- 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

2004-12-15 Thread pinskia at gcc dot gnu dot org

--- 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

2004-12-15 Thread pinskia at gcc dot gnu dot org

--- 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

2004-12-15 Thread bernie at develer dot com

--- 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

2004-12-15 Thread corsepiu at gcc dot gnu dot org

--- 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

2004-12-14 Thread corsepiu at gcc dot gnu dot org

--- 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

2004-12-13 Thread bernie at develer dot com

--- 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

2004-12-13 Thread bernie at develer dot com

--- 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

2004-12-13 Thread bernie at develer dot com

--- 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

2004-12-13 Thread schwab at suse dot de

--- 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

2004-12-13 Thread bernie at develer dot com

--- 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

2004-12-13 Thread corsepiu at gcc dot gnu dot org

--- 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

2004-12-06 Thread belyshev at lubercy dot com

--- 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

2004-11-23 Thread schwab at suse dot de


-- 
   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

2004-11-21 Thread debian-gcc at lists dot debian dot org

--- 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

2004-11-21 Thread debian-gcc at lists dot debian dot org


-- 
   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

2004-11-21 Thread pinskia at gcc dot gnu dot org


-- 
   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

2004-11-21 Thread schwab at suse dot de

--- 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