LLVM and Other Compilers
The LLVM is made up of a set of open source project libraries. The major advantage the LLVM offers is the ability for the optimization logic to remain independant of the front/back end. This means that the front/back end technology can be changed, upgrade, improved, swapped, etc. It also means the LLVM compiler can evolve independantly without having to be held back by the limitations of front/backend technologies.
The GCC and Front vs Back End Compiling
The Stages of Common Compilers
- Frontend -> converts source code into
Common intermediate representation
(lowest level human-readable programming language) - Optimization -> eliminate and simplify
- Target specific optimizations are performed and code/assembly is generated
The advantage to having those three stages is the compiler can used with other frontend (languages) and backend (target machines).