public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/38571]  New: GCC/THUMB generates unnecessary padding between functions
@ 2008-12-18 17:42 daniel dot sherwood at sepura dot com
  2008-12-18 17:43 ` [Bug c/38571] " daniel dot sherwood at sepura dot com
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: daniel dot sherwood at sepura dot com @ 2008-12-18 17:42 UTC (permalink / raw)
  To: gcc-bugs

WHen generating code, the compiler adds unnecessary '.align 2' assembeler
directives (where '.align 2' means align on a four byte boundary).  This
results in extra padding being added between functions.

This occurs even when -fno-align-functions & -fno-align-labels are specified.

Richard Earnshaw [Richard.Earnshaw@arm.com] has confirmed that this is an issue
and requested that I raise it in bugzilla.

In the attached example (test.c), it can be seen in the generated assembly file
(test-align-thumb.s) that various .align 2 statements appear.

Command line was:

arm-none-eabi-gcc test.c -Os -S -mthumb -fno-align-functions -fno-align-labels
-o test-align-thumb.s


-- 
           Summary: GCC/THUMB generates unnecessary padding between
                    functions
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: daniel dot sherwood at sepura dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-mingw32
GCC target triplet: arm-none-eabi


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


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

* [Bug c/38571] GCC/THUMB generates unnecessary padding between functions
  2008-12-18 17:42 [Bug c/38571] New: GCC/THUMB generates unnecessary padding between functions daniel dot sherwood at sepura dot com
                   ` (2 preceding siblings ...)
  2008-12-18 17:43 ` daniel dot sherwood at sepura dot com
@ 2008-12-18 17:43 ` daniel dot sherwood at sepura dot com
  2008-12-18 17:44 ` daniel dot sherwood at sepura dot com
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: daniel dot sherwood at sepura dot com @ 2008-12-18 17:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from daniel dot sherwood at sepura dot com  2008-12-18 17:41 -------
Created an attachment (id=16933)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16933&action=view)
gcc -v output


-- 


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


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

* [Bug c/38571] GCC/THUMB generates unnecessary padding between functions
  2008-12-18 17:42 [Bug c/38571] New: GCC/THUMB generates unnecessary padding between functions daniel dot sherwood at sepura dot com
  2008-12-18 17:43 ` [Bug c/38571] " daniel dot sherwood at sepura dot com
  2008-12-18 17:43 ` daniel dot sherwood at sepura dot com
@ 2008-12-18 17:43 ` daniel dot sherwood at sepura dot com
  2008-12-18 17:43 ` daniel dot sherwood at sepura dot com
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: daniel dot sherwood at sepura dot com @ 2008-12-18 17:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from daniel dot sherwood at sepura dot com  2008-12-18 17:42 -------
Created an attachment (id=16934)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16934&action=view)
Source


-- 


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


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

* [Bug c/38571] GCC/THUMB generates unnecessary padding between functions
  2008-12-18 17:42 [Bug c/38571] New: GCC/THUMB generates unnecessary padding between functions daniel dot sherwood at sepura dot com
@ 2008-12-18 17:43 ` daniel dot sherwood at sepura dot com
  2008-12-18 17:43 ` daniel dot sherwood at sepura dot com
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: daniel dot sherwood at sepura dot com @ 2008-12-18 17:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from daniel dot sherwood at sepura dot com  2008-12-18 17:42 -------
Created an attachment (id=16936)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16936&action=view)
Generated assembly


-- 


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


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

* [Bug c/38571] GCC/THUMB generates unnecessary padding between functions
  2008-12-18 17:42 [Bug c/38571] New: GCC/THUMB generates unnecessary padding between functions daniel dot sherwood at sepura dot com
  2008-12-18 17:43 ` [Bug c/38571] " daniel dot sherwood at sepura dot com
@ 2008-12-18 17:43 ` daniel dot sherwood at sepura dot com
  2008-12-18 17:43 ` daniel dot sherwood at sepura dot com
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: daniel dot sherwood at sepura dot com @ 2008-12-18 17:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from daniel dot sherwood at sepura dot com  2008-12-18 17:42 -------
Created an attachment (id=16934)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16934&action=view)
Source


------- Comment #3 from daniel dot sherwood at sepura dot com  2008-12-18 17:42 -------
Created an attachment (id=16935)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16935&action=view)
Source


-- 


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


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

* [Bug c/38571] GCC/THUMB generates unnecessary padding between functions
  2008-12-18 17:42 [Bug c/38571] New: GCC/THUMB generates unnecessary padding between functions daniel dot sherwood at sepura dot com
                   ` (3 preceding siblings ...)
  2008-12-18 17:43 ` daniel dot sherwood at sepura dot com
@ 2008-12-18 17:44 ` daniel dot sherwood at sepura dot com
  2009-04-22 23:09 ` [Bug target/38571] [arm] -mthumb " ramana at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: daniel dot sherwood at sepura dot com @ 2008-12-18 17:44 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from daniel dot sherwood at sepura dot com  2008-12-18 17:43 -------
Following comment received from Richard.Earnshaw@arm.com by e-mail.

======

Often this is necessary (for example, if the function contains a literal pool);
but it isn't always so.  Again, if there is no existing case in bugzilla,
perhaps you could file one.


-- 


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


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

* [Bug target/38571] [arm] -mthumb generates unnecessary padding between functions
  2008-12-18 17:42 [Bug c/38571] New: GCC/THUMB generates unnecessary padding between functions daniel dot sherwood at sepura dot com
                   ` (4 preceding siblings ...)
  2008-12-18 17:44 ` daniel dot sherwood at sepura dot com
