Unten ein Auszug aus der LLVM https://llvm.org/docs/FAQ.html. Vielleicht kann mich wer aufklären was es damit auf sich hat?
Was denn nun?
What source languages are supported?¶
LLVM currently has full support for C and C++ source languages through Clang. Many other language frontends have been written using LLVM, and an incomplete list is available at projects with LLVM.
Can I compile C or C++ code to platform-independent LLVM bitcode?¶
No. C and C++ are inherently platform-dependent languages. The most obvious example of this is the preprocessor. A very common way that C code is made portable is by using the preprocessor to include platform-specific code. In practice, information about other platforms is lost after preprocessing, so the result is inherently dependent on the platform that the preprocessing was targeting.
Another example is sizeof
. It’s common for sizeof(long)
to vary between platforms. In most C front-ends, sizeof
is expanded to a constant immediately, thus hard-wiring a platform-specific detail.
Also, since many platforms define their ABIs in terms of C, and since LLVM is lower-level than C, front-ends currently must emit platform-specific IR in order to have the result conform to the platform ABI.