मैं सरणी घोषणाओं का पता लगाने और स्थिर आकार के सरणी के लिए प्रतीक मान तालिका बनाने का प्रयास कर रहा हूं। इसमें एक नाम-सरणी आकार जोड़ना होगा। मेरे पास कई प्रश्न हैं:एलएलवीएम निर्देश परिवर्तनीय नाम और पैरामीटर
1)% a = alloca [200 x i8] जैसे निर्देश दिए गए, 16 संरेखित करें, मैं सरणी का नाम "ए" कैसे निकाल सकता हूं। । जब मैं प्रिंट v किसी को भी पता है कि ऐसा क्यों है
if(AllocaInst *allocInst = dyn_cast<AllocaInst>(&*I)){
PointerType *p = allocInst->getType();
if(p->getElementType()->isArrayTy()){
Value* v = allocInst->getOperand(0);
errs() << *v ;
}
}
मुझे पैदावार "i32 1":
2) मैं सरणी आकार लेकिन इस कोड के रूप में "200" को निकालने के लिए कोशिश कर रहा हूँ? मुझे नहीं लगता था कि इस पते को छोड़कर इसके बारे में 32 बिट कुछ भी था।
ठीक है तो मुझे पता चला कि आकार कैसे प्राप्त करें: ऐरे टाइप टाइप * ए = कास्ट (पी-> getElementType()); a-> getNumElements() –
Realn0whereman
ठीक है ... इसलिए ... मैं पता लगा कि कैसे भी नाम पाने के लिए ... allocInst-> getName() क्यों कि बस stackoverflow पर पोस्टिंग मुझे उत्तरों को तेज़ी से खोजने में मदद करता है ...: पी – Realn0whereman
यदि आप टिप्पणियों के बजाय, इस जानकारी वाले उत्तर को पोस्ट करते हैं तो यह सबसे अच्छा है। इस तरह सवाल को उत्तर के रूप में ठीक से चिह्नित किया जाएगा। – Oak