[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #13 from Richard Biener  ---
Should be fixed now.

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

--- Comment #12 from Richard Biener  ---
Author: rguenth
Date: Fri Jan 15 15:43:48 2016
New Revision: 232435

URL: https://gcc.gnu.org/viewcvs?rev=232435=gcc=rev
Log:
2016-01-15  Richard Biener  

PR tree-optimization/66856
* tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
* tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
(vect_create_new_slp_node): Increment stmt reference count.
(vect_get_and_check_slp_defs): Make sure stmts are nor already in
an SLP tree before swapping operands.
(vect_build_slp_tree): Likewise.
(destroy_bb_vec_info): Free stmt info after SLP instances.
* tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
* tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
(STMT_VINFO_NUM_SLP_USES): New macro.

* gcc.dg/torture/pr66856-1.c: New testcase.
* gcc.dg/torture/pr66856-2.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr66856-1.c
trunk/gcc/testsuite/gcc.dg/torture/pr66856-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vect-loop.c
trunk/gcc/tree-vect-slp.c
trunk/gcc/tree-vect-stmts.c
trunk/gcc/tree-vectorizer.h

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-14 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

--- Comment #11 from Richard Biener  ---
Author: rguenth
Date: Thu Jan 14 14:51:35 2016
New Revision: 232364

URL: https://gcc.gnu.org/viewcvs?rev=232364=gcc=rev
Log:
2016-01-14  Richard Biener  

PR tree-optimization/66856
* tree-vect-slp.c (vect_build_slp_tree): Refactor to build
SLP node only if it built successfully.
(vect_analyze_slp_instance): Adjust.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-vect-slp.c

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-13 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P1

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-12 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

--- Comment #10 from Richard Biener  ---
Ok.  So this is caused by operand swapping and a shared stmt (I knew we'd
eventually hit such case ... :/)

t.c:15:11: note: node
t.c:15:11: note:stmt 0 _30 = _29 & 1;
t.c:15:11: note:stmt 1 a_15 = g_14(D) & _21;

This has bogus ordering - the g_14(D) should be 2nd place to match up with the
1

t.c:15:11: note: node
t.c:15:11: note:stmt 0 _29 = _13 >> 5;
t.c:15:11: note:stmt 1 _21 = _20 >> 3;
t.c:15:11: note: node
t.c:15:11: note:stmt 0 _13 = *f_39;
t.c:15:11: note:stmt 1 _20 = MEM[(int *)f_39 + 4B];
t.c:15:11: note: node
t.c:15:11: note:stmt 0 _27 = a_26 >> 5;
t.c:15:11: note:stmt 1 _12 = a_15 >> 5;
t.c:15:11: note: node
t.c:15:11: note:stmt 0 a_26 = g_14(D) & _25;
t.c:15:11: note:stmt 1 a_15 = g_14(D) & _21;

Because we swapped the stmt when seeing it used here (dumping missing for the
case in vect_get_and_check_slp_defs).

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-11 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #7 from Jakub Jelinek  ---
#c5 regressed with r225517.

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-11 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

--- Comment #8 from Richard Biener  ---
Vectorizer generates

  :
  vect_cst__109 = { 3, 5, 3, 5, 3, 5, 3, 5 };
  vect_cst__110 = { 3, 5, 3, 5, 3, 5, 3, 5 };
  vect_cst__113 = {g_14(D), 1, g_14(D), 1, g_14(D), 1, g_14(D), 1};
  vect_cst__114 = {g_14(D), 1, g_14(D), 1, g_14(D), 1, g_14(D), 1};
  vect_cst__122 = { 5, 3, 5, 3, 5, 3, 5, 3 };
  vect_cst__123 = { 5, 3, 5, 3, 5, 3, 5, 3 };
  vect_cst__126 = {1, _21, 1, _21, 1, _21, 1, _21};
  vect_cst__127 = {1, _21, 1, _21, 1, _21, 1, _21};
  vect_cst__139 = {g_14(D), g_14(D), g_14(D), g_14(D), g_14(D), g_14(D),
g_14(D), g_14(D)};
  vect_cst__140 = {g_14(D), g_14(D), g_14(D), g_14(D), g_14(D), g_14(D),
g_14(D), g_14(D)};

  :
  # e_38 = PHI <(16), e_18(7)>
  # f_39 = PHI 
  # prephitmp_46 = PHI <_36(16), _7(7)>
  # vectp_f.19_104 = PHI 
  # vectp_f.25_117 = PHI 
  # vectp_f.32_132 = PHI 
  # vectp_c.41_148 = PHI <(16), vectp_c.41_149(7)>
  # ivtmp_151 = PHI <0(16), ivtmp_152(7)>
  _13 = *f_39;
  _25 = _13 >> 3;
...
  _21 = _20 >> 3;
  vect__30.30_128 = vect__29.29_124 & vect_cst__127;
  vect__30.30_129 = vect__29.29_125 & vect_cst__126;


where _21 is defined after its use.

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-11 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

Richard Biener  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org

--- Comment #9 from Richard Biener  ---
I will have a look then.

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-06 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

--- Comment #2 from Jan Hubicka  ---
Created attachment 37239
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37239=edit
unreduced testcase

Compile with 
gcc -O3 pix.i -flto -r -nostdlib -std=gnu99 -fgnu89-inline -fno-strict-aliasing
-ffunction-sections  -fno-omit-frame-pointer -fPIC --verbose -march=bdver1
-mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -msse4a -mcx16 -msahf -mno-movbe
-maes -mno-sha -mpclmul -mpopcnt -mabm -mlwp -mno-fma -mfma4 -mxop -mno-bmi
-mno-bmi2 -mno-tbm -mavx -mno-avx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle
-mno-rdrnd -mno-f16c -mno-fsgsbase -mno-rdseed -mprfchw -mno-adx -mfxsr -mxsave
-mno-xsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf
-mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx512dq
-mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-clwb
-mno-pcommit -mno-mwaitx -mno-clzero -mno-pku --param l1-cache-size=16 --param
l1-cache-line-size=64 --param l2-cache-size=2048 -mtune=bdver1

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-06 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

--- Comment #4 from Martin Liška  ---
Created attachment 37241
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37241=edit
reduced testcase

Compile command line:

gcc -O3 tc.ii -march=bdver1 -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3
-msse4a -mcx16 -msahf -mno-movbe -maes -mno-sha -mpclmul -mpopcnt -mabm -mlwp
-mno-fma -mfma4 -mxop -mno-bmi -mno-bmi2 -mno-tbm -mavx -mno-avx2 -msse4.2
-msse4.1 -mlzcnt -mno-rtm -mno-hle -mno-rdrnd -mno-f16c -mno-fsgsbase
-mno-rdseed -mprfchw -mno-adx -mfxsr -mxsave -mno-xsaveopt -mno-avx512f
-mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mno-clflushopt
-mno-xsavec -mno-xsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl
-mno-avx512ifma -mno-avx512vbmi -mno-clwb -mno-pcommit -mno-mwaitx -mno-clzero
-mno-pku --param l1-cache-size=16 --param l1-cache-line-size=64 --param
l2-cache-size=2048 -mtune=bdver1 -fpermissive

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-06 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

--- Comment #3 from Martin Liška  ---
(In reply to Jan Hubicka from comment #2)
> Created attachment 37239 [details]
> unreduced testcase
> 
> Compile with 
> gcc -O3 pix.i -flto -r -nostdlib -std=gnu99 -fgnu89-inline
> -fno-strict-aliasing -ffunction-sections  -fno-omit-frame-pointer -fPIC
> --verbose -march=bdver1 -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -msse4a
> -mcx16 -msahf -mno-movbe -maes -mno-sha -mpclmul -mpopcnt -mabm -mlwp
> -mno-fma -mfma4 -mxop -mno-bmi -mno-bmi2 -mno-tbm -mavx -mno-avx2 -msse4.2
> -msse4.1 -mlzcnt -mno-rtm -mno-hle -mno-rdrnd -mno-f16c -mno-fsgsbase
> -mno-rdseed -mprfchw -mno-adx -mfxsr -mxsave -mno-xsaveopt -mno-avx512f
> -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mno-clflushopt
> -mno-xsavec -mno-xsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl
> -mno-avx512ifma -mno-avx512vbmi -mno-clwb -mno-pcommit -mno-mwaitx
> -mno-clzero -mno-pku --param l1-cache-size=16 --param l1-cache-line-size=64
> --param l2-cache-size=2048 -mtune=bdver1

Reducing Honza's test-case.

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-06 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

Jan Hubicka  changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org

--- Comment #1 from Jan Hubicka  ---
I am seeing same bug. Is there any chance to get a testcase? :))

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-06 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

