public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug testsuite/103282] New: New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails
@ 2021-11-16 18:32 seurer at gcc dot gnu.org
  2021-11-16 19:25 ` [Bug testsuite/103282] " hjl.tools at gmail dot com
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: seurer at gcc dot gnu.org @ 2021-11-16 18:32 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103282

            Bug ID: 103282
           Summary: New test case gcc.dg/tree-ssa/modref-dse-5.c in
                    r12-5292 fails
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: testsuite
          Assignee: unassigned at gcc dot gnu.org
          Reporter: seurer at gcc dot gnu.org
  Target Milestone: ---

g:e69b7c5779863469479698f863ab25e0d9b4586e, r12-5292
make  -k check-gcc RUNTESTFLAGS="tree-ssa.exp=gcc.dg/tree-ssa/modref-dse-5.c"
FAIL: gcc.dg/tree-ssa/modref-dse-5.c scan-tree-dump dse2 "Deleted dead store:
wrap"
# of expected passes            1
# of unexpected failures        1


commit e69b7c5779863469479698f863ab25e0d9b4586e (HEAD, refs/bisect/bad)
Author: Jan Hubicka <jh@suse.cz>
Date:   Tue Nov 16 09:15:39 2021 +0100

    Fix uninitialized access in merge_call_side_effects

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug testsuite/103282] New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails
  2021-11-16 18:32 [Bug testsuite/103282] New: New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails seurer at gcc dot gnu.org
@ 2021-11-16 19:25 ` hjl.tools at gmail dot com
  2021-11-16 22:03 ` hubicka at gcc dot gnu.org
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: hjl.tools at gmail dot com @ 2021-11-16 19:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103282

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
              Build|powerpc64-linux-gnu,        |
                   |powerpc64le-linux-gnu       |
   Last reconfirmed|                            |2021-11-16
             Status|UNCONFIRMED                 |NEW
             Target|powerpc64-linux-gnu,        |
                   |powerpc64le-linux-gnu       |
                 CC|                            |hjl.tools at gmail dot com
     Ever confirmed|0                           |1
               Host|powerpc64-linux-gnu,        |
                   |powerpc64le-linux-gnu       |

--- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> ---
I also saw it on Linux/x86.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug testsuite/103282] New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails
  2021-11-16 18:32 [Bug testsuite/103282] New: New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails seurer at gcc dot gnu.org
  2021-11-16 19:25 ` [Bug testsuite/103282] " hjl.tools at gmail dot com
@ 2021-11-16 22:03 ` hubicka at gcc dot gnu.org
  2021-11-18 19:24 ` seurer at gcc dot gnu.org
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: hubicka at gcc dot gnu.org @ 2021-11-16 22:03 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103282

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Sorry, I pushed in patches in wrong order and modref-dse-5.c testcase requires
the bytewise DSE patch (adding modref-dse-4.c) already in.  I pushed it now and
the failure is gone.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug testsuite/103282] New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails
  2021-11-16 18:32 [Bug testsuite/103282] New: New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails seurer at gcc dot gnu.org
  2021-11-16 19:25 ` [Bug testsuite/103282] " hjl.tools at gmail dot com
  2021-11-16 22:03 ` hubicka at gcc dot gnu.org
@ 2021-11-18 19:24 ` seurer at gcc dot gnu.org
  2021-11-19  6:54 ` pinskia at gcc dot gnu.org
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: seurer at gcc dot gnu.org @ 2021-11-18 19:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103282

seurer at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|FIXED                       |---
             Status|RESOLVED                    |REOPENED

--- Comment #3 from seurer at gcc dot gnu.org ---
g:6f4ac4f81f89caac7e74127ed2e6db6bbb3d7426, r12-5385
make  -k check-gcc RUNTESTFLAGS="--target_board=unix'{-m32,-m64}'
tree-ssa.exp=gcc.dg/tree-ssa/modref-dse-5.c"
FAIL: gcc.dg/tree-ssa/modref-dse-5.c scan-tree-dump dse2 "Deleted dead store:
wrap"

