@0 = private constant [25 x i8] c"Hello World to %dntegers\00"
declare void @printf (i8*, i32)
define void @main() {
%1 = getelementptr [25 x i8]* @0, i32 0, i32 0
%2 = 1
tail call void @printf(i8* %1, i32 %2)
ret void
}
üretir a compiler yazıyorum
kayıt tamsayı sabit atamak Ama aşağıdaki hatayı alıyorum:
c.ll:8:8: error: expected instruction opcode
%2 = 1
^
Belgeler, examples like that'u gösterir.
Bunu nasıl çalıştırılacağını biliyor musunuz? Şu anda, bunun yerine kullanıyorum:
%2 = add i32 0, 1 ; FIXME
Neden bir ada sahip sabit bir değer bağlamak istersiniz? Sadece sabitini, 'tail call void @printf (i8 *% 1, i31 1) 'deki gibi kullanın. Btw., IR'yi bir metin olarak mı üretiyorsunuz? Ne için? –
Bu kod üreticisi için daha basit olduğundan. Metin IR kullanıyorum çünkü kullandığım dilden C/C++ libs'e kolay erişimim yok. – Mildred