[Bug testsuite/86158] [9 regression] gcc.c-torture/unsorted/dump-noaddr.c.*i.lto-stream-out fails starting with 261546

2018-10-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86158

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #13 from Martin Liška  ---
Fixed.

[Bug testsuite/86158] [9 regression] gcc.c-torture/unsorted/dump-noaddr.c.*i.lto-stream-out fails starting with 261546

2018-10-26 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86158

--- Comment #12 from Martin Liška  ---
Author: marxin
Date: Fri Oct 26 07:23:33 2018
New Revision: 265521

URL: https://gcc.gnu.org/viewcvs?rev=265521=gcc=rev
Log:
Relax hash function to match equals function behavior (PR testsuite/86158).

2018-10-26  Martin Liska  

PR testsuite/86158
* ipa-prop.c (struct ipa_vr_ggc_hash_traits): Hash with
addr_expr and not with pointers.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-prop.c

[Bug testsuite/86158] [9 regression] gcc.c-torture/unsorted/dump-noaddr.c.*i.lto-stream-out fails starting with 261546

2018-10-25 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86158

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #11 from Martin Liška  ---
I have a working patch for it.

[Bug testsuite/86158] [9 regression] gcc.c-torture/unsorted/dump-noaddr.c.*i.lto-stream-out fails starting with 261546

2018-10-25 Thread seurer at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86158

--- Comment #10 from seurer at gcc dot gnu.org ---
For a while the test case stopped failing (I don't know why but from the
results logs it was about 25 June this year around r262009) but just recently
it started again (sometime around r264987 on 6 October).

[Bug testsuite/86158] [9 regression] gcc.c-torture/unsorted/dump-noaddr.c.*i.lto-stream-out fails starting with 261546

2018-10-25 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86158

--- Comment #9 from Martin Liška  ---
And the integer constants are created here:

ipa-prop.c:

  if (addr_nonzero)
{
  tree z = build_int_cst (TREE_TYPE (arg), 0);
  ipa_set_jfunc_vr (jfunc, VR_ANTI_RANGE, z, z);
}

So it explains why it was exposed by a VRP change.

[Bug testsuite/86158] [9 regression] gcc.c-torture/unsorted/dump-noaddr.c.*i.lto-stream-out fails starting with 261546

2018-10-25 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86158

Martin Liška  changed:

   What|Removed |Added

 CC||jamborm at gcc dot gnu.org

--- Comment #8 from Martin Liška  ---
Got it, if I print pointer value of streamed trees I see:

BAD:

Creating output block for jmpfuncs
 Encoding indexableas 0 
 Encoding indexableas 1 
 Encoding indexableas 2 
Streaming SCC of   (0x76af78a0)
 Streamingto jmpfuncs
 Streamingto jmpfuncs
 Encoding indexableas 3 
 Encoding indexableas 4 
Existing SCC of   (0x76ade5c8)
Finished SCC of  

Streaming SCC of   (0x76af25a0)
Finished SCC of  

Existing SCC of   (0x76af25a0)
Streaming SCC of   (0x76af7900)
 Streamingto jmpfuncs
 Encoding indexableas 5 
 Encoding indexableas 0 
Finished SCC of  

Streaming SCC of   (0x76af25b8)
Finished SCC of  

Existing SCC of   (0x76af25b8)
Streaming SCC of   (0x76af7940)
 Streamingto jmpfuncs
 Encoding indexableas 0 
Finished SCC of  

Streaming SCC of   (0x76ae1d20)
Finished SCC of  

Existing SCC of   (0x76ae1d20)

GOOD:

Creating output block for jmpfuncs
 Encoding indexableas 0 
 Encoding indexableas 1 
 Encoding indexableas 2 
Streaming SCC of   (0x76af99c0)
 Streamingto jmpfuncs
 Streamingto jmpfuncs
 Encoding indexableas 3 
 Encoding indexableas 4 
Existing SCC of   (0x76ade640)
Finished SCC of  

Streaming SCC of   (0x76af3690)
Finished SCC of  

Existing SCC of   (0x76af3690)
Streaming SCC of   (0x76af9a20)
 Streamingto jmpfuncs
 Encoding indexableas 5 
 Encoding indexableas 0 
Finished SCC of  

Streaming SCC of   (0x76af36a8)
Finished SCC of  

