首页 > 其他分享 >这个项目是一个学习 LLVM 的教程

这个项目是一个学习 LLVM 的教程

时间:2022-10-24 18:23:43浏览次数:39  
标签:教程 LLVM 代码 Cpu0 学习 文档 版本

https://github.com/P2Tree/LLVM_for_cpu0

介绍

这个项目是一个学习 LLVM 的教程,我实现了一个 LLVM 框架下的后端,用来编译能够在 Cpu0 上执行的可执行代码,Cpu0 是一个简单易学的 RISC 处理器。另外,我还编写了一份详细的中文文档作为 LLVM 初学者的指南,它们放在 tutorial 路径下。

这个目录和其子目录下包含着完整的 LLVM 的源代码,目前是 8.0.0 版本,以及用于构建优化编译器、优化器和运行时环境的工具包。

大多数代码都放到 src/lib/Target/Cpu0 这个路径下,不过也有少量代码在其他位置,配合修改了公共代码。

 

使用方法

你可以把文档的每个章节作为指南来阅读和学习,并把工程中的代码作为参考。 我把每个章节修改过的文件都放到了 shortcut/ch_x 的各个路径下,如果在编码时有困惑,可以辅助查看。 我知道,目前代码和文档里依然会有问题,如果你有任何疑问,欢迎告知我。

 

感谢

正如我在文档中写到的,教程文档高度参考了一本教程,这个教程叫 Tutorial: Creating an LLVM Backend for Cpu0 Architecture,其作者叫 Chen Chung-Shu,他的教程对我学习 LLVM 非常有帮助。不过,因为完成较早,教程依赖的 LLVM 版本比较旧,大概是 3.0 版本,所以我重新用新版本实现了一遍。 所以,我诚挚的感谢 Chen Chung-Shu,感谢他的细致工作。

 

标签:教程,LLVM,代码,Cpu0,学习,文档,版本
From: https://www.cnblogs.com/xiaochouk/p/16822341.html

相关文章

  • 如何搭建一套学习、开发PostgreSQL的环境
    背景万事开头难,搭建好一套学习、开发PostgreSQL的环境,是重中之重。因为其他平台(Ubuntu,CentOS,MAC)的用户大多数都具备了自行安装数据库的能力,在这里我只写一个面向Wi......
  • 学习Markdown
    学习Markdown标题三级标题四级标题字体样式字体样式字体样式字体样式百度引用~姓名年龄lw123列表!代码!记住!12.123-java......
  • HashSet集合 Array sort方法 学习 剑指offer 练习1
    HashSet集合是基于HashMap来实现的,不允许有重复的元素        允许有NULL值 无序,不会记录插入的顺序HashSet实例化对象  HashSet<Strin......
  • 如何搭建一套学习、开发PostgreSQL的环境
    背景万事开头难,搭建好一套学习、开发PostgreSQL的环境,是重中之重。因为其他平台(Ubuntu,CentOS,MAC)的用户大多数都具备了自行安装数据库的能力,在这里我只写一个面向Wi......
  • 自然语言处理学习笔记-lecture09-篇章分析
    自然语言处理的处理单元分为字(编码、输入法),词、短语(形态分析、汉语分词、词性标注、词义消歧、命名实体识别等),句子(句法分析、语块分析、语义角色标注),篇章(机器翻译、......
  • 支持向量机算法之鸢尾花特征分类【机器学习】
    一.前言1.1本文原理支持向量机(SVM)是一种二元分类模型。它的基本模型是在特征空间中定义最大区间的线性分类器,这使它不同于感知器;支持向量机还包括核技术,这使得它本质上是......
  • 【Python基础学习】第十一节 内置函数详解
    Python基础学习之内置函数Python3.5版本中的68个内置函数,按顺序逐个进行了自认为详细的解析,现在是时候进行个总结了。为了方便记忆,将这些内置函数进行了如下分类:1.数学运......
  • Epson RC+ 7.0 下载安装使用图文教程
    简介爱普生机器人仿真系统,是通过计算机对实际的机器人系统进行模拟的技术。机器人仿真系统可以通过单机或者多台机器人从而组成工作站或是生产线。这些工业机器人的仿真软......
  • SYSU-SSE 3D游戏编程与设计 学习笔记(2)--空间与运动
    前言中山大学软件工程学院3D游戏编程与设计课程学习记录博客游戏代码:游戏代码简答题游戏对象运动的本质是什么游戏对象的运动过程本质上就是游戏对象transform......
  • Java并发编程学习10-任务执行与Executor框架
    任务执行何为任务?任务通常是一些抽象且离散的工作单元。大多数并发应用程序都是围绕着“任务执行”来构造的。而围绕着“任务执行”来设计应用程序结构时,首先要做的......