gcse.c patch breaks simd-2.c

Aldy Hernandez aldyh@redhat.com
Wed Apr 9 18:30:00 GMT 2003


The patch below is causing the excute/simd-2.c regression.  IIRC 
(Geoff, correct me if I'm wrong), simd-2.c was already failing on PPC, 
but it was failing on execution, not compilation.

After your gcse.c change, compilation is ICEing with:

	internal compiler error: in reg_overlap_mentioned_p, at rtlanal.c:1635
	Please submit a full bug report,

I thought the problem was mine because of the SIMD changes I made the 
same day, but after playing CVS games, I narrowed the problem to the 
gcse.c changes.

Could you take a look at this?

You can reproduce the problem with a powerpc-eabi cross toolchain, and 
compiling the attached preprocessed file with -O3.  I believe the 
problem is also present in AIX, Darwin, and Linux (all PPC).

Thanks.

+ 2003-04-01  Roger Sayle  <roger@eyesopen.com>
+
+       PR fortran/9974
+       * gcse.c (reg_killed_on_egde): New function to test whether the
+       given reg is overwritten by any instruction queued on an edge.
+       (bypass_block): Ignore substitutions killed on incoming edges.
+       Don't bypass outgoing edges that have queued instructions.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: break.i
Type: application/octet-stream
Size: 472 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20030409/600cdf10/attachment.obj>


More information about the Gcc mailing list