मैं a compiler एक बैकेंड के रूप में LLVM का उपयोग करता है, और मेरे संकलक निम्नलिखित LLVM विधानसभा कोडLLVM विधानसभा: पूर्णांक
@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
}
उत्पन्न करता है लिख रहा हूँ रजिस्टर करने के लिए निरंतर आवंटित लेकिन मैं निम्नलिखित त्रुटि मिलती है:
c.ll:8:8: error: expected instruction opcode
%2 = 1
^
दस्तावेज examples like that दिखाता है।
क्या आप जानते हैं कि यह काम करने के लिए कैसे प्राप्त करें? वर्तमान में, मैं बजाय उपयोग कर रहा हूँ:
%2 = add i32 0, 1 ; FIXME
आप नाम के निरंतर मूल्य को क्यों बांधना चाहते हैं? बस 'पूंछ कॉल शून्य @printf (i8 *% 1, i31 1)' में स्थिर स्थान का उपयोग करें। बीटीडब्ल्यू, क्या आप आईआर को एक पाठ के रूप में उत्पन्न कर रहे हैं? किस लिए? –
क्योंकि कोड जनरेटर के लिए यह आसान है। मैं टेक्स्ट आईआर का उपयोग कर रहा हूं क्योंकि मेरे पास उपयोग की जा रही भाषा से सी/सी ++ libs तक आसानी से पहुंच नहीं है। – Mildred