问题标签 [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.
python - llvmlite 中的链接 C
我用 Python 编写了一个编译器,llvmlite
用于生成中间 LLVM IR。词法分析器和解析器已经完成,现在我正在生成代码。编译器将是动态的和弱类型的,所以我需要在运行时做一些事情,比如分配。为此,我已经在 C 中实现了一些函数,现在我想builder.call
从 llvmlite 调用这些函数。
我还没有找到有关如何执行此操作的文档或示例。
这个函数只是一个简单的例子,真实的要大得多。
C:
Python:
我可以使用 llvmlite 构建器直接编写函数,但在 C 中会更快、更干净、更容易。欢迎任何帮助!
python - 中止 llvmlite 代码生成
我正在使用 llvmlite 和 Python 生成 llvm IR 代码。我在一个给定的模块中为许多函数生成代码。问题是,当发生异常时,在为其中一个函数生成代码时,整个模块代码生成被破坏。我想要一种从异常中恢复的方法,方法是在采取其他行动之前对模块说:“嘿,完全忘记那个功能”。例如:
有什么帮助吗?
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
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,而且就我在文档中的查看而言,我什至找不到单个函数地址的基本解决方案。
我知道我的用例很少见,因为这两个库都更关心库而不是特定函数的地址。
llvmlite - 从 IR 生成二进制代码 从 llvmlite 生成
有谁知道是否可以使用 llvmlite 生成来自 IR 的二进制代码?在 llvm 中,我们可以简单地 clang -emit-llvm -o foo.bc -c foo.c。如果我使用 llvmlite 怎么办?
python - 为什么我遇到错误:AttributeError: 'int' object has no attribute 'type'
我将 llvmlite 与 Pyvex 结合用于我的项目。我在 llvmlite 中定义了一些函数,如下所示:
但是,当我想使用以下代码调用此函数时:
我遇到错误: AttributeError: 'int' object has no attribute 'type'
有谁知道我该如何解决这个问题?
python-2.7 - 为什么当我更改 llvmlite 中的优化级别时没有区别?
我正在尝试为我自己的程序使用 llvmlite 的优化通道。我为我的代码定义了以下函数作为传递函数:
我尝试使用以下命令运行它:
有了这个,我确实对我的代码进行了一些优化。但是,当我将优化级别从 3 更改为 2 或 0 时,优化没有区别。如何更改优化级别并查看差异?
assembly - 如何生成用于在 LLVM 中使用非常量值初始化全局变量的代码?
在 LLVM(特别是 llvmlite)中,如何声明一个全局变量并使用任意(运行时)表达式的结果初始化其内容?
我看到我可以创建一个 GlobalVariable 对象,但看起来它的initializer
参数需要一个Constant
. 如果我必须在启动/加载时运行任意代码以确定其值怎么办?那个代码去哪儿了?Builder
我应该向谁添加说明?我是否声明了一个特别命名的函数和/或向它添加魔术属性,以便在运行时将模块加载到内存中时它自动执行?
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”的模块
知道如何解决吗?
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 是否成功?如果是这样,你是怎么做到的?