ICode9

精准搜索请尝试: 精确搜索
  • c – 使用libclang从内存中的C代码生成程序集2019-08-29 13:05:50

    我需要实现一个库,它使用LLVM / Clang作为后端将C代码编译为eBPF字节码.代码将从内存中读取,我需要将结果汇编代码也存储在内存中. 到目前为止,我已经能够使用以下代码编译为LLVM IR: #include <string> #include <vector> #include <clang/Frontend/CompilerInstance.h> #include

  • c – 如何将可变数量的参数传递给LLVM opt pass?2019-08-28 14:04:47

    我想将可变数量的参数传递给我的LLVM opt pass. 为此,我做了类似的事情: static cl::list<std::string> Files(cl::Positional, cl::OneOrMore); static cl::list<std::string> Libraries("l", cl::ZeroOrMore); 但是,如果我现在调用选择: foo@foo-Ubuntu:~/llvm-ir-obfuscation$o

  • 在另一台机器上运行从clang llvm编译的程序2019-08-26 13:02:28

    我正在通过clang llvm(版本3.1)编译一个程序,并尝试在同样具有相同clang llvm版本的计算机上运行它.我正在编译Ubuntu 10,但是我正在尝试运行的另一台计算机有CentOS 5.在CentOS中,我也遇到了通过LLVM编译的问题(编译器传递在LLVM中实现).这就是为什么我想在Ubuntu上编译,从那里获

  • c – 在LLVM中直接跳转的分支指令2019-08-26 03:06:47

    在LLVM中,如何生成直接跳转的分支指令,而不是if-else.我知道有LLVM :: BranchInst类,但不知道如何将它用于此目的,还是我需要使用其他类?解决方法:你需要一个无条件的分支: static BranchInst * llvm::BranchInst::Create(BasicBlock *IfTrue,

  • c – 如何使用LLVM为不同的目标体系结构编译程序?2019-08-25 17:05:56

    我想使用LLVM / Clang将基本程序hello.c编译为本机x86架构,以生成中间件和程序集. 我使用了以下命令: clang -O3 -emit-llvm hello.c -c -o hello.bc llc hello.bc -o hello.s 它完美地运作.如何生成其他架构的代码说SPARC 32位? clang中是否有用于指定架构的标志?解决方法:您可以运

  • 手动编译一个windows下64位的LLVM3.3(clang3.3)2019-08-25 17:05:35

    手动编译一个windows下64位的LLVM3.3(clang3.3) 写在前面 LLVM的官网(https://releases.llvm.org/download.html#3.3)从3.4版本开始有windows版本了,但是3.3版本没有,所以手动编译一个。 首先从官网下载三个源文件 1. LLVM source code  地址 https://releases.llvm.org/3.3/llv

  • LLVM-Clang编译器安装和使用2019-08-22 17:35:34

    LLVM不仅仅是一个编译器,同时提供了模块化的功能和库,用于编译器的开发和功能扩展。常规的一个编译器分为前端、优化器和后端,LLVM编译器也不例外,Clang就是属于一个编译器的前端部分,LLVM属于优化器和后端,当然LLVM也可以支持其他类型的前端,比如GCC前端编译器。 Clang的安装 ap

  • linux – 使用ELLCC构建LFS系统2019-08-16 23:53:35

    首先,这不是我第一次尝试构建LFS系统 – 我已经成功构建了LFS 7.8和LFS 7.8-systemd. 我想用ELLCC替换GCC GlibC,这是Clang / LLVM musl. 它有一些限制 – 其中最值得注意的是它目前缺乏对动态链接的支持 – 但是预期的结果是交叉编译(或更好的,编译在设备上)armhf LFS构建,作为实

  • c – 替换LLVM指令的操作数2019-07-29 09:14:59

    在下面的代码中,我尝试替换LLVM指令的操作数.但它不起作用,没有任何改变.不知道怎么解决这个问题? for (OI = insn->op_begin(), OE = insn->op_end(); OI != OE; ++OI) { Value *val = *OI; iter = mapClonedAndOrg.find( val ); if( iter != mapClonedAndOrg.end( )

  • c – 一切都很不稳定2019-07-28 22:05:20

    我正在创建这个多线程C程序,并且在发布模式下编译时,我发现了这种类型的错误(对象仍为空),即看起来像缺少易失性标记. 但问题是,由于第二个工作线程涉及各种对象,这意味着程序中几乎所有东西都是易变的. 我想知道是否有办法关闭Apple LLVM编译器中的优化,这些优化会创建volatile关

  • c – LLVM,获取内部结构的偏移量2019-07-27 05:07:51

    我想在LLVM中使用每个struct元素的细粒度偏移量.例如: struct A{ int a; int b; }; struct B{ int c; struct A sa; }; struct B s; 对于struct B,我想枚举其中的每个元素,即:offset(s.c)= 0,offset(s.sa.a)= 4,offset(s.sa.b)= 8.如何在我的pass而不是dump()中获

  • 可以使用LLVM IR(中间表示)来创建跨平台(iphone和Android)ARM可执行文件吗?2019-07-26 13:24:30

    我正在研究从相同的代码库有效地创建Android和iPhone目标应用程序的可能方法,无论是在C/C++ / C#/ Objective-C还是Java(使用VMKit). LLVM看起来很有前景,但是我对于围绕不同ARM CPU实现的兼容性问题略感困惑,主要来自底层芯片组如何“解析”图形和声音代码(即我必须编写特定的ARM

  • 在2018年编写LLVM遍——前言2019-07-26 12:35:52

    TL;DR:官方教程仍然奏效,但过时久矣 原文地址:https://medium.com/@mshockwave/writing-llvm-pass-in-2018-preface-6b90fa67ae82 作者:Bekket McClane 遵循官方教程,你已经写过一个HelloWorld遍…… 现在你希望学习更多、看得更多…… 因此你深入神奇的LLVM源代码树,为了理解如何用

  • c – 将std :: vector的副本附加到自身的末尾2019-07-25 09:07:44

    参见英文答案 > Nice way to append a vector to itself                                    4个 我试图制作一个字符串向量的副本,并将其附加到其原始向量的末尾,即复制其内容.例: Input : vector<string> s = {"abc", "def"} Output: vec

  • 【TVM学习四】基于Arm平台编译TVM—LLVM OpenCL CUDA openblas2019-07-18 17:04:47

    参考链接:关于 llvm/clang 在 Ubuntu 下的安装?   补充:            1. 我下载的是LLVM7.0.0版本,对应源码 LLVM source code和Clang source code             2. 在第四步中,进入build目录,执行cmake ../llvm -DCMAKE_BUILD_TYPE=Debug(或者Release)          

  • linux编译 llvm 7.1.0 + clang2019-07-15 10:42:53

    【前言】因为工作需要编译apach-arrow,里面依赖到llvm7.0以上。但是开发环境是一个互联网的孤岛,需要手动编译llvm,具体操作如下   【下载相关源码和模块】 可以在http://releases.llvm.org/download.html#7.0.1 找到需要的版本,我编译的是7.1.0 解压LLVM/Clang等全部源代码(不包

  • c – Clang,LLVM和g2019-07-08 21:51:02

    我安装了clang来比较它与g(gcc)的使用对一些C程序;在中,我比较了编译时间,错误反馈等.对于相同的程序.我这样做主要是为了官方LLVM教程(使用LLVM实现编译器). 有一次,在我只下载clang之前,我需要安装LLVM库(v.2.9.).在此之后,使用clang进行编译似乎不适用于以下教程代码;而g似乎与L

  • Ubuntu下TVM的编译安装2019-06-30 18:26:06

    官方安装文档地址:https://docs.tvm.ai/install/index.html 系统环境:Ubuntu 18.04 LTS 64-bit,其他环境或需求可参考官方文档。 TVM编译安装 LLVM部分 虽然LLVM对于TVM是可选项,但是如果要部署到CPU端,那么LLVM几乎是必须的,所以建议安装LLVM。本次安装LLVM6.0。 第一步,添加相关

  • python – __lldb_init_module何时被调用?2019-06-29 20:44:41

    我正在关注WWDC会话412 – 在Xcode中进行调试.那里有一个关于为您自己的类创建自定义LLDB摘要的演示. 我根本无法得到摘要. 通过在Python脚本中插入print调用,我已经能够确定: >脚本文件正在导入 > __lldb_init_module永远不会被调用 什么可以防止__lldb_init_module被调用?是否需要

  • [ZZ] A Proposal For Compiling Direct3D HLSL With LLVM (Written by Michael Larabel )2019-06-28 19:48:16

    http://www.phoronix.com/scan.php?page=news_item&px=OTI2NA Note:  Something very instersting to wine translating 这个点子是对于GPU virtualization有启发。。。不过有很多技术和专利上的问题。 MSFT HSLS -> LLVM IR -> Windows graphics driver or Linux graphic dri

  • 微软的HLSL Shader Model 6.0 compiler要转向LLVM了,开源的节奏. Apple/Khronos都有各自计划...2019-06-28 19:47:55

      So, Microsoft is making an opensource HLSL-to-almost-LLVM compiler, and Khronos is making an opensource HLSL/GLSL-to-almost-LLVM compiler. Apple MetalSL is almost C++ (and new HLSL will get closer to C++). Although Apple's compiler is not open-sour

  • 编译器架构的LLVM IR 5st Day(分解struct)2019-06-27 20:27:12

    llvm instruction use 的用法 Instruction *instr = WorkListLoad->pop_back_val(); for (Value::user_iterator UI = instr->user_begin(), E = instr->user_end(); UI!= E; ++UI) { User *U = *UI; assert (isa<Instruction> (U)); I

  • netcore2.0高级调试 lldb安装日志2019-06-16 09:48:49

    netcore2.0高级调试一书学习中 需要安装lldb3.9进行程序调试 但是书中没有具体安装教程安装完毕后记录下日志 以便以后查看1. 全文参考   https://www.cnblogs.com/calvinK/p/9263696.html(文章A)其中 centos7 安装GCC7.3版本  参考 该篇文章  https://yq.aliyun.com/articles

  • LLVM每日谈之五十二 创建LLVM后端的第一步校正(target machine)2019-06-15 22:02:44

    根据LLVM文档《Writing an LLVM Backend 》可知道,LLVM新建一个后端需要七大步骤。前文对七大步骤和文档中其他的结构的关系也做了简单的分析。后续会逐步分析新建后端的七大步骤,并以RISC-V为目标平台,结合RISC-V的LLVM后端代码进行分析。另外,由于《Writing an LLVM Backend 》

  • LLVM每日谈之五十三 Target Registration的更正2019-06-15 22:00:37

    前文:创建一个LLVM新后端的第一步中文档与代码的差异 主要是为新后端实现了一个Target Machine,这是新建后端七个步骤的第一步。在这个步骤之后,还有一个隐含的内容,那就是将这个Target注册,好让其它的LLVM工具可以在运行时使用你新建的target。 LLVM的官方文档中,以Sparc为例,做了举

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

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

ICode9版权所有