I am still seeing this on current trunk on big endian systems (power 7 and
power 8).

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug testsuite/103282] New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails
  2021-11-16 18:32 [Bug testsuite/103282] New: New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails seurer at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2021-11-18 19:24 ` seurer at gcc dot gnu.org
@ 2021-11-19  6:54 ` pinskia at gcc dot gnu.org
  2021-11-19  6:57 ` pinskia at gcc dot gnu.org
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-11-19  6:54 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103282

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Worked for me as of r12-5390-gd3152981f71eef1

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug testsuite/103282] New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails
  2021-11-16 18:32 [Bug testsuite/103282] New: New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails seurer at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2021-11-19  6:54 ` pinskia at gcc dot gnu.org
@ 2021-11-19  6:57 ` pinskia at gcc dot gnu.org
  2021-11-19 11:41 ` hubicka at gcc dot gnu.org
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-11-19  6:57 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103282

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #4)
> Worked for me as of r12-5390-gd3152981f71eef1

I should say this was on x86_64.
And passing as of r12-5363 on aarch64-linux-gnu.

Is it failing for 32bit or 64bit or both

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug testsuite/103282] New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails
  2021-11-16 18:32 [Bug testsuite/103282] New: New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails seurer at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2021-11-19  6:57 ` pinskia at gcc dot gnu.org
@ 2021-11-19 11:41 ` hubicka at gcc dot gnu.org
  2021-11-19 16:13 ` seurer at gcc dot gnu.org
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: hubicka at gcc dot gnu.org @ 2021-11-19 11:41 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103282

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |hubicka at gcc dot gnu.org

--- Comment #6 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
I will take a look why endiantiy/type sizes matters here.  I think it should
not.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug testsuite/103282] New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails
  2021-11-16 18:32 [Bug testsuite/103282] New: New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails seurer at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2021-11-19 11:41 ` hubicka at gcc dot gnu.org
@ 2021-11-19 16:13 ` seurer at gcc dot gnu.org
  2021-11-22  9:38 ` hubicka at gcc dot gnu.org
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: seurer at gcc dot gnu.org @ 2021-11-19 16:13 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103282

--- Comment #7 from seurer at gcc dot gnu.org ---
Looks like it is 32 bit only.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug testsuite/103282] New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails
  2021-11-16 18:32 [Bug testsuite/103282] New: New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails seurer at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2021-11-19 16:13 ` seurer at gcc dot gnu.org
@ 2021-11-22  9:38 ` hubicka at gcc dot gnu.org
  2021-11-22 10:55 ` hubicka at gcc dot gnu.org
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: hubicka at gcc dot gnu.org @ 2021-11-22  9:38 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103282

--- Comment #8 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
OK, the difference seems to be that on x86_64 even with -m32 we vectorize
kill_me:

__attribute__((noinline))
void kill_me (struct a * a)
{
  int * vectp.6;
  vector(2) int * vectp_a.5;

  <bb 2> [local count: 1073741824]:
  MEM <vector(2) int> [(int *)a_2(D)] = { 0, 0 };
  a_2(D)->c = 0;
  return;
}

which leads different modref summary:

   Limits: 32 bases, 16 refs
      Base 0: alias set 1
        Ref 0: alias set 1
          access: Parm 0 param offset:0 offset:0 size:64 max_size:64
      Base 1: alias set 2
        Ref 0: alias set 1
          access: Parm 0 param offset:0 offset:64 size:32 max_size:32
  kills:
     Parm 0 param offset:0 offset:0 size:96 max_size:96
  Try dse
  parm 0 flags: no_indirect_clobber no_direct_escape no_indirect_escape
no_direct_read no_indirect_read

compared to:

  loads:                                                                        
    Limits: 32 bases, 16 refs                                                   
  stores:                                                                       
    Limits: 32 bases, 16 refs                                                   
      Base 0: alias set 2                                                       
        Ref 0: alias set 1                                                      
          access: Parm 0 param offset:0 offset:0 size:32 max_size:96            
  kills:                                                                        
     Parm 0 param offset:0 offset:0 size:96 max_size:96                         
  Try dse                                                                       
  parm 0 flags: no_indirect_clobber no_direct_escape no_indirect_escape
no_direct_read no_indirect_read

Both summaries are correct and I wonder why bytewise DSE does not like the
second.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug testsuite/103282] New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails
  2021-11-16 18:32 [Bug testsuite/103282] New: New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails seurer at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2021-11-22  9:38 ` hubicka at gcc dot gnu.org
