6
構造体型のLLVM値を作成しようとしています。私はLLVM-Cインタフェースを使用して機能を見つけるよ:LLVM構造体の値を作成する方法は?
store { i32, i32, i32 } { i32 1, i32 2, i32 3 }, { i32, i32, i32 }* %17, align 4
しかし:すべてのメンバーがLLVMConstXXX(によって作成された一定の値である場合に
LLVMValueRef LLVMConstStruct (LLVMValueRef *ConstantVals, unsigned Count, LLVMBool Packed)
は、これが正常に動作します)、それはのようなコードを生成しますメンバーが一定でない場合には問題があり、それはのようなものを生成します。
%0 = call i32 @llvm.nvvm.read.ptx.sreg.tid.x()
store { i32, i32, i32 } { i32 1, i32 %0, i32 3 }, { i32, i32, i32 }* %17, align 4
そして、私はNVVM(NvidiaのPTXのバックエンド)にLLVMコードのこの部分を送信するとき、それは言う:
module 0 (27, 39): parse error: invalid use of function-local name
したがって、この構造体の値の作成が正しいかどうかはわかりません。私が必要とするのは、割り当てられたメモリではなく、値です。
誰でも知っていますか?
よろしく、 翔。
ありがとう!!それは動作します! –