[Bug debug/80436] [7 Regression] -fcompare-debug failure

2017-04-15 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80436

--- Comment #1 from Markus Trippelsdorf  ---
Started with r44392.

[Bug debug/80436] [7 Regression] -fcompare-debug failure

2017-04-15 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80436

Markus Trippelsdorf  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-04-15
 Ever confirmed|0   |1

--- Comment #2 from Markus Trippelsdorf  ---
(In reply to Markus Trippelsdorf from comment #1)
> Started with r44392.

r244392 even.

[Bug debug/80436] [7 Regression] -fcompare-debug failure

2017-04-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80436

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org
   Target Milestone|--- |7.0

--- Comment #3 from Jakub Jelinek  ---
This seems to go wrong during loop splitting, there is highly undesirable
change in the *.lsplit dump:

 e_95 -> { e_14 }
+b.0_96 -> { b.0_16 }
 Incremental SSA update started at block: 42
 Number of blocks in CFG: 46
-Number of blocks to update: 5 ( 11%)
+Number of blocks to update: 10 ( 22%)
...
   int _94;
+  int b.0_96;

[0.29%]:
...
   # f_43 = PHI 
   # a_lsm.15_24 = PHI 
+  # b.0_96 = PHI 

[50.00%]:
   # .MEM_52 = PHI <.MEM_9(7), .MEM_52(9)>
   # f_51 = PHI 
   # a_lsm.15_50 = PHI 
   # a_lsm.16_49 = PHI <0(7), 1(9)>
+  # DEBUG f => f_51
+  # DEBUG D#3 => (unsigned int) b.0_96
+  # DEBUG f => D#3

That extra b.0_96 PHI has been added because there is a debug use of b.0_16 and
we want to rewrite it into loop closed SSA form.

[Bug debug/80436] [7 Regression] -fcompare-debug failure

2017-04-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80436

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #4 from Jakub Jelinek  ---
Created attachment 41225
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41225&action=edit
gcc7-pr80436.patch

Untested fix.  Seems debug stmts are generally an exception from loop closed
SSA form, we already have:
if (is_gimple_debug (stmt)) return;
in find_uses_to_rename_stmt and check_loop_closed_ssa_stmt, just not at this
spot.

[Bug debug/80436] [7 Regression] -fcompare-debug failure

2017-04-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80436

--- Comment #5 from Jakub Jelinek  ---
Author: jakub
Date: Wed Apr 19 16:29:45 2017
New Revision: 247000

URL: https://gcc.gnu.org/viewcvs?rev=247000&root=gcc&view=rev
Log:
PR debug/80436
* tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.

* g++.dg/opt/pr80436.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/opt/pr80436.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-loop-manip.c

[Bug debug/80436] [7 Regression] -fcompare-debug failure

2017-04-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80436

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #6 from Jakub Jelinek  ---
Fixed.