问题标签 [llvmlite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1362 浏览

python - llvmlite 中的链接 C

我用 Python 编写了一个编译器,llvmlite用于生成中间 LLVM IR。词法分析器和解析器已经完成,现在我正在生成代码。编译器将是动态的和弱类型的,所以我需要在运行时做一些事情,比如分配。为此,我已经在 C 中实现了一些函数,现在我想builder.call从 llvmlite 调用这些函数。

我还没有找到有关如何执行此操作的文档或示例。

这个函数只是一个简单的例子,真实的要大得多。

C:

Python:

我可以使用 llvmlite 构建器直接编写函数,但在 C 中会更快、更干净、更容易。欢迎任何帮助!

0 投票
0 回答
79 浏览

python - 中止 llvmlite 代码生成

我正在使用 llvmlite 和 Python 生成 llvm IR 代码。我在一个给定的模块中为许多函数生成代码。问题是,当发生异常时,在为其中一个函数生成代码时,整个模块代码生成被破坏。我想要一种从异常中恢复的方法,方法是在采取其他行动之前对模块说:“嘿,完全忘记那个功能”。例如:

有什么帮助吗?

0 投票
0 回答
1324 浏览

python - 在centos上安装llvm->llvmlite->llvmpy->numba,安装llvmlite时出错

我注意到 LLVM 3.3 已被弃用并开始安装 llvm 3.8.1->llvmlite->llvmpy->numba

我下载并编译 llvm 3.8.1 源代码(我不确定是否应该下载其他包,如 clang)

和简单的cmake。(这次没找到 REQUIRES_RTTI=1 选项)

然后我将 LLVM_CONFIG 指向 cmake 生成的 llvm-config 并尝试 pip install --user livelite,但是:

/bin/ld: 找不到 -lstdc++ collect2: 错误: ld 返回 1 退出状态 make: *** [libllvmlite.so] 错误 1 ​​3.8.1

可能是因为我没有安装 libedit-dev。

你是否是这个原因造成的?我可以在没有 root 权限的情况下在 centos 上安装 libedit-dev 吗?


以下是过时信息,应忽略不计,仅作为历史记录。

我按照这个指令安装llvm,导入的时候遇到下面的错误。 http://www.llvmpy.org/

谁能告诉我是什么问题。

我下载的是LLVM源码,版本是3.3

顺便说一句:我将 llvm 设置为:“./configure --enable-optimized --prefix=/home/wliax/llvm_liwei”

但是,在“REQUIRES_RTTI=1 make”之后,编译的库位于:

“/home/wliax/llvm/llvm-3.3.src/Release+Asserts/bin/llvm-config”

所以我然后使用:

“LLVM_CONFIG_PATH=/home/wliax/llvm/llvm-3.3.src/Release+Asserts/bin/llvm-config python setup.py install --user”

所以 llvmpy 库位于“/homes/wliax/.local/lib/python2.7/site-packages”

导入llvm Traceback(最近一次调用最后):文件“”,第1行,在文件“/homes/wliax/.local/lib/python2.7/site-packages/llvm/init .py ”中,第7行,来自llvmpy 导入额外文件“/homes/wliax/.local/lib/python2.7/site-packages/llvmpy/extra.py”,第 6 行,在 from llvmpy import _api ImportError: /homes/wliax/.local/lib/ python2.7/site-packages/llvmpy/_api.so:未定义符号:_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE

0 投票
1 回答
157 浏览

python - Ctypes:来自 C 定义的数据类型

我有一个函数的地址以及它的“c-like”表示(来自llvmlite,但这并不重要)。

对于将两个双精度值相加并返回它们的函数,代码如下所示:cfunc = CFUNCTYPE(c_double, c_double, c_double)(func_ptr)

这会很好,但是我的函数的参数可以在类型和数量上有所不同。在 python 中,这可以通过一些for arg in args生成器来解决。

但是我没有工具(或者至少我没有找到)如何将我的类型“转换”或解析为 ctype 的工具。

参数是llvmlite-Type对象,所以我有一个类似 c 的类型表示可用。


我的方法是创建一个 dict,它可以将 llvmlite-Type 对象或 c 表示映射到 ctypes 的 Type 对象。一个小解析器也可以提供帮助。

ctype 不是已经提供了这样的东西吗?一个神奇的功能: ctypes.magic("double") == ctypes.c_double

我不受ctypes的约束。我知道 CFFI 存在,但是我对它的经验为 0,而且就我在文档中的查看而言,我什至找不到单个函数地址的基本解决方案。

我知道我的用例很少见,因为这两个库都更关心库而不是特定函数的地址。

0 投票
2 回答
152 浏览

llvmlite - 从 IR 生成二进制代码 从 llvmlite 生成

有谁知道是否可以使用 llvmlite 生成来自 IR 的二进制代码?在 llvm 中,我们可以简单地 clang -emit-llvm -o foo.bc -c foo.c。如果我使用 llvmlite 怎么办?

0 投票
2 回答
5657 浏览

python - 为什么我遇到错误:AttributeError: 'int' object has no attribute 'type'

我将 llvmlite 与 Pyvex 结合用于我的项目。我在 llvmlite 中定义了一些函数,如下所示:

但是,当我想使用以下代码调用此函数时:

我遇到错误: AttributeError: 'int' object has no attribute 'type'

有谁知道我该如何解决这个问题?

0 投票
1 回答
167 浏览

python-2.7 - 为什么当我更改 llvmlite 中的优化级别时没有区别?

我正在尝试为我自己的程序使用 llvmlite 的优化通道。我为我的代码定义了以下函数作为传递函数:

我尝试使用以下命令运行它:

有了这个,我确实对我的代码进行了一些优化。但是,当我将优化级别从 3 更改为 2 或 0 时,优化没有区别。如何更改优化级别并查看差异?

0 投票
3 回答
1327 浏览

assembly - 如何生成用于在 LLVM 中使用非常量值初始化全局变量的代码?

在 LLVM(特别是 llvmlite)中,如何声明一个全局变量并使用任意(运行时)表达式的结果初始化其内容?

我看到我可以创建一个 GlobalVariable 对象,但看起来它的initializer参数需要一个Constant. 如果我必须在启动/加载时运行任意代码以确定其值怎么办?那个代码去哪儿了?Builder我应该向谁添加说明?我是否声明了一个特别命名的函数和/或向它添加魔术属性,以便在运行时将模块加载到内存中时它自动执行?

0 投票
1 回答
1067 浏览

python - ImportError:没有名为“llvmlite.llvmpy.ee”的模块

我需要在 Centos 7 上运行的集群上使用 Numba。

但是,IT 团队无法安装 llvm 4.0(Centos 7 没有构建器),因此他们安装了 llvm 3.9。

之后,我使用 pip 成功安装了 llvmlite 0.16.0 和 Numba 0.17。

不幸的是,当我启动一个简单的测试程序时,我收到以下错误:ImportError: No module named 'llvmlite.llvmpy.ee'

这是完整的错误:

回溯(最近一次通话最后):

文件“LINCS_Test.py”,第 17 行,在

文件“../KerasImageDataGenerator.py”,第 1 行,在

文件“../KerasBatchTransformation2D.py”,第 1 行,在

文件

“/home/exacloud/lustre1/gray_lab/users/Guillaume/Python/lib/python3.4/site-

包/numba/ init .py”,第 6 行,在

文件

“/home/exacloud/lustre1/gray_lab/users/Guillaume/Python/lib/python3.4/site-

packages/numba/decorators.py”,第 7 行,在

文件

“/home/exacloud/lustre1/gray_lab/users/Guillaume/Python/lib/python3.4/site-

包/numba/targets/registry.py”,第 3 行,在

文件“/home/exacloud/lustre1/gray_lab/users/Guillaume/Python/lib/python3.4/site-packages/numba/targets/cpu.py”,第 6 行,在

ImportError:没有名为“llvmlite.llvmpy.ee”的模块

知道如何解决吗?

0 投票
0 回答
992 浏览

python - 在 Raspberry Pi 3 上安装 librosa

我已经尝试在我的 Raspberry Pi 3 Model B 上安装 librosa。我也提到了关于这个问题的其他链接,包括这个这个,但错误仍然不断出现。

截至目前,我坚持:

libllvmlite.so:无法打开共享对象文件:没有这样的文件或目录

我检查了 llvmlite 的 git 存储库并在

./ffi/libllvmlite.so
./llvmlite/绑定/lbllvmlite.so

因为那是我在提供的链接中收集的内容,但文件甚至不存在。

我曾经重新安装了我的 Raspbian 操作系统,然后再次尝试安装 librosa,但又遇到了另一个错误,比如它需要 LLVM 5.0?

我也尝试使用 conda 安装它,但是当我尝试安装时,我也收到错误

发现以下规范存在冲突:
• librosa
• python 3.6*

您在 Raspberry Pi 3 上安装 librosa 是否成功?如果是这样,你是怎么做到的?