[comp.sys.amiga.tech] Lattice 4.0

mills@hathi.eng.ohio-state.edu (Christopher Mills) (09/07/88)

I have a question about Lattice 4.0 (I'm thinking of buying it, seein' as
how I will have some cash and free time to spend on Amiga programming in
the future):

I know that you can get inline calls to libraries via a #pragma thing, but
will it do calls to the ffp library inline, that is, if I say "a + b" and
compile with -f, will I get a "JSR _LVOFFPAdd(a6)"?

The version we (a friend owns it) currently use (3.10) jumps to a reasonably
inefficient stub which checks for MathBase open, etc.  When we wrote our
ray-tracer, I was curious to see how many fp-ops were done, so I added some
ADDQ's to the stub code (thoughtfully provided by Lattice), and found about
a billion for a moderately complex scene, most being CMP's (I recall the stub
code for CMP to save a particularly large number of registers).  I rewrote the
stub code not to check for MathBase open (opening it ourselves in the program,
where we could give a meaningful error message if not found...) and not saving
the extra registers, and got about a 5-10% increase in speed, which works out
to a few hours less on a typical day-long raytrace.

It seems that real live inlining would save a lot more (each cycle saved is a
lot when you do something a billion times...), so does it?  If not, why not?

Boy there's a lot of parenthesis in the above!...  Sorry about that!

				Thanks in advance,
					Chris
-=-
_________________________________________________________________________
| Christopher Mills              | "If you see someone without a smile, |
| mills@baloo.eng.ohio-state.edu |  give them mine - I'm not using it." |
====== My thoughts are not my own--I'm posessed by mailer daemons. ======