Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


程序:llvm:llvm

LLVM

Low Level Virtual Machine


[存疑]可以理解为是一个编译器的模板

Clang是基于LLVM的编译器(是llvm项目的一个子项目)

安装

Linux

sudo apt install llvm clang llvm-dev # 暂未验证

Mac

brew install llvm

Windows

从官网下载,然后配置路径

验证安装

安装好后可能需要配置PATH才能访问到llvm-config,能访问到就是安装成功了

llvm-config --version

链接llvm

# 使用 llvm-config 可以给出编译 & 链接的参数

llvm-config --cxxflags --ldflags --libs core
# --cxxflags 给出编译参数,比如-Iinclude_path
# --ldflags 给出链接参数,比如-Llink_path
# --libs core 指定需要链接哪些组件,比如core,给出链接需要的链接参数(应该是)
# 常见的组件有:core executionengine mcjit native

LLVM IR

Intermediate Representation, IR

ExecutionEngine

MCJIT 或 Orc

什么是LLVM(AI)

LLVM(Low Level Virtual Machine)是一个强大的编译器架构,支持静态和动态编译语言的前端和后端。它不仅是一种特定的软件产品,而是一个包括编译器、工具链和中间表示(Intermediate Representation,IR)语言的完整系统,旨在优化编译时间、程序运行时间以及空闲时间的代码生成和执行。

LLVM的核心特征包括:

  1. 模块化和可重用性:LLVM提供一个良好定义的中间表示(IR),可以用于不同阶段的编译和优化,从而实现编译器组件的重用。
  2. 支持多种编程语言:通过不同的“前端”支持C、C++、Objective-C、Fortran、Ada、Haskell、Java字节码、Python、Ruby、Swift等多种语言。
  3. 灵活的中间表示:LLVM IR是类型安全、低级、RISC-like的,支持高级的编译技术和精细的优化。
  4. 广泛的优化阶段:LLVM包括许多编译时、链接时、运行时以及闲置时的优化支持。
  5. 跨平台支持:支持生成多种平台上的代码,包括Windows、Linux、Mac OS X以及多种硬件架构。

LLVM的这些特性使得它不仅被用作传统编译器的后端,也被用于其他类型的语言处理工具,例如静态分析工具和即时编译器。此外,LLVM的设计也极大地促进了编译器开发的研究和教育,因为其代码库具有高度的可读性和文档完善。

/var/www/DokuWikiStick/dokuwiki/data/pages/程序/llvm/llvm.txt · Last modified: 2025/01/06 17:51 by zhonghui