llvm 相关问题

LLVM项目是模块化和可重用的编译器和工具链技术的集合。 llvm标记主要用于编写C ++代码(或通过C绑定的另一种语言)与LLVM库接口,而不是任何(不断增加的)具有LLVM的工具。

如何获取 LLVM IR 指令的文本表示?

如果 I 是 llvm::Instruction 类型,我们可以通过 errs() 以人类可读的形式(文本表示)打印出相同的内容 << I; I want the assign the exact same representation to a std::string ...

回答 3 投票 0

使用 C-API 转储带有值名称的 LLVMModule

我目前正在使用 Rust 和 LLVM 编写自己的编译器,因此使用 LLVM-C-API。 出于调试目的,LLVM-C-API 提供了一个名为 LLVMDumpModule() 的函数。 可悲的是,这似乎

回答 1 投票 0

为什么LLVM不对整数值进行范围分析?

我正在查看 Rust 编译器的输出程序集,发现它并没有像我预期的那样删除一些边界检查。经过额外的实验,我发现...

回答 1 投票 0

如何通过LLVM使用系统调用?

为了学习,我想使用LLVM实现一个类似C的编译器。该编译器可以获取输入、处理并输出结果。 我知道如何使用 AST 生成 LLVM IR 进行处理。但我遇到了一个问题

回答 1 投票 0

如何读取llvm-cov json格式?

我可以通过 llvm-cov 以 json 格式导出代码覆盖率数据,但内容对我来说似乎很神秘。段部分中的每个数字的含义是什么? { "文件名":"文件.m", “段”:[ ...

回答 3 投票 0

无法在 Windows 11 上安装正确的 Clang 版本

我目前在我的 Windows 11 计算机上安装了 neovim,但是我想运行 C++ 代码。我有一个简单的文件,其中包含经典的打印 Hello World,但是,当我使用 clang+ 时遇到问题...

回答 1 投票 0

运行编译的 LLVM IR 时出现分段错误

编辑: 我通过使用 ld -o output main.o -L /lib/gcc/x86_64-linux-gnu /lib/x86_64-linux-gnu/crti.o /lib/x86_64-linux-gnu/crtn.o / 让它工作lib/x86_64-linux-gnu/crt1.o -动态链接器 /lib64/ld-lin...

回答 1 投票 0

令人困惑的 clang 斐波那契拆解

我无法理解这是怎么回事: int fib_iter(int num) { 整数a=1; 整数 b = 1; 整数c=0; 对于 (int i = 0; i < num; i++) { c = a; b += a; a = c; }

回答 1 投票 0

LLVM JIT 加速选择?

这有点主观,但我在加快 LLVM JIT 速度方面遇到了困难。即使打开了惰性编译,编译大量代码所花费的时间也是解释它们的 50 倍......

回答 2 投票 0

在循环执行前插入语句

在 LLVM 中间表示中,如何为循环插入一条指令,该指令将在该循环执行之前恰好执行一次?将指令插入到预标头中...

回答 1 投票 0

clang 和 llvm opt 中可用的优化列表

可以使用 gcc --help=optimizers 获取 GCC/G++ 中可用的优化器列表。合法值和参数范围也在 params.def 中定义。 有这样的命令和参数吗...

回答 2 投票 0

在 if-else 分支的两个块内移动块的优化是否正确?

警告(伪代码) 假设我们有一个内核: def 内核(数组): a = get_global_id(0) 如果 a > 1: 数组[0] = 10 屏障(LOCAL_MEM_FENCE) 是不是代码优化的时候出错了...

回答 1 投票 0

为什么我无法在合并排序程序中使用 OpenMP 任务?

我已经实现了并行合并排序,但是当我去编译它时,我收到此错误:'task':需要'-openmp:llvm'命令行选项 我尝试在命令行选项中添加标志(

回答 2 投票 0

如何在llvm中创建命名局部变量?

在这样的结构中: 结构点{ 整数x0; 整数 y0; }; 当我使用 C++ API 创建 llvm::StructType 时,如何将名称 x0 和 y0 传递给 llvm?

回答 1 投票 0

如何在没有else选项的情况下添加条件分支指令?

我正在尝试让我的 IR 如下所示。在LLVM中可以实现这一点吗? 入口: %2 = 调用 i32 @func() %3 = icmp ne i32 %2, 0, !dbg br i1 %3,标签 %if.then.block 调用 void @abc() ...

回答 2 投票 0

使用 LLVM 15 中的 llvm::PassInfoMixin 声明要在 FunctionPass 中使用的函数以及 New Pass Manager

我目前正在使用 LLVM 15.0.0,并在使用 New Pass Manager 和 llvm::PassInfoMixin 时面临挑战。我的目标是在 FunctionPass 中插入对特定函数的调用,但是......

回答 1 投票 0

迭代模块中的所有结构

我正在编写一个 ModulePass,我需要分析给定模块中定义的每个结构。 我知道带有名称的已识别结构已插入 ValueSymbolTable 中,但我如何迭代...

回答 5 投票 0

我可以指望我的编译器优化 const char * 上的 strlen 吗?

在我的 SAX xml 解析回调(XCode 4,LLVM)中,我做了很多调用 这种类型的代码: 静态 const char* kFoo = "酒吧"; 无效 SaxCallBack(char* sax_string,.....) { if ( strcmp(sax_st...

回答 3 投票 0

如何使用 ubsan 来处理 llvm .bc 文件

假设我有一个名为 put.bc 的文件。它没有字符串“asan_report”和“ubsan_handles”。 如果我使用命令 clang -fsanitize=address -emit-llvm -o put-asan.bc -c put.bc

回答 1 投票 0

错误 LNK2019:使用 vcpkg 中的 llvm 时无法解析的外部符号 __std_max_element_1

我刚刚使用 vcpkg 安装了 llvm 17.0.2#1,构建进展顺利,但现在当我尝试使用它时,出现以下链接器错误: LLVMCore.lib(DataLayout.cpp.obj):错误 LNK2019:无法解析的外部符号

回答 1 投票 0

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