2011-10-25 22 views
6

जीसीसी का -fdump-tree-optimized विकल्प आपके सी कोड के एक अनुकूलित संस्करण को सी फ़ाइल के रूप में डंप करता है। क्या इंटेल के आईसीसी कंपाइलर का उपयोग करके मैं ऐसा कर सकता हूं?इंटेल आईसीसी: सी फ़ाइल के रूप में अनुकूलित कोड को डंप करने के लिए कैसे करें

मेरे पास एक मैट्रिक्स गुणा कोड है जिसे मैंने icc -O3 -ipo mult.c के रूप में संकलित किया है। मैं देखना चाहता हूं कि कंपाइलर ने अनुकूलन कैसे किया है। यदि कुछ भी काम नहीं करता है, तो मैं प्रोग्राम के लिए असेंबली कोड उत्पन्न करूंगा।

+0

यदि यह व्यक्तिगत मज़े के अलावा "असली" एप्लिकेशन के लिए है, तो आप मौजूदा मैट्रिक्स गुणा करते हैं, जैसे जीएनयू वैज्ञानिक पुस्तकालय, या अन्य लागू करने वाली मौजूदा लाइब्रेरी का उपयोग करके आप प्रदर्शन (विकास और विकास के समय के मामले में) बहुत बेहतर हैं। बीएलएएस लाइब्रेरी का कार्यान्वयन – TJD

+0

नोप्स, यह एक क्लास प्रोजेक्ट का हिस्सा है जो संकलक अनुकूलन और इसी तरह के विषयों को सिखाता है। – jitihsk

उत्तर

2

तकनीकी रूप से, -fdump-tree-optimized सी प्रतिनिधित्व को डंप न करें, लेकिन जीसीसी के अंदर उपयोग किए गए गिंपल कोड का एक आंशिक आंशिक प्रतिनिधित्व (गिंपल निर्देशों का मध्य-अंत आंतरिक प्रतिनिधित्व है, जिस पर अधिकांश जीसीसी लक्ष्य-स्वतंत्र अनुकूलन पास संचालित होते हैं) ।

लेकिन icc एक मालिकाना कंपाइलर (एक ब्लैक बॉक्स) है, इसलिए अपने प्रदाता के दृष्टिकोण से, यह दिलचस्प नहीं है (इंटेल के लिए) यह दिखाने के लिए कि कैसे icc काम करता है।

जीसीसी में अपने आंतरिक प्रतिनिधित्व दिखाने की क्षमता है, क्योंकि यह एक मुफ्त सॉफ्टवेयर है। मालिकाना कंपाइलर्स यह नहीं दिखाना चाहते कि वे कैसे काम करते हैं।

यदि यह एक वर्ग है, तो आप शायद एलएलवीएम को भी आजमा सकते हैं। (लेकिन मुझे नहीं पता कि अंदर आंतरिक प्रतिनिधित्व कैसे डंप करते हैं)।

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