public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes
@ 2011-07-28 11:42 jamborm at gcc dot gnu.org
  2011-07-28 11:51 ` [Bug middle-end/49886] [4.6/4.7 Regression] " rguenth at gcc dot gnu.org
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: jamborm at gcc dot gnu.org @ 2011-07-28 11:42 UTC (permalink / raw)
  To: gcc-bugs

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

           Summary: pass_split_functions cannot deal with function type
                    attributes
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: jamborm@gcc.gnu.org
                CC: hubicka@gcc.gnu.org
              Host: i686-linux-gnu, x86_64-linux-gnu
            Target: i686-linux-gnu, x86_64-linux-gnu
             Build: i686-linux-gnu, x86_64-linux-gnu


Created attachment 24855
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24855
Testcase

pass_split_functions is happy to split functions which have type
attributes but cannot update them if the new clone has in any way
different parameters than the original.

This can lead to miscompilations, for example, the attached testcase
segfaults when compiled at -O3 (on i686 and x86_64 but probably just
everywhere, tested on trunk and a checkout of the 4.6 branch from
July 11).  -fno-partial-inlining makes the problem go away.


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

* [Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes
  2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
@ 2011-07-28 11:51 ` rguenth at gcc dot gnu.org
  2011-07-28 16:53 ` jamborm at gcc dot gnu.org
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-07-28 11:51 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
   Target Milestone|---                         |4.6.2
            Summary|pass_split_functions cannot |[4.6/4.7 Regression]
                   |deal with function type     |pass_split_functions cannot
                   |attributes                  |deal with function type
                   |                            |attributes


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

* [Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes
  2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
  2011-07-28 11:51 ` [Bug middle-end/49886] [4.6/4.7 Regression] " rguenth at gcc dot gnu.org
@ 2011-07-28 16:53 ` jamborm at gcc dot gnu.org
  2011-08-01 14:53 ` rguenth at gcc dot gnu.org
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jamborm at gcc dot gnu.org @ 2011-07-28 16:53 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-07-28 16:53:23 UTC ---
Proposed patch posted to the mailing list:

http://gcc.gnu.org/ml/gcc-patches/2011-07/msg02546.html


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

