问题标签 [llvm-ir]
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.
haskell - 用于解析 LLVM IR 的 Haskell 包?
我正在寻找一种将 LLVM IR 代码(最好是汇编形式)解析为一些内部 Haskell 数据类型的方法,以便以后处理。我想有一些 Haskell 包可以做到这一点,但我似乎找不到。
有什么建议么?
llvm - 源代码的变化
我有两个问题
我对 LLVM-2.9 源代码的 C 后端做了一些更改。现在我想要的是如何在构建文件夹中反映这些更改?
做什么
/li>make update
?当我运行此命令时,这就是我的终端中发生的情况。
llvm - LLVM 在指令前插入操作码
我想在 BasicBlock 终止符之前插入特定的操作码,在我的情况下,在 ReturnInst 之前。
有可能的?
例子:
c - LLVM IR 限制
我希望从 C 代码生成 LLVM-IR 代码,并且想知道以下函数的 IR 生成情况如何:
stdio.h、string.h、stdlib.h 以及通常基于标准内存的函数,例如 malloc、calloc,因为我无法在以下位置找到大多数常用函数:
http://llvm.org/docs/LangRef.html并且想知道这种表示的局限性以及是否可能需要我添加自己的内在函数来处理标准/最流行的 c 函数。
我希望在运行时更改代码,所以想知道哪种方法会给我最大的灵活性,例如:改为在 AST 级别操作代码。
谢谢
linker - LLVM 将 pthread 函数调用插入 IR
我正在编写一个 LLVM 通行证(它是 a LoopPass
),它需要将 pthread 函数调用(如 pthread_create() 和 pthread_join() )插入到 IR 中。我知道如何在 IR 中创建和插入函数调用,但我无法Function*
在 LLVM 中获取 pthread 表示。
这是我所拥有的:
Function *pthread_create_func = currentModule->getFunction("pthread_create");
但它返回NULL。
作为比较Function *printf_func = currentModule->getFunction("printf");
将返回正确的Function*
,允许我将一个新的函数调用 printf 插入到 IR 中。
我#include "pthread.h"
在我的通行证和-pthread
之后,clang -emit-llvm
但它仍然无法以某种方式找到pthread_create
或其他pthread_*
功能。
llvm - LLVM:指令不支配所有用途
我用最少的指令(通常是 3-5)分割所有基本块:
并尝试从 IR 获取目标文件
我收到以下错误:
和
和
红外:
我认为拆分后,指令位于不同的基本块中。如果我将块分成 10-15 条指令,一切都很好。如何预测/检查并避免此错误?
llvm - LLVM:使用 llvm 为专门的 z80 处理器生成“ir”文件
我正在研究 LLVM,并希望根据特定的目标架构 eg-z80 生成文件。我已经下载了z80源代码和clang。我在 clang 命令中使用了 --target 来指定 z80,但它不起作用。有人可以帮我解决这个问题吗?提前致谢。
c - 如何在 LLVM 中获取函数指针
我需要在我的 中插入IR
调用 pthread_create 的指令LoopPass
,因此我需要将实际函数作为pthread_create
应该在新线程上调用的参数传递。
目前我已将要在新线程上运行的函数定义为
我得到了pthread_create
以下指针:
我需要传递一个数组Type*
作为参数,pthread_create
如下所示。
参数为:
那么我怎样才能得到这个worker_func
函数的指针来传递pthread_create
呢?
metadata - 如何从 llvm.dbg.declare 获取 IR 值
给定 a llvm.dbg.declare
,我怎样才能得到它的 llvm 值?
例如
我想得到 Value i32** %r
,而不是 metadata !{i32** %r}
。
请给我代码!
谢谢!
pointers - llvm中有符号执行工具吗?
我想在 llvm IR 中做点分析。我希望它是路径敏感的,这意味着当我打印出结果时,我需要附加“May”指向的条件。
我计划使用符号执行来实现这个目标。
llvm中是否有任何工具,或独立工具来解决符号方程。
谢谢!