gpt4 book ai didi

c++ - LLvm 即时通讯 : How to dereference a runtime pointer from jited code?

转载 作者:太空宇宙 更新时间:2023-11-04 12:31:54 25 4
gpt4 key购买 nike

我的 C++ 代码中有一个指向 float 变量的指针。我想发出一条取消引用此指针的 llvm IR 指令,以便从 jited 代码访问此变量。我怎样才能发出这样的指令?

我尝试将指针转换为 64 位整数常量,然后再转换为浮点指针。但是当我得到格式错误的 IR 代码时。

auto *pointer_as_integer = ConstantInt::get(
context, APInt(64, reinterpret_cast<uint64_t>(&variable)));

auto *pointer = builder.CreateIntToPtr(
pointer_as_integer, Type::getFloatTy(context));

return builder.CreateLoad(
Type::getFloatTy(context), pointer);

当我尝试应用验证通过时,我得到了这个:

Instruction does not dominate all uses!
%PTR = load float, float* inttoptr (i64 140724356577004 to float*)

我做错了什么?

当我申请验证通过时。我做错了什么?

最佳答案

问题出在其他地方:我没有将构建器插入点设置到我的功能 block ,导致 IR 代码格式错误。

关于c++ - LLvm 即时通讯 : How to dereference a runtime pointer from jited code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58358652/

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