में ऑपरेटरों को प्राप्त करना मैं अपने कंपाइलर के लिए एक अनुकूलन लिख रहा हूं और मैं अपनी इंटरमीडिएट भाषा के रूप में एलएलवीएम आईआर का उपयोग करता हूं। मैंने इनपुट फ़ाइल को पार्स किया है और इसे एलएलवीएम आईआर में बदल दिया है। अनुकूलन के दौरान, मुझे निर्देशों के संचालन को पुनः प्राप्त करने की आवश्यकता है। मैं निर्देश कक्षा में getOpCode() ढूंढने में सक्षम हूं, लेकिन ऑपरेंड सूची को पुनर्प्राप्त करने में असमर्थ हूं। मैं उसे करके देखूं तो?एलएलवीएम निर्देश
15
A
उत्तर
23
संकार्य accessors, आम तौर पर वर्ग llvm::User
, जिसका Doxygen पेज है द्वारा प्रदान की बहुत सारी हैं: http://llvm.org/doxygen/classllvm_1_1User.html वहाँ getNumOperands()
और getOperand(unsigned int)
, साथ ही इटरेटर शैली है op_begin()
और op_end()
पहुंचकर्ता।
उदाहरण के लिए, निर्देश %X = add i32 %a, 2
दिया, I->getOperand(0)
%a
के लिए Value*
वापस आ जाएगी, और I->getOperand(1)
i32 2
के लिए Value*
(ConstantInt को castable) वापस आ जाएगी।
1
उदाहरण के लिए, यदि आपके पास निर्देश है I1 - I1-> getOperand (0) प्रकार का पहला ऑपरेंड वैल्यू * वापस कर देगा। I1-> getOperand (0) -> getName() का उपयोग करके आप आगे जा सकते हैं जो ऑपरेंड का नाम वापस कर देगा। मूल्य वर्ग विधियां देखें।