I modified the implementation of Fibonacci I showed you at last meeting to do the lookup for the function on the global object only the first time the function is called. I patch the relative offset to the function at the call site (no global object) once the function address is known using a technique similar to what Marc described in a previous mail. 

Although the output is correct, I can't make sense of the performance results I get.  Replacing only one of the two recursive call (either one) by the "optimized" one I get a .4 second speedup but replacing both incurs a slowdown of .1 second! Tests were made on my laptop (Macbook) for fib(40).

The code is in another branch: 'directFuncCall'.

To run it, simply call:
 
./fib-ir.sh 

from the codegen directory.

A direct link to the gitweb source file is:

http://www.iro.umontreal.ca/~tachyon/gitweb/gitweb.cgi?p=tachyon.git;a=blob;f=source/codegen/test-x86-fibonacci-ir-translation.js;h=6ffacf77eaa04011780031b7ed0477703daa7caa;hb=bcdcae509bf05fac5e7d7ee7b2da214cb7d216ca


Your ideas are welcomed!

Erick



Le 10-08-29 13:57 , Marc Feeley a écrit :
Neat!  Can you measure what you would get with a direct branch (no lookup) to see how much was saved by the faster lookup.

Marc

On 2010-08-28, at 12:22 PM, Erick Lavoie wrote:

 Experiments after having changed the lookup algorithm on the global 
object to test for the 3 first properties before doing a linear search 
show a .5 second speedup on a  2.13 GHz Intel Core 2 Duo Macbook for 
fib(40).

Fast lookup:
user    0m3.702s

Original Linear search:
user    0m4.339s

Those tests can be repeated by running:

time make test

in the two following branches, available on the tachyon repository:

globalOriginalLinearSearch
globalFastSearch

The source code for the search algorithm can be found in 
'codegen/ir-to-asm-x86.js' at line:

338: irToAsm.translator.prototype.get_prop_addr = function (opnds, dest)

Erick

_______________________________________________
Tachyon-list mailing list
Tachyon-list@iro.umontreal.ca
https://webmail.iro.umontreal.ca/mailman/listinfo/tachyon-list
_______________________________________________
Tachyon-list mailing list
Tachyon-list@iro.umontreal.ca
https://webmail.iro.umontreal.ca/mailman/listinfo/tachyon-list