Проблема, с которой я столкнулся в связи с llvmlite, заключается в создании простого примера «Привет, мир!».
Я не могу отобразить строковое значение глобальной переменной в созданной мной функции.
Похоже, что он всегда печатает номер 1.
Я уже пытался вернуть тип строки, вызвавший ошибку.
from llvmlite import ir
i64 = ir.IntType(64)
i8 = ir.IntType(16)
hellostr = 'hello, world!'
stringtype = ir.ArrayType(i64, len(hellostr))
module = ir.Module( name="m_hello_example" )
hello = ir.GlobalVariable(module, stringtype, '.str4')
fn_int_to_int_type = ir.FunctionType(i64, [stringtype.as_pointer()] )
fn_hel = ir.Function( module, fn_int_to_int_type, name="fn_hel" )
fn_hel_block = fn_hel.append_basic_block( name="fn_hel_entry" )
builder = ir.IRBuilder(fn_hel_block )
# zero = builder.constant(i64, 0)
# const_1 = ir.Constant(stringtype,1);
# builder.ret(const_1)
const_1 = ir.Constant(i64,1);
# print(const_1)
builder.ret(const_1)
print( module )
Я ожидал, что выводраспечатайте строку «привет, мир!».
Любая помощь будет высоко ценится.
Спасибо.