|Request for more info on trampolines email@example.com (1993-07-07)|
|Re: Request for more info on trampolines firstname.lastname@example.org (1993-07-07)|
|Re: Request for more info on trampolines email@example.com (1993-07-08)|
|Re: Request for more info on trampolines firstname.lastname@example.org (1993-07-08)|
|Re: Request for more info on trampolines email@example.com (1993-07-09)|
|Re: Request for more info on trampolines firstname.lastname@example.org (1993-07-10)|
|Re: Request for more info on trampolines chased@rbbb.Eng.Sun.COM (1993-07-16)|
|Re: Request for more info on trampolines email@example.com (1993-07-18)|
|From:||firstname.lastname@example.org (Eric Benson)|
|Keywords:||code, optimize, architecture, comment|
|Organization:||Kaleida Labs, Inc., Mountain View, CA|
|Date:||Fri, 9 Jul 1993 17:41:35 GMT|
email@example.com (Eric Benson) writes:
[discussion of trampolines] ...
Non-C-based systems, e.g. those whose standard system programming language
is something more Pascal-like, often represent function parameters as two
words, a pointer to code and a pointer to "state", the latter of which
could be used for a display.
firstname.lastname@example.org (Max Hailperin) writes:
One additional point is that even in some systems where procedures are in
general closures and which needn't stay compatable with C calling
conventions, it is still advantageous to use the trampoline representation
rather than the pair of pointers representation [becase in many cases
you can optimize away the state pointer and only need the trampoline for
the routines where you can't].
Yes, it's almost certainly true that most functions in most applications
do not have state. The major problem arises on machines with instruction
caches, or worse, those with separate instruction and data spaces. It can
be catastrophically expensive to create a trampoline on such systems.
Kaleida Labs, Inc.
[The paper mentioned in article 93-07-037 suggests a way to handle runtime
trampolines on such systems. Basically you have a a stack of statically
created trampoline routines each of which indirects through values in an
entry in a parallel stack of data pointers which can be patched at runtime.
Return to the
Search the comp.compilers archives again.