public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/34743]  New: Testcase gcc.dg/tree-ssa/20070302-1.c is broken
@ 2008-01-11 15:21 dnovillo at gcc dot gnu dot org
  2008-01-11 18:09 ` [Bug middle-end/34743] " rguenth at gcc dot gnu dot org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: dnovillo at gcc dot gnu dot org @ 2008-01-11 15:21 UTC (permalink / raw)
  To: gcc-bugs

The test stopped testing what it's supposed to test.  The call to function
baz() should not be inlined.  This patch to the test exposes the failure.  The
operand scanner is adding non-clobbered symbols to the call site.

Details at http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00477.html


-- 
           Summary: Testcase gcc.dg/tree-ssa/20070302-1.c is broken
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: middle-end
        AssignedTo: dnovillo at gcc dot gnu dot org
        ReportedBy: dnovillo at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34743


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

* [Bug middle-end/34743] Testcase gcc.dg/tree-ssa/20070302-1.c is broken
  2008-01-11 15:21 [Bug middle-end/34743] New: Testcase gcc.dg/tree-ssa/20070302-1.c is broken dnovillo at gcc dot gnu dot org
@ 2008-01-11 18:09 ` rguenth at gcc dot gnu dot org
  2008-01-11 18:26 ` rguenth at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-01-11 18:09 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from rguenth at gcc dot gnu dot org  2008-01-11 15:57 -------
It's doing the correct thing.  We have

p_1, name memory tag: NMT.14, is dereferenced, points-to vars: { SFT.3 SFT.7 }

(SFT.3 is x.x, SFT.7 is z.x)

Now, NMT.14 is marked call clobbered:

NMT.14, UID D.1582, struct A, is addressable, score: 40, direct reads: 2,
direct writes: 1, indirect reads: 0, indirect writes: 2, call clobbered (passed
to call), may aliases: { SFT.3 SFT.7 }

because one of its pointed-to vars is call clobbered (SFT.7, aka z, which is
passed to the call).  Here:

static void
compute_tag_properties (void)
{
...
          EXECUTE_IF_SET_IN_BITMAP (ma, 0, i, bi)
            {
              entry = referenced_var (i);
              /* Call clobbered entries cause the tag to be marked
                 call clobbered.  */
              if (!tagcc && is_call_clobbered (entry)) 
                {
                  mark_call_clobbered (tag, var_ann (entry)->escape_mask);
                  tagcc = true;
                  changed = true;
                }

I don't know if we can disable this if var_ann (entry)->escape_mask ==
ESCAPE_TO_CALL.

I don't know if we need to propagate tags from NMT aliases to the NMT
this way at all - after all we add all subvars of an escaped var to
call clobbered vars already.

So, confirmed - there's a missing optimization.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |alias, missed-optimization
   Last reconfirmed|0000-00-00 00:00:00         |2008-01-11 15:57:57
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34743


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

* [Bug middle-end/34743] Testcase gcc.dg/tree-ssa/20070302-1.c is broken
  2008-01-11 15:21 [Bug middle-end/34743] New: Testcase gcc.dg/tree-ssa/20070302-1.c is broken dnovillo at gcc dot gnu dot org
  2008-01-11 18:09 ` [Bug middle-end/34743] " rguenth at gcc dot gnu dot org
@ 2008-01-11 18:26 ` rguenth at gcc dot gnu dot org
  2008-01-14 11:20 ` [Bug middle-end/34743] Testcase gcc.dg/tree-ssa/20070302-1.c is broken (unneeded call clobbering) rguenth at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-01-11 18:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from rguenth at gcc dot gnu dot org  2008-01-11 16:39 -------
We even mark all pointed-to vars of value-escaping pointers as call-clobbered.
So I believe NMTs itself need never be call-clobbered.  But there's also
hints that we cover bugs somewhere:

         FIXME:  This is not quite right.  They should only be
         clobbered if value_escapes_p is true, regardless of whether
         they point to global memory or not.
         So removing this code and fixing all the bugs would be nice.
         It is the cause of a bunch of clobbering.  */

Also it is not at all clear to me what MTAG_GLOBAL is all about (and its
appearant relation to call clobbered state).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34743


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

* [Bug middle-end/34743] Testcase gcc.dg/tree-ssa/20070302-1.c is broken (unneeded call clobbering)
  2008-01-11 15:21 [Bug middle-end/34743] New: Testcase gcc.dg/tree-ssa/20070302-1.c is broken dnovillo at gcc dot gnu dot org
  2008-01-11 18:09 ` [Bug middle-end/34743] " rguenth at gcc dot gnu dot org
  2008-01-11 18:26 ` rguenth at gcc dot gnu dot org
