llvm-ir 相关问题

LLVM中间表示

解释数组在 LLVM IR 中的对齐方式

我有以下.c文件: #包括 诠释主要(){ int a[2][3] = { 0 }; int i = 1, j = 2; 整数 c = 10,d = 20; d = c + a[i][j]; printf("%d ", d); 退...

回答 0 投票 0

使用 OCaml LLVM API 添加 AtomicCmpXchg 指令

我正在尝试在我为我的编程语言编写的 LLVM 后端中实现互斥锁。我无法确定确切的 API 调用,使用 OCaml llvm 绑定来生成 cmpxchg

回答 0 投票 0

生成 LLVM 代码以链接特定于操作系统的实现(pthread)

我正在构建一种带有 LLVM 后端的编程语言,并开发对多线程的支持。 为了弄清楚如何在 LLVM 中进行适当的函数调用,我正在编译以下 s...

回答 0 投票 0

运行LNT runtest时遇到错误

我打算使用lnt来运行测试。我在我的 Intel MacBook 上遵循了快速入门。但是,当我进入 lnt runtest 测试套件\ --沙盒/tmp/BAR \ --cc ~/llvm.obj.64/Rel...

回答 0 投票 0

LLVM |如何实现逻辑非运算的IR代码生成

假设我有这样一个函数: // 全局变量 llvm::LLVMContext* 上下文; llvm::模块*模块; llvm::IRBuilder<>* 构建器; 值* logical_not_codegen(值*操作数){ 返回

回答 1 投票 0

我的 llvm ir 代码中包含的语法错误是什么

在这里输入图片描述 编:../../click-llvm-ir/ele_ll/tcpudp/tcpipsend.ll:766:62:错误:预期'(' 声明 void @_ZNK7Element11declarationEv(%class.String* sret, %class.Element*) 未命名...

回答 0 投票 0

使用 GCC i32 编译的 LLVM 被截断为 i8

编译这个简单的代码应该返回 2000 但它返回 208 因为它被截断为 i8。 定义 i32 @"main"() { 入口: %"x" = alloca i32 存储 i32 2000, i32* %"x&

回答 1 投票 0

LLVM API,用于将 IR 组装和链接到可执行文件

我正在按照典型的万花筒指南使用 LLVM 15.0.7 在 C++ 中构建一种玩具语言。但是,我的语言不使用 JIT,而是编译的。我想要的是能够...

回答 0 投票 0

在llvm结构之间投

在我的开发中,一个函数返回一个{i8*, i64}类型的结构,而在调用现场,我需要将返回值分配给一个{some_struct*, i64}类型的结构。一种方法是调用 ...

回答 1 投票 0

使用irtranslator pass的opt会崩溃

当我用irtranslator通证运行opt时,我一直收到segfaults。下面是我一直在运行的一个变体: opt -debug -mcpu=x86-64 -S sample.bc --irtranslator 其他一些注意事项: sample.bc ...

回答 1 投票 0

LLVM从bool(i1)的向量到i8、i16等的位面cast是否定义清楚?

在LLVM中,一个类型为<8 x i1>的值能否被比特化为i8?如果可以,预期的位序是什么?LLVM文档中关于bitcast的内容并没有明确说明。它提出的要求是,bitcast ...

回答 1 投票 1

如何制作一个新的LLVM指令?

我想把指令%a = i32 add %b, %c变成%a = i32 mul %b, %c,我找了好几个小时,但到目前为止,我发现的答案都是与创建 ...

回答 1 投票 0

LLVM IR全局变量和函数声明是否必须使用 "external "和 "extern_weak "链接类型?

在LLVM IR链接类型中,说所有全局变量和函数都有以下一种链接类型:一开始,然后列举了几种链接类型,如private、internal、common、appending......。

回答 1 投票 0

llvm BasicBlock里面的变量对其他人可见吗?

假设我们有一个名为hello.world的函数,其中包含两个BasicBlock bb.1和bb.2,例如: i32 @hello.world(i32 %x) bb.1: %a = i32 %x bb.2: %b = i32 %a ret i32 %b 是变量 %a ....

回答 1 投票 0

将整数转换为浮点数的LLVM通道。

我正在编写一个LLVM通证,需要将一个整数类型转换为各种浮点类型。我试图使用UIToFp指令将整数值转换为浮点值。...

回答 1 投票 0

如何使用IRBuilder更新LLVM IR中的全局变量值?

我想在LLVM IR中更新全局变量的值,我在ModulePass中创建了新的全局变量: bool runOnModule(llvm::Module &M) { IRBuilder&ltlt}。我在ModulePass中创建了新的全局变量: bool runOnModule(llvm::Module &M) { IRBuilder<> Builder(M.getContext()); ...

回答 1 投票 3

LLVM opt 工具不对 clang -O0 生成的 IR 进行矢量化。

我试图基于从opt工具中借用的优化管道来构建JIT编译器。但是我遇到了一个问题,我的JIT没有将代码矢量化。我试着用 opt on 重现它 ...

回答 1 投票 0

LLVM通证不执行单静态赋值。

我使用的是预制的LLVM 6.0,当我执行llvm pass -mem2reg来生成SSA时,IR代码保持原样,没有被改变。但是当我使用预制的LLVM 3.8做同样的事情时,llvm ...

回答 1 投票 0

将LLVM传递给特定的基本块

是否可以将LLVM转换过程应用于特定的基本块,而不是整个IR?我知道如何对整个IR应用通行证:$ opt –S –instcombine test.ll –o out.ll但是...

回答 1 投票 0

鉴于LLVM IR,我们可以生成Clang AST吗?

这个问题纯粹是从研究的角度来看,现在我没有考虑它的任何实际方面。就像我们的反编译器可以接收二进制代码并生成LLVM IR一样,...

回答 1 投票 0

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