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. ======