पिछले कुछ वर्षों में संकलक अनुकूलन तकनीकों में नया क्या है?


14

मुझे डेटा प्रवाह और नियंत्रण प्रवाह ग्राफ़ के अनुकूलन और विशेष रूप से अधिक कम्प्यूटेशनल रूप से जटिल में दिलचस्पी है। लेकिन यह भी दिलचस्प होगा कि पीपहोल अनुकूलन के क्षेत्र में नवीनतम आविष्कारों के बारे में पता चले।


2
अपनी थीसिस ( स्लाइड्स ) में मैंने एलएलवीएम में कॉल-ग्राफ चपटे पर चर्चा और कार्यान्वित किया है; मूल रूप से यह एक अंतर-प्रक्रियात्मक परिवर्तन है जो "फ़ंक्शन" की धारणा से छुटकारा दिलाता है क्योंकि यह सभी कोडों को एक साथ मिला देता है, जिससे इंटरप्रोसेरुरल कोड मोशन, कॉलाइट-अनुकूलित कॉलिंग कन्वेंशन, स्टैकलेस निष्पादन और इतने पर जैसे दिलचस्प संभावनाओं का एक गुच्छा होता है।
सीएएफएक्सएक्स

@CAFxX: स्लाइड्स ने खोला ओपन ऑफिस .. क्या आपके बजाय ऑनलाइन तस्वीरें हैं?
१६:२० बजे यत्रिल्ल


धन्यवाद, उस के साथ देखने में सक्षम है, हालांकि रेखांकन ठीक दिखाई दे रहे थे पाठ अच्छा था।
Yttrill

जवाबों:


8

मुझे यकीन नहीं है कि यह उपन्यास कैसा है, या यदि यह आपकी रुचि के लिए लागू पक्ष पर बहुत अधिक है, लेकिन हूप्ला दिखाता है कि नियंत्रण-डेटा प्रवाह अनुकूलन को कैसे नियंत्रित किया जा सकता है, नियंत्रण-ग्राफ के बारे में तथ्यों के प्रसार से स्वतंत्र होने के नाते भाषा और विशिष्ट अनुकूलन।

वे 2002 के लर्नर, ग्रोव और चेम्बर्स के एक एल्गोरिथ्म का संदर्भ देते हैं जो सरल अनुकूलन को "सुपरोप्टिमाइज़ेशन" में बनाता है।


8

मुझे लगता है कि समानता संतृप्ति तकनीक, अनुकूलन पासिंग ऑर्डर की समस्या के लिए एक अलग दृष्टिकोण के रूप में प्रासंगिक होगी। मेरी जानकारी के अनुसार, यह अभी तक एक पूर्ण संकलक में एक ठोस कार्यान्वयन द्वारा व्यावहारिक साबित नहीं हुआ है। प्रूफ़ के बाद उत्पन्न होने वाले कंपाइलर ऑप्टिमाइज़ेशन भी रुचि के हो सकते हैं।


6

सत्यापित अनुकूलन योग्य संकलक में थोड़ा सा पुनरुत्थान हुआ है। लर्नर के पेपर (एक पिछली टिप्पणी में उल्लिखित) के अलावा, आप ज़ेवियर लेरॉय के नेतृत्व वाले कॉम्पर्ट प्रोजेक्ट को देख सकते हैं । उन्होंने मशीन-जांच योग्य साक्ष्यों ( Coq का उपयोग करके ) के रूप में अनुकूलन को निर्दिष्ट करने के साथ कुछ अच्छा सामान किया है । मैंने अभी तक कागजात नहीं पढ़े हैं, लेकिन प्रिंसटन के सत्यापित सॉफ्टवेयर टूलचेन प्रोजेक्ट भी इस क्षेत्र में दिलचस्प परिणाम दे रहा है।


1
हम CompCert: CerCo ( cerco.cs.unibo.it ) के समान परियोजना पर भी काम कर रहे हैं । CompCert के विपरीत, हम C के एक बड़े उपसमूह के लिए एक सत्यापित ठोस लागत संरक्षण कंपाइलर का उत्पादन करने का लक्ष्य रखते हैं (CompCert केवल दिखाता है कि स्रोत प्रोग्राम के अतिरिक्त गुण संकलन द्वारा संरक्षित हैं)। हम कंपाइलर में कुछ मामूली जटिल लूप ऑप्टिमाइज़ेशन भी लागू कर रहे हैं, साथ ही साथ कॉम्प्लेक्स जैसे "माइल्ड" ऑप्टिमाइज़ेशन भी कार्यरत हैं, जिन्हें लागत-संरक्षण के रूप में सत्यापित करने की आवश्यकता होगी।
डोमिनिक मुलिगन

5

एक डबल फ़ॉर लूप में baz [i] + = बल (फू [i], फू [j]) को पहचानने पर (i, j) के लिए स्वतंत्र परिणाम होते हैं और कॉल को एक स्पेस फिलिंग कर्व (i, j) पर फिर से भरना पड़ता है। कैश मिस में कटौती।

काफी "peephole" नहीं है, लेकिन "मुक्त" के लिए कैश विस्मरणपूर्ण व्यवहार अच्छा है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.