Movatterモバイル変換


[0]ホーム

URL:


TheLLVM Compiler Infrastructure
Site Map:
Overview
Features
Documentation
Command Guide
FAQ
Publications
LLVM Projects
Open Projects
LLVM Users
Bug tracker
LLVM Logo
Blog
Meetings
LLVM Foundation

Download!
Download now:LLVM 20.1.0
All Releases
APT Packages
RPM Snapshots
Pre-releases

View the open-source
license

Search this Site


Useful Links
Forums
LLVM Discourse

Mailing Lists:
Commits List

Discord (Real-time Chat):
Discord

IRC Channel:
irc.oftc.net #llvm

Calendar:
LLVM Community Calendar

Dev. Resources:
doxygen
Sources (GitHub)
Code Review
Blog
Bug tracker
Buildbot
Green Dragon
LNT
Scan-build
llvm-cov
Compile-time tracker

Release Emails
20.1.0:Mar 2025
19.1.7:Jan 2025
19.1.6:Dec 2024
19.1.5:Dec 2024
19.1.4:Nov 2024
19.1.3:Oct 2024
19.1.2:Oct 2024
19.1.1:Oct 2024
19.1.0:Sep 2024
18.1.8:Jun 2024
18.1.7:Jun 2024
18.1.6:May 2024
18.1.5:May 2024
18.1.4:Apr 2024
18.1.3:Apr 2024
18.1.2:Mar 2024
18.1.1:Mar 2024
18.1.0:Mar 2024
All Announcements

Maintained by the
llvm-admin team
LLVM Features

TheLLVM compiler system for C and C++ includes thefollowing:

  • Front-ends for C, C++, Objective-C, Fortran, etc. They support the ANSI-standard C and C++ languages. Additionally, many GCC extensions are supported.
  • A stable implementation of the LLVM instruction set, which serves as both the online and offline code representation, together with assembly (ASCII) and bytecode (binary) readers and writers, and a verifier.
  • A powerful pass-management system that automatically sequences passes (including analysis, transformation, and code-generation passes) based on their dependences, and pipelines them for efficiency.
  • A wide range of global scalar optimizations.
  • A link-time interprocedural optimization framework with a rich set of analyses and transformations, including sophisticated whole-program pointer analysis, call graph construction, and support for profile-guided optimizations.
  • An easily retargetable code generator, which currently supports X86, X86-64, PowerPC, PowerPC-64, ARM, Thumb, SPARC, Alpha, CellSPU, MIPS, MSP430, SystemZ, WebAssembly and XCore.
  • A Just-In-Time (JIT) code generation system, which currently supports X86, X86-64, ARM, AArch64, Mips, SystemZ, PowerPC, and PowerPC-64.
  • Support for generating DWARF debugging information.
  • A profiling system similar to gprof.
  • A test framework with a number of benchmark codes and applications.
  • APIs and debugging tools to simplify rapid development of LLVM components.
Strengths of the LLVM System
  1. LLVM uses a simplelow-level language with strictly defined semantics.
  2. It includes front-ends forC andC++. Front-ends for Java, Scheme, and other languages are in development.
  3. It includes an aggressive optimizer, including scalar, interprocedural, profile-driven, and some simple loop optimizations.
  4. It supports alife-long compilation model, including link-time, install-time, run-time, and offline optimization.
  5. LLVM has full support foraccurate garbage collection.
  6. The LLVM code generator is relatively easy to retarget, and makes use of a powerful target description language.
  7. LLVM has extensivedocumentation and has hosted manyprojects of various sorts.
  8. Many third-party users have claimed that LLVM is easy to work with and develop for. For example, the (now removed) Stacker front-end was written in 4 days by someone who started knowing nothing about LLVM. Additionally, LLVM has tools to makedevelopment easier.
  9. LLVM is under active development and is constantly being extended, enhanced and improved. See the status updates on the left bar to see the rate of development.
  10. LLVM is freely available under an OSI-approved "Apache License Version 2.0" license.
  11. LLVM is currently used by many commercial, non-profit or academic entities, who contribute many extensions and new features.
LLVM Audience

LLVM can be used in many different kinds of projects. You might beinterested in LLVM if you are:

  • A compiler researcher interested in compile-time, link-time (interprocedural), and runtime transformations for C and C++ programs.
  • A virtual machine researcher/developer interested in a portable, language-independent instruction set and compilation framework.
  • An architecture researcher interested in compiler/hardware techniques.
  • A security researcher interested in static analysis or instrumentation.
  • An instructor or developer interested in a system for quick prototyping of compiler transformations.
  • An end-user who wants to get better performance out of your code.
Want to Know More?

You canbrowse the documentation online,tryLLVM in your web browser, ordownload the source code.


[8]ページ先頭

©2009-2025 Movatter.jp