Andrew I. Schein wrote:
Hi all -
I am wondering if there are any efforts underway to port gambit to a llvm back end?
(So far none that I am aware of.)
Would this provide opportunity to eliminate a trampoline, at least in certain cases?
Have you measured whether the trampoline approach carries any cost (i.e. which is not being optimized away by gcc), and if so, how big it is, and how it could be reduced by better assembly?
(FWIW, by coincidence I've done some cross module call benchmarks recently which you can get from here: git clone http://scheme.mine.nu/gambit/experimental/crossmodulecalls/.git
I would think that cross module calls are more expensive than module-local single-host calls not because of the trampoline but because of copying of module state between continuation frames and back -- but I haven't investigated in detail.)
My guess is that about the only real benefit that an llvm backend could provide would be faster compilation times.
Christian.