欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
LLVM
来自开放百科 - 灰狐
(版本间的差异)
小 (→文档) |
小 (→项目) |
||
(未显示1个用户的13个中间版本) | |||
第1行: | 第1行: | ||
− | {{SeeWikipedia | + | {{SeeWikipedia}} |
LLVM | LLVM | ||
− | [[文件:LLVM- | + | [[文件:DragonSmall.png|right]] |
− | [[ | + | [[文件:LLVM-Logo-Derivative-1.png|right]] |
+ | [[文件:LLVM-Logo-Derivative-4.png|right]] | ||
==简介== | ==简介== | ||
LLVM(Low Level Virtual Machine)底层虚拟机,是一个开源(BSD)编译器的基础设施,使用C++编写。它是为了任意一种编程语言写成的程序,利用虚拟技术,创造出编译时,链结时,运行时以及“闲置时”的最佳化。它最早是以 C/C++为处理对象,目前它支持了包括[[Objective-C]], [[Fortran]], [[Ada]], [[Haskell]], Java bytecode, [[Python]], [[Ruby]], [[ActionScript]], [[GLSL]]以及其他语言。 | LLVM(Low Level Virtual Machine)底层虚拟机,是一个开源(BSD)编译器的基础设施,使用C++编写。它是为了任意一种编程语言写成的程序,利用虚拟技术,创造出编译时,链结时,运行时以及“闲置时”的最佳化。它最早是以 C/C++为处理对象,目前它支持了包括[[Objective-C]], [[Fortran]], [[Ada]], [[Haskell]], Java bytecode, [[Python]], [[Ruby]], [[ActionScript]], [[GLSL]]以及其他语言。 | ||
+ | |||
+ | LLVM 采用 University of Illinois/NCSA Open Source License, or UIUC 许可证,基于MIT/X11 license and the 3-clause BSD license,兼容GPL。 | ||
[[文件:llvm-three-phase-design.png]] | [[文件:llvm-three-phase-design.png]] | ||
==新闻== | ==新闻== | ||
+ | *[http://planet.clang.org/ planet clang] | ||
*[https://www.oschina.net/news/95790/rafael-leacing-llvm 因不满社区变化,LLVM 资深开发者发长邮件宣布退出] (2018.05) | *[https://www.oschina.net/news/95790/rafael-leacing-llvm 因不满社区变化,LLVM 资深开发者发长邮件宣布退出] (2018.05) | ||
− | |||
− | |||
− | |||
==版本== | ==版本== | ||
第21行: | 第22行: | ||
*12 | *12 | ||
*11 | *11 | ||
+ | |||
+ | ==C/C++== | ||
+ | *[https://clang.llvm.org/c_status.html C Status] | ||
+ | *[https://libcxx.llvm.org/Status/Cxx2b.html libc++ C++2b Status] | ||
+ | *[https://libcxx.llvm.org/Status/Cxx20.html libc++ C++20 Status] | ||
+ | *[https://libcxx.llvm.org/Status/Cxx17.html libc++ C++17 Status] | ||
+ | *[https://libcxx.llvm.org/Status/Cxx14.html libc++ C++14 Status] | ||
==功能== | ==功能== | ||
第37行: | 第45行: | ||
* APIs and debugging tools to simplify rapid development of LLVM components. | * APIs and debugging tools to simplify rapid development of LLVM components. | ||
− | == | + | ==指南== |
===Debian=== | ===Debian=== | ||
[https://apt.llvm.org/ LLVM Debian/Ubuntu nightly packages] | [https://apt.llvm.org/ LLVM Debian/Ubuntu nightly packages] | ||
第51行: | 第59行: | ||
==项目== | ==项目== | ||
+ | [[文件:LLVM-logo.png|right|LLVM]] | ||
+ | [[文件:Vellvm-logo.jpg|right|Vellvm]] | ||
+ | [[文件:MinGW-w64-long.png|right|MinGW-w64]] | ||
*[https://github.com/topics/llvm LLVM GitHub Topics] | *[https://github.com/topics/llvm LLVM GitHub Topics] | ||
*[https://github.com/sdiehl/kaleidoscope Haskell LLVM JIT Compiler Tutorial] [https://www.stephendiehl.com/llvm/ Implementing a JIT Compiled Language with Haskell and LLVM] | *[https://github.com/sdiehl/kaleidoscope Haskell LLVM JIT Compiler Tutorial] [https://www.stephendiehl.com/llvm/ Implementing a JIT Compiled Language with Haskell and LLVM] | ||
第56行: | 第67行: | ||
*[https://github.com/dotnet/llilc LLILC] is an LLVM based MSIL Compiler | *[https://github.com/dotnet/llilc LLILC] is an LLVM based MSIL Compiler | ||
*[https://github.com/Evian-Zhang/llvm-ir-tutorial LLVM IR入门指南] | *[https://github.com/Evian-Zhang/llvm-ir-tutorial LLVM IR入门指南] | ||
+ | *[https://github.com/emscripten-core/emscripten Emscripten] An LLVM-to-[[WebAssembly]] [[Compiler]] | ||
+ | *[https://dragonegg.llvm.org/ DragonEgg] Using LLVM as a [[GCC]] backend | ||
+ | *[https://github.com/klee/klee KLEE Symbolic Execution Engine] | ||
+ | *[https://lfortran.org/ LFortran] Modern interactive LLVM-based [[Fortran]] [[compiler]] | ||
+ | *[https://github.com/vellvm Vellvm] Verifying the LLVM | ||
+ | *[https://www.mingw-w64.org/ MinGW-w64] | ||
+ | *[https://llvm.org/ProjectsWithLLVM/ Projects built with LLVM] | ||
==文档== | ==文档== | ||
第61行: | 第79行: | ||
*[https://papers.freebsd.org/2019/fosdem/bennett-riscv_llvm/ Embedded FreeBSD on a five-core RISC-V processor using LLVM] | *[https://papers.freebsd.org/2019/fosdem/bennett-riscv_llvm/ Embedded FreeBSD on a five-core RISC-V processor using LLVM] | ||
*[https://github.com/zy445566/llvm-guide-zh LLVM 入门教程] | *[https://github.com/zy445566/llvm-guide-zh LLVM 入门教程] | ||
+ | |||
+ | ==图集== | ||
+ | <gallery> | ||
+ | image:LLVM-New-Logo.png|new logo | ||
+ | image:dragonegg.png|DragonEgg | ||
+ | image:LLVM-Primer.png|LLVM Primer | ||
+ | image:llvm-c-cpp-compiler.png|LLVM | ||
+ | image:triton-architecture.png|Triton | ||
+ | </gallery> | ||
==链接== | ==链接== |
2024年10月26日 (六) 15:48的最后版本
您可以在Wikipedia上了解到此条目的英文信息 LLVM Thanks, Wikipedia. |
LLVM
目录 |
[编辑] 简介
LLVM(Low Level Virtual Machine)底层虚拟机,是一个开源(BSD)编译器的基础设施,使用C++编写。它是为了任意一种编程语言写成的程序,利用虚拟技术,创造出编译时,链结时,运行时以及“闲置时”的最佳化。它最早是以 C/C++为处理对象,目前它支持了包括Objective-C, Fortran, Ada, Haskell, Java bytecode, Python, Ruby, ActionScript, GLSL以及其他语言。
LLVM 采用 University of Illinois/NCSA Open Source License, or UIUC 许可证,基于MIT/X11 license and the 3-clause BSD license,兼容GPL。
[编辑] 新闻
- planet clang
- 因不满社区变化,LLVM 资深开发者发长邮件宣布退出 (2018.05)
[编辑] 版本
- 13
- 12
- 11
[编辑] C/C++
[编辑] 功能
The LLVM compiler system for C and C++ includes the following:
- Front-ends for C, C++, Objective-C, Fortran, etc based on the GCC 4.2 parsers. They support the ANSI-standard C and C++ languages to the same degree that GCC supports them. 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 retargettable code generator, which currently supports X86, X86-64, PowerPC, PowerPC-64, ARM, Thumb, SPARC, Alpha, and IA-64.
- A Just-In-Time (JIT) code generation system, which currently supports X86, X86-64, PowerPC and PowerPC-64.
- Support for generating DWARF debugging information.
- A C back-end useful for testing and for generating native code on targets other than the ones listed above.
- 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.
[编辑] 指南
[编辑] Debian
LLVM Debian/Ubuntu nightly packages
安装完,符号链接下。
sudo ln -s /usr/bin/clang-13 /usr/bin/clang sudo ln -s /usr/bin/clang++-13 /usr/bin/clang++ clang --version
[编辑] macOS
port search llvm sudo port install llvm-3.3
[编辑] 项目
- LLVM GitHub Topics
- Haskell LLVM JIT Compiler Tutorial Implementing a JIT Compiled Language with Haskell and LLVM
- Cilk Plus/LLVM
- LLILC is an LLVM based MSIL Compiler
- LLVM IR入门指南
- Emscripten An LLVM-to-WebAssembly Compiler
- DragonEgg Using LLVM as a GCC backend
- KLEE Symbolic Execution Engine
- LFortran Modern interactive LLVM-based Fortran compiler
- Vellvm Verifying the LLVM
- MinGW-w64
- Projects built with LLVM
[编辑] 文档
- LLVM and Clang: Next Generation Compiler Technology
- Embedded FreeBSD on a five-core RISC-V processor using LLVM
- LLVM 入门教程
[编辑] 图集
[编辑] 链接
分享您的观点