@ 2008-01-14 11:20 ` rguenth at gcc dot gnu dot org
  2008-01-14 11:35 ` rguenth at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-01-14 11:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from rguenth at gcc dot gnu dot org  2008-01-14 10:56 -------
Let's defer this to stage1.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|minor                       |enhancement
            Summary|Testcase gcc.dg/tree-       |Testcase gcc.dg/tree-
                   |ssa/20070302-1.c is broken  |ssa/20070302-1.c is broken
                   |                            |(unneeded call clobbering)


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34743


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

* [Bug middle-end/34743] Testcase gcc.dg/tree-ssa/20070302-1.c is broken (unneeded call clobbering)
  2008-01-11 15:21 [Bug middle-end/34743] New: Testcase gcc.dg/tree-ssa/20070302-1.c is broken dnovillo at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2008-01-14 11:20 ` [Bug middle-end/34743] Testcase gcc.dg/tree-ssa/20070302-1.c is broken (unneeded call clobbering) rguenth at gcc dot gnu dot org
@ 2008-01-14 11:35 ` rguenth at gcc dot gnu dot org
  2009-04-03 11:17 ` rguenth at gcc dot gnu dot org
  2009-04-03 11:17 ` rguenth at gcc dot gnu dot org
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-01-14 11:35 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from rguenth at gcc dot gnu dot org  2008-01-14 10:58 -------
Created an attachment (id=14940)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14940&action=view)
patch I was toying with


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34743


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

* [Bug middle-end/34743] Testcase gcc.dg/tree-ssa/20070302-1.c is broken (unneeded call clobbering)
  2008-01-11 15:21 [Bug middle-end/34743] New: Testcase gcc.dg/tree-ssa/20070302-1.c is broken dnovillo at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2008-01-14 11:35 ` rguenth at gcc dot gnu dot org
@ 2009-04-03 11:17 ` rguenth at gcc dot gnu dot org
  2009-04-03 11:17 ` rguenth at gcc dot gnu dot org
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-04-03 11:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from rguenth at gcc dot gnu dot org  2009-04-03 11:16 -------
Fixed for 4.5.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.5.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34743


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

* [Bug middle-end/34743] Testcase gcc.dg/tree-ssa/20070302-1.c is broken (unneeded call clobbering)
  2008-01-11 15:21 [Bug middle-end/34743] New: Testcase gcc.dg/tree-ssa/20070302-1.c is broken dnovillo at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2009-04-03 11:17 ` rguenth at gcc dot gnu dot org
@ 2009-04-03 11:17 ` rguenth at gcc dot gnu dot org
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-04-03 11:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from rguenth at gcc dot gnu dot org  2009-04-03 11:16 -------
Subject: Bug 34743

Author: rguenth
Date: Fri Apr  3 11:16:29 2009
New Revision: 145497

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145497
Log:
2009-04-03  Richard Guenther  <rguenther@suse.de>

        PR tree-optimization/34743
        * gcc.dg/pr38984.c: Remove XFAIL, adjust.
        * gcc.dg/tree-ssa/20070302-1.c: Remove XFAIL.
        * gcc.dg/tree-ssa/alias-18.c: Likewise.
        * gcc.dg/tree-ssa/sra-3.c: Likewise.
        * gcc.dg/vect/no-vfa-vect-49.c: Likewise.
        * gcc.dg/vect/no-vfa-vect-53.c: Likewise.
        * gcc.dg/vect/no-vfa-vect-57.c: Likewise.
        * gcc.dg/vect/no-vfa-vect-61.c: Likewise.

Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/pr38984.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/20070302-1.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/alias-18.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/sra-3.c
    trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-49.c
    trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-53.c
    trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c
    trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34743


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

end of thread, other threads:[~2009-04-03 11:17 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-11 15:21 [Bug middle-end/34743] New: Testcase gcc.dg/tree-ssa/20070302-1.c is broken dnovillo at gcc dot gnu dot org
2008-01-11 18:09 ` [Bug middle-end/34743] " rguenth at gcc dot gnu dot org
2008-01-11 18:26 ` rguenth at gcc dot gnu dot org
2008-01-14 11:20 ` [Bug middle-end/34743] Testcase gcc.dg/tree-ssa/20070302-1.c is broken (unneeded call clobbering) rguenth at gcc dot gnu dot org
2008-01-14 11:35 ` rguenth at gcc dot gnu dot org
2009-04-03 11:17 ` rguenth at gcc dot gnu dot org
2009-04-03 11:17 ` rguenth at gcc dot gnu dot 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).