llvm-clang

    1热度

    1回答

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

    1热度

    1回答

    在框架中,我们使用Swift和ObjC,以便Swift实例在ObjC方法中实例化。为了做到这一点,我们必须将这些swift文件公开/公开,以便它们出现在SWIFT_INSTALL_OBJC_HEADER(OurModule-Swift.h)中,然后由ObjC导入。 问题是,我们想从框架的公共接口隐藏这些Swift类。苹果说: 对于框架的目标,只能用public或open修改声明出现在生成的头。只要

    2热度

    1回答

    给定一个C++源代码,我想找到每个函数写入和读取的类字段。使用Clang前端进行此操作的最佳方式是什么? (我不是要求的所有步骤的详细说明,但对于有效的解决方案的起点将是巨大的。) 到目前为止,我试图解析使用RecursiveASTVisitor语句,但保持跟踪节点连接很困难。另外,我无法弄清楚如何保持跟踪的东西象下面这样: int& x = m_int_field; x++; 这清楚地修改

    1热度

    1回答

    我正在尝试创建分析密码。我的代码如下所示。我使用Adrian Sampson的方法来构建.so文件(https://www.cs.cornell.edu/~asampson/blog/llvm.html)。 #include "llvm/Pass.h" #include "llvm/IR/Function.h" #include "llvm/Support/raw_os

    2热度

    1回答

    我正在学习编写LLVM传递,试图重现hello world示例。通hello.cpp看起来像: #include "llvm/Pass.h" #include "llvm/IR/Function.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; namespace { struct Hello : p

    5热度

    4回答

    的official LLVM 4.0 build for Windows与Visual Studio集成了多达到Visual Studio 2015年。不幸的是仍然不支持的Visual Studio 2017 当您尝试设置项目的平台工具集到LLVM-vs2014,它弹出一个错误。 你知道任何方式使它工作吗?

    3热度

    1回答

    我想写一个LLVM传递,它将提取函数调用的参数。如果争论是一个常数,我的目标是恢复常数。 红外看起来像 %2 = call noalias i8* @malloc(i64 512) #3 LLVM的传球看起来像 bool runOnFunction(Function &F) override { for (auto& B : F) { for (auto& I : B)

    0热度

    1回答

    我需要在llvm传递期间提取目录和文件名。 当前版本的llvm将getFilename和getDirectory从DebugLoc移动到DebugInfoMetadata。我无法直接在DebugLoc头文件中找到类成员getFilename。因此,我该如何从指令转到源代码文件名和目录。 http://llvm.org/docs/doxygen/html/classllvm_1_1DebugLoc.

    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(); 例如,对于给定的层

    0热度

    1回答

    我想在Fedora 25上从源代码编译LLVM,Clang,OpenMP(来自LLVM项目)和libC++(libcxx)。默认GCC 6.3正在用于构建它们。我发出 cmake ../llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" 一切似乎顺利,直到我得到 -- Performing Test LIBOMPTARGE