[LLVMdev] Introduction for new consumer of LLVM
David Chisnall
David.Chisnall at cl.cam.ac.uk
Thu Jan 15 01:46:45 PST 2015
Hi John,
It's great to hear that OpenVMS is not dead!
On 14 Jan 2015, at 22:34, John Reagan <johnrreagan at earthlink.net> wrote:
>
> That includes BASIC, COBOL, Fortran, Pascal, C, BLISS (one of the OpenVMS implementation languages), and Macro32 (a compiler that accepts VAX assembly source code and emits object code for the appropriate target, either Alpha or Itanium). On Alpha and Itanium, we use our own multi-language, retargetable backend called GEM. Our strategy will be to write a converter between the GEM IL and the LLVM IL. We will first be hosting the x86-target compilers as cross-compilers running on OpenVMS Itanium to bootstrap the OS and eventually the compilers themselves onto a future OpenVMS x86 platform. I suspect we will be contributing several interesting enhancements as we go along. We also intend to provide clang as well for our C++ offering.
Do you have any plans to resurrect the LLVM Alpha and Itanium back ends, to reduce the variation in compiler output across your platforms? I imagine that doing GEM optimisations and then generating native code, vs doing GEM optimisations and then generating LLVM IR, doing LLVM optimisations, and then generate native code will give quite different performance characteristics (and very different interpretations of undefined behaviour).
Also, I wondered if you'd considered (assuming that you are legally able to) open sourcing your Fortran front end. There are a number of LLVM consumers who are interested in a high-quality Fortran front end for LLVM and several efforts in this direction. There are probably some people interested in COBOL too, though that's a somewhat terrifying thought.
For COBOL, I suspect that you will run into limitations with LLVM's (lack of) support for decimal floating point. This is also theoretically a limitation for the C front end, but I don't actually know of any real-world C code that uses decimal floats.
David
More information about the llvm-dev
mailing list