2 ms·
GCC has a reputation of having confusing architecture. It is a very hard project to work on. LLVM is typically considered cleaner and more understandable. GCC i
by etaioinshrdlu 7y ago
GCC has a reputation of having confusing architecture. It is a very hard project to work on. LLVM is typically considered cleaner and more understandable. GCC is known to have still in 2019, a rather slight performance benefit.
LLVM also has a stable IR named LLVM itself, while GCC refuses to do so over the decades for political and strategic reasons.
- gioele 7y ago> LLVM also has a stable IR named LLVM itself, LLVM's IR is not stable by design. [1, 2] [1] http://lists.llvm.org/pipermail/llvm-dev/2016-February/094877.html http://lists.llvm.org/pipermail/llvm-dev/2016-February/09487... [2] http://llvm.org/docs/DeveloperPolicy.html#ir-backwards-compatibility http://llvm.org/docs/DeveloperPolicy.html#ir-backwards-compa... > while GCC refuses to do so over the decades for political and strategic reasons. That was a long time ago. Since GCC 4.5 (released in 2010) GCC supports external plugins. [3,4] These plugins, like the rest of GCC, use GENERIC and GIMPLE as their IR. [3] https://gcc.gnu.org/gcc-4.5/changes.html https://gcc.gnu.org/gcc-4.5/changes.html [4] https://gcc.gnu.org/onlinedocs/gccint/Plugins.html https://gcc.gnu.org/onlinedocs/gccint/Plugins.html
- deleted 7y ago[deleted]
- TazeTSchnitzel 7y agoLLVM IR is called “LLVM assembly language” in the documentation.
- tom_mellior 7y agoHaving worked with both, I don't know what you mean by "confusing architecture". Both are OK to work with, but both have some glaring holes in their documentation. LLVM's data structures are typically nicer to use than GCC's linked lists in a lot of places, that much is true.