public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/61915] New: [AArch64] Default use of the LRA results in extra code size
@ 2014-07-25 22:37 e.menezes at samsung dot com
  2014-07-25 22:40 ` [Bug target/61915] " pinskia at gcc dot gnu.org
                   ` (22 more replies)
  0 siblings, 23 replies; 24+ messages in thread
From: e.menezes at samsung dot com @ 2014-07-25 22:37 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 61915
           Summary: [AArch64] Default use of the LRA results in extra code
                    size
           Product: gcc
           Version: 4.10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: e.menezes at samsung dot com

The issue that I observed in code size due to the default use of the LRA
results in the spilling of the FP register used to spill variables into, which
increases code-size.

For example, in Dhrystone, out of dhry_1.c I see sequences like this:

  ldr    d9, [sp, 144]
  ...
  fmov    x0, d9
  bl    printf
  ...
  fmov    x0, d9
  ...
  bl    printf

By disabling the LRA, the code is a tad leaner (2%):

  ldr    x0, [sp, 144]
  ...
  bl    printf
  ...
  ldr    x0, [sp, 144]
  ...
  bl    printf

Moreover, is transferring registers between the GP and the FP register files
always cheap?  In some x86 processors this used to be accomplished internally
through the load-store unit anyway (e.g., Opteron).  How is this accomplished
internally in A53 and A57?

Is using the LRA by default clearly beneficial in other cases?

At the Cauldron I mentioned some variables that could be rematerialized when
needed instead of being spilled, but I could not reproduce that.  I'll try some
more to spot this behavior.


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

end of thread, other threads:[~2015-03-10  7:34 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-25 22:37 [Bug target/61915] New: [AArch64] Default use of the LRA results in extra code size e.menezes at samsung dot com
2014-07-25 22:40 ` [Bug target/61915] " pinskia at gcc dot gnu.org
2014-07-25 22:41 ` pinskia at gcc dot gnu.org
2014-07-25 22:45 ` e.menezes at samsung dot com
2014-08-05  9:08 ` [Bug target/61915] [AArch64] High amounts of GP to FP register moves using LRA on AArch64 ramana at gcc dot gnu.org
2014-08-05 15:27 ` e.menezes at samsung dot com
2014-08-14 14:28 ` vmakarov at gcc dot gnu.org
2014-08-14 14:53 ` e.menezes at samsung dot com
2014-08-14 15:02 ` vmakarov at gcc dot gnu.org
2014-10-22 21:23 ` wdijkstr at arm dot com
2014-10-22 23:28 ` wdijkstr at arm dot com
2014-10-24 21:34 ` e.menezes at samsung dot com
2014-10-24 21:39 ` e.menezes at samsung dot com
2014-10-24 22:39 ` pinskia at gcc dot gnu.org
2014-10-25  0:57 ` e.menezes at samsung dot com
2014-10-25  1:29 ` wdijkstr at arm dot com
2014-10-25  1:41 ` wdijkstr at arm dot com
2014-10-25  6:46 ` pinskia at gcc dot gnu.org
2014-10-28 10:51 ` [Bug target/61915] [AArch64] High amounts of GP to FP register moves using LRA on AArch64 - Improve Generic register_move_cost and memory_move_cost ramana at gcc dot gnu.org
2014-10-28 11:14 ` ramana at gcc dot gnu.org
2014-10-31 16:25 ` e.menezes at samsung dot com
2014-11-19 14:41 ` jiwang at gcc dot gnu.org
2014-11-19 14:47 ` wdijkstr at arm dot com
2015-03-10  7:34 ` collison 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).