[autovect] [patch] branch merge

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

[autovect] [patch] branch merge

Ira Rosen




Synched autovect-branch with mainline.
Bootstrap passed with vectorization enabled on ppc-linux, but with the
following issues left to resolve:

1. pass_scev_copy_prop caused segmentation fault during make so I
temporarily disabled it.
2. eliminate_unnecessary_casts caused failure of
gcc.dg/tree-ssa/pr22051-1.c. I commented it out, and now
gcc.dg/vect/vect-subsat.c and gcc.dg/vect/vect-ifcvt-8.c fail (we'll have
to either xfail these tests, or fix eliminate_unnecessary_casts so that
pr22051-1.c doesn't fail).
3. gcc.dg/tree-ssa/pr17100.c fails since the condition is eliminated by
some previous optimization.
4. vect-noreduc.c fails since reduction is not recognized because of
different code generated in mainline.

Other than that all the tree-vect and tree-ssa tests passed. I'll continue
to look into the rest of the regression suite.

Thanks,
Ira

Reply | Threaded
Open this post in threaded view
|

Re: [autovect] [patch] branch merge

Andrew Pinski

On Sep 14, 2005, at 10:16 AM, Ira Rosen wrote:

> 2. eliminate_unnecessary_casts caused failure of
> gcc.dg/tree-ssa/pr22051-1.c. I commented it out, and now
> gcc.dg/vect/vect-subsat.c and gcc.dg/vect/vect-ifcvt-8.c fail (we'll
> have
> to either xfail these tests, or fix eliminate_unnecessary_casts so that
> pr22051-1.c doesn't fail).

Really pr22051-1.c should only be testing on hppa-linux-gnu and
hppa-hpux
since it is really only useful for testing there where the cast is
useful.
Though fixing eliminate_unnecessary_casts would be still necessary.


Thanks,
Andrew Pinski

Reply | Threaded
Open this post in threaded view
|

Re: [autovect] [patch] branch merge

Devang Patel
In reply to this post by Ira Rosen

On Sep 14, 2005, at 7:16 AM, Ira Rosen wrote:

> Synched autovect-branch with mainline.

Thanks!

> Bootstrap passed with vectorization enabled on ppc-linux, but with the
> following issues left to resolve:
>
> 1. pass_scev_copy_prop caused segmentation fault during make so I
> temporarily disabled it.
> 2. eliminate_unnecessary_casts caused failure of
> gcc.dg/tree-ssa/pr22051-1.c. I commented it out, and now
> gcc.dg/vect/vect-subsat.c and gcc.dg/vect/vect-ifcvt-8.c fail  
> (we'll have
> to either xfail these tests, or fix eliminate_unnecessary_casts so  
> that
> pr22051-1.c doesn't fail).

I'll take a look at fixing eliminate_unnecssary_casts (). We can  
remove it once tree combiner is available. Andrew, any time estimate ?

-
Devang

> 3. gcc.dg/tree-ssa/pr17100.c fails since the condition is  
> eliminated by
> some previous optimization.
> 4. vect-noreduc.c fails since reduction is not recognized because of
> different code generated in mainline.
>
> Other than that all the tree-vect and tree-ssa tests passed. I'll  
> continue
> to look into the rest of the regression suite.
>
> Thanks,
> Ira
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [autovect] [patch] branch merge

Dorit Nuzman
In reply to this post by Ira Rosen




>
> Synched autovect-branch with mainline.
> Bootstrap passed with vectorization enabled on ppc-linux, but with the
> following issues left to resolve:
>
> 1. pass_scev_copy_prop caused segmentation fault during make so I
> temporarily disabled it.

I think you accidently commited a version that doesn't disable this pass. I
disabled it cause indeed otherwise bootstrap fails:

stage1/xgcc -Bstage1/ -B/home/dorit/autovect_dn/ppc64-yellowdog-linux/bin/
-c -g -O2 -ftree-vectorize -maltivec -DIN_GCC -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long
-Wno-variadic-macros -Wold-style-definition -Wmissing-format-attribute
-Werror -fno-common -DHAVE_CONFIG_H -I. -I. -I../../gcc/gcc
-I../../gcc/gcc/. -I../../gcc/gcc/../include
-I../../gcc/gcc/../libcpp/include ../../gcc/gcc/tree-elim-check.c -v -g -o
tree-elim-check.o
../../gcc/gcc/tree-elim-check.c: In function eliminate_redundant_checks:
../../gcc/gcc/tree-elim-check.c:469: internal compiler error: Segmentation
fault

(gdb) backtrace
#0  0x10735f58 in scev_const_prop () at
../../gcc/gcc/tree-scalar-evolution.c:2779
#1  0x1066e840 in execute_one_pass (pass=0x10a41918) at
../../gcc/gcc/passes.c:810
#2  0x1066e948 in execute_pass_list (pass=0x10a41918) at
../../gcc/gcc/passes.c:842
#3  0x1066e970 in execute_pass_list (pass=0x10a41778) at
../../gcc/gcc/passes.c:843
#4  0x1066e970 in execute_pass_list (pass=0x10a412c8) at
../../gcc/gcc/passes.c:843
#5  0x10101270 in tree_rest_of_compilation (fndecl=0xf751f700)
    at ../../gcc/gcc/tree-optimize.c:419
#6  0x10027850 in c_expand_body (fndecl=0xf751f700) at
../../gcc/gcc/c-decl.c:6636
#7  0x10702bac in cgraph_expand_function (node=0xf72efee0)
    at ../../gcc/gcc/cgraphunit.c:1037
#8  0x10702f18 in cgraph_expand_all_functions () at
../../gcc/gcc/cgraphunit.c:1103
#9  0x1070383c in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1260
#10 0x1002af9c in c_write_global_declarations () at
../../gcc/gcc/c-decl.c:7621
#11 0x105fcfe4 in compile_file () at ../../gcc/gcc/toplev.c:984
#12 0x105ff2c0 in do_compile () at ../../gcc/gcc/toplev.c:1914
#13 0x105ff34c in toplev_main (argc=49, argv=0xffffe174)
    at ../../gcc/gcc/toplev.c:1946
#14 0x100c3724 in main (argc=49, argv=0xffffe174) at
../../gcc/gcc/main.c:35
(gdb) p debug_generic_expr(phi)
D.27341_775 = PHI <0(72), 0(66), 0(64), 0(62)>;
$9 = void
(gdb)

> 2. eliminate_unnecessary_casts caused failure of
> gcc.dg/tree-ssa/pr22051-1.c. I commented it out, and now
> gcc.dg/vect/vect-subsat.c and gcc.dg/vect/vect-ifcvt-8.c fail (we'll have
> to either xfail these tests, or fix eliminate_unnecessary_casts so that
> pr22051-1.c doesn't fail).

I temporarily xfailed the two vectorizer testcases, until
eliminate_unnecessary_casts is enabled again

> 3. gcc.dg/tree-ssa/pr17100.c fails since the condition is eliminated by
> some previous optimization.

ok

> 4. vect-noreduc.c fails since reduction is not recognized because of
> different code generated in mainline.
>

I fixed the testcase

The only vectorizer testcases that are currently failing are vect-6.f90 and
vect-7.f90 cause we expect to vectorize 3 loops but now one of the loops
get eliminated (see http://gcc.gnu.org/ml/gcc/2005-09/msg00645.html)

> Other than that all the tree-vect and tree-ssa tests passed. I'll
continue
> to look into the rest of the regression suite.
>

These are all the regressions as far as I could see:

1. FAIL: gfortran.dg/pr17706.f90 execution test

2. FAIL: gcc.dg/tree-ssa/pr17100.c scan-tree-dump-times Replacing one of
the conditions 1

3. FAIL: gcc.dg/tree-ssa/20041110-1.c (test for excess errors)
      (this one was present in autovect before the merge)

4. FAIL: 23_containers/set/explicit_instantiation/3.cc (test for excess
errors)

/home/dorit/autovect_dn/build2/ppc64-yellowdog-linux/libstdc++-v3/include/bits/stl_set.h:
 In member function 'std::pair<typename std::_Rb_tree<_Key, _Key,
std::_Identity<_Key>, _Compare, typename
_Alloc::rebind<_Key>::other>::const_iterator, bool> std::set<_Key,
_Compare, _Alloc>::insert(const _Key&) [with _Key = int, _Compare =
std::less<int>, _Alloc = std::allocator<char>]':
/home/dorit/autovect_dn/build2/ppc64-yellowdog-linux/libstdc++-v3/include/bits/stl_set.h:318:
 internal compiler error: tree check: expected ssa_name, have var_decl in
is_old_name, at tree-into-ssa.c:466

5. FAIL: 23_containers/set/explicit_instantiation/3.cc (test for excess
errors)

/home/dorit/autovect_dn/build2/ppc64-yellowdog-linux/libstdc++-v3/include/bits/stl_set.h:
 In member function 'std::pair<typename std::_Rb_tree<_Key, _Key,
std::_Identity<_Key>, _Compare, typename
_Alloc::rebind<_Key>::other>::const_iterator, bool> std::set<_Key,
_Compare, _Alloc>::insert(const _Key&) [with _Key = int, _Compare =
std::less<int>, _Alloc = std::allocator<char>]':
/home/dorit/autovect_dn/build2/ppc64-yellowdog-linux/libstdc++-v3/include/bits/stl_set.h:318:
 internal compiler error: tree check: expected ssa_name, have var_decl in
is_old_name, at tree-into-ssa.c:466


Attached is the patch I committed yesterday.

Remaining issues:
- scev_const_prop bootstrap failure
- eliminate_unnecessary_casts
- the above 5 regressions

thanks,
dorit

        * passes.c (pass_scev_cprop): Temporarily disable.
        * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
        Add comment for temporarily disabling eliminate_unnecessary_casts.

        * gcc.dg/vect/vect-dv-2.c: Fix loop bound.
        * gcc.dg/vect/vect-noreduc.c: Fix test according to new
representation
        after mainline merge.
        * gcc.dg/vect/vect-ifcvt-8.c: Temporarily xfail (due to disabling
        of eliminate_unnecessary_casts).
        * gcc.dg/vect/vect-subsat.c: Likewise.

(See attached file: sept20.fixes)


> Thanks,
> Ira
>

sept20.fixes (8K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [autovect] [patch] branch merge

Sebastian Pop
Thanks for this huge merge from mainline.  I've bootstrapped
autovect-branch on i686.  Testing shows no regressions other than
those reported, with the exception of:

gfortran.dg/pr17706.f90 which is passing on i686,

FAIL: gcc.dg/tree-ssa/20041110-1.c (test for excess errors)
FAIL: gcc.dg/tree-ssa/pr17100.c scan-tree-dump-times Replacing one of the conditions 1

FAIL: gcc.dg/vect/vect-reduc-1.c execution test
FAIL: gcc.dg/vect/vect-reduc-1char.c execution test
FAIL: gcc.dg/vect/vect-reduc-1short.c execution test
FAIL: gcc.dg/vect/vect-reduc-2.c execution test
FAIL: gcc.dg/vect/vect-reduc-2char.c execution test
FAIL: gcc.dg/vect/vect-reduc-2short.c execution test
FAIL: gcc.dg/vect/vect-reduc-3.c execution test
FAIL: gcc.dg/vect/vect-reduc-7.c execution test
FAIL: gcc.dg/vect/vect-reduc-8.c execution test
FAIL: gcc.dg/vect/vect-reduc-9.c execution test
FAIL: gcc.dg/vect/fast-math-vect-reduc-5.c execution test
FAIL: gcc.dg/vect/fast-math-vect-reduc-7.c (test for excess errors)
WARNING: gcc.dg/vect/fast-math-vect-reduc-7.c compilation failed to produce executable
FAIL: gcc.dg/vect/fast-math-vect-reduc-7.c scan-tree-dump-times vectorized 3 loops 1

I can provide detailed info for each fail if needed.

Dorit Naishlos wrote:
>
> Remaining issues:
> - scev_const_prop bootstrap failure

I've given a look at this one:

(gdb) p type
$1 = 0x0
(gdb) p name
$2 = 0x2aaaab735620
(gdb) pgs
vec_D.28995_894

(gdb) pt
 <ssa_name 0x2aaaab735620 nothrow var <var_decl 0x2aaaab7dac60 vec_> def_stmt <ssa_name 0x2aaaabafe1c0>
    version 894 in-free-list>
(gdb) p phi
$4 = 0x2aaaab682900
(gdb) pgs
vec_D.28995_894 = PHI <0B(53), 0B(47)>;

(gdb)

Seems like the type of a variable from vect_create_destination_var is
not correctly initialized?

Sebastian
Reply | Threaded
Open this post in threaded view
|

Re: [autovect] [patch] branch merge

Devang Patel
In reply to this post by Dorit Nuzman

On Sep 21, 2005, at 12:05 AM, Dorit Naishlos wrote:

>> 2. eliminate_unnecessary_casts caused failure of
>> gcc.dg/tree-ssa/pr22051-1.c. I commented it out, and now
>> gcc.dg/vect/vect-subsat.c and gcc.dg/vect/vect-ifcvt-8.c fail  
>> (we'll have
>> to either xfail these tests, or fix eliminate_unnecessary_casts so  
>> that
>> pr22051-1.c doesn't fail).
>>
>
> I temporarily xfailed the two vectorizer testcases, until
> eliminate_unnecessary_casts is enabled again

I am testing fix right now.

-
Devang

Reply | Threaded
Open this post in threaded view
|

Re: [autovect] [patch] branch merge

Dorit Nuzman
In reply to this post by Sebastian Pop




Sebastian Pop <[hidden email]> wrote on 21/09/2005 18:21:36:

> Thanks for this huge merge from mainline.  I've bootstrapped
> autovect-branch on i686.  Testing shows no regressions other than
> those reported, with the exception of:
>
> gfortran.dg/pr17706.f90 which is passing on i686,
>
good to know

> FAIL: gcc.dg/tree-ssa/20041110-1.c (test for excess errors)
> FAIL: gcc.dg/tree-ssa/pr17100.c scan-tree-dump-times Replacing one
> of the conditions 1
>
(these occur on ppc too)

> FAIL: gcc.dg/vect/vect-reduc-1.c execution test
> FAIL: gcc.dg/vect/vect-reduc-1char.c execution test
> FAIL: gcc.dg/vect/vect-reduc-1short.c execution test
> FAIL: gcc.dg/vect/vect-reduc-2.c execution test
> FAIL: gcc.dg/vect/vect-reduc-2char.c execution test
> FAIL: gcc.dg/vect/vect-reduc-2short.c execution test
> FAIL: gcc.dg/vect/vect-reduc-3.c execution test
> FAIL: gcc.dg/vect/vect-reduc-7.c execution test
> FAIL: gcc.dg/vect/vect-reduc-8.c execution test
> FAIL: gcc.dg/vect/vect-reduc-9.c execution test
> FAIL: gcc.dg/vect/fast-math-vect-reduc-5.c execution test
> FAIL: gcc.dg/vect/fast-math-vect-reduc-7.c (test for excess errors)
> WARNING: gcc.dg/vect/fast-math-vect-reduc-7.c compilation failed to
> produce executable
> FAIL: gcc.dg/vect/fast-math-vect-reduc-7.c scan-tree-dump-times
> vectorized 3 loops 1
>
> I can provide detailed info for each fail if needed.
>

I'll try to reproduce these

> Dorit Naishlos wrote:
> >
> > Remaining issues:
> > - scev_const_prop bootstrap failure
>
> I've given a look at this one:
>
> (gdb) p type
> $1 = 0x0
> (gdb) p name
> $2 = 0x2aaaab735620
> (gdb) pgs
> vec_D.28995_894
>
> (gdb) pt
>  <ssa_name 0x2aaaab735620 nothrow var <var_decl 0x2aaaab7dac60 vec_>
> def_stmt <ssa_name 0x2aaaabafe1c0>
>     version 894 in-free-list>
> (gdb) p phi
> $4 = 0x2aaaab682900
> (gdb) pgs
> vec_D.28995_894 = PHI <0B(53), 0B(47)>;
>
> (gdb)
>
> Seems like the type of a variable from vect_create_destination_var is
> not correctly initialized?
>

are you suspecting 'vect_create_destination_var' because of the "vec_"
prefix? cause the variables that 'vect_create_destination_var' creates are
prefixed with "vect_". Also, I think that this ICE also happens when
bootstrapping without vectorization enabled.

thanks,
dorit

> Sebastian

Reply | Threaded
Open this post in threaded view
|

Re: [autovect] [patch] branch merge

Sebastian Pop
Dorit Naishlos wrote:
>
> are you suspecting 'vect_create_destination_var' because of the "vec_"

yes, but seems it is not this.

> prefix? cause the variables that 'vect_create_destination_var' creates are
> prefixed with "vect_". Also, I think that this ICE also happens when
> bootstrapping without vectorization enabled.
>

Oh, right.  I forgot that the compiler failed on -O2 without
vectorizer on, so this is just a coincidence.  I'll try to find out
what happened before to this variable.

Reply | Threaded
Open this post in threaded view
|

Re: [autovect] [patch] branch merge

Dorit Nuzman
In reply to this post by Dorit Nuzman




>
> > FAIL: gcc.dg/vect/vect-reduc-1.c execution test
> > FAIL: gcc.dg/vect/vect-reduc-1char.c execution test
> > FAIL: gcc.dg/vect/vect-reduc-1short.c execution test
> > FAIL: gcc.dg/vect/vect-reduc-2.c execution test
> > FAIL: gcc.dg/vect/vect-reduc-2char.c execution test
> > FAIL: gcc.dg/vect/vect-reduc-2short.c execution test
> > FAIL: gcc.dg/vect/vect-reduc-3.c execution test
> > FAIL: gcc.dg/vect/vect-reduc-7.c execution test
> > FAIL: gcc.dg/vect/vect-reduc-8.c execution test
> > FAIL: gcc.dg/vect/vect-reduc-9.c execution test
> > FAIL: gcc.dg/vect/fast-math-vect-reduc-5.c execution test
> > FAIL: gcc.dg/vect/fast-math-vect-reduc-7.c (test for excess errors)
> > WARNING: gcc.dg/vect/fast-math-vect-reduc-7.c compilation failed to
> > produce executable
> > FAIL: gcc.dg/vect/fast-math-vect-reduc-7.c scan-tree-dump-times
> > vectorized 3 loops 1
> >
> > I can provide detailed info for each fail if needed.
> >
>
> I'll try to reproduce these
>

These should be fixed now

dorit

Reply | Threaded
Open this post in threaded view
|

Re: [autovect] [patch] branch merge

Devang Patel
In reply to this post by Devang Patel

On Sep 21, 2005, at 9:52 AM, Devang Patel wrote:

>
> On Sep 21, 2005, at 12:05 AM, Dorit Naishlos wrote:
>
>
>>> 2. eliminate_unnecessary_casts caused failure of
>>> gcc.dg/tree-ssa/pr22051-1.c. I commented it out, and now
>>> gcc.dg/vect/vect-subsat.c and gcc.dg/vect/vect-ifcvt-8.c fail  
>>> (we'll have
>>> to either xfail these tests, or fix eliminate_unnecessary_casts  
>>> so that
>>> pr22051-1.c doesn't fail).
>>>
>>>
>>
>> I temporarily xfailed the two vectorizer testcases, until
>> eliminate_unnecessary_casts is enabled again
>>
>
> I am testing fix right now.

         * tree-ssa-forwaprop.c (replacable_use_in_cond_expr): Do not
         a eliminate type conversion which feeds an equality comparison
         if the original type or either operand in the comparison is a
         function pointer.

         * gcc.dg/vect/vect-ifcvt-8.c: Enable.
         * gcc.dg/vect/vect-subsat.c: Enable.

Bootstrapped and tested on powerpc-darwin.

-
Devang


av_elimiante_unnecessary_casts_fix.diff (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [autovect] [patch] branch merge

Dorit Nuzman




thanks!

dorit

Devang Patel <[hidden email]> wrote on 23/09/2005 21:00:09:

>
> On Sep 21, 2005, at 9:52 AM, Devang Patel wrote:
>
> >
> > On Sep 21, 2005, at 12:05 AM, Dorit Naishlos wrote:
> >
> >
> >>> 2. eliminate_unnecessary_casts caused failure of
> >>> gcc.dg/tree-ssa/pr22051-1.c. I commented it out, and now
> >>> gcc.dg/vect/vect-subsat.c and gcc.dg/vect/vect-ifcvt-8.c fail
> >>> (we'll have
> >>> to either xfail these tests, or fix eliminate_unnecessary_casts
> >>> so that
> >>> pr22051-1.c doesn't fail).
> >>>
> >>>
> >>
> >> I temporarily xfailed the two vectorizer testcases, until
> >> eliminate_unnecessary_casts is enabled again
> >>
> >
> > I am testing fix right now.
>
>
>          * tree-ssa-forwaprop.c (replacable_use_in_cond_expr): Do not
>          a eliminate type conversion which feeds an equality comparison
>          if the original type or either operand in the comparison is a
>          function pointer.
>
>          * gcc.dg/vect/vect-ifcvt-8.c: Enable.
>          * gcc.dg/vect/vect-subsat.c: Enable.
>
> Bootstrapped and tested on powerpc-darwin.
>
> -
> Devang
>
> [attachment "av_elimiante_unnecessary_casts_fix.diff" deleted by
> Dorit Naishlos/Haifa/IBM]