LLVM是什么

2023-10-27

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

概述

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://www.jianshu.com/p/237ed53ddaeb
https://llvm.org/
https://gnuu.org/2009/09/18/writing-your-own-toy-compiler/
https://stackoverflow.com/questions/2354725/what-exactly-is-llvm

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LLVM是什么 的相关文章

随机推荐

  • vue项目中获取今天,昨天,明天时间方法

    在项目中有这个需求 就是在时间查询条件了中 需要默认前天的时间 如果你项目中需要使用今天 昨天 明天时间方法同样适用 具体方法如下 1 vue调用说明 比如我是需要前天的时间 this getDay 2 这个是不包括时分秒的 更多例子如下
  • springMVC中两种validation的简单使用

    本文转自 http elf8848 iteye com blog 1299587 Spring 基于注释的校验机制 1 支持JSR303 Bean Validation定义的校验规范 2 支持Spring框架定义的Validator接口定义
  • 首批!八家大模型企业面向全民开放

    Datawhale干货 开放 国产大模型 编辑 司玉鑫 前 言 在科技领域 一项重要的消息引起了广泛关注 8月31日凌晨 首批大模型产品终于获得了正式批准 这一消息不仅令行业内的巨头企业欢欣鼓舞 也使创业公司和科研院校感到振奋 这些获得批准
  • Oracle (内连接)与(外连接)区别

    表t user1 t user2 t user3 各有id name两列 id name 1 10A 2 20A id name 1 10B 3 30B id name 1 10C 4 40C 连接分为两种 内连接与外连接 A 内连接 内连
  • 高版本IAR打开低版本编译的程序出现的问题

    山外KEA程序一打开就出现这个 The project file vcan Kinetis ewp is in an old format Would you like to convert it for use with this ver
  • keil MDK之RTX的消息邮箱的API函数

    一 RTX消息邮箱的API函数 RTX消息邮箱的API函数总共有8个 如下图 下面就将几个这里要用到的函数 1 os mbx declare函数原型 define os mbx declare name Name of the mailbo
  • 深度可分离卷积及其代码实现

    深度可分离卷积 depthwise separable conv 一共两步 第一步先进行逐通道卷积 Depthwise Convolution 第二步进行 逐点卷积 Pointwise Convolution 普通卷积 输入是三个通道 输出
  • acrobat页面显示问题

    最近对着电脑的时间比以前多太多了 每天都用Acrobat看pdf 千万别告诉我你用Adobe Reader 为了保护眼睛 需要更改下页面显示 一 背景颜色 经常对着电脑看文档的人 需要修改下背景颜色 通常默认的背景色都是白色的 阅读时间短倒
  • 【Nginx】常用配置

    一 问题 1 1 环境 电脑环境 Windows 10 开发工具 IntelliJ IDEA 数据库环境 Redis 3 2 100 JDK环境 Jdk1 8 1 2 问题 Nginx 基本配置是什么 二 解答 1 配置 2 检测 3 启动
  • 毕业设计题目

    旅游社交系统 基于Web的学校教室租赁系统 学校在线二手交易平台 基于移动平台的轻博客系统开发 基于web的IT技术论坛 基于Java EE新闻管理系统的设计与实现 网上员工考试培训系统 基于JAVA JSP SSH WEB的简单邮件系统设
  • C++数组

    数组是有序的元素序列 长像 int a 5 1 2 3 4 5 数组名单独使用 等同于指向数组内存首地址的指针 也就是数组名可以当指针使用 Over
  • DedeCMS内容页受统计影响打开速度慢的解决方法

    织梦DedeCMS网站被挂马后解决方案 DedeCMS内容页受统计影响打开速度慢的解决方法 Dedecms文章内容页受统计影响打开速度较慢的解决方法 dedecms文章内容页加载统计的时候会有卡住停顿 如果网速慢干脆就停止下边网页的加载 D
  • [转]基于NXP i.MX8QM的QNX之汽车数位仪表板方案

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额0 1元起步 多少随意 声明 本文只用于个人学习交流 若不慎造成侵权 请及时联系我 立即予以改正 email 174176320 qq com 基于NXP i MX
  • Unity——IK动画契合匹配初体验

    学到siki学院的动画系统那一章节的IK动画Siki 顺便作点笔记 1 什么是IK IK Inverse Kinematics 即反向动力学 即可以使用场景中的各种物体来控制和影响角色身体部位的运动 一般来说骨骼动画都是传统的从父节点到子节
  • 夜神模拟器如何进入adb

    夜神模拟器如何进入adb 进入夜神模拟器得安装路径 我这里是这个路径 D moniqi Nox bin 然后打开cmd 执行adb connect 127 0 0 1 62001 然后再执行命令adb devices 显示这个内容就说明连接
  • java基础 —— 高级编程篇

    java基础 高级编程篇 多线程 基本概念 线程的创建和使用 Thread类 创建 多 线程 线程的调度 线程的分类 线程的生命周期 线程同步 同步机制 死锁 死锁处理方法 线程通信 生产者 消费者问题 java常用类 String类 St
  • ROS navigation调试基础(实现真实机器人导航)

    最近使用了一下ROS中非常经典的导航包navigation 并通过自己的激光雷达以及相机里程计驱动了自己的小车在室内进行简单的定位以及导航 在此记录一下以免后期忘记 1 导航包安装 ROS中navigation导航包可以通过GitHub上下
  • Nacos控制台下线服务报错

    Nacos控制台下线服务报错 现象 在 Nacos控制台服务列表 点击下线按钮 Nacos控制台报错 提示错误信息 naming instance metadata did not find the Leader node 原因 Nacos
  • maven项目编译时报错org.junit包不存在解决办法

    在用idea快速搭建项目的时候 生成的pom xml文件里面对junit的依赖是 junit junit 4 11 test 在进行编译的时候 maven项目报错org junit包不存在 解决方法是将 test 这一行注释掉 测试用例记得
  • LLVM是什么

    有什么说的不对的地方 还请多多支出 谢谢 概述 LLVM 全称是这个Low Level Virtual Machine 底层虚拟机 名字是带有虚拟机 但是现在早已和虚拟机没有任何关系了 是整个LLVM项目 我目前了解的有5部分 LLVM 是