@ 2009-04-22 23:09 ` ramana at gcc dot gnu dot org
  2009-04-23  0:46 ` pinskia at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: ramana at gcc dot gnu dot org @ 2009-04-22 23:09 UTC (permalink / raw)
  To: gcc-bugs



-- 

ramana at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-04-22 23:09:35
               date|                            |


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


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

* [Bug target/38571] [arm] -mthumb generates unnecessary padding between functions
  2008-12-18 17:42 [Bug c/38571] New: GCC/THUMB generates unnecessary padding between functions daniel dot sherwood at sepura dot com
                   ` (5 preceding siblings ...)
  2009-04-22 23:09 ` [Bug target/38571] [arm] -mthumb " ramana at gcc dot gnu dot org
@ 2009-04-23  0:46 ` pinskia at gcc dot gnu dot org
  2009-04-24 16:01 ` ramana at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2009-04-23  0:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from pinskia at gcc dot gnu dot org  2009-04-23 00:45 -------
The reason why this happens is because FUNCTION_BOUNDARY is defined as just 32
for both arm and thumb mode.


-- 


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


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

* [Bug target/38571] [arm] -mthumb generates unnecessary padding between functions
  2008-12-18 17:42 [Bug c/38571] New: GCC/THUMB generates unnecessary padding between functions daniel dot sherwood at sepura dot com
                   ` (6 preceding siblings ...)
  2009-04-23  0:46 ` pinskia at gcc dot gnu dot org
@ 2009-04-24 16:01 ` ramana at gcc dot gnu dot org
  2009-04-30 10:05 ` ramana at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: ramana at gcc dot gnu dot org @ 2009-04-24 16:01 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from ramana at gcc dot gnu dot org  2009-04-24 16:00 -------
(In reply to comment #6)
> The reason why this happens is because FUNCTION_BOUNDARY is defined as just 32
> for both arm and thumb mode.
> 

FUNCTION_BOUNDARY should be 32 for ARM mode and 16 for Thumb mode as defined by
the ARM ELF standard. Testing a patch for this.


-- 

ramana at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |ramana at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2009-04-22 23:09:35         |2009-04-24 16:00:52
               date|                            |


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


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

* [Bug target/38571] [arm] -mthumb generates unnecessary padding between functions
  2008-12-18 17:42 [Bug c/38571] New: GCC/THUMB generates unnecessary padding between functions daniel dot sherwood at sepura dot com
                   ` (8 preceding siblings ...)
  2009-04-30 10:05 ` ramana at gcc dot gnu dot org
@ 2009-04-30 10:05 ` ramana at gcc dot gnu dot org
  2009-04-30 10:06 ` ramana at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: ramana at gcc dot gnu dot org @ 2009-04-30 10:05 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from ramana at gcc dot gnu dot org  2009-04-30 10:05 -------
Subject: Bug 38571

Author: ramana
Date: Thu Apr 30 10:04:52 2009
New Revision: 147000

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147000
Log:
Fix PR target/38571

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/arm.h


-- 


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


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

* [Bug target/38571] [arm] -mthumb generates unnecessary padding between functions
  2008-12-18 17:42 [Bug c/38571] New: GCC/THUMB generates unnecessary padding between functions daniel dot sherwood at sepura dot com
                   ` (7 preceding siblings ...)
  2009-04-24 16:01 ` ramana at gcc dot gnu dot org
@ 2009-04-30 10:05 ` ramana at gcc dot gnu dot org
  2009-04-30 10:05 ` ramana at gcc dot gnu dot org
  2009-04-30 10:06 ` ramana at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: ramana at gcc dot gnu dot org @ 2009-04-30 10:05 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from ramana at gcc dot gnu dot org  2009-04-30 10:05 -------
This is now fixed with r147000


-- 

ramana at gcc dot gnu dot org changed:

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


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


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

* [Bug target/38571] [arm] -mthumb generates unnecessary padding between functions
  2008-12-18 17:42 [Bug c/38571] New: GCC/THUMB generates unnecessary padding between functions daniel dot sherwood at sepura dot com
                   ` (9 preceding siblings ...)
  2009-04-30 10:05 ` ramana at gcc dot gnu dot org
@ 2009-04-30 10:06 ` ramana at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: ramana at gcc dot gnu dot org @ 2009-04-30 10:06 UTC (permalink / raw)
  To: gcc-bugs



-- 

ramana at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.5.0


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


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

end of thread, other threads:[~2009-04-30 10:06 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-12-18 17:42 [Bug c/38571] New: GCC/THUMB generates unnecessary padding between functions daniel dot sherwood at sepura dot com
2008-12-18 17:43 ` [Bug c/38571] " daniel dot sherwood at sepura dot com
2008-12-18 17:43 ` daniel dot sherwood at sepura dot com
2008-12-18 17:43 ` daniel dot sherwood at sepura dot com
2008-12-18 17:43 ` daniel dot sherwood at sepura dot com
2008-12-18 17:44 ` daniel dot sherwood at sepura dot com
2009-04-22 23:09 ` [Bug target/38571] [arm] -mthumb " ramana at gcc dot gnu dot org
2009-04-23  0:46 ` pinskia at gcc dot gnu dot org
2009-04-24 16:01 ` ramana at gcc dot gnu dot org
2009-04-30 10:05 ` ramana at gcc dot gnu dot org
2009-04-30 10:05 ` ramana at gcc dot gnu dot org
2009-04-30 10:06 ` ramana 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).