On 12/5/18, Clem Cole <clemc(a)ccc.com> wrote:
Plus the Alpha is being developed by then, so TLG is up to neck in the GEM
development cycle which would replace everything i the languages teams when
the dust settled (as Paul has mentioned it was an amazing piece of work at
the time and still somewhat lasts today - the VMS,Inc folks of course are
built an INTEL*64 code generator for it and supposedlty have VMS booting on
modern HW these days).
One of the design goals for GEM was to avoid another fire drill like
the VAX Fortran Ultrix port. GEM had a set of modules called the GEM
Shell that isolated the rest of the compiler from OS
platform-dependent activities such as command line parsing, file I/O,
heap memory management, source locator management, and object file
generation. The GEM Shell presented a set of abstract APIs for these
activities to the rest of the compiler. This made support of new OS
platforms or object file formats relatively easy.
GEM already supported Itanium by the time Compaq sold off the Alpha
technology to Intel. VMS is mostly implemented in BLISS and VAX
assembler, and GEM-based Itanium-targeted compilers already existed
for both of these. VMS Software Inc. uses the GEM-based compilers for
support and ongoing new development on the Alpha and Itanium
platforms. For the Intel64 port of VMS, VSI is using Clang/LLVM as
their C/C++ compiler. For BLISS and VAX assembler, they are using the
GEM-based front ends, and a GEM-to-LLVM IL translator to use LLVM as
the optimizer/code generator.
-Paul W.