Friday 9 March 2018

युक्ति -2006 हाथ - बाइनरी - विकल्प


SPEC बेंचमार्क। SPEC 2000 spec2k. To gem5 पर SPEC 2000 बायनेरिज़ चलाने के लिए आप gem5 विशिष्ट cpu2000 अजगर पैकेज cpu2000 पैकेज का उपयोग कर सकते हैं। Cpu2000 अजगर पैकेज वर्कलोड क्लास को परिभाषित करता है जो SPEC 2000 CPU सुइट से विभिन्न मानकों का प्रतिनिधित्व करता है ये ईएसए लेते हैं, ऑपरेटिंग सिस्टम, और वांछित इनपुट मापदंडों के रूप में सेट करें निम्न उदाहरण से है। इसने ग्रिड लॉग स्पेस 2000 बेंचमार्क का प्रतिनिधित्व करते हुए एक वर्कलोड तैयार किया है जो अल्फा tru64 के लिए स्काइंड इनपुट सेट के साथ संकलित किया गया है और इसे निर्दिष्ट करता है। इस पैकेज से बनाए गए वर्कलोड को उनकी बायनेरीज़ और इनपुट निम्न दो निर्देशिकाओं में क्रमशः फाइलें। सिसकेल मोड्यूशन मोड कमांड लाइंस। यदि आप SYCcall-emulation मोड का उपयोग कर SPEC2K को चलाने के लिए चाहते हैं, तो सही कमांड लाइन विकल्पों के लिए एक अच्छा संदर्भ यहां पाया जा सकता है। ध्यान दें ये उदाहरण कमांड लाइन कम से कम इनपुट सेटों के लिए नहीं हैं। यदि आप cpu2000 पैकेज का उपयोग करने में असमर्थ हैं, तो आप अभी भी सेट अप कर सकते हैं और बायनेरिज़ चला सकते हैं, जैसा कि आप सामान्य रूप से स्थिर रूप से जुड़े ALPHA eon बाइनरी चलाने के लिए करते हैं, कमांड लाइन। SPEC 2006 spec2k6.We को SPEC2006 बेंचमार्क से जानकारी की बिट्स प्राप्त करने की आवश्यकता है और इसमें कुछ कोड उल्लिखित किए गए हैं। PyInstaller Manual. This दस्तावेज़ को सार्वजनिक डोमेन में रखा गया है। PyInstaller एक पायथन अनुप्रयोग और उसके सभी निर्भरता को एकल में स्थानांतरित कर दिया गया है। पैकेज उपयोगकर्ता एक पायथन इंटरप्रीटर स्थापित किए बिना पैकेज चला सकता है या किसी भी मॉड्यूल PyInstaller Python 2 7 और Python 3 3 का समर्थन करता है, और सही पायथन संकुल जैसे numpy, PyQt, Django, wxPython, और अन्य को समर्थन करता है। PyInstaller के खिलाफ परीक्षण किया गया है विंडोज, मैक ओएस एक्स, और लिनक्स हालांकि, यह एक विंडोज़ एप बनाने के लिए एक क्रॉस-कंपाइलर नहीं है जिसे आप लिनक्स में चलाने के लिए लिनक्स ऐप बनाने के लिए विंडोज में पीइन्स्टालर चलाते हैं, आदि। पायइन्स्टालर का इस्तेमाल किया गया है succ एएक्स, सोलारिस, और फ्रीबीएसडी के साथ पूरी तरह से, लेकिन उनके खिलाफ परीक्षण नहीं किया जाता है। यह नया क्या है रिलीज़ 3। एक प्रमुख पुनर्लेखन है जो पायथन 3 समर्थन को जोड़ता है, स्वचालित परीक्षण के उपयोग के माध्यम से बेहतर कोड गुणवत्ता, और कई पुराने मुद्दों के समाधान । कार्यात्मक परिवर्तनों में 2 7 से पहले पायथन के समर्थन को हटाने, बंडल में डेटा फ़ाइलों को जोड़ने का एक आसान तरीका, बंडल में फ़ाइलें जोड़ना, और हुक एपी में बदलाव PyInstaller Hooks. Indices और तालिकाओं को समझना शामिल है। जीसीसी 4 8 रिलीज श्रृंखला परिवर्तन , नई सुविधाएँ, और फिक्स। जीसीसी अब सी के रूप में कार्यान्वयन भाषा का उपयोग करता है इसका मतलब है कि जीसीसी को स्रोत से बनाने के लिए, आपको C संकलक की आवश्यकता होगी जो सी 2003 को समझता है तर्क और विशिष्ट परिवर्तनों के बारे में अधिक जानकारी के लिए, कृपया सी रूपांतरण लूप ऑप्टिमाइज़ेशन के लिए ग्रेफाइट फ्रेमवर्क को सक्षम करने के लिए अब आपको CLooG संस्करण 0 0 0 0 और आईएसएल संस्करण 0 11 1 की आवश्यकता है दोनों जीसीसी इंफ्रास्ट्रक्चर निर्देशिका से प्राप्त किए जा सकते हैं स्थापना मैनुअल में आवश्यकता के बारे में अधिक जानकारी जीसीसी के निर्माण के लिए जीएनसी। जीसीसी अब भाषा मानकों द्वारा लगाई गई बाधाओं का उपयोग करके छोरों की पुनरावृत्तियों की संख्या के लिए ऊपरी बाध्यता प्राप्त करने के लिए अधिक आक्रामक विश्लेषण का उपयोग करती है। इससे गैर-अनुरूप कार्यक्रमों की अपेक्षा के अनुरूप काम नहीं हो सकता है, जैसे कि SPEC CPU 2006 464 h264ref और एक नया विकल्प, इस आक्रामक विश्लेषण को अक्षम करने के लिए - fno-आक्रामक-लूप-ऑप्टिमाइजेशन को जोड़ा गया था कुछ लूपों में जो निरंतर संख्या में पुनरावृत्तियों को जानते हैं, लेकिन अपरिभाषित व्यवहार तक पहुंचने से पहले या अंतिम पुनरावृत्ति के दौरान, जीसीसी पाश के लिए पुनरावृत्तियों की संख्या के ऊपरी बाउंड को कम करने के बजाए लूप में अपरिभाषित व्यवहार के बारे में चेतावनी देगा चेतावनी को - अनुक्रमणशील-लूप-अनुकूलन के साथ अक्षम किया जा सकता है। एआरएम पर, एक बग जीसीसी में तय किया गया है वेक्टर्स के लेआउट के लिए एएपीसीएस के नियमों का कार्यान्वयन जिससे गलत कोड हो सकता है, 8 बाइट्स आकार से बड़ा वेक्टर अब 8-बाइट सीमा के लिए डिफ़ॉल्ट रूप से गठित होते हैं यह एक एबीआई परिवर्तन कोड है जो बनाता है वेक्टर प्रकारों का स्पष्ट उपयोग जीसीसी ऑटो-वैक्टरयुक्त कोड के पुराने संस्करणों से निर्मित बाइनरी ऑब्जेक्ट्स के साथ असंगत हो सकता है, इस परिवर्तन से प्रभावित नहीं है। एवीआर पर, कमांड लाइन ऑप्शन के लिए समर्थन को हटा दिया गया है - जीएससी 4 7 में बहिष्कृत डाटा कॉल । AVR पर, कॉन्फ़िगर विकल्प - साथ - avrlibc जीसीसी 4 7 2 के बाद से समर्थित सभी गैर - RTEMS कॉन्फ़िगरेशन के लिए प्रति डिफ़ॉल्ट चालू होता है यह विकल्प avr-libc का बेहतर एकीकरण के लिए avr-gcc के साथ तकनीकी विवरण के लिए व्यवस्था करता है, PR54461 को देखें गैर - RTEMS कॉन्फ़िगरेशन में विकल्प को बंद करें, --with-avrlibc no का उपयोग करें यदि संकलक RTEMS के लिए कॉन्फ़िगर किया गया है, तो विकल्प हमेशा बंद होता है। जीसीसी के पिछले संस्करणों से जीसीसी 4 8 को पोर्टिंग पर अधिक जानकारी पाई जा सकती है इस रिहाई के लिए पोर्टिंग गाइड। सामान्य अनुकूलक सुधार और परिवर्तन। DWARF4 अब डिफ़ॉल्ट है जब DWARF डीबग जानकारी जेनरेट करते समय जी-डी एक प्लेटफॉर्म पर उपयोग किया जाता है जो DWARF डिबगिंग सूचना का उपयोग करता है, जीसीसी अब - gdwarf-4 - fno-debug - प्रकार-अनुभाग GDB 7 5, वी अलागंड 3 8 0 और एलफुटल्स 0 154 डिबग सूचनाएं उपभोक्ता जीसीसी 4 8 के पहले डिफ़ॉल्ट रूप से डीडब्ल्यूएआरएफ 4 का समर्थन करती हैं, इसका उपयोग डीएफओआरएफ 2 डीवाराएफ 2 जीसीसी बनाने के लिए 8 8 एक पुराने डीडब्ल्यूएआरएफ़ वर्जन का उपयोग - जी साथ - gdwarf-2 या - gdwarf-3 उत्पन्न करता है डार्विन और VxWorks के लिए डिफ़ॉल्ट अभी भी - gdwarf-2 - gstrict-dwarf. A नए सामान्य अनुकूलन स्तर, ओग शुरू की गई है यह तेजी से संकलन और एक बेहतर डिबगिंग अनुभव की आवश्यकता को देखते हुए रन-टाइम प्रदर्शन का उचित स्तर प्रदान करता है कुल मिलाकर विकास के लिए अनुभव डिफ़ॉल्ट अनुकूलन स्तर - O0 से बेहतर होना चाहिए। आंशिक अतिरेक उन्मूलन पूर्व अनुकूलन को नियंत्रित करने के लिए एक नया विकल्प-फाड़-आंशिक-पूर्व जोड़ा गया था यह ऑप्शन - ऑफ़ो ऑप्टिमाइज़ेशन स्तर पर डिफ़ॉल्ट रूप से सक्षम है, और यह प्री बनाता है अधिक आक्रामक। विकल्प - fconserve-space को हटा दिया गया है, यह अब अधिकतर लक्ष्यों पर उपयोगी नहीं था क्योंकि जीसीसी ने उन्हें बिना सामान्य बनाकर वैलिएबल्स डालने का समर्थन किया है। रीट्रेट और मैट्रिक्स रीरग ऑप्टिमाइज़ेशन कॉम और - लाइन विकल्प - fipa-struct-reorg और - fipa-matrix-reorg हटा दिया गया है वे हमेशा सही तरीके से काम नहीं करते थे, न ही उन्होंने लिंक-टाइम अनुकूलन एलटीओ के साथ काम किया, इसलिए केवल एक अनुवाद इकाई । जीसीसी के ऑप्टिमाइजेशन पास से कई स्केलेबिलिटी बोतल-गर्दन को हटा दिया गया है, बहुत बड़े कार्यों का संकलन, उदा। ईगेन सी रैखिक बीजगणित टेम्पलेट लाइब्रेरी में फ्लैटन विशेषता के उपयोग के कारण, जीसीसी के पिछले रिलीज़ से काफी तेज है। लिंक-समय ऑप्टिमाइज़ेशन एलटीओ सुधार। एलटीओ विभाजन को बेहतर विश्वसनीयता और रखरखाव के लिए फिर से लिखा गया है विफलताओं को लिंक करने के लिए अग्रणी कई महत्वपूर्ण बगों को तय किया गया है। इंटरप्रोक्लियरल ऑप्टिमाइज़ेशन सुधार। एक नया प्रतीक तालिका लागू की गई है यह मौजूदा कॉलग्राफ और वर्पल मॉड्यूल पर बनाता है और एक नया एपीआई असामान्य प्रदान करता है प्रतीक दृश्यताएं और उपनामों को अधिक लगातार संभालता है, उदाहरण के लिए, एलटीओ के साथ अधिक आक्रामक अप्राप्य कोड हटाने। ई इनलाइन अनुमापन अब इनलाइनिंग कार्यों के आकार पर बाईपास को बाईपास कर सकता है जब इनलाइनिंग विशेष रूप से लाभदायक होती है, उदाहरण के लिए, जब लूप की सीमा या सरणी प्रगति हो जाती है। मूल्य या संदर्भ द्वारा पारित किए गए मूल्य अब अंतर पर प्रचारित होते हैं फोरट्रान सरणी विवरणक और devructualization. AddressSanitizer एक तेजी से स्मृति त्रुटि डिटेक्टर के मामले में उदाहरण के लिए बेहतर इनलाइन निर्णय लेने के लिए अग्रणी, जोड़ दिया गया है और के माध्यम से सक्षम किया जा सकता है - fanititize पते स्मृति पहुंच निर्देशों के ढेर-ढेर का पता लगाने के लिए साधन होगा -, और वैश्विक-बफर ओवरफ्लो के साथ ही उपयोग-बाद-मुक्त कीड़े भी अच्छे स्टैकेट्स प्राप्त करने के लिए, - fno-omit-frame-pointers का उपयोग करें AddressSanitizer IA-32 x86-64 x32 PowerPC PowerPC64 GNU Linux पर और x86- 64 डार्विन. ThreadSanitizer जोड़ दिया गया है और सक्षम किया जा सकता है - फ़ोनटाइजेट थ्रेड निर्देश डेटा का पता लगाने के लिए उपकरण का उपयोग किया जाएगा थ्रेडसेनिकेटर x86-64 जीएनयू लिनक्स पर उपलब्ध है.एक नया लो कैल रजिस्टर ऑलोकेटर एलआरए लागू किया गया है, जो 26 वर्षीय पुनः लोड पास को बदल देता है और उत्पन्न कोड की गुणवत्ता में सुधार करता है अब यह आईए -32 और एक्स 86-64 लक्ष्यों पर सक्रिय है। ट्रांसेक्शनल मेमोरी के लिए समर्थन निम्न आर्किटेक्चर पर कार्यान्वित किया गया है IA - 32 x86-64, एआरएम, पावरपीसी, एसएच, स्पार्क, और अल्फा। नई भाषाओं और भाषा में विशिष्ट सुधार। उत्सर्जित दो डायग्नॉस्टिक में मूल स्रोत रेखा और कॉलम को इंगित करता है एक कैरेट विकल्प - fno-diagnostics-show-careit इस को दबा देता है सूचना। विकल्प - फताक्र-मैक्रो-विस्तार 2 को अब डिफ़ॉल्ट रूप से सक्षम किया गया है यह कम्पाइलर को कैरेट जानकारी के साथ संयुक्त निदान में मैक्रो विस्तार स्टैक को प्रदर्शित करने की अनुमति देता है, इन दो विशेषताओं को प्रदर्शित करने वाला एक उदाहरण डायनेडस्टिक है। एक नया - विस्फोट-सूचक - मेमैकस चेतावनी को भी सक्षम किया गया है - कुछ स्ट्रिंग और मेमोरी के अंतर्निर्मित फ़ंक्शन के लिए संदिग्ध लम्बा मापदंडों के बारे में चेतावनी देने के लिए, यदि तर्क का आकार का उपयोग करता है तो यह चेतावनी चेतावनी चेतावनी देते हैं जैसे कि मेमसेट पीटीआर, 0, एसआईएस eof ptr अगर ptr एक सरणी नहीं है, लेकिन एक संकेतक है, और एक संभावित फिक्स, या memcpy foo, ptr, sizeof foo के बारे में सुझाव देता है। नया विकल्प - Wpedantic - के लिए एक उपनाम है जो अब अपवर्तित है रूपों - विनोद - - वायर पेंडेंटिक एंड - डॉन-एरर पेडेंटिक वर्क जैसे किसी भी अन्य - डब्लू विकल्प के लिए एक तरह की चेतावनी यह है कि- आतंक पेंडेंटिक - समान-त्रुटियों के बराबर नहीं है, क्योंकि बाद में त्रुटियों में कुछ चेतावनियां होती हैं जिन्हें नियंत्रित नहीं किया जाता है - Wpedantic और पूर्व निदान केवल उन विधियों को प्रभावित करता है जो - विनो-पेंडेंटिक का उपयोग करते समय अक्षम होते हैं। विकल्प - विशेष अब चेतावनी नहीं देता है कि कोई घोषणा फ़ंक्शन घोषित करता है, जब तक कि किसी फ़ंक्शन या पॉइंटर को कार्य करने की घोषणा नहीं करता, क्योंकि यह एक सामान्य और वैध है वास्तविक-विश्व कोड में केस। जी अब सी 11 थ्रेडलोस्कल कीवर्ड को लागू करता है, यह मुख्य रूप से जीएनयू धागा कीवर्ड से भिन्न होता है जिसमें यह गतिशील प्रारंभ और विनाश शब्दांकन की अनुमति देता है दुर्भाग्य से, इस समर्थन को गैर-फ़ंक के संदर्भ के लिए रन-टाइम दंड की आवश्यकता होती है आयन-स्थानीय थ्रेडलोकल वैरिएबल को अलग अनुवाद इकाई में परिभाषित किया गया है भले ही उन्हें गतिशील आरंभीकरण की आवश्यकता न हो, इसलिए उपयोगकर्ता स्थिर प्रारंभिक शब्दों के साथ टीएलएस चर के लिए धागा का उपयोग करना जारी रख सकते हैं। यदि प्रोग्रामर को यह सुनिश्चित किया जा सकता है कि वेरिएबल में कोई भी उपयोग नहीं किया गया है एक गैर परिभाषित टीयू को गतिशील आरंभीकरण को ट्रिगर करने की आवश्यकता होती है क्योंकि वेरिएबल स्थिरिक रूप से आरंभ किया जाता है, या परिभाषित टीयू में वेरिएबल के उपयोग को किसी अन्य टीयू में उपयोग किए जाने से पहले निष्पादित किया जाएगा, वे इस ओवरहेड से - fno-extern - TLS-init विकल्प। ओपनएमपी थ्रेडप्राइवेट वेरिएबल्स अब भी एक ही तंत्र द्वारा गतिशील आरंभीकरण और विनाश का समर्थन करते हैं। जी अब सी 11 विशेषता वाक्यविन्यास लागू करता है, उदाहरण के लिए और संरेखण विनिर्देशक, ई जीजी अब सी 11 इनहेरिटिंग कन्स्ट्रक्टरों को कार्यान्वित करता है, ई जी। जीसीसी 4 8 1, जी N3276 से शब्दशः शब्द को परिभाषित करने के लिए लागू करता है। GCC 4 8 1 के अनुसार, जी सी रेफरी क्वालिफायर लागू करता है, ई जीजी अब फीचर प्रोपो के प्रयोग के प्रयोग के लिए एक - स्टडी सी 1 ए विकल्प का समर्थन करता है मानक के अगले संशोधन के लिए 2014 के आस-पास होने की संभावना, वर्तमान में - std c 11 से केवल एकमात्र अंतर सामान्य कार्यों में वापसी प्रकार कटौती के लिए समर्थन है, जैसा कि जीसीसी 4 8 में सी 1 के फीचर की एन 3386 स्थिति में प्रस्तावित किया जा सकता है। जी नामस्थान संबद्धता विस्तार, विशेषता मजबूत को हटा दिया गया है इसके बजाय इनलाइन नामस्थानों का उपयोग किया जाना चाहिए। अब जी-एन-ई-संख्यात्मक शाब्दिक प्रत्यय को एक्सटेंशन के रूप में स्वीकार किया जाता है या सी 11 उपयोगकर्ता परिभाषित संख्यात्मक शाब्दिक प्रत्यय झंडा जीएनयू लिटरल्स के लिए डिफ़ॉल्ट रूप से - std gnu और - std c 98 के लिए उपयोग प्रत्यय पर है- झंडे उपयोगकर्ता-परिभाषित लिटरल्स के लिए - std c 11 और बाद के लिए डिफ़ॉल्ट रूप से प्रत्यय का उपयोग कर रहा है। समयरेखा पुस्तकालय libstdc. It के लिए प्रयोगात्मक समर्थन नया आईएसओ सी मानक, सी 11 सहित। फोर्ब्सलिस्ट ऑलोकेटर-अवगत कंटेनर आवश्यकताओं को पूरा करती है। थिस्तहाइड सोइडिनिल और थिथेहैड उपज कॉन्फ़िगर विकल्प की आवश्यकता के बिना परिभाषित किया जाता है - सक्षम-लिबस्टडीसीएक्स एक्स-टाइम। यादृच्छिक एसएसई अनुकूलित सामान्य डिलीवरी। नए एक्स 86 प्रोसेसर पर यादृच्छिक डिवाईस के लिए हार्डवेयर आरएनजी निर्देश का उपयोग करने के लिए कोडांतरक को निर्देश की आवश्यकता है। अनुक्रम का समर्थन करने के लिए. अन्य यादृच्छिक संख्या इंजन सिम्फैस्टमर्सननेट विस्टेइनइन एक अनुकूलित एसएसई कार्यान्वयन के साथ. नई यादृच्छिक संख्या वितरण betadistribution normalmvdistribution ricedistribution nakagamidistribution paretodistribution kdistribution arcsinedistribution hoytdistribution. added --disable-libstdcxx-verbose कॉन्फ़िगर विकल्प, जब एक प्रक्रिया असामान्य रूप से समाप्त हो जाती है तब निदान संदेश को अक्षम करने के लिए कॉन्फ़िगर करता है यह लाइब्रेरी प्रतिस्थापन नोटिस के लिए स्थिर रूप से लिंक करने वाले निष्पादकों के आकार को कम करने के लिए एम्बेडेड सिस्टम के लिए उपयोगी हो सकता है। मॉड्यूल फाइलें मॉड्यूल फाइलों का संस्करण बढ़ाया गया है फोरट्रान मॉड्यूल जिन्हें पहले जीसीसी संस्करणों द्वारा संकलित किया गया था, उन्हें पुनः कंपाइल किया जाना चाहिए, जब वे जीसीसी 4 8 जीसीसी 4 8 के साथ संकलित फाइलों में यू.एस. ई. डी हैं, तो पहले संस्करणों के द्वारा बनाई गई फ़ाइलों को पढ़ने में सक्षम नहीं है ऐसा एक ई देता है रबर संदेश नोट उत्पादित कबाड़ीदार डेटा के एबीआई ने ऑब्जेक्ट फाइलों को नहीं बदला है और लाइब्रेरी पुराने संस्करणों के साथ पूरी तरह से संगत हैं, जैसे कि नीचे बताया गया है। एबीआई एन्बलर ऑब्जेक्ट फ़ाइल में उपयोग किए जाने वाले कुछ आंतरिक नामों को विनिर्दिष्ट प्रतीक के लिए बदल दिया गया है मॉड्यूल यदि किसी प्रभावित मॉड्यूल या किसी फ़ाइल का उपयोग एसोसिएशन के माध्यम से उपयोग किया जाता है, तो मॉड्यूल और ऐसी सभी फाइलें जो सीधे इस तरह के प्रतीकों का उपयोग करती हैं उन्हें भी पुनः कंपाइल किया जाना चाहिए। यह परिवर्तन केवल निम्नलिखित प्रकार के मॉड्यूल प्रतीकों को प्रभावित करता है। प्रोसेसमेंट पॉइंटर्स नोट सी-इंटरऑपरेबल फ़ंक्शन संकेतक प्रकार cfunptr प्रभावित नहीं हैं और न ही प्रक्रिया-सूचक घटक हैं.निर्धारित-लंबाई वर्ण स्ट्रिंग। बैकट्रैक आंतरिक सब्सट्रिन जोड़ा गया है यह उपयोगकर्ता कोड प्रोग्राम निष्पादन में एक मनमाना स्थान पर एक बैक्रास को सामान्य रूप से बाद में जारी दिखाता है .- Wc-binding-type चेतावनी विकल्प डिफ़ॉल्ट रूप से अक्षम किया गया है यह चेतावनी देता है कि यदि कोई चर सी विशेष रूप से सी नहीं हो सकता है, यदि चर है आंतरिक ISOCBinding मॉड्यूल में सी इंटरऑपरेबिलिटी के लिए परिभाषित एक तरह के पैरामीटर का उपयोग करने के बजाय एक आंतरिक प्रकार के साथ घोषित किया गया है इससे पहले, यह चेतावनी हमेशा मुद्रित होती थी - Wc-binding-type विकल्प को - Wall। - Wrealloc-lhs द्वारा सक्षम किया गया है और - Wrealloc-lhs - सभी चेतावनी कमांड लाइन विकल्पों को जोड़ दिया गया है, जो निदान जब कोड असाइनमेंट के दौरान एक चर के स्वत: पुनः आवंटन के लिए डाला जाता है यह विकल्प यह तय करने के लिए इस्तेमाल किया जा सकता है कि इसका उपयोग करने के लिए सुरक्षित है - fno-realloc-lhs इसके अतिरिक्त, इसे गर्म लूपों में स्वचालित पुन: आवंटन खोजने के लिए इस्तेमाल किया जा सकता है, arr के लिए, var द्वारा var को बदलकर स्वत: पुन: स्थान नियोजन को अक्षम कर दिया जाता है। - कॉम्परे-रील्स कमांड लाइन ऑप्शन को जोड़ दिया गया है जब यह सेट किया जाता है, तो वास्तविक या तुलना करते समय चेतावनियां जारी की जाती हैं समानता और असमानता के लिए कॉम्प्लेक्स प्रकार एबीएस एबी की जगह उपयुक्त एप के साथ एप्स की जगह पर विचार करते हैं- विक्ट्रे-रील्स सक्षम - वेट्रा द्वारा सक्षम किया गया है। - विस्तार-आजीवन कमांड लाइन विकल्प को सक्षम किया गया है - Wall के साथ सक्षम किया गया है, जो चेतावनी देता है कि यदि पी पॉइंटेटर असाइनमेंट में ऊनेटर अपने लक्ष्य से अधिक निकल सकता है। फ्लोटिंग प्वाइंट नंबर पढ़ना जो कि एक्सपोनेंशन के लिए q का उपयोग करते हैं जैसे कि 4 0q0 को अब पुरानी डेटा फ़ाइलों के साथ बेहतर संगतता के लिए विक्रेता एक्सटेंशन के रूप में समर्थित है IO के समतुल्य लेकिन मानक अनुरूप ई जैसे 4 0e0 फोरट्रान स्रोत कोड के लिए, एक उपयुक्त पैरामीटर जैसे 4 0e0qp जैसे फ्लोटिंग-प्वाइंट लिटरल्स में q को बदलने पर विचार करें कि फ़ॉर्त्रन स्रोत कोड में एक साधारण ई द्वारा कश्मीर की जगह लेना समान नहीं है। GFORTRANTMPDIR परिवेश चर एक गैर - STATUS SCRATCH के साथ खोले गए फ़ाइलों के लिए डिफ़ॉल्ट निर्देशिका का उपयोग नहीं किया जाता है और इसके बजाय GRAPHRON POSIX GNU मानक TMPDIR परिवेश चर को देखता है यदि TMPDIR परिभाषित नहीं है, तो goperran अन्य मैनुअल में दस्तावेज के रूप में अस्थायी फ़ाइलों के लिए निर्देशिका निर्धारित करने के लिए वापस आ जाता है। फोरट्रान 2003 । असीमित बहुरूप चर चर वर्ग के लिए समर्थन जोड़ा गया है Nonconstant वर्ण लंबाई अभी तक समर्थित नहीं हैं। अब तक का प्रकार प्रकार अब समर्थित हैं। ग्रहण-रैंक सरणियों आयाम के लिए प्रायोगिक समर्थन जोड़ा गया है ध्यान दें कि वर्तमान में गफ़्रारन के स्वयं के अरै डिस्क्रिप्टर का उपयोग किया जाता है, जो अलग है टीएस 29113 में परिभाषित किसी से, गफ़्रारन की हेडर फाइल देखें या चस्ज़ भाषा इंटरऑपरेबिलिटी टूल का उपयोग करें। जीसीसी 4 8 2 प्रोवी जाओ 1 1 2 रिलीज का पूर्ण कार्यान्वयन। जीसीसी 4 8 0 और 4 8 1 1 1 रिलीज के प्रारंभिक संस्करण को लागू करते हैं लाइब्रेरी समर्थन पूरी तरह से पूरा नहीं हुआ है। जीओयू लिनक्स और सोलारिस प्लेटफार्मों पर विभिन्न के लिए परीक्षण किया गया है। x86, x8664, पावरपीसी, स्पार्क, और अल्फा सहित प्रोसेसर यह अन्य प्लेटफार्मों पर भी काम कर सकता है.नई लक्ष्य और लक्ष्य विशिष्ट सुधार। AArch64, एआरएम से नया 64-बिट वास्तुकला का समर्थन करने के लिए एक नया पोर्ट जोड़ा गया है। नोट करें कि यह मौजूदा 32-बिट एआरएम पोर्ट से एक अलग बंदरगाह। पोर्ट कमांड लाइन विकल्पों के साथ कॉर्टेक्स-ए 53 और कॉर्टेक्स-ए 57 प्रोसेसर के लिए प्रारंभिक सहायता प्रदान करता है - एमसीपीयू कॉर्टेक्स-ए 53 और - एमसीपीयू कॉर्टेक्स - ए 57. जीसीसी 4 8 4 एआरएम कॉर्टेक्स-ए 53 इरेटा 835769 के लिए एक वैकल्पिक हल जोड़ा गया है और इसे - एमएफिक्स-कॉर्टेक्स-ए 53-835769 विकल्प देकर सक्षम किया जा सकता है वैकल्पिक रूप से इसे जीसीसी को --enable-fix-cortex - A53-835769 विकल्प। AArch32 एक्सटेंशन परिभाषित करने के लिए प्रारंभिक समर्थन जोड़ा गया है डी एआरएमवी 8 आर्किटेक्चर में। कॉर्टेक्स-ए 7 और कॉर्टेक्स-ए 15 सीपीयू के लिए कोड पीढ़ी के सुधार। एक नया विकल्प, - एमसीपीयू मार्वेल-पीजे 4, मैरवेल पीजे 4 प्रोसेसर के लिए कोड जेनरेट करने के लिए जोड़ा गया है। संकलक अब स्वतः VFMA VFMS को उत्पन्न कर सकता है आरईवीएसएच और आरईवी 16 निर्देश। उन्नत सिमड कॉन्फ़िगरेशन के लिए एक नया सदिश लागत मॉडल इस्तेमाल करने वाली ऑटो वेक्टरिंग रणनीतियों में सुधार करने के लिए। अनुसूचक अब खाते में रहने वाले स्पिलिंग की मात्रा को कम करने के लिए लाइव रजिस्टरों की संख्या को ध्यान में रखता है यह कोड प्रदर्शन में सुधार कार्यवाही विकल्प - fno-scheduled-pressure. improvments का उपयोग कर सीमा को हटाया जा सकता है IWMMX2 SIMD इकाई के लिए Marvell iWMMX कोड बनाने और समर्थन के लिए सुधार किया गया है विकल्प - mcpu iwmmxt2 का उपयोग कोड के लिए सक्षम करने के लिए किया जा सकता है उत्तरार्द्ध। एम-प्रोफाइल प्रोसेसर के लिए संकलित करते समय कोड आकार को कम करने के लिए थंब 2 के लिए कोड पीढ़ी के सुधार की एक संख्या। आरटीईईएसएस आरएचटीएमएम्स पोर्ट को ईएबी.कोड जीन का उपयोग करने के लिए अद्यतन किया गया है पुरानी एफपीए और मावरिक फ़्लोटिंग-पॉइंट आर्किटेक्चर के लिए राशन समर्थन को हटा दिया गया है जो पहले से ही इन सुविधाओं पर भरोसा करते थे, उन्हें भी हटा दिया गया है इसमें लक्ष्य। शामिल हैं - - linux-gnu का उपयोग करें बांह - - linux-gnueabi. arm - स्वयं उपयोग बांह - - एबी.एम - - यूक्लिंक्स का उपयोग करें हाथ - - उक्लिनस एबीआईआर - - कोस-एल्फ़ कोई वैकल्पिक नहीं। - फ्रीब्सड कोई वैकल्पिक नहीं। - विहीन-पे कोई वैकल्पिक नहीं। एंबेडेड सी फिक्स्ड पॉइंट के लिए समर्थन जोड़ा गया विवरण के लिए, जीसीसी विकी और उपयोगकर्ता पुस्तिका देखें समर्थन पूर्ण नहीं है। इनलाइन कोडांतरक में रजिस्टर ऑपरेंड के लिए एक नया प्रिंट संशोधक आरम्भ है यह रजिस्टर उपसर्ग के बिना कच्चे रजिस्टर संख्या को प्रिंट करेगा। इस उदाहरण में इनलाइन एंगलर प्रदान की गई सी जैसे कोड जनरेट किया गया है जिसे आर 24 के लिए आवंटित किया गया है और वैल को आर 8 आर 15 के लिए आवंटित किया गया है क्योंकि यह काम करता है क्योंकि जीएनयू कोडल बिना पंजीकृत उपसर्गों के सादे रजिस्टर नंबर स्वीकार करता है। 3-बाइट प्रतीकों वाले स्थिर प्रारंभिक अब समर्थित हैं, इस पर कम से कम 2 2 मिनट की आवश्यकता है। अनुमति दें - mpreferred-ढेर-boun एसएई एक्सटेंशन के साथ x86-64 आर्किटेक्चर के लिए डैरी 3 अक्षम है क्योंकि x86-64 एबीआई को 16 बाइट स्टैक संरेखण की आवश्यकता है, यह एबीआई असंगत है और इसे नियंत्रित परिवेश में उपयोग करने का इरादा है जहां स्टैक स्पेस एक महत्वपूर्ण सीमा है यह विकल्प गलत कोड जब 16 बाइट स्टैक संरेखण जैसे फ़ंक्शंस को संकलित किया जाता है जैसे कि मानक पुस्तकालय से फ़ंक्शन का उपयोग गलत संरेखित स्टैक के साथ किया जाता है इस मामले में, एसएसई निर्देश गलत तरीके से स्मृति पहुंच के जाल को जन्म दे सकते हैं इसके अलावा, चर बाइट्स को गलत तरीके से प्रबंधित किया जाएगा x87 लंबी डबल और इंटे 128, गलत परिणाम हो सकते हैं आपको सभी मॉड्यूलों को - प्रोफ़ेन्ड-स्टैक-सीमा 3 को किसी भी लाइब्रेरीज़ के साथ बनाना होगा इसमें सिस्टम लाइब्रेरी और स्टार्टअप मॉड्यूल शामिल हैं। नए इंटेल प्रोसेसर कोडनम ब्रॉडवेल के लिए RDSEED ADCX ADOX PREFETCHW के साथ समर्थन उपलब्ध है - madx - mprfchw - mrdseed कमांड-लाइन विकल्प। इंटेल आरटीएम और एचएलई इंट्रिंसिक्स, अंतर्निहित कार्य और कोड जनरल के लिए समर्थन इष्टतम - एमआरटीएम और - एमएचले के माध्यम से उपलब्ध है। इंटेल एफएक्सएसआर, एक्ससाइव और एक्ससाइवेट निर्देश के लिए इंट्रिंसिक्स सेट और इंटि-इन फ़ंक्शन क्रमशः - एमएफएक्सएसआर - एमएक्ससव और - एमएक्सएसएओवेट के माध्यम से उपलब्ध हैं। नए - एमएड्रेस-मोड x32 के लिए कम समय विकल्प - maddress-mode short 0x67 पता-आकार ओवरराइड उपसर्ग को उत्सर्जित करके 32-बिट के लिए डिफ़ॉल्ट 64-बिट पते ओवरराइड करता है यह x32 के लिए डिफ़ॉल्ट पता मोड है। नई-निर्मित कार्य रन-टाइम सीपीयू प्रकार और ISA. A निर्मित - फंक्शन में बिल्टइनक्यूप्स को यह पता लगाने के लिए जोड़ा गया है कि क्या रन-टाइम सीपीयू एक विशेष प्रकार का है, यह एक मैच और सकारात्मक शून्य पर एक सकारात्मक पूर्णांक देता है, अन्यथा यह एक स्ट्रिंग को शाब्दिक तर्क स्वीकार करता है, उदाहरण के लिए, बैटिंकप्यूस वेस्टमिरे एक सकारात्मक पूर्णांक देता है रन-टाइम सीपीयू एक इंटेल कोर i7 वेस्टमीयर प्रोसेसर है, कृपया मान्य सीपीयू नामों की सूची के लिए उपयोगकर्ता मैनुअल को देखें। एक अंतर्निर्मित समारोह builtincpusupports को पता लगाया गया है कि रन-टाइम सीपीयू एक विशेष आईएसए सुविधा का समर्थन करता है वापसी एक मैच पर सकारात्मक पूर्णांक और शून्य अन्यथा यह एक स्ट्रिंग शाब्दिक तर्क स्वीकार करता है, आईएसए सुविधा उदाहरण के लिए, बैटिंप्टस समर्थन एसएस 3 एक सकारात्मक पूर्णांक देता है यदि रन-टाइम सीपीयू SSSE3 निर्देशों का समर्थन करता है तो कृपया वैध ISA नामों की सूची के लिए उपयोगकर्ता मैनुअल देखें मान्यता प्राप्त। चेतावनी यदि किसी भी स्थिर कन्स्ट्रक्टर के सामने इन अंतर्निर्मित फ़ंक्शंस बुलाए जाते हैं, जैसे IFUNC आरंभीकरण के दौरान, तो सीपीयू का पता लगाने के लिए आरम्भिक रूप से इस नव निर्मित बिल्ट-इन फ़ंक्शन का उपयोग करके स्पष्ट रूप से चलना चाहिए, builtincpuinit प्रारंभिककरण केवल एक बार किया जाना चाहिए उदाहरण के लिए, इस तरह से एक IFUNC initializer. FunctionInteriorizer के भीतर आविष्कार की तरह दिखेगा.विभिन्नता के साथ बहुमुखी समर्थन। अब एक विशेष प्रोसेसर को लक्षित करने वाले कई फ़ंक्शन संस्करण बनाना संभव है और या ISA फ़ंक्शन संस्करणों में एक ही हस्ताक्षर है लेकिन विभिन्न लक्ष्य विशेषताओं के लिए उदाहरण के लिए, यहां फ़ंक्शन संस्करण के साथ एक प्रोग्राम है। कृपया अधिक जानकारी के लिए इस विकी का संदर्भ लें। x86 बैक एंड-फेसेड्यूले-इन को मज़बूती से काम करने के लिए विकल्प को सुधारने के लिए अंत में सुधार किया गया है यह विकल्प कुछ मामलों में सुधारात्मक निर्देशों को बेहतर बनाने के लिए इस्तेमाल किया जा सकता है और कुछ मामलों में बेहतर प्रदर्शन की ओर जाता है। विंडोज मिनजीडब्ल्यू-वाई 64 लक्ष्य - w64-mingw को कम से कम r5437 की आवश्यकता है Mingw-w64 ट्रंक। नए एएमडी परिवार 15h प्रोसेसर के लिए समर्थन स्टीमोलर कोर अब - एमएआरबी 3 और - एमटीन बीडी 3 विकल्पों के माध्यम से उपलब्ध है। नए एएमडी परिवार 16 एच प्रोसेसर के लिए समर्थन। जगुआर कोर अब - मार्च बीटीवर 2 और - एमटीन बीटीवर 2 विकल्पों के माध्यम से उपलब्ध है। यह लक्ष्य अब - fstack-usage कमांड लाइन ऑप्शन का समर्थन करता है। जीसीसी अब विशेष रूप से R4700, ब्रॉडकॉम एक्सएलपी और एमआईपीएस 34 9 प्रोसेसर के लिए कोड उत्पन्न कर सकता है। संबंधित विकल्प - मार्च आर 4700 - मार्च एक्सएलपी और -3434 क्रमशः हैं। जीसीसी अब बेहतर बनाता है MIPS 74k कोर के लिए डीएसपी कोड आगे समयबद्धन ऑप्टिमाइज़ेशन के लिए धन्यवाद। एमआईपीएस पोर्ट अब - फ़ास्ट-चेक विकल्प का समर्थन करता है। जीसीसी अब - एमएमसीयू और - एमएमओ-एमसीयू कोडांतरक को पास करता है। जीसीसी के पिछले संस्करण आम तौर पर स्वीकार करने के लिए - fpic और - fPIC - mn-abicalls लक्ष्य जैसे mips - elf इस संयोजन का इरादा या समर्थित नहीं था, और स्थिति-स्वतंत्र कोड जीसीसी नहीं बनाया 8 अब एक त्रुटि की रिपोर्ट जब इस संयोजन का उपयोग किया जाता है। PowerPC PowerPC64 RS6000 एसवीआर 4 विन्यास जीएनयू लिनक्स, फ्रीबीएसडी, नेटबीएसडी अब डिफ़ॉल्ट रूप से वीआरएसएवीएवी रजिस्टर को सहेज, अपडेट या अपडेट नहीं करते हैं। संबंधित ऑपरेटिंग सिस्टम वीआरएसईएवी रजिस्टर को प्रत्यक्ष रूप से प्रबंधित करते हैं। बड़ी संख्या में सीओसी समर्थन कमांड लाइन ऑप्शन - एमसीएमडीएलएल के माध्यम से एएमसी के लिए जोड़ दिया गया है। नेटिक थ्रेड - AIX. VMX Altivec और VSX अनुदेश सेट के लिए स्थानीय भंडारण समर्थन जोड़ा गया है, जो एसेट 6 1 और इसके बाद के संस्करण पर उन हार्डवेयर विशेषताओं का समर्थन करने वाले प्रोसेसर को निशाना बनाने में सक्षम हैं। यह लक्ष्य अब एक चेतावनी संदेश जारी करेगा जब भीतरी तेज गतिरोध में हैंडलर पाए जाते हैं एक ही संकलन इकाई यह सुविधा नए - एमए-चेतावनी-बहु-फास्ट-इंटरप्ट आदेश-पंक्ति विकल्प द्वारा बंद की जा सकती है। 390, IBM zEnterprise z के लिए सिस्टम z. Support EC12 प्रोसेसर जोड़ दिया गया है - मर्च zEC12 विकल्प का उपयोग करते समय, संकलक निम्नलिखित नए निर्देशों का उपयोग कोड उत्पन्न करेगा। लोड और जाल निर्देश 2. नई तुलना करें और जाल निर्देश। रोटेट करें और चयनित बिट्स को सम्मिलित करें - बिना सीसी क्लॉबबर.- mtune zEC12 विकल्प नए निर्देशों का उपयोग किए बिना zEC12 विशिष्ट निर्देश समयबद्धन को सक्षम करता है। पंजीयक दबाव संवेदनशील निर्देश समयबद्धन को डिफ़ॉल्ट रूप से सक्षम किया जाता है। ifunc फ़ंक्शन विशेषता को डिफ़ॉल्ट द्वारा सक्षम किया जाता है। memcpy और memcmp invokations बड़ी स्मृति खंड पर या रन समय लंबाई के साथ उत्पन्न नहीं होते हैं जी -10 या उच्चतर के लिए ट्यूनिंग को अब इनलाइन करना इसका उद्देश्य IISFUNC अनुकूलित संस्करणों का उपयोग ग्लिबिस में करना है। डिफ़ॉल्ट संरेखण सेटिंग्स को कम आक्रामक रूप से कम कर दिया गया है। इसके परिणामस्वरूप - Os. के अलावा अन्य अनुकूलन स्तरों के लिए अधिक कॉम्पैक्ट कोड। परमाणु निर्मित फ़ंक्शंस। एक नया विकल्प - मॅटोमिक-मॉडल मॉडल, उत्पन्न परमाणु अनुक्रमों के लिए मॉडल का चयन करता है निम्नलिखित मॉडल एस सॉफ्ट-गउसा सॉफ़्टवेयर जीयूएसए अनुक्रमों एसएच 3 और एसएच 4 को केवल एसएच 4 ए लक्ष्य पर समर्थित हैं, यह अब भी आंशिक रूप से movco l और movli l निर्देशों का उपयोग करेगा जब यह लक्ष्य sh3 है - - linux या sh4 - - linux hard-llcs हार्डवेयर movco l movli l sequences SH4A केवल नरम-टीसीबी सॉफ्टवेयर धागा नियंत्रण ब्लॉक अनुक्रम नरम - imask सॉफ्टवेयर flipping अनुक्रम विशेषाधिकारित मोड केवल बाधित यह लक्ष्य है जब लक्ष्य sh1 है - - linux या sh2 - - linux कोई संबंधित परमाणु समारोह कॉल उत्पन्न करता है अंतर्निहित कार्य यह SH64 लक्ष्य के लिए डिफ़ॉल्ट है या जब लक्ष्य sh नहीं है - - linux। विकल्प - मॉफ्ट-परमाणु को पदावनत किया गया है यह अब - मेटोमिक-मॉडल सॉफ्ट-गस के लिए उपनाम है। एक नया विकल्प - एमटीएएस कम्पाइलर द्वारा चयनित परमाणु मॉडल की परवाह किए बिना परमाणुस्टेन्डसेट निर्मित इन फ़ंक्शन के लिए टीएएस बी निर्देश तैयार करता है। टूलबैंक के निर्माण के समय में अब परमाणु मॉडल को दिखाया जाता है। mov b और mov w instru के लिए जोड़ा गया समर्थन विस्थापन संबोधन के साथ सीटें। SH2A निर्देशों के लिए जोड़ा गया समर्थन movu b और movu। पूर्णांक अंकगणितीय के लिए कोड के लिए कई सुधार। सशर्त शाखाओं और कोड में सुधार जो कि टी बिट को शामिल करता है एक नया विकल्प - mzdcbranch संकलक को शून्य-विस्थापन के पक्ष में बताता है शाखाएं यह एसएच 4 लक्ष्य के लिए डिफ़ॉल्ट रूप से सक्षम होती हैं। प्रीफ़ निर्देश अब एसएच 3 लक्ष्य के लिए अंतर्निर्मित फ़ंक्शन द्वारा उत्सर्जित किया जाएगा। एफएमएसी अनुदेश अब एफएमएएफ़ मानक समारोह और अंतर्निर्मित एफएमएफ़ द्वारा निर्मित फ़ंक्शन द्वारा उत्सर्जित किया जाएगा.- mfused-madd विकल्प को मशीन-स्वतंत्र-एफ़पीपी-अनुबंध विकल्प के पक्ष में पदावनत किया गया है नोटिस कि एफएमएसी अनुदेश अब एबीसी जैसे अभिव्यक्ति के लिए डिफ़ॉल्ट रूप से जेनरेट होगा। यह संकलक डिफ़ॉल्ट सेटिंग - ऍफ़पीपी-अनुबंध के कारण जल्दी है। विकल्प - mfsrra और - mfsca को SH4A के अलावा अन्य लक्ष्य पर fsrra और fsca निर्देशों का उपयोग करने वाले कंपाइलर को अनुमति देने के लिए जहां वे डिफ़ॉल्ट रूप से पहले ही सक्षम हैं। builtinbswap32 अंतर्निर्मित फ़ंक्शन यह अब एक पुस्तकालय फ़ंक्शन कॉल के बजाय स्वैप बी और स्वैप डब्ल्यू निर्देशों के अनुक्रम के रूप में विस्तारित किया गया है। - एमआईईई विकल्प का व्यवहार तय हो चुका है और नकारात्मक फॉर्म - एमएमओ-आईईआईई को नियंत्रित करने के लिए जोड़ा गया है आईबीईई फ्लोटिंग प्वाइंट तुलना की अनुरूपता डिफ़ॉल्ट रूप से - मीजी अब सक्षम हो गई है और विकल्प - अधिक-गणित केवल निहित - निर्धारित - एमआईईईई। बिल्टइनपॉइंटर और बिल्टिन्सथथरेपॉइंटर के अंतर्निर्मित फ़ंक्शन के लिए जोड़ा गया समर्थन यह मानता है कि जीबीआर का उपयोग थ्रेड को रखने के लिए किया जाता है वर्तमान थ्रेड का सूचक स्मृति बिल्लायनथिएडपॉन्टर द्वारा लौटाए गए पते के सापेक्ष लोड और स्टोर अब भी जीबीआर आधारित विस्थापन पते मोड का उपयोग करेगा। शेंडीया के अलावा अन्य लक्ष्य के लिए - एमडीआईवी विकल्प को तय किया गया है और नियागारा 4 के लिए अनुकूल निर्देश अनुसूचित किया गया है। अतिरिक्त समर्थन - mcmodel मॉडल कमांड लाइन विकल्प के लिए समर्थित मॉडल छोटे और बड़े हैं। यह लक्ष्य अब नए-एम वी 850 के उपयोग के माध्यम से E3V5 आर्किटेक्चर का समर्थन करता है e3v5 कमांड लाइन विकल्प यह e3v5 LOOP निर्देश के लिए प्रयोगात्मक समर्थन भी है जो कि नई - एमएलओओप कमांड लाइन विकल्प के जरिए सक्षम किया जा सकता है। यह लक्ष्य अब - fstack-use कमांड लाइन ऑप्शन का समर्थन करता है.ऑपर बीएसडीडी एएमडी 64 x8664- - ऑपेनबीएसडी को जोड़ा गया है और ओपन बीएसडी आईओएन 638 i386- - ऑपेनबीएसडी के लिए समर्थन का पुनरुत्थान किया गया है.विंडोज साइगविन। एक्ज़ेक्टैबल्स को अब साझा किए गए लिबगसीके के जरिए डिफ़ॉल्ट रूप से लिंक किया गया है पिछला डिफ़ॉल्ट स्थिति स्थिर था, जिसे अभी भी स्पष्ट रूप से निर्दिष्ट कर किया जा सकता है- या कमांड लाइन पर स्थिर - libgcc हालांकि यह दृढ़ता से सलाह दी जाती है, क्योंकि यह किसी भी अनुप्रयोग के लिए समस्याएं पैदा करेगा जो जीसीसी द्वारा संकलित DLL का उपयोग करता है यह एक अखंड खड़े अकेले आवेदन के लिए ठीक होना चाहिए जो केवल विंडोज DLL के विरुद्ध लिंक है, लेकिन बहुत कम या कोई लाभ नहीं प्रदान करता है। यह समस्या रिपोर्टों की सूची है जीसीएस के बग ट्रैकिंग सिस्टम से पीआरएस जिसे 4 8 1 रिलीज में तय किया जाना है यह सूची पूरी नहीं हो सकती है, यह संभव है कुछ पीआर जो तय किए गए हैं, उन्हें यहां सूचीबद्ध नहीं किया गया है। सी 11 क्रोनो स्टडी क्रोनो सिस्टमक्लॉक और एसटीडी क्रोनो स्टेडक्लेक क्लास ने जीसीसी 4 8 1 में एबीआई बदल दिया है, वे दोनों अब एक दूसरे के अलग नहीं होते हैं, दोनों एसटीडी क्रोनो नैनोसेकंड रिज़ॉल्यूशन का उपयोग करते हैं , अधिकांश जीएनयू लिनक्स कॉन्फिगरेशन पर स्टडी क्रोनो स्टीडक्लॉक अब आखिरकार मोनोटोनिक है, और दोनों क्लास को पिछले जीसीसी रिलीज के साथ स्टडी क्रोनो सिस्टमक्लॉक से अलग तरीके से उलझाया जाता है, स्टडी क्रोनो माइक्रोसकंड्स के साथ अब स्टड क्रांको सेकेंड रेज़ल्यूशन अभी भी डिफॉल्ट कॉन्फ़िगर किए गए लिबस्टडीसी नोट के साथ पीछे की संगतता के लिए निर्यात किया जाता है। उस libstdc को --enable-libstdcxx - समय के साथ विन्यस्त करने के लिए एबीआई मूलभूत कॉन्फ़िगर किया गया libstdc के साथ उन दो वर्गों के लिए असंगत है और कोई भी ABI संगतता उन विन्यास के लिए नहीं दी जा सकती है, इसलिए किसी भी सी 11 कोड उन वर्गों का उपयोग करता है और संकलित और लिंक किया गया है गैर-डिफॉल्ट-enable-libstdcxx - समय विन्यास विकल्प के साथ कॉन्फ़िगर किए गए libstdc के विरुद्ध recompiled करने की आवश्यकता है। यह लिज़ है जीएससी के बग ट्रैकिंग सिस्टम से पीआरएस की समस्या रिपोर्ट करता है जिसे 4 8 2 रिलीज में तय किया जाना है यह सूची पूरी नहीं हो सकती है, यह संभव है कि कुछ पीआर जो तय किए गए हैं, यहां सूचीबद्ध नहीं हैं। यह है जीसीसी के बग ट्रैकिंग सिस्टम से पीआरएस की समस्या की सूची 4 8 3 रिलीज में तय होने के लिए जाना जाता है। यह सूची पूरी नहीं हो सकती है, यह संभव है कि कुछ पीआर जो तय किए गए हैं, यहां सूचीबद्ध नहीं हैं। new powerpc64le-linux platform has been added It defaults to generating code that conforms to the ELFV2 ABI. This is the list of problem reports PRs from GCC s bug tracking system that are known to be fixed in the 4 8 4 release This list might not be complete that is, it is possible that some PRs that have been fixed are not listed here. This is the list of problem reports PRs from GCC s bug tracking system that are known to be fixed in the 4 8 5 release This list might not be complete that is, it is possible that some PRs that have be en fixed are not listed here. For questions related to the use of GCC, please consult these web pages and the GCC manuals If that fails, the mailing list might help Comments on these web pages and the development of GCC are welcome on our developer list at All of our lists have public archives. Copyright C Free Software Foundation, Inc Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. SPEC CPU2006 Changes in V1 1.Last updated Date 2008-05-13 09 00 38 -0500 Tue, 13 May 2008 by Author john. To check for possible updates to this document, please see. Introduction Who Wants V1 1.SPEC CPU2006 V1 1 is an incremental update to SPEC CPU2006 V1 0 Results generated with V1 1 are comparable to results from V1 0 and vice versa V1 1 is intended to improve compatibility, stability, documentation and ease of use Changes are intended to be useful to several kinds of users. For users of new platforms. Updates to 12 benchmarks primarily to improve portability. For anyone who reads or produces a result. For researchers and developers. Documentation of the monitor hooks. Easier investigation of alternate sources or workloads, via the converttodevelopment utility. For testers of large systems. A group of 6 features to make the setup phase faster on big systems. Refinements of the submit and bind features and greatly expanded documentation thereof. For new users of the suite. Clarifications and additions to the documentation. Updated example config files. For those who test many platforms. Fewer unexpected rebuilds. The ability to bundle up a set of binaries and their associated config file, for easy transportation and use on other systems. Many other features intended to make benchmarking easier, more productive, and less error-prone, as summarized in the table of contents Depending on the level of detail at which you count, there are approximately 60 new, updated, or newly-documented user-visible features in V1 1.If you have already used SPEC CPU2006 V1 0 and already have configuration files, it is recommended that you read through this document, so as to avoid surprises during use of V1 1 Among the changes that you are likely to be affected by are the change to build directory locations the reporting of parallel flags the automatic setting of test date and the addition of debug logs If you still have USER numbers, it s time to stop now. This table of contents proceeds in rough order of time for a user of the suite you acquire a platform, ensure that you are familiar with the rules, build the benchmarks, run them, generate reports, and occasionally use utilities and other features.4 Submit lines continued.6 Trailing spaces in config files. Note links to SPEC CPU2006 documents on this web page assume that you are reading the page from a directory that also contains the other SPEC CPU2006 documents If by some chance you are reading this web page from a location where the links do not work, try accessing the referenced documents at one of the following locations. The SPEC Docs Unix or SPEC Docs Windows directory on a system where SPEC CPU2006 has been installed. The Docs directory on your SPEC CPU2006 distribution DVD. New systems supported. With this release of SPEC CPU2006, new support is added for. HP-UX 11iv1 on PA-RISC systems. MacOS X 10 1 on PowerPC systems. Systems no longer supported. With this release of SPEC CPU2006, su pport is removed for. RHAS 3r2 to RHAS 4r3 on Itanium systems. Linux on PowerPC-based systems with GLIBC 2 2 1-2 2 4.Changes to benchmarks. The following benchmark changes were made in V1 1.Added new portability flag - DSPECCPUNEEDPOSIXIDS to include the POSIX symbols uidt gidt and modet on Windows Note that this flag is the default for some Windows compilerspiling on Solaris with gcc, or gcc-compatible compilers, used to fail with messages such as because of a change in the Solaris FILE structure This problem has been fixed by removing the outdated code. Under V1 0 of SPEC CPU2006, if you compiled with gcc on ia64 Linux, the benchmark would sometimes abort abnormally with an unaligned access error, due to a jmpbuf on some Linux systems whose alignment violated the ABI You can now optionally set SPECCPUIA64GCCALIGNMENT to force jmpenv in scope h to be better aligned. Removed line directives from c-parse c. Several code segments which were protected by if defined SPECCPU2006 should have said S PECCPU and were fixed The effect of the change is to increase the degree to which both gcc and non-gcc compilers are presented with the same souce code when compiling. Internal system calls which set the OS scheduling priority were disabled The effect of this change is minimal, because when it is run from the SPEC harness, the GROMACS line option - nice 0 is included, which also disables these system calls For V1 0, a user studying outside the runspec harness might have encountered inconsistent measurements if - nice 0 was not used. Replaced a GPL version of the C99 math function erfc with a public domain version. Added new portability flag - DSPECCPUHAVEERF to have the benchmark use a system s erfc library function instead of the version included with the benchmark This flag is the default on some platforms. Rename getoptinternal to getoptinternal to avoid possible name clash user functions are not supposed to start with underscore. Added explicit inclusion of cstring header file. Added explic it inclusion of cstring header file in. Added some missing prototypes in quadrature h and tria h. In V1 0, some output was written to stderr That output is now written to regular files SPEC s validation has been adjusted to validate the new output. In V1 0, approximately 25,000 lines of output were duplicated to both the log file and to standard error The duplicate output has been elimated from stderr. In config h, there is a list of platforms that have complex h included Additional platforms can now be accomodated by setting - DSPECCPUNEEDCOMPLEXH. Some compilers object to having TRUE and FALSE used in this enum in parsetcommon h. which implicitly redefines FALSE to 0 and TRUE to 1 Although these are the same values they already had, some compilers object to the redefinition A simple solution is to undefine these just before the enum, which can be done by setting the new flag - DSPECCPUREDEFTRUEFALSE. Renamed random h to avoid clashes with system headers. Added new portability flag - DSPECCPUNEE DIOH to include the header file io h on Windows Previously, io h was only included if MSCVER was defined by the compiler. Fixed a Fortran 90 standards violation where two associated dummy arguments were defined during the execution of a subprogram Note that this update used the same fix as WRF version 2 2 is based on WRF version 2 1.In a bit more detail There is a subroutine in moduleblysu F90 that is called in violation of the Fortran standard about variable overlapping The routine tridin has three variables cu, r1,r2 that are passed in the same parameters as au, a1,a2 in both calls The new code has fixed this problem by making copies of the read-only versions of the duplicated parameters before the call. Added explicit inclusion of cstring header file. Multiple portability changes for use with the PGI C compiler on Windows. Added multiple portability changes for use with the ParallelNavi compiler on Solaris To use, you ll need to set - DSPECCPUPARANAVI. Run Rules Changes. Explain a philosophy of estimates in rule 1 6 and clarify marking of estimates in rule 4 8.Tweak rule 2 1 1 to clarify that the rule is discussing benchmark source code. Clarify documentation of system state and tuning, in rules 3 1 2 4 2 3 paragraphs b and g , and 4 2 4 paragraphs f, g. Add rule 3 2 5 for parallel setup and parallel test. Expand rule 4 2 3 on automatic parallelization and reporting thereof. Add new rule 4 2 6 regarding disclosure of configurations for user-built systems. In rule 4 3 2 allow conversions in both directions between SPECspeed metrics and 1 copy SPECrate metrics. In rule 4 6 note that a required disclosure is considered public information. Building Benchmarks. Build directories separated Benchmarks are now built in directories named or, on Windows, , rather than under the benchmark s run subdirectory The change is intended to make it easier to copy, backup, or delete build and run directories separately from each other It may also make problem diagnosis easier in some situations, sin ce your habit of removing all the run directories will no longer destroy essential evidence 10 minutes before the compiler developer says Wait - what exactly happened at build time. If you prefer the V1 0 behavior, you can revert to it by setting buildinbuilddir to 0.You can now bundle up a set of binaries and their associated config file, for easy transportation and use on other systems. WARNING Although the features to create and use bundles are intended to make it easier to run SPEC CPU2006, the tester remains responsible for compliance with the run rules And, of course, both the creators and the users of bundles are responsible for compliance with any applicable software licenses. Parallel builds on Windows too Users of Microsoft Windows systems can now use multiple processors to do parallel builds, by setting makeflags for example. This feature has worked with SPEC CPU testing on Unix for many years what s new in CPU2006 V1 1 is the ability to use it on Windows Note that requesting a parallel build with makeflags - j N causes multiple processors to be used at build time It has no effect on whether multiple processors are used at run time, and so does not affect how you report on parallelism. Unexpected rebuilds reduced In V1 0, the tools were much more likely to trigger automatic rebuilds of the benchmark binaries than they are in V1 1, because unrecognized options e g a mis-spelled CXXOPTIMZIE or a user-defined option such as MYOPTS would be passed to specmake and the tools had no way to know what specmake did with such options Now, the tools record only what is actually used by specmake plus the options that are sent to the shell e g via fdopre0 With this more careful recording, config file changes do not trigger rebuilds unless they actually affect the generated binary. Running Benchmarks. Parallel Setup For reportable runs, substantial time may be required during the setup phase, as the tools write run directories for every copy, and validate that benchmark binarie s get the correct answers for the non-timed test train workloads SPEC CPU2006 V1 1 provides several new features to allow these operations to complete more quickly by optionally doing more operations in parallel parallelsetup paralleltest parallelsetuptype parallelsetupprefork benchpostsetup and postsetup. During testing of V1 1, a very large server with over 600 hwthreads was observed to complete the binary validation phase about 8x faster using paralleltest, and the ref directory setup phase more than 2x faster with parallelsetup The net time saved on this very large server was more than 10 hours. Your mileage may vary. The effects of these options are much less pronounced on small servers. The effects are strongly affected by your disk setup. Asking your disk system to do more than it can handle may make your setup phase slower, not faster For example, asking a disk with a single actuator arm to do parallel setup of 30 copies may cause the disk to spend most of its time seeking. When cons idering your disk layout options, bear in mind that the run rules require use of a single file system. Note that these setup features parallelsetup paralleltest parallelsetuptype and parallelsetupprefork control parallelism during the preparation phase for running the benchmarks, not the actual runs Therefore, they have no effect on the setting of the report field. Auto Parallel Yes No. Per-benchmark basepeak and copies - behavior change If you select basepeak 1 for an individual benchmark, the number of copies in peak will be forced to be the same as in base Note that in SPEC CPU2006 V1 0, you could set basepeak for a benchmark, and still change the number of copies in peak this was deemed to be an error If you want to run the same tuning in both base and peak, while changing the number of copies, you will need to build two binaries with the same compiler switches. Per-benchmark bind The bind list can now differ on a per-benchmark basis in peak Allowing this difference was viewed as a con venience, since the run rules already allow the submit command to differ on a per-benchmark basis in peak. The PreENV config file option allows setting of environment variables prior to the exectuion of runspec. Run-time monitoring The monitor hooks have been a little-known feature of the SPEC CPU toolset for many years They were first described in the ACM SIGARCH article SPEC CPU2006 Benchmark Tools and are now further described in The monitor hooks allow advanced users to instrument the suite in a variety of ways SPEC can provide only limited support for their use if your monitors break files or processes that the suite expects to find, you should be prepared to do significant diagnostic work on your own. SPECUSERNUM no longer recognized The field SPECUSERNUM was deprecated in V1 0 of SPEC CPU2006, in favor of SPECOPYNUM SPECUSERNUM is no longer recognized in V1 1 No error message is printed If you still have user numbers lurking in your config file, make them into copy numbers, please. Auto Parallel - changes to handle common cases If benchmarks are automatically optimized to use multiple threads, cores, and or chips at run time, the tester needs to indicate this in the report as. Auto Parallel Yes. For V1 0, it was sometimes difficult to ensure that reports were accurate, in part because there can be multiple sources of run-time parallelism as described in the run rules. With SPEC CPU2006 V1 1, the V1 0 method of filling out the above field, swautoparallel has been retired, and three new features have been introduced to better reflect these sources of parallelism. When writing a flags file, the parallel flag attribute should be set for compiler flags that cause binaries to be multi-threade d Then, when binaries that use those flags are run, the report type will be listed as Auto Parallel Yes. The config file field swparallelother should be set when there are other non-compiler sources of parallelism. A rawfile-only field, swparalleldefeat can be used to indicate that, despite any other settings, a tested system has been forced to run in a single-threaded mode for example, by removing all but one processor. The intent is that the most common case will be handled automaticallymonly, the SPEC tools will use i to automatically determine whether the run is parallel For this case, ii and iii will not be needed. If your source of parallelism is not visible to the SPEC toolset, you can set ii. Rarely, you can take a software stack which appears to be parallel, but explain with iii why it was not. Overall, the setting of the Auto Parallel field in reports can be thought of as if it were derived from this logic. or for the benefit of those readers who think in FORTRAN, it is as if the de rivation were. CSV format updated - If you populate spreadsheets from your runs, you probably shouldn t be doing cut paste of text files you ll get more accurate data by using --outputformat csv The V1 1 CSV output now has a format that includes much more of the information in the other reports All runs times are now included, and the selected run times are listed separately The flags used are also included Although details of the new features are not shown in the documentation, you should explore them, by taking the new CSV out for a test drive It is hoped that you will find the V1 1 format more complete and more useful. Flag reporting - multiple files supported, flag order preserved, report readability There are several changes to reporting on compiler flags. You can now format a single result using multiple flags files This feature is intended to make it easier for multiple results to share what should be shared, while separating what should be separated Common elements such as a certa in version of a compiler can be placed into one flags file, while the elements that differ from one system to another such as platform notes can be maintained separately Suggestions on use of this feature can be found in. The flag reporter now does a better job of reporting flags in the same order in which they appeared on the command line. Flag reporting has been re-organized in an attempt to improve readability. Within the Optimization Flags section, the report no longer prints phrases such as Fortran benchmarks except as noted below because readers may not remember which benchmarks are in Fortran Instead, all the Fortran benchmarks are enumerated, and if some use the same flags as others, that fact is noted in line, rather than at the top of the list. Within the Portability Flags section, benchmarks appear in order by number, rather than ordered by language. When the reporter detects that base and peak are sufficiently different from each other e g different compilers, or different porta bility options the flags report is ordered to put all the base information first, then all the peak information - for example. Graphs cleaned up. Graphs have been changed to reduce the amount of shading, and to reduce painting of other pixels that were not essential to the data being presented with a tip of the hat to Professor Tufte s notion of reducing chartjunk , or apologies, depending on the reader s opinion of the change. Report names have changed. In CPU2006 V1 0, final reports had names of the form. for example, and so forth The form of the file names has changed to now be. for example. There are two reasons for this change. For CPU2006, all reportable runs use a workload named ref , but this is not necessarily true for other benchmarks that use the same toolset Designating the workload in the file name reduces possible ambiguity. If you select the test or train workloads with the --size switch , output files for V1 0 were already tagged with the workload designator this change causes r ef to match the other two. Note For V1 0, a reportable run would generate three files and For V1 1, for a reportable run, you will see only You won t see or unless you say --size test or --size train in your runspec command. Seconds are reported with more digits. Background For certain values, the SPEC tools print 3 significant digits This is intentional For example, if one system has a SPECintrate2006 performance of 1234 456 and another has a SPECintrate2006 performance of 1229 987, it is arguable that the performance of these systems is not materially different Given the reality of run-to-run variation which is, sometimes, on the order of 1 , it makes sense to report both systems SPECintrate2006 as 1230.Although there is agreement that it is acceptable to round SPEC s computed metrics to 3 significant digits, it has been noted that the argument is weaker for rounding of original observations In particular, if we wish to acknowledge the reality of run to run variation, then it seems reas onable to report a time of 1234 456 seconds using an integral number of seconds 1234 , rather than rounding to the three significant digits, which in this case would be rounding to the nearest 10 seconds 1230.Change made Ever since the release of V1 0 of SPEC CPU2006, results posted on SPEC s web site such as the HTML, PDF, and text formats have used 3 significant digits for computed metrics, and seconds larger than 1000 have been reported as an integral number of seconds As of V1 1, reports produced on your own test systems now behave the same way. The Submission Check report is now automatically included in the outputformat list when using rawformat This change was made because the typical use of rawformat is to create final submission quality reports Even if you don t plan to submit your result to SPEC, the checks that are done by Submission Check can help you to create reports that are more complete and more readable. The testdate is now automatically set from the system clock, and y ou should not set it yourself. New Utilities Features. Convert to Development In order to assist with compliance with the run rules so that results are meaningful and comparable , the SPEC CPU tools perform various checks to ensure that benchmark code, workloads, and tools match the original distribution Sometimes, though, researchers or developers may want to work in an environment without these checks, for example, when modifying code to add performance instrumentation. Prior to V1 1, doing so typically required that you abandon the tools With V1 1, you now have another choice you can continue using the SPEC supplied toolset in a development sandbox, via the converttodevelopment utility. Dump alternative source dumpsrcalt is a utility which shows you the content of. The index utility remains UNSUPPORTED, but is now documented for the first time. Make alternative source makesrcalt is a utility which is used to create packages with newly developed alternative sources This utility is ehanced in, and is documented for the first time in, V1 1.ogo top If you type ogo without any parameters, or if you type ogo top the command sets your current directory to GO instead of to SPEC. The portprogress utility is documented now. The specrxp utility validates flags files It is called automatically, or you can call it directly if you wish. SPECspeed metrics from SPECrate test Using rawformat, you can now convert a 1-copy SPECrate result to a SPECspeed result. Other New and Changed Tools Features. Benchmark lists and sets Two formerly undocumented features are now documented your config file can reference benchmark lists and sets Set references use the various bset files that are found SPEC benchspec CPU2006 or SPEC benchspec CPU2006 If you are a user who already has noticed this feature, please note that the definitions of the bsets have changed, and the number of bsets has been reduced. Debug logs Failed runs now leave behind additional detail, in files such as Temporary files are also left behind after a failed run If you are managing disk space on a tight budget, you ll need to adjust your cleaning methods. Keeping temporaries If you are having trouble debugging your test setup for example, if your new submit command or paralleltest option is failing , you may want to try the new keeptmp feature When this option is set, the above-mentioned debug log is kept, along with the various temporary files that it mentions. If you leave keeptmp at its default setting, temporary files will be automatically deleted after a successful run If you are managing disk space on a tight budget, and keeping temporaries, you ll almost certainly need to adjust your cleaning methods. submit lines continued It is now possible to append a numeral to submit lines, to continue your submit commands over several lines This feature is intended to improve the readability of your config file when using the submit feature. Submit notes The tools will now automatically insert a section with notes on your su bmit command for runs that use submit You can customize the section. Trailing spaces are now stripped in config files, unless preceded by a backslash, as described in the section on whitespace. Documentation Updates. Documentation has been added for the new features mentioned in this document Most of the changes are linked from the descriptions above A few items might not be immediately obvious from the above links, and are called out here. A new chapter About Alternate Sources was added. A new section on automatic rebuilds suggests a way to test whether proposed changes would force a rebuild without actually doing the build. More examples are provided for how to specify a bind list, including use of a here document. Explain that you are allowed to change the feedback options and show how to find out the default options Provide a couple of examples of fdo modification. The discussion of free form notes for readers has been substantially expanded. The documentation now tells you what happens wit h macros that aren t defined if you try to use them. All options that affect runspec are described together In V1 0, there were two tables, one for the options that could be mentioned either on the command line or in the config file, and a separate table for options that can only be mentioned in a config file. A sidebar about quoting was added, to try to help reduce confusion when you are trying to ensure that variables are interpreted by the correct software. The documentation of log files now suggests some useful search strings that can help you as you try to find your way through a log. The documentation of submit was rewritten and expanded. Flag file types have been clarified, using an example that points to the three files for result 00001, as posted at. A complete example is provided to show how you can edit a flags file and use rawformat to incorporate it. A Recommended Practices section has been added. The discussions of replacement of example text - both example and exreplacement - ha s been considerably expanded to explain the difference between the two, and examples of their use are shown. The description of directory sharing via outputroot now starts with a simple summary of the steps. More details are given about --review. The documentation now describes the run order for reportable runs. The output format subcheck is explained. The description of --update now explains that additional items might be updated, not just your flags files. Updated Feature Index. These user-visible features are new, updated, or newly documented for SPEC CPU2006 V1 1.To compile SPEC CPU2006 benchmark suite for SimpleScalar based simulators. More generically, compile SPEC CPU2006 suite for Alpha-OSF based systems. Possible Solutionspile applications on a system which is Alpha-dec-OSF and use the binary AS IS for SimpleScalar However c code of SPEC 2K6 seems quite complex which are hard to compile with older version of glibc This means that one requires not just a system with Alpha-dec-OSF but al l the latest compilers on that system to compile c, c and Fortran source code. Use a cross-compiler, there are many available in Internet, which compiles c, c and Fortran code for alpha-dec-osf Most of the cross compilers are based on gcc. My Approachpiling all the source code on a alpha-dec-osf machine would be ideal However I don t have access to any such machine at the moment so I gave an attempt to compile SPEC 2K6 using a cross-compiler There are two options either build one or use one if someone has already built a cross-compiler for the exact system in which you want to compile the applications. Cross-Compiler Approach. Sreepathi Pai describes a method to build a cross-compiler from gcc, glibc, and Alpha OSF 1 system headers Here is the link to his project page if you wish to repeat the experiment We have build a cross-compiler using his method Here it is. Dan Kegel describes how to build cross-tools for almost any ISA-OS pair here. M5Sim project page also have few cross-compilers and their pre-complied binaries here. One of the latest and best cross-compiler is crosstool-ng which is available here We built a cross-compiler for alpha-linux-gnu system and successfully compiled 27 applications out of 29 from SPEC 2K6 suites However, Alpha-Linux ISA OS generates elf64-alpha format whereas SimpleScalar Alpha-OSF requires ecoff-littlealpha format One can use objcopy utility to translate among those two formats, however, the biggest challenge is system calls implementation in SimpleScalar More about this is in Alpha-Linux Support in SimpleScalar Section. Alpha-Linux Support in SimpleScalar. One of the challenges with current SimpleScalar tool is that it only accepts alpha-osf binaries and it is hard to find out good up-to-date tool-chain for this architecture OS Most systems have Alpha-Linux and an up-to-date tool-chain is also available for this tuple Hashem Hashemi ported SimpleScalar for Alpha-Linux and if you want it, here is the link to his project page Although he doe sn t mention about the changes which he has to make, in order to support alpha-linux, it is not so difficult Look into syscall c, loader c located in target-alpha-linux folder An additional file elf64 c is also added which adds support for elf64 format as oppose to ecoff c which was originally there to support ecoff-littlealpha format. System Requirements for SPEC CPU2006.32-bit system with at least 1 GB of memory.64-bit system with at least 2 GB of memory. At least 8 GB of disk space. Anything less would cause problems and you may end up measuring the speed of your system paging rather than actual benchmarks speed. Installation of SPEC CPU2006.Copy the whole folder called spec-cpu2006 from DVD to your home or destination folder wherever you wish to keep them. In order to install invoke the from. If the installation package is able to identify your architecture and configuration correctly it would return with success. Next step is to source cshrc from the. spec-cpu2006 folder This would load the additional evars which are needed for suite. Multiple Inputs for Same Benchmark. Some benchmarks have multiple inputs For example gcc the GNU C Compiler has 7 different inputs in the form of different data files to be used during execution I believe that it is common practice to select one of the inputs to use with SimpleScalar, although a true SPEC run on a machine requires all of the inputs be run I think That is, results are reported for one input set for gcc in a paper, not for every input set Some people indicate which input set they use by suffixing the benchmark name with the input set name for example, gcc-scilabpilation of SPEC CPU2006.Although you can locate the source code of individual benchmarks from benchspec folder and try to compile each benchmarks manually but that s not the preferred way SPEC also provides few tools to build run the benchmarks on your system and create desired binaries All tools are located in bin folder We will u se those tools to build and run some of the applications. Clean up all the run and build directories if you need to in order to re-claim space. runspec --action scrub all. Build for alpha-linux using the base configuration. runspec --action build --tune base bzip2.Upon successful building, log is created in. result folder and binary in. Run a benchmark for test input. runspec --size test --tune base --noreportable --iterations 1 bzip2.Run a benchmark for full run with reference input. runspec --size ref --noreportable --iterations 1 bzip2.Build all the benchmarks. runspec --size ref all. Execute a reportable run of whole suite. runspec --action validate all. Build, runs and validates all the benchmarks for correct output. SPEC CPU2006 Run on ACALSRV. ACALSRV is a Quad core machine in our lab Each core is two-way SMT and it is 64-bit linux box In order to test its compute power we ran few benchmarks on this machine and compared the timing with a reference machine Base Ref is time taken to run the ap plication on SPEC2K6 prescribed base machine and Base Run Time is time taken to run the application on ACALSRV machine. ACALSRV is approx 14x faster than SPEC2K6 base reference machine. Cross Compilation of SPEC CPU Benchmarks. In order to cross-compile SPEC CPU 2K6 for alpha architecture change the configuration file in config folder Look for CC, CXX and FC flags and supply the correct path of cross-compiler We have following cross-compilers at the moment. alpha-dec-osf4-gcc cross compiles c source codes to alpha-osf binary. alpha-dec-osf4-g77 cross compiles Fortran source codes to alpha-osf binary. For c we don t have any cross compiler at present. Alpha OSF4 ecoff Binaries. If you don t have inputs which you are suppose to purchase from spec corp for the applications then you can t use them You can use the command lines from this page to simulate the spec 2k6 benchmarks. Single Thread Simulation Results. Finally, the experience brings some results too We were able to compile and simulate 12 a pplications 5 INT and 7 FP for single thread using SimpleScalar. Simulator Configurations. Simulation window 100 Million INS. Issue Decode Commit 8 4 6.L1 Cache Size 32 KB 64B word, 4-Way. L2 Cache Size 1 MB 128B word, 8-Way. Base configuration and reference inputs.

No comments:

Post a Comment