• 2024-07-01编译—配置化TOML与编译组件
    硬件功能模块化,软件功能配置化(业务化)软件功能配置化软件系统模块化设计是实现可配置性的基础。通过将系统拆分为多个独立的模块,可以使得每个模块都拥有独立的配置选项引入配置文件,提供可视化配置界面,实现动态参数调整-运行时对部分参数进行调整-热插拔配置文件ini
  • 2024-06-30LLVM 中的指令调度器及其工作过程
    LLVM中的指令调度器及其工作过程概述LLVM中实现了多种指令调度器,分别作用于后端流程的不同阶段,包括指令选择阶段的指令调度器、寄存器分配前的指令调度器和寄存器分配后的指令调度器这三类调度器都有llc命令行选项可以控制其使能或禁用在寄存器分配前,基本块中的操作数
  • 2024-06-23指令选择原理与实现方式
    概述编译器前端将源代码转换为等效形式的IR,IR经过优化器优化后传递到后端,由代码生成器将IR代码转换为汇编代码或目标代码在这个过程中,后端首先通过指令选择器目标机器支持的指令来实现IR指令至于指令的顺序,可由后续的指令调度器决定指令选择器指令选择器选择指令的基
  • 2024-06-12深度解读数据库引入LLVM技术后如何提升性能
    GaussDB作为企业级的数据库,经过了多年的技术发展,具备丰富的技术特性,使用LLVM技术后提升了系统的查询性能,使得开发者在OLAP和OLTP多场景中均受益。Hi,别急!让技术触达每一个角落,赋能更多的人,GaussTech第3期《LLVM技术在GaussDB等数据库中的应用》,不仅带来满满的技术干货,还推出【分
  • 2024-06-03LLVM技术在GaussDB等数据库中的应用
    本文分享自华为云社区《【GaussTech第3期】LLVM技术在GaussDB等数据库中的应用》,作者:GaussDB数据库。Hi,别急!让技术触达每一个角落,赋能更多的人,GaussTech第3期《LLVM技术在GaussDB等数据库中的应用》,不仅带来满满的技术干货,还推出【分享集赞回帖赢好礼】活动,参与就能赢好礼,文末
  • 2024-05-21实现“代码可视化”需要了解的前置知识-编译器中端
    1.前言前文实现“代码可视化”需要了解的前置知识-编译器前端介绍了编译器前端知识并附带了小练习,本文将继续介绍编译器中端相关的知识,还是概念+练习的学习方式。中间代码是用来进行程序分析和实现代码可视化的关键数据,了解其生成和优化方式能更好的帮助我们理解程序的执行逻辑,
  • 2024-04-29openGauss MOT查询原生编译_JIT
    MOT查询原生编译(JIT)MOT使您可以在执行之前以原生格式(使用PREPARE语句)准备并分析预编译的完整查询。这种本机格式以后可以更有效地执行(使用EXECUTE命令)。这种类型的执行效率要高得多,因为在执行期间,本机格式绕过了多个数据库处理层。这种分工避免了重复的解析分析操作。LiteExecu
  • 2024-04-29openGauss MOT查询原生编译_JIT
    MOT查询原生编译(JIT)MOT使您可以在执行之前以原生格式(使用PREPARE语句)准备并分析预编译的完整查询。这种本机格式以后可以更有效地执行(使用EXECUTE命令)。这种类型的执行效率要高得多,因为在执行期间,本机格式绕过了多个数据库处理层。这种分工避免了重复的解析分析操作。LiteExecu
  • 2024-04-28openGauss MOT查询原生编译_JIT
    MOT查询原生编译(JIT)MOT使您可以在执行之前以原生格式(使用PREPARE语句)准备并分析预编译的完整查询。这种本机格式以后可以更有效地执行(使用EXECUTE命令)。这种类型的执行效率要高得多,因为在执行期间,本机格式绕过了多个数据库处理层。这种分工避免了重复的解析分析操作。LiteExecu
  • 2024-04-11ZOMI的AI编译原理3
    LLVM设计架构LLVMIR与GCCIR对比特性LLVMIRGCCIR(GIMPLE)独立性和库化架构高度模块化,前端和后端分离,易于添加新语言和目标平台传统GCC架构,前端和后端耦合较紧密表达形式人类可读的汇编形式、C++对象形式、序列化后的bitcode形式GIMPLE表示形式,三地址代码,SS
  • 2024-04-09openGauss 支持LLVM
    支持LLVM可获得性本特性自openGauss1.0.0版本开始引入。特性简介openGauss的LLVM(LowLevelVirtualMachine)技术,提供了查询动态编译执行的能力。客户价值通过对查询动态编译执行,大幅提高重查询性能。特性描述openGauss借助LLVM提供的库函数,依据查询执行计划树,将原本在执
  • 2024-04-05MLIR中间表示和编译器框架
    MLIR中间表示和编译器框架背景随着深度学习技术的发展,深度学习技术也逐渐从学术研究的方向转向了实践应用的方向,这不仅对深度模型的准确率有了较高的需求,也对深度模型的推理速度有了越来越高的需求。目前深度模型的推理引擎按照实现方式大体分为两类:解释型推理引擎:一般包含
  • 2024-03-30LLVM-Tutorial
    FirstLanguageFrontendwithLLVMLexer一个简单的“递归下降”的单步词法分析器,结合“符号栈”和“向前看”一个字符完成单步词法单元的提取//===----------------------------------------------------------------------===////Lexer//===-----------------------
  • 2024-03-30【Clang+LLVM+honggfuzz学习】(一)LLVM简介、安装和第一个Hello Pass
    本文结构,PS:根据需要选择观看哦1.前言参考2.简介传统编译器架构LLVM架构3.LLVM安装版本准备官网源码下载git下载安装过程4.写一个LLVMPass旧HelloPass实现(legacyPMversion)新HelloPass实现(UsingtheNewPassManager)1.前言漏洞检测做毕设,还有一年。半
  • 2024-03-27【论文项目复现1】漏洞检测项目复现_VulDeeLocator
    复现环境Ubuntu20.04CPU:32GGPU:11G2080tiSource2slice:clang-6.0+llvm+dg(dg:https://github.com/mchalupa/dg)、gcc-9.5,g++-9.5DatapreprocessandModeltraining:python3.6+tensorflow1.6+keras2.1.2+gensim3.4建议用conda配置环境,包括cuda9.0,cudn
  • 2024-03-22LLVM芯片编译器实践示例
    LLVM芯片编译器实践示例7.1编译器基本概念7.1.1AI编译器绪论芯片是一个硬件,接收的是二进制的指令,要想让自己的编程语言执行编程指令,就需要一个编译器。这个部分的重要程度丝毫不亚于芯片本身。最近国内很多公司在做AI芯片,经常出现芯片很快就做出来了,但芯片受限于编译器无法发
  • 2024-03-14【rust】《处理报错could not execute `llvm-config` one or more times》
    报错信息couldnotexecute`llvm-config`oneormoretimes,iftheLLVM_CONFIG_PATHenvironmentvariableissettoafullpathtovalid`llvm-config`executableitwillbeusedtotrytofindaninstanceof`libclang`onyoursystem:"couldn'texec
  • 2024-02-02llvm官网上推荐的c++网站
    TheC++StandardTemplateLibraryLLVMmakesheavyuseoftheC++StandardTemplateLibrary(STL),perhapsmuchmorethanyouareusedto,orhaveseenbefore.Becauseofthis,youmightwanttodoalittlebackgroundreadinginthetechniquesusedandca
  • 2023-12-21记录 | ubuntu源码编译ccls
    ubuntu源码编译ccls#clone代码gitclone--depth=1--recursivehttps://github.com/MaskRay/ccls#安装libclang-15sudoapt-getinstallclanglibclang-15-dev#编译cmake-H.-BRelease-DCMAKE_BUILD_TYPE=Release\-DCMAKE_PREFIX_PATH=/usr/lib/llvm-15\
  • 2023-12-05PWN学习之LLVM入门
    一、基本流程①找到runOnFunction函数时如何重写的,一般来说runOnFunction都会在函数表最下面,找PASS注册的名称,一般会在README文件中给出,若是没有给出,可通过对__cxa_atexit函数"交叉引用"来定位:②通过逆向,找到函数名及参数,编写基本exp③找到漏洞,写利用exp.c,其中的pwn的目标是op
  • 2023-12-04C++:如何将 LLVM 嵌套到你的项目中去
    IDE:ClionLLVMcmake_minimum_required(VERSION3.9)project(clang_demo)find_package(LLVMREQUIREDCONFIG)message(STATUS"FoundLLVM${LLVM_PACKAGE_VERSION}")message(STATUS"UsingLLVMConfig.cmakein:${LLVM_DIR}")
  • 2023-12-04最佳 C++ 编译器
    最佳C++编译器Incredibuild​已认证账号​关注 134人赞同了该文章 C++是一个“开放”的编程语言,任何人都可以使用自己喜欢的编译器。当然,C++编译器的种类也很多。同样, C++IDE 也不少,我在之前的一个博客中讨论过这个话题。编译和运行C++
  • 2023-11-01LLVM 参考链接
    https://www.llvm.org/LLVMEssentials(Paperback)LLVM编译器https://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15745-s14/public/lectures/https://www.zhihu.com/people/fanqiliang/posts立本书籍https://tatsu-zine.com/books/llvm
  • 2023-10-30emscripten基于llvm的webassembly 编译器
    emscripten是一个基于llvm的webassembly编译器包含的特性可移植支持编译现有的c,c++以及其他语言项目,使用lvvm编译为支持nodejs,浏览器,以及wasm运行时运行的服务提供apis支持将openGL转换为WebGL,pthreads转换为webapi。。。快速集成了不少工具(llvm,emscripten,binar
  • 2023-10-27常见编译优化及LLVM Pass源码分析(填坑ing)
    一、常量传播二、常量折叠三、复写传播四、公共子表达式消除五、死代码消除(ADCE,Aggressivedeadcodeelimination)llvm/lib/Transforms/Scalar/ADCE.cpp六、函数内联