>>>>> "rif" == rif  <[EMAIL PROTECTED]> writes:

    rif> Ok, the new bottleneck in my program is the function update-log-pr-xi:

[snip]

    rif> and the function conses a fair bit, and ends up taking up a large
    rif> fraction of the total time, much larger than its fraction of the
    rif> computation should warrant.  Looking at the disassembly, I do believe
    rif> that log-sum-exp is being inlined (I'm not seeing any comment about a
    rif> function call).  Comparing it to another function that "behaves well",
    rif> they both use floating point registers ST(0) through ST(4).

You're going to have to provide more code.  It's impossible to figure
out what's going on because your example is incomplete.

    rif> My only current guess is that my function wants to also use ST(5) and
    rif> the compiler won't let it because it's reserving 5 through 7 for its
    rif> own purposes.  This doesn't seem that convincing, because this
    rif> function isn't really more complicated than others that don't have
    rif> this problem, but I guess it's possible.  Does it seem reasonably that
    rif> the compiler would want to save 3 FP registers for itself?  Any other
    rif> ideas?

As far as I know, no FP registers are reserved for any special
purpose.  The fact that it's a stack might complicate things, but no
registers are explicitly reserved.

Ray


Reply via email to