किसी मौजूदा एएसटी से आईआर का निर्माण करते समय, मेरे एएसटी में कुछ स्ट्रिंग मान होते हैं (संकलन समय पर वे std::string
से बनाए जाते हैं) और मैं उन्हें अभिव्यक्ति के हिस्से के रूप में उपयोग करने के लिए llvm::Value
के रूप में सुरक्षित रूप से सेट करना चाहता हूं।एलएलवीएम स्ट्रिंग वैल्यू ऑब्जेक्ट्स: मैं एक मूल्य से स्ट्रिंग को कैसे प्राप्त कर सकता हूं?
इस मामले में, मुझे रन-टाइम पर स्ट्रिंग को बांधने की आवश्यकता नहीं है, क्योंकि स्ट्रिंग मान केवल संकलन-समय पर चर, फ़ंक्शन या कक्षाओं के रूप में सामान को हल करने के लिए हैं (भाषा मूल निवासी का समर्थन नहीं करती है स्ट्रिंग प्रकार)।
क्या llvm::Value
और के रूप में मेरे स्ट्रिंग सामग्री रखने के लिए सबसे अच्छा तरीका अभी भी संकलन के बाद के चरणों (जब घोंसले भाव निर्माण कर रहे हैं) पर इसे पुनः प्राप्त करने में सक्षम हो?
अधिक वस्तुतः, अगर मैं सेट के साथ llvm::Value
:
llvm::Value* v = llvm::ConstantArray::get(llvmContext, myString.c_str());
कैसे मैं सुरक्षित रूप से स्ट्रिंग मान प्राप्त करते हैं? llvm::ConstantArray
तार लपेटने के लिए उपयुक्त तरीका है?