This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RTL sharing tester (for testing)


Jan Hubicka <jh@suse.cz> wrote:
> The problem with is that the nature of problem is very target specific.
> All the remaining problems are either very weird side cases, or target
> issues.  This is why I am posting the patch so people can test it on
> their favorite development platform.

FYI, I've tried your tester on SH and got an error which looks
similar to PPC's one:

../../../../../../TMP/trunk/libjava/classpath/native/fdlibm/e_exp.c:164: error: invalid rtl sharing found in the insn
(insn:HI 207 303 256 24 ../../../../../../TMP/trunk/libjava/classpath/native/fdlibm/e_exp.c:162 (parallel [
            (set (reg/v:DF 76 fr12 [orig:180 x ] [180])
                (mult:DF (reg/v:DF 76 fr12 [orig:180 x ] [180])
                    (reg:DF 66 fr2)))
            (use (reg/v:PSI 151 ))
        ]) 340 {muldf3_i} (expr_list:REG_DEAD (reg/v:PSI 151 )
        (expr_list:REG_DEAD (subreg:DF (reg/v:DI 1 r1 [orig:178 sh_u ] [178]) 0)            (expr_list:REG_DEAD (reg:DF 66 fr2)
                (expr_list:REG_EQUAL (mult:DF (subreg:DF (reg/v:DI 1 r1 [orig:178 sh_u ] [178]) 0)
                        (const_double:DF 9.33263618503218878990089544723817169617091446372e-302 [0x0.8p-999]))
                    (nil))))))
../../../../../../TMP/trunk/libjava/classpath/native/fdlibm/e_exp.c:164: error: shared rtx
(subreg:DF (reg/v:DI 1 r1 [orig:178 sh_u ] [178]) 0)
../../../../../../TMP/trunk/libjava/classpath/native/fdlibm/e_exp.c:164: internal compiler error: internal consistency failure

and SH bootstraps without Java.  As an experiment, I've tried a one
liner:

--- ORIG/trunk/gcc/df-problems.c        2007-06-22 09:16:00.000000000 +0900
+++ TMP/trunk/gcc/df-problems.c 2007-06-26 13:53:47.000000000 +0900
@@ -3713,7 +3713,8 @@ df_set_note (enum reg_note note_type, rt
       }

   /* Did not find the note.  */
-  REG_NOTES (insn) = alloc_EXPR_LIST (note_type, reg, REG_NOTES (insn));
+  REG_NOTES (insn) = alloc_EXPR_LIST (note_type, copy_rtx (reg),
+                                     REG_NOTES (insn));
   return old;
 }

Then the above error on SH went away.  This one liner may be
an overkill, but I hope that this experiment will help experts
to narrow down the problem.

Regards,
	kaz


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]