草庐IT

LLVM_Binaries

全部标签

c++ - 如何追踪 LLVM verifyFunction 错误 "Expected no forward declarations!"?

我正在LLVM中为我的一种新语言开发编译器,但在生成调试信息时遇到了问题。我还没有找到很多关于如何使用DIBuilder实际生成调试信息的文档。所以我很可能做错了很多事。我一直在看Kaleidoscope示例,因为它是我发现的唯一一个使用调试信息的示例。我还没有打开Clang来查看他们是如何使用它的,但我很想听听已经使用过的人的意见。我已经能够使用一些更复杂的示例来编译和运行我的语言,但是我从一些基础知识开始重新添加调试支持。这是我要编译的简单脚本:doublemy_main(){return0.0;}这是我从verifyFunction、verifyModule和转储模块的输出。编辑

c++ - llvm 在 C++ 中提取结构元素和结构大小

这里是LLVM新手。我有以下C++程序usingnamespacestd;structA{inti;intj;};intmain(){structAobj;obj.i=10;obj.j=obj.i;return0;}使用clang++,我可以看到LLVMIR包含结构字段,如下所示%struct.A=type{i32,i32}我想使用LLVMPass获取结构元素。我编写了以下程序-遍历全局变量和每个指令操作数,但它们都没有帮助我提取结构A或A.i或A.j。#include"llvm/Pass.h"#include"llvm/IR/Function.h"#include"llvm/Supp

c++ - 苹果 LLVM 5.0 pragma 优化

AppleLLVM5.0编译器中GCC的#pragmaGCCoptimize("O0")或VS的#pragmaoptimize("",off)的等效项是什么?我需要它来禁用一段代码的优化。 最佳答案 从简短的搜索来看,目前clang/llvm似乎不支持这样的pragma。如果您不想关闭整个文件的优化,我建议将您不想优化的内容分解到一个单独的文件中,并单独设置-O0。 关于c++-苹果LLVM5.0pragma优化,我们在StackOverflow上找到一个类似的问题:

c++ - 在 LLVM 中创建文字指针值

我有一些LLVM代码,我想引用现有变量。我将使用JIT并在我的进程中执行此代码,因此我希望该函数直接引用我现在拥有的变量。例如,int64_tbegin,end;auto&&con=g.module->getContext();std::vectortypes={llvm::Type::getInt64PtrTy(con),llvm::Type::getInt64PtrTy(con)};autotramp=llvm::Function::Create(llvm::FunctionType::get(llvm::Type::getVoidTy(con),types,false),llvm

c++ - 如何逐行解析LLVM IR

我特别需要在我的C++代码运行期间逐行解析LLVMIR代码,我需要知道每行的哪些操作数发生了什么操作。例如,如果IR代码是:%0=loadi32*%a,align4我想知道在我的C++代码运行期间,来自%a的值正在加载到%0。我考虑过使用简单的文本解析C++程序来执行此操作(解析IR并搜索IR关键字),但想知道是否有任何现有库(可能来自LLVM本身)可以帮助我避免这样做。 最佳答案 假设理论上,我们可以直接利用LLVM::LLLexer为逐行解析的LLVMIR编写我们自己的解析器。以下答案假设您只对LLVMIR文件的每个函数内部的操

c++ - 当我尝试发出目标代码时,为什么 LLVM 会出现段错误?

我正在尝试按照有关编译器实现的LLVM教程进行操作,但是当我尝试发出目标代码时我的代码出现了段错误。这是一个尝试编译函数func的最小示例。为简单起见,func是一个什么都不做的函数。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeintmain(){llvm::LLVM

c++ - std::variant<>::get() 不能用 Apple LLVM 10.0 编译

我正在使用C++17std::variant类型并尝试编译cppreferenceexamplecode对于get():#include#includeintmain(){std::variantv{12},w;inti=std::get(v);w=std::get(v);w=std::get(v);//sameeffectasthepreviousline//std::get(v);//error:nodoublein[int,float]//std::get(v);//error:validindexvaluesare0and1try{std::get(w);//wcontains

ios - Xcode 5 llvm-g++ 和 llvm-gcc 路径?

我正在使用GoogleTesseractOCR使用Xcode5为iOS7构建一个应用程序:http://lois.di-qual.net/blog/install-and-use-tesseract-on-ios-with-tesseract-ios/它在英语识别方面运行良好,但我无法将任何其他语言添加到项目中。然后我发现其他一些项目通过编译Tesseract库成功地做到了:http://inspirationteam.weebly.com/home/compile-use-tesseract-ocr-lib-301-on-ioshttp://tinsuke.wordpress.com

ios - XCode IOS Apple LLVM 3.1 - Eigen NEON 中断

问题可能涉及使用Apple的LLVM3.1编译器,我确信可以通过禁用NEON来解决。但是我们想使用NEON。我也很肯定这是我在XCode中的设置错误,但它可能与Apple有关。实际上,我只是在寻求一些正确方向的提示。/Eigen/src/Core/util/Macros.h188:Unknowntypename'namespace'188:Expected';'aftertopleveldeclarator/Eigen/Core144:'cerrno'filenotfound/Applications/Xcode.app/Contents/Developer/Toolchains/Xc

objective-c - 使用 LLVM GCC 4.2 不会让我将 CFStringRef _bridge 成 NSString

我需要在我的iPad应用程序中绘制一些图表,所以我遵循了本教程:http://recycled-parts.blogspot.com/2011/07/setting-up-coreplot-in-xcode-4.html其中我不得不将我的C/C++/Objective-C编译器更改为LLVMGCC4.2。(最初是AppleLLVMCompiler3.0)。现在,我无法将CFStringRef_bridge转换为NSString。我收到以下错误:'_bridge'undeclared(firstuseinafunction)谁能帮我解决这个问题??谢谢。 最佳