草庐IT

llvm-project

全部标签

c++ - 如何获取LLVM全局变量常量值?

我正在尝试从全局变量中获取浮点值并将其设置为指令的操作数。这是我想做的:@a=privateconstantfloat0x3FB99999A0000000...%1=loadfloat,float*@a--->removed%3=fmulfast%1,%2--->%3=fmulfastfloat0x3FB99999A0000000,%2下面是我到目前为止尝试过的:for(autogv_iter=llvm_module.global_begin();gv_iter!=llvm_module.global_end();gv_iter++){llvm::GlobalVariable*gv=&

c++ - llvm 属性::NoUnwind

我在里面跑http://llvm.org/demo以下片段:classX{public:~X()__attribute((nothrow));};voida(X*p);voidnothr()throw();voidb(){try{Xx;a(&x);}catch(X*foo){nothr();}}我看到一些调用(例如,对func_llvm_eh_typeid_for)设置了Attribute::NoUnwind:CallInst*int32_71=CallInst::Create(func_llvm_eh_typeid_for,const_ptr_43,"",label_49);int3

c++ - LLVM异常处理错误

我正在尝试使用CLANG++作为前端和后端作为LLVM来编译C++代码。版本是3.0。似乎异常处理有问题。每当代码抛出异常时,程序都会终止并显示“抛出异常后终止”的消息。这是我尝试使用CLANG++的示例代码之一。structA{};structB:virtualA{};structC:virtualA{};structD:virtualA{};structE:privateB,publicC,privateD{};extern"C"voidabort();voidfne(E*e){throwe;}voidcheck(E*e){intcaught;caught=0;try{fne(e)

vscode中 rust-analyzer插件报错 failed to find any projects in [AbsPathBuf 或者FetchWorkspaceError的解决办法

背景一般来说,如果vscode打开的是rust项目的根目录(即目录下有Cargo.toml和src/文件),rust-analyzer插件可以识别到项目。而如果rust项目只是vscode资源管理器打开的子目录,则有时会出现failedtofindanyprojectsin[AbsPathBufxxx或者FetchWorkspaceError的报错,rust-analyzer也无法正常运行,如下图所示:解决办法vscode侧边栏打开rust-analyzer插件,进入扩展设置也可以ctrl+shift+P进入“首选项:工作区设置”,在上面的输入栏里输入@ext:rust-lang.rust-a

Qt Installation and Setup in Linux with OpenCV||Embedded Object Detection Project (Part 2)

QtInstallationandSetupinLinuxwithOpenCV||QtwithOpenCV-EmbeddedObjectDetectionProjectusingHikvisionIndustrialCamera(Part2)ReadmeHi!ThisismysecondpostonQtdevelopmentabouthowtosetupQtwithopencvinLinuxSystem,comparedwiththelastblogtalkingaboutWindowsenvironment.Thanksforursupportanddon’tforgettoclickthe

c++ - GNU 使 : how to handle sub-projects

ProjFolder\Subfoldersources.cppmakefilemakefileSubfolder应该是一个单独的外部存储库,在checkout项目时拉入。当我将makeall调用到顶级makefile时,将执行以下配方:all:$(NAME).elf$(NAME).s19$(NAME).hex$(NAME).elf:$(OBJECTS)$(LDSCRIPT)Subfolder/lib.amake-CCppAudioPeriphsall@echo"...linking"$(CC)$(OBJECTS)Subfolder/lib.a$(LDFLAGS)$(LIBS)-o$@如

c++ - 如何处理 LLVM metadata.h 的变化

在LLVM3.6版中,他们对元数据类进行了大量更改,并将元数据与值分开。所以我以前基于3.5版本的代码不再起作用了。我在升级代码时遇到困难。谁能帮忙。例如:以前的代码:MDNode*record;Value*undVal=record->getOperand(1);Type*type_hint=undVal->getType();有谁知道如何升级此代码以使其与3.6兼容?我试过这个:MDNode*record;constMDOperand&undVal=record->getOperand(1);Type*type_hint=undVal->getType();但它不起作用。结果编译错

c++ - LLVM IR 中的一切都是指针吗?

我遍历程序的全局变量并对它们的类​​型感兴趣。对于测试,例如:#includeinti=0;intmain(){printf("lala%d\n",i);return0;}我得到的输出是:Globals:iType:14//14==>POINTERTYPEID!StackLock:Stack1FunctionArgument:i32*@i我的代码:for(Module::global_iteratorI=M.global_begin(),E=M.global_end();I!=E;++I){std::coutgetName().str()getType()->getTypeID()ge

c++ - 带 Eclipse 的实时时钟 : is it desirable for code to be stored in a fully configured Eclipse project?

最近我的项目组从一个不使用Eclipse的承包商那里购买了一个C/C++代码库。基本上是一个大的/src树,为使用Autotools构建而组织,一些顶级构建脚本掩盖了Autotools的一些复杂性。我们项目团队的开发人员已经设法在Eclipse(Luna)中将代码设置为一个Autotools项目……但目前令人遗憾的是,当我们开始使用此代码时,项目CM也在移动从ClearCase/ClearQuest到Jazz/RTC5(正式过程,非敏捷)。我们都不清楚代码是否应该以完全配置的Eclipse项目的形式进入RTC存储库,以供开发人员使用。我作为开发人员的理解是它必须:如果不是,当我将代码下