[Bug tree-optimization/100349] [11/12 Regression] ICE Segmentation fault during GIMPLE pass: evrp (under -O2 to -Os)

2021-05-17 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100349

--- Comment #5 from CVS Commits  ---
The master branch has been updated by Aldy Hernandez :

https://gcc.gnu.org/g:ce81282261c6c77883b17d0ebfbbe337bed76457

commit r12-842-gce81282261c6c77883b17d0ebfbbe337bed76457
Author: Aldy Hernandez 
Date:   Thu May 13 16:09:58 2021 -0400

Bail in bounds_of_var_in_loop if scev returns NULL.

Both initial_condition_in_loop_num and evolution_part_in_loop_num
can return NULL.  This patch exits if either one is NULL.  Presumably
this didn't happen before, because adjust_range_with_scev was called
far less frequently than in ranger, which can call it for every PHI.

gcc/ChangeLog:

PR tree-optimization/100349
* vr-values.c (bounds_of_var_in_loop): Bail if scev returns
  NULL.

gcc/testsuite/ChangeLog:

* gcc.dg/pr100349.c: New test.

[Bug tree-optimization/100349] [11/12 Regression] ICE Segmentation fault during GIMPLE pass: evrp (under -O2 to -Os)

2021-05-14 Thread aldyh at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100349

--- Comment #4 from Aldy Hernandez  ---
Yes, it's a duplicate.  There's a patch awaiting review here:

https://gcc.gnu.org/pipermail/gcc-patches/2021-May/570301.html

[Bug tree-optimization/100349] [11/12 Regression] ICE Segmentation fault during GIMPLE pass: evrp (under -O2 to -Os)

2021-05-12 Thread tlwang at uwaterloo dot ca via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100349

Theodore Wang  changed:

   What|Removed |Added

 CC||tlwang at uwaterloo dot ca

--- Comment #3 from Theodore Wang  ---
A possible duplicate:

$ /home/cnsun/usr/bin/gcc-trunk -v
Using built-in specs.
COLLECT_GCC=/home/cnsun/usr/bin/gcc-trunk
COLLECT_LTO_WRAPPER=/scratch/software/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /tmp/tmp.BriefQJ2R3-gcc-builder/gcc/configure
--enable-languages=c,c++,lto --enable-checking-yes --enable-multiarch
--prefix=/scratch/software/gcc-trunk --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20210511 (experimental) [master revision
:61d4686bb:71d38ec80008afdbb9a059253407d80598b765c0] (GCC)

$ cat program3.c
int a;
void c() {
  char b;
d:
  for (;;) {
b = -16;
for (; b; b = ({
unsigned char e = b;
e + 1;
  }))
  for (;;) {
if (a)
  break;
unsigned f = b;
goto d;
  }
  }
}

$ /home/cnsun/usr/bin/gcc-trunk -O2 -c program3.c
during GIMPLE pass: evrp
program3.c: In function ā€˜cā€™:
program3.c:18:1: internal compiler error: Segmentation fault
   18 | }
  | ^
0xef6d63 crash_signal
/tmp/tmp.BriefQJ2R3-gcc-builder/gcc/gcc/toplev.c:327
0x12630f3 bounds_of_var_in_loop(tree_node**, tree_node**, range_query*, loop*,
gimple*, tree_node*)
/tmp/tmp.BriefQJ2R3-gcc-builder/gcc/gcc/vr-values.c:1658
0x191d98d gimple_ranger::range_of_ssa_name_with_loop_info(irange&, tree_node*,
loop*, gphi*)
/tmp/tmp.BriefQJ2R3-gcc-builder/gcc/gcc/gimple-range.cc:1229
0x191dd2b gimple_ranger::range_of_phi(irange&, gphi*)
/tmp/tmp.BriefQJ2R3-gcc-builder/gcc/gcc/gimple-range.cc:568
0x191e15d gimple_ranger::calc_stmt(irange&, gimple*, tree_node*)
/tmp/tmp.BriefQJ2R3-gcc-builder/gcc/gcc/gimple-range.cc:376
0x191e514 gimple_ranger::range_of_stmt(irange&, gimple*, tree_node*)
/tmp/tmp.BriefQJ2R3-gcc-builder/gcc/gcc/gimple-range.cc:1077
0x19192a2 gimple_ranger::range_of_expr(irange&, tree_node*, gimple*)
/tmp/tmp.BriefQJ2R3-gcc-builder/gcc/gcc/gimple-range.cc:960
0x120f8b4 range_query::value_of_expr(tree_node*, gimple*)
/tmp/tmp.BriefQJ2R3-gcc-builder/gcc/gcc/value-query.cc:86
0x192b125 hybrid_folder::value_of_expr(tree_node*, gimple*)
/tmp/tmp.BriefQJ2R3-gcc-builder/gcc/gcc/gimple-ssa-evrp.c:235
0x10ab78d substitute_and_fold_dom_walker::before_dom_children(basic_block_def*)
/tmp/tmp.BriefQJ2R3-gcc-builder/gcc/gcc/tree-ssa-propagate.c:776
0x18ed787 dom_walker::walk(basic_block_def*)
/tmp/tmp.BriefQJ2R3-gcc-builder/gcc/gcc/domwalk.c:309
0x10aad29 substitute_and_fold_engine::substitute_and_fold(basic_block_def*)
/tmp/tmp.BriefQJ2R3-gcc-builder/gcc/gcc/tree-ssa-propagate.c:987
0x192ad8e execute_early_vrp
/tmp/tmp.BriefQJ2R3-gcc-builder/gcc/gcc/gimple-ssa-evrp.c:349
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/100349] [11/12 Regression] ICE Segmentation fault during GIMPLE pass: evrp (under -O2 to -Os)

2021-04-30 Thread aldyh at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100349

--- Comment #2 from Aldy Hernandez  ---
evolution_part_in_loop_num() is returning NULL when evrp asks about the PHI
result here:

(gdb) p debug(stmt)
c.1_4 = PHI 

Is this expected?

If it is, we could easily return false if step is null and everything should
just work.

[Bug tree-optimization/100349] [11/12 Regression] ICE Segmentation fault during GIMPLE pass: evrp (under -O2 to -Os)

2021-04-30 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100349

Richard Biener  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 CC||aldyh at gcc dot gnu.org,
   ||amacleod at redhat dot com
   Priority|P3  |P2
   Target Milestone|--- |11.2
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2021-04-30

--- Comment #1 from Richard Biener  ---
Confirmed.  I'll split out the accepts-invalid issue.