LLVM is a compiler and toolkit for building compilers that converts source code into machine-readable code. It started at the University of Illinois in 2000 and provides modular, reusable technologies. LLVM differs from GCC in that it is a framework for generating code from any source, rather than supporting specific languages. It works by using Clang to turn source into an intermediate representation, then optimizes and converts it to machine code. LLVM can optimize code aggressively during compilation and linking but does not handle language parsing or memory management itself.