llvm-ir

    2热度

    1回答

    使用MinGW成功构建LLVM我现在试图使用C API来实现该程序。 作为一个初学者的应用程序,看看构建是否成功我已经将这里发现的llvmpy例子http://www.llvmpy.org/llvmpy-doc/0.9/doc/firstexample.html转换成(我认为是)C等价物,但是我没有得到我期望从打印函数得到的输出。 我的C程序是: #include "llvm-c/Core.h"

    -1热度

    1回答

    我正在使用自定义LLVM传递,其中如果遇到 的商店,其中编译器将该值转换为常量;例如有一个明确的店: X[gidx] = 10; 然后LLVM会产生这样的错误: aoc: ../../../Instructions.cpp:1056: void llvm::StoreInst::AssertOK(): Assertion `getOperand(0)->getType() == cast<Po

    1热度

    1回答

    我很好奇:在进程间数据流分析期间,IR的内存管理现状是什么。我想知道在分析过程中完整代码的IR驻留在内存中,或者在任何时刻应用一些内存管理技术来加载和卸载IR。 在llvm/gcc基础架构的情况下,如何将任何分析扩展为数百行代码。

    0热度

    1回答

    我正试图手动构建一个指令列表,其中一个特定变量在LLVM IR中获取了一个值。 对于函数中的局部变量,我可以通过使用指令迭代器并检查特定指令的操作数,轻松获得正确的指令集。这种方法似乎不适用于全局变量,因为没有与它们关联的存储指令。 是否有某种方法可以在不查看元数据字段的情况下跟踪定义全局变量的位置?如果没有,有什么方法可以创建一个虚拟指令,它可以被视为全局变量初始定义的特殊标记?

    4热度

    1回答

    LLVM language reference指出 整数类型是一个非常简单的类型,简单地指定期望的整数类型的 任意位宽度。可以指定从1 位到2 -1(约8百万)的任何位宽。 这是否意味着我可以免费使用任意固定长度的整数? 也就是说,如果我声明一个i100,我会有一个100位宽的变量吗?

    3热度

    1回答

    有没有办法从我的传递中传递llvm-ir字节码到文件中?我需要使用opt工具获得的相同格式,因此我可以稍后将此文件传递给opt。

    4热度

    1回答

    我有一个计算int factorial.c的阶乘的c代码。我将它编译为llvm可读代码“factorial.ll”,并在编译的llvm代码中进行修改。 目标是执行修改后的llvm代码并查看其输出,我该怎么做?

    2热度

    1回答

    我写了一个函数通过初始化一个全局变量,然后插入一个功能到IR。我想将函数调用的结果设置为全局变量,但我不确定如何将CallInst类型转换为GlobalVariable类型。下面是我对全局变量声明写的代码: GlobalVariable *virtAddr = new GlobalVariable(*F.getParent(), Type::getInt8PtrTy(F.getConte

    0热度

    1回答

    编译与我LLVM_IR通的OpenCL内核文件时,我最近一直遇到这样的错误: aoc: ../../../TargetRegisterInfo.cpp:89: const llvm::TargetRegisterClass* llvm::TargetRegisterInfo::getMinimalPhysRegClass(unsigned int, llvm::EVT) const: Assert

    -1热度

    1回答

    当我通过LLVM文件去, 有一些用语,但我不完全理解的含义。 请提供反馈,如果你知道任何。 [前端]源代码 - > Tokeniser(令牌流) - >分析器(分析器操作) 有人能解释什么Tokeniser究竟怎么办? Parser也做了什么?可能提供一个可以使这个更清晰的例子。 [后端] IR - >优化器(IR) - >代码生成 我不明白在这一步,应该做哪些优化。 我知道有各种前端和后端之间的