On Tue, 2006-11-07 at 17:30 -0500, Andrew Pinski wrote: > > > > Bootstrap off the trunk on powerpc-linux fails currently with: > > > > /cvs/gcc-svn/trunk/gcc/libgcov.c: In function =E2=80=98__gcov_execl=E2=80= > > =99: > > /cvs/gcc-svn/trunk/gcc/libgcov.c:796: internal compiler error: RTL check: e= > > xpected code 'set' or 'clobber', have 'parallel' in adjacent_mem_locations,= > > at config/rs6000/rs6000.c:16955 > > > > Is this already known or should I file a bugreport? I haven't tested > > for over a week, so do not know when this was introduced... > > This was introduced by: > 2006-11-01 Pete Steinmetz <[EMAIL PROTECTED]> > Peter Bergner <[EMAIL PROTECTED]> > > * doc/invoke.texi: Add cpu_type power6x > > The function which we are crashing in is adjacent_mem_locations which is > new with the above patch.
The parallel that is causing the ICE is a store with update RTL insn. It seems like we should detect that and reach into the parallel and grab the actual store insn. I'll look into adding that. Peter Breakpoint 5, adjacent_mem_locations (insn1=0x4040bf60, insn2=0x4040bde0) at /home/bergner/gcc/power6/gcc-mainline-power6/gcc/config/rs6000/rs6000.c:16955 16955 rtx a = SET_DEST (PATTERN (insn1)); (gdb) call debug_rtx (insn1) (insn:HI 126 125 116 10 /home/bergner/gcc/power6/gcc-mainline-power6/gcc/libgcov.c:789 (parallel [ (set (mem:SI (plus:SI (reg/f:SI 1 1) (reg:SI 182)) [0 S4 A32]) (reg:SI 181)) (set (reg/f:SI 1 1) (plus:SI (reg/f:SI 1 1) (reg:SI 182))) ]) 375 {movsi_update} (nil) (nil)) (gdb) call debug_rtx (insn2) (insn:HI 116 126 128 10 /home/bergner/gcc/power6/gcc-mainline-power6/gcc/libgcov.c:785 (set (mem/s:SI (plus:SI (reg/f:SI 113 sfp) (const_int 12 [0xc])) [3 <variable>.overflow_arg_area+0 S4 A32]) (reg/f:SI 148 [ ap_I__overflow_arg_areaap_I_I_lsm.82 ])) 323 {*movsi_internal1} (nil) (nil))