public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/30688]  New: Branch registers loaded too late on ia64
@ 2007-02-03 11:17 ak at muc dot de
  2007-02-03 11:23 ` [Bug rtl-optimization/30688] " ak at muc dot de
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: ak at muc dot de @ 2007-02-03 11:17 UTC (permalink / raw)
  To: gcc-bugs

During Linux kernel development we ran into a few situations that showed
that indirect calls (through a function pointer) are significant slower on IA64
than on other platforms. Various ugly workarounds have been added to work
around that.

Some investigation shows the code gcc generates for indirect calls on ia64
isn't very good.

The IA64 optimization manuals recommend to load branch registers as early
as possible before a indirect jump, so that the CPU can start fetching
the code stream at the target. Otherwise there is a longer stall.

I ran some statistics over a 2.6.19 linux kernel with a recent 4.3 snapshot 
by grepping for indirect calls and in near all cases i looked at the branch
register was loaded in the bundle directly preceding the bundle that contains
the jump.  Earlier versions (4.1 and 4.0) also weren't any better.

>From looking at code in many cases it would have been
possible to load the branch register earlier since there was no
conditional state.

This is a enhancement request to change the scheduler to be more aggressive
at moving branch register loads earlier before jumps on ia64.


-- 
           Summary: Branch registers loaded too late on ia64
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ak at muc dot de
GCC target triplet: ia64-linux


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


^ permalink raw reply	[flat|nested] 9+ messages in thread
[parent not found: <bug-30688-4@http.gcc.gnu.org/bugzilla/>]

end of thread, other threads:[~2024-06-13  9:24 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-03 11:17 [Bug rtl-optimization/30688] New: Branch registers loaded too late on ia64 ak at muc dot de
2007-02-03 11:23 ` [Bug rtl-optimization/30688] " ak at muc dot de
2009-02-06 21:21 ` steven at gcc dot gnu dot org
2009-02-24  0:01 ` sje at cup dot hp dot com
2009-03-10  6:48 ` steven at gcc dot gnu dot org
2009-03-16  8:46 ` steven at gcc dot gnu dot org
2009-03-16 19:07 ` wilson at codesourcery dot com
     [not found] <bug-30688-4@http.gcc.gnu.org/bugzilla/>
2024-06-11 17:37 ` andi-gcc at firstfloor dot org
2024-06-13  9:24 ` xry111 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).