llvm-ir

    0热度

    1回答

    的功能,我想在LLVM IR创建一个空的功能 void foo(){ } 我用 LLVMContext Context; std::unique_ptr<Module> Owner(new Module("test", Context)); Module *M = Owner.get(); Function *foo = cast<Function>(M->getOrInsertF

    0热度

    2回答

    在LLVM C Api中,指令由LLVMValueRef传递。如何确定LLVMValueRef的指令类型(添加,存储,篱笆,什么),如果它是一个指令呢?

    5热度

    2回答

    我正在学习LLVM。我知道thre是一些有用的C函数,它们在LLVM中已经作为内在函数提供。所以我试图从我的代码中调用@printf函数。 我发现在LLVM参考手册各部分描述的IR代码要做到这一点,这是相对明确的: declare i32 @printf(i8* noalias nocapture, ...) call i32 (i8*, ...)* @printf(i8* %msg, i32

    0热度

    1回答

    好吧,也许有人可以帮助我。 我写一个小LLVM IR testprogram: ; ModuleID = 'main' target datalayout = "e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-cygwin" define i32 @my_main() { entry: %0 =

    0热度

    1回答

    我有这样的问题。我写了自己的IR代码生成器。它将IR保存到一个字符串中。现在我想用JVM编译这个IR代码。但是我发现的所有函数和API只是将llvm :: Function作为参数。但是,如何编译保存在字符串中的IR代码?

    1热度

    1回答

    我在玩LLVM,并已开始使用简单的Hello World。下面是我试图运行代码: test.s: ; Declare the string constant as a global constant. @.str = private unnamed_addr constant [13 x i8] c"Hello world!\00" ; External declaration of

    0热度

    1回答

    我注意到,llvm红外试图分配空间在一个函数的开头,无论在C源代码中的函数内部声明变量的位置。我想知道如何订购这些alloca指令。我的猜测是第一个函数参数,然后是局部变量。我有什么具体的规定可以参考吗?

    7热度

    1回答

    LLVM项目不区分有符号整数和无符号整数,如here所述。在某些情况下,您需要知道某个特定变量是否应该被解释为已签名或未签名,例如,当它扩展了大小或在分区中使用时。我对此的解决方案是为每个描述它是整数还是基数类型的变量保留一个单独的类型信息。 不过,我想知道,是不是有办法在LLVM中“归类”一种类型?我正在寻找某种可以添加到某种类型的“用户数据”,但似乎什么也没有。这种情况在创建类型时不得不以某种

    0热度

    0回答

    我有程序HelloWorld.c #include <stdio.h> int main() { printf("hello world\n"); return 0; } 它是使用命令编译为位码helloWorld.bc: clang -emit-llvm HelloWorld.c -c -o HelloWorld.bc 为了要打印对应于HelloWorld.bc的LLVM IR

    0热度

    1回答

    我想编译一个函数(“fun”)到LLVM IR并使用ParseIR函数创建一个模块。该程序在ParseIR调用中发生段错误。我使用的是LLVM 3.5,代码如下。 #include <cstdio> #include <iostream> #include <sstream> #include <string> #include "llvm/ADT/StringRef.h" #incl