[Info-vax] JIT / Code Generation

Jan-Erik Soderholm jan-erik.soderholm at telia.com
Fri Feb 15 12:04:47 EST 2013


Stephen Hoffman wrote 2013-02-15 17:33:
> On 2013-02-15 15:15:24 +0000, Paul Sture said:
>
>> Given the discussions about the complexity of compilers for Itanium,
>> generating machine code probably requires a fair bit of expertise, and
>> that probably doesn't come cheap.
>
> If you're rolling your own instruction generation, yeah, Itanium can be an
> interesting coding project.  Particularly if you want not-slow executable
> code.  One of the central tenets of the Itanium IA-64/VLIW/EPIC
> architecture — which Poulson is walking back somewhat with its "modest"
> out-of-order capabilities — was to push the scheduling overhead into the
> compilers, too.
>
> But...  Oracle owns Java, and the Java JVM has a JIT.
>
> There are also other JITs around.  (Far fewer for Itanium, though.) LuaJIT
> and llvm, for instance, have x86-64 support  (The llvm kaleidoscope example
> program shows how to add a JIT into your software, too.)  Microsoft
> reportedly had a CLR JIT for Itanium, too.
>
> There are also cases where generating code is little more than spewing out
> some assembler or even C code, and then building and loading that. IIRC,
> Oracle did that back twenty-some years ago, from some vague memories
> monitoring ancient VAX systems.  (Haven't checked anything recent, so I
> don't know what they're up to now.)

The paper by by Norm about code generation on IA64, has examples
of the same code generation on VAX and Alpha.

http://h71000.www7.hp.com/openvms/journal/v14/rdb_interp_compile.pdf

"Introduction
The Oracle Rdb database engine generates platform-specific executable
code subroutines at run time. On VAX systems, VAX executable instructions
are generated. On Alpha systems, Alpha executable instructions are
generated. When Oracle Rdb was ported to the HP Integrity platform, the
ability to execute run-time created subroutines was required as well.
This paper discusses background of the original interpretation
implementation with a later transaction to native Itanium
instruction generation."


Jan-Erik.





More information about the Info-vax mailing list