6
我正在嘗試創建一個結構類型的LLVM值。我使用LLVM-C接口,並找到一個函數:如何創建LLVM結構值?
LLVMValueRef LLVMConstStruct (LLVMValueRef *ConstantVals, unsigned Count, LLVMBool Packed)
如果所有的成員都是由LLVMConstXXX(創建恆定值也能正常工作),它會產生類似的代碼:
store { i32, i32, i32 } { i32 1, i32 2, i32 3 }, { i32, i32, i32 }* %17, align 4
但問題是,如果會員不是恆定的,它會生成諸如:
%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
當我這塊LLVM代碼發送到NVVM(英偉達PTX後端),它說:
module 0 (27, 39): parse error: invalid use of function-local name
所以,我不知道這個結構值創建是否正確。我需要的是一個值,而不是分配的內存。
有人有想法嗎?
Regards, Xiang。
Thanks !!這樣可行!!! –