mit-scheme-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MIT-Scheme-devel] bookkeeping memory allocated per primitive


From: Arthur A. Gleckler
Subject: Re: [MIT-Scheme-devel] bookkeeping memory allocated per primitive
Date: Sun, 26 Jun 2011 16:53:57 -0700

The branch direction change.  Before, on pretty much every entry to a
non-leaf procedure, the CPU would see a backward branch and predict it
taken by default, if there were no dynamic profile data to inform the
branch predictor.  But almost all of the time, that branch -- to
handle interrupts -- would not be taken.

So basically every non-leaf procedure call would cause a branch
misprediction.

We have a similar issue with branch target prediction: we don't pair
CALL and RET.  Fixing that would be considerably trickier, and doing
it really effectively may require ABI changes.

Wow, that's amazing.  I've always heard that branch prediction makes a big difference, but I suppose that it's rarely the case that the problem is systemic.  I imagine that it's usually one or two here and there, not nearly every one in the entire code base.

Nice hack!

reply via email to

[Prev in Thread] Current Thread [Next in Thread]