* [Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes
  2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
  2011-07-28 11:51 ` [Bug middle-end/49886] [4.6/4.7 Regression] " rguenth at gcc dot gnu.org
  2011-07-28 16:53 ` jamborm at gcc dot gnu.org
@ 2011-08-01 14:53 ` rguenth at gcc dot gnu.org
  2011-08-31 17:48 ` jamborm at gcc dot gnu.org
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-08-01 14:53 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2


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

* [Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes
  2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2011-08-01 14:53 ` rguenth at gcc dot gnu.org
@ 2011-08-31 17:48 ` jamborm at gcc dot gnu.org
  2011-09-02 12:46 ` jamborm at gcc dot gnu.org
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jamborm at gcc dot gnu.org @ 2011-08-31 17:48 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-08-31 17:17:27 UTC ---
Author: jamborm
Date: Wed Aug 31 17:17:19 2011
New Revision: 178386

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=178386
Log:
2011-08-31  Martin Jambor  <mjambor@suse.cz>

    PR middle-end/49886
    * ipa-inline-analysis.c (compute_inline_parameters): Set
    can_change_signature of noes with typde attributes.
    * ipa-split.c (split_function): Do not skip any arguments if
    can_change_signature is set.

    * testsuite/gcc.c-torture/execute/pr49886.c: New testcase.


Added:
    trunk/gcc/testsuite/gcc.c-torture/execute/pr49886.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/ipa-inline-analysis.c
    trunk/gcc/ipa-split.c
    trunk/gcc/testsuite/ChangeLog


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

* [Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes
  2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2011-08-31 17:48 ` jamborm at gcc dot gnu.org
@ 2011-09-02 12:46 ` jamborm at gcc dot gnu.org
  2011-09-02 14:31 ` jamborm at gcc dot gnu.org
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jamborm at gcc dot gnu.org @ 2011-09-02 12:46 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-09-02 12:46:10 UTC ---
4.6 version of the patch posted to the mailing list:

http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00140.html


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

* [Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes
  2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2011-09-02 12:46 ` jamborm at gcc dot gnu.org
@ 2011-09-02 14:31 ` jamborm at gcc dot gnu.org
  2011-09-03 19:41 ` jamborm at gcc dot gnu.org
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jamborm at gcc dot gnu.org @ 2011-09-02 14:31 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-09-02 14:30:49 UTC ---
Author: jamborm
Date: Fri Sep  2 14:30:34 2011
New Revision: 178482

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=178482
Log:
2011-09-02  Martin Jambor  <mjambor@suse.cz>

    PR middle-end/49886
    * ipa-split.c (split_function): Do not skip any arguments if
    can_change_signature is set or there are function type attributes.

    * testsuite/gcc.c-torture/execute/pr49886.c: New testcase.
    * testsuite/gfortran.fortran-torture/compile/pr50260.f90: Likewise.


Added:
    branches/gcc-4_6-branch/gcc/testsuite/gcc.c-torture/execute/pr49886.c
   
branches/gcc-4_6-branch/gcc/testsuite/gfortran.fortran-torture/compile/pr50260.f90
Modified:
    branches/gcc-4_6-branch/gcc/ChangeLog
    branches/gcc-4_6-branch/gcc/ipa-split.c
    branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


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

* [Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes
  2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2011-09-02 14:31 ` jamborm at gcc dot gnu.org
@ 2011-09-03 19:41 ` jamborm at gcc dot gnu.org
  2011-09-06 15:09 ` jamborm at gcc dot gnu.org
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jamborm at gcc dot gnu.org @ 2011-09-03 19:41 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Jambor <jamborm at gcc dot gnu.org> changed:

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

--- Comment #5 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-09-03 19:41:26 UTC ---
Fixed on both trunk and the 4.6 branch.


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

* [Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes
  2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2011-09-03 19:41 ` jamborm at gcc dot gnu.org
@ 2011-09-06 15:09 ` jamborm at gcc dot gnu.org
  2011-09-07 12:02 ` jamborm at gcc dot gnu.org
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jamborm at gcc dot gnu.org @ 2011-09-06 15:09 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-09-06 15:09:18 UTC ---
Author: jamborm
Date: Tue Sep  6 15:09:10 2011
New Revision: 178599

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=178599
Log:
2011-09-06  Martin Jambor  <mjambor@suse.cz>

    Revert
    2011-09-02  Martin Jambor  <mjambor@suse.cz>
        PR middle-end/49886
        * ipa-split.c (split_function): Do not skip any arguments if
        can_change_signature is set or there are function type attributes.

testsuite/
    * gcc.c-torture/execute/pr49886.c: Move to...
    * gcc.dg/torture/pr49886.c: ...here. Xfail run test for -O2 and above.


Added:
    branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/torture/pr49886.c
      - copied, changed from r178598,
branches/gcc-4_6-branch/gcc/testsuite/gcc.c-torture/execute/pr49886.c
Removed:
    branches/gcc-4_6-branch/gcc/testsuite/gcc.c-torture/execute/pr49886.c
Modified:
    branches/gcc-4_6-branch/gcc/ChangeLog
    branches/gcc-4_6-branch/gcc/ipa-split.c
    branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


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

* [Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes
  2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2011-09-06 15:09 ` jamborm at gcc dot gnu.org
@ 2011-09-07 12:02 ` jamborm at gcc dot gnu.org
  2011-09-19  6:20 ` terry.guo at arm dot com
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jamborm at gcc dot gnu.org @ 2011-09-07 12:02 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Jambor <jamborm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
   Last reconfirmed|                            |2011-09-07
         Resolution|FIXED                       |
     Ever Confirmed|0                           |1

--- Comment #7 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-09-07 11:59:28 UTC ---
I reverted the fix on 4.6 branch because it was causing a lot of other trouble
(particularly PR 50295).  Therefore, this has to be re-opened.


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

* [Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes
  2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2011-09-07 12:02 ` jamborm at gcc dot gnu.org
@ 2011-09-19  6:20 ` terry.guo at arm dot com
  2011-09-19 11:46 ` jamborm at gcc dot gnu.org
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: terry.guo at arm dot com @ 2011-09-19  6:20 UTC (permalink / raw)
  To: gcc-bugs

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

Terry Guo <terry.guo at arm dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |terry.guo at arm dot com

--- Comment #8 from Terry Guo <terry.guo at arm dot com> 2011-09-19 05:46:58 UTC ---
(In reply to comment #7)
> I reverted the fix on 4.6 branch because it was causing a lot of other trouble
> (particularly PR 50295).  Therefore, this has to be re-opened.

Hi Martin,

I noticed a new dg directive was added as "/* { dg-xfail-run-if "" { "*-*-*" }
{ "-O2" "-O3" "-Os" } } */". Since then, this case is XPASS for arm-none-eabi
on QEMU for Cortex-M3. Here are the log:

Running
/home/build/work/jenkins-daily-build/src/gcc/gcc/testsuite/gcc.dg/torture/dg-torture.exp
...
XPASS: gcc.dg/torture/pr49886.c  -O2  execution test
XPASS: gcc.dg/torture/pr49886.c  -O3 -fomit-frame-pointer  execution test
XPASS: gcc.dg/torture/pr49886.c  -O3 -fomit-frame-pointer -funroll-loops 
execution test
XPASS: gcc.dg/torture/pr49886.c  -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions  execution test
XPASS: gcc.dg/torture/pr49886.c  -O3 -g  execution test
XPASS: gcc.dg/torture/pr49886.c  -Os  execution test

Do you think the case should fail for arm-none-eabi or not? If not, I think we
may need arm-none-eabi from dg-xfail-run-if.


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

* [Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes
  2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2011-09-19  6:20 ` terry.guo at arm dot com
@ 2011-09-19 11:46 ` jamborm at gcc dot gnu.org
  2011-09-19 13:37 ` jamborm at gcc dot gnu.org
  2011-09-19 13:57 ` jamborm at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: jamborm at gcc dot gnu.org @ 2011-09-19 11:46 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #9 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-09-19 11:43:04 UTC ---
Thanks for letting me know about this. However, as described in

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

the whole XFAIL will go away after I commit the patch today.


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

* [Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes
  2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
                   ` (10 preceding siblings ...)
  2011-09-19 11:46 ` jamborm at gcc dot gnu.org
@ 2011-09-19 13:37 ` jamborm at gcc dot gnu.org
  2011-09-19 13:57 ` jamborm at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: jamborm at gcc dot gnu.org @ 2011-09-19 13:37 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-09-19 13:27:00 UTC ---
Author: jamborm
Date: Mon Sep 19 13:26:50 2011
New Revision: 178973

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=178973
Log:
2011-09-19  Martin Jambor  <mjambor@suse.cz>

    PR middle-end/49886
    * ipa-split.c (split_function): Do not change signature if it is
    not possible or there are attribute types.

    * testsuite/gcc.dg/torture/pr49886.c: Remove XFAILs.
    * testsuite/gcc.dg/torture/pr50287.c: New test.


Added:
    branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/torture/pr50287.c
Modified:
    branches/gcc-4_6-branch/gcc/ChangeLog
    branches/gcc-4_6-branch/gcc/ipa-split.c
    branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/torture/pr49886.c


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

* [Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes
  2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
                   ` (11 preceding siblings ...)
  2011-09-19 13:37 ` jamborm at gcc dot gnu.org
@ 2011-09-19 13:57 ` jamborm at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: jamborm at gcc dot gnu.org @ 2011-09-19 13:57 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Jambor <jamborm at gcc dot gnu.org> changed:

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

--- Comment #11 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-09-19 13:35:35 UTC ---
So this should now be fixed again.


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

end of thread, other threads:[~2011-09-19 13:37 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-28 11:42 [Bug middle-end/49886] New: pass_split_functions cannot deal with function type attributes jamborm at gcc dot gnu.org
2011-07-28 11:51 ` [Bug middle-end/49886] [4.6/4.7 Regression] " rguenth at gcc dot gnu.org
2011-07-28 16:53 ` jamborm at gcc dot gnu.org
2011-08-01 14:53 ` rguenth at gcc dot gnu.org
2011-08-31 17:48 ` jamborm at gcc dot gnu.org
2011-09-02 12:46 ` jamborm at gcc dot gnu.org
2011-09-02 14:31 ` jamborm at gcc dot gnu.org
2011-09-03 19:41 ` jamborm at gcc dot gnu.org
2011-09-06 15:09 ` jamborm at gcc dot gnu.org
2011-09-07 12:02 ` jamborm at gcc dot gnu.org
2011-09-19  6:20 ` terry.guo at arm dot com
2011-09-19 11:46 ` jamborm at gcc dot gnu.org
2011-09-19 13:37 ` jamborm at gcc dot gnu.org
2011-09-19 13:57 ` jamborm 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).