What do you think of LLVM?

There is a lot of interest in our community about LLVM, which is probably the most known compiler tool. We talked a lot about parsing, and compilation is a natural next step after parsing. The issue is that is a bit hard to get into it, especially if you do not have any experience in the good old C++. So, we are thinking of writing an introductory article about it.

What do you think of LLVM? Do you have any experience in using it? Is there a project in which you would like to use it?

4 Likes

I would personally love to see this article, bug I guess I am a bit biased :slight_smile:

In general I have mostly written compilers for the JVM and I think I could benefit from strengthening my experience on LLVM. Now we have great experts in C++ in the team, such as @maurizio.taverna and we could dive a bit further into LLVM in my opinion.

I am looking forward to see what others write on this topic.

2 Likes

I started a high-level document on LLVM some years ago. Today, it is maintained by Michael Rodler on Github. This document exists as a readable online book on Read The Docs. We are always looking for contributors. The idea behind the book is that we eventually want to document how to implement all/most high-level language features in LLVM, but I have to say that little has happened in this regard the last few years.

I have recent experience in LLVM as I am using it as the back-end in my initial bootstrap compiler being written in Python v3.7+.

Overall, I like LLVM a lot, but the Windows support seems to be lacking in the sense that you have to install Microsoft Visual Studio (which I personally loathe, I use the SlickEdit editor for all my projects) and sometimes the documentation is a bit lacking.

However, you can almost always get great examples by implementing your sample code in C or C++ and running it through Clang, the LLVM C++ Compiler, and then examine the generated LLVM IR.

I am no expert on LLVM, seriously, but I’ll be glad to help out if there is anything I can help with.

Cheers,
Mikael Egevig

5 Likes

The crew at Kosada, Inc. is using LLVM the compiler for Vuo, a modern visual programming language for multimedia artists.

2 Likes

Sorry for the late reply (I switched jobs and with that of the pandemic I’ve been hyperbusy reorganizing my life!). I’m super interested in this topic. I have two compiler projects, one of them in python, and was thinking of using LLVMlite.

I’ll have a look to your book. Thanks for sharing! :grinning:

1 Like