- 2024-12-27LLVM技术在GaussDB等数据库中的应用
万物互联的态势下,数据量的激增使得“如何提升数据处理性能”成为各家数据库共同面临的挑战。作为编译优化技术的代表,基于LLVM的CodeGen技术,能为每个查询生成定制的机器码替代原本的通用函数,减少实际查询时冗余的条件逻辑判断、虚函数调用并提高数据局域性,从而达到提升查询整体性能
- 2024-12-25生成LLVM IR及其CFG图
math.c代码intadd(inta,intb){returna+b;}intmul(inta,intb){returna*b;}voidTest(){intr1=add(1,2);intr2=mul(3,4);} 编译生成IR中间代码math.llclang.exe-S-emit-llvmmath.c-omath.llmath.ll代码如下:;Module
- 2024-12-23【AI编译器】MLIR — 入门
前言MLIR社区充满活力。但由于它是一个新的且快速发展的项目,因此可用的教程和文档并不多。没有权威的MLIR书籍。大多数围绕事物的推理都来自民间传说和技术性很强的RFC。而且由于MLIR构建在LLVM(该缩写词以前的意思是“低级虚拟机”)之上,因此现有的许多文档都通过类比LLVM
- 2024-12-13转载:【AI系统】LLVM 前端和优化层
在上一篇文章讲到了LLVM的IR贯穿了LLVM编译器的全生命周期,里面的每一个箭头都是一个IR的过程,这个就是整体LLVM最重要的核心概念。有了LVMIR之后这并不意味着LLVM或者编译器的整个Pipeline都是使用一个单一的IR,而是在编译的不同阶段会采用不同的数据结构,但总体
- 2024-12-13转载:【AI系统】LLVM 后端代码生成
上一篇文章主要讲了LLVM的前端和优化层,前端主要对高级语言做一些词法的分析,把高级语言的特性转变为token,再交给语法分析对代码的物理布局进行判别,之后交给语义分析对代码的的逻辑进行检查。优化层则是对代码进行优化,比如常量折叠、死代码消除、循环展开、内存分配优化等。本文
- 2024-12-13转载:【AI系统】LLVM 后端代码生成
上一篇文章主要讲了LLVM的前端和优化层,前端主要对高级语言做一些词法的分析,把高级语言的特性转变为token,再交给语法分析对代码的物理布局进行判别,之后交给语义分析对代码的的逻辑进行检查。优化层则是对代码进行优化,比如常量折叠、死代码消除、循环展开、内存分配优化等。本文
- 2024-12-13转载:【AI系统】LLVM 架构设计和原理
在上一篇文章中,我们详细探讨了GCC的编译过程和原理。然而,由于GCC存在代码耦合度高、难以进行独立操作以及庞大的代码量等缺点。正是由于对这些问题的意识,人们开始期待新一代编译器的出现。在本文,我们将深入研究LLVM的架构设计和原理,以探索其与GCC不同之处。LLVM发展历程
- 2024-12-13转载:【AI系统】LLVM IR 基本概念
在上一篇文章中,我们已经简要介绍了LLVM的基本概念和架构,我们现在将更深入地研究LLVM的IR(中间表示)的概念。了解LLVMIR的重要性是为了能够更好地理解编译器的运作原理,以及在编译过程中IR是如何被使用的。LLVMIR提供了一种抽象程度适中的表示形式,同时能够涵盖绝大多数源
- 2024-12-13转载:【AI系统】LLVM 前端和优化层
在上一篇文章讲到了LLVM的IR贯穿了LLVM编译器的全生命周期,里面的每一个箭头都是一个IR的过程,这个就是整体LLVM最重要的核心概念。有了LVMIR之后这并不意味着LLVM或者编译器的整个Pipeline都是使用一个单一的IR,而是在编译的不同阶段会采用不同的数据结构,但总体
- 2024-12-13转载:【AI系统】LLVM IR 基本概念
在上一篇文章中,我们已经简要介绍了LLVM的基本概念和架构,我们现在将更深入地研究LLVM的IR(中间表示)的概念。了解LLVMIR的重要性是为了能够更好地理解编译器的运作原理,以及在编译过程中IR是如何被使用的。LLVMIR提供了一种抽象程度适中的表示形式,同时能够涵盖绝大多数源
- 2024-12-13转载:【AI系统】LLVM 架构设计和原理
在上一篇文章中,我们详细探讨了GCC的编译过程和原理。然而,由于GCC存在代码耦合度高、难以进行独立操作以及庞大的代码量等缺点。正是由于对这些问题的意识,人们开始期待新一代编译器的出现。在本文,我们将深入研究LLVM的架构设计和原理,以探索其与GCC不同之处。LLVM发展历程
- 2024-12-11转载:【AI系统】LLVM IR 基本概念
在上一篇文章中,我们已经简要介绍了LLVM的基本概念和架构,我们现在将更深入地研究LLVM的IR(中间表示)的概念。了解LLVMIR的重要性是为了能够更好地理解编译器的运作原理,以及在编译过程中IR是如何被使用的。LLVMIR提供了一种抽象程度适中的表示形式,同时能够涵盖绝大多数源
- 2024-12-11转载:【AI系统】LLVM 架构设计和原理
在上一篇文章中,我们详细探讨了GCC的编译过程和原理。然而,由于GCC存在代码耦合度高、难以进行独立操作以及庞大的代码量等缺点。正是由于对这些问题的意识,人们开始期待新一代编译器的出现。在本文,我们将深入研究LLVM的架构设计和原理,以探索其与GCC不同之处。LLVM发展历程
- 2024-12-11转载:【AI系统】LLVM 前端和优化层
在上一篇文章讲到了LLVM的IR贯穿了LLVM编译器的全生命周期,里面的每一个箭头都是一个IR的过程,这个就是整体LLVM最重要的核心概念。有了LVMIR之后这并不意味着LLVM或者编译器的整个Pipeline都是使用一个单一的IR,而是在编译的不同阶段会采用不同的数据结构,但总体
- 2024-12-11转载:【AI系统】LLVM IR 基本概念
在上一篇文章中,我们已经简要介绍了LLVM的基本概念和架构,我们现在将更深入地研究LLVM的IR(中间表示)的概念。了解LLVMIR的重要性是为了能够更好地理解编译器的运作原理,以及在编译过程中IR是如何被使用的。LLVMIR提供了一种抽象程度适中的表示形式,同时能够涵盖绝大多数源
- 2024-12-11转载:【AI系统】LLVM 架构设计和原理
在上一篇文章中,我们详细探讨了GCC的编译过程和原理。然而,由于GCC存在代码耦合度高、难以进行独立操作以及庞大的代码量等缺点。正是由于对这些问题的意识,人们开始期待新一代编译器的出现。在本文,我们将深入研究LLVM的架构设计和原理,以探索其与GCC不同之处。LLVM发展历程
- 2024-12-11转载:【AI系统】LLVM 前端和优化层
在上一篇文章讲到了LLVM的IR贯穿了LLVM编译器的全生命周期,里面的每一个箭头都是一个IR的过程,这个就是整体LLVM最重要的核心概念。有了LVMIR之后这并不意味着LLVM或者编译器的整个Pipeline都是使用一个单一的IR,而是在编译的不同阶段会采用不同的数据结构,但总体
- 2024-12-11转载:【AI系统】LLVM 后端代码生成
上一篇文章主要讲了LLVM的前端和优化层,前端主要对高级语言做一些词法的分析,把高级语言的特性转变为token,再交给语法分析对代码的物理布局进行判别,之后交给语义分析对代码的的逻辑进行检查。优化层则是对代码进行优化,比如常量折叠、死代码消除、循环展开、内存分配优化等。本文
- 2024-12-03【原创】vs2022配置切换多个ollvm环境
不同的ollvm的混淆效果不一样,不同魔改版的命令参数也不一样,有的支持迭代多次混淆,有的不支持。我想使用ollvm不同的版本,怎么办?我不想替换vs安装的原装llvm,怎么办?直接下载别人编译好的文件,不用自己编译了:https://github.com/KomiMoe/Arkari/releases/tag/Win64-MT-19.1.3-obf1.6
- 2024-11-29轻松掌握 microTVM 编译步骤
1引言在当今快速发展的机器学习领域,TVM已经成为了一个不可或缺的工具。尤其是MicroTVM,作为TVM的一个重要分支,它专注于在资源受限的微控制器上运行机器学习模型,这在物联网(IoT)和边缘计算的背景下显得尤为重要。MicroTVM的存在极大地推动了机器学习模型在更小、更省电的设备上的应