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)


> On 6/25/07 8:01 PM, Jan Hubicka wrote:
> 
> > With the patch http://gcc.gnu.org/ml/gcc-patches/2007-06/msg01780.html
> > I can get i686 and x86-64 into bootstrapland with different 2 testsuite
> > regressions, both seems to be caused by regmove pass that is fixable by
> > the same infrastructure as introduced by the patch.
> 
> 
> How expensive is this verification?  My inclination is to enable the

Not overly expensive, it is simple pass over RTL chain setting/clearing
the flags.  I can get more precise data, but I had timevar for it and
never saw really important percentages (unlike SSA verifier for
instance)

I am just running another round of tests on the mainline after the
fixes.  Now i686 is clean, x86-64 didn't complete yet (last time there
was one testsuite regression I have patch for in queue), ia64 has one
failure same as x86-64 had:

gcc.c-torture/execute/loop-3b.c compilation,  -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions  (internal compiler error)                     
gcc.c-torture/execute/loop-3b.c compilation,  -O3 -fomit-frame-pointer -funroll-loops  (internal compiler error)                                            

PPC fails on:
/abuild/gcc-test/gcc/libjava/classpath/native/fdlibm/s_expm1.c: In function 'expm1':
/abuild/gcc-test/gcc/libjava/classpath/native/fdlibm/s_expm1.c:228: error: invalid rtl sharing found in the insn
(insn:TI 331 524 604 36 /abuild/gcc-test/gcc/libjava/classpath/native/fdlibm/s_expm1.c:207 (set (reg/v:DF 33 1 [orig:161 x ] [161])
        (minus:DF (reg:DF 32 0)
            (reg:DF 39 7 [251]))) 200 {*subdf3_fpr} (expr_list:REG_DEAD (reg:DF 39 7 [251])
        (expr_list:REG_DEAD (reg:DF 32 0)
            (expr_list:REG_DEAD (subreg:DF (reg/v:DI 9 9 [orig:153 sh_u ] [153]) 0)
                (expr_list:REG_EQUAL (minus:DF (subreg:DF (reg/v:DI 9 9 [orig:153 sh_u ] [153]) 0)
                        (const_double:DF 1.0e+0 [0x0.8p+1]))
                    (nil))))))
/abuild/gcc-test/gcc/libjava/classpath/native/fdlibm/s_expm1.c:228: error: shared rtx
(subreg:DF (reg/v:DI 9 9 [orig:153 sh_u ] [153]) 0)
/abuild/gcc-test/gcc/libjava/classpath/native/fdlibm/s_expm1.c:228: internal compiler error: internal consistency failure

It bootstraps without Java.

PPC64 didn't complette yet.

> sharing verifier in a couple of steps:
> 
> 1- Right now, enable it in every pass that doesn't expose bootstrap
> problems.  I'm actually willing to live with breakage in the testsuite
> and address it during stages 2 and 3.

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.

My plan is to debug the PPC failure so all testing targets we have
(i686/x86-64/ia64/ppc/ppc64 are known to bootstrap) and then propose it
for enabling by default.

It is however likely that other targets will expose new problems.  Mips
was once brought into bootstrapland in early stage1.
> 
> 2- Once the bootstrap problems are fixed, leave the verifier enabled
> everywhere.
> 
> But since this will affect stages 2 and 3, I'd like to get Mark's opinion.

Honza


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