public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/58152] New: ARM: unnecessary push before call to noreturn function
@ 2013-08-14  9:46 jay.foad at gmail dot com
  2013-08-14 14:54 ` [Bug target/58152] " pinskia at gcc dot gnu.org
  2013-08-14 15:38 ` pinskia at gcc dot gnu.org
  0 siblings, 2 replies; 3+ messages in thread
From: jay.foad at gmail dot com @ 2013-08-14  9:46 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 58152
           Summary: ARM: unnecessary push before call to noreturn function
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jay.foad at gmail dot com

Created attachment 30652
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30652&action=edit
C source for testcase

On the attached test case I get:

$ gcc -marm -S -O2 ~/mul.c -o - -fomit-frame-pointer -march=armv6
...
mul:
    @ args = 0, pretend = 0, frame = 0
    @ frame_needed = 0, uses_anonymous_args = 0
    smull    r0, r1, r0, r1
    cmp    r1, r0, asr #31
    bxeq    lr
    stmfd    sp!, {r3, lr}
    bl    overflow

The stmfd instruction is completely unnecessary.

I'm using gcc built from svn r201719 configured with --target=arm-eabi.


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

* [Bug target/58152] ARM: unnecessary push before call to noreturn function
  2013-08-14  9:46 [Bug target/58152] New: ARM: unnecessary push before call to noreturn function jay.foad at gmail dot com
@ 2013-08-14 14:54 ` pinskia at gcc dot gnu.org
  2013-08-14 15:38 ` pinskia at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: pinskia at gcc dot gnu.org @ 2013-08-14 14:54 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This is expected behavior as noreturn functions are not sibcalled optimized. 
The main reason is that even without debugging information, you want to find
out where the noreturn function was called from.


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

* [Bug target/58152] ARM: unnecessary push before call to noreturn function
  2013-08-14  9:46 [Bug target/58152] New: ARM: unnecessary push before call to noreturn function jay.foad at gmail dot com
  2013-08-14 14:54 ` [Bug target/58152] " pinskia at gcc dot gnu.org
@ 2013-08-14 15:38 ` pinskia at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: pinskia at gcc dot gnu.org @ 2013-08-14 15:38 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Dup of bug 10837

*** This bug has been marked as a duplicate of bug 10837 ***


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

end of thread, other threads:[~2013-08-14 15:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-14  9:46 [Bug target/58152] New: ARM: unnecessary push before call to noreturn function jay.foad at gmail dot com
2013-08-14 14:54 ` [Bug target/58152] " pinskia at gcc dot gnu.org
2013-08-14 15:38 ` pinskia 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).