七天LLVM零基础入门(Linux版本)------第二天

2023-10-27

作者: snsn1984
在第一天的时候,我们简单了解了llvm和clang。今天我们继续对LLVM进行学习。

第一步:学会如何查找LLVM的文档
LLVM的文档很多,也很全面,是开源软件中文档比较全面并且比较细致的,这是很难得的一个事情。所以只要和LLVM打交道,就一定要学会并且善于去使用这些LLVM的文档。
因为LLVM文档比较多,初学者可能不太容易搞清楚,我之前写过一个关于LLVM的文档的博文,可以参考:
http://blog.csdn.net/snsn1984/article/details/8165529
这个博文把文档的地址和文档的分类进行了简单介绍。

第二步:熟悉LLVM的IR
IR是 intermediate representation的缩写,顾名思义是中间表示的的缩写。中间表示已经被越来越多的编译器所采用,传统的编译器多采用汇编语言作为自己的中间语言,而现在大一些的编译器都有了自己专属的中间表示。LLVM IR的官方文档地址: http://llvm.org/docs/LangRef.html
简要介绍可参加我之前的博文: http://blog.csdn.net/snsn1984/article/details/8037414
LLVM IR是整个LLVM框架中极其重要的一部分,一般与LLVM相关的项目都无法避开LLVM IR这个部分,因为它是整个LLVM框架中的枢纽,所以LLVM IR的官方文档必须要完全熟悉。初学者做不到完全熟悉的,至少也应该读几遍,知道整个LLVM IR的大部分内容,细节的内容记不住的可以在使用的时候进行查找文档。
另外,应该可以使用clang去获取一个程序的.ll格式和.bc格式的IR文件,并且能够让这两种格式的文件进行相互转换。
相关知识补充:如果编译原理相关知识比较差的话,需要在这个环节补充一下编译原理的相关知识,至少要知道从源码到可执行文件中的每一个大的环节。同时,也需要去补充一下为什么编译器都采用中间表示,这对LLVM IR的学习,以及后续的学习都很有帮助。

----------------------------------------------------------转载请注明出处---------------------------------------------------------------------------

转载于:https://www.cnblogs.com/ainima/archive/2013/02/21/6331992.html

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

七天LLVM零基础入门(Linux版本)------第二天 的相关文章

  • 将Spring Boot打包成一个可执行的jar

    创建一个可执行jar 让我们通过创建一个完全自包含的可执行jar文件来结束我们的示例 该jar文件可以在生产环境运行 可执行jars 有时候被成为胖jars fat jars 是包含你的编译后的类和你的代码运行所需的依赖jar的存档 可执行

