मैंने अभी एलएलवीएम की खोज की है और अभी तक इसके बारे में बहुत कुछ नहीं पता है। मैं llvm in browser का उपयोग करके इसे आजमा रहा हूं। मैं देख सकता हूं कि मेरे द्वारा लिखे गए किसी भी सी कोड को एलएलवीएम बाइट कोड में परिवर्तित कर दिया गया है जिसे बाद में देशी कोड में परिवर्तित किया जाता है। पृष्ठ बाइट कोड का एक पाठ प्रस्तुतिकरण दिखाता है। निम्नलिखित सी कोड के लिए उदाहरण के लिए:लेखन llvm बाइट कोड
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-linux-gnu"
@array = global [3 x i32] [i32 1, i32 2, i32 3] ; <[3 x i32]*> [#uses=1]
define i32 @foo(i32 %X) nounwind readonly {
entry:
%0 = sext i32 %X to i64 ; <i64> [#uses=1]
%1 = getelementptr inbounds [3 x i32]* @array, i64 0, i64 %0 ; <i32*> [#uses=1]
%2 = load i32* %1, align 4 ; <i32> [#uses=1]
ret i32 %2
}
मेरा प्रश्न है:: मैं बाइट कोड लिख सकते हैं और यह LLVM कोडांतरक देशी कन्वर्ट करने के लिए करने के लिए दे सकते हैं
int array[] = { 1, 2, 3};
int foo(int X) {
return array[X];
}
यह निम्न बाइट कोड से पता चलता कोड सी कोड लिखने के पहले चरण को छोड़कर कोड? यदि हां, तो मैं इसे कैसे कर सकता हूं? क्या किसी के पास मेरे लिए कोई संकेतक है?
http://llvm.org/docs /CommandGuide/index.html –