llvm-ir

    1热度

    1回答

    我需要在我的LLVM传递中识别虚拟函数调用站点,并识别可能在运行时调用的候选函数。 class B { virtual void F() { // do something } }; class D : public B { void F() { // do something else } }; B* d = new D(); d->F(); 例如,对于给定的层

    1热度

    1回答

    我想在pass中使用llvm.returnaddress.i8来获取函数的返回值。 我执行../llvm/bin/lli test_re.bc后,我得到 LLVM ERROR: Program used external function 'llvm.returnaddress.i8' which could not be resolved! 我不知道如何解决它。有什么建议吗?谢谢!

    2热度

    1回答

    我正在写一些LLVM代码来寻找间接调用。现在我已经创建了C代码触发LLVM :: loadinstructions,LLVM :: bitcast指令等 不过,我不能写触发此任何间接的C代码: if(CallInst *CI = dyn_cast<CallInst>(&*S)) { if(!CI->getCalledFunction()) { if(StoreInst *SI

    0热度

    1回答

    我在llvm中执行优化,要求在优化之前运行InstNamer传递。目前,我正在通过手动传递“-instnamer”来运行它。有没有一种方法可以将InstNamer添加为代码中的必需传球? 我试过 AU.addRequired(); 但是,它不会编译,因为它会抛出“未声明的标识符'InstNamer'”。 有没有一种方法可以做到这一点?

    3热度

    2回答

    如果我有这样的例子: int a=0, b=0; a和b是局部变量,进行任何修改它们的值,如: a++; b++; 我需要在运行MCJIT期间获取此行代码中的值。 我的意思是价值不是Value类,但实际的整数或任何类型的值。

    1热度

    1回答

    如果I是llvm::Instruction型的,我们可以通过errs() << I; 打印出人类可读的形式(文本表示)相同的我想要的分配完全相同的表述到std::string到C类型的字符串。我怎样才能做到这一点?

    0热度

    1回答

    我试图按照http://releases.llvm.org/2.6/docs/tutorial/JITTutorial1.html中的说明做出我自己的功能并生成llvm IR。但是,执行 C++ -g tut1.cpp llvm-config --cxxflags --ldflags --libs core -o tut1,我停止了: “llvm/Module.h”:没有这样的文件或目录。 有谁知

    0热度

    1回答

    我用我的pass生成了一个IR,在这个IR的函数内部,我想跳回到调用者函数的basicblock,在调用者函数内部调用ext_callee函数这个: %4 = call i1 @ext_callee(i32 32, i32 %3, i32 -4, i8* blockaddress(@tobecalled, %5), i8* blockaddress(@tobecalled, %7)). 最后两

    1热度

    1回答

    我正在为大学项目构建编译器而我正在使用llvm。 我已经产生了这种IR的最小程序: ; ModuleID = 'Main' source_filename = "Main.java" %A = type { i16 } %Main = type { i16 } @progvtable = constant [1 x <{ i16, i8*, i8* }>] [<{ i16, i8*,

    1热度

    1回答

    我正在实施一个安全相关的传递,因此,我将注入一个自定义基本块作为LLVM IR函数传递的一部分。 有没有办法,标记这个基本块,以便以后通过不优化这个基本块?