随机推荐

  • ubuntu18.04 天选2 R95900hx 3060显卡驱动安装

    天选2 R95900hx 3060显卡驱动安装 需求 问题 解决 内核 集显 显卡驱动 需求 外接显示器 安装nvidia驱动 问题 由于一开始直接在软件和更新中附加驱动安装了nvidia 470 导致系统黑屏 解决 grub页面系统选择进
  • 手机解除移动宽带屏蔽_FANUC/三菱M70系统如何屏蔽伺服轴?

    有时为了调试方便和操作方便需要 需将伺服脱开或电机脱开 比如 在拆除四轴时 屏蔽相关的一些报警就可以通过参数屏蔽伺服轴 在维修电机或拆卸工作台时 需要将电机或工作台拆下时 就可以通过参数屏蔽相关的报警 其他轴不受拆除轴的影响还可正常移动运转
  • QT DAY1

    做一个窗口界面 include mainwindow h include ui mainwindow h MainWindow MainWindow QWidget parent QMainWindow parent ui new Ui M
  • CSDN专家博客网址

    CSDN Blog 所有专家 分类 业界 软件工程 项目管理 NET JAVA Delphi C C WEB开发 数据库 移动开发 开源 游戏开发 企业开发 工具 产品 综合 网络管理 IT媒体 云计算 业界蒋涛 周筠 芮祥麟 余平 陈荣华
  • iPhone 各屏幕尺寸及解析

    一 iPhone 各屏幕尺寸表 手机型号 屏幕尺寸 inch 像素密度 PPI 逻辑分辨率 point 物理分辨率 屏幕分辨率 pixel 缩放因子 scale factor 宽高比 近似 比例 近似 3GS 3 5 inch 163 pp
  • 如何用API函数获取网卡或硬盘的序列号

    转自 https zhidao baidu com question 502153566675093684 html include
  • 使用.NET中的XML注释(一) -- XML注释标签讲解

    一 摘要 Net允许开发人员在源代码中插入XML注释 这在多人协作开发的时候显得特别有用 C 解析器可以把代码文件中的这些XML标记提取出来 并作进一步的处理为外部文档 这篇文章将展示如何使用这些XML注释 在项目开发中 很多人并不乐意写繁
  • 网络协议有哪些?

    除了TCP IP协议以外 还有很多其他的网络协议 1 HTTP 超文本传输协议 用于在Web浏览器和Web服务器之间传输数据 2 FTP 文件传输协议 用于在不同计算机之间传输文件 3 SMTP 简单邮件传输协议 用于在不同计算机之间传输电
  • 5-1:什么是Servlet-开发你的第一个动态网站

    4 1 JavaWeb开发环境 1 安装IDEA 2 IDEA配置tomcat9 MAC版 兄弟们 这一章的内容我录制了一个视频 可以观看一下 5 1 什么是Servlet 开发你的第一个动态网站 本节内容配套视频 https www bi
  • 当下流行的 Web 编程语言都有哪些?

    如果你是一名新晋的 Web 开发人员 那么在选择最佳 Web 编程语言时将面临很多困难 不同的编程语言支持不同的编程技术 而且各有各的复杂性 此外 新的编程语言层出不穷 让人看得眼花缭乱 在本文中 我们将列出一些最适合 Web 开发的编程语
  • 总结之java代码规范(一)——注释规范、IDEA类和方法注释模板设置

    最近新团队需要需要整一套适合java代码规范 基于阿里java开发手册规范一下代码规范 一 注释要求 1 强制 类 类属性 类方法的注释必须使用javadoc规范 使用 内容 格式 不得使用 xxx方式 2 强制 所有的抽象方法 包括接口中
  • 掩码语言模型(Masked Language Model)mlm

    https www cnblogs com anai p 11645953 html bert 论文 从语言模型到Seq2Seq Transformer如戏 全靠Mask https zhuanlan zhihu com p 6910608
  • 目标检测+光流跟踪

    最近学习了LK光流法 主要用于运动目标的跟踪 于是想着和之前codebook运动目标检测结合起来 实现先检测再跟踪 下面介绍目标检测跟踪流程 1 使用codebook进行背景学习 2 使用codebook不断进行运动目标检测 3 若发现运动
  • Idea-maven项目创建及javafx运行案例

    Idea maven项目创建及javafx运行案例 文章目录 Idea maven项目创建及javafx运行案例 maven项目创建 maven javafx项目配置 首先先把可能要添加的依赖理清楚 配置pom xml文件 但是与此同时还是
  • 567. Permutation in String

    567 Permutation in String Given two strings s1 and s2 write a function to return true if s2 contains the permutation of
  • 为什么需要专门出现GPU来处理图形工作,CPU为啥不可以?

    GPU 是并行编程模型 和CPU的串行编程模型完全不同 导致很多CPU 上优秀的算法都无法直接映射到GPU 上 并且GPU的结构相当于共享存储式多处理结构 因此在GPU上设计的并行程序与CPU 上的串行程序具有很大的差异 GPU主要采用立方
  • 2023最火软件测试工程师涨薪攻略,3年如何达到30K?

    软件测试如何实现涨薪 首先涨薪并不是从8000涨到9000这种涨薪 而是从8000涨到15K加到25K的涨薪 基本上三年之内就可以实现 如果我们只是普通的有应届毕业生或者是普通本科那我们就只能从小公司开始慢慢往上走 有些同学想去做测试 是希
  • rm -rf *后怎么办?

    1 冷静 2 查看字盘文件系统类型 sudo fdisk l 3 根据对应文件系统 下载相应软件进行数据恢复 文件系统 处理方法 参考链接 Microsoft basic data NTFS HPFS ntfsundelete https
  • 数组、链表、跳表的时间复杂度和空间复杂度

    数组 链表 跳表的时间复杂度和空间复杂度 一 数组 二 链表 Linked List Java中实现是双向链表 三 跳表 一 数组 1 1头插入 尾插入 中间某个位置插入 时间复杂度为O 1 空间复杂度为O n 时间复杂度为O 1 空间复杂
  • 七天LLVM零基础入门(Linux版本)------第二天

    作者 snsn1984 在第一天的时候 我们简单了解了llvm和clang 今天我们继续对LLVM进行学习 第一步 学会如何查找LLVM的文档 LLVM的文档很多 也很全面 是开源软件中文档比较全面并且比较细致的 这是很难得的一个事情 所以