我的c ++代码中有一个指向浮点数变量的指针。我想发出一个取消引用此指针的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*)
我在做什么错了?
当我申请验证通行证时。我在做什么错了?
答案 0 :(得分:0)
问题出在其他地方:我没有将生成器插入点设置到我的功能块,导致IR代码格式错误。