zy445566/myBlog

llvm `TheTargetMachine->addPassesToEmitFile` params

Closed this issue · 2 comments

20180825llvm/20180825jsvm_c/jsvm.h#L375

if (TheTargetMachine->addPassesToEmitFile(pass, dest, FileType))

addPassesToEmitFile签名

virtual bool | addPassesToEmitFile (PassManagerBase &, raw_pwrite_stream &, raw_pwrite_stream *, CodeGenFileType, bool=true, MachineModuleInfo *MMI=nullptr)

我使用的是 llvm 7.0.0_1, 编译时报错,改成

if (TheTargetMachine->addPassesToEmitFile(pass, dest, nullptr, FileType))

就可以正常编译了,对C++不太熟悉,麻烦检查下源代码中是否有问题,这么改有没有问题。

这和C++关系不大。
主要由于llvm版本修改功能导致方法参数变更,我会增加7.0.0.1的注释。
我这边使用的是LLVM version 6.0.1,你的是比较新的
谢谢你的反馈

llvm changes
CodeGen: Add a dwo output file argument to addPassesToEmitFile and hook it up to dwo output.
https://reviews.llvm.org/D47089
llvm-mirror/llvm@9ffe073