Existing SCC of   (0x76af36a8)
Streaming SCC of   (0x76af9a40)
 Streamingto jmpfuncs
 Encoding indexableas 0 
Finished SCC of  

Existing SCC of   (0x76af3690)
Existing SCC of   (0x76af3690)

So as seen, the integer_cst in GOOD version points to same tree
(0x76af3690),
while in the bad one, there are multiple integer constants.

Martin I thought there's some caching happening in IPA CP?

[Bug testsuite/86158] [9 regression] gcc.c-torture/unsorted/dump-noaddr.c.*i.lto-stream-out fails starting with 261546

2018-10-25 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86158

--- Comment #7 from Martin Liška  ---
And the problematic integer_cst lives in:

Creating output block for jmpfuncs
...
Creating compressed section

[Bug testsuite/86158] [9 regression] gcc.c-torture/unsorted/dump-noaddr.c.*i.lto-stream-out fails starting with 261546

2018-10-25 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86158

--- Comment #6 from Martin Liška  ---
So apparently it started with r265391, where following hunk removal fixed that:

diff --git a/gcc/gimple-ssa-evrp-analyze.c b/gcc/gimple-ssa-evrp-analyze.c
index b7b0fd8f17c..45c215d78c6 100644
--- a/gcc/gimple-ssa-evrp-analyze.c
+++ b/gcc/gimple-ssa-evrp-analyze.c
@@ -209,10 +209,6 @@ evrp_range_analyzer::record_ranges_from_incoming_edge
(basic_block bb)
  value_range *old_vr = get_value_range (vrs[i].first);
  value_range tem (old_vr->kind (), old_vr->min (), old_vr->max
());
  tem.intersect (vrs[i].second);
- if (tem.kind () == old_vr->kind ()
- && tem.min () == old_vr->min ()
- && tem.max () == old_vr->max ())
-   continue;
  push_value_range (vrs[i].first, vrs[i].second);
  if (is_fallthru
  && all_uses_feed_or_dominated_by_stmt (vrs[i].first, stmt))

and as mentioned on IRC, w/o -fdump-tree-all it's all fine.

[Bug testsuite/86158] [9 regression] gcc.c-torture/unsorted/dump-noaddr.c.*i.lto-stream-out fails starting with 261546

2018-10-25 Thread hubicka at ucw dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86158

--- Comment #5 from Jan Hubicka  ---
> 
> Which is caused by --param ggc-min-heapsize=1 which is used by first 
> invocation
> of the compilation. Honza, do you call ggc_collect before streaming out?

So we have IL representation diverging because of gabage collection? That looks
like a bug...

Honza

[Bug testsuite/86158] [9 regression] gcc.c-torture/unsorted/dump-noaddr.c.*i.lto-stream-out fails starting with 261546

2018-10-25 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86158

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #4 from Martin Liška  ---
So now addresses are removed, now the difference is:

diff -u 1 2
--- 1   2018-10-25 10:21:14.687285804 +0200
+++ 2   2018-10-25 10:28:16.507976840 +0200
@@ -29,9 +29,6 @@
  Encoding indexableas 0 
 Finished SCC of  

-Streaming SCC of  
-Finished SCC of  
-
 Creating compressed section
 Creating output block for inline
 Creating compressed section

Which is caused by --param ggc-min-heapsize=1 which is used by first invocation
of the compilation. Honza, do you call ggc_collect before streaming out?

[Bug testsuite/86158] [9 regression] gcc.c-torture/unsorted/dump-noaddr.c.*i.lto-stream-out fails starting with 261546

2018-06-15 Thread hubicka at ucw dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86158

--- Comment #3 from Jan Hubicka  ---
The dumps contains addresses of tree nodes streamed.  I will work out how to
silence them.

Honza

[Bug testsuite/86158] [9 regression] gcc.c-torture/unsorted/dump-noaddr.c.*i.lto-stream-out fails starting with 261546

2018-06-15 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86158

Christophe Lyon  changed:

   What|Removed |Added

 CC||clyon at gcc dot gnu.org

--- Comment #2 from Christophe Lyon  ---
The problem appeared between r261472 and r261580

[Bug testsuite/86158] [9 regression] gcc.c-torture/unsorted/dump-noaddr.c.*i.lto-stream-out fails starting with 261546

2018-06-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86158

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-06-15
   Target Milestone|--- |9.0
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener  ---
Confirmed.