[Bug tree-optimization/69110] execution failure in gcc.c-torture/execute/doloop-2.c with -ftree-parallelize-loops=2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69110 --- Comment #7 from vries at gcc dot gnu.org --- (In reply to vries from comment #4) > Created attachment 37210 [details] > minimal version, v2 needs -fno-tree-loop-im as well: ... $ gcc doloop-2.c -O1 -ftree-parallelize-loops=2 -Wl,-rpath=$(pwd -P)/install/lib64 -fno-tree-loop-im ...
[Bug tree-optimization/69110] execution failure in gcc.c-torture/execute/doloop-2.c with -ftree-parallelize-loops=2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69110 --- Comment #1 from vries at gcc dot gnu.org --- Created attachment 37207 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37207=edit minimal version
[Bug tree-optimization/69110] execution failure in gcc.c-torture/execute/doloop-2.c with -ftree-parallelize-loops=2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69110 vries at gcc dot gnu.org changed: What|Removed |Added Attachment #37208|0 |1 is obsolete|| --- Comment #5 from vries at gcc dot gnu.org --- Created attachment 37211 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37211=edit doloop-2.c.141t.ivcanon, v2
[Bug tree-optimization/69110] execution failure in gcc.c-torture/execute/doloop-2.c with -ftree-parallelize-loops=2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69110 vries at gcc dot gnu.org changed: What|Removed |Added Attachment #37207|0 |1 is obsolete|| --- Comment #4 from vries at gcc dot gnu.org --- Created attachment 37210 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37210=edit minimal version, v2
[Bug tree-optimization/69110] execution failure in gcc.c-torture/execute/doloop-2.c with -ftree-parallelize-loops=2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69110 --- Comment #3 from vries at gcc dot gnu.org --- Created attachment 37209 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37209=edit doloop-2.c.142t.parloops
[Bug tree-optimization/69110] execution failure in gcc.c-torture/execute/doloop-2.c with -ftree-parallelize-loops=2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69110 --- Comment #2 from vries at gcc dot gnu.org --- Created attachment 37208 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37208=edit doloop-2.c.141t.ivcanon
[Bug tree-optimization/69110] execution failure in gcc.c-torture/execute/doloop-2.c with -ftree-parallelize-loops=2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69110 --- Comment #9 from vries at gcc dot gnu.org --- With -floop-parallelize-all --param graphite-min-loops-per-function=1 we have in graphite: ... Creating dr for i analyze_innermost: success. base_address: offset from base address: 0 constant offset from base address: 0 step: 0 aligned to: 128 base_object: i [scop-detection-fail] Graphite cannot handle data-refs in stmt: # VUSE <.MEM_11> i.1_4 = i; ... and in parloops: ... loop is not parallel according to graphite ...
[Bug tree-optimization/69110] execution failure in gcc.c-torture/execute/doloop-2.c with -ftree-parallelize-loops=2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69110 vries at gcc dot gnu.org changed: What|Removed |Added Attachment #37209|0 |1 is obsolete|| --- Comment #6 from vries at gcc dot gnu.org --- Created attachment 37212 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37212=edit doloop-2.c.142t.parloops, v2
[Bug tree-optimization/69110] execution failure in gcc.c-torture/execute/doloop-2.c with -ftree-parallelize-loops=2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69110 vries at gcc dot gnu.org changed: What|Removed |Added CC||spop at gcc dot gnu.org --- Comment #8 from vries at gcc dot gnu.org --- loop before parloops, at ivcanon: ... # z_10 = PHI# .MEM_11 = PHI <.MEM_6(4), .MEM_3(D)(2)> # ivtmp_12 = PHI # VUSE <.MEM_11> i.1_4 = iD.1855; _5 = i.1_4 + 1; # .MEM_6 = VDEF <.MEM_11> iD.1855 = _5; z_7 = z_10 + 1; ivtmp_2 = ivtmp_12 - 1; if (ivtmp_2 != 0) goto ; else goto ; ... The loop cannot be parallelized because the store to iD.1855 in every loop iteration aliases with the load from and store to iD.1855 in every other loop iteration. However, parloops concludes that parallelization is possible: ... ;; Function foo (foo, funcdef_no=0, decl_uid=1857, cgraph_uid=0, symbol_order=1) (executed once) Pass statistics of "parloops": Trying loop 1 as candidate loop 1 is innermost Analyzing # of iterations of loop 1 exit condition [999, + , 4294967295] != 0 bounds on difference of bases: -999 ... -999 result: # of iterations 999, bounded by 999 Analyzing # of iterations of loop 1 exit condition [999, + , 4294967295] != 0 bounds on difference of bases: -999 ... -999 result: # of iterations 999, bounded by 999 doloop-2.c:6:1: note: === vect_analyze_loop_form === doloop-2.c:6:1: note: === get_loop_niters === Considering loop 1 loop is innermost Creating dr for i analyze_innermost: success. base_address: offset from base address: 0 constant offset from base address: 0 step: 0 aligned to: 128 base_object: i Creating dr for i analyze_innermost: success. base_address: offset from base address: 0 constant offset from base address: 0 step: 0 aligned to: 128 base_object: i (compute_affine_dependence stmt_a: i.1_4 = i; stmt_b: i = _5; ) (compute_affine_dependence stmt_a: i.1_4 = i; stmt_b: i.1_4 = i; ) (compute_affine_dependence stmt_a: i = _5; stmt_b: i = _5; ) Dependence tester statistics: Number of dependence tests: 3 Number of dependence tests classified dependent: 3 Number of dependence tests classified independent: 0 Number of undetermined dependence tests: 0 Number of subscript tests: 0 Number of undetermined subscript tests: 0 Number of same subscript function: 0 Number of ziv tests: 0 Number of ziv tests returning dependent: 0 Number of ziv tests returning independent: 0 Number of ziv tests unimplemented: 0 Number of siv tests: 0 Number of siv tests returning dependent: 0 Number of siv tests returning independent: 0 Number of siv tests unimplemented: 0 Number of miv tests: 0 Number of miv tests returning dependent: 0 Number of miv tests returning independent: 0 Number of miv tests unimplemented: 0 (Data Dep: #(Data Ref: # bb: 3 # stmt: i.1_4 = i; # ref: i # base_object: i; #) #(Data Ref: # bb: 3 # stmt: i = _5; # ref: i # base_object: i; #) inner loop index: 0 loop nest: (1 ) distance_vector: 0 direction_vector: = ) (Data Dep: #(Data Ref: # bb: 3 # stmt: i.1_4 = i; # ref: i # base_object: i; #) #(Data Ref: # bb: 3 # stmt: i.1_4 = i; # ref: i # base_object: i; #) inner loop index: 0 loop nest: (1 ) distance_vector: 0 direction_vector: = ) (Data Dep: #(Data Ref: # bb: 3 # stmt: i = _5; # ref: i # base_object: i; #) #(Data Ref: # bb: 3 # stmt: i = _5; # ref: i # base_object: i; #) inner loop index: 0 loop nest: (1 ) distance_vector: 0 direction_vector: = ) SUCCESS: may be parallelized ...