On Tue, May 17, 2016 at 5:51 AM, Richard Biener <rguent...@suse.de> wrote:
>
> The following fixes a latent issue in loop distribution catched by
> the fake edge placement adjustment.
>
> Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.
>
> Richard.
>
> 2016-05-17  Richard Biener  <rguent...@suse.de>
>
>         PR tree-optimization/71132
>         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
>         Only add control dependences for blocks in the loop.
>         (build_rdg): Adjust.
>         (generate_code_for_partition): Return whether loop should
>         be destroyed and delay that.
>         (distribute_loop): Likewise.
>         (pass_loop_distribution::execute): Record loops to be destroyed
>         and perform delayed destroying of loops.
>
>         * gcc.dg/torture/pr71132.c: New testcase.
>

On x86, this caused:

FAIL: c-c++-common/cilk-plus/AN/builtin_fn_custom.c  -O3 -fcilkplus
(internal compiler error)
FAIL: c-c++-common/cilk-plus/AN/builtin_fn_custom.c  -O3 -fcilkplus
(test for excess errors)
FAIL: c-c++-common/cilk-plus/AN/builtin_fn_mutating.c  -fcilkplus -O3
-std=c99 (internal compiler error)
FAIL: c-c++-common/cilk-plus/AN/builtin_fn_mutating.c  -fcilkplus -O3
-std=c99 (test for excess errors)
FAIL: c-c++-common/cilk-plus/AN/builtin_fn_mutating.c  -O3 -fcilkplus
(internal compiler error)
FAIL: c-c++-common/cilk-plus/AN/builtin_fn_mutating.c  -O3 -fcilkplus
(test for excess errors)
FAIL: c-c++-common/cilk-plus/AN/builtin_func_double.c  -fcilkplus -O3
-std=c99 (internal compiler error)
FAIL: c-c++-common/cilk-plus/AN/builtin_func_double.c  -fcilkplus -O3
-std=c99 (test for excess errors)
FAIL: c-c++-common/cilk-plus/AN/builtin_func_double.c  -O3 -fcilkplus
(internal compiler error)
FAIL: c-c++-common/cilk-plus/AN/builtin_func_double.c  -O3 -fcilkplus
(internal compiler error)
FAIL: c-c++-common/cilk-plus/AN/builtin_func_double.c  -O3 -fcilkplus
(test for excess errors)
FAIL: c-c++-common/cilk-plus/AN/builtin_func_double.c  -O3 -fcilkplus
(test for excess errors)
FAIL: c-c++-common/cilk-plus/AN/sec_reduce_ind_same_value.c
-fcilkplus -O3 -std=c99 (internal compiler error)
FAIL: c-c++-common/cilk-plus/AN/sec_reduce_ind_same_value.c
-fcilkplus -O3 -std=c99 (test for excess errors)
FAIL: c-c++-common/cilk-plus/AN/sec_reduce_ind_same_value.c  -O3
-fcilkplus (internal compiler error)
FAIL: c-c++-common/cilk-plus/AN/sec_reduce_ind_same_value.c  -O3
-fcilkplus (test for excess errors)
FAIL: gcc.c-torture/compile/pr32399.c   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gcc.c-torture/compile/pr32399.c   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gcc.c-torture/compile/pr32399.c   -O3 -g  (internal compiler error)
FAIL: gcc.c-torture/compile/pr32399.c   -O3 -g  (test for excess errors)
FAIL: gcc.c-torture/execute/20010221-1.c   -O3 -g  (internal compiler error)
FAIL: gcc.c-torture/execute/20010221-1.c   -O3 -g  (test for excess errors)
FAIL: gcc.c-torture/execute/20120919-1.c   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gcc.c-torture/execute/20120919-1.c   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gcc.c-torture/execute/20120919-1.c   -O3 -g  (internal compiler error)
FAIL: gcc.c-torture/execute/20120919-1.c   -O3 -g  (test for excess errors)
FAIL: gcc.dg/torture/pr61383-1.c   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gcc.dg/torture/pr61383-1.c   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gcc.dg/torture/pr69452.c   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gcc.dg/torture/pr69452.c   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gcc.dg/torture/pr69452.c   -O3 -g  (internal compiler error)
FAIL: gcc.dg/torture/pr69452.c   -O3 -g  (test for excess errors)
FAIL: g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc  -g -O3
-fcilkplus (internal compiler error)
FAIL: g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc  -g -O3
-fcilkplus (test for excess errors)
FAIL: g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc  -O3 -fcilkplus
(internal compiler error)
FAIL: g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc  -O3 -fcilkplus
(test for excess errors)
FAIL: g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc  -O3
-ftree-vectorize -fcilkplus -g (internal compiler error)
FAIL: g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc  -O3
-ftree-vectorize -fcilkplus -g (test for excess errors)
FAIL: gfortran.dg/do_concurrent_2.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gfortran.dg/do_concurrent_2.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gfortran.dg/forall_4.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  execution
test
FAIL: gfortran.dg/forall_4.f90   -O3 -g  execution test
FAIL: gfortran.dg/intrinsic_modulo_1.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gfortran.dg/intrinsic_modulo_1.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gfortran.dg/maxloc_2.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gfortran.dg/maxloc_2.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gfortran.dg/maxloc_2.f90   -O3 -g  (internal compiler error)
FAIL: gfortran.dg/maxloc_2.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/maxlocval_2.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gfortran.dg/maxlocval_2.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gfortran.dg/maxlocval_2.f90   -O3 -g  (internal compiler error)
FAIL: gfortran.dg/maxlocval_2.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/minloc_1.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gfortran.dg/minloc_1.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gfortran.dg/minloc_1.f90   -O3 -g  (internal compiler error)
FAIL: gfortran.dg/minloc_1.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/minloc_3.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gfortran.dg/minloc_3.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gfortran.dg/minloc_3.f90   -O3 -g  (internal compiler error)
FAIL: gfortran.dg/minloc_3.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/minlocval_1.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gfortran.dg/minlocval_1.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gfortran.dg/minlocval_1.f90   -O3 -g  (internal compiler error)
FAIL: gfortran.dg/minlocval_1.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/minlocval_3.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gfortran.dg/minlocval_3.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gfortran.dg/minlocval_3.f90   -O3 -g  (internal compiler error)
FAIL: gfortran.dg/minlocval_3.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/minmaxloc_4.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gfortran.dg/minmaxloc_4.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gfortran.dg/minmaxloc_5.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gfortran.dg/minmaxloc_5.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gfortran.dg/minmaxloc_5.f90   -O3 -g  (internal compiler error)
FAIL: gfortran.dg/minmaxloc_5.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/minmaxloc_6.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (internal
compiler error)
FAIL: gfortran.dg/minmaxloc_6.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gfortran.dg/minmaxloc_6.f90   -O3 -g  (internal compiler error)
FAIL: gfortran.dg/minmaxloc_6.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/PR19754_2.f90   -O3 -g  (internal compiler error)
FAIL: gfortran.dg/PR19754_2.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.fortran-torture/compile/pr70960.f90,  -O3 -g
(internal compiler error)
FAIL: gfortran.fortran-torture/execute/intrinsic_count.f90,  -O3 -g
(internal compiler error)
FAIL: gfortran.fortran-torture/execute/intrinsic_product.f90,  -O3 -g
(internal compiler error)
FAIL: gfortran.fortran-torture/execute/intrinsic_sum.f90,  -O3 -g
(internal compiler error)
FAIL: gfortran.fortran-torture/execute/where20.f90,  -O3 -g  (internal
compiler error)

It works for x86-64.  On x86, I got

[hjl@gnu-6 gcc]$
/export/build/gnu/gcc-32bit/build-i686-linux/gcc/xgcc
-B/export/build/gnu/gcc-32bit/build-i686-linux/gcc/
-fno-diagnostics-show-caret -fdiagnostics-color=never -O3 -g -w -c -o
pr32399.o 
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.c-torture/compile/pr32399.c
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.c-torture/compile/pr32399.c:
In function ‘f’:
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.c-torture/compile/pr32399.c:1:6:
internal compiler error: in execute_todo, at passes.c:2009
0x8884fe4 execute_todo
/export/gnu/import/git/sources/gcc/gcc/passes.c:2009
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
[hjl@gnu-6 gcc]$


-- 
H.J.

Reply via email to