llvm-ir 相关问题

LLVM中间表示

llvm-ir指令中`ret void`遇到分段错误

我目前正在制作一个输出裸 LLVM-IR 指令并实现可变参数函数调用的编译器。我定义了一个 println 函数,它接受(格式)字符串和变量数量...

回答 1 投票 0

llvm 中没有生成基本块终止符

我对 llvm 很陌生,只在这里完成了在线教程:http://llvm.org/docs/tutorial/LangImpl1.html 现在我想做自己的小语言,但遇到了一些问题。 我想解析一下这个: ...

回答 2 投票 0

我的编译器的自定义 LLVM-IR 出现问题

我目前正在研究生成 LLVM-IR 的编程语言编译器。我没有使用任何库进行发射,所以我只是将指令写入文件。问题是可变变量...

回答 1 投票 0

如何将 opencl-kernel-file(.cl) 编译为 LLVM IR

这个问题与LLVM/clang有关。我已经知道如何使用 OpenCL API(clBuildProgram() 和 clGetProgramBuildInfo())编译 opencl-kernel-file.cl。 我的问题是: 如何编译opencl-

回答 3 投票 0

将对象文件添加到 JIT 并从 IR 代码调用它

我创建了 HowToUseJIT.cpp 的修改版本(llvm 版本 11.x),它使用 IRBuilder 类构建一个调用共享对象文件中定义的外部函数。 这个例子运行良好(o...

回答 2 投票 0

`ConstantInt::getTrue (LLVMContext &Context)` 和 `ConstantInt::getTrue (Type *Ty)` 有什么区别?

我在llvm::ConstantInt文档中发现了2个API: 静态 ConstantInt *ConstantInt::getTrue (LLVMContext &Context): https://llvm.org/doxygen/classllvm_1_1ConstantInt.html#

回答 1 投票 0

如何将 Rust 编译为 LLVM 位代码(包括依赖项)?

我正在使用 SAW 验证一些 Rust 代码。 SAW 要求您编译为 LLVM 位代码,然后可以导入并验证。我知道您可以使用 --emit=llvm-bc 标志生成位码...

回答 2 投票 0

在 mem2reg 优化之前,phi 节点是否存在于 LLVM IR 中?

在LLVM IR中,phi节点是SSA(静态单赋值)形式的关键组成部分,用于表示程序中的控制流。据我所知,LLVM 中的 mem2reg 优化过程用于

回答 1 投票 0

LLVM内存依赖分析中“clobbers”是什么意思

我是 LLVM 的新手,目前正在从事涉及内存依赖分析的工作。阅读文档后,我发现术语“clobber”使用得相当频繁。现在,我确实明白什么是被破坏了

回答 1 投票 0

LLVM mem2reg 传递如何工作

mem2reg 是 llvm 中重要的优化过程。我想了解这种优化是如何工作的,但没有找到好的文章、书籍、教程等。 我找到了这两个链接: 破损或

回答 1 投票 0

如何在 clang llvm LTO 创建的目标文件中重新定义符号?似乎是“LLVM IR bitcode”文件

有一个旧项目需要在构建过程中重新定义符号。我想启用-flto,但现在似乎无法重新定义符号。 echo "int foo(){return 0;}" > foo.c 叮当...

回答 1 投票 0

编译器如何引用未装箱的类型?

我目前正在用 python 构建我的第一个编译器。我已经完成了词法分析器、解析器和分析器。我打算使用 llvmlite 库来发出 ir。我遇到麻烦了

回答 1 投票 0

在LLVM中创建raw_ostream对象

创建 raw_ostream 对象并将其用于打印的正确方法是什么?我阅读了各种文章,我能找到的唯一示例是(如何将 llvm::outs() 重定向到文件?) raw_ostream *输出...

回答 1 投票 0

LLVM - 如何将 AST 转换为 IR

我知道解析器生成的 AST 用于在前端生成 IR。 我想知道如何解析 AST,然后将其转换为 IR(问题汇编或位码), AST 是一棵树,什么...

回答 2 投票 0

如何从llvm IR中的加载指令获取操作数名称?

我试图从指令 '%6 = load i32* %2,align 4,!dbg !135' 获取 %2,但函数 getOperand(0)->getName() 返回空字符串。怎么解决这个问题?

回答 1 投票 0

引入新的内在函数后,LLVM DAG 模式指令选择失败

我目前正在使用自定义加载指令扩展 RISC-V 内核。对于这个问题,细节并不重要。它的功能行为类似于正常的加载指令,并且应该使用相同的

回答 1 投票 0

如何使用OpBuilder创建mlir常数向量

MLIR 允许创建常数向量,例如 %1 = arith.constantense<[1.1 2.2 3.3]> : 向量<3xf32> 但是如何使用 OpBuilder 创建这个 mlir 操作呢? 我尝试使用类似 t...

回答 2 投票 0

如何将自定义 llvm pass 添加到 rustc 中

我正在尝试将我的 llvm 通证添加到 Rustc 中。 Rustc 有一个编译选项 -C Passs=val,我们可以在其中添加额外的 LLVM 传递来运行。然而,根据我的尝试,此选项只能在

回答 1 投票 0

哪些 LLVM 指令可以退出函数?

我的目标是确定 LLVM 函数的所有可能的退出点。我知道终止符指令结束基本块,要么退出函数,要么分支到相同的另一部分

回答 1 投票 0

如何在启用不透明指针的情况下在 LLVM 17 中获取指针级别?

根据 llvm 不透明指针文档,自 LLVM 17 起仅支持不透明指针,这意味着不再可能通过

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.