gpt4 book ai didi

llvm - 使用 LLVM C API 生成对内部函数的调用

转载 作者:行者123 更新时间:2023-12-05 01:01:47 24 4
gpt4 key购买 nike

我正在编写一些使用 LLVM C API 的代码。如何使用内在函数,例如 llvm.cos.f64llvm.sadd.with.overflow.i32 ?每当我尝试通过使用 LLVMAddGlobal 生成全局来做到这一点时(使用正确的类型签名),我只是在 JIT 链接阶段收到此错误消息:

LLVM 错误:无法解析外部全局地址:llvm.cos.f64

我没有使用 LLVM C++ 接口(interface),所以 LLVM insert intrinsic function Cos 中的建议似乎不适用。

我想我需要像 Intrinsic::getDeclaration 这样的东西,但我似乎找不到它。我错过了一些明显的东西吗?

最佳答案

无需离开 C API。将内在名称传递给 LLVMAddFunction :

LLVMTypeRef param_types[] = {LLVMDoubleType()};
LLVMTypeRef fn_type = LLVMFunctionType(LLVMDoubleType(), param_types, 1, false);
LLVMValueRef fn = LLVMAddFunction(module, "llvm.cos.f64", fn_type);

然后您可以调用 fnLLVMBuildCall .

关于llvm - 使用 LLVM C API 生成对内部函数的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27681500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com