Markus Trippelsdorf  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-01-06
 CC||trippels at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #5 from Markus Trippelsdorf  ---
markus@x4 tmp % cat pix.i
short c;
int d;
int fn1(int p1, int p2) {
  int a, b;
  a = p1 >> 3 & p2;
  b = p1 & 072;
  a |= a >> 5;
  a |= b >> 5;
  return a;
}
void fn2() {
  short *e = 
  int *f;
  int g;
  while (d -= 4) {
fn1(1, 1);
fn1(1, 1) * fn1(1, 1) * fn1(1, 1);
*e++ = fn1(*f++, g);
*e++ = fn1(*f++, g);
  }
}

markus@x4 tmp % gcc -c -mavx2 -O3 pix.i
pix.i: In function ‘fn2’:
pix.i:11:6: internal compiler error: in compute_live_loop_exits, at
tree-ssa-loop-manip.c:229
 void fn2() {
  ^~~

0xc46f92 compute_live_loop_exits
../../gcc/gcc/tree-ssa-loop-manip.c:229
0xc46f92 add_exit_phis_var
../../gcc/gcc/tree-ssa-loop-manip.c:316
0xc46f92 add_exit_phis
../../gcc/gcc/tree-ssa-loop-manip.c:338
0xc46f92 rewrite_into_loop_closed_ssa_1(bitmap_head*, unsigned int, int, loop*)
../../gcc/gcc/tree-ssa-loop-manip.c:654
0xd491cd vectorize_loops()
../../gcc/gcc/tree-vectorizer.c:634
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See  for instructions.

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2016-01-06 Thread doko at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

Matthias Klose  changed:

   What|Removed |Added

 CC||doko at gcc dot gnu.org

--- Comment #6 from Matthias Klose  ---
seen as well on powerpc64le-linux-gnu

typedef int uint32_t;
int c, e, f, g, h;
short *d;
uint32_t fn1(uint32_t p1, uint32_t p2) {
  uint32_t a, b;
  a = p1 >> 3 & p2;
  b = p1 & 072;
  a |= a >> 5;
  a |= b >> 5;
  return a;
}

void fn2() {
  uint32_t *i;
  uint32_t j;
  while (c -= 4) {
fn1(e, j);
fn1(f, j) * fn1(g, j) * fn1(h, j);
*d++ = fn1(*i++, j);
*d++ = fn1(*i++, j);
  }
}

$ gcc -c -g -O3 pixman-fast-path.i
pixman-fast-path.i: In function 'fn2':
pixman-fast-path.i:13:6: internal compiler error: in compute_live_loop_exits,
at tree-ssa-loop-manip.c:229
 void fn2() {
  ^~~

0x1080260f compute_live_loop_exits
../../src/gcc/tree-ssa-loop-manip.c:229
0x1080260f add_exit_phis_var
../../src/gcc/tree-ssa-loop-manip.c:316
0x1080260f add_exit_phis
../../src/gcc/tree-ssa-loop-manip.c:338
0x1080260f rewrite_into_loop_closed_ssa_1(bitmap_head*, unsigned int, int,
loop*)
../../src/gcc/tree-ssa-loop-manip.c:654
0x109002eb vectorize_loops()
../../src/gcc/tree-vectorizer.c:634
0x108167eb execute
../../src/gcc/tree-ssa-loop.c:420
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.

[Bug tree-optimization/66856] [6 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234

2015-07-13 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66856

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |6.0