ICode9

精准搜索请尝试: 精确搜索
  • 构建编译TVM方法2021-04-24 07:01:43

    构建编译TVM方法 本文提供如何在各种系统上构建和安装TVM包的说明。它包括两个步骤: 1.     首先从C代码构建共享库( libtvm.so for linux, libtvm.dylib for macOS and libtvm.dll for windows)。 2.     语言包的设置(例如Python包)。 TVM源码下载链接 https://gith

  • LLVM获取函数传入参数的具体值2021-03-28 11:57:35

    %call = call i8* @malloc(i64 12) 比如有这么一段IR,我想要得到malloc中的参数12: void TableBuilder::extract_info(const CallInst *ins_ptr) { auto fn = ins_ptr->getCalledFunction(); errs() << ins_ptr->getNumOperands() << "\n"; if (fn)

  • 2021 新的征程2021-03-08 11:32:45

      阔别两年的博客,今日重拾。阔别了20多年的学生生涯,如今成为一名编译器工程师,我必须更严格的要求自己。以前学生时代染上的各种恶习,现在必须更加严格的要求自己,去改掉,因为想要成长,想要超越,想要守护。   如今虚岁已二十有八,想想自己与组内老员工,与师傅的差距,两年时间如果不拼尽

  • TVM将深度学习模型编译为WebGL2021-03-07 07:32:14

    使用TVM将深度学习模型编译为WebGL TVM带有全新的OpenGL / WebGL后端! OpenGL / WebGL后端 TVM已经瞄准了涵盖各种平台的大量后端:CPU,GPU,移动设备等。这次,添加了另一个后端:OpenGL / WebGL。 OpenGL / WebGL使能够在未安装CUDA的环境中利用GPU。在浏览器中使用GPU的方法。 后端允许以

  • LLVM程序分析日记之MemorySSA2021-02-21 22:36:34

    Introduction LLVM MemorySSA使我们能够便捷地推断各种内存操作之间的交互。它旨在替代 MemoryDependenceAnalysis大多数(即使不是全部)用例。在较高的层次上,MemorySSA是提供一种基于SSA的内存表单,并带有def-use和use-def链,这使用户能够快速找到内存操作的may-def和may-use。注意,LLV

  • 带有LLVM的eBPF组件2021-02-21 20:58:22

    目录 从C到目标文件 深入说明 eBPF与LLVM循序渐进 从C编译到eBPF程序集 组装到ELF目标文件 llvm-objdump的人性化输出 内联汇编 结论   此职位作为草稿留了很长时间。它的大部分内容是在2017年12月编写的。我希望它能在今天发布,尽管Cilium指南也涵盖了该功能。 eBPF(扩展的Berk

  • 使用LLVM进行代码覆盖率检查2021-02-15 11:30:43

    Code Coverage是软件测试领域的话题,具有大概率Code Coverage的源程序相比于小概率Code Coverage的源程序更容易在测试集的测试下发现BUG,LLVM提供了一个工具LLVM-COV,简单记录一下使用方法: step 1:安装clang 和 llvm        sudo apt install clang llvm Step 2:编写测试程序

  • 在Jetson nano上编译安装TVM2021-02-10 21:33:32

    在Jetson nano上编译安装TVM 前言参考资料编译流程LLVM的安装出现的问题及解决办法 前言 前面整理了几篇关于TVM的文章: TVM-初识TVM Ubuntu16.04安装Docker TVM学习教程 接下来就是编译安装TVM了,手头有的系统也就是ubuntu了,在网上查找了一些资料后发现可以在ubuntu系统

  • LLVM程序分析日记之GEP Instruction2021-02-03 11:33:18

    前言 消除对LLVM GEP指令的恐惧!它其实也很简单。 挖坑TODO References [1] https://www.llvm.org/docs/GetElementPtr.html [2] https://stackoverflow.com/questions/53960500/llvm-how-to-convert-constantexpr-to-constantdataarray-so-i-can-print-value-of [3] https://blog.

  • 逆向工程-- 二进制文件转换为 LLVM IR llvm-mctoll2021-02-02 19:29:04

    参考https://blog.csdn.net/dongjideyu/article/details/107951272?utm_medium=distribute.pc_relevant_t0.none-task-blog-OPENSEARCH-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-OPENSEARCH-1.control llvm-mctoll 是微软的静态 translator,可静

  • LLVM生成中间码以及汇编代码2021-01-17 20:04:05

    https://www.cnblogs.com/lilylee/p/4053926.html 首先先贴一个LLVM安装的教程: 原文地址:   http://thread.gmane.org/gmane.comp.compilers.llvm.klee/923 打不开就用:   http://blog.csdn.net/happygogf/article/details/17528059 这个文章整合了klee和llvm的安装,由于这两个软

  • macOS安装metaworld2021-01-16 12:58:52

    macOS安装metaworld 说明mujoco的安装苦逼学生党勤奋打工人 metaworld的安装踩坑 说明 安装metaworld的Python环境需要在3.6~3.8之间;由于metaworld基于mujoco,Python环境版本过低会导致mujoco不支持;版本过高的话会导致无法安装metaworld所需的小于7.2版本的pillow(如图) 当

  • ructo2021-01-06 12:57:05

    OC/C 语言的函数调用同样很难被静态扫描 无法对第三方的静态库或者动态库进行有效处理 无法检测 attribute((constructor)) 修饰的函数 今天我们将尝试通过 llvm 和 IR 配合实现解决上面提到的各类场景。

  • vscode C/C++ 语法检查2021-01-04 16:05:27

    vscode 似乎对 C/C++ 并不自带语法检查功能。 因此需要安装vscode的插件C/C++ Clang Command Adapter 和软件 Clang 步骤如下: 安装插件 C/C++ Clang Command Adapter 安装软件 Clang 2.1 点击链接:http://clang.llvm.org/ 2.2 点击左侧 Download 选项 2.3 Download LLVM 11.0

  • LLVM笔记(18) - IR基础详解(二) Instruction2020-12-30 02:32:05

    上节介绍了IR中底层的数据表达方式(Value)及其组织方式(有向图), 有了这个基础就可以理解LLVM IR中的一些基本构成. 本节将要介绍其中的一个基础概念: 指令(Instruction). LLVM IR指令基础 LLVM使用Instruction来描述一条具体的指令. 与ISA设计类似, 在LLVM中指令可以细分为若干类

  • LLVM编译器架构2020-12-25 15:00:57

    LLVM编译器架构 LLVM概述 LLVM项目是模块化和可重用的编译器及工具链技术的集合。尽管名称如此,LLVM与传统虚拟机关系不大。名称“ LLVM”本身不是缩写。它是项目的全名。 LLVM最初是伊利诺伊大学的一个研究项目,目的是提供一种基于SSA的现代编译策略,该策略能够支持任意编程语

  • 扩展LLVM:添加指令、内部函数、类型等2020-12-25 14:36:09

    扩展LLVM:添加指令、内部函数、类型等 Introduction and Warning Adding a new intrinsic function Adding a new instruction Adding a new SelectionDAG node Adding a new type Adding a new fundamental type Adding a new derived type Introduction and Warning 在使用LLV

  • LLVM笔记(17) - ADT介绍(一) ilist2020-12-25 02:01:17

    ADT(advanced data type)是LLVM针对其业务逻辑自定义的高性能抽象类型, 其定义见include/llvm/ADT目录. ADT目录下既包含了DenseMap/SmallVector这类容器封装, 也包含了APInt等大数运算支持, 还有triple这类从编译器业务抽象出来的类型. 了解ADT可以帮助我们更高效的阅读与修改编

  • LLVM 编译器学习笔记之六-- 预处理2020-12-24 09:29:39

    1、llvm 中使用Builder.defineMacro定义builtin宏,类似GCC的builtin_define,以下是llvm8 中定义对gcc 4.2.1版本兼容性宏__GNUC__的示例      配套的接口还有isMacroDefined及undefineMacro      2、嵌套优先级       在Builder.defineMacro中可以定义一些符号,比如SS ,

  • LLVM程序分析日记之Assert2020-12-22 23:32:42

    在对现有工具二次开发时,我们常常插入assert()检查来确保程序行为符合预期。但需要注意的是,一些项目的编译选项会使assert()无效。目前我们的解决方案是,宏定义一个自己的assert检查: #define MyAssert(x) do { \ if (!(x)) {printf("MyAssert failed."); abort(1);} \ } while (0)

  • LLVM程序分析日记之插桩BranchInst2020-12-16 09:04:09

    1. splitblockandinsertifthenelse() 一个代码例子:StackOverflow 2. SplitBlockAndInsertIfThen() 或者仅仅想插桩if then的逻辑,就可以用SplitBlockAndInsertIfThen(),其使用相对简单些,一个例子如下: Value* val_c = NULL; IRBuilder<> IRB(InsertPoint); Value* cmp = IRB.CreateIC

  • LLVM程序分析日记之 basic blocks could have duplicate predecessors2020-12-06 10:33:50

    We used the predecessors() to get the predecessors of a basic block based on LLVM's IR. The code is like: for (llvm::BasicBlock* pred_bb : predecessors(cur_bb)) { printf("prev_bb=%p\n", pred_bb); /* for debug */ } However, we found tha

  • LLVM笔记(16) - IR基础详解(一)2020-12-06 05:04:10

    在LLVM中输入程序流以IR的形式呈现, 之前培训过如何打印与阅读文本形式的IR, 这次简要介绍一下在内存中IR的组织形式, 以及处理/转换IR时需要注意点. 本节主要介绍IR组织中最底层的数据结构(Value), 它们是如何组织的(有向图)以及如何修改它们之间的联系. 一切皆Value 当在提及Lin

  • LLVM编译collect2: fatal error: ld terminated with signal 92020-12-01 13:00:13

    报错:collect2: fatal error: ld terminated with signal 9 查了一下这个报错,可能是内存不足,看到有前人的解决方法,创建了20G的交换空间: sudo mkdir swapfile cd /swapfile sudo dd if=/dev/zero of=swap bs=1024 count=20000000 sudo mkswap -f swap sudo swapon swap 第

  • Linux下调试.Net core:lldb的安装2020-11-03 02:32:02

    一、先安装依赖: yum -y install gcc gcc-c++ swig python-devel libedit-devel automake autoconf libtool make wget  二、下载llvm源码(注意:.net core2.0.0只能使用lldb 3.6;.net core2.1以上必须是3.9.0,下同):   wget http://releases.llvm.org/3.9.0/llvm-3.9.0src.tar.xztar

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有