Bir yapı türünün LLVM değerini oluşturmaya çalışıyorum. Ben LLVM-C arayüzünü kullanarak ve bir fonksiyonu bulmak ediyorum:LLVM yapı değeri nasıl oluşturulur?
LLVMValueRef LLVMConstStruct (LLVMValueRef *ConstantVals, unsigned Count, LLVMBool Packed)
tüm üyeler LLVMConstXXX (yarattığı sabit değer ise bu, o gibi kod oluşturur) çalışıyor:
store { i32, i32, i32 } { i32 1, i32 2, i32 3 }, { i32, i32, i32 }* %17, align 4
Ama Ben NVVM (Nvidia PTX arka uç) için LLVM kod parçası gönderdiğinizde, diyor
%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
Ve:
sorun üyesi sabit değilse, bu gibi şeyler üretecektir olduğunumodule 0 (27, 39): parse error: invalid use of function-local name
Bu yapısal değer oluşturmanın doğru olup olmadığını bilmiyorum. İhtiyacım olan bir değer, ayrılmış bir bellek değil.
Herkesin fikri vardır?
Saygılarımızla, Xiang.
Teşekkürler! Bu işe yarıyor!!! –