LLVM(Low Level Virtual Machine)은 모듈화된 컴파일러 및 툴체인 기술로, 다양한 프로그래밍 언어의 소스 코드를 중간 표현(intermediate representation, IR)으로 변환하고 최적화 및 기계 코드 생성을 수행하는 데 사용된다. 원래는 2000년대 초에 폴 우일리(Paul E. D. McKee)와 그의 동료들이 개발하기 시작했으며, 이후 LLVM은 오픈 소스 프로젝트로 발전하여 다양한 프로그래밍 언어와 플랫폼에서 널리 활용되고 있다.
LLVM의 주요 구성 요소는 LLVM IR, 옵티마이저(optimize), 코드 생성기(code generator) 등이 있다. LLVM IR은 낮은 수준의 추상화를 제공하여 다양한 언어의 컴파일 과정을 단순화하고, 최적화 도구와 결합하여 성능 개선을 목표로 한다. LLVM의 옵티마이저는 다양한 최적화 기법을 통해 중간 표현 코드를 분석하고 변형하여 실행 성능을 높인다.
LLVM은 C, C++, Rust, Swift 등의 여러 언어의 컴파일러를 위한 백엔드로 사용되며, 다양한 아키텍처와 운영 체제를 지원한다. 이로 인해 여러 언어가 LLVM을 기반으로 하는 공통된 인프라를 공유하게 되고, 언어 간의 상호 운용성이 향상된다. LLVM은 또한 컴파일러 연구 및 개발을 위한 플랫폼을 제공하며, 혁신적인 컴파일 기술 및 최적화 기법을 시험할 수 있는 실험실 역할을 한다.
LLVM은 라이브러리 형태로 제공되며, 이를 통해 개발자는 자신의 요구에 맞게 커스터마이즈한 컴파일러 및 툴체인을 쉽게 구축할 수 있다. 과정 중 발생하는 다양한 최적화와 변형을 적용할 수 있어, 개발자는 성능과 효율성을 극대화하는 소프트웨어를 작성할 수 있다. LLVM의 유연성과 확장성 덕분에 IT 산업 전반에 걸쳐 광범위하게 사용되며, 현대 소프트웨어 개발에서 중요한 기술로 자리잡고 있다.