更改参数类型和返回函数类型时遇到问题。我是通过以下方式完成的:
VMap
ClondFunctionInto(new_fun, old_fun, VMap, true, Returns)
将旧函数的主体复制到新函数中,VMap
中的所有值都替换为新版本。然后我收到以下错误:
/llvm/lib/Transforms/Utils/ValueMapper.cpp:444: void llvm::RemapInstruction(llvm::Instruction*, llvm::ValueToValueMapTy&, llvm::RemapFlags, llvm::ValueMapTypeRemapper*, llvm::ValueMaterializer*): Assertion `(Flags & RF_IgnoreMissingEntries) && "Referenced value not in value map!"' failed.
第3步是否正确?由于CloneFunctionInto()
的文档说“将OldFunc克隆到NewFunc中,将旧参数转换为对VMap值的引用”。我是否还可以将函数体中的旧指令转换为VMap
?