llvm-ir

    15热度

    1回答

    我一直在试图建立和执行LLVM模块重整混乱。我的代码生成模块很长,所以我不会在这里发布。相反,我的问题是关于Clang和LLVM如何共同实现名称修改。我将解释我的具体问题来激发这个问题。 这里是我的LLVM模块之一的源代码: #include <iostream> int main() { std::cout << "Hello, world. " << std::endl;

    1热度

    2回答

    为什么模板函数在LLVM-IR中不显示,如果函数未被调用,当从C++代码发出LLVM IR时, 不像其他类型的函数(int,float ...)会出现在llvm中IR 例如:下面的函数func1犯规秀LLVM IR template <class tmp> tmp func1() { // ... } 但这个功能func2始终显示在LLVM IR int func2() {

    4热度

    1回答

    我试图分析由rustc前端发出的LLVM-IR。该计划是针对特定语言元素发布IR。是否有这样的元素和IR代码模板映射或列表的列表? 编译器具有足够的智能以移除发射的IR中的未使用函数,除非使用println!将某些内容印在控制台上,否则编译器将删除所使用的每个函数。 这不起作用,说x没有使用任何地方或当x被覆盖。 let x = function(); Rust中是否存在某种限定符,使发射的I

    1热度

    2回答

    我想知道什么是解析和从C源文件中获取数据结构的最佳解决方案。假设我有: typedef int M_Int; typedef float* P_Float; typedef struct Foo { M_Int a; P_Float p_f; } Foo; 什么是展开为了得到这两个变量a和struct Foo的p_f的元数据结构的最佳方式是什么? 对于非常简单的例子

    2热度

    1回答

    LLVM是否支持带有变量BasicBlock目标的分支指令? 更具体地说,假设我将所有无条件的br指令转换为函数调用f。是否可以提供目标标签作为参数f,然后在f内的无条件分支中使用此标签? 或者是唯一的解决方案使switch在f,将所有的BB's映射到唯一的ID,然后调用f与目标BB对应的ID?

    7热度

    1回答

    我们正在开发mutation testing system based on LLVM。该系统支持使用GoogleTest的C++项目,并且我试图支持Rust。为此,我们需要完成以下步骤: 将语言编译为LLVM IR。 Rust支持这一点。 在LLVM IR中查找测试。 运行测试所执行的代码(“测试者”)。 挑战在于通过LLVM IR API找到单元测试方法。 考虑the following ex

    1热度

    1回答

    我想申请一个算法,水印,基本上重新排序编程语言的同义术语: https://books.google.dk/books?id=mig-bH3u0Z0C&pg=PT595&lpg=PT595&dq=obfuscation+renumbering+register&source=bl&ots=b3vMhp-yTq&sig=RERdnDNewRqBi7ZmSNMlsnPy-Hw&hl=da&sa=X&v

    1热度

    1回答

    我想申请一个算法,采用寄存器R0, R1,...,Rn。 在这种情况下,我想要控制的是这些寄存器被赋值的顺序。 在LLVM IR级可以控制寄存器,还是IR屏蔽掉这些低级细节?

    1热度

    1回答

    我想知道加载/存储是否在LLVM IR中访问字节,半字,字或双字。 这个功能getAlignment()在llvm::LoadInst和llvm:StoreInst类。它的描述表明它返回正在执行的访问的对齐。我不确定这是否给予内存对齐或它访问的字节数?

    1热度

    1回答

    我用铛编译此代码-S -emit-llvm: int sub2(int n) { return n - 2 } ,这是它输出的代码: ; Function Attrs: nounwind define i32 @_Z4sub2i(i32) #0 { %2 = alloca i32, align 4 store i32 %0, i32* %2, align 4