[Bug debug/90131] wrong debug info at -O3

2019-04-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90131

--- Comment #4 from Richard Biener  ---
Author: rguenth
Date: Tue Apr 23 10:10:10 2019
New Revision: 270505

URL: https://gcc.gnu.org/viewcvs?rev=270505&root=gcc&view=rev
Log:
2019-04-23  Richard Biener  

PR debug/90131
* tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
dest_single_pred_p argument.
(remove_forwarder_block): Adjust.
(remove_forwarder_block_with_phi): Likewise.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-cfgcleanup.c

[Bug debug/90131] wrong debug info at -O3

2019-04-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90131

--- Comment #3 from Richard Biener  ---
Author: rguenth
Date: Thu Apr 18 12:02:40 2019
New Revision: 270441

URL: https://gcc.gnu.org/viewcvs?rev=270441&root=gcc&view=rev
Log:
2019-04-18  Richard Biener  

PR debug/90131
* tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
out from ...
(remove_forwarder_block): ... here.
(remove_forwarder_block_with_phi): Also move debug stmts here.

* gcc.dg/guality/pr90131.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/guality/pr90131.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-cfgcleanup.c

[Bug debug/90131] wrong debug info at -O3

2019-04-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90131

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||9.0
 Resolution|--- |FIXED

--- Comment #2 from Richard Biener  ---
Fixed for GCC 9.

[Bug debug/90131] wrong debug info at -O3

2019-04-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90131

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2019-04-18
Version|unknown |9.0
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener  ---
This is mergephi at work:

@@ -101,14 +45,10 @@
   if (i_5 != 9)
 goto ; [90.00%]
   else
-goto ; [10.00%]
-
-   [local count: 107374183]:
-  # DEBUG i => NULL
-  # DEBUG i => 0
+goto ; [10.00%]

[local count: 160259975]:
-  # d_21 = PHI <0(5), 1(8)>
+  # d_21 = PHI <0(4), 1(8)>
   # DEBUG d => NULL
   # DEBUG d => d_21
   if (d_21 == 0)

where remove_forwarder_block_with_phi doesn't bother to move debug stmts
as the fixed CFG cleanup copy tried and now does conservatively.