前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LLVM 是什么?

LLVM 是什么?

作者头像
叉叉敌
发布2022-05-11 15:12:04
1.3K0
发布2022-05-11 15:12:04
举报
文章被收录于专栏:Chasays

有什么说的不对的地方,还请多多支出, 谢谢~

概述

LLVM : 全称是这个Low Level Virtual Machine,底层虚拟机,名字是带有虚拟机,但是现在早已和虚拟机没有任何关系了. 是整个LLVM项目,我目前了解的有5部分.

LLVM 是一个用于构造、优化和生成中间和/或二进制机器码的库。能够同时支持任意编程语言的静态和动态编译。

我之前在互联网工作,知道的前端vue、react和后端Java、python等. 现在编译器也有前端和后端.

LLVM 可以用作编译器框架,其中提供“前端”(解析器和词法分析器)和“后端”(将 LLVM 的表示转换为实际机器代码的代码)。

LLVM 还可以充当 JIT 编译器——它支持 x86/x86_64和 PPC/ppc64的汇编生成,具有针对编译速度的快速代码优化。

LLVM project/infrastructure

https://llvm.org/ProjectsWithLLVM/

这是几个项目的总称,前端、后端、优化器、汇编器、连接器、 libc++ 、编译器-rt 和 及时引擎,它们共同组成了一个完整的编译器.

LLVM-based compiler

这是一个部分或完全使用 LLVM 基础结构构建的编译器。例如,编译器可能在前端和后端使用 LLVM,但是使用 GCC 和 GNU 系统库执行最终链接。

LLVM libs

https://releases.llvm.org/2.6/docs/UsingLibraries.html

这是 LLVM 基础结构的可重用代码部分.

LLVM 是一个用于构建编译器、链接器、运行时执行器、虚拟机和其他程序执行相关工具的工具包。除了 LLVM 工具集之外,LLVM 的功能还可以通过一组库来实现。要使用 LLVM 作为构建工具的工具包,开发人员需要了解各个库中包含什么、它们依赖什么以及如何使用它们。幸运的是,有一个工具 llvm-config 可以帮助解决这个问题。可以参考上面贴的这个链接.

LLVM core

https://llvm.org/OpenProjects.html

在中间语言和后端算法层进行的优化。

LLVM IR

https://llvm.org/docs/LangRef.html

LLVM 编译器的中间表示. LLVM 是一种基于静态单分配(SSA)的表示,它提供了类型安全、低级操作、灵活性以及干净利落地表示“所有”高级语言的能力。它是 LLVM 编译策略的阶段使用的通用代码表示形式。

引用

https://chiphub.top/topics/6https://www.jianshu.com/p/237ed53ddaebhttps://llvm.org/https://gnuu.org/2009/09/18/writing-your-own-toy-compiler/https://stackoverflow.com/questions/2354725/what-exactly-is-llvm

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
    • LLVM project/infrastructure
      • LLVM-based compiler
        • LLVM libs
          • LLVM core
            • LLVM IR
            • 引用
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档