>>>>> "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