@ 2021-11-22 10:55 ` hubicka at gcc dot gnu.org
  2021-11-23 10:00 ` hubicka at gcc dot gnu.org
  2021-11-26  0:41 ` hubicka at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: hubicka at gcc dot gnu.org @ 2021-11-22 10:55 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103282

--- Comment #9 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
So the problem is that dse is giving up on determining if partial stores was
killed.  This is completely unnecesary: one can kill partial store by a full
store.

diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 9531d892f76..c07782d680b 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -197,11 +197,11 @@ normalize_ref (ao_ref *copy, ao_ref *ref)
     }

   poly_int64 diff = copy->offset - ref->offset;
-  if (maybe_le (ref->size, diff))
+  if (maybe_le (ref->max_size, diff))
     return false;

   /* If COPY extends beyond REF, chop off its size appropriately.  */
-  poly_int64 limit = ref->size - diff;
+  poly_int64 limit = ref->max_size - diff;
   if (!ordered_p (limit, copy->size))
     return false;

@@ -266,8 +266,12 @@ static bool
 setup_live_bytes_from_ref (ao_ref *ref, sbitmap live_bytes)
 {
   HOST_WIDE_INT const_size;
-  if (valid_ao_ref_for_dse (ref)
-      && ref->size.is_constant (&const_size)
+  if (ao_ref_base (ref)
+      && known_size_p (ref->max_size)
+      && known_ge (ref->offset, 0)
+      && multiple_p (ref->offset, BITS_PER_UNIT)
+      && multiple_p (ref->max_size, BITS_PER_UNIT)
+      && ref->max_size.is_constant (&const_size)
       && (const_size / BITS_PER_UNIT
          <= param_dse_max_object_size))
     {

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug testsuite/103282] New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails
  2021-11-16 18:32 [Bug testsuite/103282] New: New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails seurer at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2021-11-22 10:55 ` hubicka at gcc dot gnu.org
@ 2021-11-23 10:00 ` hubicka at gcc dot gnu.org
  2021-11-26  0:41 ` hubicka at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: hubicka at gcc dot gnu.org @ 2021-11-23 10:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103282

--- Comment #10 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
fixed by g:6033b27eade9c31c0be50657094c89ef9068892d

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug testsuite/103282] New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails
  2021-11-16 18:32 [Bug testsuite/103282] New: New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails seurer at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2021-11-23 10:00 ` hubicka at gcc dot gnu.org
@ 2021-11-26  0:41 ` hubicka at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: hubicka at gcc dot gnu.org @ 2021-11-26  0:41 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103282

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|REOPENED                    |RESOLVED

--- Comment #11 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Fixed.

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2021-11-26  0:41 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-16 18:32 [Bug testsuite/103282] New: New test case gcc.dg/tree-ssa/modref-dse-5.c in r12-5292 fails seurer at gcc dot gnu.org
2021-11-16 19:25 ` [Bug testsuite/103282] " hjl.tools at gmail dot com
2021-11-16 22:03 ` hubicka at gcc dot gnu.org
2021-11-18 19:24 ` seurer at gcc dot gnu.org
2021-11-19  6:54 ` pinskia at gcc dot gnu.org
2021-11-19  6:57 ` pinskia at gcc dot gnu.org
2021-11-19 11:41 ` hubicka at gcc dot gnu.org
2021-11-19 16:13 ` seurer at gcc dot gnu.org
2021-11-22  9:38 ` hubicka at gcc dot gnu.org
2021-11-22 10:55 ` hubicka at gcc dot gnu.org
2021-11-23 10:00 ` hubicka at gcc dot gnu.org
2021-11-26  0:41 ` hubicka at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).