Binary package “llvm-7” in ubuntu cosmic

Modular compiler and toolchain technologies

 LLVM is a collection of libraries and tools that make it easy to build
 compilers, optimizers, just-in-time code generators, and many other
 compiler-related programs.
 .
 LLVM uses a single, language-independent virtual instruction set both
 as an offline code representation (to communicate code between
 compiler phases and to run-time systems) and as the compiler internal
 representation (to analyze and transform programs). This persistent
 code representation allows a common set of sophisticated compiler
 techniques to be applied at compile-time, link-time, install-time,
 run-time, or "idle-time" (between program runs).
 .
 The strengths of the LLVM infrastructure are its extremely
 simple design (which makes it easy to understand and use),
 source-language independence, powerful mid-level optimizer, automated
 compiler debugging support, extensibility, and its stability and
 reliability. LLVM is currently being used to host a wide variety of
 academic research projects and commercial projects. LLVM includes C
 and C++ front-ends, a front-end for a Forth-like language (Stacker),
 a young scheme front-end, and Java support is in development. LLVM can
 generate code for X86, SparcV9, PowerPC or many other architectures.