मैं मैं पहली बार लोड हो रहा हूँ vairable "मैं"% 1 और% 2 तब में चर 'जे' में मैं शर्त से अधिक होता है कि (की तुलना कर रहा हूँ इसे में followint LLVM आईआर फ़ाइलएलएलवीएम आईआर से मूल ब्लॉक में पहला निर्देश मिटाना?
%1 = load i32* %i, align 4
%2 = load i32* %j, align 4
%3 = icmp sgt i32 %1, %2
br i1 %3, label %4, label %6
; <label>:4 ; preds = %0
%5 = load i32* %i, align 4
store i32 %5, i32* %k, align 4
br label %6
; <label>:6 ; preds = %5, %0
ret i32 0
है i> जे)। उस पर आधारित शाखा या तो लेबल 4 या लेबल 6 है। मेरी समस्या यह है कि चरम "i" के लिए पहले मूल ब्लॉक में और दूसरा मूलभूत ब्लॉक में दो लोड निर्देश हैं। यहां मैं दूसरे लोड निर्देश को हटाना चाहता हूं। इसके लिए मैं इसे तब कर रहा हूं जब मैं परिवर्तनीय "i" के लिए दूसरे लोड निर्देश तक पहुंचता हूं, मैं पहले निर्देश द्वारा दूसरे निर्देश के सभी उपयोगों को प्रतिस्थापित कर रहा हूं, फिर मैं वर्तमान निर्देश को मिटा रहा हूं। यहां मैं निर्देश इटरेटर सूचक सेट करने में असमर्थ हूं। मैं अगले निर्देश के लिए सेट नहीं करना चाहता (स्टोर i32% 5, i32 *% k, संरेखित 4)। क्या कोई दूसरा रास्ता है? यदि आप जानते हैं तो कृपया मुझे बताएं।
सुनिश्चित नहीं है कि मैं आपका प्रश्न समझता हूं। लेकिन मुझे पूरा यकीन है कि बाद के पास आपके लिए उस भार को आसानी से हटाने में सक्षम होना चाहिए, इसलिए मैं वास्तव में परेशान नहीं होता। यदि आपके पास लोड को हटाने के लिए एक अनिवार्य कारण है, तो कृपया अपना प्रश्न दोबारा शुरू करें, क्योंकि मैं समझ नहीं पा रहा हूं कि आपकी समस्या वास्तव में क्या है। – CAFxX
मेरी समस्या यह है कि दूसरे लोड निर्देश को हटाने के बाद मैं निर्देश इटरेटर सेट करना चाहता हूं जैसे कि अगले पुनरावृत्ति में इसे (i32% 5, i32 *% k, 4 संरेखित करें) तक पहुंच जाना चाहिए क्योंकि लूप के लिए मैं निर्देश इटरेटर को बढ़ा रहा हूं । – damrudhard
'inst-> eraseFromParent() 'के बाद तुरंत' बीबी-> प्रारंभ() 'को कॉल करके एक नया इटरेटर प्राप्त क्यों न करें? – CAFxX