अंग्रेज़ीफ्रेंचस्पेनिश

Ad


ऑनवर्क्स फ़ेविकॉन

mips-linux-gnu-gnatgcc - क्लाउड में ऑनलाइन

उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर पर ऑनवर्क्स मुफ्त होस्टिंग प्रदाता में mips-linux-gnu-gnatgcc चलाएं।

यह कमांड mips-linux-gnu-gnatgcc है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर में से एक का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


जीसीसी - जीएनयू प्रोजेक्ट सी और सी ++ कंपाइलर

SYNOPSIS


जीसीसी [-c|-S|-E] [-एसटीडी=मानक]
[-g] [-पीजी] [-Oस्तर]
[-Wचेतावनी देना...] [-वेदांतिक]
[-Iदीर...] [-Lदीर...]
[-Dमैक्रो[=रक्षा]...] [-Uमैक्रो]
[-fविकल्प...] [-mमशीन-विकल्प...]
[-o आउटफाइल] [@पट्टिका] फाइल में...

केवल सबसे उपयोगी विकल्प यहां सूचीबद्ध हैं; शेष के लिए नीचे देखें। जी ++ स्वीकार करता है
ज्यादातर एक ही विकल्प के रूप में जीसीसी.

वर्णन


जब आप जीसीसी का आह्वान करते हैं, तो यह सामान्य रूप से प्रीप्रोसेसिंग, संकलन, असेंबली और लिंकिंग करता है।
"समग्र विकल्प" आपको इस प्रक्रिया को एक मध्यवर्ती चरण में रोकने की अनुमति देते हैं। के लिये
उदाहरण, द -c विकल्प कहता है कि लिंकर को न चलाएं। तब आउटपुट में ऑब्जेक्ट होता है
असेंबलर द्वारा फाइल आउटपुट।

अन्य विकल्पों को प्रसंस्करण के एक चरण में पारित किया जाता है। कुछ विकल्प नियंत्रित करते हैं
प्रीप्रोसेसर और अन्य कंपाइलर ही। फिर भी अन्य विकल्प असेंबलर को नियंत्रित करते हैं और
लिंकर; इनमें से अधिकांश का दस्तावेजीकरण यहां नहीं किया गया है, क्योंकि आपको इनमें से किसी का भी उपयोग करने की शायद ही कभी आवश्यकता होती है।

अधिकांश कमांड-लाइन विकल्प जिनका आप GCC के साथ उपयोग कर सकते हैं, C प्रोग्राम के लिए उपयोगी हैं; कब
एक विकल्प केवल दूसरी भाषा (आमतौर पर सी ++) के साथ उपयोगी होता है, स्पष्टीकरण ऐसा कहता है
स्पष्ट रूप से। यदि किसी विशेष विकल्प के विवरण में स्रोत का उल्लेख नहीं है
भाषा, आप सभी समर्थित भाषाओं के साथ उस विकल्प का उपयोग कर सकते हैं।

RSI जीसीसी प्रोग्राम ऑपरेंड के रूप में विकल्पों और फ़ाइल नामों को स्वीकार करता है। कई विकल्पों में बहु-
पत्र के नाम; इसलिए एकाधिक एकल-अक्षर विकल्प हो सकते हैं नहीं समूहीकृत होना: -डीवी है बहुत
से अलग -d -v.

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

कई विकल्पों के लंबे नाम होते हैं जिनकी शुरुआत से होती है -f या के साथ -W---उदाहरण के लिए,
-fmove-लूप-इनवेरिएंट, -स्वरूप और इसी तरह। इनमें से अधिकांश में सकारात्मक और नकारात्मक दोनों हैं
रूप; का नकारात्मक रूप -फ्फू is -फनो-फू. यह मैनुअल इनमें से केवल एक दस्तावेज करता है
दो रूप, जो भी एक डिफ़ॉल्ट नहीं है।

विकल्प


विकल्प सारांश
यहां प्रकार के आधार पर समूहीकृत सभी विकल्पों का सारांश दिया गया है। स्पष्टीकरण निम्नलिखित में हैं
वर्गों.

कुल ऑप्शंस
-c -S -E -o पट्टिका -नो-कैनोनिकल-उपसर्ग -पाइप -पास-निकास-कोड -x भाषा -v
-### --मदद[=कक्षा[, ...]] --लक्ष्य-सहायता --संस्करण -आवरण @पट्टिका -फ़्प्लगिन =पट्टिका
-फ्लूगिन-आर्ग-नाम=arg -fdump-ada-कल्पना[-पतला] -फडा-स्पेक-पैरेंट =इकाई
-फडम्प-गो-स्पेक =पट्टिका

C भाषा ऑप्शंस
-अनसी -एसटीडी=मानक -fgnu89-इनलाइन -ऑक्स-जानकारी फ़ाइल का नाम
-परती-पैरामीटर रहित-वैरिएडिक-फ़ंक्शंस -फनो-एएसएम -फनो-बिल्टिन -फनो-बिल्टिन-समारोह
-फॉस्टेड -फ्रीस्टैंडिंग -फोपेनैक -फोपेनएमपी -fopenmp-simd -एफएमएस-एक्सटेंशन
-फप्लान9-एक्सटेंशन -ट्रिग्राफ पारंपरिक -पारंपरिक-सीपीपी -परती-एकल-सटीक
-fcond-बेमेल -सन-वेक्टर-रूपांतरण -fsigned-बिटफील्ड्स -फसाइनड-चार
-फनसाइनड-बिटफील्ड्स -funsigned-char

सी + + भाषा ऑप्शंस
-फैबी-संस्करण=n -फनो-एक्सेस-कंट्रोल -fcheck-नया -fconstexpr-गहराई=n
-दोस्त-इंजेक्शन -फनो-एलिड-कंस्ट्रक्टर्स -फनो-एनफोर्स-एह-स्पेसिफिकेशंस -फॉर-स्कोप
-फनो-फॉर-स्कोप -फनो-ग्नू-कीवर्ड -फनो-अंतर्निहित-टेम्पलेट्स
-फनो-अंतर्निहित-इनलाइन-टेम्पलेट्स -फनो-कार्यान्वयन-इनलाइन्स -एफएमएस-एक्सटेंशन
-फनो-नोनानसी-बिलिन्स -फनोथ्रो-ऑप्ट -फनो-ऑपरेटर-नाम -फनो-वैकल्पिक-डायग्स
-फर्मिसिव -फनो-सुंदर-टेम्पलेट्स -फ्रेपो -फनो-आरटीटीआई -फसाइज्ड-डीलोकेशन -fstats
-फटेम्प्लेट-बैकट्रेस-सीमा =n -फटेम्पलेट-गहराई =n -फनो-थ्रेडसेफ-स्टैटिक्स
-फ्यूज-सीएक्सए-एटेक्सिट -फनो-कमजोर -नोस्टडिंक++ -दृश्यता-इनलाइन्स-छिपा हुआ
-fvtable-सत्यापन =[एसटीडी|प्रीइनिट|कोई नहीं] -fvtv-गिनती -fvtv-डीबग -दृश्यता-एमएस-संगत
-फेक्स्ट-संख्यात्मक-शाब्दिक -वबी =n -वबी-टैग -Wरूपांतरण-शून्य -Wctor-dtor-गोपनीयता
-Wdelete-गैर-आभासी-dtor -शाब्दिक-प्रत्यय - सिकुड़ा हुआ -कोई अपवाद नहीं -गैर-आभासी-dtor
-वॉर्डर -वेफक++ -विस्ट्रिक्ट-नल-सेंटिनल -नो-नॉन-टेम्प्लेट-मित्र -वल्ड-स्टाइल-कास्ट
-ववरलोडेड-वर्चुअल -Wno-pmf-रूपांतरण -Wsign-प्रोमो

उद्देश्य सी और उद्देश्य-सी++ भाषा ऑप्शंस
-फकॉन्स्टेंट-स्ट्रिंग-क्लास =कक्षा का नाम -फग्नू-रनटाइम -फनेक्स्ट-रनटाइम -फनो-शून्य-रिसीवर
-फोबजेसी-एबी-संस्करण =n -fobjc-कॉल-cxx-cdtors -फोबजेसी-प्रत्यक्ष-प्रेषण -फोबजेसी-अपवाद
-फोबजेसी-जीसी -फोबजेसी-निलचेक -फोबजेसी-एसटीडी=ओबीजेसी1 -फनो-लोकल-इवार्स
-फिवर-दृश्यता =[सार्वजनिक|संरक्षित|निजी|पैकेज] -फ्रीप्लेस-ओबीजेसी-क्लासेस
-फजीरो-लिंक -जेन-डिक्लेस -असाइन-अवरोध -Wno-प्रोटोकॉल - चयनकर्ता
- सख्त-चयनकर्ता-मैच -वंडघोषित-चयनकर्ता

भाषा स्वतंत्र ऑप्शंस
-fmessage-लंबाई=n -fdiagnostics-शो-स्थान=[एक बार|हर पंक्ति]
-फडायग्नोस्टिक्स-रंग=[स्वत:|कभी नहीँ|हमेशा] -फनो-डायग्नोस्टिक्स-शो-विकल्प
-फनो-डायग्नोस्टिक्स-शो-कैरेट

चेतावनी ऑप्शंस
-fsyntax-केवल -फमैक्स-त्रुटियां =n -वेदांतिक -पांडित्य-त्रुटियों -w -वेक्स्ट्रा -दीवार
-पता -वैग्रेगेट-रिटर्न -आक्रामक-लूप-अनुकूलन -वार-सीमा
-वार-सीमा =n -वबूल-तुलना -Wno-विशेषताएँ -बिना बिलिन-मैक्रो-पुनर्परिभाषित
-Wc90-c99-compat -Wc99-c11-compat -डब्ल्यूसी++ - कॉम्पैट -Wc++11-संगत -Wc++14-संगत
-Wcast-संरेखण -वास्ट-क्वाली -वचर-सब्सक्राइब -वक्लबरेड -कमेन्ट करें
-सशर्त रूप से समर्थित -वरूपांतरण -कवरेज-बेमेल -दिनांक-समय
-Wdelete-अपूर्ण -वो-सीपीपी -कोई पदावनत -अना-बहिष्कृत-घोषणाएँ
-कोई-नामित-init -अक्षम-अनुकूलन -नो-डिस्कार्ड-क्वालिफायर
-नहीं-त्याग-सरणी-क्वालिफायर -वनो-डिव-बाय-जीरो डबल-पदोन्नति -खाली-शरीर
-वेनम-तुलना -Wno-endif-लेबल -आतंक -भय =* घातक-त्रुटियों -फ्लोट-बराबर
-स्वरूप -फॉर्मैट = 2 -नो-प्रारूप-शामिल-शून्य -नो-प्रारूप-अतिरिक्त-आर्ग्स
-Wformat-गैर-शाब्दिक -स्वरूप-सुरक्षा -स्वरूप-हस्ताक्षर -Wformat-y2k
-वफ्रेम-बड़ा-से =लेन -नो-फ्री-नॉनहीप-ऑब्जेक्ट -वजम्प-मिस-इनिट
-विग्नोर-क्वालिफायर -विनसंगत-सूचक-प्रकार -विम्पलिसिट
-विम्प्लिकिट-फ़ंक्शन-घोषणा -विम्प्लिशिट-इंट -विनिट-सेल्फ -विनलाइन
-अनो-इंट-रूपांतरण -नो-इंट-टू-पॉइंटर-कास्ट -अवैध-ऑफसेटऑफ़ नहीं -विनवैलिड-pch
-बड़ा-से =लेन -वुनसेफ-लूप-ऑप्टिमाइज़ेशन -वैलॉजिकल-ऑप -वैलॉजिकल-न-कोष्ठक
-लंबा-लंबा -वमेन -शायद-अप्रारंभीकृत -wmemset-transpose-args -विस्मिंग-ब्रेसिज़
-विमिसिंग-फील्ड-प्रारंभकर्ता -विस्मिंग-शामिल-डीआईआर -वनो-मल्टीचार -वोननुल
-सामान्यीकृत =[कोई नहीं|id|एनएफसी|एनएफकेसी]
-वोद्रो -कोई अतिप्रवाह -वोपेनएमपी-सिमड -ओवरलेंथ-स्ट्रिंग्स - पैक्ड
-पैक्ड-बिटफील्ड-कंपैट -पैडेड -कोष्ठक -वेदांतिक-एमएस-प्रारूप
-नो-पेडेंटिक-एमएस-फॉर्मेट -पॉइंटर-अरिथ -नो-पॉइंटर-टू-इंट-कास्ट -अनावश्यक-गिरावट
-वनो-वापसी-स्थानीय-addr -रिटर्न-प्रकार -अनुक्रम-बिंदु -छाया -वनो-छाया-इवर
-शिफ्ट-गिनती-नकारात्मक -शिफ्ट-काउंट-ओवरफ्लो -Wsign-तुलना -साइन-रूपांतरण
-फ्लोट-रूपांतरण -वाइजऑफ़-पॉइंटर-मेमएक्सेस -Wsizeof-सरणी-तर्क
-स्टैक-रक्षक -स्टैक-उपयोग =लेन -स्ट्रिक्ट-अलियासिंग -स्ट्रिक्ट-अलियासिंग = n
-स्ट्रिक्ट-ओवरफ्लो -स्ट्रिक्ट-ओवरफ्लो =n -सुझाव-विशेषता =[शुद्ध|const|वापसी नहीं|प्रारूप]
-सुझाव-अंतिम-प्रकार -सुझाव-अंतिम-तरीके -सुझाव-ओवरराइड
-विस्मिंग-प्रारूप-विशेषता -स्विच -स्विच-डिफ़ॉल्ट -विसिच-एनम -स्विच-बूल
-Wsync-नंद -डब्ल्यूसिस्टम-हेडर -ट्रैम्पोलिन्स -वट्रिग्राफ -Wtype-सीमा -वुंडेफ
-अप्रारंभीकृत -अज्ञात-प्राग्मास -नहीं-प्रगमास -वंसफिक्स्ड-फ्लोट-स्थिरांक
-वुनयूज्ड -वुनयूज्ड-फंक्शन -वुनयूज्ड-लेबल -वुनयूज्ड-लोकल-टाइपडिफ्स -वुनयूज्ड-पैरामीटर
-अप्रयुक्त-अप्रयुक्त-परिणाम -अप्रयुक्त-मूल्य -अप्रयुक्त-चर -अप्रयुक्त-लेकिन-सेट-पैरामीटर
-अप्रयुक्त-लेकिन-सेट-चर -बेकार-कास्ट -वेरिएडिक-मैक्रोज़
-वेक्टर-ऑपरेशन-प्रदर्शन -व्वला -अस्थिर-रजिस्टर-वर -लिखें-तार
-शून्य-के-शून्य-सूचक-स्थिरांक

C और उद्देश्य-सी-केवल चेतावनी ऑप्शंस
-वबद-फ़ंक्शन-कास्ट -विस्मिंग-घोषणाएँ -विस्मिंग-पैरामीटर-प्रकार
-विमिसिंग-प्रोटोटाइप -वेस्टेड-बाहरी -वल्ड-स्टाइल-घोषणा -वल्ड-शैली-परिभाषा
-स्ट्रिक्ट-प्रोटोटाइप -पारंपरिक -Wपारंपरिक-रूपांतरण
-विघोषणा-बाद-बयान -Wpointer-चिह्न

डीबगिंग ऑप्शंस
-dपत्र -डंपस्पेक्स -डंपमशीन -डंपवर्सन -फसैनिटाइज=अंदाज -fsanitize-वसूली
-फसैनिटाइज-रिकवरी=अंदाज -फासन-छाया-ऑफसेट =संख्या
-fsanitize-अपरिभाषित-ट्रैप-ऑन-त्रुटि -फचेक-सूचक-सीमा -fchkp-चेक-अपूर्ण-प्रकार
-fchkp-प्रथम-फ़ील्ड-है-खुद-सीमा -fchkp-संकीर्ण-सीमा
-fchkp-संकीर्ण-से-अंतरतम-सरणी -fchkp-अनुकूलित -fchkp-उपयोग-तेज़-स्ट्रिंग-फ़ंक्शंस
-fchkp-उपयोग-nochk-स्ट्रिंग-फ़ंक्शंस -fchkp-उपयोग-स्थिर-सीमा
-fchkp-उपयोग-स्थिर-स्थिरांक-सीमा -fchkp-उपचार-शून्य-गतिशील-आकार-के रूप में-अनंत
-fchkp-चेक-पढ़ें -fchkp-चेक-पढ़ें -fchkp-चेक-लिखें -fchkp-स्टोर-सीमा
-fchkp-उपकरण-कॉल -fchkp-साधन-चिह्नित-केवल -fchkp-उपयोग-आवरण
-एफडीबीजी-सीएनटी-सूची -एफडीबीजी-सीएनटी=काउंटर-वैल्यू-लिस्ट -fdisable-आईपीए-पास_नाम
-fअक्षम-आरटीएल-पास_नाम -fअक्षम-आरटीएल-पास-नाम=श्रेणी-सूची -fdisable-पेड़-पास_नाम
-fdisable-पेड़-पास-नाम=श्रेणी-सूची -fdump-noaddr -फडंप-अननंबर्ड
-फडंप-अननंबर्ड-लिंक्स -फडंप-अनुवाद-इकाई[-n] -फडम्प-वर्ग-पदानुक्रम[-n]
-फडम्प-आईपीए-सब -फडंप-आईपीए-सीग्राफ -फडम्प-आईपीए-इनलाइन -फडंप-पास -fdump-आँकड़े
-फडंप-पेड़-सब -फडंप-पेड़-मूल[-n] -फडंप-पेड़-अनुकूलित[-n] -fdump-पेड़-cfg
-फडम्प-पेड़-उपनाम -फडंप-पेड़-चो -fdump-पेड़-ssa[-n] -फडंप-पेड़-पूर्व[-n]
-फडंप-पेड़-सीसीपी[-n] -फडंप-पेड़-डीसीई[-n] -फडंप-पेड़-गिंपल[-कच्चा] -फडंप-पेड़-डोम[-n]
-फडंप-पेड़-डीएसई[-n] -फडंप-पेड़-फिप्रोप[-n] -फडंप-पेड़-फिओप्ट[-n]
-फडंप-पेड़-फॉरप्रॉप[-n] -फडंप-पेड़-कॉपीरेनेम[-n] -फडंप-पेड़-एनआरवी -फडंप-पेड़-vect
-फडंप-पेड़-सिंक -fdump-पेड़-sra[-n] -फडंप-पेड़-फॉरप्रॉप[-n] -फडंप-पेड़-मुक्त[-n]
-फडम्प-पेड़-वीटेबल-सत्यापन -फडंप-पेड़-वीआरपी[-n] -फडंप-पेड़-स्टोरccp[-n]
-फडंप-फाइनल-इंसंस =पट्टिका -fतुलना-डीबग[=opts] -fतुलना-डीबग-सेकंड
-फेलिमिनेट-बौना2-डुप्स -फनो-उन्मूलन-अप्रयुक्त-डीबग-प्रकार
-फेलिमिनेट-अप्रयुक्त-डीबग-प्रतीक -स्त्री-वर्ग-डीबग-हमेशा - योग्य-तरह-पास
- योग्य-तरह-पास=श्रेणी-सूची -फडेबग-प्रकार-अनुभाग -fmem-रिपोर्ट-wpa -एफएमईएम-रिपोर्ट
-फप्री-आईपीए-मेम-रिपोर्ट -फपोस्ट-आईपीए-मेम-रिपोर्ट -फ्रोफाइल-आर्क्स -फोप्ट-जानकारी
-फोप्ट-जानकारी-विकल्पों[=पट्टिका] -फ्रैंडम-बीज=संख्या -fsched-क्रिया =n -एफएसईएल-शेड्यूल-वर्बोज़
-fsel-अनुसूचित-डंप-cfg -fsel-अनुसूचित-पाइपलाइनिंग-क्रिया -फस्टैक-उपयोग -फटेस्ट-कवरेज
-फटाइम-रिपोर्ट -fvar-ट्रैकिंग -fvar-ट्रैकिंग-असाइनमेंट
-fvar-ट्रैकिंग-असाइनमेंट-टॉगल -g -gस्तर -gtoggle -गकॉफ -जीडवार्फ-संस्करण -जीजीडीबी
-ग्रेकॉर्ड-जीसीसी-स्विच -ग्नो-रिकॉर्ड-जीसीसी-स्विच -गैस्टैब्स -गैस्टैब्स+ -गस्ट्रिक्ट-बौना
-ग्नो-सख्त-बौना -gvms -gxcoff -जीएक्सकॉफ+ -जीजेड[=टाइप] -फनो-मर्ज-डीबग-स्ट्रिंग्स
-फनो-बौना2-सीएफआई-एएसएम -फडेबग-उपसर्ग-मानचित्र=पुराना=नई -स्त्री-संरचना-डीबग-आधारभूत
-स्त्री-संरचना-डीबग-कम किया गया -स्त्री-संरचना-डीबग-विस्तृत[=कल्पना-सूची] -p -पीजी
-प्रिंट-फ़ाइल-नाम=पुस्तकालय -प्रिंट-libgcc-फ़ाइल-नाम -प्रिंट-मल्टी-डायरेक्टरी
-प्रिंट-मल्टी-लिब -प्रिंट-मल्टी-ओएस-डायरेक्टरी -प्रिंट-प्रोग-नाम=कार्यक्रम
-प्रिंट-खोज-डीआईआर -Q -प्रिंट-सिसरूट -प्रिंट-सिसरूट-हेडर-प्रत्यय -बचाओ-अस्थायी
-सेव-टेम्प्स = cwd -सेव-टेम्प्स = obj -पहर[=पट्टिका]

इष्टतमीकरण ऑप्शंस
-आक्रामक-लूप-अनुकूलन -फालिग्न-फ़ंक्शंस[=n] -फलाइन-कूदता है[=n]
-फ़लाइन-लेबल[=n] -फलाइन-लूप[=n] -फैसोसिएटिव-गणित -फॉटो-प्रोफाइल
-फॉटो-प्रोफाइल[=पथ] -फॉटो-इंक-दिसंबर -fशाखा-संभावनाएं
-फ्ब्रांच-लक्ष्य-लोड-अनुकूलन -fbranch-target-load-optimize2 -एफबीटीआर-बीबी-अनन्य
-fcaller-बचाता है -फचेक-डेटा-डिप्स -fcombine-ढेर-समायोजन -fconserve-ढेर
-फतुलना-एलीम -एफसीप्रॉप-रजिस्टर -क्रॉस जंपिंग -fcse-अनुसरण-कूदता है -एफसीई-स्किप-ब्लॉक
-एफसीएक्स-फोरट्रान-नियम -एफसीएक्स-सीमित-रेंज -fdata-अनुभाग -एफडीसी -fdelayed-शाखा
-fdelete-null-pointer-checks -fdevirualize -fdevirtualize-सट्टा लगाना
-एफडेवर्चुअलाइज़-एट-एलट्रांस -एफडीएसई -भयभीत इनलाइनिंग -फिपा-सर -महंगे-अनुकूलन
-ffat-lto-वस्तुओं -फफास्ट-गणित -अनंत-गणित-केवल -फ्लोट-स्टोर
-फेक्सस-सटीक =अंदाज आगे-प्रचार करना -ffp-अनुबंध =अंदाज -फंक्शन-सेक्शन
-एफजीसीएसई -fgcse-आफ्टर-रीलोड -fgcse-लास -एफजीसीएसई-एलएम -फग्रेफाइट-पहचान -fgcse-एसएम
-फोइस्ट-आसन्न-भार -फिफ-रूपांतरण -फिफ-रूपांतरण2 -findirect-इनलाइनिंग
-फिनलाइन-फ़ंक्शंस -फिनलाइन-फ़ंक्शंस-कॉल-वन्स -फिनलाइन-सीमा =n
-फिनलाइन-छोटे-फ़ंक्शंस -फिपा-सीपी -फिपा-सीपी-क्लोन -फिपा-सीपी-संरेखण -फिपा-पीटीए
-फिपा-प्रोफाइल -फिपा-शुद्ध-कॉन्स्ट -फिपा-संदर्भ -फिपा-आईसीएफ -फिरा-एल्गोरिदम=कलन विधि
-फिरा-क्षेत्र=क्षेत्र -फिरा-लहरा-दबाव -फिरा-लूप-दबाव -फनो-इरा-शेयर-सेव-स्लॉट
-फनो-इरा-शेयर-स्पिल-स्लॉट -फिरा-क्रिया=n -फिसोलेट-त्रुटिपूर्ण-पथ-विचलन
-फिसोलेट-गलत-पथ-विशेषता -फिवोप्ट्स -फ़कीप-इनलाइन-फ़ंक्शंस
-फकीप-स्थिर-स्थिरांक -फ्लाइव-रेंज-संकोचन -फ्लॉप-ब्लॉक -फ्लॉप-इंटरचेंज
-फ्लूप-स्ट्रिप-माइन -फ्लॉप-अनरोल-एंड-जाम -फ्लॉप-घोंसला-अनुकूलन -फ्लॉप-समानांतर-सभी
-फ्लरा-रीमाटा -फ्लोटो -flto-संपीड़न-स्तर -flto-विभाजन=ALG -फ्लो-रिपोर्ट
-flto-रिपोर्ट-wpa -फमर्ज-ऑल-स्थिरांक -फमर्ज-स्थिरांक -फमोडुलो-अनुसूची
-फमोडुलो-शेड्यूल-अनुमति-regmoves -fmove-लूप-इनवेरिएंट -फनो-शाखा-गिनती-रेग
-फनो-डेफर-पॉप -फनो-फ़ंक्शन-सीएसई -फनो-अनुमान-शाखा-प्रायिकता -फनो-इनलाइन
-फनो-गणित-त्रुटि -फनो-पीपहोल -फनो-पीपहोल2 -फनो-शेड-इंटरब्लॉक -फनो-अनुसूचित-कल्पना
-फनो-हस्ताक्षरित-शून्य -फनो-टॉपलेवल-रीऑर्डर -फनो-ट्रैपिंग-गणित
-फनो-जीरो-इनिशियलाइज्ड-इन-बीएसएस -फोमिट-फ्रेम-पॉइंटर -foptimize-भाई-बहन-कॉल
-fआंशिक-इनलाइनिंग -फपील-लूप्स -फप्रेडिक्टिव-कॉमनिंग -fprefetch-लूप-सरणी
-फ्रोफाइल-रिपोर्ट -फ्रोफाइल-सुधार -फ्रोफाइल-डीआईआर=पथ -फ्रोफाइल-उत्पन्न
-फ्रोफाइल-जेनरेट=पथ -फ्रोफाइल-उपयोग -फ्रोफाइल-उपयोग =पथ -फ्रोफाइल-मान
-फ्रोफाइल-रीऑर्डर-फ़ंक्शंस -फ्रेसिप्रोकल-गणित -मुक्त -फ्रेनेम-रजिस्टर
-फ्रीऑर्डर-ब्लॉक -फ्रीऑर्डर-ब्लॉक-और-विभाजन -फ्रीऑर्डर-फ़ंक्शंस
-फ्रेरुन-सीएसई-आफ्टर-लूप -फ़्रेशेड्यूल-मॉड्यूलो-शेड्यूल-लूप -आधार-गणित
-fsched2-उपयोग-सुपरब्लॉक -fsched-दबाव -fsched-कल्पना-लोड
-फस्ड-स्पेक-लोड-खतरनाक -fsched-stalled-insns-dep [=n] -fsched-stalled-insns[=n]
-फस्ड-ग्रुप-हेयुरिस्टिक -fsched-महत्वपूर्ण-पथ-अनुमानी -फस्ड-स्पेक-इन्स-हेयुरिस्टिक
-फस्ड-रैंक-हेयुरिस्टिक -fsched-अंतिम-इंस-हेयुरिस्टिक -फस्ड-डिप-काउंट-हेयुरिस्टिक
-fअनुसूची-संलयन -fschedule-insns -fschedule-insns2 -फसेक्शन-एंकर
-चयनात्मक-निर्धारण -fचयनात्मक-निर्धारण2 -fsel-अनुसूचित-पाइपलाइनिंग
-fsel-अनुसूचित-पाइपलाइनिंग-बाहरी-लूप -शब्दार्थ-अंतर्विभाजन -फश्रिंक-रैप
-fsignaling-nans -फसिंगल-सटीक-स्थिर -fsplit-ivs-इन-अनरोलर
-fsplit-चौड़ा-प्रकार -fssa-फिओप्टा -स्टैक-रक्षक -फस्टैक-रक्षक-सभी
-फस्टैक-रक्षक-मजबूत -फस्टैक-रक्षक-स्पष्ट -fstdarg-ऑप्ट -फस्ट्रिक्ट-अलियासिंग
-फस्ट्रिक्ट-ओवरफ्लो -फथ्रेड-कूद -फ्ट्रेसर -फट्री-बिट-सीसीपी -फट्री-बिल्टिन-कॉल-डीसीई
-फट्री-सीसीपी -फ्ट्री-चो -फट्री-कोलेस-इनलाइन-वर्स -फट्री-कोलेस-वर्स -फट्री-कॉपी-प्रोप
-फट्री-कॉपीरेनेम -ftree-dce -फट्री-डोमिनेटर-ऑप्ट्स -फट्री-डीएसई -ftree-forwprop
-फ़्री-फ़्री -फट्री-लूप-अगर-कन्वर्ट -फट्री-लूप-अगर-कन्वर्ट-स्टोर्स -फट्री-लूप-इम
-फट्री-फिप्रोप -फट्री-लूप-वितरण -फट्री-लूप-वितरण-पैटर्न
-फट्री-लूप-इवकैनन -फट्री-लूप-रैखिक -फट्री-लूप-ऑप्टिमाइज़ -फट्री-लूप-वेक्टराइज
-फट्री-समानांतर-लूप =n -फट्री-प्री -फट्री-आंशिक-पूर्व -फट्री-पीटीए -ftree-reassoc
-फट्री-सिंक -ftree-slsr -फट्री-सर -फट्री-स्विच-रूपांतरण -फट्री-टेल-मर्ज
-फट्री-टेर -फ़्री-वेक्टराइज़ -फट्री-वीआरपी -फनिट-एट-ए-टाइम -फ़नरोल-ऑल-लूप्स
-फ़नरोल-लूप्स -फनसेफ-लूप-ऑप्टिमाइज़ेशन -फनसेफ-गणित-अनुकूलन
-फनस्विच-लूप -फिपा-रा -परिवर्तनीय-विस्तार-इन-अनरोलर -फवेक्ट-लागत-मॉडल -एफवीपीटी
-फवेब पूरे कार्यक्रम -एफडब्ल्यूपीए -फ्यूज-लिंकर-प्लगइन --परम नाम=मूल्य -O -ओ३ -ओ३ -ओ३
-ओ३ -ओस -ओफ़ास्ट -ओजी

प्रीप्रोसेसर ऑप्शंस
-Aप्रश्न=जवाब -A-प्रश्न[=जवाब] -C -डीडी डि -डीएम -डीएन -Dमैक्रो[=रक्षा] -E -H
-इदिराफ्टर दीर -शामिल पट्टिका -इमैक्रोस पट्टिका -आईप्रीफिक्स पट्टिका -iwithउपसर्ग दीर
-iसाथउपसर्गपहले दीर -सिस्टम दीर -इमल्टीलिब दीर -इसिसरूट दीर -M -एमएम -एमएफ -एमजी
-एमपी -एमक्यू -एमटी -नोस्टडिंक -P -एफडीबग-सीपीपी -फ्रैक-मैक्रो-विस्तार -फ़वर्किंग-निर्देशिका
-रेमैप -ट्रिग्राफ -अनडेफ -Uमैक्रो -डब्ल्यूपी,विकल्प -एक्सप्रीप्रोसेसर विकल्प -नहीं-एकीकृत-सीपीपी

कोडांतरक विकल्प
-वा,विकल्प -एक्ससेम्बलर विकल्प

संयोजक ऑप्शंस
वस्तु-फ़ाइल-नाम -फ्यूज-एलडी =संयोजक -lपुस्तकालय -नोस्टार्टफाइल्स -नोडिफॉल्टलिब्स -नोस्टडलिब
-पाई -गतिशील -s स्थैतिक -स्थैतिक-libgcc -स्थैतिक-libstdc++ -स्थैतिक-लिबासन
-स्थैतिक-libtsan -स्थैतिक-परिवाद -स्थैतिक-लिबुब्सन -स्थैतिक-libmpx -स्थैतिक-libmpxwrappers
कमरा साझा -साझा-libgcc -प्रतीकात्मक -T लिपि -डब्ल्यूएल,विकल्प -एक्सलिंकर विकल्प -u प्रतीक -z
कीवर्ड

निर्देशिका ऑप्शंस
-Bउपसर्ग -Iदीर -आईप्लगइंडिर=दीर -मैं उद्धृत करता हूंदीर -Lदीर - चश्मा =पट्टिका -मैं- --सिसरूट=दीर
--नो-सिसरूट-प्रत्यय

मशीन निर्भर ऑप्शंस
AAArch64 ऑप्शंस -माबी=नाम -मबिग-एंडियन -थोड़ा-एंडियन -जनरल-regs-only
-एमसीमॉडल = छोटा -एमसीमॉडल = छोटा -एमसीमॉडल = बड़ा -मस्ट्रिक्ट-संरेखण -मोमित-पत्ती-फ्रेम-सूचक
-मनो-ओमिट-लीफ-फ्रेम-पॉइंटर -mtls-बोली=desc -एमटीएलएस-बोली=पारंपरिक
-एमफिक्स-कॉर्टेक्स-ए53-835769 -मनो-फिक्स-कॉर्टेक्स-ए53-835769 -एमफिक्स-कॉर्टेक्स-ए53-843419
-मनो-फिक्स-कॉर्टेक्स-ए53-843419 -मार्च=नाम -एमसीपीयू =नाम -मट्यून =नाम

अदपतेवा घोषणा ऑप्शंस -एमहाफ-रेग-फाइल -मपसंद-लघु-इन्स-regs - शाखा-लागत =संख्या
-एमसीमूव -मनोप्स=संख्या -एमसॉफ्ट-सीएमपीएसएफ -एमएसप्लिट-लोही -एमपोस्ट-इंक -mpost-संशोधित
-मस्टैक-ऑफ़सेट=संख्या -माउंड-निकटतम -मलॉन्ग-कॉल -एमशॉर्ट-कॉल -एमएसस्मॉल16 -एमएफपी-मोड =मोड
-mvect-डबल -मैक्स-वेक्ट-संरेखण =संख्या -msplit-vecmove-जल्दी -एम1रेग-REG

एआरसी ऑप्शंस -एमबैरल-शिफ्टर -एमसीपीयू =सीपीयू -एमए6 -मार्क600 -एमए7 -मार्क700 -एमडीपीएफपी
-एमडीपीएफपी-कॉम्पैक्ट -एमडीपीएफपी-फास्ट -मनो-dpfp-lrsr -माया -मनो-एमपीवाई -mmul32x16 -mmul64 -मनोर्म
-एमएसपीएफपी -mspfp-कॉम्पैक्ट -एमएसपीएफपी-फास्ट -एमएसआईएमडी -एमसॉफ्ट-फ्लोट -एमएसवाप -एमसीआरसी -एमडीएसपी-पैका -एमडीवीबीएफ
-मलॉक -एमएमएसी-डी16 -एमएमएसी-24 -एमआरटीएससी -मस्वैप -टेलीफोनी -एमएक्सवाई -मिसाइज़ -मनोटेट-संरेखित
-मार्क्लिनक्स -मार्क्लिनक्स_प्रोफ -मेपिलॉग-सीएफआई -मलॉन्ग-कॉल -मध्यम-कॉल -एमएसडेटा
-मुकब-एमकाउंट -मोलेटाइल-कैश -दुर्भावनापूर्ण-कॉल -मोटो-संशोधित-रेग -एमबीबिट-पीपहोल -मनो-बीआरसीसी
-एमकेस-वेक्टर-पीसीआरईएल -मकॉम्पैक्ट-केससी -मनो-कंड-निष्पादन -मायरली-cbranchsi -मेक्सपैंड-अद्दी
-माइंडेक्सड-लोड -एमएलआरए -एमएलआरए-प्राथमिकता-कोई नहीं -एमएलआरए-प्राथमिकता-कॉम्पैक्ट एमएलआरए-प्राथमिकता-
गैर-कॉम्पैक्ट -एमनो-मिलीकोड -मिमिश्रित-कोड -एमक्यू-क्लास -एमआरसीक्यू -एमआरसीडब्ल्यू -एमएसाइज-स्तर =स्तर
-मट्यून =सीपीयू -मिमलकॉस्ट =संख्या -मुनालाइन-प्रोब-दहलीज=संभावना

एआरएम ऑप्शंस -मैप्स-फ्रेम -एमनो-एपीसीएस-फ्रेम -माबी=नाम -मैप्स-स्टैक-चेक
-एमनो-एपीसीएस-स्टैक-चेक -मैप्स-फ्लोट -एमनो-एपीसीएस-फ्लोट -मैप्स-रीएंट्रेंट
-एमनो-एपीसीएस-रीएंट्रेंट -मशेड-प्रोलॉग -मनो-अनुसूचित-प्रस्तावना -थोड़ा-एंडियन -मबिग-एंडियन
-मफ्लोट-अबी =नाम -एमएफपी16-प्रारूप =नाम -मथंब-इंटरवर्क -मनो-अंगूठे-इंटरवर्क -एमसीपीयू =नाम
-मार्च=नाम -एमएफपीयू=नाम -मट्यून =नाम -प्रिंट-ट्यून-जानकारी -एमस्ट्रक्चर-आकार-सीमा =n
-मबॉर्ट-ऑन-नोरटर्न -मलॉन्ग-कॉल -मनो-लॉन्ग-कॉल -एकल-तस्वीर-आधार
-मनो-एकल-तस्वीर-आधार -एमपीआईसी-रजिस्टर=REG -मनोप-मज़ा-dllimport -मपोक-फ़ंक्शन-नाम
-मथंब -मर्म -एमटीपीसी-फ्रेम -एमटीपीसी-पत्ती-फ्रेम -मैकलर-सुपर-इंटरवर्किंग
-मैकली-सुपर-इंटरवर्किंग -एमटीपी=नाम -mtls-बोली=बोली -mword-स्थानांतरण
-एमफिक्स-कॉर्टेक्स-एम3-एलडीआरडी -मुना-संरेखित-पहुंच -नियॉन-फॉर-64बिट्स -एमएसलो-फ्लैश-डेटा
-masm-वाक्यविन्यास-एकीकृत -मरेस्ट्रिक्ट-आईटी

AVR ऑप्शंस -एमएमसीयू =एमसीयू -संकुचित-आर्ग्स - शाखा-लागत =लागत -mcall-प्रस्तावना -मिंट8
-एमएन_फ्लैश =आकार -मनो-बाधित -मेरेलैक्स -एमआरएमडब्ल्यू -मस्ट्रिक्ट-X -मटिनी-स्टैक -नोडेविसेलिब
-वाड्र-स्पेस-कन्वर्ट

ब्लैकफिन ऑप्शंस -एमसीपीयू =सीपीयू[-सिरविज़न] -मसिम -मोमित-पत्ती-फ्रेम-सूचक
-मनो-ओमिट-लीफ-फ्रेम-पॉइंटर -mspecld-विसंगति -मनो-स्पेकल्ड-विसंगति -एमसीसिंक-विसंगति
-मनो-सीसिंक-विसंगति -एमएलओ-64k -मनो-लो64k -मस्टैक-चेक-l1 -मिड-शेयर्ड-लाइब्रेरी
-मनो-आईडी-साझा-लाइब्रेरी -mshared-लाइब्रेरी-आईडी=n -mleaf-आईडी-साझा-लाइब्रेरी
-मनो-लीफ-आईडी-साझा-लाइब्रेरी -एमएसईपी-डेटा -मनो-सितंबर-डेटा -मलॉन्ग-कॉल -मनो-लॉन्ग-कॉल
-एमफास्ट-एफपी -मिनलाइन-पीएलटी -मल्टीकोर -मकोरिया -मकोरबे -एमएसड्राम -मिकप्लब

सी6एक्स ऑप्शंस -मबिग-एंडियन -थोड़ा-एंडियन -मार्च=सीपीयू -मसिम -एमएसडेटा =sdata-प्रकार

क्रिस ऑप्शंस -एमसीपीयू =सीपीयू -मार्च=सीपीयू -मट्यून =सीपीयू -एमएमएक्स-स्टैक-फ्रेम =n
-मेलिनक्स-स्टैकसाइज =n -मेट्रैक्स4 -मेट्रैक्स100 -एमपीडीबग -एमसीसी-इनिट -मनो-दुष्प्रभाव
-मस्टैक-संरेखण -mdata-संरेखण -mconst-संरेखण -एम 32-बिट -एम 16-बिट -एम 8-बिट
-मनो-प्रस्तावना-उपसंहार -मनो-गॉटप्लाट -मेल्फ़ -मौत -मेलिनक्स -मिलिनक्स -सिम -सिम2
-mmul-बग-समाधान -मनो-मुल-बग-वर्कअराउंड

CR16 ऑप्शंस -एमएमएसी -एमसीआर16सीप्लस -एमसीआर16सी -मसिम -मिंट32 -एमबिट-ऑप्स -mdata-मॉडल=आदर्श

डार्विन ऑप्शंस -सभी_लोड -स्वीकार्य_क्लाइंट —करना -आर्च_एरर्स_फेटल -आर्च_ओनली
-बाइंड_एट_लोड -बंडला -बंडल_लोडर -ग्राहक का नाम -संगतता_संस्करण
-वर्तमान संस्करण -डेड_स्ट्रिप -निर्भरता-फ़ाइल -dylib_file -डिलिंकर_इंस्टॉल_नाम
-स्वाभाविक -गतिशीललिब -निर्यात_प्रतीक_सूची -फ़ाइलसूची -फ्लैट_नामस्थान
-force_cpusubtype_ALL -force_flat_namespace -हेडरपैड_मैक्स_इंस्टॉल_नाम -आईफ्रेमवर्क
-इमेज_बेस -इस में -इंस्टॉल_नाम -निजी_बाहरी रखें -मल्टी_मॉड्यूल
-गुणा_परिभाषित -गुणा_परिभाषित_अप्रयुक्त -नोऑल_लोड
-नो_डेड_स्ट्रिप_इनिट्स_एंड_टर्म्स -नोफिक्स प्रीबाइंडिंग -नोमल्टीडेफ्स -नोप्रेबाइंड
-नोसेग्लिंकसंपादित करें -पेजेरो_साइज -प्रीबाइंड -prebind_all_twolevel_modules -निजी_बंडल
-read_only_relocs -सेक्टलाइन -सेक्टोबजेक्टप्रतीक -व्हायलोड -seg1addr -संप्रदाय बनाना
-सेक्टोबजेक्टप्रतीक -सेक्टर -सेगद्रो -segs_read_only_addr -segs_read_write_addr
-seg_addr_table -seg_addr_table_filename -सेग्लिंकसंपादित करें -सेगप्रोट -segs_read_only_addr
-segs_read_write_addr -एकल_मॉड्यूल स्थैतिक -उप_लाइब्रेरी -उप_छाता
-दोस्तर_नाम स्थान -छतरी -अपरिभाषित -unexported_symbols_list
-कमजोर_संदर्भ_बेमेल -व्हाट्सलोडेड -F -गुस्ड -गफुल -mmacosx-संस्करण-मिनट=संस्करण
-मकर्नेल -मोन-बाइट-बूल

दिसम्बर अल्फा ऑप्शंस -मनो-एफपी-रेग्स -एमसॉफ्ट-फ्लोट -मीई -मिई-साथ-अचूक
-मी-अनुरूपक -एमएफपी-ट्रैप-मोड =मोड -एमएफपी-राउंडिंग-मोड =मोड -mtrap-सटीक =मोड
-एमबिल्ड-स्थिरांक -एमसीपीयू =सीपीयू प्रकार -मट्यून =सीपीयू प्रकार -एमबीडब्ल्यूएक्स -एममैक्स -एमफिक्स -एमसीएक्स
-मफ्लोट-वैक्स -मफ्लोट-आईईईई -मेक्सप्लिसिट-रिलोक्स -एमएसस्मॉल-डेटा -मिलर्ज-डेटा -एमएसस्मॉल-पाठ
-मलर्ज-पाठ -मेमरी-विलंबता =पहर

FR30 ऑप्शंस -एमएसस्मॉल-मॉडल -मनो-लसिम

FRV ऑप्शंस -एमजीपीआर-32 -एमजीपीआर-64 -एमएफपीआर-32 -एमएफपीआर-64 -महार्ड-फ्लोट -एमसॉफ्ट-फ्लोट
-मॉलोक-सीसी -एमफिक्स्ड-सीसी -एमडीवर्ड -मनो-डवर्ड -मडबल -मनो-डबल -मिमीडिया -मनो-मीडिया
-ममुलद्द -मनो-मुलद्द -एमएफडीपीआईसी -मिनलाइन-पीएलटी -एमजीप्रेल-आरओई -मल्टीलिब-लाइब्रेरी-तस्वीर
-mlinked-एफपी -मलॉन्ग-कॉल -दुर्भावनापूर्ण-लेबल -पुस्तकालय-तस्वीर -मैक-4 -मैक-8 -एमपीक
-मनो-पैक -मनो-फ्लैग्स -mcond-चाल -मनो-कंड-मूव -मोप्टिमाइज-सदस्य
-mno-अनुकूलन-सदस्य -एमएससीसी -मनो-एससीसी -mcond-कार्यकारी -मनो-कंड-निष्पादन -मवलीव-शाखा
-मनो-वलीव-शाखा -एममल्टी-कंड-निष्पादन -मनो-मल्टी-कंड-निष्पादन -मनेस्टेड-कंड-निष्पादन
-मनो-नेस्टेड-कंड-निष्पादन -mtomcat-आँकड़े -एमटीएलएस -एमटीएलएसओ -एमसीपीयू =सीपीयू

ग्नू / लिनक्स ऑप्शंस -एमजीलिबसी -म्यूक्लिबक -मबायोनिक -मैंड्रॉइड -tno-एंड्रॉइड-सीसी -tno-एंड्रॉइड-एलडी

H8 / 300 ऑप्शंस -मेरेलैक्स -मह -एमएस -एमएन -मेक्सरो -मनो-एक्सआर -मिंट32 -मैलिग्न-300

एचपीपीए ऑप्शंस -मार्च=वास्तुकला-प्रकार -mdisable-fpregs -mdisable-अनुक्रमण
-mfast-अप्रत्यक्ष-कॉल -मगास -एमजीएनयू-एलडी -एमएचपी-एलडी -मफिक्स्ड-रेंज =रजिस्टर-रेंज
-एमजंप-इन-देरी -मलिंकर-ऑप्ट -मलॉन्ग-कॉल -मलॉन्ग-लोड-स्टोर -मनो-अक्षम-fpregs
-मनो-अक्षम-अनुक्रमण -मनो-फास्ट-अप्रत्यक्ष-कॉल -मनो-गैस -मनो-कूद-इन-देरी
-मनो-लॉन्ग-लोड-स्टोर -मनो-पोर्टेबल-रनटाइम -मनो-सॉफ्ट-फ्लोट -एमनो-स्पेस-रेज
-एमसॉफ्ट-फ्लोट -एमपीए-रिस्क-1-0 -एमपीए-रिस्क-1-1 -एमपीए-रिस्क-2-0 -पोर्टेबल-रनटाइम
-एमएसशेड्यूल=सीपीयू प्रकार -mspace-regs -एमएसआईओ -म्व्सियो -मुनिक्स =यूनिक्स-एसटीडी -नोलिब्डल्ड स्थैतिक
-धागे

IA-64 ऑप्शंस -मबिग-एंडियन -थोड़ा-एंडियन -मग्नू-के रूप में -एमजीएनयू-एलडी -मनो-पिक
-अस्थिर-एएसएम-रोक -मजिस्टर-नाम -एमएसडेटा -मनो-एसडीटा -मकॉन्स्टेंट-जीपी -मोटो-तस्वीर
-मफ्यूज्ड-मैड -मिनलाइन-फ्लोट-डिवाइड-मिन-लेटेंसी -मिनलाइन-फ्लोट-डिवाइड-मैक्स-थ्रूपुट
-मनो-इनलाइन-फ्लोट-डिवाइड -मिनलाइन-इंट-डिवाइड-मिन-लेटेंसी
-मिनलाइन-इंट-डिवाइड-मैक्स-थ्रूपुट -मनो-इनलाइन-इंट-डिवाइड -मिनलाइन-वर्ग-मिनट-विलंबता
-मिनलाइन-वर्ग-अधिकतम-थ्रूपुट -मनो-इनलाइन-वर्ग -mdwarf2-asm -मायरली-स्टॉप-बिट्स
-मफिक्स्ड-रेंज =रजिस्टर-रेंज -एमटीएलएस-आकार =टीएलएस-आकार -मट्यून =सीपीयू प्रकार -मिलप32 -एमएलपी64
-msched-br-डेटा-कल्पना -msched-ar-डेटा-कल्पना -msched-नियंत्रण-कल्पना -मशेड-बीआर-इन-डेटा-कल्पना
-मशेड-एआर-इन-डेटा-कल्पना -मशेड-इन-कंट्रोल-स्पेक -msched-कल्पना-ldc
-msched-कल्पना-नियंत्रण-ldc -msched-वरीयता-गैर-डेटा-कल्पना-insns
-msched-पसंद-गैर-नियंत्रण-कल्पना-insns -मैशेड-स्टॉप-बिट्स-आफ्टर-हर-साइकल
-मशेड-गिनती-कल्पना-में-महत्वपूर्ण-पथ -एमएसएल-शेड्यूल-न-चेक-कंट्रोल-स्पेक
-msched-fp-mem-deps-शून्य-लागत -msched-अधिकतम-मेमोरी-इंस-हार्ड-लिमिट
-msched-अधिकतम-मेमोरी-इंसंस=मैक्स-इन्स

LM32 ऑप्शंस -एमबैरल-शिफ्ट-सक्षम -mडिवाइड-सक्षम -mmultiply-सक्षम
-msign-विस्तार-सक्षम -म्यूजर-सक्षम

M32R/डी ऑप्शंस -एम32आर2 -एम32आरएक्स -एम32आर -एमडीबग -मैलिग्न-लूप -मनो-संरेखण-लूप
-मुद्दे-दर =संख्या - शाखा-लागत =संख्या -मॉडेल =कोड-आकार-मॉडल-प्रकार -एमएसडेटा =एसडीटा-
टाइप -मनो-फ्लश-फंक -एमफ्लश-फंक =नाम -मनो-फ्लश-ट्रैप -mflush-जाल=संख्या -G संख्या

M32C ऑप्शंस -एमसीपीयू =सीपीयू -मसिम -मेमरेग्स =संख्या

M680x0 ऑप्शंस -मार्च=मेहराब -एमसीपीयू =सीपीयू -मट्यून =धुन -एम 68000 -एम 68020 -एम68020-40
-एम68020-60 -एम 68030 -एम 68040 -एम 68060 -एमसीपीयू32 -एम 5200 -एम5206ई -m528x -एम 5307 -एम 5407
-एमसीएफवी4ई -एमबिटफ़ील्ड -मनो-बिटफ़ील्ड -एमसी68000 -एमसी68020 -मनोबिटफील्ड -एमआरटीडी -मनो-आरटीडी
-एमडीवी -मनो-डिव -मशॉर्ट -मनो-शॉर्ट -महार्ड-फ्लोट -एम 68881 -एमसॉफ्ट-फ्लोट -एमपीसीआरएल
-मालिग्न-इंट -मस्ट्रिक्ट-संरेखण -एमएसईपी-डेटा -मनो-सितंबर-डेटा -mshared-लाइब्रेरी-आईडी = n
-मिड-शेयर्ड-लाइब्रेरी -मनो-आईडी-साझा-लाइब्रेरी -मक्सगोट -मनो-एक्सगोट

एमकोर ऑप्शंस -महार्डलिट -मनो-हार्डलिट -एमडीवी -मनो-डिव -मेरेलैक्स-तत्काल
-मनो-आराम-तत्काल -मवाइड-बिटफ़ील्ड -मनो-वाइड-बिटफ़ील्ड -एम4बाइट-फ़ंक्शंस
-मनो-4बाइट-फ़ंक्शंस -मैकॉलग्राफ-डेटा -मनो-कॉलग्राफ-डेटा -एमएसलो-बाइट्स
-मनो-धीमी-बाइट्स -मनो-लसिम -थोड़ा-एंडियन -मबिग-एंडियन -एम 210 -एम 340
-मस्टैक-वृद्धि

एमईपी ऑप्शंस -मैब्सडिफ -मॉल-ऑप्ट्स -मावरेज -एमबेड =n -एमबीटॉप्स -एमसी =n -एमसीलिप
-एमकॉन्फिग =नाम -मकोप -एमसीओपी32 -एमसीओपी64 -एमआईवीसी2 -एमडीसी -एमडीवी -मेब -मेले -मियो-अस्थिर -एमएल
-मलेड्ज़ो -म -मिमिनमैक्स -मिमल -मनो-ऑप्स -मरेपीट -एमएस -मसतुर -एमएसड्राम -मसिम -मसिमनोवेक
-एमटीएफ -मिनी =n

माइक्रोब्लाज ऑप्शंस -एमसॉफ्ट-फ्लोट -महार्ड-फ्लोट -स्मॉल-डिवाइड -एमसीपीयू =सीपीयू -mmemcpy
-एमएक्सएल-सॉफ्ट-मुल -एमएक्सएल-सॉफ्ट-डिव -एमएक्सएल-बैरल-शिफ्ट -एमएक्सएल-पैटर्न-तुलना -एमएक्सएल-स्टैक-चेक
-एमएक्सएल-जीपी-ऑप्ट -मनो-क्लीयरबस -एमएक्सएल-गुणा-उच्च -एमएक्सएल-फ्लोट-कन्वर्ट -एमएक्सएल-फ्लोट-वर्ग
-मबिग-एंडियन -थोड़ा-एंडियन -एमएक्सएल-रीऑर्डर -एमएक्सएल-मोड-ऐप-मॉडल

एमआइपी ऑप्शंस हैं El -ईबी -मार्च=मेहराब -मट्यून =मेहराब -मिप्स1 -मिप्स2 -मिप्स3 -मिप्स4
-मिप्स32 -मिप्स32r2 -मिप्स32r3 -मिप्स32r5 -मिप्स32r6 -मिप्स64 -मिप्स64r2 -मिप्स64r3
-मिप्स64r5 -मिप्स64r6 -मिप्स16 -मनो-मिप्स16 -एमएफलिप-मिप्स16 -मिन्टरलिंक-संपीड़ित
-मनो-इंटरलिंक-संपीड़ित -मिन्टरलिंक-मिप्स16 -मनो-इंटरलिंक-मिप्स16 -माबी=अबी
-मैबिकल्स -मनो-एबिकल्स -mshared -मनो-साझा -एमपीएलटी -मनो-पीएलटी -मक्सगोट -मनो-एक्सगोट
-एमजीपी32 -एमजीपी64 -एमएफपी32 -एमएफपीएक्सएक्स -एमएफपी64 -महार्ड-फ्लोट -एमसॉफ्ट-फ्लोट -मनो-फ्लोट
-एकल-फ्लोट -मडबल-फ्लोट -मोड-स्प्रिग -मनो-ऑड-स्प्रिग -माब्स =मोड -मन =एन्कोडिंग
-एमडीएसपी -मनो-डीएसपी -एमडीएसपीआर2 -मनो-डीएसपीआर2 -एमएमक्यू -एमएमएनओ-एमसीयू -मेवा -मनो-इवा -मविर्ट -मनो-पुण्य
-एमएक्सपीए -मनो-एक्सपीए -मिमाइक्रोमिप्स -मनो-माइक्रोमिप्स -एमएफपीयू=एफपीयू-प्रकार -एमएसमार्टमिप्स -मनो-स्मार्टमिप्स
-युग्मित-एकल -मनो-पेयर-सिंगल -एमडीएमएक्स -मनो-एमडीएमएक्स -मिप्स3डी -मनो-मिप्स3डी -एमएमटी
-मनो-एमटी -एमएलएससी -मनो-एलएलएससी -एमएलॉन्ग64 -एमएलॉन्ग32 -एमएसआईएम32 -मनो-सिम32 -Gसंख्या
-मलोकल-एसडीटा -मनो-लोकल-एसडीटा -मेक्सटर्न-एसडीटा -मनो-बाहरी-एसडीटा -एमजीपॉप्ट -मनो-गोप्टो
-मेम्बेडेड-डेटा -एमनो-एम्बेडेड-डेटा -मुनीनिट-कॉन्स्ट-इन-रोडाटा
-मनो-यूनिट-कॉन्स्ट-इन-रोडाटा -एमकोड-पठनीय =की स्थापना -एमएसप्लिट-पते
-मनो-विभाजन-पते -मेक्सप्लिसिट-रिलोक्स -मनो-स्पष्ट-रिलोक्स -एमचेक-शून्य-विभाजन
-मनो-चेक-जीरो-डिवीजन -विभाजित-जाल -विभाजित-विराम -mmemcpy -मनो-मेम्सीपी
-मलॉन्ग-कॉल -मनो-लॉन्ग-कॉल -एमएमएडी -मनो-मद -मिमाद्दो -मनो-इमाद्दो -मफ्यूज्ड-मैड
-मनो-फ्यूज्ड-मैड -एनओसीपीपी -एमफिक्स-24k -मनो-फिक्स-24k -एमफिक्स-आर4000 -मनो-फिक्स-आर 4000
-एमफिक्स-आर4400 -मनो-फिक्स-आर 4400 -एमफिक्स-आर10000 -मनो-फिक्स-आर 10000 -एमफिक्स-आरएम7000 -मनो-फिक्स-आरएम7000
-एमफिक्स-वीआर4120 -मनो-फिक्स-vr4120 -एमफिक्स-वीआर4130 -मनो-फिक्स-vr4130 -एमफिक्स-एसबी1 -मनो-फिक्स-एसबी 1
-एमफ्लश-फंक =समारोह -मनो-फ्लश-फंक - शाखा-लागत =संख्या शाखा-संभावित
-मनो-शाखा-संभावित -एमएफपी-अपवाद -मनो-एफपी-अपवाद -mvr4130-संरेखण -mno-vr4130-संरेखण
-मसिंसी -मनो-सिंसी -मेरेलैक्स-तस्वीर-कॉल -मनो-आराम-तस्वीर-कॉल -mmकाउंट-आरए-पता

एमएमआईक्स ऑप्शंस -एमएलबीफनक्स -mno-libfuncs -मेप्सिलॉन -मनो-एप्सिलॉन -मबी = ग्नू
-मबी = मिमीिक्सवेयर -mzero-विस्तार -मकनुथदिव -mtoplevel-प्रतीकों -मेल्फ़ -शाखा-भविष्यवाणी
-मनो-शाखा-भविष्यवाणी -एमबेस-पते -मनो-आधार-पते -एकल-निकास
-मनो-एकल-निकास

MN10300 ऑप्शंस -मिमल-बग -मनो-मल्टी-बग -मनो-एम33 -Mam33 -Mam33-2 -Mam34 -मट्यून =सी पी यू-
टाइप -mreturn-सूचक-पर-d0 -मनो-सीआरटी0 -मेरेलैक्स -मिलीव -मसेटएलबी

Moxie ऑप्शंस -मेब -मेले -एममूल.x -मनो-सीआरटी0

MSP430 ऑप्शंस -मसिम -masm-हेक्स -एमएमसीयू = -एमसीपीयू = -मलर्ज -मस्मॉल -मेरेलैक्स -मह्मल्ट = -मिनर्ट

NDS32 ऑप्शंस -मबिग-एंडियन -थोड़ा-एंडियन -mreduced-regs -एमफुल-रेग -एमसीमोव -मनो-सेमोव
-mperf-ext -मनो-परफ-एक्सटी -एमवी3पुश -मनो-वी3पुश -एम16बिट -मनो-16 बिट -मिस्र-वेक्टर-आकार =संख्या
-mcache-ब्लॉक-आकार =संख्या -मार्च=मेहराब -एमसीमॉडल=कोड-मॉडल -मक्टर-डॉटर -मेरेलैक्स

एनआईओएस II ऑप्शंस -G संख्या -एमजीपॉप्ट=विकल्प -एमजीपॉप्ट -मनो-गपोप्ट -मेले -मेब -मनो-बाईपास-कैश
-एमबीपास-कैश -मनो-कैश-अस्थिर -mcache-अस्थिर -मनो-फास्ट-स्व-दिव -mfast-sw-div
-महव-मुलु -मनो-एचडब्ल्यू-मुलु -mhw-mulx -मनो-एचडब्ल्यू-मुल्क्स -मनो-एचडब्ल्यू-डिव -महव-दिव -एमकस्टम-इन्स्नो=N
-मनो-कस्टम-इन्स्नो -एमकस्टम-fpu-cfg=नाम -महाली -एमएसस्मॉलसी -msys-crt0=नाम -एमएसआईएस-लिब =नाम

Nvidia PTX ऑप्शंस -एम 32 -एम 64 -ममेनकर्नेल

पीडीपी -11 ऑप्शंस -एमएफपीयू -एमसॉफ्ट-फ्लोट -मैक0 -मनो-एसी0 -एम 40 -एम 45 -एम 10 -एमबीकॉपी
-एमबीकॉपी-बिलिन -मिंट32 -मनो-इंट16 -मिंट16 -मनो-इंट32 -एमफ्लोट32 -मनो-फ्लोट64
-एमफ्लोट64 -मनो-फ्लोट32 -मबशी -मनो-अब्शी -मशाखा-महंगा -मब्रांच-सस्ते
-मुनिक्स-एएसएम -एमडीईसी-एएसएम

पिकोचिप ऑप्शंस -माई =ae_type -मवलीव-लुकहेड =N -mप्रतीक-जैसा-पता
-मनो-अक्षम-चेतावनी

PowerPC ऑप्शंस आरएस/6000 और पावरपीसी विकल्प देखें।

RL78 ऑप्शंस -मसिम -mmul=कोई नहीं -एममूल = जी 13 -एमएमुल=आरएल78 -एम64बिट-डबल्स -एम32बिट-डबल्स

रुपये / 6000 और PowerPC ऑप्शंस -एमसीपीयू =सीपीयू प्रकार -मट्यून =सीपीयू प्रकार -एमसीमॉडल=कोड-मॉडल
-एमपॉवरपीसी64 -माल्टीवेसी -मनो-altivec -एमपॉवरपीसी-जीपीओपीटी -मनो-पावरपीसी-जीपीओपीटी
-एमपॉवरपीसी-जीएफएक्सऑप्ट -एमनो-पावरपीसी-जीएफएक्सओपीटी -एमएमएफसीआरएफ -मनो-एमएफसीआरएफ -एमपीओपीसीएनटीबी -मनो-पॉपसीएनटीबी
-एमपीओपीसीएनटीडी -मनो-पॉपसीएनटीडी -एमएफपीआरएनडी -मनो-एफआरएनडी -एमसीएमपीबी -एमनो-सीएमपीबी -एमएमएफपीजीपीआर -मनो-एमएफपीजीपीआर
-महार्ड-डीएफपी -मनो-हार्ड-डीएफपी -एमफुल-टोक -मिमिनिमल-टोक -मनो-एफपी-इन-टोक -मनो-सम-इन-टोक
-एम 64 -एम 32 -mxl-compat -मनो-एक्सएल-संगत -एमपीई -घातक-शक्ति -घातक-प्राकृतिक
-एमसॉफ्ट-फ्लोट -महार्ड-फ्लोट -मिमल्टीपल -मनो-मल्टीपल -एकल-फ्लोट -मडबल-फ्लोट
-एमएससरल-एफपीयू -मस्ट्रिंग -मनो-स्ट्रिंग -मपडेट -मनो-अपडेट -मावॉइड-अनुक्रमित-पते
-मनो-बचें-अनुक्रमित-पते -मफ्यूज्ड-मैड -मनो-फ्यूज्ड-मैड -एमबिट-संरेखण
-मनो-बिट-संरेखण -मस्ट्रिक्ट-संरेखण -मनो-सख्त-संरेखण -मरिलोकेबल -मनो-स्थानांतरणीय
-mrelocatable-lib -mno-स्थानांतरित-lib -एमटीओसी -मनो-टोकसी -थोड़ा -थोड़ा-एंडियन
-मबिगो -मबिग-एंडियन -mगतिशील-नहीं-तस्वीर -माल्टीवेसी -मस्वदिव -एकल-तस्वीर-आधार
- प्राथमिकता-प्रतिबंधित-इन्स =प्राथमिकता -मस्केड-महंगा-डिप =निर्भरता_प्रकार
-मिन्सर्ट-शेड-एनओपीएस =योजना -एमकॉल-sysv -एमकॉल-नेटबीएसडी -मैक्स-स्ट्रक्चर-रिटर्न
-msvr4-संरचना-वापसी -माबी=अबी-प्रकार -मसिक्योर-पीएलटी -एमबीएस-पीएलटी
-मब्लॉक-चाल-इनलाइन-सीमा =संख्या -मिसेल -मनो-इसेल -मिसल = हाँ -मिसल = नहीं -एमएसपीई -मनो-स्पे
-एमएसपीई = हाँ -एमएसपीई = नहीं -युग्मित -मेजेन-सेल-माइक्रोकोड -मवार्न-सेल-माइक्रोकोड -मवरसेव
-मनो-वरसेव -ममुल्ह्वा -मनो-मुल्ह्वा -एमडीएलएमजेबी -मनो-dlmzb -एमफ्लोट-जीपीआरएस = हाँ -एमफ्लोट-जीपीआरएस = नहीं
-एमफ्लोट-जीपीआरएस = सिंगल -एमफ्लोट-जीपीआरएस = डबल -प्रोटोटाइप -मनो-प्रोटोटाइप -मसिम -एमएमवीएमई
-पागल -मयेलोनाइफ -मेम्ब -एमएसडेटा -एमएसडेटा =चुनना -एमवीएक्सवर्क्स -G संख्या -पथ्रेड -मरेसिप
-मरेसिप =चुनना -मनो-रेसिपी -मरेसिप-सटीक -मो-नुस्खा-सटीक -मवेक्लिबाबी=टाइप -मफ़्रिज़
-मनो-फ़्रिज़ -एमपॉइंटर्स-टू-नेस्टेड-फ़ंक्शंस -मनो-पॉइंटर्स-टू-नेस्टेड-फ़ंक्शंस
-msave-toc-अप्रत्यक्ष -मनो-सेव-टॉक-इनडायरेक्ट -mpower8-संलयन -mno-mpower8-संलयन
-mpower8-वेक्टर -मनो-पावर8-वेक्टर -मक्रिप्टो -मनो-क्रिप्टो -एमडायरेक्ट-मूव -मनो-डायरेक्ट-मूव
-एमक्वाड-मेमोरी -मनो-क्वाड-मेमोरी -mquad-स्मृति-परमाणु -मनो-क्वाड-मेमोरी-एटॉमिक
-mcompat-संरेखण-पर्म -मनो-संगत-संरेखण-पर्म -मपर-रेग-डीएफ -मनो-अपर-रेग-डीएफ
-मपर-रेग-एसएफ -mno-ऊपरी-regs-sf -मपर-रेग -मनो-अपर-रेग्स

RX ऑप्शंस -एम64बिट-डबल्स -एम32बिट-डबल्स -एफपीयू -नोफपु -एमसीपीयू = -एमबिग-एंडियन-डेटा
-थोड़ा-एंडियन-डेटा -एमएसस्मॉल-डेटा -मसिम -मनो-सिम -mas100-वाक्यविन्यास -mno-as100-वाक्यविन्यास
-मेरेलैक्स -एमएमएक्स-स्थिर-आकार = -मिंट-रजिस्टर= -एमपीआईडी -मनो-चेतावनी-एकाधिक-तेज़-व्यवधान
-msave-ac-in-interrupts

एस / 390 और जेड सीरीज ऑप्शंस -मट्यून =सीपीयू प्रकार -मार्च=सीपीयू प्रकार -महार्ड-फ्लोट -एमसॉफ्ट-फ्लोट
-महार्ड-डीएफपी -मनो-हार्ड-डीएफपी -मलॉन्ग-डबल-64 -मलॉन्ग-डबल-128 -एमबैकचेन
-मनो-बैकचेन -पैक्ड-स्टैक -मनो-पैक-स्टैक -एमएसस्मॉल-निष्पादन -मनो-छोटा-निष्पादन
-एमएमवीसीएल -मनो-एमवीसीएल -एम 64 -एम 31 -एमडीबग -मनो-डीबग -मेसा -मज़ार्च -एमटीपीएफ-ट्रेस
-एमनो-टीपीएफ-ट्रेस -मफ्यूज्ड-मैड -मनो-फ्यूज्ड-मैड -मवार्न-फ़्रेमसाइज़ -मवार्न-डायनामिकस्टैक
-मस्टैक-आकार -मस्टैक-गार्ड -महोटपैच=आधा शब्द,आधा शब्द

स्कोर ऑप्शंस -मेब -मेले -मन्हव्लूप -मुल्स -एमएमएसी -एमएसकोर5 -मस्कोर5यू -एमएसकोर7 -एमएसकोर7डी

SH ऑप्शंस -एम 1 -एम 2 -एम2ई -एम2ए-नोफपु -m2a-एकल-केवल -m2a-एकल -एम2ए -एम 3 -एम3ई
-एम4-नोफपु -m4-एकल-केवल -एम 4-एकल -एम 4 -एम4ए-नोफपु -m4a-एकल-केवल -m4a-एकल
-एम4ए -m4al -एम5-64मीडिया -एम5-64मीडिया-नोफपु -एम5-32मीडिया -एम5-32मीडिया-नोफपु -एम5-कॉम्पैक्ट
-एम5-कॉम्पैक्ट-नोफपु -एमबी -एमएल -mdalign -मेरेलैक्स -मबिगटेबल -एमएफमोवडी -मिताची -मेरेनेसा
-मनो-रेनेसा -मनोमैकसेव -मीई -मनो-आईईईई -एमबीटॉप्स -मिसाइज़ -मिनलाइन-आईसी_अमान्य
-एमपीडस्ट्रक्ट -एमस्पेस -मप्रेफरगोट -मुसरमोड -मल्टीकॉस्ट =संख्या -एमडीवी =रणनीति
-mdivsi3_libfunc=नाम -मफिक्स्ड-रेंज =रजिस्टर-रेंज -दिमागदार-संबोधन
-मगेटरकॉस्ट =संख्या -एमपीटी-फिक्स्ड -संकुचित-आउटगोइंग-आर्ग्स -मिनवैलिड-प्रतीक
-परमाणु-मॉडल=परमाणु मॉडल - शाखा-लागत =संख्या -एमजेडडीसीशाखा -मनो-जेडडीसीब्रांच
-एमसीब्रांच-बल-देरी-स्लॉट -मफ्यूज्ड-मैड -मनो-फ्यूज्ड-मैड -एमएफएससीए -मनो-एफएससीए -एमएफएसआरआरए
-मनो-एफएसआरआरए -व्याख्या-सीमूव -मटास

सोलारिस 2 ऑप्शंस -mclear-hwcap -मनो-क्लियर-एचडब्ल्यूकैप -मिमप्योर-पाठ -मनो-अशुद्ध-पाठ
-पथ्रेड -पथ्रेड

स्पार्क ऑप्शंस -एमसीपीयू =सीपीयू प्रकार -मट्यून =सीपीयू प्रकार -एमसीमॉडल=कोड-मॉडल -मेमरी-मॉडल =मेम-
आदर्श -एम 32 -एम 64 -मैप-regs -मनो-ऐप-regs -mfaster-structs -मनो-तेज़-संरचनाएं
-एमएफएलएटी -मनो-फ्लैट -एमएफपीयू -मनो-एफपीयू -महार्ड-फ्लोट -एमसॉफ्ट-फ्लोट -महार्ड-क्वाड-फ्लोट
-एमसॉफ्ट-क्वाड-फ्लोट -मस्टैक-पूर्वाग्रह -मनो-स्टैक-पूर्वाग्रह -मुनसंरेखित-युगल
-मनो-असंरेखित-युगल -म्यूजर-मोड -मनो-उपयोगकर्ता-मोड -एमवी8प्लस -मनो-वी8प्लस -मविसो
-मनो-विज़ -एमविस2 -मनो-विज़2 -एमविस3 -मनो-विज़3 -एमसीबीकोंड -mno-cbcond -एमएफएमएएफ -मनो-एफएमएफ़
-एमपीओपीसी -मनो-पॉपसी -एमफिक्स-एटी697एफ -एमफिक्स-यूटी699

एस पी यू ऑप्शंस -मवार्न-रिलोक -आतंक-स्थानांतरण -एमसेफ-डीएमए -मुंसेफ-डीएमए -एमब्रांच-संकेत
-एमएसस्मॉल-मेम -मिलर्ज-मेम -एमएसटीडीमेन -मफिक्स्ड-रेंज =रजिस्टर-रेंज -mea32 -mea64
-मैड्रेस-स्पेस-रूपांतरण -मनो-पता-स्थान-रूपांतरण -mcache-आकार =कैचे आकार
-परमाणु-अद्यतन -मनो-परमाणु-अद्यतन

प्रणाली V ऑप्शंस -क्यूयू -क्यूएन -वाईपी,पथ -यम,दीर

टाइल-जीएक्स ऑप्शंस -एमसीपीयू = सीपीयू -एम 32 -एम 64 -मबिग-एंडियन -थोड़ा-एंडियन -एमसीमॉडल=कोड-मॉडल

टाइलप्रो ऑप्शंस -एमसीपीयू =सीपीयू -एम 32

V850 ऑप्शंस -मलॉन्ग-कॉल -मनो-लॉन्ग-कॉल -मेप -मनो-एपी -मप्रोलॉग-फ़ंक्शन
-मनो-प्रोलॉग-फ़ंक्शन -एमस्पेस -एमटीडीए=n -एमएसडीए=n -मज़्दा =n -मैप-regs -मनो-ऐप-regs
-mअक्षम-कॉलट -मनो-अक्षम-कॉल्ट -एमवी850ई2वी3 -एमवी850ई2 -एमवी850ई1 -mv850es -एमवी850ई
-एमवी850 -एमवी850ई3वी5 -मलोप -मेरेलैक्स -मलोंग-कूद -एमसॉफ्ट-फ्लोट -महार्ड-फ्लोट -एमजीसीसी-अबी
-mrh850-अबी -एमबिग-स्विच

वैक्स ऑप्शंस -एमजी -एमजीएनयू -मुनिक्स

विज़ियम ऑप्शंस -एमडीबग -मसिम -एमएफपीयू -मनो-एफपीयू -महार्ड-फ्लोट -एमसॉफ्ट-फ्लोट -एमसीपीयू =सीपीयू प्रकार
-मट्यून =सीपीयू प्रकार -एमएसवी-मोड -म्यूजर-मोड

वीएमएस ऑप्शंस -एमवीएमएस-रिटर्न-कोड्स -एमडीबग-मुख्य =उपसर्ग -mmalloc64 -एमपॉइंटर-आकार =आकार

वीएक्सवर्क्स ऑप्शंस -एमआरटीपी -गैर स्थैतिक -बस्टेटिक -बडायनामिक -Xbind-आलसी -Xbind-अब

x86 ऑप्शंस -मट्यून =सीपीयू प्रकार -मार्च=सीपीयू प्रकार -एमटीयून-सीटीआरएल =सुविधा की सूची
-mdump-ट्यून-सुविधाएँ -मनो-डिफॉल्ट -एमएफपीमठ=इकाई -मासम =बोली -मनो-फैंसी-गणित-387
-मनो-एफपी-रिट-इन-387 -एमसॉफ्ट-फ्लोट -मनो-वाइड-गुणा -एमआरटीडी -मैलिग्न-डबल
-mpreferred-ढेर-सीमा =संख्या -मिनकमिंग-स्टैक-सीमा =संख्या -एमसीएलडी -एमसीएक्स16 -मसाहफी
-ममोवबे -एमसीआरसी32 -मरेसिप -मरेसिप =चुनना -मवज़ेरुपर -mprefer-avx128 -एमएमएमएक्स -एमएसएसई -एमएसएसई2
-एमएसएसई3 -एमएसएसएसई3 -एमएसएसई4.1 -एमएसएसई4.2 -एमएसएसई4 -मावक्स -मावएक्स2 -mavx512f -mavx512pf -mavx512er
-mavx512cd -मशा -मासे -एमपीसीएलमुल -एमएफएसजीएसबेस -एमआरडीआरएनडी -एमएफ16सी -एमएफएमए -mprefetchwt1
-एमसीएलफ्लूशोप्ट -mxsavec -एमएक्ससेव्स -एमएसएसई4ए -m3dnow -एमपीओपीसीएनटी -मबम -एमबीएमआई -एमटीबीएम -एमएफएमए4 -मक्सोप
-एमएलजेडसीएनटी -एमबीएमआई2 -एमएफएक्सएसआर -एमएक्ससेव -mxsaveopt -एमआरटीएम -एमएलडब्ल्यूपी -एमएमपीएक्स -mmwaitx -मथ्रेड्स
-मनो-संरेखण-स्ट्रिंगोप्स -मिनलाइन-ऑल-स्ट्रिंगॉप्स -मिनलाइन-स्ट्रिंगोप्स-गतिशील रूप से
-मस्ट्रिंगॉप-रणनीति =ALG -mmemcpy-रणनीति=रणनीति -mmemset-रणनीति =रणनीति
-मपुश-आर्ग्स -संकुचित-आउटगोइंग-आर्ग्स -एम 128 बिट-लॉन्ग-डबल -एम 96 बिट-लॉन्ग-डबल
-मलॉन्ग-डबल-64 -मलॉन्ग-डबल-80 -मलॉन्ग-डबल-128 -मृगपर्म =संख्या -मसेरेगपार्म
-मवेक्लिबाबी=टाइप -mvect8-रिट-इन-मेम -एमपीसी32 -एमपीसी64 -एमपीसी80 -mstackrealign
-मोमित-पत्ती-फ्रेम-सूचक -मनो-रेड-ज़ोन -मनो-टीएलएस-डायरेक्ट-सेग-रेफ्स -एमसीमॉडल=कोड-मॉडल
-माबी=नाम -मैड्रेस-मोड =मोड -एम 32 -एम 64 -एमएक्स32 -एम 16 -मिलर्ज-डेटा-दहलीज =संख्या
-एमएसई2एवीएक्स -मफेंट्री -mrecord-mcount -एमएनओपी-एमकाउंट -m8bit-idiv
-mavx256-विभाजन-असंरेखित-लोड -mavx256-विभाजन-असंरेखित-स्टोर -मैलिग्न-डेटा =टाइप
-मस्टैक-रक्षक-गार्ड =गार्ड

x86 Windows ऑप्शंस -एमकंसोल -मसीगविन -मनो-साइगविन -एमडीएल -मनोप-मज़ा-dllimport -मथ्रेड
-मुनिकोड -एमविन32 -एमविंडो -फनो-सेट-स्टैक-निष्पादन योग्य

तूफानी16 ऑप्शंस -मसिम

Xtensa ऑप्शंस -एमकॉन्स्ट16 -मनो-कॉन्स्ट 16 -मफ्यूज्ड-मैड -मनो-फ्यूज्ड-मैड -मफोर्स-नो-पिक
-mserialize-अस्थिर -मनो-क्रमबद्ध-अस्थिर -mtext-अनुभाग-शाब्दिक
-मनो-पाठ-अनुभाग-शाब्दिक -mलक्ष्य-संरेखण -मनो-लक्ष्य-संरेखण -मलॉन्गकॉल्स
-मनो-लॉन्गकॉल्स

जेड सीरीज ऑप्शंस S/390 और zSeries विकल्प देखें।

कोड पीढ़ी ऑप्शंस
-fcall-सेव्ड-REG -fcall-प्रयुक्त-REG -फिक्स्ड-REG अपवाद -फॉन-कॉल-अपवाद
-fdelete-मृत-अपवाद -फनविंड-टेबल -फैसिंक्रोनस-अनविंड-टेबल्स -फनो-ग्नू-अद्वितीय
-फिनहिबिट-आकार-निर्देश -फिंस्ट्रमेंट-फ़ंक्शंस
-फंस्ट्रमेंट-फ़ंक्शंस-बहिष्कृत-फ़ंक्शन-सूची =प्रतीक,प्रतीक, ...
-फिनस्ट्रुमेंट-फ़ंक्शंस-बहिष्कृत-फ़ाइल-सूची =पट्टिका,पट्टिका, ... -फनो-कॉमन -फनो-पहचान
-एफपीसीसी-स्ट्रक्चर-रिटर्न -एफपीआईसी -एफपीआईसी -एफपीआई -एफपीआईई -फनो-जंप-टेबल -फ़्रेकॉर्ड-जीसीसी-स्विच
-फ्रेग-स्ट्रक्चर-रिटर्न -फशॉर्ट-एनम्स -फशॉर्ट-डबल -फशॉर्ट-वचार -fverbose-asm
-फपैक-स्ट्रक्चर[=n] -फस्टैक-चेक -फस्टैक-सीमा-रजिस्टर=REG -फस्टैक-सीमा-प्रतीक =प्रतीक
-फनो-स्टैक-लिमिट -फस्प्लिट-स्टैक -अग्रणी-अंडरस्कोर -एफटीएलएस-मॉडल =आदर्श
-फस्टैक-पुन: उपयोग =पुन: उपयोग_स्तर -फ्ट्रैपवी -fwrapv -फबाउंड्स-चेक
-दृश्यता =[चूक|आंतरिक|छिपा हुआ|संरक्षित] -फस्ट्रिक्ट-अस्थिर-बिटफील्ड्स
-fsync-libcalls

ऑप्शंस नियंत्रित करना la बच्चा of उत्पादन
संकलन में चार चरण शामिल हो सकते हैं: प्रीप्रोसेसिंग, संकलन उचित, असेंबली और
लिंकिंग, हमेशा उस क्रम में। जीसीसी कई प्रीप्रोसेसिंग और संकलन करने में सक्षम है
फाइलें या तो कई असेंबलर इनपुट फाइलों में, या एक असेंबलर इनपुट फाइल में; फिर
प्रत्येक असेंबलर इनपुट फ़ाइल एक ऑब्जेक्ट फ़ाइल उत्पन्न करती है, और लिंकिंग सभी ऑब्जेक्ट को जोड़ती है
फ़ाइलें (वे नए संकलित, और जो इनपुट के रूप में निर्दिष्ट हैं) एक निष्पादन योग्य फ़ाइल में।

किसी भी इनपुट फ़ाइल के लिए, फ़ाइल नाम प्रत्यय निर्धारित करता है कि किस प्रकार का संकलन है
किया हुआ:

पट्टिका.c
सी स्रोत कोड जिसे प्रीप्रोसेस किया जाना चाहिए।

पट्टिका.i
सी स्रोत कोड जिसे प्रीप्रोसेस नहीं किया जाना चाहिए।

पट्टिकाii
सी ++ स्रोत कोड जिसे प्रीप्रोसेस नहीं किया जाना चाहिए।

पट्टिका.m
उद्देश्य-सी स्रोत कोड। ध्यान दें कि आपको इसके साथ लिंक करना होगा libobjc पुस्तकालय बनाने के लिए
उद्देश्य-सी कार्यक्रम कार्य।

पट्टिका.एमआई
उद्देश्य-सी स्रोत कोड जिसे पहले से संसाधित नहीं किया जाना चाहिए।

पट्टिका.mm
पट्टिका.M
उद्देश्य-सी ++ स्रोत कोड। ध्यान दें कि आपको इसके साथ लिंक करना होगा libobjc बनाने के लिए पुस्तकालय
एक उद्देश्य-सी ++ प्रोग्राम काम करता है। ध्यान दें कि .M एक शाब्दिक राजधानी एम को संदर्भित करता है।

पट्टिका.एमआईआई
उद्देश्य-सी++ स्रोत कोड जिसे पूर्वसंसाधित नहीं किया जाना चाहिए।

पट्टिका.h
C, C++, Objective-C या Objective-C++ हेडर फाइल को प्रीकंपील्ड में बदलना होगा
हेडर (डिफ़ॉल्ट), या सी, सी ++ हेडर फ़ाइल को एडीए स्पेक में बदलना है (के माध्यम से)
-fdump-ada-कल्पना स्विच)।

पट्टिका. सीसी
पट्टिका.सीपी
पट्टिका.cxx
पट्टिकासीपीपी
पट्टिकासीपीपी
पट्टिका.सी++
पट्टिका.C
सी ++ स्रोत कोड जिसे प्रीप्रोसेस किया जाना चाहिए। ध्यान दें कि में .cxx, अंतिम दो अक्षर
दोनों का शाब्दिक होना चाहिए x। इसी तरह, .C एक शाब्दिक पूंजी सी को संदर्भित करता है।

पट्टिका.mm
पट्टिका.M
उद्देश्य-सी++ स्रोत कोड जिसे पहले से संसाधित किया जाना चाहिए।

पट्टिका.एमआईआई
उद्देश्य-सी++ स्रोत कोड जिसे पूर्वसंसाधित नहीं किया जाना चाहिए।

पट्टिकाएचएचएच
पट्टिका.H
पट्टिका.एचपी
पट्टिका.hxx
पट्टिका.hpp
पट्टिकाएचपीपी
पट्टिका.एच++
पट्टिका.टीसीसी
सी ++ हेडर फ़ाइल को प्रीकंपील्ड हेडर या एडीए स्पेक में बदलना है।

पट्टिका.f
पट्टिका।के लिये
पट्टिका.एफटीएन
फिक्स्ड फॉर्म फोरट्रान सोर्स कोड जिसे प्रीप्रोसेस नहीं किया जाना चाहिए।

पट्टिका.F
पट्टिका।के लिये
पट्टिकाएफपीपी
पट्टिकाएफपीपी
पट्टिकाएफटीएन
फिक्स्ड फॉर्म फोरट्रान स्रोत कोड जिसे प्रीप्रोसेस किया जाना चाहिए (पारंपरिक के साथ
प्रीप्रोसेसर)।

पट्टिका.f90
पट्टिका.f95
पट्टिका.f03
पट्टिका.f08
फ्री फॉर्म फोरट्रान सोर्स कोड जिसे प्रीप्रोसेस नहीं किया जाना चाहिए।

पट्टिकाएफ90
पट्टिकाएफ95
पट्टिकाएफ03
पट्टिकाएफ08
फ्री फॉर्म फोरट्रान सोर्स कोड जिसे प्रीप्रोसेस किया जाना चाहिए (पारंपरिक के साथ)
प्रीप्रोसेसर)।

पट्टिका।जाओ
स्रोत कोड जाओ।

पट्टिका।विज्ञापन
एडीए स्रोत कोड फ़ाइल जिसमें एक पुस्तकालय इकाई घोषणा (एक की घोषणा) शामिल है
पैकेज, उपप्रोग्राम, या सामान्य, या एक सामान्य तात्कालिकता), या एक पुस्तकालय इकाई
नाम बदलने की घोषणा (एक पैकेज, सामान्य, या उपप्रोग्राम का नाम बदलने की घोषणा)। ऐसा
फ़ाइलें भी कहा जाता है ऐनक.

पट्टिका.दब
एडीए स्रोत कोड फ़ाइल जिसमें लाइब्रेरी यूनिट बॉडी (एक सबप्रोग्राम या पैकेज बॉडी) शामिल है।
ऐसी फाइलों को भी कहा जाता है शव.

पट्टिका.s
असेंबलर कोड।

पट्टिका.S
पट्टिका.sx
असेंबलर कोड जिसे प्रीप्रोसेस किया जाना चाहिए।

अन्य
एक ऑब्जेक्ट फ़ाइल को सीधे लिंकिंग में फीड किया जाना है। कोई भी फ़ाइल नाम जिसकी कोई पहचान नहीं है
प्रत्यय का व्यवहार इस प्रकार किया जाता है।

आप इनपुट भाषा को स्पष्ट रूप से निर्दिष्ट कर सकते हैं -x विकल्प:

-x भाषा
स्पष्ट रूप से निर्दिष्ट करें भाषा निम्नलिखित इनपुट फाइलों के लिए (बजाय
कंपाइलर फ़ाइल नाम प्रत्यय के आधार पर एक डिफ़ॉल्ट चुनें)। यह विकल्प सभी पर लागू होता है
अगले तक इनपुट फाइलों का पालन करना -x विकल्प। के लिए संभावित मान भाषा यह है:

सी सी-हेडर सीपीपी-आउटपुट
सी++ सी++-हेडर सी++-सीपीपी-आउटपुट
उद्देश्य-सी उद्देश्य-सी-शीर्षलेख उद्देश्य-सी-सीपीपी-आउटपुट
उद्देश्य-सी++ उद्देश्य-सी++-शीर्षलेख उद्देश्य-सी++-सीपीपी-आउटपुट
कोडांतरक-साथ-cpp
एडीए
f77 f77-cpp-इनपुट f95 f95-cpp-input
go
जावा

-x कोई नहीं
किसी भाषा के किसी भी विनिर्देश को बंद करें, ताकि बाद की फाइलों को संभाला जा सके
उनके फ़ाइल नाम प्रत्यय के अनुसार (जैसा कि वे if . हैं) -x बिल्कुल उपयोग नहीं किया गया है)।

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

यदि आप केवल संकलन के कुछ चरणों को चाहते हैं, तो आप उपयोग कर सकते हैं -x (या फ़ाइल नाम प्रत्यय)
बताने के लिए जीसीसी कहां से शुरू करें, और विकल्पों में से एक -c, -Sया, -E कहने के लिए कहाँ जीसीसी करने के लिए है
विराम। ध्यान दें कि कुछ संयोजन (उदाहरण के लिए, -x सीपीपी-आउटपुट -E) निर्देश देना जीसीसी करना
कुछ भी नहीं।

-c स्रोत फ़ाइलों को संकलित या इकट्ठा करें, लेकिन लिंक न करें। लिंकिंग चरण बस है
नहीं किया। अंतिम आउटपुट प्रत्येक स्रोत फ़ाइल के लिए ऑब्जेक्ट फ़ाइल के रूप में होता है।

डिफ़ॉल्ट रूप से, स्रोत फ़ाइल के लिए ऑब्जेक्ट फ़ाइल नाम प्रत्यय को बदलकर बनाया जाता है .c,
.i, .s, आदि, साथ .o.

गैर-मान्यता प्राप्त इनपुट फ़ाइलें, जिन्हें संकलन या असेंबली की आवश्यकता नहीं है, को अनदेखा कर दिया जाता है।

-S संकलन के उचित चरण के बाद रुकें; इकट्ठा मत करो। आउटपुट में है
निर्दिष्ट प्रत्येक गैर-असेंबलर इनपुट फ़ाइल के लिए एक कोडांतरक कोड फ़ाइल का रूप।

डिफ़ॉल्ट रूप से, स्रोत फ़ाइल के लिए कोडांतरक फ़ाइल नाम प्रत्यय को बदलकर बनाया जाता है
.c, .i, आदि, साथ .s.

इनपुट फ़ाइलें जिन्हें संकलन की आवश्यकता नहीं है, उन्हें अनदेखा कर दिया जाता है।

-E प्रीप्रोसेसिंग चरण के बाद बंद करो; कंपाइलर को ठीक से न चलाएं। आउटपुट में है
प्रीप्रोसेस्ड सोर्स कोड का रूप, जो मानक आउटपुट को भेजा जाता है।

इनपुट फ़ाइलें जिन्हें प्रीप्रोसेसिंग की आवश्यकता नहीं होती है, उन्हें अनदेखा कर दिया जाता है।

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

If -o निर्दिष्ट नहीं है, डिफ़ॉल्ट एक निष्पादन योग्य फ़ाइल डालना है ए.आउट, वस्तु
के लिए दर्ज स्रोत प्रत्यय in स्रोत.ओ, इसकी असेंबलर फ़ाइल in स्रोत.एस, एक पूर्वसंकलित
हेडर फ़ाइल में स्रोत.प्रत्यय.gch, और मानक आउटपुट पर सभी प्रीप्रोसेस्ड सी स्रोत।

-v के चरणों को चलाने के लिए निष्पादित कमांड (मानक त्रुटि आउटपुट पर) प्रिंट करें
संकलन साथ ही कंपाइलर ड्राइवर प्रोग्राम का वर्जन नंबर प्रिंट करें
प्रीप्रोसेसर और कंपाइलर उचित।

-###
पसंद -v सिवाय आदेशों को निष्पादित नहीं किया जाता है और तर्क तब तक उद्धृत किए जाते हैं जब तक कि वे
केवल अल्फ़ान्यूमेरिक वर्ण या "./-_" हों। यह शेल स्क्रिप्ट के लिए उपयोगी है
ड्राइवर-जनरेटेड कमांड लाइन कैप्चर करें।

-पाइप
के विभिन्न चरणों के बीच संचार के लिए अस्थायी फाइलों के बजाय पाइप का प्रयोग करें
संकलन यह कुछ सिस्टम पर काम करने में विफल रहता है जहां असेंबलर पढ़ने में असमर्थ है
एक पाइप से; लेकिन जीएनयू असेंबलर को कोई परेशानी नहीं है।

--मदद
द्वारा समझे गए कमांड-लाइन विकल्पों का विवरण (मानक आउटपुट पर) प्रिंट करें
जीसीसी। अगर -v विकल्प भी निर्दिष्ट है तो --मदद विभिन्न को भी पारित किया जाता है
प्रक्रियाओं का आह्वान किया जीसीसी, ताकि वे आदेश-पंक्ति विकल्प प्रदर्शित कर सकें वे
स्वीकार करना। अगर -वेक्स्ट्रा विकल्प भी निर्दिष्ट किया गया है (इससे पहले --मदद विकल्प),
फिर कमांड-लाइन विकल्प जिनके साथ कोई दस्तावेज जुड़ा नहीं है, वे भी हैं
का प्रदर्शन किया।

--लक्ष्य-सहायता
(मानक आउटपुट पर) लक्ष्य-विशिष्ट कमांड-लाइन विकल्पों का विवरण प्रिंट करें
प्रत्येक उपकरण के लिए। कुछ लक्ष्यों के लिए अतिरिक्त लक्ष्य-विशिष्ट जानकारी भी हो सकती है
मुद्रित।

--सहायता = {कक्षा|[^]क्वालीफायर}[, ...]
द्वारा समझे गए कमांड-लाइन विकल्पों का विवरण (मानक आउटपुट पर) प्रिंट करें
कंपाइलर जो सभी निर्दिष्ट वर्गों और क्वालीफायर में फिट होता है। ये हैं
समर्थित वर्ग:

आशावादी
संकलक द्वारा समर्थित सभी अनुकूलन विकल्प प्रदर्शित करें।

चेतावनी
संकलक द्वारा उत्पादित चेतावनी संदेशों को नियंत्रित करने वाले सभी विकल्पों को प्रदर्शित करें।

लक्ष्य
लक्ष्य-विशिष्ट विकल्प प्रदर्शित करें। से भिन्न --लक्ष्य-सहायता विकल्प हालांकि, लक्ष्य-
लिंकर और असेंबलर के विशिष्ट विकल्प प्रदर्शित नहीं होते हैं। यह है क्योंकि
वे उपकरण वर्तमान में विस्तारित का समर्थन नहीं करते हैं --सहायता= वाक्य - विन्यास।

पैरामीटर
द्वारा पहचाने गए मान प्रदर्शित करें --परम विकल्प.

भाषा
के लिए समर्थित विकल्पों को प्रदर्शित करें भाषा, जहां भाषा में से एक का नाम है
जीसीसी के इस संस्करण में समर्थित भाषाएं।

सामान्य
उन विकल्पों को प्रदर्शित करें जो सभी भाषाओं के लिए समान हैं।

ये समर्थित क्वालिफायर हैं:

गैर-दस्तावेजी
केवल उन्हीं विकल्पों को प्रदर्शित करें जो अनिर्दिष्ट हैं।

में शामिल हो गए
एक तर्क लेने के विकल्प प्रदर्शित करें जो समान चिह्न के बाद दिखाई देता है
पाठ का निरंतर टुकड़ा, जैसे: --सहायता = लक्ष्य.

अलग
एक तर्क लेने वाले विकल्प प्रदर्शित करें जो निम्नलिखित के बाद एक अलग शब्द के रूप में प्रकट होता है
मूल विकल्प, जैसे: -o निर्गम संचिका.

इस प्रकार उदाहरण के लिए समर्थित सभी गैर-दस्तावेज लक्ष्य-विशिष्ट स्विच प्रदर्शित करने के लिए
संकलक, उपयोग करें:

--सहायता = लक्ष्य, अनिर्दिष्ट

एक क्वालीफायर की भावना को इसके साथ उपसर्ग करके उलटा किया जा सकता है ^ चरित्र, इसलिए के लिए
उदाहरण सभी बाइनरी चेतावनी विकल्पों को प्रदर्शित करने के लिए (यानी, जो या तो चालू या बंद हैं
और वह तर्क नहीं लेता है) जिसका विवरण है, उपयोग करें:

--help=चेतावनी,^शामिल हुए,^अदस्तावेजीकृत

करने के लिए तर्क --सहायता= केवल उल्टे क्वालिफायर शामिल नहीं होने चाहिए।

कई वर्गों का संयोजन संभव है, हालांकि यह आमतौर पर आउटपुट को प्रतिबंधित करता है
इतना कुछ कि प्रदर्शित करने के लिए कुछ भी नहीं है। एक मामला जहां यह काम करता है, हालांकि, जब
वर्गों में से एक है लक्ष्य. उदाहरण के लिए, सभी लक्ष्य-विशिष्ट प्रदर्शित करने के लिए
अनुकूलन विकल्प, उपयोग करें:

--सहायता = लक्ष्य, अनुकूलक

RSI --सहायता= कमांड लाइन पर विकल्प दोहराया जा सकता है। प्रत्येक क्रमिक उपयोग प्रदर्शित करता है
इसके विकल्पों का अनुरोधित वर्ग, जिन्हें पहले ही प्रदर्शित किया जा चुका है, को छोड़कर।

अगर -Q से पहले कमांड लाइन पर विकल्प दिखाई देता है --सहायता= विकल्प, फिर
द्वारा प्रदर्शित वर्णनात्मक पाठ --सहायता= बदल गया है। प्रदर्शित का वर्णन करने के बजाय
विकल्प, एक संकेत दिया जाता है कि विकल्प सक्षम है, अक्षम है या सेट है
एक विशिष्ट मूल्य के लिए (यह मानते हुए कि संकलक इसे उस बिंदु पर जानता है जहां
--सहायता= विकल्प) का प्रयोग किया जाता है।

एआरएम पोर्ट से एक छोटा उदाहरण यहां दिया गया है जीसीसी:

% gcc -Q -mabi=2 --help=target -c
निम्नलिखित विकल्प लक्ष्य विशिष्ट हैं:
-मबी = 2
-मबॉर्ट-ऑन-नोरटर्न [अक्षम]
-मैप्स [अक्षम]

आउटपुट पिछले कमांड-लाइन विकल्पों के प्रभावों के प्रति संवेदनशील है, इसलिए के लिए
उदाहरण यह पता लगाना संभव है कि कौन से अनुकूलन सक्षम हैं -ओ३ का उपयोग करके:

-Q -O2 --help=ऑप्टिमाइज़र

वैकल्पिक रूप से आप खोज सकते हैं कि कौन से बाइनरी अनुकूलन सक्षम हैं -ओ३ का उपयोग करके:

gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts
gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts
अंतर /tmp/O2-opts /tmp/O3-opts | जीआरपी सक्षम

-नो-कैनोनिकल-उपसर्ग
किसी भी प्रतीकात्मक लिंक का विस्तार न करें, संदर्भों को हल करें /../ or /./, या रास्ता बनाओ
एक सापेक्ष उपसर्ग उत्पन्न करते समय निरपेक्ष।

--संस्करण
लागू जीसीसी की संस्करण संख्या और कॉपीराइट प्रदर्शित करें।

-आवरण
एक रैपर प्रोग्राम के तहत सभी उप-आदेशों को आमंत्रित करें। रैपर प्रोग्राम का नाम और
इसके मापदंडों को अल्पविराम से अलग सूची के रूप में पारित किया जाता है।

gcc -c tc -wrapper gdb,--args

यह के सभी उपप्रोग्रामों को आमंत्रित करता है जीसीसी के अंतर्गत जी.डी.बी. --आर्ग्स, इस प्रकार का आह्वान cc1 is
जी.डी.बी. --आर्ग्स cc1 ....

-फ़्प्लगिन =नाम.so
फ़ाइल में प्लगइन कोड लोड करें नाम.so, द्वारा साझा की जाने वाली साझा वस्तु के रूप में माना जाता है
संकलक। साझा ऑब्जेक्ट फ़ाइल का मूल नाम प्लगइन की पहचान करने के लिए उपयोग किया जाता है
तर्क विश्लेषण के प्रयोजनों के लिए (देखें -फ्लूगिन-आर्ग-नाम-कुंजी=मूल्य नीचे)। प्रत्येक
प्लगइन को प्लगइन्स एपीआई में निर्दिष्ट कॉलबैक फ़ंक्शन को परिभाषित करना चाहिए।

-फ्लूगिन-आर्ग-नाम-कुंजी=मूल्य
एक तर्क को परिभाषित करें जिसे कहा जाता है कुंजी value के मान के साथ मूल्य प्लगइन के लिए कहा जाता है नाम.

-fdump-ada-कल्पना[-पतला]
सी और सी ++ स्रोत के लिए और फाइलों को शामिल करें, संबंधित एडीए चश्मा उत्पन्न करें।

-फडा-स्पेक-पैरेंट =इकाई
के साथ संयोजन के रूप में -fdump-ada-कल्पना[-पतला] ऊपर, Ada स्पेक्स को चाइल्ड यूनिट के रूप में जेनरेट करें
माता - पिता इकाई.

-फडम्प-गो-स्पेक =पट्टिका
किसी भी भाषा में इनपुट फ़ाइलों के लिए, संबंधित गो डिक्लेरेशन जेनरेट करें पट्टिका। इस
गो "कॉन्स्ट", "टाइप", "var", और "func" घोषणाएं उत्पन्न करता है जो एक उपयोगी तरीका हो सकता है
किसी अन्य भाषा में लिखे गए कोड के लिए गो इंटरफ़ेस लिखना शुरू करने के लिए।

@पट्टिका
से कमांड-लाइन विकल्प पढ़ें पट्टिका. पढ़े गए विकल्पों को के स्थान पर सम्मिलित किया जाता है
मूल @पट्टिका विकल्प। अगर पट्टिका मौजूद नहीं है, या पढ़ा नहीं जा सकता है, तो विकल्प
शाब्दिक रूप से व्यवहार किया जाएगा, और हटाया नहीं जाएगा।

में विकल्प पट्टिका व्हाइटस्पेस द्वारा अलग किया जाता है। एक व्हाइटस्पेस वर्ण शामिल किया जा सकता है
एकल या दोहरे उद्धरण चिह्नों में संपूर्ण विकल्प को घेरकर एक विकल्प में। कोई भी
कैरेक्टर (बैकस्लैश सहित) को कैरेक्टर को बी . से प्रीफिक्स करके शामिल किया जा सकता है
बैकस्लैश के साथ शामिल है। NS पट्टिका स्वयं में अतिरिक्त @ हो सकता हैपट्टिका विकल्प; कोई भी
ऐसे विकल्पों को पुनरावर्ती रूप से संसाधित किया जाएगा।

संकलन सी + + प्रोग्राम्स
C++ स्रोत फ़ाइलें पारंपरिक रूप से किसी एक प्रत्यय का उपयोग करती हैं .C, . सीसी, सीपीपी, सीपीपी, .सी++, .सीपीया,
.cxx; C++ शीर्षलेख फ़ाइलें अक्सर उपयोग करती हैं एचएचएच, .hpp, .H, या (साझा टेम्पलेट कोड के लिए) .टीसीसी, और
पूर्वसंसाधित C++ फ़ाइलें प्रत्यय का उपयोग करती हैं ii. जीसीसी इन नामों वाली फाइलों को पहचानता है और
उन्हें सी ++ प्रोग्राम के रूप में संकलित करता है, भले ही आप कंपाइलर को उसी तरह से कॉल करें जैसे संकलन के लिए
सी प्रोग्राम (आमतौर पर नाम के साथ जीसीसी).

हालाँकि, का उपयोग जीसीसी सी ++ पुस्तकालय नहीं जोड़ता है। जी ++ एक प्रोग्राम है जो GCC को कॉल करता है और
स्वचालित रूप से सी ++ पुस्तकालय के खिलाफ लिंकिंग निर्दिष्ट करता है। यह व्यवहार करता है .c, .h और .i के रूप में फ़ाइलें
C स्रोत फ़ाइलों के बजाय C++ स्रोत फ़ाइलें, जब तक कि -x प्रयोग किया जाता है। यह कार्यक्रम भी उपयोगी
सी हेडर फ़ाइल को ए के साथ प्रीकंपाइल करते समय .h सी ++ संकलन में उपयोग के लिए विस्तार। पर
कई प्रणालियाँ, जी ++ नाम के साथ भी स्थापित है सी ++.

जब आप C++ प्रोग्राम संकलित करते हैं, तो आप कई समान कमांड-लाइन विकल्पों को निर्दिष्ट कर सकते हैं जो
आप किसी भी भाषा में प्रोग्राम संकलित करने के लिए उपयोग करते हैं; या कमांड-लाइन विकल्प C . के लिए सार्थक हैं
और संबंधित भाषाएं; या विकल्प जो केवल C++ प्रोग्राम के लिए अर्थपूर्ण हैं।

ऑप्शंस नियंत्रित करना C बोली
निम्नलिखित विकल्प सी की बोली को नियंत्रित करते हैं (या सी से प्राप्त भाषाएं, जैसे सी ++,
ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++) जिसे कंपाइलर स्वीकार करता है:

-अनसी
सी मोड में, यह बराबर है -एसटीडी = सी 90. सी ++ मोड में, यह बराबर है
-एसटीडी=सी++98.

यह GCC की कुछ विशेषताओं को बंद कर देता है जो ISO C90 के साथ असंगत हैं (जब
सी कोड संकलित करना), या मानक सी ++ (सी ++ कोड संकलित करते समय), जैसे "एएसएम" और
"टाइपोफ़" कीवर्ड, और "यूनिक्स" और "वैक्स" जैसे पूर्वनिर्धारित मैक्रोज़ जो निम्नलिखित की पहचान करते हैं
आप जिस प्रकार की प्रणाली का उपयोग कर रहे हैं। यह अवांछनीय और शायद ही कभी उपयोग किए जाने वाले आईएसओ को भी सक्षम बनाता है
ट्रिग्राफ सुविधा। सी कंपाइलर के लिए, यह सी ++ शैली की पहचान को अक्षम करता है //
टिप्पणियों के साथ-साथ "इनलाइन" कीवर्ड।

वैकल्पिक कीवर्ड "__asm__", "__extension__", "__inline__" और "__typeof__"
के बावजूद काम करना जारी रखें -अनसी. आप उन्हें ISO C प्रोग्राम में उपयोग नहीं करना चाहेंगे,
बेशक, लेकिन उन्हें हेडर फाइलों में रखना उपयोगी होता है जिन्हें इसमें शामिल किया जा सकता है
के साथ किया गया संकलन -अनसी. वैकल्पिक पूर्वनिर्धारित मैक्रोज़ जैसे "__unix__" और
"__vax__" साथ या बिना भी उपलब्ध हैं -अनसी.

RSI -अनसी विकल्प गैर-आईएसओ कार्यक्रमों को अनावश्यक रूप से अस्वीकार करने का कारण नहीं बनता है। के लिये
कि, -वेदांतिक के अतिरिक्त आवश्यक है -अनसी.

मैक्रो "__STRICT_ANSI__" पूर्वनिर्धारित होता है जब -अनसी विकल्प का प्रयोग किया जाता है। कुछ हेडर
फ़ाइलें इस मैक्रो को नोटिस कर सकती हैं और कुछ कार्यों को घोषित करने या परिभाषित करने से बचना चाहिए
कुछ मैक्रोज़ जिन्हें ISO मानक की आवश्यकता नहीं है; यह हस्तक्षेप से बचने के लिए है
किसी भी प्रोग्राम के साथ जो इन नामों का उपयोग अन्य चीजों के लिए कर सकता है।

ऐसे कार्य जो सामान्य रूप से निर्मित होते हैं लेकिन आईएसओ सी द्वारा परिभाषित शब्दार्थ नहीं होते हैं (जैसे
"एलोका" और "एफएफएस" के रूप में) अंतर्निहित कार्य नहीं हैं जब -अनसी प्रयोग किया जाता है।

-एसटीडी=
भाषा मानक निर्धारित करें। यह विकल्प वर्तमान में केवल तभी समर्थित है जब
सी या सी ++ संकलित करना।

कंपाइलर कई आधार मानकों को स्वीकार कर सकता है, जैसे c90 or सी++98, और GNU बोलियाँ
उन मानकों के, जैसे जीएनयू२३४ or जीएनयू++98. जब एक आधार मानक निर्दिष्ट किया जाता है, तो
कंपाइलर उस मानक के साथ-साथ GNU एक्सटेंशन का उपयोग करने वाले सभी कार्यक्रमों को स्वीकार करता है
जो इसका खंडन न करे। उदाहरण के लिए, -एसटीडी = सी 90 GCC की कुछ विशेषताओं को बंद कर देता है
जो ISO C90 के साथ असंगत हैं, जैसे "asm" और "typeof" कीवर्ड, लेकिन नहीं
अन्य GNU एक्सटेंशन जिनका ISO C90 में कोई अर्थ नहीं है, जैसे कि इसे छोड़ना
एक "?:" अभिव्यक्ति का मध्य शब्द। दूसरी ओर, जब एक मानक की जीएनयू बोली
निर्दिष्ट है, संकलक द्वारा समर्थित सभी सुविधाएँ सक्षम हैं, तब भी जब वे
सुविधाएँ आधार मानक का अर्थ बदल देती हैं। नतीजतन, कुछ सख्त-अनुरूप
कार्यक्रमों को खारिज किया जा सकता है। विशेष मानक का उपयोग द्वारा किया जाता है -वेदांतिक पहचान करने के लिए
मानक के उस संस्करण को देखते हुए कौन सी विशेषताएं GNU एक्सटेंशन हैं। उदाहरण के लिए
-एसटीडी = जीएनयू 90 -वेदांतिक सी ++ शैली के बारे में चेतावनी देता है // टिप्पणियाँ, जबकि -एसटीडी = जीएनयू 99 -वेदांतिक
नहीं करता।

इस विकल्प के लिए एक मान प्रदान किया जाना चाहिए; संभावित मान हैं

c90
c89
आईएसओ 9899 1990: XNUMX
सभी ISO C90 प्रोग्रामों का समर्थन करें (कुछ GNU एक्सटेंशन जो ISO C90 के साथ विरोध करते हैं
अक्षम हैं)। के समान -अनसी सी कोड के लिए।

आईएसओ 9899 199409: XNUMX
आईएसओ C90 संशोधन 1 में संशोधित के रूप में।

c99
C9X
आईएसओ 9899 1999: XNUMX
आईएसओ9899:199x
आईएसओ सी 99। यह मानक काफी हद तक पूरी तरह से समर्थित है, मॉड्यूल बग और
फ़्लोटिंग-पॉइंट मुद्दे (मुख्य रूप से लेकिन पूरी तरह से वैकल्पिक C99 सुविधाओं से संबंधित नहीं हैं
अनुबंध एफ और जी से)। देखोhttp://gcc.gnu.org/c99status.html> अधिक के लिए
जानकारी। नाम C9X और आईएसओ9899:199x पदावनत हैं।

c11
C1X
आईएसओ 9899 2011: XNUMX
ISO C11, ISO C मानक का 2011 का संशोधन। यह मानक काफी हद तक है
पूरी तरह से समर्थित, मॉड्यूलो बग, फ्लोटिंग-पॉइंट मुद्दे (मुख्य रूप से लेकिन पूरी तरह से नहीं)
अनुलग्नक F और G से वैकल्पिक C11 सुविधाओं से संबंधित) और वैकल्पिक अनुलग्नक K
(सीमा-जांच इंटरफेस) और एल (विश्लेषणशीलता)। नाम C1X पदावनत किया गया है।

जीएनयू२३४
जीएनयू२३४
ISO C90 की GNU बोली (कुछ C99 सुविधाओं सहित)।

जीएनयू२३४
जीएनयू9एक्स
आईएसओ सी99 की जीएनयू बोली। नाम जीएनयू9एक्स पदावनत किया गया है।

जीएनयू२३४
जीएनयू1एक्स
ISO C11 की GNU बोली. यह सी कोड के लिए डिफ़ॉल्ट है। नाम जीएनयू1एक्स is
पदावनत।

सी++98
सी++03
1998 ISO C++ मानक प्लस 2003 तकनीकी शुद्धिपत्र और कुछ अतिरिक्त
दोष रिपोर्ट। के समान -अनसी सी ++ कोड के लिए।

जीएनयू++98
जीएनयू++03
जीएनयू की बोली -एसटीडी=सी++98. यह C++ कोड के लिए डिफ़ॉल्ट है।

सी++11
सी++0x
2011 आईएसओ सी ++ मानक प्लस संशोधन। नाम सी++0x पदावनत किया गया है।

जीएनयू++11
जीएनयू++0x
जीएनयू की बोली -एसटीडी=सी++11। नाम जीएनयू++0x पदावनत किया गया है।

सी++14
सी++ 1y
2014 आईएसओ सी ++ मानक प्लस संशोधन। नाम सी++ 1y पदावनत किया गया है।

जीएनयू++14
जीएनयू++1y
जीएनयू की बोली -एसटीडी=सी++14। नाम जीएनयू++1y पदावनत किया गया है।

सी++ 1z
ISO C++ मानक का अगला संशोधन, 2017 के लिए संभावित रूप से नियोजित है। समर्थन
अत्यधिक प्रयोगात्मक है, और लगभग निश्चित रूप से असंगत तरीकों से बदल जाएगा
भविष्य के रिलीज।

जीएनयू++1z
जीएनयू की बोली -एसटीडी=सी++1जेड. समर्थन अत्यधिक प्रयोगात्मक है, और लगभग होगा
निश्चित रूप से भविष्य के रिलीज में असंगत तरीकों में परिवर्तन।

-fgnu89-इनलाइन
विकल्प -fgnu89-इनलाइन GCC को "इनलाइन" के लिए पारंपरिक GNU शब्दार्थ का उपयोग करने के लिए कहता है
C99 मोड में होने पर कार्य करता है।

इस विकल्प का उपयोग करना मोटे तौर पर "gnu_inline" फ़ंक्शन विशेषता को जोड़ने के बराबर है
सभी इनलाइन कार्यों के लिए।

विकल्प -fno-gnu89-इनलाइन स्पष्ट रूप से GCC को C99 शब्दार्थ का उपयोग करने के लिए कहता है
"इनलाइन" जब सी 99 या जीएनयू 99 मोड में (यानी, यह डिफ़ॉल्ट व्यवहार निर्दिष्ट करता है)। इस
विकल्प समर्थित नहीं है -एसटीडी = सी 90 or -एसटीडी = जीएनयू 90 मोड।

प्रीप्रोसेसर मैक्रोज़ "__GNUC_GNU_INLINE__" और "__GNUC_STDC_INLINE__" का उपयोग किया जा सकता है
यह जाँचने के लिए कि "इनलाइन" फ़ंक्शंस के लिए कौन से शब्दार्थ प्रभावी हैं।

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

घोषणाओं के अलावा, फ़ाइल, टिप्पणियों में, प्रत्येक घोषणा के मूल को इंगित करती है
(स्रोत फ़ाइल और लाइन), क्या घोषणा निहित थी, प्रोटोटाइप थी या
अप्रमाणित (I, N नए or . के लिए O पुराने के लिए, क्रमशः, पहले वर्ण में के बाद
लाइन नंबर और कोलन), और क्या यह घोषणा या परिभाषा से आया है
(C or F, क्रमशः, निम्नलिखित वर्ण में)। समारोह के मामले में
परिभाषाएँ, तर्कों की एक K&R-शैली सूची, जिसके बाद उनकी घोषणाएँ होती हैं
प्रदान की गई, टिप्पणियों के अंदर, घोषणा के बाद।

-परती-पैरामीटर रहित-वैरिएडिक-फ़ंक्शंस
नामित पैरामीटर के बिना विविध कार्यों को स्वीकार करें।

हालांकि इस तरह के एक फ़ंक्शन को परिभाषित करना संभव है, यह बहुत उपयोगी नहीं है क्योंकि यह है
तर्कों को पढ़ना संभव नहीं है। यह केवल C के लिए समर्थित है क्योंकि यह निर्माण है
सी ++ द्वारा अनुमत।

-फनो-एएसएम
"asm", "inline" या "typeof" को एक कीवर्ड के रूप में न पहचानें, ताकि कोड इनका उपयोग कर सके
पहचानकर्ता के रूप में शब्द। आप कीवर्ड "__asm__", "__inline__" और . का उपयोग कर सकते हैं
इसके बजाय "__typeof__"। -अनसी का तात्पर्य -फनो-एएसएम.

C++ में, यह स्विच केवल "typeof" कीवर्ड को प्रभावित करता है, क्योंकि "asm" और "inline" हैं
मानक कीवर्ड। आप का उपयोग करना चाह सकते हैं -फनो-ग्नू-कीवर्ड इसके बजाय ध्वज, जिसमें है
एक ही प्रभाव। C99 मोड में (-एसटीडी = सी 99 or -एसटीडी = जीएनयू 99), यह स्विच केवल को प्रभावित करता है
"asm" और "typeof" कीवर्ड, क्योंकि "इनलाइन" ISO C99 में एक मानक कीवर्ड है।

-फनो-बिल्टिन
-फनो-बिल्टिन-समारोह
उन अंतर्निहित कार्यों को न पहचानें जो शुरू नहीं होते हैं __बिल्टिन_ उपसर्ग के रूप में।

जीसीसी आम तौर पर कुछ अंतर्निहित कार्यों को संभालने के लिए विशेष कोड उत्पन्न करता है
कुशलता से; उदाहरण के लिए, "alloca" के लिए कॉल एकल निर्देश बन सकते हैं जो
स्टैक को सीधे समायोजित करें, और "memcpy" पर कॉल इनलाइन कॉपी लूप बन सकते हैं। NS
परिणामी कोड अक्सर छोटा और तेज़ दोनों होता है, लेकिन चूंकि फ़ंक्शन कॉल नहीं करता है
लंबे समय तक ऐसे दिखाई देते हैं, आप उन कॉलों पर ब्रेकपॉइंट सेट नहीं कर सकते हैं, न ही आप बदल सकते हैं
एक अलग पुस्तकालय से जोड़कर कार्यों का व्यवहार। इसके अलावा, जब
किसी फ़ंक्शन को एक अंतर्निहित फ़ंक्शन के रूप में पहचाना जाता है, GCC उसके बारे में जानकारी का उपयोग कर सकता है
उस फ़ंक्शन पर कॉल के साथ समस्याओं के बारे में चेतावनी देने के लिए, या अधिक उत्पन्न करने के लिए कार्य करता है
कुशल कोड, भले ही परिणामी कोड में अभी भी उस फ़ंक्शन के लिए कॉल हों। के लिये
उदाहरण के साथ, चेतावनियां दी गई हैं -स्वरूप खराब कॉल के लिए "printf" जब "printf" है
बिल्ट इन और "स्ट्रेलन" वैश्विक मेमोरी को संशोधित नहीं करने के लिए जाना जाता है।

उसके साथ -फनो-बिल्टिन-समारोह विकल्प केवल अंतर्निहित फ़ंक्शन समारोह अक्षम है।
समारोह से शुरू नहीं होना चाहिए __बिल्टिन_. यदि किसी फ़ंक्शन का नाम है जो अंतर्निहित नहीं है
GCC के इस संस्करण में, इस विकल्प पर ध्यान नहीं दिया जाता है। कोई संगत नहीं है
-फबिल्टिन-समारोह विकल्प; यदि आप अंतर्निर्मित कार्यों को चुनिंदा रूप से सक्षम करना चाहते हैं जब
का उपयोग -फनो-बिल्टिन or -फ्रीस्टैंडिंग, आप मैक्रो को परिभाषित कर सकते हैं जैसे:

# परिभाषित एब्स (एन) __builtin_abs ((एन))
# परिभाषित करें strcpy(d, s) __builtin_strcpy ((d), (s))

-फॉस्टेड
जोर दें कि संकलन एक होस्टेड वातावरण को लक्षित करता है। यह संकेत करता है -फबिल्टिन. एक
होस्टेड वातावरण वह है जिसमें संपूर्ण मानक पुस्तकालय उपलब्ध है, और
जिसमें "मुख्य" में "int" का रिटर्न प्रकार होता है। उदाहरण लगभग सब कुछ हैं सिवाय a . के
गिरी यह बराबर है -फनो-फ्रीस्टैंडिंग.

-फ्रीस्टैंडिंग
दावा करें कि संकलन एक स्वतंत्र वातावरण को लक्षित करता है। यह संकेत करता है
-फनो-बिल्टिन. एक स्वतंत्र वातावरण वह है जिसमें मानक पुस्तकालय नहीं हो सकता है
मौजूद है, और प्रोग्राम स्टार्टअप जरूरी नहीं कि "मुख्य" पर हो। सबसे स्पष्ट उदाहरण
एक ओएस कर्नेल है। यह बराबर है -फनो-होस्टेड.

-फोपेनैक
C/C++ में OpenACC निर्देशों "#pragma acc" और फोरट्रान में "!$acc" को संभालने में सक्षम करें।
. -फोपेनैक निर्दिष्ट है, संकलक के अनुसार त्वरित कोड उत्पन्न करता है
ओपनएसीसी एप्लीकेशन प्रोग्रामिंग इंटरफेस v2.0http://www.openacc.org/>. इस विकल्प
का तात्पर्य -पथ्रेड, और इस प्रकार केवल उन लक्ष्यों पर समर्थित है जिनके पास समर्थन है
-पथ्रेड.

ध्यान दें कि यह एक प्रयोगात्मक विशेषता है, अपूर्ण है, और भविष्य में परिवर्तन के अधीन है
जीसीसी के संस्करण। देखोhttps://gcc.gnu.org/wiki/OpenACC> अधिक जानकारी के लिए।

-फोपेनएमपी
सी/सी++ में ओपनएमपी निर्देशों "#pragma omp" और फोरट्रान में "!$omp" को संभालने में सक्षम करें।
. -फोपेनएमपी निर्दिष्ट है, संकलक के अनुसार समानांतर कोड उत्पन्न करता है
ओपनएमपी एप्लीकेशन प्रोग्राम इंटरफेस v4.0http://www.openmp.org/>. इस विकल्प
का तात्पर्य -पथ्रेड, और इस प्रकार केवल उन लक्ष्यों पर समर्थित है जिनके पास समर्थन है
-पथ्रेड. -फोपेनएमपी का तात्पर्य -fopenmp-simd.

-fopenmp-simd
C/C++ में "#pragma omp" और "!$omp" के साथ OpenMP के SIMD निर्देशों का प्रबंधन सक्षम करें
फोरट्रान। अन्य ओपनएमपी निर्देशों की अनदेखी की जाती है।

-एफसीआईएलकेप्लस
C/C++ के लिए Cilk Plus भाषा एक्सटेंशन सुविधाओं के उपयोग को सक्षम करें। जब विकल्प
-एफसीआईएलकेप्लस निर्दिष्ट है, सिल्क प्लस भाषा विस्तार सुविधाओं के उपयोग को सक्षम करें
सी/सी ++ के लिए। वर्तमान कार्यान्वयन एबीआई संस्करण 1.2 का अनुसरण करता है। यह एक
प्रयोगात्मक सुविधा जो केवल आंशिक रूप से पूर्ण है, और जिसका इंटरफ़ेस बदल सकता है
जीसीसी के भविष्य के संस्करणों में आधिकारिक विनिर्देश परिवर्तन के रूप में। वर्तमान में, सभी
सुविधाएँ लेकिन "_Cilk_for" लागू की गई हैं।

-फग्नू-टीएम
जब विकल्प -फग्नू-टीएम निर्दिष्ट है, संकलक Linux के लिए कोड उत्पन्न करता है
इंटेल के वर्तमान ट्रांजेक्शनल मेमोरी एबीआई विनिर्देश दस्तावेज़ का संस्करण (संशोधन
1.1, 6 मई 2009)। यह एक प्रयोगात्मक विशेषता है जिसका इंटरफ़ेस बदल सकता है
जीसीसी के भविष्य के संस्करण, जैसा कि आधिकारिक विनिर्देश बदलता है। कृपया ध्यान दें कि नहीं
इस सुविधा के लिए सभी आर्किटेक्चर समर्थित हैं।

लेनदेन संबंधी स्मृति के लिए जीसीसी के समर्थन के बारे में अधिक जानकारी के लिए,

ध्यान दें कि लेनदेन संबंधी स्मृति सुविधा गैर-कॉल अपवादों के साथ समर्थित नहीं है
(-फॉन-कॉल-अपवाद).

-एफएमएस-एक्सटेंशन
Microsoft शीर्षलेख फ़ाइलों में प्रयुक्त कुछ गैर-मानक निर्माणों को स्वीकार करें।

सी ++ कोड में, यह संरचना में सदस्य नामों को पिछले प्रकारों के समान होने की अनुमति देता है
घोषणाएं

टाइपिफ़ इंट यूओडब्ल्यू;
संरचना एबीसी {
यूओओ यूओओ;
};

संरचनाओं और संघों में अज्ञात क्षेत्रों के कुछ मामलों को केवल इसके साथ ही स्वीकार किया जाता है
विकल्प.

ध्यान दें कि यह विकल्प सभी लक्ष्यों के लिए बंद है लेकिन x86 लक्ष्य ms-abi का उपयोग कर रहे हैं।

-फप्लान9-एक्सटेंशन
योजना 9 कोड में प्रयुक्त कुछ गैर-मानक निर्माणों को स्वीकार करें।

यह सक्षम करता है -एफएमएस-एक्सटेंशन, अज्ञात के साथ संरचनाओं को पॉइंटर्स पास करने की अनुमति देता है
फ़ील्ड से फ़ंक्शंस जो फ़ील्ड के प्रकार के तत्वों के लिए पॉइंटर्स की अपेक्षा करते हैं, और
टाइपिफ़ का उपयोग करके घोषित अज्ञात फ़ील्ड का जिक्र करने की अनुमति देता है। यह केवल .... ही
सी के लिए समर्थित, सी ++ नहीं।

-ट्रिग्राफ
आईएसओ सी ट्रिग्राफ का समर्थन करें। NS -अनसी विकल्प (और -एसटीडी सख्त आईएसओ सी के लिए विकल्प
अनुरूपता) का तात्पर्य है -ट्रिग्राफ.

पारंपरिक
-पारंपरिक-सीपीपी
पूर्व में, इन विकल्पों के कारण GCC को एक पूर्व-मानक C कंपाइलर का अनुकरण करने का प्रयास करना पड़ा।
वे अब केवल के साथ समर्थित हैं -E स्विच। प्रीप्रोसेसर समर्थन करना जारी रखता है
एक पूर्व मानक मोड। विवरण के लिए जीएनयू सीपीपी मैनुअल देखें।

-fcond-बेमेल
दूसरे और तीसरे तर्कों में बेमेल प्रकारों के साथ सशर्त अभिव्यक्तियों की अनुमति दें।
ऐसी अभिव्यक्ति का मूल्य शून्य है। यह विकल्प C++ के लिए समर्थित नहीं है।

-सन-वेक्टर-रूपांतरण
तत्वों की भिन्न संख्या वाले वैक्टर के बीच निहित रूपांतरण की अनुमति दें और/या
असंगत तत्व प्रकार। नए कोड के लिए इस विकल्प का उपयोग नहीं किया जाना चाहिए।

-funsigned-char
प्रकार "चार" को अहस्ताक्षरित होने दें, जैसे "अहस्ताक्षरित चार"।

"चार" क्या होना चाहिए, इसके लिए प्रत्येक प्रकार की मशीन में डिफ़ॉल्ट होता है। यह या तो पसंद है
डिफ़ॉल्ट रूप से "हस्ताक्षरित चार" या डिफ़ॉल्ट रूप से "हस्ताक्षरित चार" की तरह।

आदर्श रूप से, एक पोर्टेबल प्रोग्राम को हमेशा "हस्ताक्षरित चार" या "अहस्ताक्षरित चार" का उपयोग करना चाहिए जब यह
किसी वस्तु के हस्ताक्षर पर निर्भर करता है। लेकिन उपयोग करने के लिए कई प्रोग्राम लिखे गए हैं
सादा "चार" और उम्मीद है कि इस पर हस्ताक्षर किए जाएंगे, या उम्मीद है कि यह हस्ताक्षरित होने की उम्मीद है,
जिन मशीनों के लिए वे लिखे गए थे। यह विकल्प, और इसका प्रतिलोम, आपको ऐसा बनाने देता है a
प्रोग्राम विपरीत डिफ़ॉल्ट के साथ काम करता है।

प्रकार "चार" हमेशा "हस्ताक्षरित चार" या "हस्ताक्षरित" में से प्रत्येक से एक अलग प्रकार होता है
char", भले ही इसका व्यवहार हमेशा उन दोनों में से एक जैसा ही हो।

-फसाइनड-चार
"चार" प्रकार पर हस्ताक्षर किए जाने दें, जैसे "हस्ताक्षरित चार"।

ध्यान दें कि यह बराबर है -फनो-अहस्ताक्षरित-चार, जो का नकारात्मक रूप है
-funsigned-char. इसी तरह, विकल्प -फनो-हस्ताक्षरित-चार के बराबर है
-funsigned-char.

-fsigned-बिटफील्ड्स
-फनसाइनड-बिटफील्ड्स
-फनो-हस्ताक्षरित-बिटफ़ील्ड
-फनो-अहस्ताक्षरित-बिटफ़ील्ड
ये विकल्प नियंत्रित करते हैं कि घोषणा के समय बिट-फ़ील्ड हस्ताक्षरित या अहस्ताक्षरित है या नहीं
या तो "हस्ताक्षरित" या "हस्ताक्षरित" का उपयोग नहीं करता है। डिफ़ॉल्ट रूप से, ऐसे बिट-फ़ील्ड पर हस्ताक्षर किए जाते हैं,
क्योंकि यह सुसंगत है: मूल पूर्णांक प्रकार जैसे "int" हस्ताक्षरित प्रकार हैं।

ऑप्शंस नियंत्रित करना सी + + बोली
यह खंड उन कमांड-लाइन विकल्पों का वर्णन करता है जो केवल C++ प्रोग्राम के लिए अर्थपूर्ण हैं।
आप जीएनयू के अधिकांश कंपाइलर विकल्पों का उपयोग भी कर सकते हैं, भले ही आपका प्रोग्राम किसी भी भाषा में क्यों न हो
में है। उदाहरण के लिए, आप एक फ़ाइल संकलित कर सकते हैं प्रथम श्रेणी.सी इस तरह:

जी++ -जी -फ्रेपो -ओ -सी फर्स्टक्लास.सी

इस उदाहरण में, केवल -फ्रेपो एक विकल्प है जो केवल C++ प्रोग्राम के लिए है; आप का उपयोग कर सकते हैं
जीसीसी द्वारा समर्थित किसी भी भाषा के साथ अन्य विकल्प।

यहां उन विकल्पों की सूची दी गई है जो हैं केवल सी ++ प्रोग्राम संकलित करने के लिए:

-फैबी-संस्करण=n
संस्करण का प्रयोग करें n सी ++ एबीआई की। डिफ़ॉल्ट संस्करण 0 है।

संस्करण 0 उस संस्करण को संदर्भित करता है जो सी ++ एबीआई विनिर्देश के सबसे निकट से अनुरूप है।
इसलिए, संस्करण 0 का उपयोग करके प्राप्त एबीआई जी ++ के विभिन्न संस्करणों में बदल जाएगा
चूंकि एबीआई बग फिक्स हैं।

संस्करण 1 सी ++ एबीआई का संस्करण है जो पहली बार जी ++ 3.2 में दिखाई दिया।

संस्करण 2 C++ ABI का संस्करण है जो पहली बार G++ 3.4 में प्रदर्शित हुआ था, और था
जी ++ 4.9 के माध्यम से डिफ़ॉल्ट।

संस्करण 3 एक निरंतर पते को टेम्पलेट तर्क के रूप में प्रबंधित करने में त्रुटि को ठीक करता है।

संस्करण 4, जो पहली बार जी ++ 4.5 में दिखाई दिया, वेक्टर के लिए एक मानक मैंगलिंग लागू करता है
प्रकार के।

संस्करण 5, जो पहली बार G++ 4.6 में दिखाई दिया, विशेषता के प्रबंधन को ठीक करता है
फ़ंक्शन पॉइंटर प्रकारों पर कॉन्स्ट/अस्थिर, एक सादे decl की घोषणा, और a . का उपयोग
किसी अन्य पैरामीटर की घोषणा में फ़ंक्शन पैरामीटर।

संस्करण 6, जो पहली बार G++ 4.7 में प्रदर्शित हुआ, C++11 . के प्रचार व्यवहार को ठीक करता है
स्कोप्ड एनम और टेम्प्लेट तर्क पैक, कॉन्स्ट / स्टैटिक_कास्ट, उपसर्ग ++ . का प्रबंधन
और --, और टेम्पलेट तर्क के रूप में उपयोग किया जाने वाला क्लास स्कोप फ़ंक्शन।

संस्करण 7, जो पहली बार G++ 4.8 में दिखाई दिया, जो nullptr_t को एक बिलिन प्रकार के रूप में मानता है
और डिफ़ॉल्ट तर्क दायरे में लैम्ब्डा के प्रबंधन को ठीक करता है।

संस्करण 8, जो पहली बार G++ 4.9 में दिखाई दिया, के प्रतिस्थापन व्यवहार को ठीक करता है
फ़ंक्शन-सीवी-क्वालिफायर के साथ फ़ंक्शन प्रकार।

यह भी देखें -वाबी.

-फैबी-संगत-संस्करण =n
मजबूत उपनामों का समर्थन करने वाले लक्ष्यों पर, G++ बनाकर परिवर्तनों को प्रबंधित करने का काम करता है
एक गलत नाम के साथ एक प्रतीक को परिभाषित करते समय सही नाम के साथ एक उपनाम
उलझा हुआ नाम। यह स्विच निर्दिष्ट करता है कि उपनाम के लिए कौन सा ABI संस्करण उपयोग करना है।

- -फैबी-संस्करण = 0 (डिफ़ॉल्ट), यह 2 पर डिफॉल्ट करता है। यदि कोई अन्य ABI संस्करण है
स्पष्ट रूप से चयनित, यह डिफ़ॉल्ट रूप से 0 है।

संगतता संस्करण भी द्वारा निर्धारित किया जाता है -वबी =n.

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

-fcheck-नया
कोशिश करने से पहले जांचें कि "ऑपरेटर नया" द्वारा लौटाया गया सूचक गैर-शून्य है
आवंटित भंडारण को संशोधित करें। यह जाँच सामान्य रूप से अनावश्यक है क्योंकि C++
मानक निर्दिष्ट करता है कि "ऑपरेटर नया" केवल 0 लौटाता है यदि इसे "फेंक ()" घोषित किया जाता है, in
इस मामले में संकलक हमेशा इस विकल्प के बिना भी वापसी मूल्य की जांच करता है। में
अन्य सभी मामलों में, जब "ऑपरेटर नया" में एक गैर-खाली अपवाद विनिर्देश होता है, मेमोरी
"std::bad_alloc" फेंकने से थकावट का संकेत मिलता है। यह सभी देखें नई (नोथ्रो).

-fconstexpr-गहराई=n
C++11 constexpr फ़ंक्शंस के लिए अधिकतम नेस्टेड मूल्यांकन गहराई सेट करें n. सीमा
निरंतर अभिव्यक्ति मूल्यांकन के दौरान अंतहीन रिकर्सन का पता लगाने के लिए आवश्यक है। NS
मानक द्वारा निर्दिष्ट न्यूनतम 512 है।

-fdeduce-init-list
ब्रेस से "std::initializer_list" के रूप में टेम्पलेट प्रकार पैरामीटर की कटौती सक्षम करें-
संलग्न प्रारंभकर्ता सूची, अर्थात

टेम्पलेट ऑटो फॉरवर्ड (टी टी) -> डिक्लेटाइप (रियलएफएन (टी))
{
वास्तविक वापसी (टी);
}

शून्य च ()
{
फॉरवर्ड ({1,2}); // आगे बुलाना >
}

यह कटौती मूल रूप से प्रस्तावित . के संभावित विस्तार के रूप में लागू की गई थी
सी ++ 11 मानक के लिए शब्दार्थ, लेकिन अंतिम मानक का हिस्सा नहीं था, इसलिए यह है
डिफ़ॉल्ट रूप से अक्षम। यह विकल्प बहिष्कृत है, और भविष्य में इसे हटाया जा सकता है
जी ++ का संस्करण।

-दोस्त-इंजेक्शन
मित्र कार्यों को संलग्न नामस्थान में इंजेक्ट करें, ताकि वे बाहर दिखाई दें
जिस वर्ग में उन्हें घोषित किया गया है उसका दायरा। मित्र कार्यों का दस्तावेजीकरण किया गया
पुराने एनोटेटेड सी ++ संदर्भ मैनुअल में इस तरह काम करने के लिए। हालाँकि, ISO C++ में a
मित्र फ़ंक्शन जिसे एक संलग्न क्षेत्र में घोषित नहीं किया गया है, केवल का उपयोग करके पाया जा सकता है
तर्क निर्भर लुकअप। जीसीसी मानक व्यवहार में चूक करता है।

यह विकल्प संगतता के लिए है, और भविष्य में G++ के रिलीज़ में हटाया जा सकता है।

-फनो-एलिड-कंस्ट्रक्टर्स
सी ++ मानक एक कार्यान्वयन को अस्थायी बनाने की अनुमति देता है जो केवल है
उसी प्रकार के किसी अन्य ऑब्जेक्ट को प्रारंभ करने के लिए उपयोग किया जाता है। इस विकल्प को निर्दिष्ट करना अक्षम करता है
वह ऑप्टिमाइज़ेशन, और G++ को सभी मामलों में कॉपी कंस्ट्रक्टर को कॉल करने के लिए बाध्य करता है।

-फनो-एनफोर्स-एह-स्पेसिफिकेशंस
रन टाइम पर अपवाद विनिर्देशों के उल्लंघन की जांच के लिए कोड जनरेट न करें।
यह विकल्प C++ मानक का उल्लंघन करता है, लेकिन कोड आकार को कम करने के लिए उपयोगी हो सकता है
उत्पादन "एनडीईबीयूजी" को परिभाषित करने जैसा बनाता है। यह उपयोगकर्ता कोड नहीं देता है
अपवाद विनिर्देशों के उल्लंघन में अपवाद फेंकने की अनुमति; NS
संकलक अभी भी विनिर्देशों के आधार पर अनुकूलन करता है, इसलिए एक अप्रत्याशित फेंकना
रन टाइम पर अपरिभाषित व्यवहार में अपवाद परिणाम।

-फेक्सटर्न-टीएलएस-इनिट
-फनो-बाहरी-टीएलएस-इनिट
सी ++ 11 और ओपनएमपी मानक "थ्रेड_लोकल" और "थ्रेडप्राइवेट" चर को अनुमति देते हैं
गतिशील (रनटाइम) आरंभीकरण है। इसका समर्थन करने के लिए, ऐसे चर का कोई भी उपयोग
एक रैपर फ़ंक्शन के माध्यम से जाता है जो कोई आवश्यक प्रारंभिक कार्य करता है। जब
चर का उपयोग और परिभाषा एक ही अनुवाद इकाई में है, यह ओवरहेड कर सकता है
दूर अनुकूलित किया जा सकता है, लेकिन जब उपयोग एक अलग अनुवाद इकाई में होता है तो
महत्वपूर्ण ओवरहेड भले ही चर को वास्तव में गतिशील की आवश्यकता न हो
आरंभीकरण। यदि प्रोग्रामर यह सुनिश्चित कर सकता है कि गैर-
टीयू को परिभाषित करने के लिए गतिशील प्रारंभिकरण को ट्रिगर करने की आवश्यकता है (या तो क्योंकि चर है
सांख्यिकीय रूप से आरंभिक, या परिभाषित TU में चर का उपयोग निष्पादित किया जाएगा
किसी अन्य टीयू में किसी भी उपयोग से पहले), वे इस ओवरहेड से बच सकते हैं
-फनो-बाहरी-टीएलएस-इनिट विकल्प.

उन लक्ष्यों पर जो प्रतीक उपनामों का समर्थन करते हैं, डिफ़ॉल्ट है -फेक्सटर्न-टीएलएस-इनिट. निशाने पर
जो प्रतीक उपनामों का समर्थन नहीं करता है, डिफ़ॉल्ट है -फनो-बाहरी-टीएलएस-इनिट.

-फॉर-स्कोप
-फनो-फॉर-स्कोप
If -फॉर-स्कोप निर्दिष्ट किया गया है, a . में घोषित चर का दायरा फॉर-इनिट-स्टेटमेंट
सी ++ मानक द्वारा निर्दिष्ट के अनुसार, "फॉर" लूप तक ही सीमित है। अगर
-फनो-फॉर-स्कोप निर्दिष्ट किया गया है, a . में घोषित चर का दायरा फॉर-इनिट-स्टेटमेंट
संलग्न दायरे के अंत तक फैली हुई है, जैसा कि जी ++ के पुराने संस्करणों में था, और
सी ++ के अन्य (पारंपरिक) कार्यान्वयन।

यदि कोई झंडा नहीं दिया गया है, तो डिफ़ॉल्ट मानक का पालन करना है, लेकिन अनुमति देना और देना
पुरानी शैली के कोड के लिए एक चेतावनी जो अन्यथा अमान्य होगी, या अलग होगी
व्यवहार.

-फनो-ग्नू-कीवर्ड
"टाइपोफ़" को एक कीवर्ड के रूप में न पहचानें, ताकि कोड इस शब्द का उपयोग एक के रूप में कर सके
पहचानकर्ता। आप इसके बजाय "__typeof__" कीवर्ड का उपयोग कर सकते हैं। -अनसी का तात्पर्य
-फनो-ग्नू-कीवर्ड.

-फनो-अंतर्निहित-टेम्पलेट्स
गैर-इनलाइन टेम्पलेट्स के लिए कभी भी कोड का उत्सर्जन न करें, जो कि तत्काल रूप से निहित हैं (अर्थात by
उपयोग); केवल स्पष्ट तात्कालिकता के लिए कोड उत्सर्जित करें।

-फनो-अंतर्निहित-इनलाइन-टेम्पलेट्स
या तो इनलाइन टेम्पलेट्स के निहित तात्कालिकता के लिए कोड उत्सर्जित न करें। डिफ़ॉल्ट
इनलाइनों को अलग तरह से संभालना है ताकि अनुकूलन आवश्यकता के साथ और बिना संकलन किया जा सके
स्पष्ट तात्कालिकता का एक ही सेट।

-फनो-कार्यान्वयन-इनलाइन्स
स्थान बचाने के लिए, द्वारा नियंत्रित इनलाइन कार्यों की आउट-ऑफ़-लाइन प्रतियों का उत्सर्जन न करें
"#pragma कार्यान्वयन"। यह लिंकर त्रुटियों का कारण बनता है यदि ये कार्य नहीं हैं
इनलाइन हर जगह उन्हें बुलाया जाता है।

-एफएमएस-एक्सटेंशन
MFC में प्रयुक्त निर्माणों के बारे में Wpedantic चेतावनियों को अक्षम करें, जैसे कि अंतर्निहित int और
गैर-मानक सिंटैक्स के माध्यम से सदस्य फ़ंक्शन के लिए एक सूचक प्राप्त करना।

-फनो-नोनानसी-बिलिन्स
उन कार्यों की अंतर्निहित घोषणाओं को अक्षम करें जो एएनएसआई/आईएसओ सी द्वारा अनिवार्य नहीं हैं। ये
"ffs", "alloca", "_exit", "index", "bzero", "conjf", और अन्य संबंधित शामिल करें
कार्य करता है.

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

-फनो-ऑपरेटर-नाम
ऑपरेटर नाम कीवर्ड "और", "बिटैंड", "बिटर", "कॉम्प्ल", "नहीं", "या" का इलाज न करें
और "xor" कीवर्ड के समानार्थी के रूप में।

-फनो-वैकल्पिक-डायग्स
डायग्नोस्टिक्स को अक्षम करें कि मानक कहता है कि एक कंपाइलर को जारी करने की आवश्यकता नहीं है।
वर्तमान में, G++ द्वारा जारी किया गया एकमात्र ऐसा डायग्नोस्टिक है जिसका नाम है
एक वर्ग के भीतर कई अर्थ।

-फर्मिसिव
गैर-अनुरूपता कोड के बारे में कुछ निदानों को त्रुटियों से चेतावनियों में डाउनग्रेड करें। इस प्रकार,
का उपयोग -फर्मिसिव कुछ गैर-अनुरूपता कोड को संकलित करने की अनुमति देता है।

-फनो-सुंदर-टेम्पलेट्स
जब कोई त्रुटि संदेश किसी फ़ंक्शन टेम्पलेट की विशेषज्ञता को संदर्भित करता है, तो कंपाइलर
आम तौर पर टेम्पलेट के हस्ताक्षर को टेम्पलेट तर्कों के बाद प्रिंट करता है और
हस्ताक्षर में कोई टाइपिफ़ या टाइपनाम (उदाहरण के लिए "शून्य एफ (टी) [टी = int के साथ]"
से "void f(int)") ताकि यह स्पष्ट हो जाए कि कौन सा टेम्प्लेट शामिल है। जब कोई त्रुटि
संदेश एक वर्ग टेम्पलेट की विशेषज्ञता को संदर्भित करता है, संकलक किसी को भी छोड़ देता है
टेम्प्लेट तर्क जो उस टेम्प्लेट के डिफ़ॉल्ट टेम्प्लेट तर्कों से मेल खाते हैं। अगर
इनमें से कोई भी व्यवहार त्रुटि संदेश को समझने के बजाय कठिन बना देता है
आसान, आप उपयोग कर सकते हैं -फनो-सुंदर-टेम्पलेट्स उन्हें निष्क्रिय करने के लिए।

-फ्रेपो
लिंक समय पर स्वचालित टेम्पलेट इंस्टेंटेशन सक्षम करें। इस विकल्प का अर्थ यह भी है
-फनो-अंतर्निहित-टेम्पलेट्स.

-फनो-आरटीटीआई
द्वारा उपयोग के लिए आभासी कार्यों के साथ हर वर्ग के बारे में जानकारी की पीढ़ी को अक्षम करें
C++ रन-टाइम टाइप आइडेंटिफिकेशन फीचर्स ("डायनामिक_कास्ट" और "टाइपिड")। अगर तुम
भाषा के उन हिस्सों का उपयोग न करें, आप इस ध्वज का उपयोग करके कुछ स्थान बचा सकते हैं।
ध्यान दें कि अपवाद प्रबंधन समान जानकारी का उपयोग करता है, लेकिन G++ इसे इस प्रकार उत्पन्न करता है
आवश्यकता है। "डायनामिक_कास्ट" ऑपरेटर का उपयोग अभी भी उन कास्ट के लिए किया जा सकता है जिनकी आवश्यकता नहीं है
रन-टाइम प्रकार की जानकारी, यानी "शून्य *" या स्पष्ट आधार वर्गों के लिए डाली जाती है।

-फसाइज्ड-डीलोकेशन
अंतर्निहित वैश्विक घोषणाओं को सक्षम करें

शून्य ऑपरेटर हटाएं (शून्य *, std :: size_t) को छोड़कर;
शून्य ऑपरेटर हटाएं [] (शून्य *, std :: size_t) बिना किसी अपवाद के;

जैसा कि C++14 में पेश किया गया है। यह उपयोगकर्ता-परिभाषित प्रतिस्थापन डीललोकेशन के लिए उपयोगी है
ऐसे कार्य जो, उदाहरण के लिए, वस्तु के आकार का उपयोग तेजी से डीललोकेशन करने के लिए करते हैं।
के तहत डिफ़ॉल्ट रूप से सक्षम -एसटीडी=सी++14 और ऊपर। झंडा -साइज़-डीलोकेशन चेताते
उन स्थानों के बारे में जो शायद एक परिभाषा जोड़ना चाहें।

-fstats
संकलन के अंत में फ्रंट-एंड प्रोसेसिंग के बारे में आंकड़े जारी करें। इस
जानकारी आम तौर पर केवल G++ विकास टीम के लिए उपयोगी होती है।

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

-फटेम्प्लेट-बैकट्रेस-सीमा =n
एकल चेतावनी या त्रुटि के लिए टेम्पलेट इंस्टेंटेशन नोट्स की अधिकतम संख्या निर्धारित करें
सेवा मेरे n. डिफ़ॉल्ट मान 10 है।

-फटेम्पलेट-गहराई =n
टेम्पलेट कक्षाओं के लिए अधिकतम तात्कालिकता गहराई सेट करें n. पर एक सीमा
टेम्प्लेट के दौरान अंतहीन पुनरावृत्ति का पता लगाने के लिए टेम्प्लेट इंस्टेंटेशन गहराई की आवश्यकता होती है
वर्ग तात्कालिकता। एएनएसआई/आईएसओ सी++ अनुरूप कार्यक्रमों को अधिकतम पर निर्भर नहीं होना चाहिए
17 से अधिक गहराई (C++1024 में 11 में परिवर्तित)। डिफ़ॉल्ट मान 900 है, जैसा कि
कुछ स्थितियों में 1024 मारने से पहले कंपाइलर स्टैक स्पेस से बाहर निकल सकता है।

-फनो-थ्रेडसेफ-स्टैटिक्स
थ्रेड के लिए C++ ABI में निर्दिष्ट रूटीन का उपयोग करने के लिए अतिरिक्त कोड का उत्सर्जन न करें-
स्थानीय स्टैटिक्स का सुरक्षित आरंभीकरण। कोड आकार को कम करने के लिए आप इस विकल्प का उपयोग कर सकते हैं
थोड़ा कोड में जिसे थ्रेड-सुरक्षित होने की आवश्यकता नहीं है।

-फ्यूज-सीएक्सए-एटेक्सिट
"__cxa_atexit" के साथ स्थिर भंडारण अवधि वाली वस्तुओं के लिए विनाशकों को पंजीकृत करें
"एटेक्सिट" फ़ंक्शन के बजाय फ़ंक्शन। यह विकल्प पूरी तरह से आवश्यक है
स्थिर विनाशकों के मानक-अनुपालन हैंडलिंग, लेकिन केवल तभी काम करता है जब आपकी सी लाइब्रेरी
"__cxa_atexit" का समर्थन करता है।

-फनो-यूज-सीएक्सए-गेट-अपवाद-पीटीआर
"__cxa_get_exception_ptr" रनटाइम रूटीन का उपयोग न करें। इसकी वजह से
"std::uncaught_exception" गलत है, लेकिन यह आवश्यक है यदि रनटाइम रूटीन है
उपलब्ध नहीं है।

-दृश्यता-इनलाइन्स-छिपा हुआ
यह स्विच घोषित करता है कि उपयोगकर्ता पॉइंटर्स को इनलाइन से तुलना करने का प्रयास नहीं करता है
कार्य या विधियाँ जहाँ दो कार्यों के पते अलग-अलग लिए जाते हैं
साझा की गई वस्तुएं।

इसका प्रभाव यह है कि जीसीसी इनलाइन विधियों को प्रभावी ढंग से चिह्नित कर सकता है
"__attribute__ ((दृश्यता ("छिपा हुआ")))" ताकि वे निर्यात में दिखाई न दें
एक डीएसओ की तालिका और डीएसओ के भीतर उपयोग किए जाने पर पीएलटी संकेत की आवश्यकता नहीं होती है।
इस विकल्प को सक्षम करने से DSO के लोड और लिंक समय पर नाटकीय प्रभाव पड़ सकता है क्योंकि यह
जब पुस्तकालय भारी हो जाता है तो गतिशील निर्यात तालिका के आकार को बड़े पैमाने पर कम कर देता है
टेम्पलेट्स का उपयोग।

इस स्विच का व्यवहार विधियों को छुपा के रूप में चिह्नित करने जैसा नहीं है
सीधे, क्योंकि यह फ़ंक्शन या कारण के लिए स्थानीय स्थिर चर को प्रभावित नहीं करता है
संकलक यह निष्कर्ष निकालने के लिए कि फ़ंक्शन केवल एक साझा ऑब्जेक्ट में परिभाषित किया गया है।

आप के प्रभाव को नकारने के लिए एक विधि को स्पष्ट रूप से दृश्यता के रूप में चिह्नित कर सकते हैं
उस विधि के लिए स्विच करें। उदाहरण के लिए, यदि आप पॉइंटर्स की तुलना a . से करना चाहते हैं
विशेष इनलाइन विधि, आप इसे डिफ़ॉल्ट दृश्यता के रूप में चिह्नित कर सकते हैं। चिह्नित करना
स्पष्ट दृश्यता के साथ संलग्न वर्ग का कोई प्रभाव नहीं पड़ता है।

स्पष्ट रूप से तत्काल इनलाइन विधियां इस विकल्प से उनके जुड़ाव के रूप में अप्रभावित रहती हैं
अन्यथा साझा पुस्तकालय सीमा को पार कर सकता है।

-दृश्यता-एमएस-संगत
यह ध्वज GCC के C++ लिंकेज मॉडल को बनाने के लिए दृश्यता सेटिंग्स का उपयोग करने का प्रयास करता है
माइक्रोसॉफ्ट विजुअल स्टूडियो के साथ संगत।

ध्वज इन परिवर्तनों को GCC के लिंकेज मॉडल में करता है:

1. यह डिफ़ॉल्ट दृश्यता को "हिडन" पर सेट करता है, जैसे -दृश्यता = छिपा हुआ.

2. प्रकार, लेकिन उनके सदस्य नहीं, डिफ़ॉल्ट रूप से छिपे नहीं होते हैं।

3. स्पष्ट दृश्यता के बिना प्रकारों के लिए एक परिभाषा नियम में ढील दी गई है
विनिर्देश जो एक से अधिक साझा किए गए ऑब्जेक्ट में परिभाषित हैं: वे घोषणाएं
अनुमति दी जाती है यदि उन्हें अनुमति दी जाती है जब इस विकल्प का उपयोग नहीं किया जाता है।

नए कोड में इसका उपयोग करना बेहतर है -दृश्यता = छिपा हुआ और उन वर्गों को निर्यात करें जो हैं
बाहरी रूप से दिखाई देने का इरादा। दुर्भाग्य से कोड पर भरोसा करना संभव है,
शायद गलती से, विजुअल स्टूडियो व्यवहार पर।

इन परिवर्तनों के परिणामों में एक ही प्रकार के स्थिर डेटा सदस्य शामिल हैं
एक ही नाम के साथ लेकिन अलग-अलग साझा वस्तुओं में परिभाषित अलग-अलग हैं, इसलिए बदल रहे हैं
एक दूसरे को नहीं बदलता है; और यह कि में परिभाषित सदस्यों को कार्य करने के लिए संकेत करता है
विभिन्न साझा वस्तुओं की तुलना समान नहीं हो सकती है। जब यह झंडा दिया जाता है, तो यह होता है a
समान नाम वाले प्रकारों को अलग-अलग तरीके से परिभाषित करने के लिए ODR का उल्लंघन।

-fvtable-सत्यापन =[एसटीडी|प्रीइनिट|कोई नहीं]
चालू करें (या बंद करें, यदि उपयोग कर रहे हैं -fvtable-सत्यापन = कोई नहीं) सुरक्षा सुविधा जो सत्यापित करती है
रन टाइम, प्रत्येक वर्चुअल कॉल के लिए, वह व्यवहार्य सूचक जिसके माध्यम से कॉल है
बनाया वस्तु के प्रकार के लिए मान्य है, और दूषित या अधिलेखित नहीं किया गया है।
यदि रन टाइम पर एक अमान्य व्यवहार्य सूचक का पता लगाया जाता है, तो एक त्रुटि की सूचना दी जाती है और
कार्यक्रम का निष्पादन तुरंत रोक दिया जाता है।

यह विकल्प प्रोग्राम स्टार्टअप पर रन-टाइम डेटा संरचनाओं का निर्माण करता है, जो हैं
vtable पॉइंटर्स को सत्यापित करने के लिए उपयोग किया जाता है। विकल्प एसटीडी और प्रीइनिट नियंत्रित करें
इन डेटा संरचनाओं के निर्माण का समय। दोनों ही मामलों में डेटा संरचनाएं हैं
निष्पादन से पहले बनाया गया "मुख्य" तक पहुंच गया। का उपयोग करते हुए -fvtable-सत्यापन = एसटीडी डेटा का कारण बनता है
साझा पुस्तकालयों को लोड और आरंभ करने के बाद बनाई जाने वाली संरचनाएं।
-fvtable-सत्यापित = preinit साझा पुस्तकालयों के होने से पहले उन्हें बनाने का कारण बनता है
लोड और इनिशियलाइज़ किया गया।

यदि यह विकल्प विभिन्न मानों के साथ कमांड लाइन में कई बार प्रकट होता है
निर्दिष्ट, कोई नहीं दोनों पर सर्वोच्च प्राथमिकता लेता है एसटीडी और प्रीइनिट; प्रीइनिट लेता है
प्राथमिकता से अधिक एसटीडी.

-fvtv-डीबग
जब संयोजन के साथ प्रयोग किया जाता है -fvtable-सत्यापन = एसटीडी or -fvtable-सत्यापित = preinit, का कारण बनता है
चलने योग्य सत्यापन सुविधा के लिए रनटाइम फ़ंक्शन के डीबग संस्करण
बुलाया। यह ध्वज संकलक को किस vtable के बारे में जानकारी लॉग करने का कारण बनता है
पॉइंटर्स यह प्रत्येक वर्ग के लिए पाता है। यह जानकारी नाम की फाइल को लिखी जाती है
vtv_set_ptr_data.log पर्यावरण चर द्वारा नामित निर्देशिका में वीटीवी_LOGS_DIR
यदि वह परिभाषित है या वर्तमान कार्यशील निर्देशिका अन्यथा।

नोट: यह सुविधा संलग्न कर देता है लॉग फ़ाइल में डेटा। यदि आप एक ताज़ा लॉग फ़ाइल चाहते हैं, तो बनें
किसी भी मौजूदा को हटाना सुनिश्चित करें।

-fvtv-गिनती
यह एक डिबगिंग ध्वज है। जब संयोजन के साथ प्रयोग किया जाता है -fvtable-सत्यापन = एसटीडी or
-fvtable-सत्यापित = preinit, यह संकलक को कुल संख्या का ट्रैक रखने का कारण बनता है
वर्चुअल कॉल इसका सामना करता है और इसके द्वारा सम्मिलित किए गए सत्यापन की संख्या। यह भी
कुछ रन-टाइम लाइब्रेरी फ़ंक्शंस में कॉल की संख्या की गणना करता है जो इसे सम्मिलित करता है और
प्रत्येक संकलन इकाई के लिए यह जानकारी लॉग करता है। संकलक यह जानकारी लिखता है
नाम की एक फाइल के लिए vtv_count_data.log पर्यावरण चर द्वारा नामित निर्देशिका में
वीटीवी_LOGS_DIR यदि वह परिभाषित है या वर्तमान कार्यशील निर्देशिका अन्यथा। यह भी
प्रत्येक वर्ग के लिए व्यवहार्य सूचक सेट के आकार की गणना करता है, और यह जानकारी लिखता है
सेवा मेरे vtv_class_set_sizes.log एक ही निर्देशिका में।

नोट: यह सुविधा संलग्न कर देता है लॉग फ़ाइलों के लिए डेटा। ताज़ा लॉग फ़ाइलें प्राप्त करने के लिए, सुनिश्चित करें
किसी भी मौजूदा को हटा दें।

-फनो-कमजोर
कमजोर प्रतीक समर्थन का उपयोग न करें, भले ही वह लिंकर द्वारा प्रदान किया गया हो। डिफ़ॉल्ट रूप से, जी++
उपलब्ध होने पर कमजोर प्रतीकों का उपयोग करता है। यह विकल्प केवल परीक्षण के लिए मौजूद है, और
अंतिम उपयोगकर्ताओं द्वारा उपयोग नहीं किया जाना चाहिए; इसका परिणाम निम्न कोड में होता है और इसका कोई लाभ नहीं होता है।
इस विकल्प को G++ के भावी रिलीज़ में हटाया जा सकता है।

-नोस्टडिंक++
C++ के लिए विशिष्ट मानक निर्देशिकाओं में शीर्षलेख फ़ाइलों की खोज न करें, लेकिन करें
अभी भी अन्य मानक निर्देशिका खोजें। (इस विकल्प का उपयोग भवन बनाते समय किया जाता है
सी ++ लाइब्रेरी।)

इसके अलावा, इन अनुकूलन, चेतावनी और कोड जनरेशन विकल्पों के केवल अर्थ हैं
सी ++ कार्यक्रमों के लिए:

-वाबी (सी, ऑब्जेक्टिव-सी, सी++ और ऑब्जेक्टिव-सी++ केवल)
जब एक स्पष्ट -फैबी-संस्करण=n विकल्प का उपयोग किया जाता है, जिससे G++ उत्पन्न होने पर चेतावनी देता है
कोड जो शायद विक्रेता-तटस्थ C++ ABI के साथ संगत नहीं है। चूंकि जी++ अब
करने के लिए चूक -फैबी-संस्करण = 0, -वाबी इसका कोई प्रभाव नहीं पड़ता है जब तक कि कोई पुराना ABI संस्करण न हो
चयनित (के साथ -फैबी-संस्करण=n) या पुराने संगतता संस्करण का चयन किया गया है (साथ
-वबी =n or -फैबी-संगत-संस्करण =n).

हालांकि ऐसे सभी मामलों से सावधान करने की कोशिश की गई है, लेकिन शायद कुछ ऐसे भी हैं
जिन मामलों के बारे में चेतावनी नहीं दी गई है, भले ही G++ असंगत कोड जनरेट कर रहा हो।
ऐसे मामले भी हो सकते हैं जहां चेतावनियां उत्सर्जित की जाती हैं, भले ही कोड जो है
उत्पन्न संगत है।

यदि आप इसके बारे में चिंतित हैं तो इन चेतावनियों से बचने के लिए आपको अपना कोड फिर से लिखना चाहिए
तथ्य यह है कि जी ++ द्वारा उत्पन्न कोड बाइनरी द्वारा उत्पन्न कोड के साथ संगत नहीं हो सकता है
अन्य संकलक।

-वाबी संगतता के बारे में चेतावनी देने के लिए एक स्पष्ट संस्करण संख्या के साथ भी इस्तेमाल किया जा सकता है
एक विशेष के साथ -फैबी-संस्करण स्तर, उदाहरण के लिए -वबी=2 के सापेक्ष परिवर्तनों के बारे में चेतावनी देने के लिए
-फैबी-संस्करण = 2. एक संस्करण संख्या निर्दिष्ट करना भी सेट करता है -फैबी-संगत-संस्करण =n.

में ज्ञात असंगतताएं -फैबी-संस्करण = 2 (जो जीसीसी 3.4 से डिफ़ॉल्ट था
4.9) में शामिल हैं:

* संदर्भ प्रकार के गैर-प्रकार के टेम्पलेट पैरामीटर वाला एक टेम्पलेट खराब हो गया था
गलत तरीके से:

बाहरी इंट एन;
टेम्पलेट संरचना एस {};
शून्य एन (एस ) {2}

यह में तय किया गया था -फैबी-संस्करण = 3.

* "__attribute ((vector_size))" का उपयोग करके घोषित SIMD वेक्टर प्रकार a . में उलझे हुए थे
गैर-मानक तरीका जो वैक्टर लेने वाले कार्यों को ओवरलोड करने की अनुमति नहीं देता है
विभिन्न आकारों के।

मैंगलिंग में बदल दिया गया था -फैबी-संस्करण = 4.

* "__attribute ((const))" और "noreturn" टाइप क्वालिफायर के रूप में उलझे हुए थे, और
एक सादे घोषणा के "decltype" को हटा दिया गया था।

इन मैंगलिंग मुद्दों को में तय किया गया था -फैबी-संस्करण = 5.

* एक विविध फ़ंक्शन के तर्क के रूप में पारित किए गए स्कोप्ड एन्यूमरेटर को बढ़ावा दिया जाता है जैसे
अनस्कोप्ड एन्यूमरेटर, जिसके कारण "va_arg" शिकायत करता है। अधिकांश लक्ष्यों पर यह नहीं है
वास्तव में एबीआई पास करने वाले पैरामीटर को प्रभावित करते हैं, क्योंकि तर्क पारित करने का कोई तरीका नहीं है
"इंट" से छोटा।

साथ ही, ABI ने टेम्प्लेट तर्क पैक, "const_cast" के प्रबंधन को बदल दिया,
"static_cast", उपसर्ग वृद्धि/कमी, और एक वर्ग स्कोप फ़ंक्शन जिसका उपयोग a . के रूप में किया जाता है
टेम्पलेट तर्क।

इन मुद्दों को में ठीक किया गया था -फैबी-संस्करण = 6.

* डिफ़ॉल्ट तर्क दायरे में लैम्ब्डा गलत तरीके से उलझे हुए थे, और एबीआई बदल गया
"nullptr_t" का प्रबंधन।

इन मुद्दों को में ठीक किया गया था -फैबी-संस्करण = 7.

* फंक्शन-सीवी-क्वालिफायर के साथ फंक्शन टाइप को मैनेज करते समय, अन-क्वालिफाइड
फ़ंक्शन प्रकार को गलत तरीके से प्रतिस्थापन उम्मीदवार के रूप में माना गया था।

यह में तय किया गया था -फैबी-संस्करण = 8.

यह psABI से संबंधित परिवर्तनों के बारे में भी चेतावनी देता है। ज्ञात psABI इस बिंदु पर बदलता है
शामिल हैं:

* SysV/x86-64 के लिए, "लॉन्ग डबल" सदस्यों वाली यूनियनों को मेमोरी में पास किया जाता है:
पीएसएबीआई में निर्दिष्ट। उदाहरण के लिए:

संघ यू {
लंबा डबल एलडी;
int i;
};

"यूनियन यू" हमेशा स्मृति में पारित किया जाता है।

-वबी-टैग (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें जब ABI टैग वाले प्रकार का उपयोग उस संदर्भ में किया जाता है जिसमें वह ABI टैग नहीं होता है।
देख सी + + गुण ABI टैग के बारे में अधिक जानकारी के लिए।

-Wctor-dtor-गोपनीयता (सी++ और ऑब्जेक्टिव-सी++ केवल)
जब कोई वर्ग अनुपयोगी लगता है तो चेतावनी दें क्योंकि उसमें सभी निर्माता या विध्वंसक हैं
वर्ग निजी हैं, और इसमें न तो मित्र हैं और न ही सार्वजनिक स्थैतिक सदस्य कार्य हैं।
यह भी चेतावनी दें कि क्या कोई गैर-निजी तरीके नहीं हैं, और कम से कम एक निजी सदस्य है
फ़ंक्शन जो एक निर्माता या विनाशक नहीं है।

-Wdelete-गैर-आभासी-dtor (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि जब "डिलीट" का उपयोग उस वर्ग के उदाहरण को नष्ट करने के लिए किया जाता है जिसमें वर्चुअल
फ़ंक्शंस और गैर-आभासी विनाशक। व्युत्पन्न के उदाहरण को हटाना असुरक्षित है
बेस क्लास में पॉइंटर के माध्यम से क्लास अगर बेस क्लास में वर्चुअल नहीं है
विनाशक यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-शाब्दिक-प्रत्यय (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें जब एक स्ट्रिंग या अक्षर अक्षर के बाद एक ud-प्रत्यय होता है जो नहीं करता है
एक अंडरस्कोर से शुरू करें। एक अनुरूप विस्तार के रूप में, GCC ऐसे प्रत्ययों को मानता है
कोड के साथ पश्चगामी संगतता बनाए रखने के लिए अलग प्रीप्रोसेसिंग टोकन
जो "से स्वरूपण मैक्रोज़ का उपयोग करता है" "। उदाहरण के लिए:

#परिभाषित करें __STDC_FORMAT_MACROS
#शामिल
#शामिल

मुख्य प्रवेश बिंदु() {
int64_t i64 = 123;
प्रिंटफ ("मेरा int64:%" PRId64 "\ n", i64);
}

इस मामले में, "PRId64" को एक अलग प्रीप्रोसेसिंग टोकन के रूप में माना जाता है।

यह चेतावनी डिफ़ॉल्ट रूप से सक्षम है।

- सिकुड़ा हुआ (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी जब C++11 द्वारा प्रतिबंधित एक संकुचित रूपांतरण भीतर होता है { }, उदा

इंट आई = {2.2}; // त्रुटि: डबल से इंट तक सीमित करना

यह ध्वज शामिल है -दीवार और -Wc++11-संगत.

- -एसटीडी=सी++11, -नहीं-संकीर्ण मानक द्वारा आवश्यक निदान को दबा देता है।
ध्यान दें कि यह सुव्यवस्थित कोड के अर्थ को प्रभावित नहीं करता है; रूपांतरणों को कम करना
SFINAE संदर्भ में अभी भी गलत तरीके से बनाए गए माने जाते हैं।

-कोई अपवाद नहीं (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि जब कोई अपवाद-अभिव्यक्ति किसी फ़ंक्शन को कॉल करने के कारण असत्य का मूल्यांकन करती है
जिसमें एक गैर-फेंकने वाला अपवाद विनिर्देश नहीं है (यानी "फेंक ()" या
"noexcept") लेकिन संकलक द्वारा कभी भी अपवाद नहीं फेंकने के लिए जाना जाता है।

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

-वॉर्डर (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी जब कोड में दिए गए सदस्य प्रारंभकर्ताओं का क्रम क्रम से मेल नहीं खाता
जिसमें उन्हें निष्पादित किया जाना चाहिए। उदाहरण के लिए:

संरचना ए {
int i;
इंट जे;
ए (): जे (0), मैं (1) { }
};

कंपाइलर सदस्य प्रारंभकर्ताओं को "i" और "j" के लिए मिलान करने के लिए पुनर्व्यवस्थित करता है
इस आशय की चेतावनी देते हुए सदस्यों का घोषणा आदेश। यह चेतावनी है
द्वारा सक्षम किया गया -दीवार.

-फेक्स्ट-संख्यात्मक-शाब्दिक (सी++ और ऑब्जेक्टिव-सी++ केवल)
GNU के रूप में काल्पनिक, निश्चित-बिंदु, या मशीन-परिभाषित शाब्दिक संख्या प्रत्यय स्वीकार करें
एक्सटेंशन। जब यह विकल्प बंद हो जाता है तो इन प्रत्ययों को C++11 उपयोगकर्ता के रूप में माना जाता है-
परिभाषित शाब्दिक संख्यात्मक प्रत्यय। यह सभी प्री-सी++11 बोलियों के लिए डिफ़ॉल्ट रूप से चालू है
और सभी GNU बोलियाँ: -एसटीडी=सी++98, -एसटीडी=जीएनयू++98, -एसटीडी=जीएनयू++11, -एसटीडी=जीएनयू++14। इस
ISO C++11 के बाद के लिए विकल्प डिफ़ॉल्ट रूप से बंद है (-एसटीडी=सी++11, ...).

निम्नलिखित -डब्ल्यू... विकल्प प्रभावित नहीं हैं -दीवार.

-वेफक++ (सी++ और ऑब्जेक्टिव-सी++ केवल)
स्कॉट मेयर्स से निम्नलिखित शैली दिशानिर्देशों के उल्लंघन के बारे में चेतावनी दें प्रभावी
सी + + पुस्तकों की श्रृंखला:

* गतिशील रूप से कक्षाओं के लिए एक कॉपी कंस्ट्रक्टर और एक असाइनमेंट ऑपरेटर को परिभाषित करें-
आवंटित स्मृति।

* कंस्ट्रक्टर्स में असाइनमेंट के लिए इनिशियलाइज़ेशन को प्राथमिकता दें।

* "ऑपरेटर =" को *इस का संदर्भ दें।

* जब आपको कोई वस्तु वापस करनी हो तो किसी संदर्भ को वापस करने का प्रयास न करें।

* इंक्रीमेंट और डिक्रीमेंट ऑपरेटरों के प्रीफिक्स और पोस्टफिक्स फॉर्म के बीच अंतर करें।

* "&&", "||", या "," को कभी भी ओवरलोड न करें।

यह विकल्प भी सक्षम बनाता है -गैर-आभासी-dtor, जो कि प्रभावी C++ . में से एक है
सिफारिशें। हालाँकि, वर्चुअल की कमी के बारे में चेतावनी देने के लिए चेक को बढ़ाया जाता है
सुलभ गैर-बहुरूपी आधार वर्गों में भी विध्वंसक।

इस विकल्प का चयन करते समय, ध्यान रखें कि मानक पुस्तकालय शीर्षलेख सभी का पालन नहीं करते हैं
इन दिशानिर्देशों में से; उपयोग ग्रेप -v उन चेतावनियों को फ़िल्टर करने के लिए।

-विस्ट्रिक्ट-नल-सेंटिनल (सी++ और ऑब्जेक्टिव-सी++ केवल)
प्रहरी के रूप में एक असंबद्ध "NULL" के उपयोग के बारे में चेतावनी दें। केवल जीसीसी के साथ संकलन करते समय
यह एक मान्य प्रहरी है, क्योंकि "NULL" को "__null" के रूप में परिभाषित किया गया है। हालांकि यह एक शून्य है
एक शून्य सूचक के बजाय सूचक स्थिर, यह एक ही आकार के होने की गारंटी है
एक सूचक के रूप में। लेकिन यह प्रयोग विभिन्न कंपाइलरों में पोर्टेबल नहीं है।

-नो-नॉन-टेम्प्लेट-मित्र (सी++ और ऑब्जेक्टिव-सी++ केवल)
जब टेम्पलेट के भीतर गैर-टेम्पलेट किए गए मित्र फ़ंक्शन घोषित किए जाते हैं तो चेतावनियां अक्षम करें।
G++ में स्पष्ट टेम्पलेट विनिर्देश समर्थन के आगमन के बाद से, यदि का नाम
दोस्त एक अयोग्य-आईडी है (यानी, मित्र फू (इंट)), C++ भाषा विनिर्देश
मांग करता है कि मित्र एक सामान्य, गैर-टेम्पलेट फ़ंक्शन को घोषित या परिभाषित करे। (अनुभाग
14.5.3)। G++ स्पष्ट विनिर्देश लागू करने से पहले, अयोग्य-आईडी हो सकते हैं
एक टेम्प्लेटाइज्ड फ़ंक्शन की एक विशेष विशेषज्ञता के रूप में व्याख्या की गई। क्योंकि यह
गैर-अनुरूप व्यवहार अब G++ के लिए डिफ़ॉल्ट व्यवहार नहीं है,
-गैर-टेम्पलेट-मित्र संभावित परेशानी के लिए संकलक को मौजूदा कोड की जांच करने की अनुमति देता है
स्पॉट और डिफ़ॉल्ट रूप से चालू है। इस नए कंपाइलर व्यवहार को बंद किया जा सकता है
-नो-नॉन-टेम्प्लेट-मित्र, जो अनुरूप संकलक कोड रखता है लेकिन अक्षम करता है
सहायक चेतावनी।

-वल्ड-स्टाइल-कास्ट (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि एक गैर-शून्य प्रकार में डाली गई पुरानी शैली (सी-शैली) का उपयोग सी ++ प्रोग्राम के भीतर किया जाता है।
नई शैली की कास्ट ("डायनामिक_कास्ट", "स्टैटिक_कास्ट", "रीइंटरप्रेट_कास्ट", और
"const_cast") अनपेक्षित प्रभावों के प्रति कम संवेदनशील होते हैं और खोजने में बहुत आसान होते हैं।

-ववरलोडेड-वर्चुअल (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि जब कोई फ़ंक्शन घोषणा बेस क्लास से वर्चुअल फ़ंक्शंस छुपाती है। के लिये
उदाहरण, में:

संरचना ए {
आभासी शून्य एफ ();
};

संरचना बी: सार्वजनिक ए {
शून्य एफ (इंट);
};

"एफ" का "ए" वर्ग संस्करण "बी" में छिपा हुआ है, और कोड जैसे:

बी * बी;
बी-> एफ ();

संकलित करने में विफल रहता है।

-Wno-pmf-रूपांतरण (सी++ और ऑब्जेक्टिव-सी++ केवल)
बाउंड पॉइंटर को सदस्य फ़ंक्शन में प्लेन में बदलने के लिए डायग्नोस्टिक को अक्षम करें
सूचक।

-Wsign-प्रोमो (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि जब अधिभार समाधान अहस्ताक्षरित या प्रगणित प्रकार से पदोन्नति का चयन करता है
एक हस्ताक्षरित प्रकार, एक ही आकार के एक अहस्ताक्षरित प्रकार के रूपांतरण पर। पहले का
जी ++ के संस्करणों ने अहस्ताक्षरितता को संरक्षित करने की कोशिश की, लेकिन मानक वर्तमान को अनिवार्य करता है
व्यवहार.

ऑप्शंस नियंत्रित करना उद्देश्य सी और उद्देश्य-सी++ बोलियाँ
(नोट: यह मैनुअल ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ भाषाओं का वर्णन नहीं करता है
खुद को।

यह खंड कमांड-लाइन विकल्पों का वर्णन करता है जो केवल उद्देश्य-सी के लिए सार्थक हैं
और ऑब्जेक्टिव-सी++ प्रोग्राम। आप अधिकांश भाषा-स्वतंत्र GNU का भी उपयोग कर सकते हैं
संकलक विकल्प। उदाहरण के लिए, आप एक फ़ाइल संकलित कर सकते हैं some_class.m इस तरह:

जीसीसी-जी-फग्नू-रनटाइम-ओ-सी some_class.m

इस उदाहरण में, -फग्नू-रनटाइम केवल ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ के लिए एक विकल्प है
कार्यक्रम; आप जीसीसी द्वारा समर्थित किसी भी भाषा के साथ अन्य विकल्पों का उपयोग कर सकते हैं।

ध्यान दें कि चूंकि उद्देश्य-सी सी भाषा का विस्तार है, उद्देश्य-सी संकलन
सी फ्रंट-एंड के लिए विशिष्ट विकल्पों का भी उपयोग कर सकते हैं (उदाहरण के लिए, -पारंपरिक)। इसी तरह,
उद्देश्य-सी ++ संकलन सी ++ - विशिष्ट विकल्पों का उपयोग कर सकते हैं (उदाहरण के लिए, -वाबी).

यहां उन विकल्पों की सूची दी गई है जो हैं केवल ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ को कंपाइल करने के लिए
कार्यक्रम:

-फकॉन्स्टेंट-स्ट्रिंग-क्लास =कक्षा का नाम
उपयोग कक्षा का नाम प्रत्येक शाब्दिक स्ट्रिंग के लिए तत्काल करने के लिए वर्ग के नाम के रूप में
सिंटैक्स "@"..."" के साथ निर्दिष्ट। डिफ़ॉल्ट वर्ग का नाम "NXConstantString" है यदि
GNU रनटाइम का उपयोग किया जा रहा है, और "NSConstantString" यदि NeXT रनटाइम किया जा रहा है
इस्तेमाल किया (नीचे देखें)। NS -fconstant-cfstrings विकल्प, यदि भी मौजूद है, को ओवरराइड करता है
-फकॉन्स्टेंट-स्ट्रिंग-क्लास सेटिंग और कारण "@"..."" अक्षर को स्थिर के रूप में रखा जाना चाहिए
कोरफाउंडेशन स्ट्रिंग्स।

-फग्नू-रनटाइम
मानक जीएनयू ऑब्जेक्टिव-सी रनटाइम के साथ संगत ऑब्जेक्ट कोड जेनरेट करें। यह है
अधिकांश प्रकार के सिस्टम के लिए डिफ़ॉल्ट।

-फनेक्स्ट-रनटाइम
नेक्स्ट रनटाइम के साथ संगत आउटपुट जेनरेट करें। यह नेक्स्ट-आधारित . के लिए डिफ़ॉल्ट है
डार्विन और मैक ओएस एक्स सहित सिस्टम। मैक्रो "__NEXT_RUNTIME__" पूर्वनिर्धारित है यदि
(और केवल अगर) इस विकल्प का उपयोग किया जाता है।

-फनो-शून्य-रिसीवर
मान लें कि सभी उद्देश्य-सी संदेश प्रेषण ("[रिसीवर संदेश: arg]") इसमें
अनुवाद इकाई सुनिश्चित करती है कि रिसीवर "शून्य" नहीं है। यह और अधिक के लिए अनुमति देता है
उपयोग किए जाने वाले रनटाइम में कुशल प्रवेश बिंदु। यह विकल्प केवल में उपलब्ध है
नेक्स्ट रनटाइम और एबीआई संस्करण 0 या 1 के साथ संयोजन।

-फोबजेसी-एबी-संस्करण =n
संस्करण का प्रयोग करें n चयनित रनटाइम के लिए Objective-C ABI का। यह विकल्प है
वर्तमान में केवल नेक्स्ट रनटाइम के लिए समर्थित है। उस स्थिति में, संस्करण 0 है
संपत्तियों और अन्य उद्देश्य-सी 32 . के समर्थन के बिना पारंपरिक (2.0-बिट) एबीआई
परिवर्धन। संस्करण 1 पारंपरिक (32-बिट) एबीआई गुणों के समर्थन के साथ है और
अन्य उद्देश्य-सी 2.0 परिवर्धन। संस्करण 2 आधुनिक (64-बिट) एबीआई है। अगर कुछ नहीं है
निर्दिष्ट, डिफ़ॉल्ट 0-बिट लक्ष्य मशीनों पर संस्करण 32 है, और 2-बिट पर संस्करण 64 है
लक्ष्य मशीनें।

-fobjc-कॉल-cxx-cdtors
प्रत्येक ऑब्जेक्टिव-सी क्लास के लिए, जांचें कि क्या इसका कोई इंस्टेंस वेरिएबल C++ ऑब्जेक्ट है
एक गैर-तुच्छ डिफ़ॉल्ट कन्स्ट्रक्टर के साथ। यदि हां, तो एक विशेष "- (आईडी) का संश्लेषण करें।
.cxx_construct" इंस्टेंस विधि जो किसी भी पर गैर-तुच्छ डिफ़ॉल्ट कंस्ट्रक्टर चलाती है
ऐसे उदाहरण चर, क्रम में, और फिर "स्वयं" लौटाएं। इसी तरह, जाँच करें कि क्या कोई है
आवृत्ति चर एक गैर-तुच्छ विनाशक के साथ एक सी ++ ऑब्जेक्ट है, और यदि ऐसा है, तो संश्लेषित करें
एक विशेष "- (शून्य) .cxx_destruct" विधि जो ऐसे सभी डिफ़ॉल्ट विनाशकों को चलाती है, in
उल्टे क्रम।

"- (id) .cxx_construct" और "- (void) .cxx_destruct" विधियां इस प्रकार केवल उत्पन्न होती हैं
वर्तमान ऑब्जेक्टिव-सी क्लास में घोषित इंस्टेंस वेरिएबल्स पर काम करते हैं, न कि उन पर
सुपरक्लास से विरासत में मिला। यह उद्देश्य-सी रनटाइम की जिम्मेदारी है
किसी वस्तु की विरासत पदानुक्रम में ऐसी सभी विधियों का आह्वान करें। आईडी)
.cxx_construct" विधियों को एक नई वस्तु के तुरंत बाद रनटाइम द्वारा लागू किया जाता है
उदाहरण आवंटित किया गया है; "- (शून्य) .cxx_destruct" विधियों को तुरंत लागू किया जाता है
रनटाइम से पहले ऑब्जेक्ट इंस्टेंस को हटा देता है।

इस लेखन के समय, मैक ओएस एक्स 10.4 पर केवल नेक्स्ट रनटाइम और बाद में इसके लिए समर्थन है
"- (आईडी) .cxx_construct" और "- (शून्य) .cxx_destruct" विधियों को लागू करना।

-फोबजेसी-प्रत्यक्ष-प्रेषण
संदेश प्रेषक को तेजी से कूदने की अनुमति दें। डार्विन पर यह के माध्यम से पूरा किया जाता है
कॉम पेज।

-फोबजेसी-अपवाद
ऑब्जेक्टिव-सी में स्ट्रक्चर्ड एक्सेप्शन हैंडलिंग के लिए सिंटैक्टिक सपोर्ट को सक्षम करें, जैसे
सी ++ और जावा द्वारा क्या पेश किया जाता है। उद्देश्य-सी . का उपयोग करने के लिए यह विकल्प आवश्यक है
कीवर्ड @try, @throw, @catch, @finally और @synchronized। यह विकल्प उपलब्ध है
जीएनयू रनटाइम और नेक्स्ट रनटाइम दोनों के साथ (लेकिन संयोजन के साथ उपलब्ध नहीं है
मैक ओएस एक्स 10.2 और इससे पहले के संस्करण पर नेक्स्ट रनटाइम)।

-फोबजेसी-जीसी
ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ प्रोग्राम में गारबेज कलेक्शन (जीसी) सक्षम करें। इस विकल्प
केवल NeXT रनटाइम के साथ उपलब्ध है; जीएनयू रनटाइम में एक अलग कचरा है
संग्रह कार्यान्वयन जिसके लिए विशेष संकलक झंडे की आवश्यकता नहीं है।

-फोबजेसी-निलचेक
एबीआई के संस्करण 2 के साथ नेक्स्ट रनटाइम के लिए, विधि में एक शून्य रिसीवर की जांच करें
वास्तविक विधि कॉल करने से पहले आमंत्रण। यह डिफ़ॉल्ट है और हो सकता है
अक्षम का उपयोग कर -फनो-ओबीजेसी-निलचेक. क्लास मेथड्स और सुपर कॉल्स को कभी चेक नहीं किया जाता है
शून्य के लिए इस तरह से कोई फर्क नहीं पड़ता कि यह ध्वज किस पर सेट है। वर्तमान में यह ध्वज करता है
कुछ भी नहीं जब GNU रनटाइम, या नेक्स्ट रनटाइम ABI के पुराने संस्करण का उपयोग किया जाता है।

-फोबजेसी-एसटीडी=ओबीजेसी1
ऑब्जेक्टिव-सी 1.0 के भाषा सिंटैक्स के अनुरूप, जीसीसी 4.0 द्वारा मान्यता प्राप्त भाषा।
यह केवल C/C++ भाषा में Objective-C परिवर्धन को प्रभावित करता है; यह प्रभावित नहीं करता है
सी/सी++ मानकों के अनुरूप, जिसे अलग सी/सी++ बोली द्वारा नियंत्रित किया जाता है
विकल्प झंडे। जब इस विकल्प का प्रयोग Objective-C या Objective-C++ के साथ किया जाता है
कंपाइलर, कोई भी ऑब्जेक्टिव-सी सिंटैक्स जिसे GCC 4.0 द्वारा मान्यता प्राप्त नहीं है, अस्वीकार कर दिया गया है। इस
उपयोगी है यदि आपको यह सुनिश्चित करने की आवश्यकता है कि आपका उद्देश्य-सी कोड संकलित किया जा सकता है
जीसीसी के पुराने संस्करण।

-फ्रीप्लेस-ओबीजेसी-क्लासेस
निर्देश देने वाले एक विशेष मार्कर का उत्सर्जन करें ld(1) परिणामी वस्तु में स्थिर रूप से लिंक नहीं करना
फ़ाइल, और अनुमति दें डाइल्ड(1) इसके बजाय इसे रन टाइम पर लोड करने के लिए। इसका उपयोग में किया जाता है
फिक्स-एंड-कंटिन्यू डिबगिंग मोड के साथ संयोजन, जहां ऑब्जेक्ट फ़ाइल in
प्रश्न को पुन: संकलित किया जा सकता है और कार्यक्रम के दौरान गतिशील रूप से पुनः लोड किया जा सकता है
निष्पादन, कार्यक्रम को पुनः आरंभ करने की आवश्यकता के बिना। वर्तमान में, फिक्स-एंड-
जारी रखें कार्यक्षमता केवल मैक पर नेक्स्ट रनटाइम के संयोजन के साथ उपलब्ध है
ओएस एक्स 10.3 और बाद में।

-फजीरो-लिंक
नेक्स्ट रनटाइम के लिए संकलन करते समय, कंपाइलर आमतौर पर कॉल को बदल देता है
"objc_getClass("...")" (जब कक्षा का नाम संकलन समय पर ज्ञात हो) के साथ
स्थिर वर्ग संदर्भ जो लोड समय पर प्रारंभ होते हैं, जो रन-टाइम में सुधार करते हैं
प्रदर्शन। निर्दिष्ट करना -फजीरो-लिंक झंडा इस व्यवहार और कारणों को दबा देता है
कॉल "objc_getClass("...")" को बनाए रखने के लिए। यह जीरो-लिंक में उपयोगी है
डिबगिंग मोड, क्योंकि यह अलग-अलग वर्ग के कार्यान्वयन को संशोधित करने की अनुमति देता है
कार्यक्रम निष्पादन के दौरान। GNU रनटाइम वर्तमान में हमेशा कॉल को बरकरार रखता है
"objc_get_class("...")" कमांड-लाइन विकल्पों की परवाह किए बिना।

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

-फिवर-दृश्यता =[सार्वजनिक|संरक्षित|निजी|पैकेज]
डिफ़ॉल्ट आवृत्ति चर दृश्यता को निर्दिष्ट विकल्प पर सेट करें ताकि उदाहरण
किसी भी एक्सेस संशोधक निर्देशों के दायरे से बाहर घोषित चर
निर्दिष्ट दृश्यता।

-जेन-डिक्लेस
स्रोत फ़ाइल में देखे गए सभी वर्गों के लिए इंटरफ़ेस घोषणाओं को नाम की फ़ाइल में डंप करें
स्रोतनाम.decl.

-असाइन-अवरोध (ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि जब भी कोई ऑब्जेक्टिव-सी असाइनमेंट गारबेज कलेक्टर द्वारा इंटरसेप्ट किया जा रहा हो।

-Wno-प्रोटोकॉल (ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
यदि किसी वर्ग को प्रोटोकॉल लागू करने की घोषणा की जाती है, तो प्रत्येक विधि के लिए एक चेतावनी जारी की जाती है
प्रोटोकॉल में जो वर्ग द्वारा लागू नहीं किया जाता है। डिफ़ॉल्ट व्यवहार है
कक्षा में स्पष्ट रूप से लागू नहीं की गई प्रत्येक विधि के लिए चेतावनी जारी करें, भले ही a
विधि कार्यान्वयन सुपरक्लास से विरासत में मिला है। यदि आप का उपयोग करते हैं -Wno-प्रोटोकॉल
विकल्प है, तो सुपरक्लास से विरासत में मिली विधियों को लागू माना जाता है,
और उनके लिए कोई चेतावनी जारी नहीं की जाती है।

- चयनकर्ता (ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि क्या एक ही चयनकर्ता के लिए विभिन्न प्रकार के कई तरीके पाए जाते हैं
संकलन अंतिम चरण में विधियों की सूची पर जाँच की जाती है
संकलन इसके अतिरिक्त, a . में प्रदर्शित होने वाले प्रत्येक चयनकर्ता के लिए एक जाँच की जाती है
"@selector(...)" एक्सप्रेशन, और उस चयनकर्ता के लिए एक संगत विधि रही है
संकलन के दौरान पाया गया। क्योंकि ये चेक केवल अंत में मेथड टेबल को स्कैन करते हैं
संकलन के अंतिम चरण में होने पर ये चेतावनियाँ उत्पन्न नहीं होती हैं
नहीं पहुंचा, उदाहरण के लिए क्योंकि संकलन के दौरान कोई त्रुटि पाई जाती है, या क्योंकि
-fsyntax-केवल विकल्प का प्रयोग किया जा रहा है।

- सख्त-चयनकर्ता-मैच (ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि अलग-अलग तर्क और/या रिटर्न प्रकार वाले कई तरीके a . के लिए पाए जाते हैं
दिए गए चयनकर्ता को इस चयनकर्ता का उपयोग करके संदेश भेजने का प्रयास करते समय
"आईडी" या "कक्षा" टाइप करें। जब यह फ़्लैग बंद होता है (जो कि डिफ़ॉल्ट व्यवहार है), तो
संकलक ऐसी चेतावनियों को छोड़ देता है यदि कोई अंतर पाया जाता है जो साझा करने वाले प्रकारों तक ही सीमित है
एक ही आकार और संरेखण।

-वंडघोषित-चयनकर्ता (ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि "@selector(...)" एक अघोषित चयनकर्ता को संदर्भित करने वाला अभिव्यक्ति पाया जाता है। ए
चयनकर्ता को अघोषित माना जाता है यदि उस नाम के साथ कोई विधि पहले घोषित नहीं की गई है
"@selector(...)" एक्सप्रेशन, या तो स्पष्ट रूप से @interface या @protocol . में
घोषणा, या परोक्ष रूप से एक @कार्यान्वयन अनुभाग में। यह विकल्प हमेशा प्रदर्शन करता है
जैसे ही "@ चयनकर्ता (...)" अभिव्यक्ति मिलती है, इसकी जांच होती है, जबकि - चयनकर्ता केवल
संकलन के अंतिम चरण में इसकी जाँच करता है। यह कोडिंग को भी लागू करता है
शैली सम्मेलन है कि उपयोग किए जाने से पहले विधियों और चयनकर्ताओं को घोषित किया जाना चाहिए।

-प्रिंट-ओबीजेसी-रनटाइम-जानकारी
मूल्य द्वारा पारित सबसे बड़ी संरचना का वर्णन करने वाला सी हेडर जेनरेट करें, यदि कोई हो।

ऑप्शंस सेवा मेरे नियंत्रण नैदानिक संदेश फॉर्मेटिंग
परंपरागत रूप से, डायग्नोस्टिक संदेशों को आउटपुट डिवाइस की परवाह किए बिना स्वरूपित किया गया है
पहलू (जैसे इसकी चौड़ाई, ...) नियंत्रित करने के लिए आप नीचे वर्णित विकल्पों का उपयोग कर सकते हैं
डायग्नोस्टिक संदेशों के लिए स्वरूपण एल्गोरिदम, उदाहरण के लिए प्रति पंक्ति कितने वर्ण, कितनी बार
स्रोत स्थान की जानकारी की सूचना दी जानी चाहिए। ध्यान दें कि कुछ भाषा सामने समाप्त हो सकती है
इन विकल्पों का सम्मान नहीं।

-fmessage-लंबाई=n
त्रुटि संदेशों को प्रारूपित करने का प्रयास करें ताकि वे लगभग . की तर्ज पर फ़िट हों n पात्र। अगर n is
शून्य, फिर कोई लाइन-रैपिंग नहीं की जाती है; प्रत्येक त्रुटि संदेश एक पंक्ति पर प्रकट होता है।
यह सभी फ्रंट एंड के लिए डिफ़ॉल्ट है।

-fdiagnostics-शो-स्थान=एक बार
केवल लाइन-रैपिंग मोड में सार्थक। नैदानिक ​​​​संदेश रिपोर्टर को निर्देश देता है
स्रोत स्थान की जानकारी उत्सर्जित करें एक बार; यानी, यदि संदेश फिट होने के लिए बहुत लंबा है
एक भौतिक रेखा पर और लपेटा जाना है, स्रोत स्थान उत्सर्जित नहीं होगा
(उपसर्ग के रूप में) बार-बार, बाद की निरंतरता पंक्तियों में। यह है
डिफ़ॉल्ट व्यवहार।

-fdiagnostics-शो-स्थान=हर-पंक्ति
केवल लाइन-रैपिंग मोड में सार्थक। नैदानिक ​​​​संदेश रिपोर्टर को निर्देश देता है
भौतिक रेखाओं के लिए समान स्रोत स्थान की जानकारी (उपसर्ग के रूप में) उत्सर्जित करें जिसके परिणामस्वरूप
एक संदेश को तोड़ने की प्रक्रिया से जो एक पंक्ति में फिट होने के लिए बहुत लंबा है।

-फडायग्नोस्टिक्स-रंग[=जब]
-फनो-डायग्नोस्टिक्स-रंग
निदान में रंग का प्रयोग करें। जब is कभी नहीँ, हमेशाया, स्वत:. डिफ़ॉल्ट इस बात पर निर्भर करता है कि कैसे
कंपाइलर कॉन्फ़िगर किया गया है, यह उपरोक्त में से कोई भी हो सकता है जब विकल्प या भी
कभी नहीँ if जीसीसी_रंग पर्यावरण चर पर्यावरण में मौजूद नहीं है, और स्वत:
अन्यथा। स्वत: रंग का उपयोग केवल तभी करना है जब मानक त्रुटि एक टर्मिनल हो। NS
रूपों -fdiagnostics-रंग और -फनो-डायग्नोस्टिक्स-रंग के लिए उपनाम हैं
-फडायग्नोस्टिक्स-रंग=हमेशा और -फडायग्नोस्टिक्स-रंग=कभी नहीं, क्रमशः।

रंग पर्यावरण चर द्वारा परिभाषित किए गए हैं जीसीसी_रंग. इसका मान एक कोलन है-
क्षमताओं की अलग सूची और ग्राफिक रेंडिशन (एसजीआर) सबस्ट्रिंग का चयन करें। एसजीआर
कमांड की व्याख्या टर्मिनल या टर्मिनल एमुलेटर द्वारा की जाती है। (अनुभाग देखें
अनुमत मानों और उनके अर्थों के लिए आपके टेक्स्ट टर्मिनल का दस्तावेज़ीकरण:
वर्ण विशेषताएँ।) ये सबस्ट्रिंग मान दशमलव प्रतिनिधित्व में पूर्णांक हैं
और इसे अर्धविराम से जोड़ा जा सकता है। जोड़ने के लिए सामान्य मूल्यों में शामिल हैं 1 एसटी
बोल्ड, 4 रेखांकित करने के लिए, 5 पलक झपकने के लिए, 7 प्रतिलोम के लिए, 39 डिफ़ॉल्ट अग्रभूमि रंग के लिए, 30
सेवा मेरे 37 अग्रभूमि रंग के लिए, 90 सेवा मेरे 97 16-रंग मोड अग्रभूमि रंगों के लिए, 38; 5; 0 सेवा मेरे
38; 5; 255 88-रंग और 256-रंग मोड के लिए अग्रभूमि रंग, 49 डिफ़ॉल्ट पृष्ठभूमि के लिए
रंग, 40 सेवा मेरे 47 पृष्ठभूमि के रंगों के लिए, 100 सेवा मेरे 107 16-रंग मोड पृष्ठभूमि रंगों के लिए,
और 48; 5; 0 सेवा मेरे 48; 5; 255 88-रंग और 256-रंग मोड पृष्ठभूमि रंगों के लिए।

डिफ़ॉल्ट जीसीसी_रंग is

error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01

जहां 01, 31 बोल्ड रेड है, 01, 35 बोल्ड मैजेंटा है, 01, 36 बोल्ड सियान है, 01, 32 बोल्ड है
हरा और 01 बोल्ड है। स्थापना जीसीसी_रंग खाली स्ट्रिंग के लिए रंग अक्षम करता है।
समर्थित क्षमताएं इस प्रकार हैं।

"त्रुटि ="
त्रुटि के लिए SGR सबस्ट्रिंग: मार्कर।

"चेतावनी ="
चेतावनी के लिए एसजीआर सबस्ट्रिंग: मार्कर।

"नोट ="
नोट के लिए एसजीआर सबस्ट्रिंग: मार्कर।

"कैरेट ="
कैरेट लाइन के लिए SGR सबस्ट्रिंग।

"ठिकाना ="
स्थान की जानकारी के लिए SGR सबस्ट्रिंग, फ़ाइल: लाइन or फ़ाइल: लाइन: कॉलम इत्यादि

"उद्धरण ="
उद्धरणों के भीतर मुद्रित जानकारी के लिए SGR सबस्ट्रिंग।

-फनो-डायग्नोस्टिक्स-शो-विकल्प
डिफ़ॉल्ट रूप से, उत्सर्जित प्रत्येक डायग्नोस्टिक में कमांड-लाइन विकल्प को इंगित करने वाला टेक्स्ट शामिल होता है
जो सीधे डायग्नोस्टिक को नियंत्रित करता है (यदि ऐसा विकल्प डायग्नोस्टिक के लिए जाना जाता है
मशीनरी)। निर्दिष्ट करना -फनो-डायग्नोस्टिक्स-शो-विकल्प झंडा दबा देता है कि
व्यवहार.

-फनो-डायग्नोस्टिक्स-शो-कैरेट
डिफ़ॉल्ट रूप से, उत्सर्जित प्रत्येक निदान में मूल स्रोत रेखा और एक कैरेट '^' शामिल होता है
कॉलम को इंगित करता है। यह विकल्प इस जानकारी को दबा देता है। स्रोत रेखा है
को छोटा कर दिया n वर्ण, यदि -fmessage-लंबाई = n विकल्प दिया गया है। जब आउटपुट
टर्मिनल के लिए किया जाता है, चौड़ाई द्वारा दी गई चौड़ाई तक सीमित है कॉलम
पर्यावरण चर या, यदि सेट नहीं है, तो टर्मिनल चौड़ाई पर।

ऑप्शंस सेवा मेरे निवेदन or दबाने :
चेतावनियाँ नैदानिक ​​संदेश हैं जो उन निर्माणों की रिपोर्ट करते हैं जो स्वाभाविक रूप से नहीं हैं
गलत है लेकिन यह जोखिम भरा है या सुझाव है कि कोई त्रुटि हो सकती है।

निम्नलिखित भाषा-स्वतंत्र विकल्प विशिष्ट चेतावनियों को सक्षम नहीं करते हैं लेकिन नियंत्रित करते हैं
जीसीसी द्वारा निर्मित डायग्नोस्टिक्स के प्रकार।

-fsyntax-केवल
सिंटैक्स त्रुटियों के लिए कोड की जाँच करें, लेकिन इससे आगे कुछ भी न करें।

-फमैक्स-त्रुटियां =n
त्रुटि संदेशों की अधिकतम संख्या को सीमित करता है n, जिस बिंदु पर GCC बल्कि बेल आउट हो जाता है
स्रोत कोड को संसाधित करना जारी रखने का प्रयास करने के बजाय। अगर n 0 है (डिफ़ॉल्ट),
उत्पन्न त्रुटि संदेशों की संख्या की कोई सीमा नहीं है। अगर घातक-त्रुटियों भी है
निर्दिष्ट, तो घातक-त्रुटियों इस विकल्प पर वरीयता लेता है।

-w सभी चेतावनी संदेशों को रोकें।

-आतंक
सभी चेतावनियों को त्रुटियों में बनाओ।

-आतंक =
निर्दिष्ट चेतावनी को त्रुटि में बदलें। चेतावनी के लिए विनिर्देशक संलग्न है;
उदाहरण के लिये -आतंक = स्विच द्वारा नियंत्रित चेतावनियों को बदल देता है -स्विच त्रुटियों में।
यह स्विच नकारात्मक रूप लेता है, जिसका उपयोग नकारात्मक करने के लिए किया जाता है -आतंक विशिष्ट चेतावनियों के लिए;
उदाहरण के लिये -नो-त्रुटि = स्विच बनाता है -स्विच चेतावनियाँ त्रुटियाँ न हों, तब भी जब -आतंक
प्रभाव में है।

प्रत्येक नियंत्रणीय चेतावनी के लिए चेतावनी संदेश में वह विकल्प शामिल होता है जो नियंत्रित करता है
चेतावनी। उस विकल्प का उपयोग तब किया जा सकता है -आतंक = और -नो-त्रुटि = के रूप में वर्णित
ऊपर। (चेतावनी संदेश में विकल्प की छपाई का उपयोग करके अक्षम किया जा सकता है
-फनो-डायग्नोस्टिक्स-शो-विकल्प झंडा।)

ध्यान दें कि निर्दिष्ट करना -आतंक =foo स्वचालित रूप से तात्पर्य है -Wfoo. हालांकि, -नो-त्रुटि =foo
कुछ भी मतलब नहीं है।

घातक-त्रुटियों
यह विकल्प संकलक को पहली त्रुटि होने पर संकलन को रद्द करने का कारण बनता है
आगे त्रुटि संदेशों को जारी रखने और प्रिंट करने की कोशिश करने के बजाय।

आप कई विशिष्ट चेतावनियों का अनुरोध कर सकते हैं जिनमें से शुरू होने वाले विकल्प हैं -W, उदाहरण के लिए
-विम्पलिसिट निहित घोषणाओं पर चेतावनियों का अनुरोध करने के लिए। इनमें से प्रत्येक विशिष्ट चेतावनी
विकल्प भी एक नकारात्मक रूप शुरुआत है -नहीं- चेतावनियों को बंद करने के लिए; उदाहरण के लिए,
-कोई निहित. यह मैनुअल दो रूपों में से केवल एक को सूचीबद्ध करता है, जो भी डिफ़ॉल्ट नहीं है।
आगे के भाषा-विशिष्ट विकल्पों के लिए भी देखें सी + + बोली ऑप्शंस और उद्देश्य सी
और उद्देश्य-सी++ बोली ऑप्शंस.

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

जब एक अपरिचित चेतावनी विकल्प का अनुरोध किया जाता है (उदाहरण के लिए, -अज्ञात-चेतावनी), जीसीसी उत्सर्जित करता है a
डायग्नोस्टिक बताते हुए कि विकल्प पहचाना नहीं गया है। हालांकि, अगर -नहीं- प्रपत्र का उपयोग किया जाता है,
व्यवहार थोड़ा अलग है: इसके लिए कोई निदान नहीं तैयार किया जाता है -अज्ञात-चेतावनी
जब तक कि अन्य डायग्नोस्टिक्स का उत्पादन नहीं किया जा रहा हो। यह new . के उपयोग की अनुमति देता है -नहीं- विकल्पों
पुराने संकलक के साथ, लेकिन अगर कुछ गलत हो जाता है, तो संकलक चेतावनी देता है कि एक अपरिचित
विकल्प मौजूद है।

-वेदांतिक
पांडित्य
सख्त ISO C और ISO C++ द्वारा मांगी गई सभी चेतावनियों को जारी करें; उन सभी कार्यक्रमों को अस्वीकार करें जो
निषिद्ध एक्सटेंशन का उपयोग करें, और कुछ अन्य प्रोग्राम जो आईएसओ सी और आईएसओ का पालन नहीं करते हैं
सी ++। आईएसओ सी के लिए, किसी के द्वारा निर्दिष्ट आईएसओ सी मानक के संस्करण का अनुसरण करता है -एसटीडी
इस्तेमाल किया विकल्प।

मान्य ISO C और ISO C++ प्रोग्राम इस विकल्प के साथ या उसके बिना ठीक से संकलित होने चाहिए
(हालांकि एक दुर्लभ कुछ की आवश्यकता होती है -अनसी या एक -एसटीडी के आवश्यक संस्करण को निर्दिष्ट करने वाला विकल्प
आईएसओ सी)। हालांकि, इस विकल्प के बिना, कुछ GNU एक्सटेंशन और पारंपरिक C और
C++ सुविधाएँ भी समर्थित हैं। इस विकल्प के साथ, उन्हें अस्वीकार कर दिया जाता है।

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

कुछ उपयोगकर्ता उपयोग करने का प्रयास करते हैं -वेदांतिक सख्त आईएसओ सी अनुरूपता के लिए कार्यक्रमों की जांच करने के लिए। वे
जल्द ही पता चलता है कि यह वह नहीं करता जो वे चाहते हैं: यह कुछ गैर-आईएसओ प्रथाओं को पाता है,
लेकिन सभी नहीं --- केवल वे जिनके लिए आईएसओ सी की आवश्यकता होती है एक निदान, और कुछ अन्य के लिए
जिसमें डायग्नोस्टिक्स जोड़े गए हैं।

आईएसओ सी के अनुरूप किसी भी विफलता की रिपोर्ट करने की सुविधा कुछ मामलों में उपयोगी हो सकती है,
लेकिन इसके लिए काफी अतिरिक्त काम की आवश्यकता होगी और यह काफी अलग होगा
-वेदांतिक. निकट भविष्य में इस तरह की सुविधा का समर्थन करने की हमारी कोई योजना नहीं है।

जहां मानक के साथ निर्दिष्ट किया गया है -एसटीडी C की GNU विस्तारित बोली का प्रतिनिधित्व करता है, जैसे
जीएनयू२३४ or जीएनयू२३४, एक संगत है आधार मानक, आईएसओ सी का संस्करण जिस पर
जीएनयू विस्तारित बोली आधारित है। से चेतावनियाँ -वेदांतिक दिए जाते हैं जहां वे हैं
आधार मानक द्वारा आवश्यक। (ऐसी चेतावनियां दिए जाने का कोई मतलब नहीं है
केवल उन विशेषताओं के लिए जो निर्दिष्ट GNU C बोली में नहीं हैं, क्योंकि परिभाषा के अनुसार GNU
सी की बोलियों में सभी सुविधाएं शामिल हैं जो संकलक दिए गए विकल्प के साथ समर्थन करता है, और
चेतावनी देने के लिए कुछ भी नहीं होगा।)

-पांडित्य-त्रुटियों
जब भी त्रुटि दें आधार मानक (देखें -वेदांतिक) एक निदान की आवश्यकता है, in
कुछ मामले जहां संकलन-समय पर अपरिभाषित व्यवहार होता है और कुछ अन्य मामलों में
जो मानक के अनुसार मान्य प्रोग्रामों के संकलन को नहीं रोकता है।
यह बराबर नहीं है -आतंक = पांडित्य, चूंकि इसके द्वारा सक्षम त्रुटियां हैं
विकल्प और बाद वाले द्वारा सक्षम नहीं और इसके विपरीत।

-दीवार
यह निर्माण के बारे में सभी चेतावनियों को सक्षम करता है जिसे कुछ उपयोगकर्ता मानते हैं
संदिग्ध, और इससे बचना आसान है (या चेतावनी को रोकने के लिए संशोधित करें), यहां तक ​​कि
मैक्रोज़ के साथ संयोजन। यह वर्णित कुछ भाषा-विशिष्ट चेतावनियों को भी सक्षम बनाता है
in सी + + बोली ऑप्शंस और उद्देश्य सी और उद्देश्य-सी++ बोली ऑप्शंस.

-दीवार निम्नलिखित चेतावनी झंडे चालू करता है:

-पता -वार-सीमा = 1 (सिर्फ साथ -ओ३) -Wc++11-संगत -Wc++14-संगत
-वचर-सब्सक्राइब -वेनम-तुलना (सी/ओबीजेसी में; यह डिफ़ॉल्ट रूप से सी ++ में चालू है)
-विम्प्लिशिट-इंट (सी और उद्देश्य-सी केवल) -विम्प्लिकिट-फ़ंक्शन-घोषणा (सी और
उद्देश्य-सी केवल) -कमेन्ट करें -स्वरूप -वमेन (केवल सी/ओबीजेसी के लिए और जब तक कि
-फ्रीस्टैंडिंग) -शायद-अप्रारंभीकृत -विस्मिंग-ब्रेसिज़ (केवल सी/ओबीजेसी के लिए) -वोननुल
-वोपेनएमपी-सिमड -कोष्ठक -Wpointer-चिह्न -वॉर्डर -रिटर्न-प्रकार -अनुक्रम-बिंदु
-Wsign-तुलना (केवल सी ++ में) -स्ट्रिक्ट-अलियासिंग -स्ट्रिक्ट-ओवरफ्लो = 1 -स्विच
-वट्रिग्राफ -अप्रारंभीकृत -अज्ञात-प्राग्मास -वुनयूज्ड-फंक्शन -वुनयूज्ड-लेबल
-अप्रयुक्त-मूल्य -अप्रयुक्त-चर -अस्थिर-रजिस्टर-वर

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

-वेक्स्ट्रा
यह कुछ अतिरिक्त चेतावनी फ़्लैग सक्षम करता है जो इसके द्वारा सक्षम नहीं हैं -दीवार. (इस विकल्प का इस्तेमाल किया गया
कहा जा सकता है -W. पुराना नाम अभी भी समर्थित है, लेकिन नया नाम अधिक है
वर्णनात्मक।)

-वक्लबरेड -खाली-शरीर -विग्नोर-क्वालिफायर -विमिसिंग-फील्ड-प्रारंभकर्ता
-विस्मिंग-पैरामीटर-प्रकार (सी केवल) -वल्ड-स्टाइल-घोषणा (सी केवल) -वोवरराइड-इनिट
-Wsign-तुलना -Wtype-सीमा -अप्रारंभीकृत -वुनयूज्ड-पैरामीटर (सिर्फ साथ -वुनयूज्ड or
-दीवार) -अप्रयुक्त-लेकिन-सेट-पैरामीटर (सिर्फ साथ -वुनयूज्ड or -दीवार)

विकल्प -वेक्स्ट्रा निम्नलिखित मामलों के लिए चेतावनी संदेश भी प्रिंट करता है:

* एक पॉइंटर की तुलना पूर्णांक शून्य से "<", "<=", ">", या ">=" से की जाती है।

* (सी ++ केवल) एक गणक और एक गैर-गणनाकर्ता दोनों एक सशर्त में दिखाई देते हैं
अभिव्यक्ति।

* (सी ++ केवल) अस्पष्ट आभासी आधार।

* (सी ++ केवल) एक सरणी की सदस्यता लेना जिसे "रजिस्टर" घोषित किया गया है।

* (सी ++ केवल) एक चर का पता लेना जिसे "रजिस्टर" घोषित किया गया है।

* (केवल C++) एक बेस क्लास को व्युत्पन्न क्लास के कॉपी कंस्ट्रक्टर में इनिशियलाइज़ नहीं किया जाता है।

-वचर-सब्सक्राइब
चेतावनी दें कि एक सरणी सबस्क्रिप्ट में "चार" टाइप है। यह त्रुटि का एक सामान्य कारण है, जैसे
प्रोग्रामर अक्सर भूल जाते हैं कि कुछ मशीनों पर इस प्रकार के हस्ताक्षर किए गए हैं। यह चेतावनी है
द्वारा सक्षम किया गया -दीवार.

-कमेन्ट करें
जब भी कोई टिप्पणी-प्रारंभ अनुक्रम चेतावनी दें /* में प्रकट होता है /* टिप्पणी करें, या जब भी
बैकस्लैश-न्यूलाइन a . में प्रकट होता है // टिप्पणी। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

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

-वो-सीपीपी
(सी, ऑब्जेक्टिव-सी, सी++, ऑब्जेक्टिव-सी++ और फोरट्रान केवल)

"#चेतावनी" निर्देशों द्वारा उत्सर्जित चेतावनी संदेशों को रोकें।

डबल-पदोन्नति (सी, सी++, ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
एक चेतावनी दें जब "फ्लोट" प्रकार का मान निहित रूप से "डबल" में प्रचारित किया जाता है। सीपीयू
32-बिट "एकल-सटीक" फ़्लोटिंग-पॉइंट इकाई के साथ हार्डवेयर में "फ्लोट" लागू करें,
लेकिन सॉफ्टवेयर में "डबल" का अनुकरण करें। ऐसी मशीन पर, का उपयोग करके गणना करना
सॉफ़्टवेयर के लिए आवश्यक ओवरहेड के कारण "डबल" मान बहुत अधिक महंगा है
अनुकरण।

गलती से "डबल" के साथ गणना करना आसान है क्योंकि फ्लोटिंग-पॉइंट
शाब्दिक रूप से "डबल" प्रकार के होते हैं। उदाहरण के लिए, में:

फ्लोट क्षेत्र (फ्लोट त्रिज्या)
{
वापसी 3.14159 * त्रिज्या * त्रिज्या;
}

कंपाइलर "डबल" के साथ संपूर्ण गणना करता है क्योंकि फ़्लोटिंग-पॉइंट
शाब्दिक एक "डबल" है।

-स्वरूप
-फॉर्मैट =n
"प्रिंटफ" और "स्कैनफ", आदि के लिए कॉल की जांच करें, यह सुनिश्चित करने के लिए कि तर्क दिए गए हैं
निर्दिष्ट प्रारूप स्ट्रिंग के लिए उपयुक्त प्रकार हैं, और यह कि रूपांतरण
प्रारूप स्ट्रिंग में निर्दिष्ट समझ में आता है। इसमें मानक कार्य शामिल हैं, और
प्रारूप विशेषताओं द्वारा निर्दिष्ट अन्य, "printf", "scanf", "strftime" और . में
"strfmon" (एक एक्स/ओपन एक्सटेंशन, सी मानक में नहीं) परिवार (या अन्य लक्ष्य-
विशिष्ट परिवार)। प्रारूप विशेषताओं के बिना कौन से फ़ंक्शन चेक किए गए हैं
निर्दिष्ट मानक चयनित संस्करण पर निर्भर करता है, और कार्यों की ऐसी जांच
निर्दिष्ट विशेषता के बिना अक्षम हैं -फ्रीस्टैंडिंग or -फनो-बिल्टिन.

जीएनयू libc संस्करण 2.2 द्वारा समर्थित प्रारूप सुविधाओं के खिलाफ प्रारूपों की जांच की जाती है।
इनमें सभी ISO C90 और C99 विशेषताएं शामिल हैं, साथ ही सिंगल यूनिक्स की विशेषताएं भी शामिल हैं
विशिष्टता और कुछ बीएसडी और जीएनयू एक्सटेंशन। अन्य पुस्तकालय कार्यान्वयन नहीं हो सकते हैं
इन सभी सुविधाओं का समर्थन करें; GCC उन सुविधाओं के बारे में चेतावनी का समर्थन नहीं करता जो इससे आगे जाती हैं
एक विशेष पुस्तकालय की सीमाएँ। हालांकि, यदि -वेदांतिक के साथ प्रयोग किया जाता है -स्वरूप,
प्रारूप सुविधाओं के बारे में चेतावनी दी गई है जो चयनित मानक संस्करण में नहीं हैं (लेकिन नहीं
"स्ट्रफमोन" प्रारूपों के लिए, क्योंकि वे सी मानक के किसी भी संस्करण में नहीं हैं)।

-फॉर्मैट = 1
-स्वरूप
विकल्प -स्वरूप के बराबर है -फॉर्मैट = 1, तथा -नो-प्रारूप के बराबर है
-फॉर्मैट = 0. के बाद से -स्वरूप कई के लिए अशक्त प्रारूप तर्कों की भी जाँच करता है
काम करता है, -स्वरूप इसका अर्थ यह भी है -वोननुल. इस स्तर के प्रारूप के कुछ पहलू
विकल्पों द्वारा जाँच को अक्षम किया जा सकता है: -नो-प्रारूप-शामिल-शून्य,
-नो-प्रारूप-अतिरिक्त-आर्ग्स, तथा -नो-प्रारूप-शून्य-लंबाई. -स्वरूप द्वारा सक्षम किया गया है
-दीवार.

-नो-प्रारूप-शामिल-शून्य
If -स्वरूप निर्दिष्ट है, NUL बाइट्स वाले प्रारूप स्ट्रिंग्स के बारे में चेतावनी न दें।

-नो-प्रारूप-अतिरिक्त-आर्ग्स
If -स्वरूप निर्दिष्ट किया गया है, "printf" या . के अतिरिक्त तर्कों के बारे में चेतावनी न दें
"स्कैनफ" प्रारूप समारोह। सी मानक निर्दिष्ट करता है कि ऐसे तर्क हैं
अवहेलना करना।

जहां अप्रयुक्त तर्क प्रयुक्त तर्कों के बीच स्थित होते हैं जिन्हें निर्दिष्ट किया जाता है $
संकार्य संख्या विनिर्देश, आम तौर पर चेतावनियां अभी भी दी जाती हैं, क्योंकि
कार्यान्वयन यह नहीं जान सका कि अप्रयुक्त को छोड़ने के लिए "va_arg" को किस प्रकार पास करना है
तर्क। हालांकि, "स्कैनफ" प्रारूपों के मामले में, यह विकल्प दबा देता है
चेतावनी अगर अप्रयुक्त तर्क सिंगल यूनिक्स के बाद से सभी पॉइंटर्स हैं
विशिष्टता का कहना है कि ऐसे अप्रयुक्त तर्कों की अनुमति है।

-नो-प्रारूप-शून्य-लंबाई
If -स्वरूप निर्दिष्ट है, शून्य-लंबाई वाले स्वरूपों के बारे में चेतावनी न दें। सी मानक
निर्दिष्ट करता है कि शून्य-लंबाई प्रारूपों की अनुमति है।

-फॉर्मैट = 2
सक्षम -स्वरूप साथ ही अतिरिक्त प्रारूप जांच। वर्तमान में के बराबर -स्वरूप
-Wformat-गैर-शाब्दिक -स्वरूप-सुरक्षा -Wformat-y2k.

-Wformat-गैर-शाब्दिक
If -स्वरूप निर्दिष्ट है, यह भी चेतावनी दें कि प्रारूप स्ट्रिंग एक स्ट्रिंग शाब्दिक नहीं है
और इसलिए जाँच नहीं की जा सकती, जब तक कि स्वरूप फ़ंक्शन अपने स्वरूप तर्कों को इस रूप में नहीं लेता है
एक "va_list"।

-स्वरूप-सुरक्षा
If -स्वरूप निर्दिष्ट है, यह प्रतिनिधित्व करने वाले प्रारूप कार्यों के उपयोग के बारे में भी चेतावनी देता है
संभावित सुरक्षा समस्याएं। वर्तमान में, यह "printf" को कॉल के बारे में चेतावनी देता है और
"स्कैनफ" फ़ंक्शन जहां प्रारूप स्ट्रिंग एक स्ट्रिंग अक्षर नहीं है और वहां नहीं हैं
प्रारूप तर्क, जैसा कि "प्रिंटफ (फू);" में है। यह एक सुरक्षा छेद हो सकता है यदि
प्रारूप स्ट्रिंग अविश्वसनीय इनपुट से आई है और इसमें शामिल है %n. (यह वर्तमान में एक है
क्या का सबसेट -Wformat-गैर-शाब्दिक के बारे में चेतावनी देता है, लेकिन भविष्य में चेतावनी हो सकती है
करने के लिए जोड़ा -स्वरूप-सुरक्षा जो में शामिल नहीं है -Wformat-गैर-शाब्दिक.)

-स्वरूप-हस्ताक्षर
If -स्वरूप निर्दिष्ट है, यह भी चेतावनी दें कि प्रारूप स्ट्रिंग को अहस्ताक्षरित की आवश्यकता है
तर्क और तर्क पर हस्ताक्षर किए गए हैं और इसके विपरीत।

नोट: उबंटू 8.10 और बाद के संस्करणों में यह विकल्प सी के लिए डिफ़ॉल्ट रूप से सक्षम है,
सी ++, ओबीजेसी, ओबीजेसी ++। अक्षम करने के लिए, उपयोग करें -नो-प्रारूप-सुरक्षा, या सभी प्रारूप अक्षम करें
के साथ चेतावनियाँ -फॉर्मैट = 0. प्रारूप सुरक्षा चेतावनियों को घातक बनाने के लिए, निर्दिष्ट करें
-आतंक = प्रारूप-सुरक्षा.

-Wformat-y2k
If -स्वरूप निर्दिष्ट है, "strftime" स्वरूपों के बारे में भी चेतावनी देता है जो केवल a . उत्पन्न कर सकते हैं
दो अंकों का वर्ष।

-वोननुल
गैर-शून्य मान की आवश्यकता के रूप में चिह्नित तर्कों के लिए एक शून्य सूचक पास करने के बारे में चेतावनी दें
"नॉननल" फ़ंक्शन विशेषता द्वारा।

-वोननुल में शामिल है -दीवार और -स्वरूप. इसे के साथ अक्षम किया जा सकता है -नो-नॉननल
विकल्प.

-विनिट-सेल्फ (सी, सी++, ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
गैर-आरंभिक चर के बारे में चेतावनी दें जो स्वयं के साथ प्रारंभ किए गए हैं। इसे नोट करें
विकल्प का उपयोग केवल के साथ किया जा सकता है -अप्रारंभीकृत विकल्प.

उदाहरण के लिए, GCC केवल निम्नलिखित स्निपेट में "i" के अप्रारंभीकृत होने के बारे में चेतावनी देता है:
कब -विनिट-सेल्फ निर्दिष्ट किया गया है:

इंट एफ ()
{
इंट मैं = मैं;
मैं लौटा;
}

यह चेतावनी द्वारा सक्षम की गई है -दीवार सी ++ में।

-विम्प्लिशिट-इंट (सी और उद्देश्य-सी केवल)
चेतावनी दें जब एक घोषणा एक प्रकार निर्दिष्ट नहीं करती है। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-विम्प्लिकिट-फ़ंक्शन-घोषणा (सी और उद्देश्य-सी केवल)
घोषित होने से पहले जब भी किसी फ़ंक्शन का उपयोग किया जाता है तो चेतावनी दें। C99 मोड में
(-एसटीडी = सी 99 or -एसटीडी = जीएनयू 99), यह चेतावनी डिफ़ॉल्ट रूप से सक्षम है और इसे एक में बनाया गया है
द्वारा त्रुटि -पांडित्य-त्रुटियों. यह चेतावनी द्वारा भी सक्षम की गई है -दीवार.

-विम्पलिसिट (सी और उद्देश्य-सी केवल)
के समान -विम्प्लिशिट-इंट और -विम्प्लिकिट-फ़ंक्शन-घोषणा. यह चेतावनी सक्षम है
by -दीवार.

-विग्नोर-क्वालिफायर (सी और सी++ केवल)
चेतावनी दें कि किसी फ़ंक्शन के रिटर्न प्रकार में "कॉन्स्ट" जैसे प्रकार का क्वालीफायर है। आईएसओ सी . के लिए
इस प्रकार के क्वालीफायर का कोई प्रभाव नहीं पड़ता है, क्योंकि किसी फ़ंक्शन द्वारा लौटाया गया मान एक नहीं है
मूल्य सी ++ के लिए, चेतावनी केवल स्केलर प्रकारों या "शून्य" के लिए उत्सर्जित होती है। आईएसओ सी
फ़ंक्शन परिभाषाओं पर योग्य "शून्य" रिटर्न प्रकारों को प्रतिबंधित करता है, इसलिए ऐसे रिटर्न प्रकार
इस विकल्प के बिना भी हमेशा एक चेतावनी प्राप्त करें।

यह चेतावनी द्वारा भी सक्षम की गई है -वेक्स्ट्रा.

-वमेन
चेतावनी दें कि "मुख्य" का प्रकार संदिग्ध है। "मुख्य" बाहरी के साथ एक समारोह होना चाहिए
लिंकेज, रिटर्निंग इंट, या तो शून्य तर्क, दो, या तीन तर्क
उपयुक्त प्रकार। यह चेतावनी डिफ़ॉल्ट रूप से C++ में सक्षम है और किसी भी द्वारा सक्षम है
-दीवार or -वेदांतिक.

-विस्मिंग-ब्रेसिज़
चेतावनी दें कि अगर कोई एग्रीगेट या यूनियन इनिशियलाइज़र पूरी तरह से ब्रैकेटेड नहीं है। निम्नलिखित में
उदाहरण के लिए, "ए" के लिए प्रारंभकर्ता पूरी तरह से ब्रैकेट नहीं है, लेकिन "बी" के लिए पूरी तरह से है
कोष्ठक यह चेतावनी द्वारा सक्षम की गई है -दीवार सी। में।

इंट ए [2] [2] = {0, 1, 2, 3};
इंट बी [2] [2] = { { 0, 1 }, { 2, 3 } };

यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-विस्मिंग-शामिल-डीआईआर (सी, सी++, ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि यदि उपयोगकर्ता द्वारा प्रदत्त निर्देशिका मौजूद नहीं है।

-कोष्ठक
चेतावनी दें कि अगर कुछ संदर्भों में कोष्ठक छोड़े गए हैं, जैसे कि जब कोई
एक ऐसे संदर्भ में असाइनमेंट जहां एक सत्य मूल्य अपेक्षित है, या जब ऑपरेटरों को नेस्टेड किया जाता है
जिनकी प्राथमिकता को लेकर लोग अक्सर भ्रमित रहते हैं।

यह भी चेतावनी दें कि क्या "x<=y<=z" जैसी तुलना दिखाई देती है; यह बराबर है "(x<=y ? 1 :
0) <= z", जो सामान्य गणितीय से भिन्न व्याख्या है
अंकन।

उन निर्माणों के बारे में भी चेतावनी दें जहाँ भ्रम हो सकता है कि कौन सा "if" कथन a
"अन्य" शाखा के अंतर्गत आता है। यहाँ ऐसे मामले का एक उदाहरण है:

{
यदि एक)
अगर (बी)
फू ();
अन्य
छड़ ();
}

C/C++ में, प्रत्येक "अन्य" शाखा अंतरतम संभव "if" कथन से संबंधित है, जो
इस उदाहरण में "अगर (बी)" है। यह अक्सर वह नहीं होता जिसकी प्रोग्रामर को उम्मीद होती है, जैसे
उपरोक्त उदाहरण में प्रोग्रामर द्वारा चुने गए इंडेंटेशन द्वारा सचित्र। जब वहाँ
इस भ्रम की संभावना, जीसीसी इस ध्वज के निर्दिष्ट होने पर एक चेतावनी जारी करता है।
चेतावनी को समाप्त करने के लिए, अंतरतम "if" कथन के चारों ओर स्पष्ट ब्रेसिज़ जोड़ें
कोई रास्ता नहीं है "अन्य" संलग्न "अगर" से संबंधित हो सकता है। परिणामी कोड दिखता है
इस तरह:

{
यदि एक)
{
अगर (बी)
फू ();
अन्य
छड़ ();
}
}

जीएनयू एक्सटेंशन के खतरनाक उपयोगों के लिए "?:" को छोड़े गए मध्य ऑपरेंड के साथ भी चेतावनी दें।
जब "?" में स्थिति: ऑपरेटर एक बूलियन अभिव्यक्ति है, छोड़ा गया मान है
हमेशा 1. अक्सर प्रोग्रामर उम्मीद करते हैं कि यह सशर्त के अंदर गणना की गई मान हो
इसके बजाय अभिव्यक्ति।

यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-अनुक्रम-बिंदु
उस कोड के बारे में चेतावनी दें जिसमें अनुक्रम के उल्लंघन के कारण अपरिभाषित शब्दार्थ हो सकते हैं
सी और सी ++ मानकों में बिंदु नियम।

C और C++ मानक उस क्रम को परिभाषित करते हैं जिसमें C/C++ प्रोग्राम में भाव होते हैं
के संदर्भ में मूल्यांकन किया गया अनुक्रम अंक, जो के बीच आंशिक क्रम का प्रतिनिधित्व करता है
कार्यक्रम के कुछ हिस्सों का निष्पादन: अनुक्रम बिंदु से पहले निष्पादित, और वे
इसके बाद निष्पादित। ये एक पूर्ण अभिव्यक्ति के मूल्यांकन के बाद होते हैं (एक जो
एक बड़ी अभिव्यक्ति का हिस्सा नहीं है), a . के पहले ऑपरेंड के मूल्यांकन के बाद
"&&", "||", "? :" या "," (अल्पविराम) ऑपरेटर, किसी फ़ंक्शन को कॉल करने से पहले (लेकिन बाद में
इसके तर्कों का मूल्यांकन और तथाकथित फ़ंक्शन को दर्शाने वाली अभिव्यक्ति), और में
कुछ अन्य स्थान। अनुक्रम बिंदु नियमों द्वारा व्यक्त के अलावा, आदेश
एक अभिव्यक्ति के उप-अभिव्यक्तियों के मूल्यांकन के लिए निर्दिष्ट नहीं है। ये सभी नियम
कुल आदेश के बजाय केवल आंशिक आदेश का वर्णन करें, उदाहरण के लिए, यदि दो
कार्यों को एक अभिव्यक्ति के भीतर बुलाया जाता है, उनके बीच कोई अनुक्रम बिंदु नहीं होता है,
जिस क्रम में कार्यों को बुलाया जाता है वह निर्दिष्ट नहीं है। हालांकि, मानकों
समिति ने फैसला सुनाया है कि फ़ंक्शन कॉल ओवरलैप नहीं होते हैं।

यह निर्दिष्ट नहीं है जब अनुक्रम बिंदुओं के बीच के मूल्यों में संशोधन होता है
वस्तुएं प्रभावी होती हैं। जिन प्रोग्रामों का व्यवहार इस पर निर्भर करता है उनमें अपरिभाषित व्यवहार होता है;
सी और सी ++ मानक निर्दिष्ट करते हैं कि "पिछले और अगले अनुक्रम बिंदु के बीच एक
ऑब्जेक्ट का संग्रहीत मूल्य एक के मूल्यांकन द्वारा अधिकतम एक बार संशोधित किया जाएगा
अभिव्यक्ति। इसके अलावा, पूर्व मूल्य को केवल मूल्य निर्धारित करने के लिए पढ़ा जाएगा
स्टोर किया जा सकता है।"। यदि कोई प्रोग्राम इन नियमों को तोड़ता है, तो किसी विशेष पर परिणाम
कार्यान्वयन पूरी तरह से अप्रत्याशित है।

अपरिभाषित व्यवहार वाले कोड के उदाहरण हैं "a = a++;", "a[n] = b[n++]" और "a[i++] =
i;" इस विकल्प द्वारा कुछ और जटिल मामलों का निदान नहीं किया जाता है, और यह एक दे सकता है
कभी-कभी गलत सकारात्मक परिणाम, लेकिन सामान्य तौर पर यह काफी प्रभावी पाया गया है
कार्यक्रमों में इस तरह की समस्या का पता लगाना।

मानक भ्रमित करने वाला शब्द है, इसलिए सटीक पर कुछ बहस है
सूक्ष्म मामलों में अनुक्रम बिंदु नियमों का अर्थ। चर्चाओं के लिंक
प्रस्तावित औपचारिक परिभाषाओं सहित समस्या, जीसीसी रीडिंग पेज पर पाई जा सकती है,
परhttp://gcc.gnu.org/readings.html>.

यह चेतावनी द्वारा सक्षम की गई है -दीवार सी और सी ++ के लिए।

-वनो-वापसी-स्थानीय-addr
एक चर के लिए एक सूचक (या सी ++, एक संदर्भ में) लौटने के बारे में चेतावनी न दें जो जाता है
समारोह वापस आने के बाद दायरे से बाहर।

-रिटर्न-प्रकार
चेतावनी दें कि जब भी किसी फ़ंक्शन को रिटर्न प्रकार के साथ परिभाषित किया जाता है जो "int" पर डिफ़ॉल्ट होता है। भी
किसी भी "रिटर्न" स्टेटमेंट के बारे में चेतावनी दें, जिसका रिटर्न प्रकार किसी फ़ंक्शन में कोई रिटर्न वैल्यू नहीं है
"शून्य" नहीं है (फ़ंक्शन बॉडी के अंत से गिरना रिटर्निंग माना जाता है
एक मूल्य के बिना), और एक समारोह में एक अभिव्यक्ति के साथ एक "वापसी" बयान के बारे में
जिसका वापसी प्रकार "शून्य" है।

सी ++ के लिए, रिटर्न प्रकार के बिना एक फ़ंक्शन हमेशा डायग्नोस्टिक संदेश उत्पन्न करता है, यहां तक ​​​​कि
कब -नो-रिटर्न-टाइप निर्दिष्ट किया जाता है। केवल अपवाद "मुख्य" और कार्य हैं
सिस्टम हेडर में परिभाषित।

यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-शिफ्ट-गिनती-नकारात्मक
शिफ्ट की संख्या नकारात्मक होने पर चेतावनी दें। यह चेतावनी डिफ़ॉल्ट रूप से सक्षम है।

-शिफ्ट-काउंट-ओवरफ्लो
चेतावनी अगर शिफ्ट गिनती> = प्रकार की चौड़ाई। यह चेतावनी डिफ़ॉल्ट रूप से सक्षम है।

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

-स्विच-डिफ़ॉल्ट
चेतावनी दें कि जब भी "स्विच" कथन में "डिफ़ॉल्ट" मामला न हो।

-विसिच-एनम
चेतावनी दें कि जब भी "स्विच" स्टेटमेंट में एन्यूमरेटेड टाइप का इंडेक्स होता है और "केस" का अभाव होता है
उस गणना के एक या अधिक नामित कोड के लिए। के बाहर "केस" लेबल
जब इस विकल्प का उपयोग किया जाता है तो एन्यूमरेशन रेंज चेतावनियों को भी भड़काती है। एकमात्र अंतर
के बीच -स्विच और यह विकल्प यह है कि यह विकल्प छोड़े गए के बारे में चेतावनी देता है
"डिफ़ॉल्ट" लेबल होने पर भी गणना कोड।

-स्विच-बूल
चेतावनी दें कि जब भी "स्विच" कथन में बूलियन प्रकार की अनुक्रमणिका होती है। यह संभव है कि
कंट्रोलिंग एक्सप्रेशन को किसी अन्य प्रकार से कास्ट करके इस चेतावनी को दबाएं
"बूल"। उदाहरण के लिए:

स्विच ((इंट) (ए == 4))
{
...
}

यह चेतावनी डिफ़ॉल्ट रूप से C और C++ प्रोग्राम के लिए सक्षम है।

-Wsync-नंद (सी और सी++ केवल)
चेतावनी दें जब "__sync_fetch_and_nand" और "__sync_nand_and_fetch" बिल्ट-इन फ़ंक्शन हों
उपयोग किया गया। इन कार्यों ने जीसीसी 4.4 में शब्दार्थ को बदल दिया।

-वट्रिग्राफ
चेतावनी दें कि यदि कोई ट्रिग्राफ का सामना करना पड़ता है जो कार्यक्रम के अर्थ को बदल सकता है
(टिप्पणियों के भीतर ट्रिग्राफ के बारे में चेतावनी नहीं दी जाती है)। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-अप्रयुक्त-लेकिन-सेट-पैरामीटर
चेतावनी दें कि जब भी कोई फ़ंक्शन पैरामीटर असाइन किया जाता है, लेकिन अन्यथा अप्रयुक्त (इसके अलावा .)
इसकी घोषणा)।

इस चेतावनी को दबाने के लिए "अप्रयुक्त" विशेषता का उपयोग करें।

यह चेतावनी द्वारा भी सक्षम की गई है -वुनयूज्ड साथ साथ -वेक्स्ट्रा.

-अप्रयुक्त-लेकिन-सेट-चर
जब भी कोई स्थानीय चर असाइन किया जाता है, तो चेतावनी दें, लेकिन अन्यथा अप्रयुक्त (इसके अलावा)
घोषणा)। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

इस चेतावनी को दबाने के लिए "अप्रयुक्त" विशेषता का उपयोग करें।

यह चेतावनी द्वारा भी सक्षम की गई है -वुनयूज्ड, जो द्वारा सक्षम किया गया है -दीवार.

-वुनयूज्ड-फंक्शन
जब भी कोई स्थिर कार्य घोषित किया जाता है, लेकिन परिभाषित नहीं किया जाता है या एक गैर-इनलाइन स्थैतिक चेतावनी दी जाती है
फ़ंक्शन अप्रयुक्त है। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-वुनयूज्ड-लेबल
जब भी कोई लेबल घोषित किया जाता है लेकिन उपयोग नहीं किया जाता है तो चेतावनी दें। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

इस चेतावनी को दबाने के लिए "अप्रयुक्त" विशेषता का उपयोग करें।

-वुनयूज्ड-लोकल-टाइपडिफ्स (सी, ऑब्जेक्टिव-सी, सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि जब किसी फ़ंक्शन में स्थानीय रूप से परिभाषित टाइपिफ़ का उपयोग नहीं किया जाता है। यह चेतावनी है
द्वारा सक्षम किया गया -दीवार.

-वुनयूज्ड-पैरामीटर
चेतावनी दें कि जब भी कोई फ़ंक्शन पैरामीटर अपनी घोषणा के अलावा अप्रयुक्त होता है।

इस चेतावनी को दबाने के लिए "अप्रयुक्त" विशेषता का उपयोग करें।

-अप्रयुक्त-अप्रयुक्त-परिणाम
चेतावनी न दें यदि "warn_unused_result" विशेषता के साथ चिह्नित फ़ंक्शन का कॉलर करता है
इसके वापसी मूल्य का उपयोग न करें। डिफ़ॉल्ट है -वुनयूज्ड-परिणाम.

-अप्रयुक्त-चर
चेतावनी दें कि जब भी एक स्थानीय चर या गैर-स्थिर स्थिर चर का उपयोग नहीं किया जाता है
इसकी घोषणा। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

इस चेतावनी को दबाने के लिए "अप्रयुक्त" विशेषता का उपयोग करें।

-अप्रयुक्त-मूल्य
चेतावनी दें कि जब भी कोई कथन ऐसे परिणाम की गणना करता है जिसका स्पष्ट रूप से उपयोग नहीं किया गया है। दबाना
इस चेतावनी ने अप्रयुक्त अभिव्यक्ति को "शून्य" में डाल दिया। इसमें एक अभिव्यक्ति शामिल है-
अल्पविराम अभिव्यक्ति का कथन या बाईं ओर जिसका कोई साइड इफेक्ट नहीं है।
उदाहरण के लिए, "x[i,j]" जैसी अभिव्यक्ति चेतावनी का कारण बनती है, जबकि "x[(void)i,j]"
नहीं करता।

यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-वुनयूज्ड
उपर्युक्त सभी -वुनयूज्ड विकल्प संयुक्त।

अप्रयुक्त फ़ंक्शन पैरामीटर के बारे में चेतावनी प्राप्त करने के लिए, आपको या तो निर्दिष्ट करना होगा
-वेक्स्ट्रा -वुनयूज्ड (ध्यान दें कि -दीवार का तात्पर्य -वुनयूज्ड), या अलग से निर्दिष्ट करें
-वुनयूज्ड-पैरामीटर.

-अप्रारंभीकृत
चेतावनी दें कि यदि स्वचालित चर का उपयोग पहले आरंभ किए बिना किया जाता है या यदि कोई चर है
एक "setjmp" कॉल द्वारा पकड़ा जा सकता है। सी ++ में, चेतावनी दें कि एक गैर स्थैतिक संदर्भ या गैर-
स्थिर "कॉन्स्ट" सदस्य बिना कन्स्ट्रक्टर के कक्षा में दिखाई देता है।

यदि आप उस कोड के बारे में चेतावनी देना चाहते हैं जो चर के प्रारंभिक मान का उपयोग करता है
अपने स्वयं के प्रारंभकर्ता, का उपयोग करें -विनिट-सेल्फ विकल्प.

ये चेतावनियां संरचना के अलग-अलग अप्रारंभीकृत या क्लोबर्ड तत्वों के लिए होती हैं,
संघ या सरणी चर के साथ-साथ उन चरों के लिए जो अप्रारंभीकृत या क्लॉबर्ड हैं
पूरा का पूरा। वे चर या "अस्थिर" घोषित तत्वों के लिए नहीं होते हैं। चूंकि
ये चेतावनियां अनुकूलन पर निर्भर करती हैं, सटीक चर या तत्व जिसके लिए वहां
क्या चेतावनियां सटीक अनुकूलन विकल्पों और उपयोग किए गए जीसीसी के संस्करण पर निर्भर करती हैं।

ध्यान दें कि एक चर के बारे में कोई चेतावनी नहीं हो सकती है जिसका उपयोग केवल गणना करने के लिए किया जाता है a
वह मान जो स्वयं कभी उपयोग नहीं किया जाता है, क्योंकि ऐसी गणनाओं को डेटा प्रवाह द्वारा हटाया जा सकता है
चेतावनियों के मुद्रित होने से पहले विश्लेषण।

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

{
इंट x;
स्विच (वाई)
{
केस 1: एक्स = 1;
तोड़;
केस 2: एक्स = 4;
तोड़;
केस 3: एक्स = 5;
}
फू (एक्स);
}

यदि "y" का मान हमेशा 1, 2 या 3 होता है, तो "x" को हमेशा इनिशियलाइज़ किया जाता है, लेकिन GCC
यह नहीं जानता। चेतावनी को दबाने के लिए, आपको के साथ एक डिफ़ॉल्ट मामला प्रदान करने की आवश्यकता है
जोर(0) या समान कोड।

यह विकल्प तब भी चेतावनी देता है जब एक गैर-वाष्पशील स्वचालित चर को a . द्वारा बदला जा सकता है
"longjmp" पर कॉल करें। ये चेतावनियाँ भी केवल ऑप्टिमाइज़ करने में ही संभव हैं
संकलन।

संकलक केवल "setjmp" को कॉल देखता है। यह नहीं जान सकता कि "longjmp" कहाँ होगा
बुलाया; वास्तव में, एक सिग्नल हैंडलर इसे कोड के किसी भी बिंदु पर कॉल कर सकता है। के तौर पर
परिणाम, आपको वास्तव में कोई समस्या न होने पर भी चेतावनी मिल सकती है क्योंकि "longjmp"
वास्तव में उस स्थान पर नहीं बुलाया जा सकता है जिससे समस्या हो।

यदि आप अपने द्वारा उपयोग किए जाने वाले सभी कार्यों की घोषणा करते हैं तो कुछ नकली चेतावनियों से बचा जा सकता है
कभी भी "नोरेटर्न" के रूप में वापस न आएं।

यह चेतावनी द्वारा सक्षम की गई है -दीवार or -वेक्स्ट्रा.

-अज्ञात-प्राग्मास
चेतावनी जब एक "#pragma" निर्देश का सामना करना पड़ता है जिसे जीसीसी द्वारा नहीं समझा जाता है। अगर यह
कमांड-लाइन विकल्प का उपयोग किया जाता है, सिस्टम में अज्ञात प्रगति के लिए चेतावनी भी जारी की जाती है
शीर्षलेख फ़ाइलें। यह मामला नहीं है अगर चेतावनियां केवल द्वारा सक्षम की जाती हैं -दीवार
कमांड लाइन विकल्प।

-नहीं-प्रगमास
प्राग्मास के दुरुपयोग के बारे में चेतावनी न दें, जैसे कि गलत पैरामीटर, अमान्य सिंटैक्स, या
प्राग्मास के बीच संघर्ष। यह सभी देखें -अज्ञात-प्राग्मास.

-स्ट्रिक्ट-अलियासिंग
यह विकल्प तभी सक्रिय होता है जब -फस्ट्रिक्ट-अलियासिंग सक्रिय है। यह कोड के बारे में चेतावनी देता है कि
संकलक अनुकूलन के लिए उपयोग कर रहे सख्त एलियासिंग नियमों को तोड़ सकता है।
चेतावनी सभी मामलों को नहीं पकड़ती है, लेकिन अधिक सामान्य को पकड़ने का प्रयास करती है
नुकसान इसमें शामिल है -दीवार। इसके बराबर है -स्ट्रिक्ट-अलियासिंग=3

-स्ट्रिक्ट-अलियासिंग = n
यह विकल्प तभी सक्रिय होता है जब -फस्ट्रिक्ट-अलियासिंग सक्रिय है। यह कोड के बारे में चेतावनी देता है कि
संकलक अनुकूलन के लिए उपयोग कर रहे सख्त एलियासिंग नियमों को तोड़ सकता है।
उच्च स्तर उच्च सटीकता (कम झूठी सकारात्मक) के अनुरूप हैं। उच्च स्तर
अधिक प्रयास के अनुरूप भी, रास्ते के समान -O काम करता है। -स्ट्रिक्ट-अलियासिंग is
के बराबर -स्ट्रिक्ट-अलियासिंग=3.

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

स्तर 2: आक्रामक, तेज, बहुत सटीक नहीं। अभी भी कई झूठे सकारात्मक हो सकते हैं (नहीं
हालांकि स्तर 1 जितना हो सकता है), और कुछ झूठे नकारात्मक (लेकिन संभवतः स्तर 1 से अधिक)।
स्तर 1 के विपरीत, यह केवल तभी चेतावनी देता है जब कोई पता लिया जाता है। अपूर्ण प्रकारों के बारे में चेतावनी देता है।
फ्रंट एंड में ही चलता है।

स्तर 3 (के लिए डिफ़ॉल्ट -स्ट्रिक्ट-अलियासिंग): बहुत कम झूठी सकारात्मक और कुछ होनी चाहिए
झूठे नकारात्मक। अनुकूलन सक्षम होने पर स्तर 1 या 2 से थोड़ा धीमा।
सामने के छोर में सामान्य पन + डीरेफरेंस पैटर्न का ख्याल रखता है:
"*(int*)&some_float"। यदि अनुकूलन सक्षम है, तो यह बैक एंड में भी चलता है, जहां
यह फ्लो-सेंसिटिव पॉइंट-टू-सूचना का उपयोग करते हुए कई स्टेटमेंट मामलों से संबंधित है।
केवल तभी चेतावनी देता है जब परिवर्तित सूचक को संदर्भित किया जाता है। अपूर्ण के बारे में चेतावनी नहीं देता
प्रकार के।

-स्ट्रिक्ट-ओवरफ्लो
-स्ट्रिक्ट-ओवरफ्लो =n
यह विकल्प तभी सक्रिय होता है जब -फस्ट्रिक्ट-ओवरफ्लो सक्रिय है। यह मामलों के बारे में चेतावनी देता है
जहां संकलक इस धारणा के आधार पर अनुकूलन करता है कि हस्ताक्षरित अतिप्रवाह नहीं करता है
घटित होना। ध्यान दें कि यह उन सभी मामलों के बारे में चेतावनी नहीं देता है जहां कोड अतिप्रवाह हो सकता है: it
केवल उन मामलों के बारे में चेतावनी देता है जहां संकलक कुछ अनुकूलन लागू करता है। इस प्रकार यह
चेतावनी अनुकूलन स्तर पर निर्भर करती है।

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

-स्ट्रिक्ट-ओवरफ्लो = 1
उन मामलों के बारे में चेतावनी दें जो संदिग्ध और बचने में आसान दोनों हैं। उदाहरण के लिए, के साथ
-फस्ट्रिक्ट-ओवरफ्लो, संकलक "x + 1> x" को 1 तक सरल करता है। का यह स्तर
-स्ट्रिक्ट-ओवरफ्लो द्वारा सक्षम किया गया है -दीवार; उच्च स्तर नहीं हैं, और होना चाहिए
स्पष्ट रूप से अनुरोध किया।

-स्ट्रिक्ट-ओवरफ्लो = 2
अन्य मामलों के बारे में भी चेतावनी दें जहां एक तुलना को स्थिर करने के लिए सरल किया जाता है। के लिये
उदाहरण: "एब्स (एक्स)> = 0"। इसे तभी सरल बनाया जा सकता है जब -फस्ट्रिक्ट-ओवरफ्लो में है
प्रभाव, क्योंकि "abs (INT_MIN)" "INT_MIN" से अधिक हो जाता है, जो शून्य से कम है।
-स्ट्रिक्ट-ओवरफ्लो (बिना स्तर के) समान है -स्ट्रिक्ट-ओवरफ्लो = 2.

-स्ट्रिक्ट-ओवरफ्लो = 3
अन्य मामलों के बारे में भी चेतावनी दें जहां तुलना को सरल बनाया गया है। उदाहरण के लिए: "एक्स + 1
> 1" को "x> 0" में सरलीकृत किया गया है।

-स्ट्रिक्ट-ओवरफ्लो = 4
अन्य सरलीकरणों के बारे में भी चेतावनी दें जो उपरोक्त मामलों में शामिल नहीं हैं। के लिये
उदाहरण: "(x * 10)/5" को "x * 2" में सरलीकृत किया गया है।

-स्ट्रिक्ट-ओवरफ्लो = 5
उन मामलों के बारे में भी चेतावनी दें जहां संकलक स्थिरांक के परिमाण को कम करता है
तुलना में शामिल है। उदाहरण के लिए: "x + 2> y" को "x + 1>= y" के लिए सरल बनाया गया है।
यह केवल उच्चतम चेतावनी स्तर पर सूचित किया जाता है क्योंकि यह सरलीकरण
कई तुलनाओं पर लागू होता है, इसलिए यह चेतावनी स्तर बहुत बड़ी संख्या देता है
झूठी सकारात्मक।

-सुझाव-विशेषता =[शुद्ध|const|वापसी नहीं|प्रारूप]
ऐसे मामलों के लिए चेतावनी दें जिनमें विशेषता जोड़ना फ़ायदेमंद हो सकता है. वर्तमान में गुण
समर्थित नीचे सूचीबद्ध हैं।

-सुझाव-विशेषता = शुद्ध
-Wsuggest-विशेषता=const
-सुझाव-विशेषता=नोरिटर्न
उन कार्यों के बारे में चेतावनी दें जो "शुद्ध", "कॉन्स्ट" या . विशेषताओं के लिए उम्मीदवार हो सकते हैं
"वापसी नहीं"। संकलक केवल अन्य संकलन में दिखाई देने वाले कार्यों के लिए चेतावनी देता है
इकाइयाँ या ("शुद्ध" और "स्थिरांक" के मामले में) यदि यह साबित नहीं कर सकता है कि फ़ंक्शन
सामान्य रूप से लौटता है। एक फ़ंक्शन सामान्य रूप से वापस आता है यदि इसमें अनंत नहीं होता है
लूप या असामान्य रूप से फेंकना, "निरस्त करना" या फँसाना। यह विश्लेषण
विकल्प की आवश्यकता है -फिपा-शुद्ध-कॉन्स्ट, जो डिफ़ॉल्ट रूप से सक्षम है -O और उच्चा।
उच्च अनुकूलन स्तर विश्लेषण की सटीकता में सुधार करते हैं।

-सुझाव-विशेषता = प्रारूप
-विस्मिंग-प्रारूप-विशेषता
फ़ंक्शन पॉइंटर्स के बारे में चेतावनी दें जो "प्रारूप" विशेषताओं के लिए उम्मीदवार हो सकते हैं।
ध्यान दें कि ये केवल संभावित उम्मीदवार हैं, निरपेक्ष नहीं। जीसीसी का अनुमान है कि
"प्रारूप" विशेषताओं वाले फ़ंक्शन पॉइंटर्स जो असाइनमेंट में उपयोग किए जाते हैं,
इनिशियलाइज़ेशन, पैरामीटर पासिंग या रिटर्न स्टेटमेंट में संबंधित होना चाहिए
परिणामी प्रकार में "प्रारूप" विशेषता। यानी के बाईं ओर
असाइनमेंट या इनिशियलाइज़ेशन, पैरामीटर वैरिएबल का प्रकार, या रिटर्न
क्रमशः युक्त फ़ंक्शन के प्रकार में "प्रारूप" विशेषता भी होनी चाहिए
चेतावनी से बचने के लिए।

GCC फ़ंक्शन परिभाषाओं के बारे में भी चेतावनी देता है जो "प्रारूप" के लिए उम्मीदवार हो सकते हैं
गुण। फिर, ये केवल संभावित उम्मीदवार हैं। जीसीसी का अनुमान है कि "प्रारूप"
विशेषताएँ किसी भी फ़ंक्शन के लिए उपयुक्त हो सकती हैं जो किसी फ़ंक्शन को कॉल करती है जैसे
"vprintf" या "vscanf", लेकिन यह हमेशा मामला नहीं हो सकता है, और कुछ कार्य
जिसके लिए "प्रारूप" विशेषताओं का पता नहीं लगाया जा सकता है।

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

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

-सुझाव-ओवरराइड
उन वर्चुअल फ़ंक्शंस को ओवरराइड करने के बारे में चेतावनी दें जो ओवरराइड कीवर्ड से चिह्नित नहीं हैं।

-वार-सीमा
-वार-सीमा =n
यह विकल्प तभी सक्रिय होता है जब -फट्री-वीआरपी सक्रिय है (के लिए डिफ़ॉल्ट -ओ३ और ऊपर)। यह
उन सरणियों की सदस्यता के बारे में चेतावनी देता है जो हमेशा सीमा से बाहर होती हैं। यह चेतावनी है
द्वारा सक्षम किया गया -दीवार.

-वार-सीमा = 1
यह चेतावनी का स्तर है -वार-सीमा और द्वारा सक्षम किया गया है -दीवार; उच्च स्तर
नहीं हैं, और स्पष्ट रूप से अनुरोध किया जाना चाहिए।

-वार-सीमा = 2
यह चेतावनी स्तर अंत में सरणियों के लिए सीमा से बाहर पहुंच के बारे में भी चेतावनी देता है
एक संरचना और पॉइंटर्स के माध्यम से उपयोग की जाने वाली सरणी के लिए। यह चेतावनी स्तर दे सकता है a
बड़ी संख्या में झूठी सकारात्मक और डिफ़ॉल्ट रूप से निष्क्रिय है।

-वबूल-तुलना
से भिन्न पूर्णांक मान की तुलना में बूलियन व्यंजक के बारे में चेतावनी दें
"सही गलत"। उदाहरण के लिए, निम्न तुलना हमेशा झूठी होती है:

इंट एन = 5;
...
अगर ((एन> 1) == 2) {...}

यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-नो-डिस्कार्ड-क्वालिफायर (सी और उद्देश्य-सी केवल)
अगर पॉइंटर्स पर टाइप क्वालिफायर को खारिज किया जा रहा है तो चेतावनी न दें। आमतौर पर,
कंपाइलर चेतावनी देता है कि यदि "कॉन्स्ट चार *" वैरिएबल किसी फ़ंक्शन को पास किया जाता है जो "char ." लेता है
*" पैरामीटर। इस विकल्प का उपयोग ऐसी चेतावनी को दबाने के लिए किया जा सकता है।

-नहीं-त्याग-सरणी-क्वालिफायर (सी और उद्देश्य-सी केवल)
यदि सूचक लक्ष्य वाले सरणियों पर टाइप क्वालिफायर हैं तो चेतावनी न दें
बाहर किया हुआ। आम तौर पर, कंपाइलर चेतावनी देता है कि "कॉन्स्ट इंट (*) []" वैरिएबल को पास किया जाता है
एक फ़ंक्शन जो "int (*)[]" पैरामीटर लेता है। इस विकल्प को दबाने के लिए इस्तेमाल किया जा सकता है
ऐसी चेतावनी।

-असंगत-सूचक-प्रकार (सी और उद्देश्य-सी केवल)
असंगत प्रकार वाले पॉइंटर्स के बीच रूपांतरण होने पर चेतावनी न दें।
यह चेतावनी उन मामलों के लिए है जो इसमें शामिल नहीं हैं -नो-सूचक-चिह्न, जो सूचक के लिए चेतावनी देता है
तर्क पारित करना या अलग-अलग हस्ताक्षर के साथ असाइनमेंट।

-अनो-इंट-रूपांतरण (सी और उद्देश्य-सी केवल)
सूचक से असंगत पूर्णांक और पूर्णांक रूपांतरणों के सूचक के बारे में चेतावनी न दें।
यह चेतावनी निहित रूपांतरणों के बारे में है; स्पष्ट रूपांतरणों के लिए चेतावनियां
-नो-इंट-टू-पॉइंटर-कास्ट और -नो-पॉइंटर-टू-इंट-कास्ट उपयोग किया जा सकता है।

-वनो-डिव-बाय-जीरो
संकलन-समय पूर्णांक विभाजन के बारे में शून्य से चेतावनी न दें। फ़्लोटिंग-पॉइंट डिवीजन द्वारा
शून्य के बारे में चेतावनी नहीं दी जाती है, क्योंकि यह अनंत प्राप्त करने का एक वैध तरीका हो सकता है और
NaNs

-डब्ल्यूसिस्टम-हेडर
सिस्टम हेडर फाइलों में पाए गए निर्माणों के लिए चेतावनी संदेश प्रिंट करें। से चेतावनियाँ
सिस्टम हेडर आमतौर पर इस धारणा पर दबाए जाते हैं कि वे आमतौर पर नहीं करते हैं
वास्तविक समस्याओं को इंगित करता है और केवल संकलक आउटपुट को पढ़ने के लिए कठिन बना देगा। का उपयोग करते हुए
यह कमांड-लाइन विकल्प जीसीसी को सिस्टम हेडर से चेतावनियां उत्सर्जित करने के लिए कहता है जैसे कि वे
उपयोगकर्ता कोड में हुआ। हालाँकि, ध्यान दें कि उपयोग करना -दीवार इस विकल्प के साथ
कर देता है नहीं सिस्टम हेडर में अज्ञात प्रागमा के बारे में चेतावनी दें --- उसके लिए, -अज्ञात-प्राग्मास
भी इस्तेमाल किया जाना चाहिए।

-ट्रैम्पोलिन्स
नेस्टेड कार्यों के लिए पॉइंटर्स के लिए उत्पन्न ट्रैम्पोलिन के बारे में चेतावनी दें। एक ट्रैम्पोलिन है a
डेटा या कोड का छोटा टुकड़ा जो स्टैक पर रन टाइम पर बनाया जाता है जब पता
नेस्टेड फ़ंक्शन का लिया जाता है, और नेस्टेड फ़ंक्शन को अप्रत्यक्ष रूप से कॉल करने के लिए उपयोग किया जाता है।
कुछ लक्ष्यों के लिए, यह केवल डेटा से बना होता है और इस प्रकार किसी विशेष उपचार की आवश्यकता नहीं होती है।
लेकिन, अधिकांश लक्ष्यों के लिए, यह कोड से बना होता है और इस प्रकार स्टैक बनाने की आवश्यकता होती है
कार्यक्रम को ठीक से काम करने के लिए निष्पादन योग्य।

-फ्लोट-बराबर
चेतावनी दें कि समानता तुलनाओं में फ़्लोटिंग-पॉइंट मानों का उपयोग किया जाता है।

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

-पारंपरिक (सी और उद्देश्य-सी केवल)
पारंपरिक और आईएसओ सी में अलग व्यवहार करने वाले कुछ निर्माणों के बारे में चेतावनी दें। इसके अलावा
आईएसओ सी निर्माणों के बारे में चेतावनी दें जिनके पास कोई पारंपरिक सी समकक्ष नहीं है, और/या समस्याग्रस्त
निर्माण से बचा जाना चाहिए।

* मैक्रो पैरामीटर जो मैक्रो बॉडी में स्ट्रिंग अक्षर के भीतर दिखाई देते हैं। में
पारंपरिक सी मैक्रो प्रतिस्थापन स्ट्रिंग अक्षर के भीतर होता है, लेकिन आईएसओ सी में
ऐसा नहीं होता।

* पारंपरिक सी में, कुछ प्रीप्रोसेसर निर्देश मौजूद नहीं थे। परंपरागत
प्रीप्रोसेसरों ने केवल एक लाइन को एक निर्देश माना है यदि # कॉलम में दिखाई दिया
1 लाइन पर। इसलिए -पारंपरिक निर्देशों के बारे में चेतावनी देता है कि पारंपरिक सी
समझता है लेकिन अनदेखा करता है क्योंकि # पर पहले वर्ण के रूप में प्रकट नहीं होता है
रेखा। यह यह भी सुझाव देता है कि आप "#pragma" जैसे निर्देशों को छिपाते हैं जिन्हें समझ में नहीं आता
पारंपरिक सी उन्हें इंडेंट करके। कुछ पारंपरिक कार्यान्वयन नहीं करते हैं
"#elif" को पहचानें, इसलिए यह विकल्प इसे पूरी तरह से टालने का सुझाव देता है।

* एक फ़ंक्शन जैसा मैक्रो जो बिना तर्क के प्रकट होता है।

* यूनरी प्लस ऑपरेटर।

* U पूर्णांक स्थिरांक प्रत्यय, या F or L फ़्लोटिंग-पॉइंट निरंतर प्रत्यय।
(पारंपरिक सी समर्थन करता है L पूर्णांक स्थिरांक पर प्रत्यय।) ध्यान दें, ये
अधिकांश आधुनिक प्रणालियों के सिस्टम हेडर में परिभाषित मैक्रोज़ में प्रत्यय दिखाई देते हैं,
उदाहरण के लिए _मिन/_मैक्स मैक्रोज़ " ". उपयोगकर्ता कोड में इन मैक्रो का उपयोग हो सकता है
आम तौर पर नकली चेतावनियां होती हैं, हालांकि जीसीसी के एकीकृत प्रीप्रोसेसर में है
इन मामलों में चेतावनी से बचने के लिए पर्याप्त संदर्भ।

* एक फ़ंक्शन को एक ब्लॉक में बाहरी घोषित किया जाता है और फिर समाप्त होने के बाद उपयोग किया जाता है
ब्लॉक।

* एक "स्विच" स्टेटमेंट में "लॉन्ग" टाइप का ऑपरेंड होता है।

* एक गैर-"स्थैतिक" फ़ंक्शन घोषणा "स्थैतिक" का अनुसरण करती है। यह निर्माण नहीं है
कुछ पारंपरिक सी कंपाइलरों द्वारा स्वीकार किया गया।

* एक पूर्णांक स्थिरांक के आईएसओ प्रकार की इसकी चौड़ाई या हस्ताक्षर से भिन्न होता है
पारंपरिक प्रकार। यह चेतावनी केवल तभी जारी की जाती है जब स्थिरांक का आधार दस हो।
यानी हेक्साडेसिमल या ऑक्टल मान, जो आमतौर पर बिट पैटर्न का प्रतिनिधित्व करते हैं, नहीं हैं
के बारे में चेतावनी दी।

* आईएसओ स्ट्रिंग संयोजन के उपयोग का पता चला है।

* स्वचालित समुच्चय का प्रारंभ।

* पहचानकर्ता लेबल के साथ विरोध करता है। पारंपरिक सी के लिए एक अलग नाम स्थान का अभाव है
लेबल।

* यूनियनों की शुरुआत। यदि प्रारंभकर्ता शून्य है, तो चेतावनी छोड़ी जाती है।
यह इस धारणा के तहत किया जाता है कि उपयोगकर्ता कोड में शून्य प्रारंभकर्ता दिखाई देता है
लापता प्रारंभकर्ता चेतावनियों से बचने के लिए उदाहरण के लिए "__STDC__" पर वातानुकूलित और निर्भर करता है
पारंपरिक सी मामले में डिफ़ॉल्ट प्रारंभिक शून्य।

* निश्चित/अस्थायी-बिंदु मानों के बीच प्रोटोटाइप द्वारा रूपांतरण और इसके विपरीत। NS
पारंपरिक सी के साथ संकलन करते समय इन प्रोटोटाइपों की अनुपस्थिति गंभीर होती है
समस्या। यह संभावित रूपांतरण चेतावनियों का एक सबसेट है; पूरे सेट के लिए
उपयोग -Wपारंपरिक-रूपांतरण.

* आईएसओ सी शैली समारोह परिभाषाओं का प्रयोग करें। यह चेतावनी जानबूझकर है नहीं निर्गत
प्रोटोटाइप घोषणाओं या विविध कार्यों के लिए क्योंकि ये आईएसओ सी विशेषताएं हैं
लिबर्टी के पारंपरिक सी संगतता मैक्रोज़ का उपयोग करते समय आपके कोड में दिखाई देते हैं,
"परम" और "VPARAMS"। नेस्टेड कार्यों के लिए इस चेतावनी को भी दरकिनार कर दिया गया है
क्योंकि वह सुविधा पहले से ही एक GCC एक्सटेंशन है और इस प्रकार से प्रासंगिक नहीं है
पारंपरिक सी संगतता।

-Wपारंपरिक-रूपांतरण (सी और उद्देश्य-सी केवल)
चेतावनी दें कि यदि कोई प्रोटोटाइप एक प्रकार के रूपांतरण का कारण बनता है जो कि जो होगा उससे अलग है
एक प्रोटोटाइप की अनुपस्थिति में एक ही तर्क के लिए। इसमें के रूपांतरण शामिल हैं
फ़्लोटिंग के लिए निश्चित बिंदु और इसके विपरीत, और चौड़ाई बदलने वाले रूपांतरण या
एक निश्चित-बिंदु तर्क की हस्ताक्षरता, जब तक कि डिफ़ॉल्ट पदोन्नति के समान न हो।

-विघोषणा-बाद-बयान (सी और उद्देश्य-सी केवल)
ब्लॉक में स्टेटमेंट के बाद डिक्लेरेशन मिलने पर चेतावनी दें। यह निर्माण, ज्ञात
सी ++ से, आईएसओ सी 99 के साथ पेश किया गया था और डिफ़ॉल्ट रूप से जीसीसी में इसकी अनुमति है। यह नहीं
आईएसओ C90 द्वारा समर्थित।

-वुंडेफ
चेतावनी दें कि एक अपरिभाषित पहचानकर्ता का मूल्यांकन "#if" निर्देश में किया जाता है।

-Wno-endif-लेबल
जब भी "#else" या "#endif" के बाद टेक्स्ट आता है तो चेतावनी न दें।

-छाया
चेतावनी दें कि जब भी कोई स्थानीय चर या प्रकार की घोषणा किसी अन्य चर को छाया देती है,
पैरामीटर, प्रकार, वर्ग सदस्य (सी ++ में), या आवृत्ति चर (उद्देश्य-सी में) या
जब भी कोई अंतर्निहित फ़ंक्शन छायांकित होता है। ध्यान दें कि C++ में, कंपाइलर चेतावनी देता है कि क्या a
स्थानीय चर एक स्पष्ट टाइपपीफ छाया करता है, लेकिन अगर यह एक संरचना/वर्ग/एनम छाया नहीं करता है।

-वनो-छाया-इवर (केवल उद्देश्य-सी)
जब भी कोई स्थानीय चर किसी ऑब्जेक्टिव-सी . में एक आवृत्ति चर को छाया देता है तो चेतावनी न दें
विधि.

-बड़ा-से =लेन
जब भी से बड़ी वस्तु की चेतावनी दें लेन बाइट्स परिभाषित किया गया है।

-वफ्रेम-बड़ा-से =लेन
चेतावनी दें कि फ़ंक्शन फ़्रेम का आकार इससे बड़ा है लेन बाइट्स। गणना की गई
यह निर्धारित करने के लिए कि स्टैक फ्रेम आकार अनुमानित है और रूढ़िवादी नहीं है। वास्तविक
आवश्यकताएं कुछ हद तक अधिक हो सकती हैं लेन भले ही आपको चेतावनी न मिले। में
इसके अलावा, "एलोका", चर-लंबाई वाले सरणियों, या संबंधित के माध्यम से आवंटित कोई भी स्थान
कंस्ट्रक्शन को कंपाइलर द्वारा शामिल नहीं किया जाता है, जब यह निर्धारित किया जाता है कि a जारी करना है या नहीं
चेतावनी।

-नो-फ्री-नॉनहीप-ऑब्जेक्ट
उस वस्तु को मुक्त करने का प्रयास करते समय चेतावनी न दें जिसे ढेर पर आवंटित नहीं किया गया था।

-स्टैक-उपयोग =लेन
चेतावनी दें कि क्या किसी फ़ंक्शन का स्टैक उपयोग इससे बड़ा हो सकता है लेन बाइट्स। गणना
यह निर्धारित करने के लिए किया जाता है कि स्टैक का उपयोग रूढ़िवादी है। "आलोका" के माध्यम से आवंटित कोई भी स्थान,
चर-लंबाई सरणियों, या संबंधित निर्माणों को संकलक द्वारा शामिल किया जाता है जब
यह निर्धारित करना कि चेतावनी जारी करनी है या नहीं।

संदेश के आउटपुट को ध्यान में रखते हुए है -फस्टैक-उपयोग.

* यदि स्टैक का उपयोग पूरी तरह से स्थिर है लेकिन निर्दिष्ट राशि से अधिक है, तो यह है:

चेतावनी: स्टैक का उपयोग 1120 बाइट्स है

* यदि स्टैक का उपयोग (आंशिक रूप से) गतिशील लेकिन बाध्य है, तो यह है:

चेतावनी: स्टैक का उपयोग 1648 बाइट्स हो सकता है

* यदि स्टैक का उपयोग (आंशिक रूप से) गतिशील है और बाध्य नहीं है, तो यह है:

चेतावनी: ढेर का उपयोग असीमित हो सकता है

-वुनसेफ-लूप-ऑप्टिमाइज़ेशन
चेतावनी दें कि यदि लूप को अनुकूलित नहीं किया जा सकता है क्योंकि संकलक कुछ भी ग्रहण नहीं कर सकता है
लूप इंडेक्स की सीमा। साथ में -फनसेफ-लूप-ऑप्टिमाइज़ेशन चेतावनी अगर संकलक
ऐसी धारणा बनाता है।

-नो-पेडेंटिक-एमएस-फॉर्मेट (केवल MinGW लक्ष्य)
जब के साथ संयोजन में उपयोग किया जाता है -स्वरूप और पांडित्य जीएनयू एक्सटेंशन के बिना, यह
विकल्प गैर-आईएसओ "प्रिंटफ" / "स्कैनफ" प्रारूप चौड़ाई विनिर्देशों के बारे में चेतावनियों को अक्षम करता है
"I32", "I64", और "I" विंडोज़ लक्ष्यों पर उपयोग किए जाते हैं, जो एमएस रनटाइम पर निर्भर करते हैं।

-पॉइंटर-अरिथ
किसी फ़ंक्शन प्रकार या "शून्य" के "आकार" पर निर्भर होने वाली किसी भी चीज़ के बारे में चेतावनी दें। जीएनयू सी
"शून्य *" के साथ गणना में सुविधा के लिए इन प्रकारों को 1 का आकार प्रदान करता है
कार्यों के लिए संकेत और संकेत। सी ++ में, एक अंकगणितीय ऑपरेशन होने पर भी चेतावनी दें
"नल" शामिल है। यह चेतावनी द्वारा भी सक्षम की गई है -वेदांतिक.

-Wtype-सीमा
चेतावनी दें कि तुलना हमेशा सही होती है या सीमित सीमा के कारण हमेशा गलत होती है
डेटा प्रकार, लेकिन निरंतर अभिव्यक्तियों के लिए चेतावनी न दें। उदाहरण के लिए, चेतावनी दें कि क्या कोई अहस्ताक्षरित है
चर की तुलना शून्य से "<" या ">=" से की जाती है। यह चेतावनी द्वारा भी सक्षम की गई है
-वेक्स्ट्रा.

-वबद-फ़ंक्शन-कास्ट (सी और उद्देश्य-सी केवल)
जब कोई फ़ंक्शन कॉल गैर-मिलान प्रकार पर डाली जाती है तो चेतावनी दें। उदाहरण के लिए, चेतावनी दें कि क्या कोई कॉल है
एक पूर्णांक प्रकार लौटने वाले फ़ंक्शन को एक सूचक प्रकार पर डाला जाता है।

-Wc90-c99-compat (सी और उद्देश्य-सी केवल)
उन सुविधाओं के बारे में चेतावनी दें जो ISO C90 में मौजूद नहीं हैं, लेकिन ISO C99 में मौजूद हैं। उदाहरण के लिए,
चर लंबाई सरणियों के उपयोग के बारे में चेतावनी दें, "लंबी लंबी" प्रकार, "बूल" प्रकार, यौगिक
शाब्दिक, नामित प्रारंभकर्ता, और इसी तरह। यह विकल्प से स्वतंत्र है
मानक मोड। "__extension__" का अनुसरण करने वाले व्यंजक में चेतावनियाँ अक्षम हैं।

-Wc99-c11-compat (सी और उद्देश्य-सी केवल)
उन सुविधाओं के बारे में चेतावनी दें जो ISO C99 में मौजूद नहीं हैं, लेकिन ISO C11 में मौजूद हैं। उदाहरण के लिए,
अनाम संरचनाओं और यूनियनों के उपयोग के बारे में चेतावनी दें, "_Atomic" टाइप क्वालिफायर,
"_Thread_local" स्टोरेज-क्लास स्पेसिफायर, "_Alignas" स्पेसिफायर, "Alignof" ऑपरेटर,
"_Generic" कीवर्ड, इत्यादि। यह विकल्प मानक मोड से स्वतंत्र है।
"__extension__" का अनुसरण करने वाले व्यंजक में चेतावनियाँ अक्षम हैं।

-डब्ल्यूसी++ - कॉम्पैट (सी और उद्देश्य-सी केवल)
ISO C निर्माणों के बारे में चेतावनी दें जो ISO C और ISO के सामान्य उपसमुच्चय से बाहर हैं
सी ++, उदाहरण के लिए "शून्य *" से एक सूचक को गैर- "शून्य" में निहित रूपांतरण के लिए अनुरोध
प्रकार।

-Wc++11-संगत (सी++ और ऑब्जेक्टिव-सी++ केवल)
C++ निर्माणों के बारे में चेतावनी दें जिनका अर्थ ISO C++ 1998 और ISO C++ 2011 के बीच भिन्न है,
उदाहरण के लिए, ISO C++ 1998 में पहचानकर्ता जो ISO C++ 2011 में कीवर्ड हैं। यह चेतावनी
चालू करें - सिकुड़ा हुआ और द्वारा सक्षम किया गया है -दीवार.

-Wc++14-संगत (सी++ और ऑब्जेक्टिव-सी++ केवल)
C++ निर्माणों के बारे में चेतावनी दें जिनका अर्थ ISO C++ 2011 और ISO C++ 2014 के बीच भिन्न है।
यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-वास्ट-क्वाली
जब भी कोई पॉइंटर डाला जाता है तो चेतावनी दें ताकि लक्ष्य प्रकार से टाइप क्वालिफायर को हटा दिया जा सके।
उदाहरण के लिए, चेतावनी दें कि क्या "कॉन्स्ट चार *" को सामान्य "चार *" में डाला जाता है।

एक असुरक्षित तरीके से एक प्रकार के क्वालीफायर का परिचय देने वाली कास्ट बनाते समय भी चेतावनी दें। के लिये
उदाहरण के लिए, "char **" को "const char **" में कास्ट करना असुरक्षित है, जैसा कि इस उदाहरण में है:

/* p चार ** मान है। */
कास्ट चार ** क्यू = (स्थिरांक चार **) पी;
/* केवल पढ़ने के लिए स्ट्रिंग को const char * पर असाइन करना ठीक है। */
* क्यू = "स्ट्रिंग";
/* अब char** पॉइंटर केवल-पढ़ने के लिए मेमोरी की ओर इशारा करता है। */
**पी = 'बी';

-Wcast-संरेखण
जब भी कोई पॉइंटर इस प्रकार डाला जाता है कि लक्ष्य का आवश्यक संरेखण हो तो चेतावनी दें
बढ़ी हुई। उदाहरण के लिए, चेतावनी दें कि क्या मशीनों पर "char *" को "int *" में डाला जाता है, जहां
पूर्णांकों को केवल दो या चार-बाइट सीमाओं पर ही पहुँचा जा सकता है।

-लिखें-तार
सी को संकलित करते समय, स्ट्रिंग स्थिरांक टाइप करें "कॉन्स्ट चार [लंबाई]" ताकि नकल
एक का पता एक गैर- "कॉन्स्ट" "चार *" सूचक में एक चेतावनी उत्पन्न करता है। इन
चेतावनियाँ आपको संकलन समय कोड खोजने में मदद करती हैं जो एक स्ट्रिंग में लिखने का प्रयास कर सकता है
स्थिर, लेकिन केवल तभी जब आप घोषणाओं में "स्थिरांक" का उपयोग करने के बारे में बहुत सावधान रहे हों
और प्रोटोटाइप। अन्यथा, यह सिर्फ एक उपद्रव है। इसलिए हमने नहीं बनाया -दीवार
इन चेतावनियों का अनुरोध करें।

सी ++ संकलित करते समय, स्ट्रिंग अक्षर से बहिष्कृत रूपांतरण के बारे में चेतावनी दें "char
*"। यह चेतावनी डिफ़ॉल्ट रूप से C++ प्रोग्राम के लिए सक्षम है।

-वक्लबरेड
उन चरों के लिए चेतावनी दें जिन्हें "longjmp" या "vfork" द्वारा बदला जा सकता है। यह चेतावनी है
द्वारा भी सक्षम किया गया -वेक्स्ट्रा.

-सशर्त रूप से समर्थित (सी++ और ऑब्जेक्टिव-सी++ केवल)
सशर्त रूप से समर्थित (C++11 [intro.defs]) निर्माणों के लिए चेतावनी।

-वरूपांतरण
निहित रूपांतरणों के लिए चेतावनी दें जो किसी मान को बदल सकते हैं। इसमें रूपांतरण शामिल हैं
वास्तविक और पूर्णांक के बीच, जैसे "abs (x)" जब "x" "डबल" हो; के बीच रूपांतरण
हस्ताक्षरित और अहस्ताक्षरित, जैसे "अहस्ताक्षरित ui = -1"; और छोटे प्रकारों में रूपांतरण, जैसे
"sqrtf (M_PI)"। "abs ((int) x)" और "ui = ." जैसी स्पष्ट जातियों के लिए चेतावनी न दें
(अहस्ताक्षरित) -1", या यदि "abs (2.0)" जैसे रूपांतरण द्वारा मान नहीं बदला गया है।
हस्ताक्षरित और अहस्ताक्षरित पूर्णांकों के बीच रूपांतरणों के बारे में चेतावनियों को इसके द्वारा अक्षम किया जा सकता है
का उपयोग -नो-साइन-रूपांतरण.

सी ++ के लिए, उपयोगकर्ता द्वारा परिभाषित रूपांतरणों के लिए भ्रमित करने वाले ओवरलोड रिज़ॉल्यूशन के लिए भी चेतावनी दें; तथा
रूपांतरण जो कभी भी एक प्रकार के रूपांतरण ऑपरेटर का उपयोग नहीं करते हैं: "शून्य" में रूपांतरण, वही
प्रकार, आधार वर्ग या उनका संदर्भ। हस्ताक्षरित . के बीच रूपांतरणों के बारे में चेतावनियाँ
और अहस्ताक्षरित पूर्णांक डिफ़ॉल्ट रूप से C++ में अक्षम होते हैं जब तक कि -साइन-रूपांतरण is
स्पष्ट रूप से सक्षम।

-कोई-रूपांतरण-शून्य (सी++ और ऑब्जेक्टिव-सी++ केवल)
"नल" और गैर-सूचक प्रकारों के बीच रूपांतरण के लिए चेतावनी न दें। -Wरूपांतरण-शून्य is
डिफ़ॉल्ट रूप से सक्षम।

-शून्य-के-शून्य-सूचक-स्थिरांक (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें जब एक शाब्दिक '0' का प्रयोग शून्य सूचक स्थिरांक के रूप में किया जाता है। यह उपयोगी हो सकता है
C++11 में "nullptr" में रूपांतरण की सुविधा प्रदान करें।

-दिनांक-समय
जब मैक्रोज़ "__TIME__", "__DATE__" या "__TIMESTAMP__" सामने आए तो चेतावनी दें
बिट-वार-समान प्रतिलिपि प्रस्तुत करने योग्य संकलन को रोक सकता है।

-Wdelete-अपूर्ण (सी++ और ऑब्जेक्टिव-सी++ केवल)
एक पॉइंटर को अपूर्ण प्रकार से हटाते समय चेतावनी दें, जिससे अपरिभाषित व्यवहार हो सकता है
रनटाइम। यह चेतावनी डिफ़ॉल्ट रूप से सक्षम है।

-बेकार-कास्ट (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें जब एक अभिव्यक्ति अपने ही प्रकार के लिए डाली जाती है।

-खाली-शरीर
चेतावनी दें कि यदि "if", "else" या "do while" कथन में कोई खाली शरीर होता है। यह चेतावनी
द्वारा भी सक्षम किया गया है -वेक्स्ट्रा.

-वेनम-तुलना
विभिन्न प्रगणित प्रकारों के मूल्यों के बीच तुलना के बारे में चेतावनी दें। सी++ एनुमरल में
सशर्त अभिव्यक्तियों में बेमेल का भी निदान किया जाता है और चेतावनी को सक्षम किया जाता है
चूक जाना। सी में यह चेतावनी सक्षम है -दीवार.

-वजम्प-मिस-इनिट (सी, उद्देश्य-सी केवल)
यदि कोई "गोटो" कथन या "स्विच" कथन आगे बढ़ता है तो चेतावनी दें
एक वैरिएबल का इनिशियलाइज़ेशन, या वेरिएबल होने के बाद एक लेबल पर पीछे की ओर कूदता है
आरंभ किया गया। यह केवल उन चरों के बारे में चेतावनी देता है जो प्रारंभ होने पर प्रारंभ होते हैं
घोषित किया। यह चेतावनी केवल C और Objective-C के लिए समर्थित है; सी ++ में इस तरह का
किसी भी मामले में शाखा एक त्रुटि है।

-वजम्प-मिस-इनिट में शामिल है -डब्ल्यूसी++ - कॉम्पैट. इसे के साथ अक्षम किया जा सकता है
-वो-कूद-चूक-इनिट विकल्प.

-Wsign-तुलना
चेतावनी दें कि जब हस्ताक्षरित और अहस्ताक्षरित मूल्यों के बीच तुलना गलत उत्पन्न कर सकती है
परिणाम जब हस्ताक्षरित मान को अहस्ताक्षरित में बदल दिया जाता है। यह चेतावनी भी सक्षम है
by -वेक्स्ट्रा; की अन्य चेतावनियां प्राप्त करने के लिए -वेक्स्ट्रा इस चेतावनी के बिना, उपयोग करें -वेक्स्ट्रा
-नो-साइन-तुलना.

-साइन-रूपांतरण
ऐसे अंतर्निहित रूपांतरणों के लिए चेतावनी जो पूर्णांक मान के चिह्न को बदल सकते हैं, जैसे
एक अहस्ताक्षरित पूर्णांक चर के लिए एक हस्ताक्षरित पूर्णांक अभिव्यक्ति निर्दिष्ट करना। एक स्पष्ट
कास्ट चेतावनी को चुप करा देता है। सी में, यह विकल्प भी सक्षम है -वरूपांतरण.

-फ्लोट-रूपांतरण
वास्तविक मूल्य की सटीकता को कम करने वाले निहित रूपांतरणों के लिए चेतावनी दें। इस
वास्तविक से पूर्णांक में और उच्च परिशुद्धता से वास्तविक से निम्न में रूपांतरण शामिल हैं
सटीक वास्तविक मूल्य। यह विकल्प भी द्वारा सक्षम किया गया है -वरूपांतरण.

-साइज़-डीलोकेशन (सी++ और ऑब्जेक्टिव-सी++ केवल)
एक अनसाइज़्ड डीललोकेशन फ़ंक्शन की परिभाषा के बारे में चेतावनी दें

शून्य ऑपरेटर हटाएं (शून्य *) को छोड़कर;
शून्य ऑपरेटर हटाएं [] (शून्य *) को छोड़कर;

संबंधित आकार के डीललोकेशन फ़ंक्शन की परिभाषा के बिना

शून्य ऑपरेटर हटाएं (शून्य *, std :: size_t) को छोड़कर;
शून्य ऑपरेटर हटाएं [] (शून्य *, std :: size_t) बिना किसी अपवाद के;

या ठीक इसके विपरीत। द्वारा सक्षम -वेक्स्ट्रा के साथ -फसाइज्ड-डीलोकेशन.

-वाइजऑफ़-पॉइंटर-मेमएक्सेस
कुछ स्ट्रिंग और मेमोरी बिल्ट-इन फ़ंक्शंस के लिए संदिग्ध लंबाई मापदंडों के लिए चेतावनी दें
यदि तर्क "आकार" का उपयोग करता है। यह चेतावनी चेतावनी देती है जैसे "मेमसेट (ptr, 0, sizeof .) के बारे में
(ptr));" अगर "ptr" एक सरणी नहीं है, लेकिन एक सूचक है, और एक संभावित सुधार का सुझाव देता है, या
के बारे में "memcpy (&foo, ptr, sizeof (&foo));"। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-Wsizeof-सरणी-तर्क
चेतावनी दें जब "आकार" ऑपरेटर एक पैरामीटर पर लागू होता है जिसे एक सरणी के रूप में घोषित किया जाता है
एक फ़ंक्शन परिभाषा में। यह चेतावनी डिफ़ॉल्ट रूप से C और C++ प्रोग्राम के लिए सक्षम है।

-wmemset-transpose-args
"मेमसेट" बिल्ट-इन फ़ंक्शन के लिए संदिग्ध कॉल के लिए चेतावनी दें, यदि दूसरा तर्क है
शून्य नहीं और तीसरा तर्क शून्य है। यह चेतावनी देता है जैसे @ "मेमसेट (buf, sizeof .) के बारे में
buf, 0)" जहां संभवतः "मेमसेट (buf, 0, sizeof buf)" का अर्थ इसके बजाय था।
निदान केवल तभी उत्सर्जित होता है जब तीसरा तर्क शाब्दिक शून्य हो। अगर यह कुछ है
व्यंजक जो शून्य से मोड़ा जाता है, किसी प्रकार के लिए शून्य का एक कास्ट, आदि, यह बहुत कम है
संभावना है कि उपयोगकर्ता ने गलती से तर्कों का आदान-प्रदान किया है और कोई चेतावनी नहीं दी गई है।
यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-पता
स्मृति पतों के संदिग्ध उपयोगों के बारे में चेतावनी दें। इनमें a . के पते का उपयोग करना शामिल है
एक सशर्त अभिव्यक्ति में कार्य, जैसे "शून्य func (शून्य); अगर (func)", और
एक स्ट्रिंग अक्षर के स्मृति पते के विरुद्ध तुलना, जैसे "if (x == "abc")"।
इस तरह के उपयोग आमतौर पर एक प्रोग्रामर त्रुटि का संकेत देते हैं: एक फ़ंक्शन का पता हमेशा
सत्य का मूल्यांकन करता है, इसलिए सशर्त में उनका उपयोग आमतौर पर इंगित करता है कि प्रोग्रामर
फ़ंक्शन कॉल में कोष्ठक भूल गए; और स्ट्रिंग अक्षर के खिलाफ तुलना
अनिर्दिष्ट व्यवहार में परिणाम और सी में पोर्टेबल नहीं हैं, इसलिए वे आमतौर पर संकेत देते हैं
कि प्रोग्रामर "strcmp" का उपयोग करने का इरादा रखता है। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-वैलॉजिकल-ऑप
भावों में तार्किक संचालकों के संदिग्ध उपयोगों के बारे में चेतावनी दें। इसमें उपयोग करना शामिल है
तार्किक ऑपरेटरों के संदर्भ में जहां एक बिट-वार ऑपरेटर की उम्मीद की जा सकती है।

-वैलॉजिकल-न-कोष्ठक
तुलना के बाईं ओर के ऑपरेंड पर तार्किक का उपयोग नहीं करने के बारे में चेतावनी दें। इस
यदि RHS ऑपरेंड एक बूलियन प्रकार का है, तो विकल्प चेतावनी नहीं देता है। इसका उद्देश्य है
निम्नलिखित की तरह संदिग्ध कोड का पता लगाएं:

इंट ए;
...
अगर (!ए> 1) {...}

LHS को कोष्ठक में लपेटकर चेतावनी को दबाना संभव है:

अगर ((!ए)> 1) {...}

यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-वैग्रेगेट-रिटर्न
चेतावनी दें कि यदि कोई फ़ंक्शन जो संरचनाओं या यूनियनों को लौटाता है उसे परिभाषित या बुलाया जाता है। (में
भाषाएँ जहाँ आप एक सरणी वापस कर सकते हैं, इससे एक चेतावनी भी मिलती है।)

-नो-आक्रामक-लूप-अनुकूलन
चेतावनी दें कि यदि एक लूप में निरंतर संख्या में पुनरावृत्तियों के साथ संकलक अपरिभाषित का पता लगाता है
एक या अधिक पुनरावृत्तियों के दौरान किसी कथन में व्यवहार।

-Wno-विशेषताएँ
यदि किसी अनपेक्षित "__attribute__" का उपयोग किया जाता है, जैसे कि अपरिचित विशेषताएँ, तो चेतावनी न दें।
चर, आदि पर लागू फ़ंक्शन विशेषताएँ। यह त्रुटियों को नहीं रोकता है
समर्थित विशेषताओं का गलत उपयोग।

-बिना बिलिन-मैक्रो-पुनर्परिभाषित
कुछ अंतर्निहित मैक्रोज़ को फिर से परिभाषित किए जाने पर चेतावनी न दें। यह इसके लिए चेतावनियों को दबा देता है
"__TIMESTAMP__", "__TIME__", "__DATE__", "__FILE__", और
"__BASE_FILE__"।

-स्ट्रिक्ट-प्रोटोटाइप (सी और उद्देश्य-सी केवल)
चेतावनी दें कि कोई फ़ंक्शन तर्क प्रकारों को निर्दिष्ट किए बिना घोषित या परिभाषित किया गया है। (एक
पुरानी शैली की फ़ंक्शन परिभाषा को चेतावनी के बिना अनुमति दी जाती है यदि पहले a
घोषणा जो तर्क प्रकार निर्दिष्ट करती है।)

-वल्ड-स्टाइल-घोषणा (सी और उद्देश्य-सी केवल)
अप्रचलित उपयोगों के लिए चेतावनी, सी मानक के अनुसार, एक घोषणा में। के लिये
उदाहरण के लिए, चेतावनी दें कि "स्थैतिक" जैसे स्टोरेज-क्लास विनिर्देशक पहली चीजें नहीं हैं
घोषणा। यह चेतावनी द्वारा भी सक्षम की गई है -वेक्स्ट्रा.

-वल्ड-शैली-परिभाषा (सी और उद्देश्य-सी केवल)
यदि पुरानी शैली की फ़ंक्शन परिभाषा का उपयोग किया जाता है तो चेतावनी दें। होने पर भी चेतावनी दी जाती है
एक पिछला प्रोटोटाइप।

-विस्मिंग-पैरामीटर-प्रकार (सी और उद्देश्य-सी केवल)
के एंड आर-शैली के कार्यों में एक प्रकार के विनिर्देशक के बिना एक फ़ंक्शन पैरामीटर घोषित किया जाता है:

शून्य फू (बार) { }

यह चेतावनी द्वारा भी सक्षम की गई है -वेक्स्ट्रा.

-विमिसिंग-प्रोटोटाइप (सी और उद्देश्य-सी केवल)
चेतावनी दें कि वैश्विक फ़ंक्शन को पिछले प्रोटोटाइप घोषणा के बिना परिभाषित किया गया है। इस
चेतावनी जारी की जाती है, भले ही परिभाषा स्वयं एक प्रोटोटाइप प्रदान करती हो। इस विकल्प का प्रयोग करें
वैश्विक कार्यों का पता लगाने के लिए जिनके पास एक मिलान प्रोटोटाइप घोषणा नहीं है a
शीर्ष लेख फ़ाइल। यह विकल्प C++ के लिए मान्य नहीं है क्योंकि सभी फ़ंक्शन घोषणाएं
प्रोटोटाइप प्रदान करते हैं और एक गैर-मिलान घोषणा के बजाय एक अधिभार की घोषणा करता है
पहले की घोषणा के साथ संघर्ष। उपयोग -विस्मिंग-घोषणाएँ लापता का पता लगाने के लिए
सी ++ में घोषणाएं।

-विस्मिंग-घोषणाएँ
चेतावनी दें कि वैश्विक फ़ंक्शन को पिछली घोषणा के बिना परिभाषित किया गया है। ऐसा करें भले ही
परिभाषा ही एक प्रोटोटाइप प्रदान करती है। वैश्विक का पता लगाने के लिए इस विकल्प का प्रयोग करें
फ़ंक्शन जो हेडर फ़ाइलों में घोषित नहीं किए गए हैं। सी में, इसके लिए कोई चेतावनी जारी नहीं की जाती है
पिछले गैर-प्रोटोटाइप घोषणाओं के साथ कार्य; उपयोग -विमिसिंग-प्रोटोटाइप पता लगाने के लिए
लापता प्रोटोटाइप। सी ++ में, फ़ंक्शन टेम्पलेट्स के लिए या के लिए कोई चेतावनी जारी नहीं की जाती है
इनलाइन फ़ंक्शंस, या अनाम नामस्थानों में फ़ंक्शंस के लिए।

-विमिसिंग-फील्ड-प्रारंभकर्ता
चेतावनी दें कि संरचना के प्रारंभकर्ता में कुछ फ़ील्ड गुम हैं। उदाहरण के लिए, निम्नलिखित
कोड ऐसी चेतावनी का कारण बनता है, क्योंकि "xh" परोक्ष रूप से शून्य है:

संरचना एस {इंट एफ, जी, एच; };
संरचना एसएक्स = {3, 4};

यह विकल्प निर्दिष्ट प्रारंभकर्ताओं के बारे में चेतावनी नहीं देता है, इसलिए निम्न संशोधन
चेतावनी ट्रिगर नहीं करता है:

संरचना एस {इंट एफ, जी, एच; };
संरचना sx = {.f = 3, .g = 4};

सी ++ में यह विकल्प या तो खाली { } प्रारंभकर्ता के बारे में चेतावनी नहीं देता है, उदाहरण के लिए:

संरचना एस {इंट एफ, जी, एच; };
एसएक्स = {};

यह चेतावनी शामिल है -वेक्स्ट्रा. दूसरे को पाने के लिए -वेक्स्ट्रा इसके बिना चेतावनियाँ,
उपयोग -वेक्स्ट्रा -नो-मिसिंग-फील्ड-इनिशियलाइज़र.

-वनो-मल्टीचार
चेतावनी न दें यदि एक बहुचरित्र स्थिरांक ('फूफ') प्रयोग किया जाता है। आमतौर पर वे संकेत देते हैं a
उपयोगकर्ता के कोड में टाइपो, क्योंकि उनके पास कार्यान्वयन-परिभाषित मान हैं, और नहीं होना चाहिए
पोर्टेबल कोड में उपयोग किया जाता है।

-सामान्यीकृत[=<कोई नहीं|id|एनएफसी|एनएफकेसी>]
आईएसओ सी और आईएसओ सी ++ में, दो पहचानकर्ता अलग हैं यदि वे अलग-अलग अनुक्रम हैं
पात्र। हालाँकि, कभी-कभी जब मूल ASCII वर्ण के बाहर वर्ण सेट होते हैं
का उपयोग किया जाता है, तो आपके पास दो अलग-अलग वर्ण अनुक्रम हो सकते हैं जो समान दिखते हैं। कन्नी काटना
भ्रम, आईएसओ 10646 मानक कुछ निर्धारित करता है सामान्यीकरण नियम जो लागू होने पर
सुनिश्चित करें कि समान दिखने वाले दो अनुक्रम एक ही क्रम में बदल गए हैं। जीसीसी
यदि आप ऐसे पहचानकर्ताओं का उपयोग कर रहे हैं जिन्हें सामान्यीकृत नहीं किया गया है, तो आपको चेतावनी दे सकते हैं; इस विकल्प
उस चेतावनी को नियंत्रित करता है।

जीसीसी द्वारा समर्थित चेतावनी के चार स्तर हैं। डिफ़ॉल्ट है -सामान्यीकृत = एनएफसी,
जो किसी भी पहचानकर्ता के बारे में चेतावनी देता है जो आईएसओ 10646 "सी" सामान्यीकृत रूप में नहीं है,
एनएफसी. अधिकांश उपयोगों के लिए एनएफसी अनुशंसित रूप है। यह के बराबर है -सामान्यीकृत.

दुर्भाग्य से, आईएसओ सी और आईएसओ सी ++ द्वारा पहचानकर्ताओं में कुछ वर्णों की अनुमति है
कि, जब एनएफसी में बदल दिया जाता है, तो पहचानकर्ताओं में इसकी अनुमति नहीं होती है। यानी कोई रास्ता नहीं है
पोर्टेबल आईएसओ सी या सी ++ में इन प्रतीकों का उपयोग करने के लिए और एनएफसी में आपके सभी पहचानकर्ता हैं।
-सामान्यीकृत = आईडी इन पात्रों के लिए चेतावनी को दबा देता है। आशा है कि भविष्य
शामिल मानकों के संस्करण इसे सही करेंगे, यही वजह है कि यह विकल्प नहीं है
डिफ़ॉल्ट।

आप लिखकर सभी वर्णों के लिए चेतावनी बंद कर सकते हैं -सामान्यीकृत = कोई नहीं or
-नो-सामान्यीकृत. आपको यह तभी करना चाहिए जब आप किसी अन्य सामान्यीकरण का उपयोग कर रहे हों
योजना (जैसे "डी"), क्योंकि अन्यथा आप आसानी से बग बना सकते हैं जो सचमुच हैं
देखना असंभव है।

आईएसओ 10646 में कुछ वर्णों के अलग-अलग अर्थ हैं लेकिन कुछ फोंट में समान दिखते हैं
या प्रदर्शन पद्धतियां, विशेष रूप से एक बार स्वरूपण लागू होने के बाद। उदाहरण के लिए
"\u207F", "सुपरस्क्रिप्ट लैटिन स्मॉल लेटर एन", एक नियमित "एन" की तरह ही प्रदर्शित होता है
सुपरस्क्रिप्ट में रखा गया है। आईएसओ 10646 परिभाषित करता है एनएफकेसी सामान्यीकरण योजना
इन सभी को एक मानक रूप में भी रूपांतरित करें, और यदि आपका कोड नहीं है तो जीसीसी चेतावनी देता है
एनएफकेसी यदि आप उपयोग करते हैं -सामान्यीकृत = एनएफकेसी. यह चेतावनी सभी के बारे में चेतावनी के बराबर है
पहचानकर्ता जिसमें O अक्षर होता है क्योंकि यह अंक 0 से भ्रमित हो सकता है,
और इसलिए डिफ़ॉल्ट नहीं है, लेकिन स्थानीय कोडिंग सम्मेलन के रूप में उपयोगी हो सकता है यदि
इन वर्णों को स्पष्ट रूप से प्रदर्शित करने के लिए प्रोग्रामिंग वातावरण को ठीक नहीं किया जा सकता है।

-कोई पदावनत
बहिष्कृत सुविधाओं के उपयोग के बारे में चेतावनी न दें।

-अना-बहिष्कृत-घोषणाएँ
द्वारा बहिष्कृत के रूप में चिह्नित कार्यों, चरों और प्रकारों के उपयोग के बारे में चेतावनी न दें
"बहिष्कृत" विशेषता का उपयोग करना।

-कोई अतिप्रवाह
निरंतर अभिव्यक्तियों में संकलन-समय अतिप्रवाह के बारे में चेतावनी न दें।

-वनो-ओड्र
लिंक-टाइम ऑप्टिमाइज़ेशन के दौरान वन डेफिनिशन नियम उल्लंघनों के बारे में चेतावनी दें। आवश्यक है
-फ्लो-ओडीआर-टाइप-विलय सक्षम किया जाना है। डिफ़ॉल्ट रूप से सक्षम।

-वोपेनएमपी-सिमड
चेतावनी दें कि क्या वेक्टराइज़र लागत मॉडल ओपनएमपी या सिल्क प्लस सिमड निर्देश को ओवरराइड करता है
उपयोगकर्ता द्वारा निर्धारित। NS -fsimd-लागत-मॉडल = असीमित विकल्प का उपयोग लागत को कम करने के लिए किया जा सकता है
मॉडल.

-वोवरराइड-इनिट (सी और उद्देश्य-सी केवल)
यदि निर्दिष्ट का उपयोग करते समय साइड इफेक्ट के बिना एक आरंभिक फ़ील्ड को ओवरराइड किया जाता है तो चेतावनी दें
प्रारंभकर्ता।

यह चेतावनी शामिल है -वेक्स्ट्रा. दूसरे को पाने के लिए -वेक्स्ट्रा इसके बिना चेतावनियाँ,
उपयोग -वेक्स्ट्रा -नो-ओवरराइड-init.

- पैक्ड
चेतावनी दें कि यदि संरचना को पैक की गई विशेषता दी गई है, लेकिन पैक की गई विशेषता में नहीं है
संरचना के लेआउट या आकार पर प्रभाव। इस तरह की संरचनाओं के लिए गलत गठबंधन किया जा सकता है
थोड़ा लाभ। उदाहरण के लिए, इस कोड में, "स्ट्रक्चर बार" में वेरिएबल "fx" है
भले ही "स्ट्रक्चर बार" में खुद को पैक की गई विशेषता न हो:

संरचना फू {
इंट x;
चार ए, बी, सी, डी;
} __attribute __ ((पैक));
स्ट्रक्चर बार {
चार जेड;
संरचना फू च;
};

-पैक्ड-बिटफील्ड-कंपैट
जीसीसी की 4.1, 4.2 और 4.3 श्रृंखला प्रकार के बिट-फ़ील्ड पर "पैक" विशेषता को अनदेखा करती है
"चार"। यह GCC 4.4 में तय किया गया है, लेकिन परिवर्तन से इसमें अंतर हो सकता है
संरचना लेआउट। GCC में ऐसे फ़ील्ड का ऑफ़सेट कब बदल गया है, GCC आपको सूचित करता है
4.4. उदाहरण के लिए इसमें फ़ील्ड "ए" और "बी" के बीच 4-बिट पैडिंग नहीं है
संरचना:

संरचना फू
{
चार ए: 4;
चार बी:8;
} __विशेषता__ ((पैक));

यह चेतावनी डिफ़ॉल्ट रूप से सक्षम है। उपयोग -नहीं-पैक-बिटफ़ील्ड-संगत इसे अक्षम करने के लिए
चेतावनी।

-पैडेड
चेतावनी दें कि क्या पैडिंग को संरचना में शामिल किया गया है, या तो के तत्व को संरेखित करने के लिए
संरचना या पूरी संरचना को संरेखित करने के लिए। कभी-कभी जब ऐसा होता है तो संभव है
पैडिंग को कम करने के लिए संरचना के क्षेत्रों को पुनर्व्यवस्थित करना और इस प्रकार बनाना
संरचना छोटी।

-अनावश्यक-गिरावट
चेतावनी अगर एक ही दायरे में एक से अधिक बार कुछ भी घोषित किया जाता है, यहां तक ​​​​कि उन मामलों में भी जहां
एकाधिक घोषणा मान्य है और कुछ भी नहीं बदलता है।

-वेस्टेड-बाहरी (सी और उद्देश्य-सी केवल)
चेतावनी दें कि किसी फ़ंक्शन के भीतर "बाहरी" घोषणा का सामना करना पड़ता है।

-नो-विरासत-वैराडिक-सीटीआर
बेस क्लास होने पर C++11 इनहेरिट करने वाले कंस्ट्रक्टर्स के उपयोग के बारे में चेतावनियों को रोकें
से विरासत में मिला एक सी वैरिएडिक कंस्ट्रक्टर है; चेतावनी डिफ़ॉल्ट रूप से चालू है क्योंकि
इलिप्सिस विरासत में नहीं मिला है।

-विनलाइन
चेतावनी दें कि इनलाइन घोषित किए गए फ़ंक्शन को इनलाइन नहीं किया जा सकता है। इसके साथ भी
विकल्प, संकलक घोषित इनलाइन कार्यों में विफलताओं के बारे में चेतावनी नहीं देता है
सिस्टम हेडर।

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

-अवैध-ऑफसेटऑफ़ नहीं (सी++ और ऑब्जेक्टिव-सी++ केवल)
"ऑफ़सेटोफ़" मैक्रो को गैर-पीओडी प्रकार पर लागू करने की चेतावनियों को रोकें। के अनुसार
2014 ISO C++ मानक, गैर-मानक-लेआउट प्रकार के लिए "ऑफ़सेटऑफ़" लागू करना है
अपरिभाषित मौजूदा C++ कार्यान्वयन में, हालांकि, "offsetof" आमतौर पर देता है
सार्थक परिणाम। यह फ़्लैग उन उपयोगकर्ताओं के लिए है जो जानते हैं कि वे लिख रहे हैं
गैर-पोर्टेबल कोड और जिन्होंने जानबूझकर इसके बारे में चेतावनी को अनदेखा करना चुना है।

C++ मानक के भविष्य के संस्करण में "ऑफ़सेटऑफ़" पर प्रतिबंधों में ढील दी जा सकती है।

-नो-इंट-टू-पॉइंटर-कास्ट
किसी भिन्न आकार के पूर्णांक के सूचक प्रकार से कास्ट से चेतावनियों को रोकें। में
सी ++, छोटे आकार के सूचक प्रकार को कास्टिंग एक त्रुटि है। विंट-टू-पॉइंटर-कास्ट is
डिफ़ॉल्ट रूप से सक्षम।

-नो-पॉइंटर-टू-इंट-कास्ट (सी और उद्देश्य-सी केवल)
एक सूचक से एक अलग आकार के एक पूर्णांक प्रकार के लिए कास्ट से चेतावनियों को दबाएं।

-विनवैलिड-pch
चेतावनी दें कि यदि खोज पथ में कोई पूर्व-संकलित शीर्षलेख मिलता है, लेकिन उसका उपयोग नहीं किया जा सकता है।

-लंबा-लंबा
चेतावनी दें कि "लॉन्ग लॉन्ग" टाइप का इस्तेमाल किया गया है। यह या तो सक्षम है -वेदांतिक or
-पारंपरिक ISO C90 और C++98 मोड में। चेतावनी संदेशों को बाधित करने के लिए, उपयोग करें
-नो-लॉन्ग-लॉन्ग.

-वेरिएडिक-मैक्रोज़
चेतावनी दें कि यदि विविध मैक्रोज़ का उपयोग ISO C90 मोड में किया जाता है, या यदि GNU वैकल्पिक सिंटैक्स है
ISO C99 मोड में उपयोग किया जाता है। यह या तो सक्षम है -वेदांतिक or -पारंपरिक। सेवा मेरे
चेतावनी संदेशों को रोकें, उपयोग करें -नो-वैराडिक-मैक्रोज़.

-वरार्ग्स
चर तर्कों को संभालने के लिए उपयोग किए जाने वाले मैक्रोज़ के संदिग्ध उपयोग पर चेतावनी दें:
"va_start"। यह डिफ़ॉल्ट है। चेतावनी संदेशों को बाधित करने के लिए, उपयोग करें -वनो-वरार्ग्स.

-वेक्टर-ऑपरेशन-प्रदर्शन
अगर आर्किटेक्चर की SIMD क्षमताओं के माध्यम से वेक्टर ऑपरेशन लागू नहीं किया जाता है तो चेतावनी दें।
प्रदर्शन ट्यूनिंग के लिए मुख्य रूप से उपयोगी है। वेक्टर ऑपरेशन लागू किया जा सकता है
"टुकड़ावार", जिसका अर्थ है कि प्रत्येक वेक्टर पर स्केलर ऑपरेशन किया जाता है
तत्व; "समानांतर में", जिसका अर्थ है कि वेक्टर ऑपरेशन का उपयोग करके कार्यान्वित किया जाता है
व्यापक प्रकार के स्केलर, जो सामान्य रूप से अधिक प्रदर्शन कुशल होते हैं; और "एकल के रूप में"
scalar", जिसका अर्थ है कि वेक्टर एक अदिश प्रकार में फ़िट हो जाता है।

-नो-वर्चुअल-मूव-असाइन
गैर-तुच्छ सी ++ 11 चाल के साथ वर्चुअल बेस से विरासत में आने के बारे में चेतावनियां रोकें
असाइनमेंट ऑपरेटर। यह खतरनाक है क्योंकि अगर वर्चुअल बेस साथ में पहुंचा जा सकता है
एक से अधिक पथ, इसे कई बार ले जाया जाता है, जिसका अर्थ यह हो सकता है कि दोनों वस्तुएं समाप्त हो जाती हैं
राज्य से स्थानांतरित। यदि मूव असाइनमेंट ऑपरेटर को आगे बढ़ने से बचने के लिए लिखा जाता है
एक स्थानांतरित वस्तु से, इस चेतावनी को अक्षम किया जा सकता है।

-व्वला
यदि कोड में चर लंबाई सरणी का उपयोग किया जाता है तो चेतावनी दें। -वनो-व्ला रोकता है -वेदांतिक
परिवर्तनीय लंबाई सरणी की चेतावनी।

-अस्थिर-रजिस्टर-वर
चेतावनी दें कि रजिस्टर चर को अस्थिर घोषित किया गया है। अस्थिर संशोधक नहीं करता है
उन सभी अनुकूलन को रोकें जो रजिस्टर करने के लिए पढ़ने और/या लिखने को समाप्त कर सकते हैं
चर। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-अक्षम-अनुकूलन
अनुरोधित अनुकूलन पास अक्षम होने पर चेतावनी दें। यह चेतावनी आम तौर पर नहीं होती है
इंगित करें कि आपके कोड में कुछ गड़बड़ है; यह केवल इंगित करता है कि जीसीसी का
अनुकूलक प्रभावी ढंग से कोड को संभालने में असमर्थ हैं। अक्सर समस्या यह होती है कि आपका
कोड बहुत बड़ा या बहुत जटिल है; ऑप्टिमाइज़ेशन होने पर GCC प्रोग्राम को ऑप्टिमाइज़ करने से मना कर देता है
स्वयं अत्यधिक समय लेने की संभावना है।

-Wpointer-चिह्न (सी और उद्देश्य-सी केवल)
पॉइंटर तर्क पारित करने या अलग-अलग हस्ताक्षर के साथ असाइनमेंट के लिए चेतावनी दें। इस
विकल्प केवल सी और उद्देश्य-सी के लिए समर्थित है। इसका तात्पर्य है -दीवार और तक
-वेदांतिक, जिसे अक्षम किया जा सकता है -नो-सूचक-चिह्न.

-स्टैक-रक्षक
यह विकल्प तभी सक्रिय होता है जब -स्टैक-रक्षक सक्रिय है। यह कार्यों के बारे में चेतावनी देता है
जो स्टैक स्मैशिंग से सुरक्षित नहीं हैं।

-ओवरलेंथ-स्ट्रिंग्स
"न्यूनतम अधिकतम" लंबाई से अधिक लंबे स्ट्रिंग स्थिरांक के बारे में चेतावनी दें
सी मानक में निर्दिष्ट। आधुनिक कंपाइलर आमतौर पर स्ट्रिंग स्थिरांक की अनुमति देते हैं कि
मानक की न्यूनतम सीमा से बहुत अधिक हैं, लेकिन बहुत पोर्टेबल प्रोग्राम होना चाहिए
लंबे तार का उपयोग करने से बचें।

सीमा लागू होती है बाद स्ट्रिंग निरंतर संयोजन, और अनुगामी की गणना नहीं करता है
एनयूएल। C90 में, सीमा 509 वर्ण थी; C99 में, इसे बढ़ाकर 4095 कर दिया गया। C++98 करता है
एक मानक न्यूनतम अधिकतम निर्दिष्ट न करें, इसलिए हम ओवरलेंथ स्ट्रिंग्स का निदान नहीं करते हैं
सी ++।

यह विकल्प द्वारा निहित है -वेदांतिक, और के साथ अक्षम किया जा सकता है
-नो-ओवरलेंथ-स्ट्रिंग्स.

-वंसफिक्स्ड-फ्लोट-स्थिरांक (सी और उद्देश्य-सी केवल)
किसी भी फ़्लोटिंग स्थिरांक के लिए चेतावनी जारी करें जिसमें प्रत्यय नहीं है। इस्तेमाल के बाद
साथ साथ -डब्ल्यूसिस्टम-हेडर यह सिस्टम हेडर फाइलों में ऐसे स्थिरांक के बारे में चेतावनी देता है।
"FLOAT_CONST_DECIMAL64" प्रगति के साथ उपयोग करने के लिए कोड तैयार करते समय यह उपयोगी हो सकता है
दशमलव फ़्लोटिंग-पॉइंट एक्सटेंशन से C99 तक।

-कोई-नामित-init (सी और उद्देश्य-सी केवल)
जब किसी संरचना को प्रारंभ करने के लिए एक स्थितीय प्रारंभकर्ता का उपयोग किया जाता है तो चेतावनियों को दबाएं
"निर्दिष्ट_इनिट" विशेषता के साथ चिह्नित किया गया है।

ऑप्शंस एसटी डीबगिंग आपका कार्यक्रम or जीसीसी
जीसीसी में कई विशेष विकल्प हैं जिनका उपयोग आपके प्रोग्राम या जीसीसी को डीबग करने के लिए किया जाता है:

-g ऑपरेटिंग सिस्टम के मूल स्वरूप में डिबगिंग जानकारी तैयार करें (स्टैब्स, सीओएफएफ,
XCOFF, या DWARF 2)। GDB इस डिबगिंग जानकारी के साथ काम कर सकता है।

स्टैब्स प्रारूप का उपयोग करने वाले अधिकांश सिस्टम पर, -g अतिरिक्त डिबगिंग जानकारी के उपयोग को सक्षम बनाता है
जिसका उपयोग केवल GDB ही कर सकता है; यह अतिरिक्त जानकारी GDB में डिबगिंग कार्य को बेहतर बनाती है लेकिन
शायद अन्य डिबगर्स को क्रैश कर देता है या प्रोग्राम को पढ़ने से मना कर देता है। यदि आप चाहते हैं
अतिरिक्त जानकारी उत्पन्न करने के लिए निश्चित रूप से नियंत्रण करें, उपयोग करें -गैस्टैब्स+, -गैस्टैब्स,
-जीएक्सकॉफ+, -gxcoffया, -gvms (निचे देखो)।

जीसीसी आपको उपयोग करने की अनुमति देता है -g साथ में -O. अनुकूलित कोड द्वारा लिया गया शॉर्टकट हो सकता है
कभी-कभी आश्चर्यजनक परिणाम उत्पन्न करते हैं: आपके द्वारा घोषित कुछ चर मौजूद नहीं हो सकते हैं
सब; नियंत्रण का प्रवाह कुछ समय के लिए वहां जा सकता है जहां आपने इसकी अपेक्षा नहीं की थी; कुछ बयान मई
निष्पादित नहीं किया जा सकता क्योंकि वे निरंतर परिणामों की गणना करते हैं या उनके मान पहले से ही हैं
हाथ; कुछ कथन अलग-अलग स्थानों पर निष्पादित हो सकते हैं क्योंकि उन्हें हटा दिया गया है
छोरों की।

फिर भी अनुकूलित आउटपुट को डीबग करना संभव साबित होता है। यह उचित बनाता है
उन प्रोग्रामों के लिए अनुकूलक का उपयोग करने के लिए जिनमें बग हो सकते हैं।

निम्नलिखित विकल्प तब उपयोगी होते हैं जब जीसीसी अधिक क्षमता के साथ उत्पन्न होता है
एक से अधिक डिबगिंग प्रारूप।

-जीस्प्लिट-बौना
एक अलग आउटपुट फ़ाइल में जितना संभव हो उतना बौना डिबगिंग जानकारी अलग करें
एक्सटेंशन .dwo के साथ। यह विकल्प बिल्ड सिस्टम को फाइलों को जोड़ने से बचने की अनुमति देता है
डीबग जानकारी के साथ। उपयोगी होने के लिए, इस विकल्प के लिए सक्षम डिबगर की आवश्यकता होती है
.dwo फ़ाइलें पढ़ना।

-जीजीडीबी
GDB द्वारा उपयोग के लिए डिबगिंग जानकारी तैयार करें। इसका अर्थ है सबसे अधिक अभिव्यंजक का उपयोग करना
उपलब्ध प्रारूप (DWARF 2, स्टैब्स, या मूल प्रारूप यदि उनमें से कोई भी नहीं है
समर्थित), यदि संभव हो तो GDB एक्सटेंशन सहित।

-गपबनाम
बौना .debug_pubnames और .debug_pubtypes अनुभाग उत्पन्न करें।

-गन्नू-पबनाम
उपयुक्त प्रारूप में .debug_pubnames और .debug_pubtypes अनुभाग जेनरेट करें
GDB इंडेक्स में रूपांतरण। यह विकल्प केवल एक लिंकर के लिए उपयोगी है जो कर सकता है
जीडीबी इंडेक्स संस्करण 7 का उत्पादन करें।

-गैस्टैब्स
GDB के बिना, स्टैब्स प्रारूप (यदि वह समर्थित है) में डिबगिंग जानकारी तैयार करें
एक्सटेंशन। यह अधिकांश बीएसडी सिस्टम पर डीबीएक्स द्वारा उपयोग किया जाने वाला प्रारूप है। MIPS, अल्फा और . पर
सिस्टम V रिलीज़ 4 सिस्टम यह विकल्प स्टैब्स डिबगिंग आउटपुट उत्पन्न करता है जो कि नहीं है
DBX या SDB द्वारा समझा जाता है। सिस्टम V रिलीज़ 4 सिस्टम पर इस विकल्प के लिए GNU की आवश्यकता होती है
इकट्ठा करनेवाला।

-फेलिमिनेट-अप्रयुक्त-डीबग-प्रतीक
केवल प्रतीकों के लिए, स्टैब्स प्रारूप में डिबगिंग जानकारी तैयार करें (यदि वह समर्थित है)
जिनका वास्तव में उपयोग किया जाता है।

-स्त्री-वर्ग-डीबग-हमेशा
केवल एक ऑब्जेक्ट फ़ाइल में C++ वर्ग के लिए डिबगिंग जानकारी उत्सर्जित करने के बजाय,
कक्षा का उपयोग करके सभी ऑब्जेक्ट फ़ाइलों में इसे उत्सर्जित करें। इस विकल्प का उपयोग केवल के साथ किया जाना चाहिए
डिबगर्स जो जीसीसी के सामान्य रूप से डिबगिंग जानकारी का उत्सर्जन करने के तरीके को संभालने में असमर्थ हैं
कक्षाओं के लिए क्योंकि इस विकल्प का उपयोग करने से डिबगिंग जानकारी का आकार बढ़ जाता है
दो के कारक जितना।

-फडेबग-प्रकार-अनुभाग
DWARF संस्करण 4 या उच्चतर का उपयोग करते समय, टाइप DIE को अपने में रखा जा सकता है
".debug_types" अनुभाग को ".debug_info" अनुभाग का हिस्सा बनाने के बजाय। यह
उन्हें एक अलग कॉमडेट अनुभागों में रखने के लिए अधिक कुशल है क्योंकि लिंकर तब कर सकता है
डुप्लिकेट निकालें। लेकिन सभी DWARF उपभोक्ता अभी तक ".debug_types" अनुभागों का समर्थन नहीं करते हैं
और कुछ वस्तुओं पर ".debug_types" छोटे डिबगिंग के बजाय बड़ा उत्पन्न करता है
जानकारी.

-गैस्टैब्स+
जीएनयू का उपयोग करके, स्टैब्स प्रारूप में डिबगिंग जानकारी तैयार करें (यदि वह समर्थित है)
एक्सटेंशन केवल GNU डिबगर (GDB) द्वारा समझे जाते हैं। इन एक्सटेंशन का उपयोग है
अन्य डिबगर्स को क्रैश करने या प्रोग्राम को पढ़ने से इनकार करने की संभावना है।

-गकॉफ
सीओएफएफ प्रारूप में डिबगिंग जानकारी तैयार करें (यदि वह समर्थित है)। यह है
सिस्टम V रिलीज़ 4 से पहले अधिकांश सिस्टम V सिस्टम पर SDB द्वारा उपयोग किया जाने वाला प्रारूप।

-gxcoff
XCOFF प्रारूप में डिबगिंग जानकारी तैयार करें (यदि वह समर्थित है)। यह है
IBM RS/6000 सिस्टम पर DBX डीबगर द्वारा उपयोग किया जाने वाला प्रारूप।

-जीएक्सकॉफ+
GNU का उपयोग करके XCOFF प्रारूप (यदि वह समर्थित है) में डिबगिंग जानकारी तैयार करें
एक्सटेंशन केवल GNU डिबगर (GDB) द्वारा समझे जाते हैं। इन एक्सटेंशन का उपयोग है
अन्य डिबगर्स को क्रैश करने या प्रोग्राम को पढ़ने से इंकार करने की संभावना है, और इसका कारण हो सकता है
GNU असेंबलर (GAS) के अलावा अन्य असेंबलर एक त्रुटि के साथ विफल हो जाते हैं।

-जीडवार्फ-संस्करण
डीडब्ल्यूएआरएफ प्रारूप में डिबगिंग जानकारी तैयार करें (यदि वह समर्थित है)। का मूल्य
संस्करण 2, 3, 4 या 5 हो सकते हैं; अधिकांश लक्ष्यों के लिए डिफ़ॉल्ट संस्करण 4 है। DWARF
संस्करण 5 केवल प्रयोगात्मक है।

ध्यान दें कि DWARF संस्करण 2 के साथ, कुछ पोर्ट की आवश्यकता होती है और हमेशा कुछ गैर-विरोधी का उपयोग करते हैं
खोलना टेबल में DWARF 3 एक्सटेंशन।

संस्करण 4 के लिए GDB 7.0 और . की आवश्यकता हो सकती है -fvar-ट्रैकिंग-असाइनमेंट अधिकतम लाभ के लिए।

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

-ग्नो-रिकॉर्ड-जीसीसी-स्विच
DWARF में DW_AT_producer विशेषता में कमांड-लाइन विकल्प जोड़ने की अनुमति न दें
डिबगिंग जानकारी।

-गस्ट्रिक्ट-बौना
के साथ चयनित की तुलना में बाद के DWARF मानक संस्करण के एक्सटेंशन का उपयोग करने की अनुमति न दें
-जीडवार्फ-संस्करण. बाद से गैर-विरोधी DWARF एक्सटेंशन का उपयोग करने वाले अधिकांश लक्ष्यों पर
मानक संस्करणों की अनुमति है।

-ग्नो-सख्त-बौना
के साथ चयनित की तुलना में बाद के DWARF मानक संस्करण के एक्सटेंशन का उपयोग करने की अनुमति दें
-जीडवार्फ-संस्करण.

-जीजेड[=टाइप]
DWARF प्रारूप में संपीड़ित डिबग अनुभागों का निर्माण करें, यदि वह समर्थित है। अगर टाइप is
नहीं दिया गया है, डिफ़ॉल्ट प्रकार असेंबलर और लिंकर की क्षमताओं पर निर्भर करता है
उपयोग किया गया। टाइप में से एक हो सकता है कोई नहीं (डीबग अनुभागों को संपीड़ित न करें), ज़ेडलिब (ज़्लिब का प्रयोग करें)
ELF gABI प्रारूप में संपीड़न), या ज़्लिब-ग्नू (पारंपरिक GNU में zlib संपीड़न का उपयोग करें
प्रारूप)। यदि लिंकर संपीड़ित डिबग अनुभाग लिखने का समर्थन नहीं करता है, तो विकल्प
खारिज किया जाता है। अन्यथा, यदि असेंबलर उनका समर्थन नहीं करता है, -जीजेड चुपचाप है
ऑब्जेक्ट फ़ाइलों का निर्माण करते समय अनदेखा किया गया।

-gvms
अल्फा/वीएमएस डीबग प्रारूप में डिबगिंग जानकारी तैयार करें (यदि वह समर्थित है)। इस
अल्फा/वीएमएस सिस्टम पर DEBUG द्वारा उपयोग किया जाने वाला प्रारूप है।

-gस्तर
-जीजीडीबीस्तर
-गैस्टैब्सस्तर
-गकॉफस्तर
-gxcoffस्तर
-gvmsस्तर
डिबगिंग जानकारी का अनुरोध करें और उपयोग भी करें स्तर यह निर्दिष्ट करने के लिए कि कितनी जानकारी है। NS
डिफ़ॉल्ट स्तर 2 है।

स्तर 0 कोई डिबग जानकारी बिल्कुल नहीं देता है। इस प्रकार, -जी0 नकारता -g.

स्तर 1 न्यूनतम जानकारी उत्पन्न करता है, जो कि के कुछ हिस्सों में बैकट्रेस बनाने के लिए पर्याप्त है
प्रोग्राम जिसे आप डीबग करने की योजना नहीं बनाते हैं। इसमें कार्यों का विवरण शामिल है और
बाहरी चर, और पंक्ति संख्या तालिकाएँ, लेकिन स्थानीय चर के बारे में कोई जानकारी नहीं।

स्तर 3 में अतिरिक्त जानकारी शामिल है, जैसे कि इसमें मौजूद सभी मैक्रो परिभाषाएँ
कार्यक्रम। जब आप उपयोग करते हैं तो कुछ डिबगर मैक्रो विस्तार का समर्थन करते हैं -जी3.

-जीडवार्फ-2 एक संयोजित डिबग स्तर को स्वीकार नहीं करता है, क्योंकि GCC a का समर्थन करता था
विकल्प -गद्वारफ इसका मतलब DWARF के संस्करण 1 में डिबग जानकारी उत्पन्न करना था
प्रारूप (जो संस्करण 2 से बहुत अलग है), और यह बहुत भ्रमित करने वाला होता।
वह डिबग प्रारूप लंबे समय से अप्रचलित है, लेकिन विकल्प को अभी बदला नहीं जा सकता है। इसके बजाय उपयोग करें
अतिरिक्त -gस्तर DWARF के लिए डिबग स्तर को बदलने का विकल्प।

-gtoggle
डिबग जानकारी की पीढ़ी को बंद करें, अगर इस विकल्प को छोड़ने से यह उत्पन्न होता है, या इसे चालू करें
स्तर 2 पर अन्यथा। कमांड लाइन में इस तर्क की स्थिति नहीं है
मामला; अन्य सभी विकल्पों के संसाधित होने के बाद यह प्रभावी होता है, और यह केवल ऐसा करता है
एक बार, चाहे कितनी बार दिया जाए। इसका मुख्य रूप से उपयोग करने का इरादा है
-fतुलना-डीबग.

-फसैनिटाइज=पता
एड्रेस सैनिटाइज़र सक्षम करें, एक तेज़ मेमोरी एरर डिटेक्टर। मेमोरी एक्सेस निर्देश हैं
आउट-ऑफ-बाउंड और उपयोग-बाद-मुक्त बग का पता लगाने के लिए उपकरण। देखो
<https://github.com/google/sanitizers/wiki/AddressSanitizer> अधिक जानकारी के लिए। NS
रन-टाइम व्यवहार का उपयोग करके प्रभावित किया जा सकता है आसन_OPTIONS वातावरण विविधता। कब
"सहायता = 1" पर सेट, उपलब्ध विकल्प इंस्ट्रूमेंट के स्टार्टअप पर दिखाए जाते हैं
कार्यक्रम। देखो
<https://github.com/google/sanitizers/wiki/AddressSanitizerFlags#run-time-flags> के लिए
समर्थित विकल्पों की सूची।

-fsanitize=कर्नेल-पता
Linux कर्नेल के लिए AddressSanitizer सक्षम करें। देखोhttps://github.com/google/kasan/wiki>
अधिक जानकारी के लिए.

-फसैनिटाइज = धागा
एक तेज़ डेटा रेस डिटेक्टर ThreadSanitizer सक्षम करें। मेमोरी एक्सेस निर्देश हैं
डेटा रेस बग्स का पता लगाने के लिए उपकरण। देखो
<https://github.com/google/sanitizers/wiki#threadsanitizer> अधिक जानकारी के लिए। रन-
समय के व्यवहार को का उपयोग करके प्रभावित किया जा सकता है TSAN_OPTIONS वातावरण विविधता; देख
<https://github.com/google/sanitizers/wiki/ThreadSanitizerFlags> की सूची के लिए
समर्थित विकल्प।

-फसैनिटाइज = लीक
मेमोरी लीक डिटेक्टर LeakSanitizer सक्षम करें। यह विकल्प केवल को जोड़ने के लिए मायने रखता है
निष्पादन योग्य और यदि न तो -फसैनिटाइज=पता-फसैनिटाइज = धागा प्रयोग किया जाता है। में वह
यदि निष्पादन योग्य एक पुस्तकालय के खिलाफ जुड़ा हुआ है जो "मॉलोक" और अन्य को ओवरराइड करता है
आवंटन कार्य। देखो
<https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizer> अधिक के लिए
विवरण। रन-टाइम व्यवहार का उपयोग करके प्रभावित किया जा सकता है एलएसएएन_विकल्प वातावरण
चर।

-फसैनिटाइज = अपरिभाषित
अपरिभाषित व्यवहार सैनिटाइज़र सक्षम करें, एक तेज़ अपरिभाषित व्यवहार डिटेक्टर। विभिन्न
कंप्यूटेशंस रनटाइम पर अपरिभाषित व्यवहार का पता लगाने के लिए यंत्रीकृत होते हैं। वर्तमान
उपविकल्प हैं:

-फसैनिटाइज = शिफ्ट
यह विकल्प यह जाँचने में सक्षम बनाता है कि शिफ्ट ऑपरेशन का परिणाम नहीं है
अपरिभाषित ध्यान दें कि जो वास्तव में अपरिभाषित माना जाता है वह थोड़ा भिन्न होता है
C और C++ के बीच, साथ ही ISO C90 और C99, आदि के बीच।

-fsanitize=पूर्णांक-विभाजन-शून्य
पूर्णांक विभाजन को शून्य के साथ-साथ "INT_MIN / -1" विभाजन का पता लगाएं।

-फसैनिटाइज = अगम्य
इस विकल्प के साथ, कंपाइलर "__builtin_unreachable" कॉल को a . में बदल देता है
इसके बजाय डायग्नोस्टिक्स संदेश कॉल। "__builtin_unreachable" कॉल पर पहुंचने पर,
व्यवहार अपरिभाषित है।

-fsanitize=vla-बाउंड
यह विकल्प संकलक को यह जांचने का निर्देश देता है कि चर लंबाई का आकार
सरणी सकारात्मक है।

-fsanitize=शून्य
यह विकल्प सूचक जाँच को सक्षम करता है। विशेष रूप से, के साथ बनाया गया एप्लिकेशन
चालू किया गया यह विकल्प एक त्रुटि संदेश जारी करेगा जब यह dereference करने का प्रयास करता है a
NULL सूचक, या यदि कोई संदर्भ (संभवतः एक प्रतिद्वंद्विता संदर्भ) एक NULL . के लिए बाध्य है
सूचक, या यदि कोई विधि किसी NULL सूचक द्वारा इंगित की गई वस्तु पर लागू होती है।

-फसैनिटाइज = रिटर्न
यह विकल्प रिटर्न स्टेटमेंट की जाँच को सक्षम बनाता है। इस विकल्प के साथ निर्मित कार्यक्रम
चालू होने पर एक त्रुटि संदेश जारी होगा जब एक गैर-शून्य फ़ंक्शन का अंत होता है
वास्तव में एक मूल्य वापस किए बिना पहुंच गया। यह विकल्प केवल C++ में काम करता है।

-fsanitize=हस्ताक्षरित-पूर्णांक-अतिप्रवाह
यह विकल्प हस्ताक्षरित पूर्णांक अतिप्रवाह जाँच को सक्षम करता है। हम जाँचते हैं कि का परिणाम
"+", "*", और यूनरी और बाइनरी दोनों "-" हस्ताक्षरित में अतिप्रवाह नहीं होता है
अंकगणित। ध्यान दें, पूर्णांक पदोन्नति नियमों को ध्यान में रखा जाना चाहिए। अर्थात्,
निम्नलिखित अतिप्रवाह नहीं है:

हस्ताक्षरित चार ए = SCHAR_MAX;
ए++;

-फसैनिटाइज = सीमा
यह विकल्प सरणी सीमाओं के उपकरण को सक्षम बनाता है। सीमा से बाहर विभिन्न
पहुंच का पता चला है। लचीले सरणी सदस्य, लचीले सरणी सदस्य-जैसे सरणियाँ,
और स्थिर भंडारण वाले चर के प्रारंभकर्ता यंत्रित नहीं हैं।

-फसैनिटाइज = संरेखण
यह विकल्प पॉइंटर्स के अलाइनमेंट की जाँच करने में सक्षम बनाता है जब वे डीरेफ़रेंस होते हैं,
या जब कोई संदर्भ अपर्याप्त रूप से संरेखित लक्ष्य के लिए बाध्य हो, या जब कोई विधि या
कंस्ट्रक्टर को अपर्याप्त रूप से संरेखित वस्तु पर लागू किया जाता है।

-फसैनिटाइज = वस्तु-आकार
यह विकल्प मेमोरी संदर्भों के इंस्ट्रूमेंटेशन को सक्षम बनाता है
"__builtin_object_size" फ़ंक्शन। विभिन्न सीमा से बाहर पॉइंटर एक्सेस हैं
पता चला।

-फसैनिटाइज = फ्लोट-डिवाइड-बाय-जीरो
शून्य से फ्लोटिंग-पॉइंट डिवीजन का पता लगाएं। अन्य समान विकल्पों के विपरीत,
-फसैनिटाइज = फ्लोट-डिवाइड-बाय-जीरो द्वारा सक्षम नहीं है -फसैनिटाइज = अपरिभाषित, जबसे
शून्य से फ़्लोटिंग-पॉइंट डिवीजन अनंत प्राप्त करने का एक वैध तरीका हो सकता है
और NaNs।

-फसैनिटाइज = फ्लोट-कास्ट-ओवरफ्लो
यह विकल्प फ्लोटिंग-पॉइंट प्रकार को पूर्णांक रूपांतरण जाँच में सक्षम बनाता है। हम जाँच
कि रूपांतरण का परिणाम अतिप्रवाह नहीं होता है। अन्य समान के विपरीत
विकल्प -फसैनिटाइज = फ्लोट-कास्ट-ओवरफ्लो द्वारा सक्षम नहीं है -फसैनिटाइज = अपरिभाषित.
"FE_INVALID" अपवाद सक्षम होने पर यह विकल्प ठीक से काम नहीं करता है।

-fsanitize=गैर-विशेषता
यह विकल्प कॉल के इंस्ट्रुमेंटेशन को सक्षम बनाता है, यह जांचता है कि क्या शून्य मान नहीं हैं
"नॉननल" फ़ंक्शन द्वारा गैर-शून्य मान की आवश्यकता के रूप में चिह्नित तर्कों को पारित किया गया
विशेषता।

-fsanitize=रिटर्न-गैर-अशक्त-विशेषता
यह विकल्प के साथ चिह्नित कार्यों में रिटर्न स्टेटमेंट के उपकरण को सक्षम बनाता है
"रिटर्न_नॉननल" फ़ंक्शन विशेषता, ऐसे से अशक्त मानों की वापसी का पता लगाने के लिए
कार्य करता है.

-फसैनिटाइज = बूल
यह विकल्प बूल से लोड के इंस्ट्रूमेंटेशन को सक्षम बनाता है। यदि 0/1 . के अलावा कोई मान
लोड किया जाता है, एक रन-टाइम त्रुटि जारी की जाती है।

-फसैनिटाइज = एनम
यह विकल्प एनम प्रकार से लोड के इंस्ट्रूमेंटेशन को सक्षम बनाता है। यदि कोई मान
एनम प्रकार के लिए मानों की सीमा के बाहर लोड किया गया है, एक रन-टाइम त्रुटि है
जारी किया गया।

-फसैनिटाइज = vptr
यह विकल्प C++ मेंबर फंक्शन कॉल्स, मेंबर एक्सेस के इंस्ट्रुमेंटेशन को सक्षम बनाता है
और पॉइंटर्स के बीच बेस और व्युत्पन्न कक्षाओं के बीच कुछ रूपांतरण, सत्यापित करने के लिए
संदर्भित वस्तु का सही गतिशील प्रकार है।

जबकि -फ्ट्रैपवी हस्ताक्षरित अतिप्रवाह के उत्सर्जन के लिए जाल का कारण बनता है, -फसैनिटाइज = अपरिभाषित
निदानात्मक संदेश देता है। यह वर्तमान में केवल भाषाओं के C परिवार के लिए काम करता है।

-फनो-सैनिटाइज = सभी
यह विकल्प पहले से सक्षम सभी सैनिटाइज़र को निष्क्रिय कर देता है। -फसैनिटाइज = सभी नहीं है
अनुमति दी गई है, क्योंकि कुछ सैनिटाइज़र का एक साथ उपयोग नहीं किया जा सकता है।

-फासन-छाया-ऑफसेट =संख्या
यह विकल्प GCC को AddressSanitizer चेक में कस्टम शैडो ऑफ़सेट का उपयोग करने के लिए बाध्य करता है। यह है
कर्नेल में विभिन्न छाया मेमोरी लेआउट के साथ प्रयोग करने के लिए उपयोगी
एड्रेस सैनिटाइजर।

-fsanitize-वसूली[=opts]
-फसैनिटाइज-रिकवरी= अल्पविराम में उल्लिखित सैनिटाइज़र के लिए त्रुटि पुनर्प्राप्ति मोड को नियंत्रित करता है-
की अलग सूची opts. सैनिटाइज़र घटक के लिए इस विकल्प को सक्षम करने से यह होता है
प्रोग्राम चलाना जारी रखने का प्रयास करें जैसे कि कोई त्रुटि नहीं हुई। इसका मतलब है एकाधिक
रनटाइम त्रुटियों को एकल प्रोग्राम रन में रिपोर्ट किया जा सकता है, और बाहर निकलने का कोड
त्रुटियों की सूचना मिलने पर भी कार्यक्रम सफलता का संकेत दे सकता है। NS
-फनो-सैनिटाइज-रिकवरी= इस व्यवहार को बदलने के लिए विकल्प का उपयोग किया जा सकता है: केवल पहला
पता चला त्रुटि की सूचना दी जाती है और प्रोग्राम फिर एक गैर-शून्य निकास कोड के साथ बाहर निकलता है।

वर्तमान में यह सुविधा केवल के लिए काम करती है -फसैनिटाइज = अपरिभाषित (और इसके उपविकल्प को छोड़कर
एसटी -फसैनिटाइज = अगम्य और -फसैनिटाइज = रिटर्न), -फसैनिटाइज = फ्लोट-कास्ट-ओवरफ्लो,
-फसैनिटाइज = फ्लोट-डिवाइड-बाय-जीरो और -fsanitize=कर्नेल-पता. इन सैनिटाइज़र के लिए
त्रुटि पुनर्प्राप्ति डिफ़ॉल्ट रूप से चालू है। -fsanitize-recover = all और
-फनो-सैनिटाइज़-पुनर्प्राप्ति = सभी भी स्वीकार किया जाता है, पूर्व सभी के लिए वसूली को सक्षम बनाता है
सैनिटाइज़र जो इसका समर्थन करते हैं, बाद वाले सभी सैनिटाइज़र के लिए रिकवरी को निष्क्रिय कर देते हैं
इसका समर्थन करें।

स्पष्ट के बिना सिंटेक्स opts पैरामीटर बहिष्कृत है। यह के बराबर है

-फसैनिटाइज-रिकवरी = अपरिभाषित, फ्लोट-कास्ट-ओवरफ्लो, फ्लोट-डिवाइड-बाय-जीरो

उसी प्रकार -फनो-सैनिटाइज-रिकवरी के बराबर है

-फनो-सैनिटाइज-पुनर्प्राप्ति = अपरिभाषित, फ्लोट-कास्ट-ओवरफ्लो, फ्लोट-डिवाइड-बाय-जीरो

-fsanitize-अपरिभाषित-ट्रैप-ऑन-त्रुटि
RSI -fsanitize-अपरिभाषित-ट्रैप-ऑन-त्रुटि विकल्प संकलक को रिपोर्ट करने का निर्देश देता है
"libubsan" लाइब्रेरी रूटीन के बजाय "__builtin_trap" का उपयोग करके अपरिभाषित व्यवहार।
इसका लाभ यह है कि "लिब्यूसन" पुस्तकालय की आवश्यकता नहीं है और यह जुड़ा नहीं है
में, इसलिए यह फ्रीस्टैंडिंग वातावरण में भी प्रयोग करने योग्य है।

-फचेक-सूचक-सीमा
पॉइंटर बाउंड चेकर इंस्ट्रूमेंटेशन सक्षम करें। प्रत्येक स्मृति संदर्भ को यंत्रीकृत किया जाता है
इसके साथ जुड़े सीमाओं के खिलाफ मेमोरी एक्सेस के लिए उपयोग किए जाने वाले पॉइंटर के चेक के साथ
सूचक।

वर्तमान में इंटेल एमपीएक्स के लिए केवल एक कार्यान्वयन उपलब्ध है, इस प्रकार x86 लक्ष्य और
-एमएमपीएक्स इस सुविधा को सक्षम करने के लिए आवश्यक हैं। MPX-आधारित इंस्ट्रुमेंटेशन की आवश्यकता है a
हार्डवेयर में एमपीएक्स को सक्षम करने और सीमा उल्लंघन संकेतों को संभालने के लिए रनटाइम लाइब्रेरी। द्वारा
डिफ़ॉल्ट जब -फचेक-सूचक-सीमा और -एमएमपीएक्स किसी प्रोग्राम को लिंक करने के लिए विकल्पों का उपयोग किया जाता है,
GCC ड्राइवर के विरुद्ध लिंक करता है libmpx रनटाइम लाइब्रेरी और libmpxwrappers पुस्तकालय। यह
एक लिंकर को '-z bndplt' भी पास करता है यदि वह इस विकल्प का समर्थन करता है (जिसे चेक किया गया है
libmpx कॉन्फ़िगरेशन पर)। ध्यान दें कि लिंकर के पुराने संस्करण विकल्प को अनदेखा कर सकते हैं। सोना
लिंकर '-z bndplt' विकल्प का समर्थन नहीं करता है। लिंकर सभी में '-z bndplt' समर्थन के बिना
गतिशील पुस्तकालयों के लिए कॉल समग्र सुरक्षा स्तर को कम करते हुए पारित सीमा खो देते हैं। यह है
'-z bndplt' समर्थन के साथ लिंकर का उपयोग करने की अत्यधिक अनुशंसा की जाती है। मामले में ऐसा लिंकर नहीं है
उपलब्ध है, इसे हमेशा उपयोग करने की सलाह दी जाती है -स्थैतिक-libmpxwrappers बेहतर सुरक्षा के लिए
स्तर या उपयोग स्थैतिक गतिशील पुस्तकालयों के लिए बाहरी कॉल से पूरी तरह से बचने के लिए। एमपीएक्स-
आधारित उपकरण का उपयोग डिबगिंग के लिए किया जा सकता है और उत्पादन में भी शामिल किया जा सकता है
प्रोग्राम सुरक्षा बढ़ाने के लिए कोड। उपयोग के आधार पर, आपके पास भिन्न हो सकते हैं
रनटाइम लाइब्रेरी के लिए आवश्यकताएँ। एमपीएक्स रनटाइम लाइब्रेरी का वर्तमान संस्करण
डिबगिंग टूल के रूप में उपयोग के लिए अधिक उन्मुख है। MPX रनटाइम लाइब्रेरी उपयोग का तात्पर्य है
-एलपीथ्रेड। यह भी देखें -स्थैतिक-libmpx. रनटाइम लाइब्रेरी व्यवहार प्रभावित हो सकता है
विभिन्न का उपयोग कर सीएचकेपी_आरटी_* पर्यावरण चर। देखो
<https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler> अधिक के लिए
विवरण।

जेनरेटेड इंस्ट्रूमेंटेशन को विभिन्न द्वारा नियंत्रित किया जा सकता है -fchkp-* विकल्प और द्वारा
"bnd_variable_size" संरचना फ़ील्ड विशेषता और "bnd_legacy", और "bnd_instrument"
फ़ंक्शन विशेषताएँ। जीसीसी नियंत्रित करने के लिए कई अंतर्निहित कार्य भी प्रदान करता है
सूचक बाउंड चेकर।

-fchkp-चेक-अपूर्ण-प्रकार
अपूर्ण प्रकार वाले चरों के लिए पॉइंटर बाउंड चेक जेनरेट करें। द्वारा सक्षम
चूक।

-fchkp-संकीर्ण-सीमा
ऑब्जेक्ट फ़ील्ड पर पॉइंटर्स के लिए पॉइंटर बाउंड चेकर द्वारा उपयोग की जाने वाली सीमाओं को नियंत्रित करता है। अगर
संकीर्णता सक्षम है तो फ़ील्ड सीमाओं का उपयोग किया जाता है। अन्यथा वस्तु सीमा का उपयोग किया जाता है।
यह भी देखें -fchkp-संकीर्ण-से-अंतरतम-सरणी और -fchkp-प्रथम-फ़ील्ड-है-खुद-सीमा.
डिफ़ॉल्ट रूप से सक्षम।

-fchkp-प्रथम-फ़ील्ड-है-खुद-सीमा
फोर्स पॉइंटर बाउंड चेकर को पहले के पते के लिए संकुचित सीमाओं का उपयोग करने के लिए बाध्य करता है
संरचना में क्षेत्र। डिफ़ॉल्ट रूप से पहले फ़ील्ड के पॉइंटर की सीमा समान होती है
संपूर्ण संरचना के सूचक के रूप में।

-fchkp-संकीर्ण-से-अंतरतम-सरणी
नेस्टेड के मामले में पॉइंटर बाउंड चेकर को अंतरतम सरणियों की सीमा का उपयोग करने के लिए बाध्य करता है
स्थिर सरणी पहुंच। डिफ़ॉल्ट रूप से यह विकल्प अक्षम है और सबसे बाहरी की सीमा है
सरणी का उपयोग किया जाता है।

-fchkp-अनुकूलित
सूचक बाउंड चेकर अनुकूलन सक्षम करता है। अनुकूलन पर डिफ़ॉल्ट रूप से सक्षम
स्तर -O, -ओ३, -ओ३.

-fchkp-उपयोग-तेज़-स्ट्रिंग-फ़ंक्शंस
पॉइंटर द्वारा स्ट्रिंग फ़ंक्शंस के *_nobnd संस्करणों (सीमाओं की प्रतिलिपि नहीं) के उपयोग को सक्षम करता है
बाउंड चेकर। डिफ़ॉल्ट रूप से अक्षम।

-fchkp-उपयोग-nochk-स्ट्रिंग-फ़ंक्शंस
पॉइंटर द्वारा स्ट्रिंग फ़ंक्शंस के *_nochk संस्करणों (सीमा की जाँच नहीं) के उपयोग को सक्षम करता है
बाउंड चेकर। डिफ़ॉल्ट रूप से अक्षम।

-fchkp-उपयोग-स्थिर-सीमा
पॉइंटर बाउंड चेकर को स्टेटिक बाउंड्स होल्डिंग स्टैटिक बाउंड जेनरेट करने की अनुमति दें
चर। डिफ़ॉल्ट रूप से सक्षम।

-fchkp-उपयोग-स्थिर-स्थिरांक-सीमा
प्रत्येक को उत्पन्न करने के बजाय स्थिर सीमाओं के लिए स्थिर-प्रारंभिक सीमाओं का उपयोग करें
समय उनकी आवश्यकता है। डिफ़ॉल्ट रूप से सक्षम जब -fchkp-उपयोग-स्थिर-सीमा सक्षम किया गया है।

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

-fchkp-चेक-पढ़ें
पॉइंटर बाउंड चेकर को मेमोरी में सभी रीड एक्सेस के लिए चेक जेनरेट करने का निर्देश देता है।
डिफ़ॉल्ट रूप से सक्षम।

-fchkp-चेक-लिखें
पॉइंटर बाउंड चेकर को मेमोरी में सभी राइट एक्सेस के लिए चेक जेनरेट करने का निर्देश देता है।
डिफ़ॉल्ट रूप से सक्षम।

-fchkp-स्टोर-सीमा
पॉइंटर बाउंड चेकर को पॉइंटर राइट्स के लिए बाउंड स्टोर्स जेनरेट करने का निर्देश देता है।
डिफ़ॉल्ट रूप से सक्षम।

-fchkp-उपकरण-कॉल
पॉइंटर बाउंड चेकर को कॉल करने के लिए पॉइंटर बाउंड पास करने का निर्देश देता है। डिफ़ॉल्ट रूप से सक्षम।

-fchkp-साधन-चिह्नित-केवल
पॉइंटर बाउंड चेकर को केवल के साथ चिह्नित कार्यों के लिए निर्देश देता है
"bnd_instrument" विशेषता। डिफ़ॉल्ट रूप से अक्षम।

-fchkp-उपयोग-आवरण
पॉइंटर बाउंड चेकर को कॉल को बिल्ट-इन फ़ंक्शंस में कॉल के साथ बदलने की अनुमति देता है
आवरण कार्य। कब -fchkp-उपयोग-आवरण किसी प्रोग्राम को जोड़ने के लिए उपयोग किया जाता है, GCC ड्राइवर
स्वचालित रूप से के खिलाफ लिंक करता है libmpxwrappers। यह भी देखें -स्थैतिक-libmpxwrappers. सक्रिय
डिफ़ॉल्ट रूप से

-फडंप-फाइनल-इंसंस[=पट्टिका]
अंतिम आंतरिक प्रतिनिधित्व (RTL) को डंप करें पट्टिका. यदि वैकल्पिक तर्क है
छोड़ा गया (या यदि पट्टिका है "।"), डंप फ़ाइल का नाम संलग्न करके निर्धारित किया जाता है
संकलन आउटपुट फ़ाइल नाम के लिए ".gkd"।

-fतुलना-डीबग[=opts]
यदि संकलन के दौरान कोई त्रुटि नहीं होती है, तो संकलक को दूसरी बार चलाएँ, जोड़कर opts और
-fतुलना-डीबग-सेकंड दूसरे संकलन के लिए पारित तर्कों के लिए। डंप
दोनों संकलनों में अंतिम आंतरिक प्रतिनिधित्व, और यदि वे भिन्न हैं तो एक त्रुटि प्रिंट करें।

यदि बराबर चिह्न छोड़ा जाता है, तो डिफ़ॉल्ट -gtoggle प्रयोग किया जाता है।

पर्यावरण चर GCC_COMPARE_DEBUG, यदि परिभाषित किया गया है, गैर-रिक्त और अशून्य,
परोक्ष रूप से सक्षम करता है -fतुलना-डीबग. अगर GCC_COMPARE_DEBUG एक स्ट्रिंग के लिए परिभाषित किया गया है
एक डैश से शुरू होता है, फिर इसका उपयोग किया जाता है opts, अन्यथा डिफ़ॉल्ट -gtoggle is
उपयोग किया गया।

-फकंपेयर-डीबग=, समान चिह्न के साथ लेकिन बिना opts, के बराबर है
-फनो-तुलना-डीबग, जो अंतिम प्रतिनिधित्व के डंपिंग को अक्षम करता है और
दूसरा संकलन, यहां तक ​​कि रोकना GCC_COMPARE_DEBUG प्रभावी होने से।

के दौरान पूर्ण कवरेज सत्यापित करने के लिए -fतुलना-डीबग परीक्षण, सेट GCC_COMPARE_DEBUG कहना
-fतुलना-डीबग-ओवरराइड नहीं;, जिसे जीसीसी किसी भी वास्तविक में अमान्य विकल्प के रूप में अस्वीकार करता है
संकलन (प्रीप्रोसेसिंग, असेंबली या लिंकिंग के बजाय)। सिर्फ एक चेतावनी पाने के लिए,
की स्थापना GCC_COMPARE_DEBUG सेवा मेरे -w%n-fतुलना-डीबग नहीं ओवरराइड करूँगा।

-fतुलना-डीबग-सेकंड
अनुरोधित दूसरे संकलन के लिए यह विकल्प संकलक को निहित रूप से पारित किया गया है
by -fतुलना-डीबग, चेतावनियों को शांत करने और अन्य विकल्पों को छोड़ने के विकल्पों के साथ
जो फाइलों या मानक आउटपुट के साइड-इफेक्ट कंपाइलर आउटपुट का कारण बनता है।
डंप फ़ाइलें और संरक्षित अस्थायी फ़ाइलों का नाम बदल दिया जाता है ताकि ".gk" को शामिल किया जा सके
दूसरे संकलन के दौरान अतिरिक्त विस्तार, उन्हें अधिलेखित करने से बचने के लिए
पहले द्वारा उत्पन्न।

जब यह विकल्प कंपाइलर ड्राइवर को दिया जाता है, तो इसका कारण बनता है प्रथम करने के लिए संकलन
छोड़ दिया जाए, जो इसे कंपाइलर को उचित रूप से डिबग करने के अलावा कुछ और के लिए उपयोगी बनाता है।

-फेलिमिनेट-बौना2-डुप्स
DWARF 2 के बारे में डुप्लिकेट जानकारी को हटाकर डिबगिंग जानकारी को संपीड़ित करें
प्रत्येक प्रतीक। यह विकल्प केवल DWARF 2 डिबगिंग उत्पन्न करते समय समझ में आता है
के साथ जानकारी -जीडवार्फ-2.

-स्त्री-संरचना-डीबग-आधारभूत
संरचना जैसे प्रकारों के लिए डिबग जानकारी का उत्सर्जन केवल तभी करें जब का मूल नाम
संकलन स्रोत फ़ाइल उस फ़ाइल के मूल नाम से मेल खाती है जिसमें संरचना परिभाषित है।

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

यह विकल्प केवल DWARF 2 के साथ काम करता है।

-स्त्री-संरचना-डीबग-कम किया गया
संरचना जैसे प्रकारों के लिए डिबग जानकारी का उत्सर्जन केवल तभी करें जब का मूल नाम
संकलन स्रोत फ़ाइल उस फ़ाइल के मूल नाम से मेल खाती है जिसमें प्रकार परिभाषित किया गया है,
जब तक कि संरचना एक टेम्प्लेट या सिस्टम हेडर में परिभाषित न हो।

यह विकल्प डिबगिंग जानकारी के आकार को काफी कम कर देता है, कुछ के साथ
डीबगर को प्रकार की जानकारी में संभावित नुकसान। देखो -स्त्री-संरचना-डीबग-आधारभूत
अधिक आक्रामक विकल्प के लिए। देखो -स्त्री-संरचना-डीबग-विस्तृत अधिक विस्तृत के लिए
नियंत्रित करते हैं.

यह विकल्प केवल DWARF 2 के साथ काम करता है।

-स्त्री-संरचना-डीबग-विस्तृत[=कल्पना-सूची]
स्ट्रक्चर-जैसे प्रकार निर्दिष्ट करें जिसके लिए कंपाइलर डीबग जानकारी उत्पन्न करता है। NS
इरादा विभिन्न ऑब्जेक्ट फ़ाइलों के बीच डुप्लिकेट स्ट्रक्चर डिबग जानकारी को कम करना है
एक ही कार्यक्रम के भीतर।

यह विकल्प का विस्तृत संस्करण है -स्त्री-संरचना-डीबग-कम किया गया और
-स्त्री-संरचना-डीबग-आधारभूत, जो अधिकांश जरूरतों के लिए कार्य करता है।

एक विनिर्देशन में सिंटैक्स होता है [dir:|इंड:][ऑर्ड:|शैली:](कोई|व्यवस्था|आधार|कोई नहीं)

वैकल्पिक पहला शब्द विनिर्देश को सीधे उपयोग किए जाने वाले स्ट्रक्चर्स तक सीमित करता है
(dir:) या परोक्ष रूप से उपयोग किया जाता है (इंड:) एक संरचना प्रकार का उपयोग सीधे तब किया जाता है जब वह प्रकार होता है
एक चर का, सदस्य। पॉइंटर्स से स्ट्रक्चर्स के माध्यम से अप्रत्यक्ष उपयोग उत्पन्न होते हैं। अर्थात्,
जब अपूर्ण संरचना का उपयोग मान्य होता है, तो उपयोग अप्रत्यक्ष होता है। एक उदाहरण है struct
एक प्रत्यक्ष; struct दो * परोक्ष;.

वैकल्पिक दूसरा शब्द विनिर्देश को सामान्य संरचना तक सीमित करता है (ऑर्ड:) या
सामान्य संरचनाएं (शैली:) जेनेरिक स्ट्रक्चर समझाने के लिए थोड़ा जटिल हैं। सी ++ के लिए,
ये टेम्पलेट वर्गों, या गैर-टेम्पलेट कक्षाओं की गैर-स्पष्ट विशेषज्ञता हैं
उपरोक्त के भीतर। अन्य प्रोग्रामिंग भाषाओं में जेनरिक होते हैं, लेकिन
-स्त्री-संरचना-डीबग-विस्तृत अभी तक उन्हें लागू नहीं करता है।

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

आपको अपने आवेदन के लिए सर्वोत्तम सेटिंग्स निर्धारित करने के लिए प्रयोग करने की आवश्यकता हो सकती है।

डिफ़ॉल्ट है -फेमिट-स्ट्रक्चर-डीबग-विस्तृत = सभी.

यह विकल्प केवल DWARF 2 के साथ काम करता है।

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

-फडेबग-उपसर्ग-मानचित्र=पुराना=नई
निर्देशिका में फ़ाइलें संकलित करते समय पुराना, डिबगिंग जानकारी रिकॉर्ड करें जो उनका वर्णन करती है
in नई बजाय.

-फनो-बौना2-सीएफआई-एएसएम
Emit DWARF 2 उपयोग करने के बजाय कंपाइलर जनरेटेड ".eh_frame" सेक्शन के रूप में जानकारी को खोल दें
गैस ".cfi_*" निर्देश।

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

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

-Q कम्पाइलर को प्रत्येक फंक्शन नाम को संकलित करने के लिए प्रिंट आउट करवाता है, और कुछ प्रिंट करता है
समाप्त होने पर प्रत्येक पास के बारे में आंकड़े।

-फटाइम-रिपोर्ट
कंपाइलर को प्रत्येक पास द्वारा खर्च किए गए समय के बारे में कुछ आंकड़े प्रिंट करता है जब यह
खत्म।

-एफएमईएम-रिपोर्ट
संकलक को स्थायी स्मृति आवंटन के बारे में कुछ आँकड़े प्रिंट करवाता है जब यह
खत्म।

-fmem-रिपोर्ट-wpa
WPA के लिए स्थायी मेमोरी आवंटन के बारे में कुछ आंकड़े कंपाइलर को प्रिंट करवाते हैं
केवल चरण।

-फप्री-आईपीए-मेम-रिपोर्ट
-फपोस्ट-आईपीए-मेम-रिपोर्ट
संकलक को या . से पहले स्थायी स्मृति आवंटन के बारे में कुछ आंकड़े मुद्रित करता है
अंतरप्रक्रियात्मक अनुकूलन के बाद।

-फ्रोफाइल-रिपोर्ट
(अनुमानित) प्रोफ़ाइल की स्थिरता के बारे में कुछ आंकड़े संकलक को प्रिंट करता है
और व्यक्तिगत पास का प्रभाव।

-फस्टैक-उपयोग
प्रति-फ़ंक्शन पर प्रोग्राम के लिए कंपाइलर आउटपुट स्टैक उपयोग जानकारी बनाता है
आधार। डंप के लिए फ़ाइल नाम संलग्न करके बनाया गया है .SU को औक्सनाम. औक्सनाम is
आउटपुट फ़ाइल के नाम से उत्पन्न, यदि स्पष्ट रूप से निर्दिष्ट किया गया है और यह एक नहीं है
निष्पादन योग्य, अन्यथा यह स्रोत फ़ाइल का बेसनाम है। एक प्रविष्टि . से बनी है
तीन क्षेत्र:

* समारोह का नाम।

* कई बाइट्स।

* एक या अधिक क्वालीफायर: "स्थिर", "गतिशील", "बाध्य"।

क्वालीफायर "स्थिर" का अर्थ है कि फ़ंक्शन स्थिर रूप से स्टैक में हेरफेर करता है: a
फ़ंक्शन प्रविष्टि पर फ़्रेम के लिए बाइट्स की निश्चित संख्या आवंटित की जाती है और जारी की जाती है
समारोह से बाहर निकलें; फ़ंक्शन में अन्यथा कोई स्टैक समायोजन नहीं किया जाता है। दूसरा
फ़ील्ड बाइट्स की यह निश्चित संख्या है।

क्वालीफायर "डायनेमिक" का अर्थ है कि फ़ंक्शन गतिशील रूप से स्टैक में हेरफेर करता है: in
ऊपर वर्णित स्थिर आवंटन के अलावा, स्टैक समायोजन में किए जाते हैं
फ़ंक्शन का मुख्य भाग, उदाहरण के लिए फ़ंक्शन कॉल के आस-पास तर्कों को पुश/पॉप करने के लिए। अगर
क्वालीफायर "बाउंडेड" भी मौजूद है, इन समायोजनों की मात्रा सीमित है
संकलन समय और दूसरा क्षेत्र उपयोग किए गए स्टैक की कुल मात्रा की ऊपरी सीमा है
समारोह द्वारा। यदि यह मौजूद नहीं है, तो इन समायोजनों की राशि सीमित नहीं है
संकलन समय पर और दूसरा क्षेत्र केवल बंधे हुए भाग का प्रतिनिधित्व करता है।

-फ्रोफाइल-आर्क्स
कोड जोड़ें ताकि प्रोग्राम प्रवाहित हो आर्क्स वाद्य यंत्र हैं। कार्यक्रम के निष्पादन के दौरान
रिकॉर्ड करता है कि प्रत्येक शाखा और कॉल कितनी बार निष्पादित की जाती है और कितनी बार ली जाती है
या लौटता है। जब संकलित प्रोग्राम बाहर निकलता है तो यह इस डेटा को एक फ़ाइल में सहेजता है जिसे कहा जाता है
auxname.gcda प्रत्येक स्रोत फ़ाइल के लिए। डेटा का उपयोग प्रोफ़ाइल-निर्देशित के लिए किया जा सकता है
अनुकूलन (-fशाखा-संभावनाएं), या परीक्षण कवरेज विश्लेषण के लिए
(-फटेस्ट-कवरेज) प्रत्येक वस्तु फ़ाइल का औक्सनाम के नाम से उत्पन्न होता है
आउटपुट फ़ाइल, यदि स्पष्ट रूप से निर्दिष्ट है और यह अंतिम निष्पादन योग्य नहीं है, अन्यथा यह
स्रोत फ़ाइल का बेसनाम है। दोनों ही मामलों में कोई भी प्रत्यय हटा दिया जाता है (जैसे
foo.gcda इनपुट फ़ाइल के लिए डीआईआर/फू.सीया, डीआईआर/foo.gcda के रूप में निर्दिष्ट आउटपुट फ़ाइल के लिए -o
dir / foo.o).

--कवरेज
इस विकल्प का उपयोग कवरेज विश्लेषण के लिए उपकरण कोड को संकलित और लिंक करने के लिए किया जाता है। NS
विकल्प का समानार्थी है -फ्रोफाइल-आर्क्स -फटेस्ट-कवरेज (संकलन करते समय) और -एलजीसीओवी
(लिंक करते समय)। अधिक विवरण के लिए उन विकल्पों के लिए दस्तावेज़ देखें।

* स्रोत फ़ाइलों को संकलित करें -फ्रोफाइल-आर्क्स प्लस ऑप्टिमाइज़ेशन और कोड जनरेशन
विकल्प। परीक्षण कवरेज विश्लेषण के लिए, अतिरिक्त का उपयोग करें -फटेस्ट-कवरेज विकल्प.
आपको प्रोग्राम में प्रत्येक स्रोत फ़ाइल को प्रोफाइल करने की आवश्यकता नहीं है।

* अपनी ऑब्जेक्ट फ़ाइलों को के साथ लिंक करें -एलजीसीओवी or -फ्रोफाइल-आर्क्स (उत्तरार्द्ध का तात्पर्य है
भूतपूर्व)।

* आर्क प्रोफाइल बनाने के लिए प्रोग्राम को प्रतिनिधि वर्कलोड पर चलाएं
जानकारी। इसे कितनी भी बार दोहराया जा सकता है। आप समवर्ती चला सकते हैं
आपके प्रोग्राम के उदाहरण, और बशर्ते कि फ़ाइल सिस्टम लॉकिंग का समर्थन करता हो,
डेटा फ़ाइलों को सही ढंग से अपडेट किया जाएगा। इसके अलावा "कांटा" कॉल का पता लगाया जाता है और
सही ढंग से संभाला (दोहरी गिनती नहीं होगी)।

* प्रोफ़ाइल-निर्देशित अनुकूलन के लिए, स्रोत फ़ाइलों को फिर से उसी के साथ संकलित करें
अनुकूलन और कोड जनरेशन विकल्प प्लस -fशाखा-संभावनाएं.

* परीक्षण कवरेज विश्लेषण के लिए, उपयोग करें जीसीओवी से मानव पठनीय जानकारी का उत्पादन करने के लिए
la .gcno और .gcda फ़ाइलें। को देखें जीसीओवी आगे के लिए दस्तावेज
जानकारी.

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

-फटेस्ट-कवरेज
एक नोट फ़ाइल तैयार करें कि जीसीओवी कोड-कवरेज उपयोगिता प्रोग्राम दिखाने के लिए उपयोग कर सकती है
कवरेज। प्रत्येक स्रोत फ़ाइल की नोट फ़ाइल कहलाती है औक्सनाम.gcno। को देखें
-फ्रोफाइल-आर्क्स के विवरण के लिए उपरोक्त विकल्प औक्सनाम और कैसे करना है पर निर्देश
परीक्षण कवरेज डेटा उत्पन्न करें। कवरेज डेटा स्रोत फ़ाइलों से अधिक निकटता से मेल खाता है यदि
आप अनुकूलन नहीं करते हैं।

-एफडीबीजी-सीएनटी-सूची
सभी डिबग काउंटरों के लिए नाम और काउंटर की ऊपरी सीमा को प्रिंट करें।

-एफडीबीजी-सीएनटी=काउंटर-वैल्यू-लिस्ट
आंतरिक डीबग काउंटर ऊपरी बाउंड सेट करें। काउंटर-वैल्यू-लिस्ट अल्पविराम से अलग किया गया है
की सूची नाम:मूल्य जोड़े जो प्रत्येक डिबग काउंटर की ऊपरी सीमा निर्धारित करते हैं नाम सेवा मेरे
मूल्य. सभी डिबग काउंटरों में "UINT_MAX" की प्रारंभिक ऊपरी सीमा होती है; इस प्रकार "dbg_cnt"
हमेशा सत्य लौटाता है जब तक कि ऊपरी सीमा इस विकल्प द्वारा निर्धारित नहीं की जाती है। उदाहरण के लिए, के साथ
-एफडीबीजी-सीएनटी=डीसीई:10,टेल_कॉल:0, "dbg_cnt(dce)" केवल पहले 10 के लिए सही है
आह्वान।

- योग्य-तरह-पास
-fअक्षम-तरह-पास=श्रेणी-सूची
यह विकल्पों का एक सेट है जिसका उपयोग अनुकूलन को स्पष्ट रूप से अक्षम/सक्षम करने के लिए किया जाता है
गुजरता। ये विकल्प GCC डीबग करने के लिए उपयोग के लिए अभिप्रेत हैं। कंपाइलर उपयोगकर्ताओं को चाहिए
इसके बजाय पास को सक्षम/अक्षम करने के लिए नियमित विकल्पों का उपयोग करें।

-fdisable-आईपीए-पास
IPA पास अक्षम करें पास. पास पास नाम है। यदि वही पास स्थिर है
कंपाइलर में कई बार इनवॉइस किया जाता है, पास का नाम a . के साथ जोड़ा जाना चाहिए
1 से शुरू होने वाली अनुक्रमिक संख्या।

-fअक्षम-आरटीएल-पास
-fअक्षम-आरटीएल-पास=श्रेणी-सूची
आरटीएल पास अक्षम करें पास. पास पास नाम है। यदि वही पास स्थिर है
कंपाइलर में कई बार इनवॉइस किया जाता है, पास का नाम a . के साथ जोड़ा जाना चाहिए
1 से शुरू होने वाली अनुक्रमिक संख्या। श्रेणी-सूची अल्पविराम से अलग की गई सूची है
फ़ंक्शन रेंज या असेंबलर नाम। प्रत्येक श्रेणी एक संख्या जोड़ी है जिसे a . द्वारा अलग किया जाता है
बृहदान्त्र। सीमा दोनों सिरों में समावेशी है। यदि सीमा तुच्छ है, तो संख्या
जोड़ी को एकल संख्या के रूप में सरल बनाया जा सकता है। यदि फ़ंक्शन का कॉल ग्राफ़ नोड है
यूआईडी निर्दिष्ट श्रेणियों में से एक के भीतर आता है, पास उसके लिए अक्षम है
समारोह। यूआईडी डंप फ़ाइल के फ़ंक्शन हेडर में दिखाया गया है, और पास
विकल्प का उपयोग करके नामों को डंप किया जा सकता है -फडंप-पास.

-fdisable-पेड़-पास
-fdisable-पेड़-पास=श्रेणी-सूची
ट्री पास अक्षम करें पास. देखना -fdisable-rtl विकल्प के विवरण के लिए
तर्क।

-फेनेबल-आईपीए-पास
आईपीए पास सक्षम करें पास. पास पास नाम है। यदि वही पास स्थिर है
कंपाइलर में कई बार इनवॉइस किया जाता है, पास का नाम a . के साथ जोड़ा जाना चाहिए
1 से शुरू होने वाली अनुक्रमिक संख्या।

-फेनेबल-आरटीएल-पास
-फेनेबल-आरटीएल-पास=श्रेणी-सूची
आरटीएल पास सक्षम करें पास. देखना -fdisable-rtl विकल्प तर्क विवरण के लिए और
उदाहरण।

फलने योग्य वृक्ष-पास
फलने योग्य वृक्ष-पास=श्रेणी-सूची
ट्री पास सक्षम करें पास. देखना -fdisable-rtl विकल्प तर्कों के विवरण के लिए।

इन विकल्पों के उपयोग को दर्शाने वाले कुछ उदाहरण यहां दिए गए हैं।

# सभी कार्यों के लिए ccp1 को अक्षम करें
-fdisable-पेड़-ccp1
# उस फ़ंक्शन के लिए पूर्ण अनरोल अक्षम करें जिसका cgraph नोड uid 1 है
-फेनेबल-पेड़-कुनरोल = 1
# निम्नलिखित श्रेणियों में कार्यों के लिए gcse2 को अक्षम करें [1,1],
# [300,400], और [400,1000]
# foo और foo2 फ़ंक्शन के लिए gcse2 को अक्षम करें
-fdisable-rtl-gcse2=foo,foo2
# अर्ली इनलाइनिंग अक्षम करें
-fdisable-पेड़-einline
# आईपीए इनलाइनिंग अक्षम करें
-fdisable-आईपीए-इनलाइन
# ट्री फुल अनरोल सक्षम करें
-फेनेबल-पेड़-अनरोल

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

डीबग डंप को सक्षम किया जा सकता है a -fdump-rtl स्विच या कुछ -d विकल्प पत्र। यहाँ
में उपयोग के लिए संभावित अक्षर हैं पास और पत्र, और उनके अर्थ:

-फडंप-आरटीएल-संरेखण
डंप के बाद शाखा संरेखण की गणना की गई है।

-fdump-rtl-asmcons
आरटीएल स्टेटमेंट्स को ठीक करने के बाद डंप करें जो असंतुष्ट/बाहर बाधाओं से संतुष्ट हैं।

-fdump-rtl-auto_inc_dec
ऑटो-इंक-दिसंबर खोज के बाद डंप करें। यह पास केवल आर्किटेक्चर पर चलता है कि
ऑटो इंक या ऑटो डीसी निर्देश हैं।

-फडंप-आरटीएल-बाधाएं
बैरियर निर्देशों की सफाई के बाद डंप करें।

-फडंप-आरटीएल-बीबीपार्ट
गर्म और ठंडे बुनियादी ब्लॉकों को विभाजित करने के बाद डंप करें।

-fdump-rtl-bbro
ब्लॉक रीऑर्डर करने के बाद डंप करें।

-फडंप-आरटीएल-बीटीएल1
-फडंप-आरटीएल-बीटीएल2
-फडंप-आरटीएल-बीटीएल1 और -फडंप-आरटीएल-बीटीएल2 दो शाखा लक्ष्य के बाद डंपिंग सक्षम करें
लोड अनुकूलन गुजरता है।

-फडंप-आरटीएल-बाईपास
कूदने के बाद डंप करें और प्रवाह अनुकूलन को नियंत्रित करें।

-फडंप-आरटीएल-गठबंधन
RTL निर्देश संयोजन पास होने के बाद डंप करें।

-फडम्प-आरटीएल-कंपगोटोस
गणना किए गए गोटो को डुप्लिकेट करने के बाद डंप करें।

-फडंप-आरटीएल-सीई1
-फडंप-आरटीएल-सीई2
-फडंप-आरटीएल-सीई3
-फडंप-आरटीएल-सीई1, -फडंप-आरटीएल-सीई2, तथा -फडंप-आरटीएल-सीई3 तीन के बाद डंपिंग सक्षम करें
यदि रूपांतरण गुजरता है।

-fdump-rtl-cprop_hardreg
हार्ड रजिस्टर कॉपी प्रचार के बाद डंप करें।

-फडंप-आरटीएल-सीएसए
स्टैक समायोजन के संयोजन के बाद डंप करें।

-फडंप-आरटीएल-सीएसई1
-फडंप-आरटीएल-सीएसई2
-फडंप-आरटीएल-सीएसई1 और -फडंप-आरटीएल-सीएसई2 दो सामान्य के बाद डंपिंग सक्षम करें
उप-अभिव्यक्ति उन्मूलन गुजरता है।

-फडंप-आरटीएल-डीसीई
स्टैंडअलोन डेड कोड एलिमिनेशन पास होने के बाद डंप करें।

-fdump-rtl-dbr
विलंबित शाखा शेड्यूलिंग के बाद डंप करें।

-फडम्प-आरटीएल-डीसीई1
-फडम्प-आरटीएल-डीसीई2
-फडम्प-आरटीएल-डीसीई1 और -फडम्प-आरटीएल-डीसीई2 दो मृत दुकान के बाद डंपिंग सक्षम करें
उन्मूलन गुजरता है।

-फडम्प-आरटीएल-एह
ईएच हैंडलिंग कोड को अंतिम रूप देने के बाद डंप करें।

-fdump-rtl-eh_ranges
ईएच हैंडलिंग रेंज क्षेत्रों के रूपांतरण के बाद डंप।

-फडंप-आरटीएल-विस्तार
आरटीएल पीढ़ी के बाद डंप।

-fdump-rtl-fwprop1
-fdump-rtl-fwprop2
-fdump-rtl-fwprop1 और -fdump-rtl-fwprop2 दो आगे के बाद डंपिंग सक्षम करें
प्रसार गुजरता है।

-फडम्प-आरटीएल-जीसीएसई1
-फडम्प-आरटीएल-जीसीएसई2
-फडम्प-आरटीएल-जीसीएसई1 और -फडम्प-आरटीएल-जीसीएसई2 ग्लोबल कॉमन के बाद डंपिंग सक्षम करें
उप-अभिव्यक्ति उन्मूलन।

-fdump-rtl-init-regs
रजिस्टरों के आरंभीकरण के बाद डंप करें।

-fdump-rtl-initvals
प्रारंभिक मान सेट की गणना के बाद डंप करें।

-fdump-rtl-into_cfglayout
cfglayout मोड में कनवर्ट करने के बाद डंप करें।

-फडंप-आरटीएल-इरा
पुनरावृत्त रजिस्टर आवंटन के बाद डंप करें।

-फडंप-आरटीएल-जंप
दूसरी छलांग अनुकूलन के बाद डंप करें।

-फडंप-आरटीएल-लूप2
-फडंप-आरटीएल-लूप2 rtl लूप ऑप्टिमाइज़ेशन पास होने के बाद डंपिंग को सक्षम करता है।

-फडंप-आरटीएल-मच
मशीन पर निर्भर पुनर्गठन पास करने के बाद डंप करें, यदि वह पास है
मौजूद।

-fdump-rtl-mode_sw
अनावश्यक मोड स्विच को हटाने के बाद डंप करें।

-fdump-rtl-rnreg
रजिस्टर रीनंबरिंग के बाद डंप करें।

-fdump-rtl-outof_cfglayout
cfglayout मोड से कनवर्ट करने के बाद डंप करें।

-फडंप-आरटीएल-पीपहोल2
पीपहोल पास होने के बाद डंप करें।

-fdump-rtl-postreload
पोस्ट-रीलोड ऑप्टिमाइज़ेशन के बाद डंप करें।

-fdump-rtl-pro_and_epilogue
फ़ंक्शन प्रस्तावना और उपसंहार उत्पन्न करने के बाद डंप करें।

-fdump-rtl-sched1
-fdump-rtl-sched2
-fdump-rtl-sched1 और -fdump-rtl-sched2 मूल ब्लॉक के बाद डंपिंग सक्षम करें
शेड्यूलिंग पास।

-फडंप-आरटीएल-री
साइन/जीरो एक्सटेंशन एलिमिनेशन के बाद डंप करें।

-फडंप-आरटीएल-सेकब्स्ट्र
सामान्य अनुक्रम खोज के बाद डंप करें।

-फडंप-आरटीएल-छोटा
शाखाओं को छोटा करने के बाद डंप करें।

-फडंप-आरटीएल-सिबलिंग
सिबलिंग कॉल ऑप्टिमाइज़ेशन के बाद डंप करें।

-फडम्प-आरटीएल-स्प्लिट1
-फडम्प-आरटीएल-स्प्लिट2
-फडम्प-आरटीएल-स्प्लिट3
-फडम्प-आरटीएल-स्प्लिट4
-फडम्प-आरटीएल-स्प्लिट5
ये विकल्प निर्देश विभाजन के पांच दौर के बाद डंपिंग को सक्षम करते हैं।

-फडंप-आरटीएल-एसएमएस
मॉड्यूल शेड्यूलिंग के बाद डंप करें। यह पास केवल कुछ आर्किटेक्चर पर चलाया जाता है।

-फडंप-आरटीएल-स्टैक
GCC की "फ्लैट रजिस्टर फ़ाइल" रजिस्टर से x87's . में रूपांतरण के बाद डंप करें
ढेर की तरह रजिस्टर। यह पास केवल x86 वेरिएंट पर चलता है।

-fdump-rtl-subreg1
-fdump-rtl-subreg2
-fdump-rtl-subreg1 और -fdump-rtl-subreg2 दो सबरेग के बाद डंपिंग सक्षम करें
विस्तार गुजरता है।

-फडंप-आरटीएल-अनशेयर
डंप के बाद सभी rtl को साझा नहीं किया गया है।

-fdump-rtl-vartrack
परिवर्तनीय ट्रैकिंग के बाद डंप करें।

-fdump-rtl-vregs
वर्चुअल रजिस्टर को हार्ड रजिस्टर में बदलने के बाद डंप करें।

-फडंप-आरटीएल-वेब
लाइव रेंज बंटवारे के बाद डंप करें।

-फडम्प-आरटीएल-रेगक्लास
-fdump-rtl-subregs_of_mode_init
-fdump-rtl-subregs_of_mode_finish
-fdump-rtl-dfinit
-fdump-rtl-dfinish
ये डंप परिभाषित हैं लेकिन हमेशा खाली फाइलें उत्पन्न करते हैं।

-इन
-फडंप-आरटीएल-सभी
ऊपर सूचीबद्ध सभी डंपों का उत्पादन करें।

-डीए असेंबलर आउटपुट को विविध डिबगिंग जानकारी के साथ एनोटेट करें।

-डीडी सामान्य के अलावा, प्रीप्रोसेसिंग के अंत में सभी मैक्रो परिभाषाओं को डंप करें
उत्पादन.

-डीएच जब भी कोई त्रुटि होती है तो कोर डंप तैयार करें।

-डॉ एक टिप्पणी के साथ असेंबलर आउटपुट को एनोटेट करें जो दर्शाता है कि कौन सा पैटर्न और
वैकल्पिक प्रयोग किया जाता है। प्रत्येक निर्देश की लंबाई भी मुद्रित होती है।

-डीपी प्रत्येक निर्देश से पहले एक टिप्पणी के रूप में आरटीएल को असेंबलर आउटपुट में डंप करें। भी
चालू करें -डॉ एनोटेशन।

-डीएक्स इसे संकलित करने के बजाय किसी फ़ंक्शन के लिए बस आरटीएल उत्पन्न करें। आमतौर पर के साथ प्रयोग किया जाता है
-फडंप-आरटीएल-विस्तार.

-fdump-noaddr
डिबगिंग डंप करते समय, एड्रेस आउटपुट को दबाएं। यह इसे और अधिक व्यवहार्य बनाता है
विभिन्न कंपाइलर बायनेरिज़ के साथ कंपाइलर इनवोकेशन के लिए डिबगिंग डंप पर उपयोग करें
और/या अलग-अलग टेक्स्ट/बीएसएस/डेटा/हीप/स्टैक/डीएसओ स्टार्ट लोकेशन।

-फ़्रीपोर्ट-बग
यदि C/C++ कंपाइलर में ICE है तो डिबग जानकारी को अस्थायी फ़ाइल में एकत्रित और डंप करें
हो गया।

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

-फडंप-अननंबर्ड-लिंक्स
डिबगिंग डंप करते समय (देखें -d उपरोक्त विकल्प), के लिए निर्देश संख्या को दबाएं
एक क्रम में पिछले और अगले निर्देशों के लिंक।

-फडंप-अनुवाद-इकाई (सी ++ केवल)
-फडंप-अनुवाद-इकाई-विकल्पों (सी ++ केवल)
फ़ाइल में संपूर्ण अनुवाद इकाई के लिए ट्री संरचना का प्रतिनिधित्व डंप करें।
फ़ाइल का नाम संलग्न करके बनाया गया है .तु स्रोत फ़ाइल नाम के लिए, और फ़ाइल है
आउटपुट फ़ाइल के समान निर्देशिका में बनाया गया। अगर -विकल्पों प्रपत्र का उपयोग किया जाता है,
विकल्पों के लिए वर्णित डंप के विवरण को नियंत्रित करता है -फडंप-पेड़ विकल्प.

-फडम्प-वर्ग-पदानुक्रम (सी ++ केवल)
-फडम्प-वर्ग-पदानुक्रम-विकल्पों (सी ++ केवल)
प्रत्येक वर्ग के पदानुक्रम और वर्चुअल फ़ंक्शन टेबल लेआउट का प्रतिनिधित्व a
फ़ाइल। फ़ाइल का नाम संलग्न करके बनाया गया है ।कक्षा स्रोत फ़ाइल नाम और फ़ाइल के लिए
आउटपुट फ़ाइल के समान निर्देशिका में बनाया गया है। अगर -विकल्पों प्रपत्र का उपयोग किया जाता है,
विकल्पों के लिए वर्णित डंप के विवरण को नियंत्रित करता है -फडंप-पेड़ विकल्प.

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

सब सभी अंतर-प्रक्रियात्मक विश्लेषण डंप सक्षम करता है।

सीग्राफ
कॉल-ग्राफ़ ऑप्टिमाइज़ेशन, अप्रयुक्त फ़ंक्शन हटाने और . के बारे में जानकारी डंप करता है
इनलाइनिंग निर्णय।

इनलाइन
फ़ंक्शन इनलाइनिंग के बाद डंप करें।

-फडंप-पास
ऑप्टिमाइज़ेशन पास की सूची को डंप करें जो वर्तमान द्वारा चालू और बंद हैं
कमांड लाइन विकल्प।

-fdump-आँकड़े-विकल्प
एक अलग फ़ाइल में पास आँकड़ों की डंपिंग को सक्षम और नियंत्रित करें। फ़ाइल का नाम है
में समाप्त होने वाले प्रत्यय को जोड़कर उत्पन्न होता है .आँकड़े स्रोत फ़ाइल नाम के लिए, और
फ़ाइल आउटपुट फ़ाइल के समान निर्देशिका में बनाई गई है। अगर -विकल्प रूप है
उपयोग किया गया, -आंकड़े पूरे संकलन इकाई पर काउंटरों को सम्‍मिलित करने का कारण बनता है
-विवरण हर घटना को डंप करता है क्योंकि पास उन्हें उत्पन्न करते हैं। बिना विकल्प वाला डिफ़ॉल्ट है
संकलित प्रत्येक फ़ंक्शन के लिए काउंटरों का योग करने के लिए।

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

पता
प्रत्येक नोड का पता प्रिंट करें। आमतौर पर यह अर्थपूर्ण नहीं होता क्योंकि यह बदल जाता है
पर्यावरण और स्रोत फ़ाइल के अनुसार। इसका प्राथमिक उपयोग a को बांधने के लिए होता है
डिबग वातावरण के साथ डंप फ़ाइल।

असमनाम
यदि "DECL_ASSEMBLER_NAME" को किसी दिए गए decl के लिए सेट किया गया है, तो उसे डंप में उपयोग करें
"DECL_NAME" के बजाय। इसका प्राथमिक उपयोग उपयोग में आसानी से पीछे की ओर काम करना है
असेंबली फ़ाइल में उलझा हुआ नाम।

पतला
फ्रंट-एंड इंटरमीडिएट अभ्यावेदन को डंप करते समय, के सदस्यों के डंपिंग को रोकें
किसी कार्य का एक दायरा या निकाय केवल इसलिए कि उस दायरे तक पहुँच गया है। केवल
ऐसी वस्तुओं को तब डंप करें जब वे किसी अन्य रास्ते से सीधे पहुंच योग्य हों।

सुंदर-मुद्रित पेड़ों को डंप करते समय, यह विकल्प के निकायों को डंप करने से रोकता है
नियंत्रण संरचनाएं।

RTL को डंप करते समय, डिफ़ॉल्ट के बजाय RTL को स्लिम (संघनित) रूप में प्रिंट करें
LISP जैसा प्रतिनिधित्व।

कच्चा पेड़ का कच्चा प्रतिनिधित्व प्रिंट करें। डिफ़ॉल्ट रूप से, पेड़ सुंदर-मुद्रित होते हैं
एक सी-जैसा प्रतिनिधित्व।

विवरण
अधिक विस्तृत डंप सक्षम करें (प्रत्येक डंप विकल्प द्वारा सम्मानित नहीं)। यह भी शामिल करें
अनुकूलन से जानकारी गुजरती है।

आँकड़े
पास के बारे में विभिन्न आँकड़ों को डंप करना सक्षम करें (प्रत्येक डंप द्वारा सम्मानित नहीं
विकल्प)।

ब्लॉक
बुनियादी ब्लॉक सीमाएं दिखाना सक्षम करें (कच्चे डंप में अक्षम)।

ग्राफ
अन्य संकेतित डंप फ़ाइलों में से प्रत्येक के लिए (-फडंप-आरटीएल-पास), डंप ए
ग्राफ़विज़ के साथ देखने के लिए उपयुक्त नियंत्रण प्रवाह ग्राफ का प्रतिनिधित्व
फ़ाइल.passid.pass.dot. फ़ाइल में प्रत्येक फ़ंक्शन एक सबग्राफ के रूप में सुंदर-मुद्रित है,
ताकि ग्राफ़विज़ उन सभी को एक ही प्लॉट में प्रस्तुत कर सके।

यह विकल्प वर्तमान में केवल RTL डंप के लिए काम करता है, और RTL को हमेशा इसमें डंप किया जाता है
पतला रूप।

वोप्स
प्रत्येक कथन के लिए वर्चुअल ऑपरेंड दिखाना सक्षम करें।

लिनेनो
कथनों के लिए लाइन नंबर दिखाना सक्षम करें।

यूआईडी प्रत्येक चर के लिए अद्वितीय आईडी ("DECL_UID") दिखाना सक्षम करें।

वाचाल
प्रत्येक कथन के लिए ट्री डंप दिखाना सक्षम करें।

eh प्रत्येक स्टेटमेंट को पकड़े हुए EH क्षेत्र संख्या दिखाना सक्षम करें।

scev
अदिश विकास विश्लेषण विवरण दिखाना सक्षम करें।

अनुकूलित
अनुकूलन जानकारी दिखाना सक्षम करें (केवल कुछ निश्चित पासों में उपलब्ध)।

चुक गया
छूटी हुई अनुकूलन जानकारी दिखाना सक्षम करें (केवल कुछ निश्चित पासों में उपलब्ध)।

नोट
अन्य विस्तृत अनुकूलन जानकारी सक्षम करें (केवल कुछ निश्चित पासों में उपलब्ध)।

=फ़ाइल का नाम
ऑटो नाम की डंप फ़ाइल के बजाय, दिए गए फ़ाइल नाम में आउटपुट। फ़ाइल
नामों stdout और stderr विशेष रूप से व्यवहार किया जाता है और पहले से ही खुला माना जाता है
मानक धाराएँ। उदाहरण के लिए,

gcc -O2 -ftree-vectorize -fdump-tree-vect-blocks=foo.dump
-फडम्प-पेड़-पूर्व=stderr file.c

आउटपुट वेक्टराइज़र डंप में foo.dump, जबकि PRE डंप to . पर आउटपुट है stderr.
यदि एक ही पास के लिए दो परस्पर विरोधी डंप फ़ाइल नाम दिए गए हैं, तो बाद वाले
विकल्प पहले वाले को ओवरराइड करता है।

सब छोड़कर सभी विकल्प चालू करें कच्चा, पतला, वाचाल और लिनेनो.

ऑप्टल
सभी अनुकूलन विकल्पों को चालू करें, अर्थात, अनुकूलित, चुक गया, तथा नोट.

निम्नलिखित पेड़ डंप संभव हैं:

मूल
किसी भी पेड़ आधारित अनुकूलन से पहले डंप करें फ़ाइल.मूल.

अनुकूलित
सभी पेड़ आधारित अनुकूलन के बाद डंप करें फ़ाइल.अनुकूलित.

गिंपल
एक फ़ाइल में gimplification पास करने से पहले और बाद में प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल
नाम जोड़कर बनाया गया है गिंपल स्रोत फ़ाइल नाम के लिए।

cfg प्रत्येक फ़ंक्शन के नियंत्रण प्रवाह ग्राफ़ को फ़ाइल में डंप करें। फ़ाइल का नाम द्वारा बनाया गया है
जोड़कर .cfg स्रोत फ़ाइल नाम के लिए।

ch लूप हेडर को कॉपी करने के बाद प्रत्येक फंक्शन को डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है
.ch स्रोत फ़ाइल नाम के लिए।

सर्व शिक्षा अभियान फ़ाइल में SSA से संबंधित जानकारी डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है एसएसए
स्रोत फ़ाइल नाम के लिए।

उर्फ
प्रत्येक फ़ंक्शन के लिए अलियासिंग जानकारी डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है
.उपनाम स्रोत फ़ाइल नाम के लिए।

सीसीपी CCP के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है सीसीपी को
स्रोत फ़ाइल का नाम।

स्टोर सीसीपी
प्रत्येक फ़ंक्शन को STORE-CCP के बाद डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है .storeccp
स्रोत फ़ाइल नाम के लिए।

पूर्व आंशिक अतिरेक उन्मूलन के बाद पेड़ों को डंप करें। फ़ाइल का नाम द्वारा बनाया गया है
जोड़कर पूर्व स्रोत फ़ाइल नाम के लिए।

fre पूर्ण अतिरेक उन्मूलन के बाद पेड़ों को डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है
फ्री स्रोत फ़ाइल नाम के लिए।

कॉपीप्रॉप
कॉपी प्रचार के बाद पेड़ों को डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है .कॉपीप्रॉप
स्रोत फ़ाइल नाम के लिए।

स्टोर_कॉपीप्रॉप
स्टोर कॉपी-प्रचार के बाद पेड़ डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है
.store_copyprop स्रोत फ़ाइल नाम के लिए।

DCE डेड कोड एलिमिनेशन के बाद प्रत्येक फंक्शन को डंप करें। फ़ाइल का नाम द्वारा बनाया गया है
जोड़कर डीसीई स्रोत फ़ाइल नाम के लिए।

एसआरए समुच्चय का अदिश प्रतिस्थापन करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल
नाम जोड़कर बनाया गया है .Sra स्रोत फ़ाइल नाम के लिए।

सिंक
कोड सिंकिंग करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम द्वारा बनाया गया है
जोड़कर ।हौज स्रोत फ़ाइल नाम के लिए।

उपहार डोमिनेटर ट्री ऑप्टिमाइजेशन लागू करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम है
जोड़कर बनाया गया डोम स्रोत फ़ाइल नाम के लिए।

दिल्ली शेयर बाजार डेड स्टोर एलिमिनेशन लागू करने के बाद प्रत्येक फंक्शन को डंप करें। फ़ाइल का नाम बनाया गया है
जोड़कर डीएसई स्रोत फ़ाइल नाम के लिए।

फिओप्टो
PHI नोड्स को स्ट्रेटलाइन कोड में अनुकूलित करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल
नाम जोड़कर बनाया गया है .फिओप्ट स्रोत फ़ाइल नाम के लिए।

फॉरप्रॉप
सिंगल यूज वेरिएबल्स को फॉरवर्ड करने के बाद प्रत्येक फंक्शन को डंप करें। फ़ाइल का नाम
जोड़कर बनाया गया है .forprop स्रोत फ़ाइल नाम के लिए।

कॉपीरीनेम
प्रतिलिपि नाम बदलने के अनुकूलन को लागू करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम है
जोड़कर बनाया गया .कॉपीरिनेम स्रोत फ़ाइल नाम के लिए।

NRV जेनेरिक पर नामित रिटर्न वैल्यू ऑप्टिमाइज़ेशन लागू करने के बाद प्रत्येक फ़ंक्शन को डंप करें
पेड़। फ़ाइल का नाम संलग्न करके बनाया गया है .एनआरवी स्रोत फ़ाइल नाम के लिए।

वेक्टर
लूपों के वैश्वीकरण को लागू करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम बनाया गया है
जोड़कर सदिश स्रोत फ़ाइल नाम के लिए।

एसएलपी बुनियादी ब्लॉकों के वैश्वीकरण को लागू करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम है
जोड़कर बनाया गया एसएलपी स्रोत फ़ाइल नाम के लिए।

VRP वैल्यू रेंज प्रोपेगेशन (वीआरपी) के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम द्वारा बनाया गया है
जोड़कर वीआरपी स्रोत फ़ाइल नाम के लिए।

सब इस विकल्प में दिए गए फ़्लैग के साथ सभी उपलब्ध ट्री डंप सक्षम करें।

-फोप्ट-जानकारी
-फोप्ट-जानकारी-विकल्पों
-फोप्ट-जानकारी-विकल्पों=फ़ाइल का नाम
विभिन्न ऑप्टिमाइज़ेशन पास से ऑप्टिमाइज़ेशन डंप को नियंत्रित करता है। अगर -विकल्पों रूप है
उपयोग किया गया, विकल्पों की एक सूची है - डंप विवरण का चयन करने के लिए अलग विकल्प कीवर्ड और
अनुकूलन।

RSI विकल्पों दो समूहों में विभाजित किया जा सकता है: की क्रियात्मकता का वर्णन करने वाले विकल्प
डंप, और विकल्प बताते हैं कि कौन से अनुकूलन शामिल किए जाने चाहिए। से विकल्प
दोनों समूहों को स्वतंत्र रूप से मिश्रित किया जा सकता है क्योंकि वे गैर-अतिव्यापी हैं। हालांकि, के मामले में
कोई भी विरोध, बाद के विकल्प कमांड लाइन पर पहले के विकल्पों को ओवरराइड करते हैं।

निम्नलिखित विकल्प डंप वर्बोसिटी को नियंत्रित करते हैं:

अनुकूलित
ऑप्टिमाइज़ेशन सफलतापूर्वक लागू होने पर जानकारी प्रिंट करें। यह एक पास तक है
यह तय करने के लिए कि कौन सी जानकारी प्रासंगिक है। उदाहरण के लिए, वेक्टराइज़र प्रिंट पास करता है
छोरों का स्रोत स्थान जो सफलतापूर्वक वेक्टरकृत हैं।

चुक गया
छूटे हुए अनुकूलन के बारे में जानकारी प्रिंट करें। व्यक्तिगत पास नियंत्रण जो
आउटपुट में शामिल करने के लिए जानकारी।

नोट
अनुकूलन के बारे में वर्बोज़ जानकारी प्रिंट करें, जैसे कुछ परिवर्तन,
निर्णय आदि के बारे में अधिक विस्तृत संदेश।

सब विस्तृत अनुकूलन जानकारी प्रिंट करें। यह भी शामिल है अनुकूलित, चुक गया, तथा
नोट.

निम्नलिखित विकल्पों में से एक या अधिक कीवर्ड का उपयोग के समूह का वर्णन करने के लिए किया जा सकता है
अनुकूलन:

आईपीए सभी अंतर-प्रक्रियात्मक अनुकूलन से डंप सक्षम करें।

पाश
सभी लूप अनुकूलन से डंप सक्षम करें।

इनलाइन
सभी इनलाइनिंग अनुकूलन से डंप सक्षम करें।

vec सभी वैश्वीकरण अनुकूलन से डंप सक्षम करें।

ऑप्टल
सभी अनुकूलन से डंप सक्षम करें। यह अनुकूलन समूहों का एक सुपरसेट है
ऊपर सूचीबद्ध।

If विकल्पों छोड़ा गया है, यह चूक करता है अनुकूलित ऑप्टॉल, जिसका अर्थ है सभी जानकारी को डंप करना
सभी पास से सफल अनुकूलन के बारे में।

अगर फ़ाइल का नाम प्रदान किया जाता है, तो सभी लागू अनुकूलन से डंप हैं
में जुड़ा हुआ है फ़ाइल का नाम. अन्यथा डंप आउटपुट है stderr। यद्यपि
विभिन्न -फोप्ट-जानकारी विकल्प स्वीकार किए जाते हैं, उनमें से केवल एक में शामिल हो सकता है a फ़ाइल का नाम. अगर
अन्य फ़ाइल नाम प्रदान किए जाते हैं तो पहले विकल्प को छोड़कर सभी को अनदेखा कर दिया जाता है।

ध्यान दें कि आउटपुट फ़ाइल का नाम एकाधिक अनुवाद इकाइयों के मामले में अधिलेखित कर दिया जाता है। अगर
एकाधिक अनुवाद इकाइयों से एक संयुक्त आउटपुट वांछित है, stderr इस्तेमाल किया जाना चाहिए
बजाय.

निम्नलिखित उदाहरण में, अनुकूलन जानकारी आउटपुट है stderr:

gcc -O3 -fopt-जानकारी

यह उदाहरण:

जीसीसी -O3 -fopt-जानकारी-छूटी = छूटी हुई

सभी पासों से छूटी हुई अनुकूलन रिपोर्ट को आउटपुट करता है चूक गया।सब, और ये वाला:

जीसीसी -O2 -ftree-vectorize -fopt-info-vec-मिस्ड

वैश्वीकरण पास से छूटे हुए अनुकूलन अवसरों के बारे में जानकारी प्रिंट करता है
on stderr। ध्यान दें कि -fopt-जानकारी-vec-चूक के बराबर है -fopt-जानकारी-चूक-vec.

एक अन्य उदाहरण के रूप में,

जीसीसी -O3 -fopt-जानकारी-इनलाइन-अनुकूलित-मिस्ड = inline.txt

छूटे हुए अनुकूलन के साथ-साथ सभी से अनुकूलित स्थानों के बारे में जानकारी आउटपुट करता है
इनलाइनिंग में गुजरता है इनलाइन.txt.

अंत में, विचार करें:

gcc -fopt-info-vec-missed=vec.miss -fopt-info-लूप-अनुकूलित=loop.opt

यहाँ दो आउटपुट फ़ाइल नाम vec.मिस और लूप.ऑप्ट संघर्ष में हैं क्योंकि केवल एक
आउटपुट फ़ाइल की अनुमति है। इस मामले में, केवल पहला विकल्प प्रभावी होता है और
बाद के विकल्पों पर ध्यान नहीं दिया जाता है। इस प्रकार केवल vec.मिस का उत्पादन किया जाता है जिसमें डंप होते हैं
छूटे हुए अवसरों के बारे में वेक्टराइज़र से।

-फ्रैंडम-बीज=संख्या
यह विकल्प एक बीज प्रदान करता है जिसे जीसीसी जनरेट करने में यादृच्छिक संख्याओं के स्थान पर उपयोग करता है
कुछ प्रतीक नाम जो प्रत्येक संकलित फ़ाइल में भिन्न होने चाहिए। ये भी
कवरेज डेटा फ़ाइलों और उत्पन्न होने वाली ऑब्जेक्ट फ़ाइलों में अद्वितीय टिकट लगाने के लिए उपयोग किया जाता है
उन्हें। आप का उपयोग कर सकते हैं -फ्रैंडम-बीज प्रतिलिपि प्रस्तुत करने योग्य समान वस्तु का उत्पादन करने का विकल्प
फाइलें.

RSI संख्या आपके द्वारा संकलित प्रत्येक फ़ाइल के लिए अलग होना चाहिए।

-fsched-क्रिया =n
निर्देश शेड्यूलिंग का उपयोग करने वाले लक्ष्यों पर, यह विकल्प की मात्रा को नियंत्रित करता है
डिबगिंग आउटपुट शेड्यूलर प्रिंट करता है। यह जानकारी मानक त्रुटि के लिए लिखी गई है,
जब तक -fdump-rtl-sched1 or -fdump-rtl-sched2 निर्दिष्ट है, जिस स्थिति में यह आउटपुट है
सामान्य डंप लिस्टिंग फ़ाइल के लिए, .अनुसूचित1 or .अनुसूचित2 क्रमश। हालांकि के लिए n
नौ से अधिक, आउटपुट हमेशा मानक त्रुटि पर मुद्रित होता है।

के लिए n शून्य से बड़ा, -fsched-verbose उसी जानकारी को आउटपुट करता है
-fdump-rtl-sched1 और -fdump-rtl-sched2. के लिए n एक से अधिक, यह मूल उत्पादन भी करता है
ब्लॉक संभावनाएं, विस्तृत तैयार सूची की जानकारी और इकाई/सूचना संबंधी जानकारी। के लिये n
दो से अधिक, इसमें गर्भपात बिंदु, नियंत्रण-प्रवाह और क्षेत्रों की जानकारी पर आरटीएल शामिल है। और
एसटी n चार से अधिक, -fsched-verbose निर्भरता जानकारी भी शामिल है।

-बचाओ-अस्थायी
-सेव-टेम्प्स = cwd
सामान्य "अस्थायी" मध्यवर्ती फ़ाइलों को स्थायी रूप से संग्रहीत करें; उन्हें वर्तमान में रखें
निर्देशिका और स्रोत फ़ाइल के आधार पर उन्हें नाम दें। इस प्रकार, संकलन फू.सी साथ में -c
-बचाओ-अस्थायी फ़ाइलें उत्पन्न करता है फू.आई और फू.एस, के रूप में के रूप में अच्छी तरह से फू.ओ. यह एक बनाता है
पूर्वसंसाधित फू.आई आउटपुट फ़ाइल भले ही कंपाइलर अब सामान्य रूप से a . का उपयोग करता हो
एकीकृत प्रीप्रोसेसर।

जब के संयोजन में उपयोग किया जाता है -x कमांड लाइन विकल्प, -बचाओ-अस्थायी समझदार है
एक इनपुट स्रोत फ़ाइल को एक ही एक्सटेंशन के साथ लिखने से बचने के लिए पर्याप्त है
मध्यवर्ती फ़ाइल। नाम बदलकर संबंधित मध्यवर्ती फ़ाइल प्राप्त की जा सकती है
स्रोत फ़ाइल का उपयोग करने से पहले -बचाओ-अस्थायी.

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

gcc -save-temps -o outdir1/foo.o indir1/foo.c&
gcc -save-temps -o outdir2/foo.o indir2/foo.c&

में परिणाम हो सकता है फू.आई और फू.ओ दोनों कंपाइलरों द्वारा एक साथ लिखा जा रहा है।

-सेव-टेम्प्स = obj
सामान्य "अस्थायी" मध्यवर्ती फ़ाइलों को स्थायी रूप से संग्रहीत करें। अगर -o विकल्प का उपयोग किया जाता है,
अस्थायी फ़ाइलें ऑब्जेक्ट फ़ाइल पर आधारित होती हैं। अगर -o विकल्प का उपयोग नहीं किया जाता है,
-सेव-टेम्प्स = obj स्विच की तरह व्यवहार करता है -बचाओ-अस्थायी.

उदाहरण के लिए:

gcc -save-temps=obj -c foo.c
जीसीसी -सेव-टेम्प्स=ओबीजे-सी बार.सी-ओ डीआईआर/एक्सबार.ओ
जीसीसी -save-temps=obj foobar.c -o dir2/yfoobar

बनाता है फू.आई, फू.एस, डीआईआर/xbar.i, डीआईआर/xbar.s, dir2/yfoobar.i, dir2/yfoobar.s, तथा
dir2/yfoobar.o.

-पहर[=पट्टिका]
संकलन अनुक्रम में प्रत्येक उपप्रक्रिया द्वारा लिए गए CPU समय की रिपोर्ट करें। सी के लिए
स्रोत फ़ाइलें, यह कंपाइलर उचित और असेंबलर है (साथ ही लिंकर अगर लिंकिंग है
किया हुआ)।

आउटपुट फ़ाइल के विनिर्देश के बिना, आउटपुट इस तरह दिखता है:

# सीसी1 0.12 0.01
# 0.00 0.01 . के रूप में

प्रत्येक पंक्ति पर पहला नंबर "उपयोगकर्ता समय" है, जो कि निष्पादित करने में लगने वाला समय है
कार्यक्रम ही। दूसरा नंबर "सिस्टम टाइम" है, ऑपरेटिंग निष्पादित करने में लगने वाला समय
कार्यक्रम की ओर से सिस्टम रूटीन। दोनों नंबर सेकंड में हैं।

आउटपुट फ़ाइल के विनिर्देशन के साथ, आउटपुट को नामित फ़ाइल में जोड़ा जाता है,
और यह इस तरह दिखता है:

0.12 0.01 सीसी1
0.00 0.01 के रूप में

"उपयोगकर्ता समय" और "सिस्टम समय" को प्रोग्राम के नाम से पहले स्थानांतरित कर दिया जाता है, और
प्रोग्राम को दिए गए विकल्पों को प्रदर्शित किया जाता है, ताकि कोई बाद में बता सके कि कौन सी फाइल थी
संकलित किया जा रहा है, और किन विकल्पों के साथ।

-fvar-ट्रैकिंग
चर ट्रैकिंग पास चलाएँ। यह गणना करता है कि प्रत्येक स्थिति में चर कहाँ संग्रहीत किए जाते हैं
कोड में। बेहतर डिबगिंग जानकारी तब उत्पन्न होती है (यदि डिबगिंग जानकारी
प्रारूप इस जानकारी का समर्थन करता है)।

अनुकूलन के साथ संकलन करते समय यह डिफ़ॉल्ट रूप से सक्षम होता है (-ओस, -O, -ओ३, ...),
डिबगिंग जानकारी (-g) और डिबग जानकारी प्रारूप इसका समर्थन करता है।

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

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

-fvar-ट्रैकिंग-असाइनमेंट-टॉगल
टॉगल -fvar-ट्रैकिंग-असाइनमेंटउसी तरह से -gtoggle टॉगल -g.

-प्रिंट-फ़ाइल-नाम=पुस्तकालय
लाइब्रेरी फ़ाइल का पूरा नाम प्रिंट करें पुस्तकालय जिसका उपयोग तब किया जाएगा जब
लिंकिंग --- और कुछ भी न करें। इस विकल्प के साथ, GCC संकलित या लिंक नहीं करता है
कुछ भी; यह सिर्फ फ़ाइल नाम प्रिंट करता है।

-प्रिंट-मल्टी-डायरेक्टरी
किसी अन्य स्विच द्वारा चयनित मल्टीलिब के अनुरूप निर्देशिका नाम प्रिंट करें
कमांड लाइन में मौजूद है। इस निर्देशिका में मौजूद माना जाता है जीसीसी_EXEC_PREFIX.

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

-प्रिंट-मल्टी-ओएस-डायरेक्टरी
कुछ के सापेक्ष, चयनित मल्टीलिब के लिए ओएस पुस्तकालयों के लिए पथ प्रिंट करें lib
उपनिर्देशिका। यदि ओएस पुस्तकालय मौजूद हैं lib उपनिर्देशिका और कोई मल्टीलिब नहीं
उपयोग किया जाता है, यह आमतौर पर बस ., यदि OS पुस्तकालय मौजूद हैं libsuffix भाई
निर्देशिका यह प्रिंट करता है उदाहरण के लिए ../lib64, ../ दायित्व or ../lib32, या यदि OS पुस्तकालय हैं
में उपस्थित लिब/उपदिर उपनिर्देशिकाएँ इसे प्रिंट करती हैं जैसे amd64, sparcv9 or ev6.

-प्रिंट-मल्टीआर्क
कुछ के सापेक्ष, चयनित मल्टीआर्क के लिए ओएस पुस्तकालयों के लिए पथ प्रिंट करें lib
उपनिर्देशिका।

-प्रिंट-प्रोग-नाम=कार्यक्रम
पसंद प्रिंट-फ़ाइल-नाम, लेकिन एक प्रोग्राम की खोज करता है जैसे सीपीपी.

-प्रिंट-libgcc-फ़ाइल-नाम
के समान -प्रिंट-फाइल-नाम=libgcc.a.

जब आप उपयोग करते हैं तो यह उपयोगी होता है -नोस्टडलिब or -नोडिफॉल्टलिब्स लेकिन आप के साथ लिंक करना चाहते हैं
libgcc.a. तुम कर सकते हो:

जीसीसी -नोस्टडलिब ... `gcc -print-libgcc-file-name`

-प्रिंट-खोज-डीआईआर
कॉन्फ़िगर की गई स्थापना निर्देशिका का नाम और प्रोग्राम की सूची प्रिंट करें और
पुस्तकालय निर्देशिका जीसीसी खोजें --- और कुछ भी न करें।

यह तब उपयोगी होता है जब जीसीसी त्रुटि संदेश प्रिंट करता है स्थापना समस्या नही सकता कार्यकारी
सीपीपी0: नहीं ऐसा पट्टिका or डायरेक्टरी. इसे हल करने के लिए आपको या तो डालना होगा सीपीपी0 और
अन्य संकलक घटक जहां जीसीसी उन्हें खोजने की उम्मीद है, या आप सेट कर सकते हैं
वातावरण विविधता जीसीसी_EXEC_PREFIX उस निर्देशिका में जहाँ आपने उन्हें स्थापित किया था। नहीं
अनुगामी भूल जाओ /.

-प्रिंट-सिसरूट
लक्ष्य sysroot निर्देशिका को प्रिंट करें जिसका उपयोग संकलन के दौरान किया जाता है। यह है
लक्ष्य sysroot या तो कॉन्फ़िगर समय पर निर्दिष्ट किया गया है या का उपयोग कर रहा है --सिसरूट विकल्प,
संभवतः एक अतिरिक्त प्रत्यय के साथ जो संकलन विकल्पों पर निर्भर करता है। यदि कोई लक्ष्य नहीं
sysroot निर्दिष्ट है, विकल्प कुछ भी प्रिंट नहीं करता है।

-प्रिंट-सिसरूट-हेडर-प्रत्यय
हेडर की खोज करते समय लक्ष्य sysroot में जोड़े गए प्रत्यय को प्रिंट करें, या एक दें
त्रुटि अगर संकलक ऐसे प्रत्यय के साथ कॉन्फ़िगर नहीं किया गया है --- और कुछ भी न करें
अन्य।

-डंपमशीन
संकलक की लक्ष्य मशीन को प्रिंट करें (उदाहरण के लिए, i686-पीसी-लिनक्स-ग्नू)---और मत करो
और कुछ।

-डंपवर्सन
कंपाइलर संस्करण प्रिंट करें (उदाहरण के लिए, 3.0) --- और कुछ और न करें।

-डंपस्पेक्स
कंपाइलर के बिल्ट-इन स्पेक्स को प्रिंट करें --- और कुछ और न करें। (इसका प्रयोग तब किया जाता है जब
जीसीसी खुद बनाया जा रहा है।)

-फनो-उन्मूलन-अप्रयुक्त-डीबग-प्रकार
आम तौर पर, डीडब्ल्यूएआरएफ 2 आउटपुट का उत्पादन करते समय, जीसीसी डिबग प्रतीक आउटपुट के उत्पादन से बचता है
प्रकार जो संकलित की जा रही स्रोत फ़ाइल में कहीं भी उपयोग नहीं किए जाते हैं। कभी-कभी यह उपयोगी होता है
एक संकलन इकाई में घोषित सभी प्रकार के लिए जीसीसी को डिबगिंग जानकारी उत्सर्जित करने के लिए,
इस बात की परवाह किए बिना कि वे वास्तव में उस संकलन इकाई में उपयोग किए गए हैं या नहीं, के लिए
उदाहरण यदि, डिबगर में, आप एक प्रकार के लिए एक मान डालना चाहते हैं जो वास्तव में नहीं है
आपके कार्यक्रम में उपयोग किया जाता है (लेकिन घोषित किया जाता है)। अधिक बार, हालांकि, इसका परिणाम एक में होता है
बर्बाद जगह की महत्वपूर्ण मात्रा।

ऑप्शंस कि नियंत्रण इष्टतमीकरण
ये विकल्प विभिन्न प्रकार के अनुकूलन को नियंत्रित करते हैं।

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

ऑप्टिमाइज़ेशन फ़्लैग चालू करने से कंपाइलर प्रदर्शन को बेहतर बनाने का प्रयास करता है और/या
संकलन समय और संभवतः डिबग करने की क्षमता की कीमत पर कोड का आकार
कार्यक्रम.

संकलक कार्यक्रम के ज्ञान के आधार पर अनुकूलन करता है।
एकल आउटपुट फ़ाइल मोड में एक साथ कई फ़ाइलों को संकलित करने से कंपाइलर उपयोग कर सकता है
उनमें से प्रत्येक को संकलित करते समय सभी फाइलों से प्राप्त जानकारी।

सभी अनुकूलन सीधे ध्वज द्वारा नियंत्रित नहीं होते हैं। केवल ऑप्टिमाइज़ेशन जिनमें a . है
ध्वज इस खंड में सूचीबद्ध हैं।

अधिकांश अनुकूलन केवल तभी सक्षम होते हैं जब a -O स्तर कमांड लाइन पर सेट है। अन्यथा
वे अक्षम हैं, भले ही व्यक्तिगत अनुकूलन फ़्लैग निर्दिष्ट किए गए हों।

लक्ष्य के आधार पर और जीसीसी को कैसे कॉन्फ़िगर किया गया था, इसका थोड़ा अलग सेट
अनुकूलन प्रत्येक पर सक्षम किया जा सकता है -O यहां सूचीबद्ध लोगों की तुलना में स्तर। आप जीसीसी का आह्वान कर सकते हैं
साथ में -Q --सहायता = अनुकूलक अनुकूलन के सटीक सेट का पता लगाने के लिए जो यहां सक्षम हैं
प्रत्येक स्तर।

-O
-ओ३ अनुकूलित करें। संकलन के अनुकूलन में कुछ अधिक समय लगता है, और इसके लिए बहुत अधिक मेमोरी
एक बड़ा समारोह।

- -O, संकलक बिना प्रदर्शन किए कोड आकार और निष्पादन समय को कम करने का प्रयास करता है
कोई भी अनुकूलन जो संकलन समय का एक बड़ा सौदा लेता है।

-O निम्नलिखित अनुकूलन झंडे चालू करता है:

-फॉटो-इंक-दिसंबर -fbranch-गिनती-reg -fcombine-ढेर-समायोजन -फतुलना-एलीम
-एफसीप्रॉप-रजिस्टर -एफडीसी -फडेफर-पॉप -fdelayed-शाखा -एफडीएसई आगे-प्रचार करना
-fअनुमान-शाखा-प्रायिकता -फिफ-रूपांतरण2 -फिफ-रूपांतरण
-फिनलाइन-फ़ंक्शंस-कॉल-वन्स -फिपा-शुद्ध-कॉन्स्ट -फिपा-प्रोफाइल -फिपा-संदर्भ
-फमर्ज-स्थिरांक -fmove-लूप-इनवेरिएंट -फश्रिंक-रैप -fsplit-चौड़ा-प्रकार
-फट्री-बिट-सीसीपी -फट्री-सीसीपी -fssa-फिओप्टा -फ्ट्री-चो -फट्री-कॉपी-प्रोप -फट्री-कॉपीरेनेम
-ftree-dce -फट्री-डोमिनेटर-ऑप्ट्स -फट्री-डीएसई -ftree-forwprop -फ़्री-फ़्री -फट्री-फिप्रोप
-फट्री-सिंक -ftree-slsr -फट्री-सर -फट्री-पीटीए -फट्री-टेर -फनिट-एट-ए-टाइम

-O भी चालू हो जाता है -फोमिट-फ्रेम-पॉइंटर मशीनों पर जहां ऐसा करने से हस्तक्षेप नहीं होता
डिबगिंग के साथ।

-ओ३ और भी अधिक अनुकूलित करें। जीसीसी लगभग सभी समर्थित अनुकूलन करता है जो नहीं करते हैं
स्पेस-स्पीड ट्रेडऑफ़ शामिल करें। इसकी तुलना में -O, यह विकल्प दोनों को बढ़ाता है
संकलन समय और उत्पन्न कोड का प्रदर्शन।

-ओ३ द्वारा निर्दिष्ट सभी अनुकूलन झंडे को चालू करता है -O. यह निम्नलिखित को भी चालू करता है
अनुकूलन झंडे: -फथ्रेड-कूद -फालिग्न-फ़ंक्शंस -फालिग्न-कूद -फालिग्न-लूप्स
-फालिग्न-लेबल -fcaller-बचाता है -क्रॉस जंपिंग -fcse-अनुसरण-कूदता है -एफसीई-स्किप-ब्लॉक
-fdelete-null-pointer-checks -fdevirualize -fdevirtualize-सट्टा लगाना
-महंगे-अनुकूलन -एफजीसीएसई -एफजीसीएसई-एलएम -फोइस्ट-आसन्न-भार
-फिनलाइन-छोटे-फ़ंक्शंस -findirect-इनलाइनिंग -फिपा-सीपी -फिपा-सीपी-संरेखण -फिपा-सर
-फिपा-आईसीएफ -फिसोलेट-त्रुटिपूर्ण-पथ-विचलन -फ्लरा-रीमाटा -foptimize-भाई-बहन-कॉल
-फ़ॉप्टिमाइज़-स्ट्रेलन -fआंशिक-इनलाइनिंग -fpeehole2 -फ्रीऑर्डर-ब्लॉक
-फ्रीऑर्डर-ब्लॉक-और-विभाजन -फ्रीऑर्डर-फ़ंक्शंस -फ्रेरुन-सीएसई-आफ्टर-लूप
-fsched-इंटरब्लॉक -फस्ड-स्पेक -fschedule-insns -fschedule-insns2 -फस्ट्रिक्ट-अलियासिंग
-फस्ट्रिक्ट-ओवरफ्लो -फट्री-बिल्टिन-कॉल-डीसीई -फट्री-स्विच-रूपांतरण -फट्री-टेल-मर्ज
-फट्री-प्री -फट्री-वीआरपी -फिपा-रा

कृपया नीचे दी गई चेतावनी पर ध्यान दें -एफजीसीएसई आह्वान के बारे में -ओ३ गणना का उपयोग करने वाले कार्यक्रमों पर
गोटोस

नोट: उबंटू 8.10 और बाद के संस्करणों में, -D_FORTIFY_SOURCE=2 डिफ़ॉल्ट रूप से सेट है, और है
सक्रिय जब -O 2 या उच्चतर पर सेट है। यह अतिरिक्त संकलन-समय सक्षम करता है और
कई libc कार्यों के लिए रन-टाइम जाँच। अक्षम करने के लिए, या तो निर्दिष्ट करें
-U_FORTIFY_SOURCE or -D_FORTIFY_SOURCE=0.

-ओ३ अभी और भी ऑप्टिमाइज़ करें। -ओ३ द्वारा निर्दिष्ट सभी अनुकूलन को चालू करता है -ओ३ और चालू भी करता है
la -फिनलाइन-फ़ंक्शंस, -फनस्विच-लूप, -फप्रेडिक्टिव-कॉमनिंग, -fgcse-आफ्टर-रीलोड,
-फट्री-लूप-वेक्टराइज, -फट्री-लूप-वितरण-पैटर्न, -ftree-slp-वेक्टराइज़,
-फवेक्ट-लागत-मॉडल, -फट्री-आंशिक-पूर्व और -फिपा-सीपी-क्लोन विकल्प.

-ओ३ संकलन समय कम करें और डिबगिंग को अपेक्षित परिणाम दें। यह है
चूक।

-ओस आकार के लिए अनुकूलित करें। -ओस सभी को सक्षम बनाता है -ओ३ अनुकूलन जो आमतौर पर नहीं बढ़ते
कोड आकार। यह कोड आकार को कम करने के लिए डिज़ाइन किए गए और अनुकूलन भी करता है।

-ओस निम्नलिखित ऑप्टिमाइज़ेशन फ़्लैग को अक्षम करता है: -फालिग्न-फ़ंक्शंस -फालिग्न-कूद
-फालिग्न-लूप्स -फालिग्न-लेबल -फ्रीऑर्डर-ब्लॉक -फ्रीऑर्डर-ब्लॉक-और-विभाजन
-fprefetch-लूप-सरणी

-ओफ़ास्ट
सख्त मानकों के अनुपालन की अवहेलना करें। -ओफ़ास्ट सभी को सक्षम बनाता है -ओ३ अनुकूलन। यह भी
उन अनुकूलन को सक्षम करता है जो सभी मानक-अनुपालन कार्यक्रमों के लिए मान्य नहीं हैं। यह
चालू करें -फफास्ट-गणित और फोरट्रान-विशिष्ट -फनो-प्रोटेक्ट-पेरेंस और -फस्टैक-सरणी.

-ओजी डिबगिंग अनुभव का अनुकूलन करें। -ओजी उन अनुकूलन को सक्षम करता है जो हस्तक्षेप नहीं करते हैं
डिबगिंग। यह मानक संपादन के लिए पसंद का अनुकूलन स्तर होना चाहिए-
संकलन-डीबग चक्र, बनाए रखते हुए अनुकूलन का एक उचित स्तर प्रदान करता है
तेजी से संकलन और एक अच्छा डिबगिंग अनुभव।

यदि आप एकाधिक का उपयोग करते हैं -O विकल्प, स्तर संख्याओं के साथ या बिना, अंतिम ऐसा विकल्प है
जो प्रभावी है।

फॉर्म के विकल्प -fझंडा मशीन-स्वतंत्र झंडे निर्दिष्ट करें। अधिकांश झंडों में दोनों होते हैं
सकारात्मक और नकारात्मक रूप; का नकारात्मक रूप -फ्फू is -फनो-फू. नीचे दी गई तालिका में,
प्रपत्रों में से केवल एक ही सूचीबद्ध है --- जिसे आप आमतौर पर उपयोग करते हैं। आप दूसरे का पता लगा सकते हैं
या तो हटाकर फ़ॉर्म नहीं- या इसे जोड़ रहे हैं।

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

-फनो-डेफर-पॉप
जैसे ही वह फ़ंक्शन वापस आता है, हमेशा प्रत्येक फ़ंक्शन कॉल के लिए तर्कों को पॉप करें। के लिये
मशीन जो फ़ंक्शन कॉल के बाद तर्कों को पॉप करना चाहिए, संकलक सामान्य रूप से देता है
तर्क कई फ़ंक्शन कॉल के लिए स्टैक पर जमा होते हैं और उन सभी को पॉप करते हैं
एक बार।

स्तरों पर अक्षम -O, -ओ३, -ओ३, -ओस.

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

यह विकल्प ऑप्टिमाइज़ेशन स्तरों पर डिफ़ॉल्ट रूप से सक्षम होता है -O, -ओ३, -ओ३, -ओस.

-ffp-अनुबंध =अंदाज
-ffp-अनुबंध = बंद फ्लोटिंग-पॉइंट एक्सप्रेशन संकुचन को अक्षम करता है। -ffp-अनुबंध = तेज
फ़्लोटिंग-पॉइंट एक्सप्रेशन संकुचन को सक्षम करता है जैसे फ़्यूज्ड मल्टीप्ली-ऐड का निर्माण
संचालन यदि लक्ष्य के पास उनके लिए मूल समर्थन है। -ffp-अनुबंध = पर सक्षम बनाता है
फ्लोटिंग-पॉइंट एक्सप्रेशन संकुचन यदि भाषा मानक द्वारा अनुमत है। यह है
वर्तमान में लागू नहीं किया गया है और इसके बराबर व्यवहार किया जाता है -ffp-अनुबंध = बंद.

डिफ़ॉल्ट है -ffp-अनुबंध = तेज.

-फोमिट-फ्रेम-पॉइंटर
उन कार्यों के लिए फ्रेम पॉइंटर को रजिस्टर में न रखें जिन्हें एक की आवश्यकता नहीं है। इस
फ़्रेम पॉइंटर्स को सहेजने, सेट करने और पुनर्स्थापित करने के निर्देशों से बचा जाता है; यह एक भी बनाता है
कई कार्यों में उपलब्ध अतिरिक्त रजिस्टर। It भी बनाता है debugging असंभव on
कुछ मशीनों।

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

32-बिट GNU/Linux x86 और 32-बिट . के लिए डिफ़ॉल्ट सेटिंग (आकार के लिए अनुकूलन नहीं होने पर)
डार्विन x86 लक्ष्य है -फोमिट-फ्रेम-पॉइंटर. आप जीसीसी को इसके साथ कॉन्फ़िगर कर सकते हैं
--सक्षम-फ्रेम-सूचक डिफ़ॉल्ट को बदलने के लिए विकल्प कॉन्फ़िगर करें।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-foptimize-भाई-बहन-कॉल
सिबलिंग और टेल रिकर्सिव कॉल्स को ऑप्टिमाइज़ करें।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-फ़ॉप्टिमाइज़-स्ट्रेलन
विभिन्न मानक सी स्ट्रिंग फ़ंक्शंस को अनुकूलित करें (उदाहरण के लिए "strlen", "strchr" या "strcpy") और
उनके "_FORTIFY_SOURCE" समकक्षों को तेज़ विकल्पों में बदलें।

स्तरों पर सक्षम -ओ३, -ओ३.

-फनो-इनलाइन
"always_inline" से चिह्नित कार्यों के अलावा इनलाइन किसी भी फ़ंक्शन का विस्तार न करें
गुण। अनुकूलन नहीं होने पर यह डिफ़ॉल्ट है।

एकल कार्यों को "नोइनलाइन" के साथ चिह्नित करके इनलाइनिंग से छूट दी जा सकती है
विशेषता।

-फिनलाइन-छोटे-फ़ंक्शंस
जब उनका शरीर अपेक्षा से छोटा हो, तो उनके कॉल करने वालों में कार्यों को एकीकृत करें
फ़ंक्शन कॉल कोड (इसलिए प्रोग्राम का समग्र आकार छोटा हो जाता है)। संकलक
ह्युरिस्टिक रूप से तय करता है कि कौन से कार्य काफी सरल हैं जो कि एकीकृत करने योग्य हैं
इस तरह। यह इनलाइनिंग सभी कार्यों पर लागू होती है, यहां तक ​​कि उन पर भी जो इनलाइन घोषित नहीं किए गए हैं।

स्तर पर सक्षम -ओ३.

-findirect-इनलाइनिंग
इनलाइन भी अप्रत्यक्ष कॉल जिन्हें संकलन समय पर ज्ञात होने के लिए धन्यवाद दिया जाता है
पिछले इनलाइनिंग। इस विकल्प का कोई प्रभाव तभी पड़ता है जब इनलाइनिंग स्वयं चालू हो
द्वारा -फिनलाइन-फ़ंक्शंस or -फिनलाइन-छोटे-फ़ंक्शंस विकल्प.

स्तर पर सक्षम -ओ३.

-फिनलाइन-फ़ंक्शंस
इनलाइनिंग के लिए सभी कार्यों पर विचार करें, भले ही उन्हें इनलाइन घोषित न किया गया हो। NS
कंपाइलर ह्युरिस्टिक रूप से तय करता है कि कौन से फ़ंक्शन इस तरह से एकीकृत करने लायक हैं।

यदि किसी दिए गए फ़ंक्शन के लिए सभी कॉल एकीकृत हैं, और फ़ंक्शन घोषित किया गया है
"स्थैतिक", तो फ़ंक्शन सामान्य रूप से असेंबलर कोड के रूप में आउटपुट नहीं होता है।

स्तर पर सक्षम -ओ३.

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

स्तरों पर सक्षम -ओ३, -ओ३, -ओ३ और -ओस.

-भयभीत इनलाइनिंग
"always_inline" द्वारा चिह्नित इनलाइन फ़ंक्शन और ऐसे फ़ंक्शन जिनका शरीर . से छोटा लगता है
फंक्शन कॉल करने से पहले ओवरहेड कॉल करें -फ्रोफाइल-उत्पन्न उपकरण और
वास्तविक इनलाइनिंग पास। ऐसा करने से प्रोफाइलिंग काफी सस्ती हो जाती है और आमतौर पर
नेस्टेड रैपर फ़ंक्शंस की बड़ी श्रृंखला वाले कार्यक्रमों पर तेज़ी से इनलाइन करना।

डिफ़ॉल्ट रूप से सक्षम।

-फिपा-सर
समुच्चय का अंतरप्रक्रियात्मक अदिश प्रतिस्थापन करना, अप्रयुक्त मापदंडों को हटाना
और मान द्वारा पारित मापदंडों द्वारा संदर्भ द्वारा पारित मापदंडों का प्रतिस्थापन।

स्तरों पर सक्षम -ओ३, -ओ३ और -ओस.

-फिनलाइन-सीमा =n
डिफ़ॉल्ट रूप से, GCC इनलाइन किए जा सकने वाले फ़ंक्शन के आकार को सीमित करता है। यह ध्वज अनुमति देता है
इस सीमा पर सख्त नियंत्रण। n फ़ंक्शन का आकार है जिसे इनलाइन किया जा सकता है
छद्म निर्देशों की संख्या।

इनलाइनिंग वास्तव में कई मापदंडों द्वारा नियंत्रित होती है, जिन्हें निर्दिष्ट किया जा सकता है
व्यक्तिगत रूप से उपयोग करके --परम नाम=मूल्य-फिनलाइन-सीमा =n विकल्प कुछ सेट करता है
ये पैरामीटर निम्नानुसार हैं:

मैक्स-इनलाइन-इन्स-सिंगल
इसके लिए सेट है n/ 2.

मैक्स-इनलाइन-इन्स-ऑटो
इसके लिए सेट है n/ 2.

इनलाइनिंग को नियंत्रित करने वाले अलग-अलग पैरामीटर के दस्तावेज़ीकरण के लिए नीचे देखें और
इन मापदंडों की चूक के लिए।

नोट: का कोई मूल्य नहीं हो सकता है -फिनलाइन-सीमा जिसके परिणामस्वरूप डिफ़ॉल्ट व्यवहार होता है।

नोट: छद्म निर्देश इस विशेष संदर्भ में एक सार का प्रतिनिधित्व करता है
फ़ंक्शन के आकार का मापन। यह किसी भी तरह से विधानसभा की गिनती का प्रतिनिधित्व नहीं करता है
निर्देश और इस तरह इसका सटीक अर्थ एक रिलीज से दूसरे में बदल सकता है
एक और।

-फनो-कीप-इनलाइन-dllexport
यह का अधिक सुक्ष्म संस्करण है -फ़कीप-इनलाइन-फ़ंक्शंस, जो केवल पर लागू होता है
फ़ंक्शन जो "dllexport" विशेषता या declspec का उपयोग करके घोषित किए गए हैं

-फ़कीप-इनलाइन-फ़ंक्शंस
सी में, "स्थिर" फ़ंक्शन उत्सर्जित करें जिन्हें ऑब्जेक्ट फ़ाइल में "इनलाइन" घोषित किया गया है, भले ही
फ़ंक्शन को इसके सभी कॉलर्स में इनलाइन किया गया है। यह स्विच प्रभावित नहीं करता
GNU C90 में "बाहरी इनलाइन" एक्सटेंशन का उपयोग करके कार्य करता है। सी ++ में, किसी भी और सभी को उत्सर्जित करें
ऑब्जेक्ट फ़ाइल में इनलाइन फ़ंक्शन।

-फकीप-स्थिर-स्थिरांक
ऑप्टिमाइज़ेशन चालू न होने पर भी एमिट वेरिएबल्स को "स्थिर स्थिरांक" घोषित किया जाता है, भले ही
चर संदर्भित नहीं हैं।

GCC डिफ़ॉल्ट रूप से इस विकल्प को सक्षम करता है। यदि आप संकलक को यह जाँचने के लिए बाध्य करना चाहते हैं कि क्या a
चर को संदर्भित किया जाता है, भले ही अनुकूलन चालू हो या नहीं, उपयोग करें
la -फनो-रख-स्थिर-स्थिरांक विकल्प.

-फमर्ज-स्थिरांक
समान स्थिरांक (स्ट्रिंग स्थिरांक और फ़्लोटिंग-पॉइंट स्थिरांक) को मर्ज करने का प्रयास
संकलन इकाइयों में।

यह विकल्प अनुकूलित संकलन के लिए डिफ़ॉल्ट है यदि असेंबलर और लिंकर
इसका समर्थन करें। उपयोग -फनो-मर्ज-स्थिरांक इस व्यवहार को रोकने के लिए।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-फमर्ज-ऑल-स्थिरांक
समान स्थिरांक और समान चरों को मिलाने का प्रयास।

इस विकल्प का तात्पर्य है -फमर्ज-स्थिरांक। के अतिरिक्त -फमर्ज-स्थिरांक इसका
उदाहरण के लिए निरंतर प्रारंभिक सरणी या प्रारंभिक निरंतर चर के साथ विचार करता है
अभिन्न या फ़्लोटिंग-पॉइंट प्रकार। C या C++ जैसी भाषाओं में प्रत्येक चर की आवश्यकता होती है,
पुनरावर्ती कॉल में एक ही चर के कई उदाहरणों सहित, विशिष्ट होने के लिए
स्थान, इसलिए इस विकल्प का उपयोग करने से गैर-अनुरूप व्यवहार होता है।

-फमोडुलो-अनुसूची
पहले शेड्यूलिंग पास से ठीक पहले स्विंग मोडुलो शेड्यूलिंग करें। इस
पास अंतरतम छोरों को देखता है और अलग-अलग ओवरलैप करके उनके निर्देशों को पुन: व्यवस्थित करता है
पुनरावृत्तियों

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

-फनो-शाखा-गिनती-रेग
गिनती रजिस्टर पर "कमी और शाखा" निर्देशों का प्रयोग न करें, बल्कि इसके बजाय
निर्देशों का एक क्रम उत्पन्न करें जो एक रजिस्टर को घटाता है, इसकी तुलना करें
शून्य, फिर परिणाम के आधार पर शाखा। यह विकल्प केवल पर सार्थक है
आर्किटेक्चर जो ऐसे निर्देशों का समर्थन करते हैं, जिनमें x86, PowerPC, IA-64 और . शामिल हैं
एस/390.

पर डिफ़ॉल्ट रूप से सक्षम -ओ३ और उच्चा।

डिफ़ॉल्ट है -fbranch-गिनती-reg.

-फनो-फ़ंक्शन-सीएसई
रजिस्टरों में फ़ंक्शन पते न डालें; प्रत्येक निर्देश बनाएं जो कॉल करता है a
निरंतर फ़ंक्शन में फ़ंक्शन का पता स्पष्ट रूप से होता है।

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

डिफ़ॉल्ट है -फ़फंक्शन-सीएसई

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

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

डिफ़ॉल्ट है -fzero-इनिशियलाइज़्ड-इन-बीएसएस.

-फथ्रेड-कूद
ऑप्टिमाइज़ेशन निष्पादित करें जो यह देखने के लिए जाँच करें कि क्या एक जंप शाखा किसी ऐसे स्थान पर है जहाँ दूसरा है
पहले द्वारा सम्मिलित तुलना पाई जाती है। यदि ऐसा है, तो पहली शाखा को पुनर्निर्देशित किया जाता है
या तो दूसरी शाखा का गंतव्य या उसके ठीक बाद का एक बिंदु,
इस पर निर्भर करता है कि स्थिति सही है या गलत है।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-fsplit-चौड़ा-प्रकार
32-बिट . पर "लॉन्ग लॉन्ग" जैसे कई रजिस्टरों पर कब्जा करने वाले प्रकार का उपयोग करते समय
प्रणाली, रजिस्टरों को अलग-अलग विभाजित करें और उन्हें स्वतंत्र रूप से आवंटित करें। यह सामान्य रूप से
उन प्रकारों के लिए बेहतर कोड उत्पन्न करता है, लेकिन डिबगिंग को और अधिक कठिन बना सकता है।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-fcse-अनुसरण-कूदता है
कॉमन सबएक्सप्रेशन एलिमिनेशन (CSE) में, जंप निर्देशों के माध्यम से स्कैन करें जब
छलांग का लक्ष्य किसी अन्य मार्ग से नहीं पहुंचता है। उदाहरण के लिए, जब CSE का सामना होता है
एक "अगर" कथन "अन्य" खंड के साथ, सीएसई कूद का अनुसरण करता है जब स्थिति
परीक्षण झूठा है।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-एफसीई-स्किप-ब्लॉक
यह समान है -fcse-अनुसरण-कूदता है, लेकिन सीएसई को उस छलांग का अनुसरण करने का कारण बनता है
सशर्त रूप से ब्लॉक पर छोड़ें। जब CSE को no . के साथ एक साधारण "if" कथन का सामना करना पड़ता है
अन्य खंड, -एफसीई-स्किप-ब्लॉक सीएसई को शरीर के चारों ओर कूदने का कारण बनता है
"अगर"।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-फ्रेरुन-सीएसई-आफ्टर-लूप
लूप ऑप्टिमाइजेशन के बाद कॉमन सबएक्सप्रेशन एलिमिनेशन को फिर से चलाएँ।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-एफजीसीएसई
एक वैश्विक सामान्य उप-अभिव्यक्ति उन्मूलन पास करें। यह पास भी करता है
वैश्विक स्थिरांक और प्रतिलिपि प्रसार।

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

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

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

डिफ़ॉल्ट रूप से सक्षम जब -एफजीसीएसई सक्षम किया गया है।

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

किसी भी अनुकूलन स्तर पर सक्षम नहीं है।

-fgcse-लास
. -fgcse-लास सक्षम है, वैश्विक सामान्य उप-अभिव्यक्ति उन्मूलन पास
एक ही मेमोरी लोकेशन (दोनों) में स्टोर के बाद आने वाले अनावश्यक भार को समाप्त करता है
आंशिक और पूर्ण अतिरेक)।

किसी भी अनुकूलन स्तर पर सक्षम नहीं है।

-fgcse-आफ्टर-रीलोड
. -fgcse-आफ्टर-रीलोड सक्षम है, एक अनावश्यक भार उन्मूलन पास किया जाता है
पुनः लोड करने के बाद। इस पास का उद्देश्य अनावश्यक स्पिलिंग को साफ करना है।

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

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

-क्रॉस जंपिंग
क्रॉस-जंपिंग ट्रांसफॉर्मेशन करें। यह परिवर्तन समतुल्य कोड को एकीकृत करता है और
कोड आकार बचाता है। परिणामी कोड बिना क्रॉस के बेहतर प्रदर्शन कर सकता है या नहीं भी कर सकता है-
कूदना

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-फॉटो-इंक-दिसंबर
मेमोरी एक्सेस के साथ पतों की वृद्धि या कमी को मिलाएं। यह पास है
हमेशा आर्किटेक्चर पर छोड़ दिया जाता है जिसमें इसका समर्थन करने के निर्देश नहीं होते हैं।
पर डिफ़ॉल्ट रूप से सक्षम -O और इसका समर्थन करने वाले आर्किटेक्चर पर उच्चतर।

-एफडीसी
RTL पर डेड कोड एलिमिनेशन (DCE) करें। पर डिफ़ॉल्ट रूप से सक्षम -O और उच्चा।

-एफडीएसई
RTL पर डेड स्टोर एलिमिनेशन (DSE) करें। पर डिफ़ॉल्ट रूप से सक्षम -O और उच्चा।

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

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-फिफ-रूपांतरण2
सशर्त कूद को बदलने के लिए सशर्त निष्पादन (जहां उपलब्ध हो) का उपयोग करें
शाखा रहित समकक्ष।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-fdeclone-ctor-dtor
C++ ABI को कंस्ट्रक्टर्स और डिस्ट्रक्टर्स के लिए कई एंट्री पॉइंट्स की आवश्यकता होती है: a के लिए एक
बेस सबोबजेक्ट, एक पूर्ण ऑब्जेक्ट के लिए, और एक वर्चुअल डिस्ट्रक्टर के लिए जो कॉल करता है
ऑपरेटर बाद में हटा दें। आभासी आधारों वाले पदानुक्रम के लिए, आधार और पूर्ण
वेरिएंट क्लोन हैं, जिसका अर्थ है फ़ंक्शन की दो प्रतियां। इस विकल्प के साथ,
आधार और पूर्ण रूपों को थंक्स में बदल दिया जाता है जो एक सामान्य कार्यान्वयन कहते हैं।

द्वारा सक्षम -ओस.

-fdelete-null-pointer-checks
मान लें कि प्रोग्राम सुरक्षित रूप से अशक्त बिंदुओं को नहीं हटा सकते हैं, और यह कि कोई कोड या डेटा नहीं है
तत्व वहीं रहता है। यह सरल निरंतर फोल्डिंग अनुकूलन को बिल्कुल भी सक्षम बनाता है
अनुकूलन स्तर। इसके अतिरिक्त, जीसीसी में अन्य अनुकूलन पास इस ध्वज का उपयोग करने के लिए करते हैं
वैश्विक डेटा प्रवाह विश्लेषण को नियंत्रित करें जो नल पॉइंटर्स के लिए बेकार जांच को खत्म करता है;
ये मानते हैं कि यदि किसी सूचक को पहले से ही संदर्भित किए जाने के बाद चेक किया गया है, तो यह
रिक्त नहीं हो सकता।

ध्यान दें कि कुछ परिवेशों में यह धारणा सत्य नहीं है। उपयोग
-फनो-डिलीट-नल-पॉइंटर-चेक निर्भर कार्यक्रमों के लिए इस अनुकूलन को अक्षम करने के लिए
उस व्यवहार पर।

कुछ लक्ष्य, विशेष रूप से एम्बेडेड वाले, इस विकल्प को सभी स्तरों पर अक्षम कर देते हैं। अन्यथा
यह सभी स्तरों पर सक्षम है: -ओ३, -ओ३, -ओ३, -ओ३, -ओस. पास जो जानकारी का उपयोग करते हैं
विभिन्न अनुकूलन स्तरों पर स्वतंत्र रूप से सक्षम हैं।

-fdevirualize
कॉल को वर्चुअल फ़ंक्शंस में डायरेक्ट कॉल में बदलने का प्रयास करें। यह दोनों किया जाता है
एक प्रक्रिया के भीतर और अप्रत्यक्ष रूप से अप्रत्यक्ष इनलाइनिंग के हिस्से के रूप में
(-findirect-इनलाइनिंग) और अंतःप्रक्रियात्मक निरंतर प्रसार (-फिपा-सीपी) पर सक्षम
स्तर -ओ३, -ओ३, -ओस.

-fdevirtualize-सट्टा लगाना
कॉल को वर्चुअल फ़ंक्शंस में सट्टा प्रत्यक्ष कॉल में बदलने का प्रयास करें। पर आधारित
प्रकार वंशानुक्रम ग्राफ का विश्लेषण, किसी दिए गए कॉल के लिए निर्धारित करें . का सेट
संभावित लक्ष्य। यदि सेट छोटा है, तो अधिमानतः आकार 1 का, कॉल को a . में बदलें
प्रत्यक्ष और अप्रत्यक्ष कॉलों के बीच सशर्त निर्णय लेना। सट्टा कॉल सक्षम
अधिक अनुकूलन, जैसे इनलाइनिंग। जब आगे चलकर वे बेकार लगने लगते हैं
अनुकूलन, वे वापस मूल रूप में परिवर्तित हो जाते हैं।

-एफडेवर्चुअलाइज़-एट-एलट्रांस
लिंक चलाते समय आक्रामक वर्चुअलाइजेशन के लिए आवश्यक अतिरिक्त जानकारी स्ट्रीम करें-
स्थानीय परिवर्तन मोड में समय अनुकूलक। यह विकल्प अधिक सक्षम करता है
वर्चुअलाइजेशन लेकिन स्ट्रीम किए गए डेटा के आकार को महत्वपूर्ण रूप से बढ़ाता है। इसके लिए
कारण यह डिफ़ॉल्ट रूप से अक्षम है।

-महंगे-अनुकूलन
कई छोटे अनुकूलन करें जो अपेक्षाकृत महंगे हैं।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-मुक्त
अनावश्यक विस्तार निर्देशों को हटाने का प्रयास करें। यह के लिए विशेष रूप से सहायक है
x86-64 आर्किटेक्चर, जो बाद में 64-बिट रजिस्टरों में परोक्ष रूप से शून्य-विस्तारित होता है
उनके निचले 32-बिट आधे को लिखना।

स्तरों पर अल्फा, AArch64 और x86 के लिए सक्षम -ओ३, -ओ३, -ओस.

-फनो-लाइफटाइम-डीएसई
C++ में किसी वस्तु का मूल्य केवल उसके जीवनकाल में होने वाले परिवर्तनों से प्रभावित होता है: जब
कंस्ट्रक्टर शुरू होता है, ऑब्जेक्ट का एक अनिश्चित मूल्य होता है, और के दौरान कोई भी परिवर्तन होता है
वस्तु के नष्ट होने पर वस्तु का जीवनकाल समाप्त हो जाता है। आम तौर पर मृत दुकान
उन्मूलन इसका लाभ उठाएगा; यदि आपका कोड के मान पर निर्भर करता है
वस्तु भंडारण वस्तु के जीवनकाल से परे बनी रहती है, आप इस ध्वज का उपयोग करने के लिए कर सकते हैं
इस अनुकूलन को अक्षम करें।

-फ्लाइव-रेंज-संकोचन
रजिस्टर लाइव रेंज सिकुड़न के माध्यम से रजिस्टर दबाव को कम करने का प्रयास। यह है
छोटे या मध्यम आकार के रजिस्टर सेट वाले तेज प्रोसेसर के लिए मददगार।

-फिरा-एल्गोरिदम=कलन विधि
एकीकृत रजिस्टर आवंटक के लिए निर्दिष्ट रंग एल्गोरिथ्म का प्रयोग करें। NS
कलन विधि तर्क हो सकता है प्राथमिकता, जो चाउ के प्राथमिकता वाले रंग को निर्दिष्ट करता है, या CB,
जो चैटिन-ब्रिग्स रंग को निर्दिष्ट करता है। चैटिन-ब्रिग्स रंग लागू नहीं किया गया है
सभी आर्किटेक्चर के लिए, लेकिन उन लक्ष्यों के लिए जो इसका समर्थन करते हैं, यह डिफ़ॉल्ट है
क्योंकि यह बेहतर कोड उत्पन्न करता है।

-फिरा-क्षेत्र=क्षेत्र
एकीकृत रजिस्टर आवंटक के लिए निर्दिष्ट क्षेत्रों का प्रयोग करें। NS क्षेत्र तर्क
निम्नलिखित में से एक होना चाहिए:

सब रजिस्टर आवंटन क्षेत्रों के रूप में सभी लूप का प्रयोग करें। यह के लिए सर्वोत्तम परिणाम दे सकता है
छोटे और/या अनियमित रजिस्टर सेट वाली मशीनें।

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

एक एक ही क्षेत्र के रूप में सभी कार्यों का प्रयोग करें। यह आमतौर पर सबसे छोटे कोड में परिणत होता है
आकार, और के लिए डिफ़ॉल्ट रूप से सक्षम है -ओस or -ओ३.

-फिरा-लहरा-दबाव
फहराने के निर्णयों के लिए कोड उत्थापन पास में रजिस्टर दबाव का मूल्यांकन करने के लिए IRA का उपयोग करें
भाव। यह विकल्प आमतौर पर छोटे कोड में परिणत होता है, लेकिन यह धीमा कर सकता है
संकलक नीचे।

यह विकल्प स्तर पर सक्षम है -ओस सभी लक्ष्यों के लिए।

-फिरा-लूप-दबाव
लूप इनवेरिएंट को स्थानांतरित करने के निर्णयों के लिए लूप में रजिस्टर दबाव का मूल्यांकन करने के लिए IRA का उपयोग करें।
इस विकल्प के परिणामस्वरूप आमतौर पर मशीनों पर तेज़ और छोटे कोड उत्पन्न होते हैं
बड़ी रजिस्टर फाइलें (>= 32 रजिस्टर), लेकिन यह कंपाइलर को धीमा कर सकती है।

यह विकल्प स्तर पर सक्षम है -ओ३ कुछ लक्ष्यों के लिए।

-फनो-इरा-शेयर-सेव-स्लॉट
कॉल-प्रयुक्त हार्ड रजिस्टरों को सहेजने के लिए उपयोग किए जाने वाले स्टैक स्लॉट के साझाकरण को अक्षम करें
एक कॉल। प्रत्येक हार्ड रजिस्टर को एक अलग स्टैक स्लॉट मिलता है, और परिणामस्वरूप फ़ंक्शन स्टैक
फ्रेम बड़े हैं।

-फनो-इरा-शेयर-स्पिल-स्लॉट
छद्म-रजिस्टरों के लिए आवंटित स्टैक स्लॉट का साझाकरण अक्षम करें। प्रत्येक छद्म रजिस्टर
जिसे हार्ड रजिस्टर नहीं मिलता है उसे एक अलग स्टैक स्लॉट मिलता है, और परिणामस्वरूप कार्य करता है
स्टैक फ्रेम बड़े होते हैं।

-फिरा-क्रिया=n
एकीकृत रजिस्टर आवंटक के लिए डंप फ़ाइल की वाचालता को नियंत्रित करें। NS
डिफ़ॉल्ट मान 5 है। यदि मान n 10 से अधिक या बराबर है, डंप आउटपुट भेजा जाता है
के रूप में एक ही प्रारूप का उपयोग कर stderr करने के लिए n घटा 10.

-फ्लरा-रीमाटा
LRA में CFG-संवेदनशील रीमैटरियलाइज़ेशन सक्षम करें। स्पिल्ड के मान लोड करने के बजाय
स्यूडोस, एलआरए लाभदायक होने पर मूल्यों को पुन: गणना (पुनर्गणना) करने का प्रयास करता है।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-fdelayed-शाखा
यदि लक्ष्य मशीन के लिए समर्थित है, तो शोषण के निर्देशों को पुन: व्यवस्थित करने का प्रयास करें
विलंबित शाखा निर्देशों के बाद उपलब्ध अनुदेश स्लॉट।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-fschedule-insns
यदि लक्ष्य मशीन के लिए समर्थित है, तो समाप्त करने के लिए निर्देशों को पुन: व्यवस्थित करने का प्रयास करें
आवश्यक डेटा अनुपलब्ध होने के कारण निष्पादन स्टॉल। यह मशीनों की मदद करता है कि
अन्य निर्देशों को अनुमति देकर धीमा फ्लोटिंग पॉइंट या मेमोरी लोड निर्देश प्राप्त करें
लोड या फ़्लोटिंग-पॉइंट निर्देश के परिणाम की आवश्यकता होने तक जारी किया जाना चाहिए।

स्तरों पर सक्षम -ओ३, -ओ३.

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

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-फनो-शेड-इंटरब्लॉक
बुनियादी ब्लॉकों में निर्देश शेड्यूल न करें। यह सामान्य रूप से डिफ़ॉल्ट रूप से सक्षम होता है
पंजीकरण आवंटन से पहले शेड्यूलिंग करते समय, यानी के साथ -fschedule-insns पर या -ओ३ or
अधिक है।

-फनो-अनुसूचित-कल्पना
गैर-लोड निर्देशों की सट्टा गति की अनुमति न दें। यह सामान्य रूप से सक्षम है
रजिस्टर आवंटन से पहले शेड्यूलिंग करते समय डिफ़ॉल्ट, यानी के साथ -fschedule-insns पर या
-ओ३ या उच्चतर.

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

-fsched-कल्पना-लोड
कुछ लोड निर्देशों की सट्टा गति की अनुमति दें। यह तभी समझ में आता है जब
पंजीकरण आवंटन से पहले शेड्यूलिंग, यानी के साथ -fschedule-insns पर या -ओ३ या उच्चतर.

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

-fsched-रुका हुआ-insns
-fsched-stalled-insns=n
निर्धारित करें कि कितने इन्स (यदि कोई हैं) को समय से पहले रुकी हुई कतार से स्थानांतरित किया जा सकता है
दूसरे शेड्यूलिंग पास के दौरान तैयार सूची में इन्सन्स। -फनो-अनुसूचित-स्थगित-इंन्स
इसका मतलब है कि कोई भी इंस समय से पहले स्थानांतरित नहीं किया जाता है, -fsched-stalled-insns=0 मतलब वहाँ नहीं है
समय से पहले कितने कतारबद्ध इंस को स्थानांतरित किया जा सकता है, इस पर सीमा। -fsched-रुका हुआ-insns
बिना मूल्य के बराबर है -fsched-stalled-insns=1.

-fsched-रुका हुआ-insns-dep
-fsched-stalled-insns-dep=n
परिभाषित करें कि एक रुके हुए इंस पर निर्भरता के लिए कितने इंस समूहों (चक्रों) की जांच की जाती है
जो रुके हुए इंसों की कतार से समय से पहले हटाने का उम्मीदवार है। यह है
एक प्रभाव केवल दूसरे शेड्यूलिंग पास के दौरान, और केवल यदि -fsched-रुका हुआ-insns is
उपयोग किया गया। -फनो-शेड्यूल-स्टेल्ड-इन्स-डिप के बराबर है -fsched-stalled-insns-dep=0.
-fsched-रुका हुआ-insns-dep बिना मूल्य के बराबर है
-fsched-stalled-insns-dep=1.

-fsched2-उपयोग-सुपरब्लॉक
पंजीकरण आवंटन के बाद शेड्यूलिंग करते समय, सुपरब्लॉक शेड्यूलिंग का उपयोग करें। यह अनुमति देता है
बुनियादी ब्लॉक सीमाओं के पार गति, जिसके परिणामस्वरूप तेजी से कार्यक्रम होते हैं। यह विकल्प है
प्रयोगात्मक, क्योंकि जीसीसी मॉडल सीपीयू द्वारा उपयोग किए जाने वाले सभी मशीन विवरण पर्याप्त रूप से पर्याप्त नहीं हैं
एल्गोरिदम से अविश्वसनीय परिणामों से बचने के लिए।

यह केवल तभी समझ में आता है जब पंजीकरण आवंटन के बाद शेड्यूल किया जाता है, अर्थात के साथ
-fschedule-insns2 पर या -ओ३ या उच्चतर.

-फस्ड-ग्रुप-हेयुरिस्टिक
अनुसूचक में समूह अनुमानी सक्षम करें। यह अनुमानी निर्देश का समर्थन करता है
जो एक शेड्यूल ग्रुप के अंतर्गत आता है। शेड्यूलिंग होने पर यह डिफ़ॉल्ट रूप से सक्षम होता है
सक्षम, यानी के साथ -fschedule-insns or -fschedule-insns2 पर या -ओ३ या उच्चतर.

-fsched-महत्वपूर्ण-पथ-अनुमानी
अनुसूचक में महत्वपूर्ण-पथ अनुमानी सक्षम करें। यह अनुमानी एहसान
महत्वपूर्ण पथ पर निर्देश। शेड्यूलिंग होने पर यह डिफ़ॉल्ट रूप से सक्षम होता है
सक्षम, यानी के साथ -fschedule-insns or -fschedule-insns2 पर या -ओ३ या उच्चतर.

-फस्ड-स्पेक-इन्स-हेयुरिस्टिक
अनुसूचक में सट्टा निर्देश अनुमानी सक्षम करें। यह अनुमानी एहसान
अधिक निर्भरता कमजोरी के साथ सट्टा निर्देश। यह डिफ़ॉल्ट रूप से सक्षम है
शेड्यूलिंग सक्षम होने पर, अर्थात साथ -fschedule-insns or -fschedule-insns2 पर या -ओ३
या उच्चतर.

-फस्ड-रैंक-हेयुरिस्टिक
शेड्यूलर में रैंक अनुमानी सक्षम करें। यह अनुमानी निर्देश का समर्थन करता है
बड़े आकार या आवृत्ति वाले मूल ब्लॉक से संबंधित। यह डिफ़ॉल्ट रूप से सक्षम है
शेड्यूलिंग सक्षम होने पर, अर्थात साथ -fschedule-insns or -fschedule-insns2 पर या -ओ३
या उच्चतर.

-fsched-अंतिम-इंस-हेयुरिस्टिक
अनुसूचक में अंतिम-निर्देश अनुमानी सक्षम करें। यह अनुमानी पक्ष
निर्देश जो निर्धारित अंतिम निर्देश पर कम निर्भर है। यह सक्षम है
शेड्यूलिंग सक्षम होने पर डिफ़ॉल्ट रूप से, अर्थात के साथ -fschedule-insns or -fschedule-insns2
पर या -ओ३ या उच्चतर.

-फस्ड-डिप-काउंट-हेयुरिस्टिक
अनुसूचक में आश्रित-गणना अनुमानी सक्षम करें। यह अनुमानी पक्ष
निर्देश जिसके आधार पर अधिक निर्देश हैं। यह डिफ़ॉल्ट रूप से सक्षम है
शेड्यूलिंग सक्षम होने पर, अर्थात साथ -fschedule-insns or -fschedule-insns2 पर या -ओ३
या उच्चतर.

-फ़्रेशेड्यूल-मॉड्यूलो-शेड्यूल-लूप
मोडुलो शेड्यूलिंग पारंपरिक शेड्यूलिंग से पहले की जाती है। यदि एक लूप मोडुलो है
शेड्यूल किया गया, बाद में शेड्यूलिंग पास अपना शेड्यूल बदल सकता है। इस विकल्प का प्रयोग करें
उस व्यवहार को नियंत्रित करें।

-चयनात्मक-निर्धारण
चयनात्मक शेड्यूलिंग एल्गोरिथम का उपयोग करके शेड्यूल निर्देश। चुनिंदा शेड्यूलिंग रन
पहले अनुसूचक पास के बजाय।

-fचयनात्मक-निर्धारण2
चयनात्मक शेड्यूलिंग एल्गोरिथम का उपयोग करके शेड्यूल निर्देश। चुनिंदा शेड्यूलिंग रन
दूसरे शेड्यूलर पास के बजाय।

-fsel-अनुसूचित-पाइपलाइनिंग
चुनिंदा शेड्यूलिंग के दौरान अंतरतम लूप की सॉफ़्टवेयर पाइपलाइनिंग सक्षम करें। इस
विकल्प का तब तक कोई प्रभाव नहीं पड़ता जब तक कि इनमें से कोई एक -चयनात्मक-निर्धारण or -fचयनात्मक-निर्धारण2
चालू है।

-fsel-अनुसूचित-पाइपलाइनिंग-बाहरी-लूप
जब चयनात्मक शेड्यूलिंग के दौरान पाइपलाइनिंग लूप, बाहरी लूप भी पाइपलाइन करते हैं। इस
विकल्प का तब तक कोई प्रभाव नहीं पड़ता जब तक -fsel-अनुसूचित-पाइपलाइनिंग चालू है।

-शब्दार्थ-अंतर्विभाजन
कुछ ऑब्जेक्ट प्रारूप, जैसे ईएलएफ, डायनामिक लिंकर द्वारा प्रतीकों को इंटरपोज करने की अनुमति देते हैं।
इसका मतलब है कि डीएसओ से निर्यात किए गए प्रतीकों के लिए, कंपाइलर प्रदर्शन नहीं कर सकता
अंतरप्रक्रियात्मक प्रसार, इनलाइनिंग और अन्य अनुकूलन इस प्रत्याशा में कि
प्रश्न में कार्य या चर बदल सकता है। जबकि यह सुविधा उपयोगी है, इसके लिए
उदाहरण के लिए, डिबगिंग कार्यान्वयन द्वारा स्मृति आवंटन कार्यों को फिर से लिखना, यह है
कोड गुणवत्ता के मामले में महंगा। साथ में -फनो-सिमेंटिक-इंटरपोजिशन संकलक
यह मानता है कि यदि कार्यों के लिए इंटरपोजिशन होता है तो ओवरराइटिंग फ़ंक्शन होगा
ठीक वही शब्दार्थ (और दुष्प्रभाव)। इसी तरह अगर इंटरपोजिशन होता है
वेरिएबल्स के लिए, वेरिएबल का कंस्ट्रक्टर वही होगा। ध्वज में नहीं है
स्पष्ट रूप से घोषित इनलाइन कार्यों के लिए प्रभाव (जहां इसकी अनुमति कभी नहीं है
शब्दार्थ बदलने के लिए अंतःस्थापन) और प्रतीकों के लिए स्पष्ट रूप से कमजोर घोषित किया गया।

-फश्रिंक-रैप
एमिट फंक्शन केवल फंक्शन के उन हिस्सों से पहले प्रोलॉग करता है जिन्हें इसकी आवश्यकता होती है, न कि at
समारोह के शीर्ष। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और उच्चा।

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

यह विकल्प हमेशा कुछ मशीनों पर डिफ़ॉल्ट रूप से सक्षम होता है, आमतौर पर जिनके पास है
इसके बजाय उपयोग करने के लिए कोई कॉल-संरक्षित रजिस्टर नहीं।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-fcombine-ढेर-समायोजन
स्टैक समायोजन (पुश और पॉप) को ट्रैक करता है और मेमोरी संदर्भों को स्टैक करता है और फिर कोशिश करता है
उन्हें संयोजित करने के तरीके खोजने के लिए।

पर डिफ़ॉल्ट रूप से सक्षम -ओ३ और उच्चा।

-फिपा-रा
आवंटन के लिए कॉलर सेव रजिस्टर का उपयोग करें यदि उन रजिस्टरों का उपयोग किसी भी कॉल द्वारा नहीं किया जाता है
समारोह। उस स्थिति में उन्हें कॉल के आसपास सहेजना और पुनर्स्थापित करना आवश्यक नहीं है।
यह तभी संभव है जब कॉल किए गए फ़ंक्शन वर्तमान के समान संकलन इकाई का हिस्सा हों
समारोह और वे इससे पहले संकलित हैं।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-fconserve-ढेर
स्टैक के उपयोग को कम करने का प्रयास करें। संकलक कम स्टैक स्थान का उपयोग करने का प्रयास करता है, यहां तक ​​कि
अगर वह प्रोग्राम को धीमा कर देता है। इस विकल्प का अर्थ है सेटिंग करना बड़ा ढेर फ्रेम
100 के लिए पैरामीटर और बड़े ढेर-फ्रेम-विकास 400 के लिए पैरामीटर।

-ftree-reassoc
पेड़ों पर पुनर्संयोजन करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और उच्चा।

-फट्री-प्री
पेड़ों पर आंशिक अतिरेक उन्मूलन (PRE) करें। यह ध्वज द्वारा सक्षम किया गया है
डिफ़ॉल्ट पर -ओ३ और -ओ३.

-फट्री-आंशिक-पूर्व
आंशिक अतिरेक उन्मूलन (PRE) को और अधिक आक्रामक बनाएं। यह ध्वज द्वारा सक्षम किया गया है
डिफ़ॉल्ट पर -ओ३.

-ftree-forwprop
पेड़ों पर आगे प्रचार करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और
अधिक है।

-फ़्री-फ़्री
पेड़ों पर पूर्ण अतिरेक उन्मूलन (एफआरई) करें। एफआरई और के बीच का अंतर
PRE यह है कि FRE केवल उन भावों पर विचार करता है जिनकी गणना सभी पथों पर की जाती है
अनावश्यक गणना। यह विश्लेषण PRE की तुलना में तेज़ है, हालाँकि यह कम उजागर करता है
अतिरेक। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और उच्चा।

-फट्री-फिप्रोप
पेड़ों पर सशर्त पॉइंटर्स से भार उठाना। यह पास द्वारा सक्षम किया गया है
डिफ़ॉल्ट पर -O और उच्चा।

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

-फट्री-कॉपी-प्रोप
पेड़ों पर प्रतिलिपि प्रचार करें। यह पास अनावश्यक प्रतिलिपि संचालन को समाप्त करता है।
यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और उच्चा।

-फिपा-शुद्ध-कॉन्स्ट
डिस्कवर करें कि कौन से कार्य शुद्ध या स्थिर हैं। पर डिफ़ॉल्ट रूप से सक्षम -O और उच्चा।

-फिपा-संदर्भ
पता लगाएं कि कौन से स्थिर चर संकलन इकाई से नहीं बचते हैं। द्वारा सक्षम
डिफ़ॉल्ट पर -O और उच्चा।

-फिपा-पीटीए
इंटरप्रोसेडुरल पॉइंटर विश्लेषण और इंटरप्रोसेडुरल संशोधन करें और
संदर्भ विश्लेषण। यह विकल्प अत्यधिक मेमोरी और संकलन-समय के उपयोग का कारण बन सकता है
बड़ी संकलन इकाइयाँ। यह किसी भी अनुकूलन स्तर पर डिफ़ॉल्ट रूप से सक्षम नहीं है।

-फिपा-प्रोफाइल
इंटरप्रोसेडुरल प्रोफाइल प्रचार करें। केवल ठंड से बुलाए गए कार्य
कार्यों को ठंड के रूप में चिह्नित किया गया है। एक बार निष्पादित कार्य भी (जैसे "ठंडा",
"नोरटर्न", स्टैटिक कंस्ट्रक्टर या डिस्ट्रक्टर्स) की पहचान की जाती है। शीत कार्य और
एक बार निष्पादित कार्यों के लूप कम भागों को आकार के लिए अनुकूलित किया जाता है। द्वारा सक्षम
डिफ़ॉल्ट पर -O और उच्चा।

-फिपा-सीपी
अंतःक्रियात्मक निरंतर प्रसार करें। यह अनुकूलन कार्यक्रम का विश्लेषण करता है
यह निर्धारित करने के लिए कि फ़ंक्शन को दिए गए मान स्थिरांक हैं और फिर अनुकूलित करते हैं
इसलिए। यह अनुकूलन प्रदर्शन को काफी हद तक बढ़ा सकता है यदि
आवेदन स्थिरांक कार्यों के लिए पारित किया है। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है
-ओ३, -ओस और -ओ३.

-फिपा-सीपी-क्लोन
इंटरप्रोसेडुरल निरंतर प्रसार को मजबूत बनाने के लिए फंक्शन क्लोनिंग करें। कब
सक्षम, अंतःप्रक्रियात्मक निरंतर प्रसार कार्य क्लोनिंग करता है जब
बाहरी रूप से दिखाई देने वाले फ़ंक्शन को निरंतर तर्कों के साथ बुलाया जा सकता है। क्योंकि यह
अनुकूलन कार्यों की कई प्रतियां बना सकता है, यह काफी बढ़ सकता है
कोड आकार (देखें --परम आईपीसीपी-इकाई-विकास =मूल्य) यह ध्वज डिफ़ॉल्ट रूप से सक्षम है
-ओ३.

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

यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -ओ३ और -ओस. इसकी आवश्यकता है कि -फिपा-सीपी सक्षम किया गया है।

-फिपा-आईसीएफ
फ़ंक्शंस और रीड-ओनली वैरिएबल के लिए आइडेंटिकल कोड फोल्डिंग करें। NS
ऑप्टिमाइज़ेशन कोड के आकार को कम करता है और फ़ंक्शन को बदलकर स्टैक को खोलना परेशान कर सकता है
एक अलग नाम के साथ समकक्ष द्वारा। अनुकूलन अधिक प्रभावी ढंग से काम करता है
लिंक समय अनुकूलन सक्षम।

फिर भी व्यवहार गोल्ड लिंकर ICF अनुकूलन के समान है, GCC ICF काम करता है
विभिन्न स्तर और इस प्रकार अनुकूलन समान नहीं हैं - ऐसे समकक्ष हैं जो
केवल GCC द्वारा पाए जाते हैं और केवल गोल्ड द्वारा पाए गए समकक्ष।

यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -ओ३ और -ओस.

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

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

-फट्री-सिंक
पेड़ों पर फॉरवर्ड स्टोर मोशन करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और
अधिक है।

-फट्री-बिट-सीसीपी
पेड़ों पर विरल सशर्त बिट निरंतर प्रचार करें और सूचक का प्रचार करें
संरेखण जानकारी। यह पास केवल स्थानीय अदिश चर पर संचालित होता है और है
डिफ़ॉल्ट रूप से सक्षम किया गया -O और उच्चा। इसकी आवश्यकता है कि -फट्री-सीसीपी सक्षम किया गया है।

-फट्री-सीसीपी
पेड़ों पर विरल सशर्त निरंतर प्रसार (CCP) करें। केवल यह पास
स्थानीय अदिश चर पर कार्य करता है और डिफ़ॉल्ट रूप से सक्षम होता है -O और उच्चा।

-fssa-फिओप्टा
सशर्त कोड को ऑप्टिमाइज़ करने के लिए SSA PHI नोड्स पर पैटर्न मिलान करें। यह पास है
डिफ़ॉल्ट रूप से सक्षम किया गया -O और उच्चा।

-फट्री-स्विच-रूपांतरण
एक से आरंभीकरण के लिए स्विच में सरल इनिशियलाइज़ेशन का रूपांतरण करें
अदिश सरणी। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -ओ३ और उच्चा।

-फट्री-टेल-मर्ज
समान कोड अनुक्रमों की तलाश करें। जब मिल जाए, तो एक को दूसरी छलांग से बदलें।
इस अनुकूलन को टेल मर्जिंग या क्रॉस जंपिंग के रूप में जाना जाता है। यह ध्वज द्वारा सक्षम किया गया है
डिफ़ॉल्ट पर -ओ३ और उच्चा। इस पास में संकलन समय का उपयोग करके सीमित किया जा सकता है
मैक्स-टेल-मर्ज-तुलना पैरामीटर और अधिकतम-पूंछ-मर्ज-पुनरावृत्तियों पैरामीटर।

-ftree-dce
पेड़ों पर डेड कोड एलिमिनेशन (DCE) करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O
और उच्चा।

-फट्री-बिल्टिन-कॉल-डीसीई
अंतर्निहित कार्यों के लिए कॉल के लिए सशर्त मृत कोड उन्मूलन (डीसीई) निष्पादित करें
"errno" सेट कर सकते हैं लेकिन अन्यथा दुष्प्रभाव मुक्त हैं। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है
at -ओ३ और उच्चतर यदि -ओस भी निर्दिष्ट नहीं है।

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

-फट्री-डीएसई
पेड़ों पर डेड स्टोर एलिमिनेशन (डीएसई) करें। एक डेड स्टोर एक मेमोरी में एक स्टोर है
स्थान जिसे बाद में बिना किसी हस्तक्षेप के किसी अन्य स्टोर द्वारा अधिलेखित कर दिया जाता है। में
इस मामले में पहले के स्टोर को हटाया जा सकता है। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और
अधिक है।

-फ्ट्री-चो
पेड़ों पर लूप हेडर कॉपी करना। यह फायदेमंद है क्योंकि यह बढ़ता है
कोड गति अनुकूलन की प्रभावशीलता। यह एक छलांग भी बचाता है। यह झंडा है
डिफ़ॉल्ट रूप से सक्षम किया गया -O और उच्चा। इसके लिए सक्षम नहीं है -ओस, क्योंकि यह आमतौर पर
कोड आकार बढ़ाता है।

-फट्री-लूप-ऑप्टिमाइज़
पेड़ों पर लूप ऑप्टिमाइज़ेशन करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और
अधिक है।

-फट्री-लूप-रैखिक
पेड़ पर लूप इंटरचेंज ट्रांसफॉर्मेशन करें। के समान -फ्लॉप-इंटरचेंज। काम में लाना
यह कोड परिवर्तन, जीसीसी के साथ कॉन्फ़िगर किया जाना है --साथ-इस्ली को सक्षम करने के लिए
ग्रेफाइट लूप ट्रांसफॉर्मेशन इंफ्रास्ट्रक्चर।

-फ्लॉप-इंटरचेंज
लूप पर लूप इंटरचेंज ट्रांसफॉर्मेशन करें। दो नेस्टेड लूपों को आपस में बदलना
आंतरिक और बाहरी छोरों को स्विच करता है। उदाहरण के लिए, एक लूप दिया गया है जैसे:

डीओ जे = 1, एम
क्या मैं = 1, एन
ए (जे, आई) = ए (जे, आई) * सी
ENDDO
ENDDO

लूप इंटरचेंज लूप को बदल देता है जैसे कि लिखा गया हो:

क्या मैं = 1, एन
डीओ जे = 1, एम
ए (जे, आई) = ए (जे, आई) * सी
ENDDO
ENDDO

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

-फ्लूप-स्ट्रिप-माइन
लूप्स पर लूप स्ट्रिप माइनिंग ट्रांसफॉर्मेशन करें। स्ट्रिप माइनिंग लूप को विभाजित करता है
दो नेस्टेड लूप। बाहरी लूप में स्ट्रिप साइज और इनर . के बराबर स्ट्राइड होते हैं
लूप में एक स्ट्रिप के भीतर मूल लूप के स्ट्राइड होते हैं। पट्टी की लंबाई बदली जा सकती है
का उपयोग लूप-ब्लॉक-टाइल-आकार पैरामीटर। उदाहरण के लिए, एक लूप दिया गया है जैसे:

क्या मैं = 1, एन
ए (आई) = ए (आई) + सी
ENDDO

लूप स्ट्रिप माइनिंग लूप को बदल देता है जैसे कि लिखा गया हो:

डीओ II = 1, एन, 51
डीओ मैं = द्वितीय, मिनट (द्वितीय + 50, एन)
ए (आई) = ए (आई) + सी
ENDDO
ENDDO

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

-फ्लॉप-ब्लॉक
लूप पर लूप ब्लॉकिंग ट्रांसफॉर्मेशन करें। ब्लॉकिंग स्ट्रिप माइन्स प्रत्येक लूप में
लूप नेस्ट जैसे कि तत्व लूप की मेमोरी एक्सेस कैश के अंदर फिट हो जाती है। NS
पट्टी की लंबाई को का उपयोग करके बदला जा सकता है लूप-ब्लॉक-टाइल-आकार पैरामीटर। उदाहरण के लिए,
एक लूप दिया जैसे:

क्या मैं = 1, एन
डीओ जे = 1, एम
ए (जे, आई) = बी (आई) + सी (जे)
ENDDO
ENDDO

लूप ब्लॉकिंग लूप को बदल देता है जैसे कि लिखा गया हो:

डीओ II = 1, एन, 51
डीओ जेजे = 1, एम, 51
डीओ मैं = द्वितीय, मिनट (द्वितीय + 50, एन)
डीओ जे = जेजे, मिनट (जेजे + 50, एम)
ए (जे, आई) = बी (आई) + सी (जे)
ENDDO
ENDDO
ENDDO
ENDDO

जो फायदेमंद हो सकता है जब "एम" कैश से बड़ा होता है, क्योंकि अंतरतम लूप
कम मात्रा में डेटा पर पुनरावृति करता है जिसे कैश में रखा जा सकता है। इस
अनुकूलन जीसीसी द्वारा समर्थित सभी भाषाओं पर लागू होता है और यह यहीं तक सीमित नहीं है
फोरट्रान। इस कोड परिवर्तन का उपयोग करने के लिए, GCC को कॉन्फ़िगर करना होगा --साथ-इस्ली सेवा मेरे
ग्रेफाइट लूप ट्रांसफॉर्मेशन इंफ्रास्ट्रक्चर को सक्षम करें।

-फग्रेफाइट-पहचान
ग्रेफाइट के लिए पहचान परिवर्तन सक्षम करें। प्रत्येक एससीओपी के लिए हम उत्पन्न करते हैं
पॉलीहेड्रल प्रतिनिधित्व और इसे वापस गिंपल में बदल दें। का उपयोग करते हुए -फग्रेफाइट-पहचान
हम GIMPLE -> GRAPHITE -> GIMPLE परिवर्तन की लागत या लाभों की जांच कर सकते हैं।
कुछ न्यूनतम अनुकूलन भी कोड जनरेटर ISL द्वारा किए जाते हैं, जैसे index
लूप में विभाजन और मृत कोड उन्मूलन।

-फ्लॉप-घोंसला-अनुकूलन
ISL आधारित लूप नेस्ट ऑप्टिमाइज़र सक्षम करें। यह एक सामान्य लूप नेस्ट ऑप्टिमाइज़र आधारित है
प्लूटो अनुकूलन एल्गोरिदम पर। यह के लिए अनुकूलित एक लूप संरचना की गणना करता है
डेटा-इलाके और समानता। यह विकल्प प्रायोगिक है।

-फ्लॉप-अनरोल-एंड-जाम
ISL आधारित लूप नेस्ट ऑप्टिमाइज़र के लिए अनरोल और जैम सक्षम करें। अनियंत्रित कारक हो सकता है
का उपयोग कर बदल गया लूप-अनरोल-जाम-आकार पैरामीटर। अनियंत्रित आयाम (गिनती
सबसे आंतरिक से) का उपयोग करके बदला जा सकता है लूप-अनरोल-जाम-गहराई पैरामीटर।
.

-फ्लॉप-समानांतर-सभी
समानांतर किए जा सकने वाले छोरों की पहचान करने के लिए ग्रेफाइट डेटा निर्भरता विश्लेषण का उपयोग करें।
उन सभी लूपों को समानांतर करें जिनका विश्लेषण किया जा सकता है, जिसमें लूप की निर्भरताएं शामिल नहीं हैं
यह जाँचे बिना कि लूपों को समानांतर करना लाभदायक है।

-फचेक-डेटा-डिप्स
कई डेटा निर्भरता विश्लेषक के परिणामों की तुलना करें। इस विकल्प का उपयोग के लिए किया जाता है
डेटा निर्भरता विश्लेषक डिबगिंग।

-फट्री-लूप-अगर-कन्वर्ट
अंतरतम छोरों में सशर्त छलांग को शाखा-रहित में बदलने का प्रयास करें
समकक्ष। इरादा क्रम में अंतरतम छोरों से नियंत्रण-प्रवाह को हटाना है
इन छोरों को संभालने के लिए वैश्वीकरण पास की क्षमता में सुधार करने के लिए। यह है
सदिशीकरण सक्षम होने पर डिफ़ॉल्ट रूप से सक्षम किया जाता है।

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

के लिए (i = 0; मैं <एन; i++)
अगर (शर्त)
ए [i] = एक्सपीआर;

में बदल जाता है

के लिए (i = 0; मैं <एन; i++)
ए [i] = cond? एक्सपीआर: ए [i];

संभावित रूप से डेटा दौड़ का उत्पादन।

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

क्या मैं = 1, एन
ए (आई) = बी (आई) + सी
डी (आई) = ई (आई) * एफ
ENDDO

में बदल जाता है

क्या मैं = 1, एन
ए (आई) = बी (आई) + सी
ENDDO
क्या मैं = 1, एन
डी (आई) = ई (आई) * एफ
ENDDO

-फट्री-लूप-वितरण-पैटर्न
पैटर्न का लूप वितरण निष्पादित करें जिसे कॉल के साथ कोड उत्पन्न किया जा सकता है a
पुस्तकालय। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -ओ३.

यह पास प्रारंभिक लूप वितरित करता है और शून्य को याद करने के लिए कॉल उत्पन्न करता है।
उदाहरण के लिए, लूप

क्या मैं = 1, एन
ए (आई) = 0
बी (आई) = ए (आई) + आई
ENDDO

में बदल जाता है

क्या मैं = 1, एन
ए (आई) = 0
ENDDO
क्या मैं = 1, एन
बी (आई) = ए (आई) + आई
ENDDO

और इनिशियलाइज़ेशन लूप को मेमसेट जीरो पर कॉल में बदल दिया जाता है।

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

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

-फिवोप्ट्स
इंडक्शन वैरिएबल ऑप्टिमाइज़ेशन (ताकत में कमी, इंडक्शन वैरिएबल) करें
विलय और प्रेरण चर उन्मूलन) पेड़ों पर।

-फट्री-समानांतर-लूप = n
समानांतर लूप, यानी, एन थ्रेड में चलाने के लिए अपने पुनरावृत्ति स्थान को विभाजित करें। यह है
केवल उन लूपों के लिए संभव है जिनकी पुनरावृत्तियां स्वतंत्र हैं और मनमाने ढंग से हो सकती हैं
पुन: व्यवस्थित। ऑप्टिमाइज़ेशन केवल मल्टीप्रोसेसर मशीनों पर लूप के लिए लाभदायक है
जो कि सीपीयू-इंटेंसिव हैं, न कि विवश होने के कारण जैसे मेमोरी बैंडविड्थ द्वारा। इस विकल्प
का तात्पर्य -पथ्रेड, और इस प्रकार केवल उन लक्ष्यों पर समर्थित है जिनके पास समर्थन है
-पथ्रेड.

-फट्री-पीटीए
पेड़ों पर कार्य-स्थानीय बिंदुओं का विश्लेषण करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है
at -O और उच्चा।

-फट्री-सर
समुच्चय का अदिश प्रतिस्थापन करें। यह पास संरचना संदर्भों को प्रतिस्थापित करता है
स्मृति के लिए बहुत जल्दी संरचनाओं को कमिट करने से रोकने के लिए स्केलर के साथ। यह झंडा है
डिफ़ॉल्ट रूप से सक्षम किया गया -O और उच्चा।

-फट्री-कॉपीरेनेम
पेड़ों पर नाम बदलने की प्रतिलिपि बनाएँ। यह पास कंपाइलर अस्थायी का नाम बदलने का प्रयास करता है
प्रतिलिपि स्थानों पर अन्य चर, आमतौर पर चर नामों के परिणामस्वरूप जो अधिक
मूल चर के समान है। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और
अधिक है।

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

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

-फट्री-टेर
एसएसए-> सामान्य चरण के दौरान अस्थायी अभिव्यक्ति प्रतिस्थापन करें। एकल
उपयोग/एकल डीईएफ़ अस्थायी को उनके उपयोग स्थान पर उनके परिभाषित करने के साथ बदल दिया जाता है
अभिव्यक्ति। यह गैर-GIMPLE कोड में परिणत होता है, लेकिन विस्तारकों को बहुत अधिक देता है
बेहतर आरटीएल पीढ़ी के परिणामस्वरूप काम करने के लिए जटिल पेड़। यह द्वारा सक्षम किया गया है
डिफ़ॉल्ट पर -O और उच्चा।

-ftree-slsr
पेड़ों पर सीधी रेखा की ताकत में कमी करें। यह संबंधित को पहचानता है
भावों में गुणन शामिल हैं और उन्हें कम खर्चीली गणनाओं द्वारा प्रतिस्थापित किया जाता है
जब संभव। यह डिफ़ॉल्ट रूप से सक्षम है -O और उच्चा।

-फ़्री-वेक्टराइज़
पेड़ों पर वैश्वीकरण करें। यह ध्वज सक्षम करता है -फट्री-लूप-वेक्टराइज और
-ftree-slp-वेक्टराइज़ यदि स्पष्ट रूप से निर्दिष्ट नहीं है।

-फट्री-लूप-वेक्टराइज
पेड़ों पर लूप वैश्वीकरण करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -ओ३ और कब
-फ़्री-वेक्टराइज़ सक्षम किया गया है।

-ftree-slp-वेक्टराइज़
पेड़ों पर बुनियादी ब्लॉक वैश्वीकरण करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -ओ३ और
कब -फ़्री-वेक्टराइज़ सक्षम किया गया है।

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

-fsimd-लागत-मॉडल=आदर्श
ओपनएमपी या सिल्क के साथ चिह्नित लूपों के वैश्वीकरण के लिए उपयोग किए जाने वाले लागत मॉडल को बदलें
प्लस सिम निर्देश। NS आदर्श तर्क इनमें से एक होना चाहिए असीमित, गतिशील, सस्ता.
के सभी मान आदर्श में वर्णित के रूप में एक ही अर्थ है -फवेक्ट-लागत-मॉडल और तक
डिफ़ॉल्ट रूप से परिभाषित एक लागत मॉडल -फवेक्ट-लागत-मॉडल प्रयोग किया जाता है।

-फट्री-वीआरपी
पेड़ों पर वैल्यू रेंज का प्रचार-प्रसार करें। यह निरंतर प्रसार के समान है
पास, लेकिन मूल्यों के बजाय, मूल्यों की श्रेणियों का प्रचार किया जाता है। यह अनुमति देता है
ऐरे बाउंड चेक और नल पॉइंटर जैसे अनावश्यक रेंज चेक को हटाने के लिए अनुकूलक
जाँच करता है। यह डिफ़ॉल्ट रूप से सक्षम है -ओ३ और उच्चा। नल पॉइंटर चेक एलिमिनेशन
केवल तभी किया जाता है जब -fdelete-null-pointer-checks सक्षम किया गया है।

-fsplit-ivs-इन-अनरोलर
के बाद के पुनरावृत्तियों में प्रेरण चर के मूल्यों की अभिव्यक्ति को सक्षम करता है
पहले पुनरावृत्ति में मान का उपयोग करके अनियंत्रित लूप। यह लंबी निर्भरता को तोड़ता है
चेन, इस प्रकार शेड्यूलिंग पास की दक्षता में सुधार।

का संयोजन -फवेब और CSE अक्सर समान प्रभाव प्राप्त करने के लिए पर्याप्त होता है।
हालांकि, यह उन मामलों में विश्वसनीय नहीं है जहां लूप बॉडी a . से अधिक जटिल है
एकल बुनियादी ब्लॉक। यह कुछ आर्किटेक्चर पर बिल्कुल भी काम नहीं करता है क्योंकि
सीएसई पास में प्रतिबंध।

यह अनुकूलन डिफ़ॉल्ट रूप से सक्षम है।

-परिवर्तनीय-विस्तार-इन-अनरोलर
इस विकल्प के साथ, कंपाइलर कुछ स्थानीय चरों की कई प्रतियां बनाता है जब
एक लूप को अनियंत्रित करना, जिसके परिणामस्वरूप बेहतर कोड हो सकता है।

-fआंशिक-इनलाइनिंग
कार्यों के इनलाइन भागों। इस विकल्प का कोई असर तभी होता है जब खुद को इनलाइन करना होता है
द्वारा चालू किया गया -फिनलाइन-फ़ंक्शंस or -फिनलाइन-छोटे-फ़ंक्शंस विकल्प.

स्तर पर सक्षम -ओ३.

-फप्रेडिक्टिव-कॉमनिंग
प्रेडिक्टिव कॉमनिंग ऑप्टिमाइज़ेशन करें, यानी, कंप्यूटेशंस का पुन: उपयोग करना (विशेषकर
मेमोरी लोड और स्टोर) लूप के पिछले पुनरावृत्तियों में प्रदर्शन किया।

यह विकल्प स्तर पर सक्षम है -ओ३.

-fprefetch-लूप-सरणी
यदि लक्ष्य मशीन द्वारा समर्थित है, तो मेमोरी को प्रीफ़ेच करने के लिए निर्देश उत्पन्न करें
बड़े सरणियों तक पहुँचने वाले छोरों के प्रदर्शन में सुधार करें।

यह विकल्प बेहतर या खराब कोड उत्पन्न कर सकता है; परिणाम अत्यधिक निर्भर हैं
स्रोत कोड के भीतर छोरों की संरचना।

स्तर पर अक्षम -ओस.

-फनो-पीपहोल
-फनो-पीपहोल2
किसी भी मशीन-विशिष्ट पीपहोल अनुकूलन को अक्षम करें। बीच में अंतर
-फनो-पीपहोल और -फनो-पीपहोल2 यह है कि उन्हें कंपाइलर में कैसे लागू किया जाता है; कुछ
लक्ष्य एक का उपयोग करते हैं, कुछ दूसरे का उपयोग करते हैं, कुछ दोनों का उपयोग करते हैं।

-फपीफोल डिफ़ॉल्ट रूप से सक्षम है। -fpeehole2 स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-फनो-अनुमान-शाखा-प्रायिकता
ह्युरिस्टिक्स का उपयोग करके शाखा की संभावनाओं का अनुमान न लगाएं।

GCC शाखा की संभावनाओं का अनुमान लगाने के लिए अनुमान का उपयोग करता है यदि वे इसके द्वारा प्रदान नहीं किए जाते हैं
प्रोफाइलिंग फीडबैक (-फ्रोफाइल-आर्क्स) ये अनुमान नियंत्रण प्रवाह पर आधारित हैं
ग्राफ। यदि कुछ शाखा संभावनाओं को "__builtin_expect" द्वारा निर्दिष्ट किया जाता है, तो
शेष नियंत्रण प्रवाह के लिए शाखा संभावनाओं का अनुमान लगाने के लिए ह्युरिस्टिक्स का उपयोग किया जाता है
ग्राफ़, "__builtin_expect" जानकारी को ध्यान में रखते हुए। के बीच बातचीत
अनुमान और "__builtin_expect" जटिल हो सकते हैं, और कुछ मामलों में, यह उपयोगी हो सकता है
अनुमानों को अक्षम करने के लिए ताकि "__builtin_expect" के प्रभाव आसान हो जाएं
समझना।

डिफ़ॉल्ट है -fअनुमान-शाखा-प्रायिकता स्तरों पर -O, -ओ३, -ओ३, -ओस.

-फ्रीऑर्डर-ब्लॉक
लिए गए कार्यों की संख्या को कम करने के लिए संकलित फ़ंक्शन में मूल ब्लॉकों को पुन: व्यवस्थित करें
शाखाओं और कोड इलाके में सुधार।

स्तरों पर सक्षम -ओ३, -ओ३.

-फ्रीऑर्डर-ब्लॉक-और-विभाजन
कम करने के लिए, संकलित फ़ंक्शन में मूल ब्लॉकों को पुन: व्यवस्थित करने के अलावा
ली गई शाखाओं की संख्या, विभाजन गर्म और ठंडे बुनियादी ब्लॉक अलग-अलग वर्गों में
पेजिंग और कैशे इलाके के प्रदर्शन को बेहतर बनाने के लिए असेंबली और .o फाइलों की।

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

स्तरों पर x86 के लिए सक्षम -ओ३, -ओ३.

-फ्रीऑर्डर-फ़ंक्शंस
कोड इलाके में सुधार के लिए ऑब्जेक्ट फ़ाइल में कार्यों को पुन: व्यवस्थित करें। यह है
सबसे अधिक बार निष्पादित के लिए विशेष उपखंड ".text.hot" का उपयोग करके कार्यान्वित किया गया
फ़ंक्शन और ".text.unlikely" असंभावित निष्पादित कार्यों के लिए। पुन: क्रमित किया जाता है
लिंकर इसलिए ऑब्जेक्ट फ़ाइल स्वरूप को नामित अनुभागों का समर्थन करना चाहिए और लिंकर को अवश्य रखना चाहिए
उन्हें उचित तरीके से।

साथ ही इस विकल्प को प्रभावी बनाने के लिए प्रोफाइल फीडबैक भी उपलब्ध होना चाहिए। देखो
-फ्रोफाइल-आर्क्स ब्योरा हेतु।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

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

इस तरह के कोड पर विशेष ध्यान दें:

संघ a_union {
int i;
डबल डी;
};

इंट एफ () {
संघ a_union टी;
टीडी = 3.0;
वापसी ती;
}

सबसे हाल ही में संघ के किसी अन्य सदस्य से पढ़ने का अभ्यास
को लिखा जाता है (जिसे "टाइप-पनिंग" कहा जाता है) आम है। भी साथ -फस्ट्रिक्ट-अलियासिंग, प्रकार-
पनिंग की अनुमति है, बशर्ते कि मेमोरी को यूनियन प्रकार के माध्यम से एक्सेस किया जाए। ऐसा
उपरोक्त कोड अपेक्षा के अनुरूप काम करता है। हालांकि, यह कोड नहीं हो सकता है:

इंट एफ () {
संघ a_union टी;
इंट * आईपी;
टीडी = 3.0;
आईपी ​​= &t.i;
वापसी * ​​आईपी;
}

इसी तरह, पता लेकर पहुंच, परिणामी सूचक कास्टिंग और
परिणाम को संदर्भित करने से अपरिभाषित व्यवहार होता है, भले ही कलाकार संघ प्रकार का उपयोग करता हो,
उदाहरण के लिए:

इंट एफ () {
डबल डी = 3.0;
वापसी ((संघ a_union *) और डी) -> मैं;
}

RSI -फस्ट्रिक्ट-अलियासिंग विकल्प स्तरों पर सक्षम है -ओ३, -ओ३, -ओस.

-फस्ट्रिक्ट-ओवरफ्लो
भाषा के आधार पर संकलक को सख्त हस्ताक्षरित अतिप्रवाह नियमों को मानने की अनुमति दें
संकलित किया जा रहा है। सी (और सी ++) के लिए इसका मतलब है कि अंकगणित करते समय अतिप्रवाह
हस्ताक्षरित संख्या अपरिभाषित है, जिसका अर्थ है कि संकलक यह मान सकता है कि यह नहीं है
होना। यह विभिन्न अनुकूलन की अनुमति देता है। उदाहरण के लिए, संकलक मानता है कि
"i + 10 > i" जैसा व्यंजक हस्ताक्षरित "i" के लिए हमेशा सत्य होता है। यह धारणा है
केवल तभी मान्य है जब हस्ताक्षरित अतिप्रवाह अपरिभाषित है, क्योंकि अभिव्यक्ति गलत है यदि "i + 10"
दो का उपयोग करते समय अतिप्रवाह अंकगणित के पूरक हैं। जब यह विकल्प प्रभाव में हो तो कोई भी
यह निर्धारित करने का प्रयास करें कि क्या हस्ताक्षरित संख्याओं के अतिप्रवाह पर एक ऑपरेशन लिखा जाना चाहिए
ध्यान से वास्तव में अतिप्रवाह शामिल नहीं है।

यह विकल्प संकलक को सख्त सूचक शब्दार्थ ग्रहण करने की भी अनुमति देता है: दिए गए a
किसी ऑब्जेक्ट को पॉइंटर, यदि उस पॉइंटर में ऑफ़सेट जोड़ने से पॉइंटर उत्पन्न नहीं होता है
एक ही वस्तु के लिए, जोड़ अपरिभाषित है। यह संकलक को निष्कर्ष निकालने की अनुमति देता है
कि "p + u> p" एक सूचक "p" और अहस्ताक्षरित पूर्णांक "u" के लिए हमेशा सत्य होता है। इस
धारणा केवल मान्य है क्योंकि सूचक रैपराउंड अपरिभाषित है, क्योंकि अभिव्यक्ति है
झूठा अगर "पी + यू" दो पूरक अंकगणित का उपयोग करके अतिप्रवाह करता है।

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

RSI -फस्ट्रिक्ट-ओवरफ्लो विकल्प स्तरों पर सक्षम है -ओ३, -ओ३, -ओस.

-फालिग्न-फ़ंक्शंस
-फलाइन-फ़ंक्शंस =n
फ़ंक्शंस की शुरुआत को अगले पावर-ऑफ-टू से अधिक के लिए संरेखित करें n, तक लंघन n
बाइट्स। उदाहरण के लिए, -फलाइन-फ़ंक्शंस = 32 कार्यों को अगले 32-बाइट में संरेखित करता है
सीमा, लेकिन -फलाइन-फ़ंक्शंस = 24 अगली 32-बाइट सीमा पर तभी संरेखित होता है जब यह
23 बाइट्स या उससे कम को छोड़ कर किया जा सकता है।

-फनो-एलाइन-फ़ंक्शंस और -फलाइन-फ़ंक्शंस = 1 समतुल्य हैं और इसका मतलब है कि कार्य
संरेखित नहीं हैं।

कुछ असेंबलर केवल इस ध्वज का समर्थन करते हैं जब n दो की शक्ति है; उस मामले में, यह है
लिपटा हुआ।

If n निर्दिष्ट नहीं है या शून्य है, मशीन-निर्भर डिफ़ॉल्ट का उपयोग करें।

स्तरों पर सक्षम -ओ३, -ओ३.

-फालिग्न-लेबल
-फलाइन-लेबल =n
सभी शाखा लक्ष्यों को तक स्किप करते हुए पावर-ऑफ़-टू सीमा पर संरेखित करें n बाइट लाइक
-फालिग्न-फ़ंक्शंस. यह विकल्प आसानी से कोड को धीमा कर सकता है, क्योंकि इसे सम्मिलित करना होगा
कोड के सामान्य प्रवाह में शाखा लक्ष्य तक पहुँचने पर डमी संचालन।

-फनो-एलाइन-लेबल और -फलाइन-लेबल = 1 समतुल्य हैं और इसका मतलब है कि लेबल नहीं हैं
संरेखित।

If -फालिग्न-लूप्स or -फालिग्न-कूद लागू होते हैं और इस मान से अधिक होते हैं, तो
इसके बजाय उनके मूल्यों का उपयोग किया जाता है।

If n निर्दिष्ट नहीं है या शून्य है, मशीन-निर्भर डिफ़ॉल्ट का उपयोग करें जिसकी बहुत संभावना है
करने के लिए हो सकता है 1, जिसका अर्थ है कोई संरेखण नहीं।

स्तरों पर सक्षम -ओ३, -ओ३.

-फालिग्न-लूप्स
-फलाइन-लूप =n
लूप्स को पावर-ऑफ-टू बाउंड्री पर संरेखित करें, ऊपर तक छोड़ते हुए n बाइट लाइक -फालिग्न-फ़ंक्शंस.
यदि लूप को कई बार निष्पादित किया जाता है, तो यह डमी के किसी भी निष्पादन के लिए तैयार होता है
आपरेशनों।

-फनो-एलाइन-लूप और -फलाइन-लूप = 1 समतुल्य हैं और इसका मतलब है कि लूप नहीं हैं
संरेखित।

If n निर्दिष्ट नहीं है या शून्य है, मशीन-निर्भर डिफ़ॉल्ट का उपयोग करें।

स्तरों पर सक्षम -ओ३, -ओ३.

-फालिग्न-कूद
-फलाइन-कूद =n
शाखा लक्ष्य को एक शक्ति-दो-सीमा के लिए संरेखित करें, शाखा लक्ष्य के लिए जहां लक्ष्य
केवल ऊपर कूद कर पहुँचा जा सकता है n बाइट लाइक -फालिग्न-फ़ंक्शंस. में
इस मामले में, कोई डमी संचालन निष्पादित करने की आवश्यकता नहीं है।

-फनो-संरेखण-कूदता है और -फलाइन-कूद = 1 समतुल्य हैं और इसका मतलब है कि लूप नहीं हैं
संरेखित।

If n निर्दिष्ट नहीं है या शून्य है, मशीन-निर्भर डिफ़ॉल्ट का उपयोग करें।

स्तरों पर सक्षम -ओ३, -ओ३.

-फनिट-एट-ए-टाइम
संगतता कारणों से यह विकल्प छोड़ दिया गया है। -फनिट-एट-ए-टाइम कोई प्रभाव नहीं है, जबकि
-फनो-यूनिट-एट-ए-टाइम का तात्पर्य -फनो-टॉपलेवल-रीऑर्डर और -फनो-सेक्शन-एंकर.

डिफ़ॉल्ट रूप से सक्षम।

-फनो-टॉपलेवल-रीऑर्डर
शीर्ष-स्तरीय फ़ंक्शंस, चर, और "asm" कथनों को पुन: क्रमित न करें। उन्हें आउटपुट करें
वही क्रम जो वे इनपुट फ़ाइल में दिखाई देते हैं। जब इस विकल्प का उपयोग किया जाता है,
गैर-संदर्भित स्थिर चर हटाए नहीं जाते हैं। इस विकल्प का समर्थन करने का इरादा है
मौजूदा कोड जो किसी विशेष ऑर्डरिंग पर निर्भर करता है। नए कोड के लिए, इसका उपयोग करना बेहतर है
गुण जब संभव हो।

स्तर पर सक्षम -ओ३. जब स्पष्ट रूप से अक्षम किया जाता है, तो इसका अर्थ यह भी होता है -फनो-सेक्शन-एंकर,
जो अन्यथा सक्षम है -ओ३ कुछ लक्ष्यों पर।

-फवेब
आमतौर पर रजिस्टर आवंटन उद्देश्यों के लिए उपयोग किए जाने वाले जाले का निर्माण करता है और प्रत्येक वेब को असाइन करता है
व्यक्तिगत छद्म रजिस्टर। यह रजिस्टर आवंटन पास को संचालित करने की अनुमति देता है
छद्म सीधे, लेकिन कई अन्य अनुकूलन पासों को भी मजबूत करता है, जैसे सीएसई,
लूप अनुकूलक और तुच्छ मृत कोड हटानेवाला। हालाँकि, यह डिबगिंग कर सकता है
असंभव है, क्योंकि चर अब "होम रजिस्टर" में नहीं रहते हैं।

के साथ डिफ़ॉल्ट रूप से सक्षम -फ़नरोल-लूप्स.

पूरे कार्यक्रम
मान लें कि वर्तमान संकलन इकाई संकलित किए जा रहे पूरे कार्यक्रम का प्रतिनिधित्व करती है।
"मुख्य" के अपवाद के साथ सभी सार्वजनिक कार्य और चर और जिन्हें विलय किया गया है
विशेषता "externally_visible" स्थिर कार्य बन जाते हैं और प्रभाव में अनुकूलित होते हैं
इंटरप्रोसेडुरल ऑप्टिमाइज़र द्वारा अधिक आक्रामक रूप से।

इस विकल्प का उपयोग संयोजन में नहीं किया जाना चाहिए -फ्लोटो. एक लिंकर पर निर्भर होने के बजाय
प्लगइन को सुरक्षित और अधिक सटीक जानकारी प्रदान करनी चाहिए।

-फ्लोटो[=n]
यह विकल्प मानक लिंक-टाइम अनुकूलक चलाता है। जब स्रोत कोड के साथ लागू किया जाता है, तो यह
GIMPLE (GCC के आंतरिक अभ्यावेदन में से एक) उत्पन्न करता है और इसे विशेष ELF को लिखता है
ऑब्जेक्ट फ़ाइल में अनुभाग। जब ऑब्जेक्ट फ़ाइलें एक साथ जुड़ी होती हैं, तो सभी
इन ईएलएफ अनुभागों से कार्य निकायों को पढ़ा जाता है और तत्काल किया जाता है जैसे कि वे थे
एक ही अनुवाद इकाई का हिस्सा।

लिंक-टाइम अनुकूलक का उपयोग करने के लिए, -फ्लोटो और अनुकूलन विकल्पों को निर्दिष्ट किया जाना चाहिए
संकलन समय और अंतिम कड़ी के दौरान। उदाहरण के लिए:

जीसीसी -c -O2 -flto foo.c
जीसीसी -c -O2 -flto bar.c
जीसीसी -o myprog -flto -O2 foo.o bar.o

GCC के पहले दो आह्वान GIMPLE के बाइटकोड प्रतिनिधित्व को विशेष में सहेजते हैं
ईएलएफ अनुभाग अंदर फू.ओ और बार.ओ. अंतिम आह्वान GIMPLE बाइटकोड पढ़ता है
से फू.ओ और बार.ओ, दो फाइलों को एक आंतरिक छवि में मर्ज करता है, और संकलित करता है
हमेशा की तरह परिणाम। चूंकि दोनों फू.ओ और बार.ओ एक छवि में विलय कर रहे हैं, यह
जीसीसी में सभी अंतर-प्रक्रियात्मक विश्लेषण और अनुकूलन का कारण बनता है
दो फाइलें मानो वे एक ही हों। इसका मतलब है, उदाहरण के लिए, कि इनलाइनर है
में कार्यों को इनलाइन करने में सक्षम बार.ओ कार्यों में फू.ओ और इसके विपरीत।

लिंक-टाइम ऑप्टिमाइज़ेशन को सक्षम करने का एक और (सरल) तरीका है:

जीसीसी -o myprog -flto -O2 foo.c bar.c

उपरोक्त के लिए बाइटकोड उत्पन्न करता है फू.सी और बार.सी, उन्हें एक साथ एक में मिला देता है
GIMPLE प्रतिनिधित्व करता है और उन्हें हमेशा की तरह उत्पादन करने के लिए अनुकूलित करता है myprog.

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

संपूर्ण कार्यक्रम अनुकूलन को प्रभावी बनाने के लिए, कुछ निश्चित करना आवश्यक है
कार्यक्रम की धारणाएं। संकलक को यह जानने की जरूरत है कि कौन से कार्य और चर हो सकते हैं
लिंक-टाइम अनुकूलित इकाई के बाहर पुस्तकालयों और रनटाइम द्वारा पहुँचा जा सकता है। कब
लिंकर द्वारा समर्थित, लिंकर प्लगइन (देखें -फ्यूज-लिंकर-प्लगइन) गुजरता
उपयोग किए गए और बाहरी रूप से दिखाई देने वाले प्रतीकों के बारे में संकलक को जानकारी। जब
लिंकर प्लगइन उपलब्ध नहीं है, पूरे कार्यक्रम कंपाइलर को अनुमति देने के लिए इस्तेमाल किया जाना चाहिए
इन धारणाओं को बनाने के लिए, जो अधिक आक्रामक अनुकूलन निर्णयों की ओर ले जाता है।

. -फ्यूज-लिंकर-प्लगइन तब सक्षम नहीं है, जब कोई फ़ाइल संकलित की जाती है -फ्लोटो,
जेनरेट की गई ऑब्जेक्ट फ़ाइल नियमित ऑब्जेक्ट फ़ाइल से बड़ी होती है क्योंकि इसमें GIMPLE होता है
बाइटकोड और सामान्य अंतिम कोड (देखें -ffat-lto-वस्तुओं. इसका मतलब है कि वस्तु
एलटीओ जानकारी वाली फाइलों को सामान्य वस्तु फाइलों के रूप में जोड़ा जा सकता है; अगर -फनो-एलटीओ पारित कर दिया गया है
लिंकर के लिए, कोई अंतरप्रक्रियात्मक अनुकूलन लागू नहीं किया जाता है। ध्यान दें कि जब
-फनो-फैट-एलटीओ-ऑब्जेक्ट्स सक्षम है संकलन-चरण तेज़ है लेकिन आप प्रदर्शन नहीं कर सकते हैं
उन पर नियमित, गैर-एलटीओ लिंक।

इसके अतिरिक्त, व्यक्तिगत फ़ाइलों को संकलित करने के लिए उपयोग किए जाने वाले अनुकूलन झंडे नहीं हैं
अनिवार्य रूप से लिंक समय पर उपयोग किए जाने वाले लोगों से संबंधित है। उदाहरण के लिए,

gcc -c -O0 -ffat-lto-ऑब्जेक्ट्स -flto foo.c
gcc -c -O0 -ffat-lto-ऑब्जेक्ट्स -flto bar.c
जीसीसी -o myprog -O3 foo.o bar.o

यह अडॉप्टिमाइज्ड असेंबलर कोड के साथ अलग-अलग ऑब्जेक्ट फाइल तैयार करता है, लेकिन
परिणामी बाइनरी myprog पर अनुकूलित है -ओ३. यदि, इसके बजाय, अंतिम बाइनरी है
के साथ उत्पन्न -फनो-एलटीओ, तो myprog अनुकूलित नहीं है।

अंतिम बाइनरी का निर्माण करते समय, GCC केवल उन पर लिंक-टाइम ऑप्टिमाइज़ेशन लागू करता है
फ़ाइलें जिनमें बाइटकोड होता है। इसलिए, आप ऑब्जेक्ट फ़ाइलों को मिक्स एंड मैच कर सकते हैं और
GIMPLE बाइटकोड और अंतिम ऑब्जेक्ट कोड वाले पुस्तकालय। जीसीसी स्वचालित रूप से चयन करता है
एलटीओ मोड में किन फाइलों को ऑप्टिमाइज़ करना है और किन फाइलों को बिना आगे लिंक करना है
प्रसंस्करण।

बाइटकोड उत्पन्न करते समय जीसीसी द्वारा संरक्षित कुछ कोड जनरेशन झंडे हैं, जैसे
उन्हें अंतिम लिंक चरण के दौरान उपयोग करने की आवश्यकता है। आम तौर पर निर्दिष्ट विकल्प
लिंक-टाइम संकलन-समय पर निर्दिष्ट लोगों को ओवरराइड करता है।

यदि आप अनुकूलन स्तर विकल्प निर्दिष्ट नहीं करते हैं -O लिंक-टाइम पर जीसीसी गणना करता है
ऑब्जेक्ट फ़ाइलों को संकलित करते समय उपयोग किए जाने वाले अनुकूलन स्तरों के आधार पर। NS
उच्चतम अनुकूलन स्तर यहां जीतता है।

वर्तमान में, निम्नलिखित विकल्प और उनकी सेटिंग पहली ऑब्जेक्ट फ़ाइल से ली गई हैं
जिसने इसे स्पष्ट रूप से निर्दिष्ट किया है: -एफपीआईसी, -एफपीआईसी, -एफपीआई, आम, अपवाद,
-फॉन-कॉल-अपवाद, -फग्नू-टीएम और सभी -m लक्ष्य झंडे।

सभी संकलन-इकाइयों और कोशिशों में मिलान करने के लिए कुछ एबीआई बदलते झंडे आवश्यक हैं
एक परस्पर विरोधी मूल्य के साथ लिंक-टाइम पर इसे ओवरराइड करने पर ध्यान नहीं दिया जाता है। यह भी शामिल है
जैसे विकल्प -फ्रेग-स्ट्रक्चर-रिटर्न और -एफपीसीसी-स्ट्रक्चर-रिटर्न.

अन्य विकल्प जैसे -ffp-अनुबंध, -फनो-सख्त-अतिप्रवाह, -fwrapv, -फनो-ट्रैपवी or
-फनो-सख्त-अलियासिंग लिंक चरण के माध्यम से पारित किया जाता है और रूढ़िवादी रूप से विलय कर दिया जाता है
परस्पर विरोधी अनुवाद इकाइयों के लिए। विशेष रूप से -फनो-सख्त-अतिप्रवाह, -fwrapv और
-फनो-ट्रैपवी प्राथमिकता लें और उदाहरण के लिए -ffp-अनुबंध = बंद पूर्वता लेता है
-ffp-अनुबंध = तेज. आप उन्हें लिंक-टाइम पर ओवरराइड कर सकते हैं।

यह अनुशंसा की जाती है कि आप एक ही लिंक में भाग लेने वाली सभी फाइलों को संकलित करें
वही विकल्प और लिंक समय पर उन विकल्पों को भी निर्दिष्ट करें।

यदि एलटीओ सी लिंकेज के साथ वस्तुओं का सामना करता है, तो अलग-अलग असंगत प्रकारों के साथ घोषित किया जाता है
अनुवाद इकाइयों को एक साथ जोड़ा जाना (आईएसओ सी 99 के अनुसार अपरिभाषित व्यवहार)
6.2.7), एक गैर-घातक निदान जारी किया जा सकता है। रन पर व्यवहार अभी भी अपरिभाषित है
समय। इसी तरह के निदान अन्य भाषाओं के लिए उठाए जा सकते हैं।

एलटीओ की एक और विशेषता यह है कि इंटरप्रोसेडुरल ऑप्टिमाइज़ेशन लागू करना संभव है
विभिन्न भाषाओं में लिखी गई फाइलों पर:

जीसीसी -c -flto foo.c
जी ++ -सी -flto bar.cc
ग्फोरट्रान -c -flto baz.f90
g++ -o myprog -flto -O3 foo.o bar.o baz.o -lgfortrans

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

यदि GIMPLE बाइटकोड वाली ऑब्जेक्ट फ़ाइलें लाइब्रेरी संग्रह में संग्रहीत हैं, तो कहें
libfoo.a, यदि आप a . का उपयोग कर रहे हैं तो एलटीओ लिंक में उन्हें निकालना और उनका उपयोग करना संभव है
प्लगइन समर्थन के साथ लिंकर। एलटीओ के लिए उपयुक्त स्थिर पुस्तकालय बनाने के लिए, उपयोग करें जीसीसी-एआर
और जीसीसी-रानलिब के बजाय ar और रैनलिब; ऑब्जेक्ट फ़ाइलों के प्रतीकों को दिखाने के लिए
GIMPLE बाइटकोड, उपयोग करें जीसीसी-एनएम. उन आदेशों की आवश्यकता है कि ar, रैनलिब और nm किया गया है
प्लगइन समर्थन के साथ संकलित। लिंक समय पर, ध्वज का प्रयोग करें -फ्यूज-लिंकर-प्लगइन सेवा मेरे
सुनिश्चित करें कि पुस्तकालय एलटीओ अनुकूलन प्रक्रिया में भाग लेता है:

gcc -o myprog -O2 -flto -fuse-linker-plugin ao bo -lfoo

लिंकर प्लगइन सक्षम होने के साथ, लिंकर से आवश्यक GIMPLE फाइलें निकालता है
libfoo.a और उन्हें समुच्चय का हिस्सा बनाने के लिए चल रहे जीसीसी को भेजता है
GIMPLE छवि को अनुकूलित किया जाना है।

यदि आप प्लगइन समर्थन वाले लिंकर का उपयोग नहीं कर रहे हैं और/या लिंकर को सक्षम नहीं करते हैं
प्लगइन, फिर अंदर की वस्तुएं libfoo.a हमेशा की तरह निकाले और जुड़े हुए हैं, लेकिन वे
एलटीओ अनुकूलन प्रक्रिया में भाग न लें। एक स्थिर पुस्तकालय बनाने के लिए
एलटीओ अनुकूलन और सामान्य लिंकेज दोनों के लिए उपयुक्त, इसके ऑब्जेक्ट फाइलों को संकलित करें
-फ्लोटो -ffat-lto-वस्तुओं.

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

एलटीओ का वर्तमान कार्यान्वयन बायटेकोड उत्पन्न करने का कोई प्रयास नहीं करता है जो है
विभिन्न प्रकार के मेजबानों के बीच पोर्टेबल। बाइटकोड फ़ाइलें संस्करणित हैं और वहाँ
एक सख्त संस्करण जांच है, इसलिए जीसीसी के एक संस्करण में उत्पन्न बाइटकोड फाइलें नहीं हैं
जीसीसी के पुराने या नए संस्करण के साथ काम करें।

लिंक-टाइम ऑप्टिमाइज़ेशन डीबगिंग जानकारी के निर्माण के साथ अच्छी तरह से काम नहीं करता है।
का मेल -फ्लोटो साथ में -g वर्तमान में प्रयोगात्मक है और अप्रत्याशित उत्पादन करने की उम्मीद है
परिणाम है.

यदि आप वैकल्पिक निर्दिष्ट करते हैं n, लिंक समय पर किया गया अनुकूलन और कोड जनरेशन
समानांतर में निष्पादित किया जाता है n एक स्थापित . का उपयोग करके समानांतर नौकरियां बनाना कार्यक्रम.
पर्यावरण चर MAKE इस्तेमाल किए गए प्रोग्राम को ओवरराइड करने के लिए इस्तेमाल किया जा सकता है। डिफ़ॉल्ट
के लिए मूल्य n एक्सएनएनएक्स है।

आप भी निर्दिष्ट कर सकते हैं -flto=जॉबसर्वर निर्धारित करने के लिए जीएनयू मेक के जॉब सर्वर मोड का उपयोग करने के लिए
समानांतर नौकरियों की संख्या। यह तब उपयोगी होता है जब मेकफ़ाइल कॉलिंग जीसीसी पहले से ही हो
समानांतर में निष्पादित। आपको एक प्रीपेड करना होगा + माता-पिता में आदेश नुस्खा के लिए
इसके लिए मेकफ़ाइल काम करने के लिए। यह विकल्प केवल तभी काम करता है जब MAKE जीएनयू बना है।

-flto-विभाजन=ALG
लिंक-टाइम ऑप्टिमाइज़र द्वारा उपयोग किए जाने वाले विभाजन एल्गोरिथम को निर्दिष्ट करें। मान है
भी 1to1 मूल स्रोत फ़ाइलों को प्रतिबिम्बित करने वाला विभाजन निर्दिष्ट करने के लिए या संतुलित
समान आकार के विखंडू में विभाजन निर्दिष्ट करने के लिए (जब भी संभव हो) या मैक्स बनाने के लिए
जहां संभव हो हर प्रतीक के लिए नया विभाजन। निर्दिष्ट करना कोई नहीं एल्गोरिथम के रूप में
विभाजन और स्ट्रीमिंग को पूरी तरह से अक्षम कर देता है। डिफ़ॉल्ट मान है संतुलित। जबकि
1to1 विभिन्न कोड ऑर्डरिंग मुद्दों के लिए वैकल्पिक हल के रूप में उपयोग किया जा सकता है, मैक्स
विभाजन केवल आंतरिक परीक्षण के लिए है। महत्व एक वह निर्दिष्ट करता है
मूल्य के दौरान ठीक एक विभाजन का उपयोग किया जाना चाहिए कोई नहीं विभाजन को बायपास करता है और
WPA चरण से सीधे लिंक-टाइम ऑप्टिमाइज़ेशन चरण निष्पादित करता है।

-फ्लो-ओडीआर-टाइप-विलय
C++ प्रकार के मैंगल्ड प्रकार के नामों की स्ट्रीमिंग सक्षम करें और उनके एकीकरण पर
लिंकटाइम। यह एलटीओ ऑब्जेक्ट फ़ाइलों का आकार बढ़ाता है, लेकिन एक के बारे में निदान सक्षम करता है
परिभाषा नियम उल्लंघन.

-flto-संपीड़न-स्तर=n
यह विकल्प लिखित में मध्यवर्ती भाषा के लिए प्रयुक्त संपीड़न के स्तर को निर्दिष्ट करता है
एलटीओ ऑब्जेक्ट फाइलों के लिए, और एलटीओ मोड के संयोजन के साथ ही सार्थक है (-फ्लोटो).
मान्य मान 0 (कोई संपीड़न नहीं) से 9 (अधिकतम संपीड़न) हैं। इसके बाहर के मूल्य
रेंज को 0 या 9 पर क्लैंप किया जाता है। यदि विकल्प नहीं दिया गया है, तो एक डिफ़ॉल्ट संतुलित
संपीड़न सेटिंग का उपयोग किया जाता है।

-फ्लो-रिपोर्ट
लिंक-टाइम ऑप्टिमाइज़र के कामकाज पर आंतरिक विवरण के साथ एक रिपोर्ट प्रिंट करता है। NS
इस रिपोर्ट की सामग्री संस्करण से संस्करण में भिन्न होती है। यह जीसीसी के लिए उपयोगी होने के लिए है
एलटीओ मोड में ऑब्जेक्ट फ़ाइलों को संसाधित करते समय डेवलपर्स (के माध्यम से -फ्लोटो).

डिफ़ॉल्ट रूप से अक्षम

-flto-रिपोर्ट-wpa
पसंद -फ्लो-रिपोर्ट, लेकिन केवल लिंक समय अनुकूलन के WPA चरण के लिए प्रिंट करें।

-फ्यूज-लिंकर-प्लगइन
लिंक-टाइम ऑप्टिमाइजेशन के दौरान लिंकर प्लगइन के उपयोग को सक्षम करता है। यह विकल्प निर्भर करता है
लिंकर में प्लगइन समर्थन पर, जो सोने में या जीएनयू एलडी 2.21 या . में उपलब्ध है
नया।

यह विकल्प लाइब्रेरी से बाहर GIMPLE बाइटकोड के साथ ऑब्जेक्ट फ़ाइलों को निकालने में सक्षम बनाता है
अभिलेखागार। यह लिंक पर अधिक कोड को उजागर करके अनुकूलन की गुणवत्ता में सुधार करता है-
समय अनुकूलक। यह जानकारी निर्दिष्ट करती है कि कौन से प्रतीकों को बाहरी रूप से एक्सेस किया जा सकता है
(गैर-एलटीओ ऑब्जेक्ट द्वारा या डायनेमिक लिंकिंग के दौरान)। परिणामी कोड गुणवत्ता में सुधार
बायनेरिज़ (और साझा पुस्तकालय जो छिपी दृश्यता का उपयोग करते हैं) समान हैं
पूरे कार्यक्रम. देखना -फ्लोटो इस ध्वज के प्रभाव के विवरण के लिए और कैसे करें
इसका इस्तेमाल करें।

यह विकल्प डिफ़ॉल्ट रूप से सक्षम होता है जब जीसीसी में एलटीओ समर्थन सक्षम होता है और जीसीसी था
एक लिंकर सहायक प्लगइन्स (जीएनयू एलडी 2.21 या नया या सोना) के साथ उपयोग के लिए कॉन्फ़िगर किया गया।

-ffat-lto-वस्तुओं
फैट एलटीओ ऑब्जेक्ट ऑब्जेक्ट फ़ाइलें होती हैं जिनमें मध्यवर्ती भाषा और दोनों होते हैं
वस्तु कोड। यह उन्हें एलटीओ लिंकिंग और सामान्य लिंकिंग दोनों के लिए प्रयोग करने योग्य बनाता है। इस
विकल्प तभी प्रभावी होता है जब संकलन किया जाता है -फ्लोटो और लिंक समय पर अनदेखा कर दिया जाता है।

-फनो-फैट-एलटीओ-ऑब्जेक्ट्स सादे एलटीओ पर संकलन समय में सुधार करता है, लेकिन इसकी आवश्यकता होती है
एलटीओ से अवगत होने के लिए संपूर्ण टूलचेन। इसके लिए लिंकर प्लगइन समर्थन के साथ एक लिंकर की आवश्यकता होती है
बुनियादी कार्यक्षमता के लिए। इसके अतिरिक्त, nm, ar और रैनलिब लिंकर का समर्थन करने की आवश्यकता है
एक पूर्ण विशेषताओं वाले निर्माण वातावरण की अनुमति देने के लिए प्लगइन्स (स्थिर निर्माण में सक्षम)
पुस्तकालय आदि)। जीसीसी प्रदान करता है जीसीसी-एआर, जीसीसी-एनएम, जीसीसी-रानलिब रैपर पास करने के लिए
इन उपकरणों के लिए सही विकल्प। गैर-वसा वाले एलटीओ मेकफ़ाइल्स को उपयोग करने के लिए संशोधित करने की आवश्यकता है
उन्हें.

डिफ़ॉल्ट है -फनो-फैट-एलटीओ-ऑब्जेक्ट्स लिंकर प्लगइन समर्थन के साथ लक्ष्य पर।

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

यह पास केवल कुछ ऐसे लक्ष्यों पर लागू होता है जो स्पष्ट रूप से प्रतिनिधित्व नहीं कर सकते हैं
रजिस्टर आवंटन पूरा होने से पहले तुलना ऑपरेशन।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-एफसीप्रॉप-रजिस्टर
पंजीकरण आवंटन और पंजीकरण के बाद आवंटन निर्देश विभाजन के बाद, प्रदर्शन करें
शेड्यूलिंग निर्भरता को कम करने की कोशिश करने के लिए एक कॉपी-प्रचार पास और कभी-कभी
कॉपी खत्म करो।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

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

-फ्रोफाइल-डीआईआर=पथ
प्रोफ़ाइल डेटा फ़ाइलों को खोजने के लिए निर्देशिका सेट करें पथ. इस विकल्प
द्वारा उत्पन्न केवल प्रोफ़ाइल डेटा को प्रभावित करता है -फ्रोफाइल-उत्पन्न, -फटेस्ट-कवरेज,
-फ्रोफाइल-आर्क्स और द्वारा उपयोग किया जाता है -फ्रोफाइल-उपयोग और -fशाखा-संभावनाएं और इससे संबंधित
विकल्प। निरपेक्ष और सापेक्ष दोनों रास्तों का उपयोग किया जा सकता है। डिफ़ॉल्ट रूप से, जीसीसी का उपयोग करता है
वर्तमान निर्देशिका के रूप में पथ, इस प्रकार प्रोफ़ाइल डेटा फ़ाइल उसी निर्देशिका में दिखाई देती है जैसे
वस्तु फ़ाइल।

-फ्रोफाइल-उत्पन्न
-फ्रोफाइल-जेनरेट=पथ
प्रोफ़ाइल उपयोगी बनाने के लिए आमतौर पर इंस्ट्रूमेंटिंग एप्लिकेशन के लिए उपयोग किए जाने वाले विकल्पों को सक्षम करें
प्रोफ़ाइल प्रतिक्रिया आधारित अनुकूलन के साथ बाद में पुनर्संकलन के लिए। तुम्हें अवश्य उपयोग करना चाहिए
-फ्रोफाइल-उत्पन्न संकलन करते समय और आपके प्रोग्राम को लिंक करते समय दोनों।

निम्नलिखित विकल्प सक्षम हैं: -फ्रोफाइल-आर्क्स, -फ्रोफाइल-मान, -एफवीपीटी.

If पथ निर्दिष्ट है, जीसीसी देखता है पथ प्रोफ़ाइल फ़ीडबैक डेटा फ़ाइलों को खोजने के लिए।
देख -फ्रोफाइल-डीआईआर.

-फ्रोफाइल-उपयोग
-फ्रोफाइल-उपयोग =पथ
प्रोफ़ाइल फ़ीडबैक-निर्देशित अनुकूलन और निम्नलिखित अनुकूलन सक्षम करें जो
आम तौर पर केवल प्रोफ़ाइल फ़ीडबैक के साथ ही लाभदायक होते हैं: -fशाखा-संभावनाएं,
-एफवीपीटी, -फ़नरोल-लूप्स, -फपील-लूप्स, -फ्ट्रेसर, -फ़्री-वेक्टराइज़, तथा फ़्री-लूप-
वितरण-पैटर्न.

डिफ़ॉल्ट रूप से, GCC एक त्रुटि संदेश का उत्सर्जन करता है यदि प्रतिक्रिया प्रोफ़ाइल मेल नहीं खाती
सोर्स कोड। इस त्रुटि को उपयोग करके चेतावनी में बदला जा सकता है -कवरेज-बेमेल.
ध्यान दें कि इसके परिणामस्वरूप खराब अनुकूलित कोड हो सकता है।

If पथ निर्दिष्ट है, जीसीसी देखता है पथ प्रोफ़ाइल फ़ीडबैक डेटा फ़ाइलों को खोजने के लिए।
देख -फ्रोफाइल-डीआईआर.

-फॉटो-प्रोफाइल
-फॉटो-प्रोफाइल =पथ
नमूना-आधारित प्रतिक्रिया-निर्देशित अनुकूलन और निम्नलिखित अनुकूलन सक्षम करें
जो आम तौर पर केवल प्रोफ़ाइल फ़ीडबैक के साथ ही लाभदायक होते हैं:
-fशाखा-संभावनाएं, -एफवीपीटी, -फ़नरोल-लूप्स, -फपील-लूप्स, -फ्ट्रेसर,
-फ़्री-वेक्टराइज़, -फिनलाइन-फ़ंक्शंस, -फिपा-सीपी, -फिपा-सीपी-क्लोन,
-फप्रेडिक्टिव-कॉमनिंग, -फनस्विच-लूप, -fgcse-आफ्टर-रीलोड, तथा
-फट्री-लूप-वितरण-पैटर्न.

पथ AutoFDO प्रोफ़ाइल जानकारी वाली फ़ाइल का नाम है। अगर छोड़ा गया है, तो
करने के लिए चूक fbdata.afdo वर्तमान निर्देशिका में।

AutoFDO प्रोफ़ाइल डेटा फ़ाइल बनाने के लिए आपके प्रोग्राम को निम्न के साथ चलाने की आवश्यकता होती है पर्फ़
एक समर्थित जीएनयू/लिनक्स लक्ष्य प्रणाली पर उपयोगिता। अधिक जानकारी के लिए देखें
<https://perf.wiki.kernel.org/>.

उदाहरण के लिए

पूर्ण रिकॉर्ड -e br_inst_retired:near_taken -b -o perf.data \
-- आपका_प्रोग्राम

तब का उपयोग करें create_gcov कच्चे प्रोफ़ाइल डेटा को एक प्रारूप में बदलने के लिए उपकरण जो हो सकता है
जीसीसी द्वारा उपयोग किया जाता है। इसके लिए आपको अपने प्रोग्राम के लिए अनस्ट्रिप्ड बाइनरी की आपूर्ति भी करनी होगी
उपकरण। देखोhttps://github.com/google/autofdo>.

उदाहरण के लिए

create_gcov --binary=your_program.unstripped --profile=perf.data \
--gcov=profile.afdo

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

-फ्लोट-स्टोर
रजिस्टरों में फ्लोटिंग-पॉइंट वेरिएबल्स को स्टोर न करें, और अन्य विकल्पों को रोकें जो
यह बदल सकता है कि फ्लोटिंग-पॉइंट मान रजिस्टर या मेमोरी से लिया गया है या नहीं।

यह विकल्प मशीनों पर अवांछित अतिरिक्त सटीकता को रोकता है जैसे कि 68000 जहां
फ्लोटिंग रजिस्टर (68881 में से) एक "डबल" की तुलना में अधिक सटीकता रखते हैं
रखने के लिए। इसी तरह x86 आर्किटेक्चर के लिए। अधिकांश कार्यक्रमों के लिए, अतिरिक्त सटीकता
केवल अच्छा ही करता है, लेकिन कुछ प्रोग्राम आईईईई फ्लोटिंग की सटीक परिभाषा पर भरोसा करते हैं
बिंदु। उपयोग -फ्लोट-स्टोर ऐसे कार्यक्रमों के लिए, सभी को स्टोर करने के लिए संशोधित करने के बाद
चर में प्रासंगिक मध्यवर्ती संगणना।

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

-फेक्सस-सटीक = मानक सी के अलावा अन्य भाषाओं के लिए लागू नहीं किया गया है, और नहीं
प्रभाव अगर -फनसेफ-गणित-अनुकूलन or -फफास्ट-गणित निर्दिष्ट किया जाता है। X86 पर, यह
भी कोई प्रभाव नहीं पड़ता है अगर -एमएफपीएमथ = एसएसई or -एमएफपीएमथ=एसएसई+387 निर्दिष्ट किया जाता है; पूर्व में
मामले में, IEEE शब्दार्थ बिना अधिक सटीकता के लागू होते हैं, और बाद में, गोलाई है
अप्रत्याशित।

-फफास्ट-गणित
विकल्प सेट करता है -फनो-गणित-त्रुटि, -फनसेफ-गणित-अनुकूलन, -अनंत-गणित-केवल,
-फनो-राउंडिंग-गणित, -फनो-सिग्नलिंग-नैन्स और -एफसीएक्स-सीमित-रेंज.

यह विकल्प प्रीप्रोसेसर मैक्रो "__FAST_MATH__" को परिभाषित करने का कारण बनता है।

यह विकल्प किसी के द्वारा चालू नहीं किया गया है -O इसके अलावा विकल्प -ओफ़ास्ट क्योंकि इसका परिणाम हो सकता है
आईईईई या आईएसओ के सटीक कार्यान्वयन पर निर्भर कार्यक्रमों के लिए गलत आउटपुट
गणित कार्यों के लिए नियम/विनिर्देश। हालाँकि, इसके लिए तेज़ कोड प्राप्त हो सकता है
ऐसे प्रोग्राम जिन्हें इन विशिष्टताओं की गारंटी की आवश्यकता नहीं होती है।

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

यह विकल्प किसी के द्वारा चालू नहीं किया गया है -O विकल्प क्योंकि इसका परिणाम गलत आउटपुट हो सकता है
आईईईई या आईएसओ के सटीक कार्यान्वयन पर निर्भर कार्यक्रमों के लिए
गणित कार्यों के लिए नियम/विनिर्देश। हालाँकि, इसके लिए तेज़ कोड प्राप्त हो सकता है
ऐसे प्रोग्राम जिन्हें इन विशिष्टताओं की गारंटी की आवश्यकता नहीं होती है।

डिफ़ॉल्ट है -fmath-errno.

डार्विन सिस्टम पर, गणित पुस्तकालय कभी भी "इरनो" सेट नहीं करता है। इसलिए कोई कारण नहीं है
संकलक के लिए इस संभावना पर विचार करने के लिए कि यह हो सकता है, और -फनो-गणित-त्रुटि विश्व का सबसे लोकप्रिय एंव
चूक।

-फनसेफ-गणित-अनुकूलन
फ़्लोटिंग-पॉइंट अंकगणित के लिए अनुकूलन की अनुमति दें कि (ए) तर्क मान लें और
परिणाम मान्य हैं और (बी) आईईईई या एएनएसआई मानकों का उल्लंघन कर सकते हैं। जब लिंक-टाइम पर उपयोग किया जाता है,
इसमें पुस्तकालय या स्टार्टअप फ़ाइलें शामिल हो सकती हैं जो डिफ़ॉल्ट FPU नियंत्रण शब्द को बदल देती हैं या
अन्य समान अनुकूलन।

यह विकल्प किसी के द्वारा चालू नहीं किया गया है -O विकल्प क्योंकि इसका परिणाम गलत आउटपुट हो सकता है
आईईईई या आईएसओ के सटीक कार्यान्वयन पर निर्भर कार्यक्रमों के लिए
गणित कार्यों के लिए नियम/विनिर्देश। हालाँकि, इसके लिए तेज़ कोड प्राप्त हो सकता है
ऐसे प्रोग्राम जिन्हें इन विशिष्टताओं की गारंटी की आवश्यकता नहीं होती है। सक्षम बनाता है
-फनो-हस्ताक्षरित-शून्य, -फनो-ट्रैपिंग-गणित, -फैसोसिएटिव-गणित और -फ्रेसिप्रोकल-गणित.

डिफ़ॉल्ट है -फनो-असुरक्षित-गणित-अनुकूलन.

-फैसोसिएटिव-गणित
फ्लोटिंग-पॉइंट ऑपरेशंस की श्रृंखला में ऑपरेंड को फिर से जोड़ने की अनुमति दें। इस
संभावित रूप से गणना परिणाम बदलकर आईएसओ सी और सी ++ भाषा मानक का उल्लंघन करता है।
नोट: पुन: आदेश शून्य के संकेत को बदल सकता है और साथ ही NaN को अनदेखा कर सकता है और बाधित कर सकता है या
अंडरफ्लो या ओवरफ्लो बनाएं (और इस प्रकार उस कोड पर उपयोग नहीं किया जा सकता है जो राउंडिंग पर निर्भर करता है
व्यवहार जैसे "(x + 2**52) - 2**52"। फ़्लोटिंग-पॉइंट तुलनाओं को भी पुन: व्यवस्थित कर सकता है और
इस प्रकार उपयोग नहीं किया जा सकता है जब आदेशित तुलना की आवश्यकता होती है। इस विकल्प की आवश्यकता है कि
के छात्रों -फनो-हस्ताक्षरित-शून्य और -फनो-ट्रैपिंग-गणित प्रभाव में हो। इसके अलावा, यह नहीं बनाता है
बहुत समझ के साथ -आधार-गणित. फोरट्रान के लिए विकल्प स्वचालित रूप से सक्षम हो जाता है जब
के छात्रों -फनो-हस्ताक्षरित-शून्य और -फनो-ट्रैपिंग-गणित प्रभाव में हैं।

डिफ़ॉल्ट है -फनो-एसोसिएटिव-गणित.

-फ्रेसिप्रोकल-गणित
किसी मान के व्युत्क्रम को मान से विभाजित करने के बजाय उपयोग करने की अनुमति दें यदि यह
अनुकूलन को सक्षम बनाता है। उदाहरण के लिए "x / y" को "x * (1/y)" से बदला जा सकता है, जो है
उपयोगी अगर "(1/y)" सामान्य उप-अभिव्यक्ति उन्मूलन के अधीन है। ध्यान दें कि यह
सटीकता खो देता है और मूल्य पर चल रहे फ्लॉप की संख्या को बढ़ाता है।

डिफ़ॉल्ट है -फनो-पारस्परिक-गणित.

-अनंत-गणित-केवल
फ़्लोटिंग-पॉइंट अंकगणित के लिए ऑप्टिमाइज़ेशन की अनुमति दें जो मानते हैं कि तर्क और
परिणाम NaN या + -Infs नहीं हैं।

यह विकल्प किसी के द्वारा चालू नहीं किया गया है -O विकल्प क्योंकि इसका परिणाम गलत आउटपुट हो सकता है
आईईईई या आईएसओ के सटीक कार्यान्वयन पर निर्भर कार्यक्रमों के लिए
गणित कार्यों के लिए नियम/विनिर्देश। हालाँकि, इसके लिए तेज़ कोड प्राप्त हो सकता है
ऐसे प्रोग्राम जिन्हें इन विशिष्टताओं की गारंटी की आवश्यकता नहीं होती है।

डिफ़ॉल्ट है -फनो-परिमित-गणित-केवल.

-फनो-हस्ताक्षरित-शून्य
फ़्लोटिंग-पॉइंट अंकगणित के लिए ऑप्टिमाइज़ेशन की अनुमति दें जो शून्य के हस्ताक्षर को अनदेखा करते हैं।
आईईईई अंकगणित विशिष्ट +0.0 और -0.0 मानों के व्यवहार को निर्दिष्ट करता है, जो तब
x+0.0 या 0.0*x (यहां तक ​​कि के साथ भी) जैसे भावों के सरलीकरण को प्रतिबंधित करता है
-अनंत-गणित-केवल) इस विकल्प का अर्थ है कि शून्य परिणाम का चिह्न नहीं है
महत्वपूर्ण।

डिफ़ॉल्ट है -fsigned-शून्य.

-फनो-ट्रैपिंग-गणित
यह मानते हुए कोड संकलित करें कि फ़्लोटिंग-पॉइंट ऑपरेशंस उपयोगकर्ता-दृश्यमान उत्पन्न नहीं कर सकता है
जाल इन ट्रैप में शून्य से विभाजन, अतिप्रवाह, अंडरफ्लो, सटीक परिणाम और . शामिल हैं
अवैध ऑपरेशन। इस विकल्प की आवश्यकता है कि -फनो-सिग्नलिंग-नैन्स प्रभाव में हो।
यदि कोई "नॉन-स्टॉप" IEEE अंकगणित पर निर्भर करता है, तो इस विकल्प को सेट करने से तेज़ कोड की अनुमति मिल सकती है,
उदाहरण के लिए.

यह विकल्प कभी भी किसी के द्वारा चालू नहीं किया जाना चाहिए -O विकल्प क्योंकि इसका परिणाम हो सकता है
आईईईई या आईएसओ के सटीक कार्यान्वयन पर निर्भर कार्यक्रमों के लिए गलत आउटपुट
गणित कार्यों के लिए नियम/विनिर्देश।

डिफ़ॉल्ट है -फ्रैपिंग-गणित.

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

डिफ़ॉल्ट है -फनो-राउंडिंग-गणित.

यह विकल्प प्रयोगात्मक है और वर्तमान में सभी GCC को अक्षम करने की गारंटी नहीं देता है
ऑप्टिमाइज़ेशन जो राउंडिंग मोड से प्रभावित होते हैं। जीसीसी के भविष्य के संस्करण प्रदान कर सकते हैं
C99 के "FENV_ACCESS" प्रज्ञा का उपयोग करके इस सेटिंग का बेहतर नियंत्रण। यह आदेश-पंक्ति
विकल्प का उपयोग "FENV_ACCESS" के लिए डिफ़ॉल्ट स्थिति निर्दिष्ट करने के लिए किया जाएगा।

-fsignaling-nans
यह मानते हुए कोड संकलित करें कि IEEE सिग्नलिंग NaNs के दौरान उपयोगकर्ता-दृश्यमान ट्रैप उत्पन्न कर सकते हैं
फ्लोटिंग-पॉइंट ऑपरेशन। इस विकल्प को सेट करने से वे अनुकूलन अक्षम हो जाते हैं जो बदल सकते हैं
NaN सिग्नलिंग के साथ दिखाई देने वाले अपवादों की संख्या। इस विकल्प का तात्पर्य है
-फ्रैपिंग-गणित.

यह विकल्प प्रीप्रोसेसर मैक्रो "__SUPPORT_SNAN__" को परिभाषित करने का कारण बनता है।

डिफ़ॉल्ट है -फनो-सिग्नलिंग-नैन्स.

यह विकल्प प्रयोगात्मक है और वर्तमान में सभी GCC को अक्षम करने की गारंटी नहीं देता है
अनुकूलन जो सिग्नलिंग NaN व्यवहार को प्रभावित करते हैं।

-फसिंगल-सटीक-स्थिर
फ़्लोटिंग-पॉइंट स्थिरांक को अंतर्निहित रूप से परिवर्तित करने के बजाय एकल परिशुद्धता के रूप में देखें
उन्हें डबल-सटीक स्थिरांक के लिए।

-एफसीएक्स-सीमित-रेंज
सक्षम होने पर, यह विकल्प बताता है कि एक श्रेणी में कमी चरण की आवश्यकता नहीं है जब
जटिल विभाजन का प्रदर्शन। इसके अलावा, कोई जाँच नहीं है कि क्या a . का परिणाम है
को बचाने के प्रयास के साथ जटिल गुणा या भाग "NaN + I*NaN" है
उस मामले में स्थिति। डिफ़ॉल्ट है -फनो-सीएक्स-सीमित-रेंज, लेकिन द्वारा सक्षम किया गया है
-फफास्ट-गणित.

यह विकल्प ISO C99 "CX_LIMITED_RANGE" प्रगति की डिफ़ॉल्ट सेटिंग को नियंत्रित करता है।
फिर भी, विकल्प सभी भाषाओं पर लागू होता है।

-एफसीएक्स-फोरट्रान-नियम
जटिल गुणा और भाग फोरट्रान नियमों का पालन करते हैं। रेंज में कमी के रूप में किया जाता है
जटिल विभाजन का हिस्सा है, लेकिन कोई जाँच नहीं है कि क्या एक जटिल का परिणाम है
गुणा या भाग "NaN + I*NaN" है, स्थिति को बचाने के प्रयास के साथ
उस स्तिथि में।

डिफ़ॉल्ट है -फनो-सीएक्स-फोरट्रान-नियम.

निम्नलिखित विकल्प उन अनुकूलन को नियंत्रित करते हैं जो प्रदर्शन में सुधार कर सकते हैं, लेकिन नहीं हैं
किसी के द्वारा सक्षम -O विकल्प। इस खंड में प्रयोगात्मक विकल्प शामिल हैं जो उत्पादन कर सकते हैं
टूटा हुआ कोड।

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

- -fशाखा-संभावनाएं, जीसीसी एक डालता है REG_BR_PROB प्रत्येक पर नोट JUMP_INSN और
CALL_INSN. इनका उपयोग अनुकूलन में सुधार के लिए किया जा सकता है। वर्तमान में, वे केवल उपयोग किए जाते हैं
एक ही स्थान पर: in reorg.c, यह अनुमान लगाने के बजाय कि किसी शाखा के किस पथ पर जाने की सबसे अधिक संभावना है
लो, द REG_BR_PROB मानों का उपयोग यह निर्धारित करने के लिए किया जाता है कि कौन सा पथ अधिक लिया गया है
अक्सर।

-फ्रोफाइल-मान
अगर के साथ संयुक्त -फ्रोफाइल-आर्क्स, यह कोड जोड़ता है ताकि मूल्यों के बारे में कुछ डेटा
कार्यक्रम में भावों को एकत्रित किया जाता है।

- -fशाखा-संभावनाएं, यह प्रोफाइलिंग मानों से एकत्रित डेटा को वापस पढ़ता है
अनुकूलन में उपयोग के लिए अभिव्यक्तियाँ।

के साथ सक्षम -फ्रोफाइल-उत्पन्न और -फ्रोफाइल-उपयोग.

-फ्रोफाइल-रीऑर्डर-फ़ंक्शंस
प्रोफाइल इंस्ट्रूमेंटेशन के आधार पर फंक्शन रीऑर्डरिंग निष्पादन के पहली बार एकत्र करता है
एक फ़ंक्शन का और इन कार्यों को आरोही क्रम में क्रमित करता है।

के साथ सक्षम -फ्रोफाइल-उपयोग.

-एफवीपीटी
अगर के साथ संयुक्त -फ्रोफाइल-आर्क्स, यह विकल्प संकलक को इसमें कोड जोड़ने का निर्देश देता है
भावों के मूल्यों के बारे में जानकारी एकत्र करें।

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

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

के साथ डिफ़ॉल्ट रूप से सक्षम -फ़नरोल-लूप्स और -फपील-लूप्स.

-fअनुसूची-संलयन
निर्देशों को शेड्यूल करने के लिए निर्देश स्ट्रीम पर एक लक्ष्य निर्भर पास करता है
एक ही प्रकार के एक साथ क्योंकि लक्ष्य मशीन उन्हें अधिक कुशलता से निष्पादित कर सकती है यदि वे
निर्देश प्रवाह में एक दूसरे से सटे हुए हैं।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-फ्ट्रेसर
सुपरब्लॉक आकार को बड़ा करने के लिए पूंछ दोहराव करें। यह परिवर्तन सरल करता है
फ़ंक्शन का नियंत्रण प्रवाह अन्य अनुकूलन को बेहतर कार्य करने की अनुमति देता है।

के साथ सक्षम -फ्रोफाइल-उपयोग.

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

के साथ सक्षम -फ्रोफाइल-उपयोग.

-फ़नरोल-ऑल-लूप्स
सभी लूपों को अनियंत्रित करें, भले ही लूप के होने पर उनकी पुनरावृत्तियों की संख्या अनिश्चित हो
घुसा। यह आमतौर पर कार्यक्रमों को अधिक धीरे-धीरे चलाता है। -फ़नरोल-ऑल-लूप्स का तात्पर्य है
के समान विकल्प -फ़नरोल-लूप्स.

-फपील-लूप्स
पील लूप जिसके लिए पर्याप्त जानकारी है कि वे ज्यादा रोल नहीं करते हैं (से
प्रोफ़ाइल प्रतिक्रिया)। यह पूरे लूप पीलिंग को भी चालू कर देता है (यानी को पूरी तरह से हटा देना)
छोटे निरंतर पुनरावृत्तियों के साथ लूप)।

के साथ सक्षम -फ्रोफाइल-उपयोग.

-fmove-लूप-इनवेरिएंट
RTL लूप ऑप्टिमाइज़र में लूप इनवेरिएंट मोशन पास को सक्षम करता है। स्तर पर सक्षम
-ओ३

-फनस्विच-लूप
लूप की अपरिवर्तनीय स्थितियों वाली शाखाओं को लूप से बाहर ले जाएं, के डुप्लीकेट के साथ
दोनों शाखाओं पर लूप (हालत के परिणाम के अनुसार संशोधित)।

-फंक्शन-सेक्शन
-fdata-अनुभाग
प्रत्येक फ़ंक्शन या डेटा आइटम को आउटपुट फ़ाइल में अपने स्वयं के अनुभाग में रखें यदि लक्ष्य
मनमाने वर्गों का समर्थन करता है। फ़ंक्शन का नाम या डेटा आइटम का नाम
आउटपुट फ़ाइल में अनुभाग का नाम निर्धारित करता है।

सिस्टम पर इन विकल्पों का उपयोग करें जहां लिंकर सुधार के लिए अनुकूलन कर सकता है
निर्देश स्थान में संदर्भ का स्थान। ELF ऑब्जेक्ट का उपयोग करने वाले अधिकांश सिस्टम
सोलारिस 2 चलाने वाले प्रारूप और SPARC प्रोसेसर में ऐसे अनुकूलन के साथ लिंकर हैं।
भविष्य में AIX में ये अनुकूलन हो सकते हैं।

इन विकल्पों का उपयोग केवल तभी करें जब ऐसा करने से महत्वपूर्ण लाभ हों। जब आप
इन विकल्पों को निर्दिष्ट करें, असेंबलर और लिंकर बड़ी वस्तु और निष्पादन योग्य बनाते हैं
फ़ाइलें और धीमी भी हैं। आप उपयोग नहीं कर सकते ग्प्रोफ सभी सिस्टम पर यदि आप इसे निर्दिष्ट करते हैं
विकल्प, और यदि आप इस विकल्प और . दोनों को निर्दिष्ट करते हैं, तो आपको डिबगिंग में समस्या हो सकती है
-g.

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

-fbranch-target-load-optimize2
प्रस्तावना/उपसंहार सूत्रण के बाद शाखा लक्ष्य रजिस्टर लोड अनुकूलन निष्पादित करें।

-एफबीटीआर-बीबी-अनन्य
शाखा लक्ष्य रजिस्टर लोड अनुकूलन करते समय, शाखा लक्ष्य का पुन: उपयोग न करें
किसी भी बुनियादी ब्लॉक के भीतर रजिस्टर।

-स्टैक-रक्षक
बफर ओवरफ्लो की जांच के लिए अतिरिक्त कोड उत्सर्जित करें, जैसे स्टैक स्मैशिंग अटैक। इस
कमजोर वस्तुओं के साथ कार्यों के लिए एक गार्ड चर जोड़कर किया जाता है। इस
इसमें ऐसे फ़ंक्शन शामिल हैं जो "आलोका" कहते हैं, और 8 बाइट्स से बड़े बफ़र्स के साथ कार्य करते हैं।
जब कोई फ़ंक्शन दर्ज किया जाता है तो गार्ड को प्रारंभ किया जाता है और तब चेक किया जाता है जब
समारोह निकलता है। यदि कोई गार्ड जाँच विफल हो जाती है, तो एक त्रुटि संदेश मुद्रित होता है और प्रोग्राम
बाहर निकलता है।

-फस्टैक-रक्षक-सभी
पसंद -स्टैक-रक्षक सिवाय इसके कि सभी कार्य सुरक्षित हैं।

-फस्टैक-रक्षक-मजबूत
पसंद -स्टैक-रक्षक लेकिन इसमें संरक्षित किए जाने वाले अतिरिक्त कार्य शामिल हैं --- वे
जिनकी स्थानीय सरणी परिभाषाएँ हैं, या स्थानीय फ़्रेम पतों के संदर्भ हैं।

-फस्टैक-रक्षक-स्पष्ट
पसंद -स्टैक-रक्षक लेकिन केवल उन कार्यों की रक्षा करता है जिनमें
"स्टैक_प्रोटेक्ट" विशेषता

-fstdarg-ऑप्ट
उन के उपयोग के संबंध में विविध तर्क कार्यों की प्रस्तावना का अनुकूलन करें
तर्क।

नोट: उबंटू 14.10 और बाद के संस्करणों में, -फस्टैक-रक्षक-मजबूत द्वारा सक्षम किया गया है
सी, सी ++, ओबीजेसी, ओबीजेसी ++ के लिए डिफ़ॉल्ट, यदि इनमें से कोई नहीं -फनो-स्टैक-रक्षक, -नोस्टडलिब, और न ही
-फ्रीस्टैंडिंग पाए जाते हैं।

-फसेक्शन-एंकर
साझा "एंकर" का उपयोग करके प्रतीकात्मक पते की गणना की संख्या को कम करने का प्रयास करें
आस-पास की वस्तुओं को संबोधित करने के लिए प्रतीक। यह परिवर्तन संख्या को कम करने में मदद कर सकता है
कुछ लक्ष्यों पर GOT प्रविष्टियाँ और GOT पहुँच।

उदाहरण के लिए, निम्नलिखित फ़ंक्शन "foo" का कार्यान्वयन:

स्थिर इंट ए, बी, सी;
इंट फू (शून्य) {रिटर्न ए + बी + सी; }

आमतौर पर सभी तीन चर के पते की गणना करता है, लेकिन यदि आप इसे संकलित करते हैं
-फसेक्शन-एंकर, यह इसके बजाय एक सामान्य एंकर पॉइंट से वेरिएबल्स को एक्सेस करता है। NS
प्रभाव निम्नलिखित छद्म कोड के समान है (जो मान्य सी नहीं है):

इंट फू (शून्य)
{
रजिस्टर इंट *xr = &x;
वापसी xr[&a - &x] + xr[&b - &x] + xr[&c - &x];
}

सभी लक्ष्य इस विकल्प का समर्थन नहीं करते हैं।

--परम नाम=मूल्य
कुछ स्थानों पर, जीसीसी अनुकूलन की मात्रा को नियंत्रित करने के लिए विभिन्न स्थिरांक का उपयोग करता है जो
पूरा हो गया है। उदाहरण के लिए, जीसीसी उन कार्यों को इनलाइन नहीं करता है जिनमें एक निश्चित से अधिक होते हैं
निर्देशों की संख्या। आप इनमें से कुछ स्थिरांक को कमांड लाइन पर नियंत्रित कर सकते हैं
का उपयोग --परम विकल्प.

विशिष्ट मापदंडों के नाम, और मूल्यों के अर्थ, से जुड़े हुए हैं
कंपाइलर के इंटर्नल, और भविष्य में बिना किसी सूचना के परिवर्तन के अधीन हैं
विज्ञप्ति।

प्रत्येक मामले में, मूल्य एक पूर्णांक है। के लिए स्वीकार्य विकल्प नाम यह है:

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

मैक्स-क्रॉसजंप-किनारों
क्रॉस-जंपिंग के लिए विचार करने के लिए आने वाले किनारों की अधिकतम संख्या। एल्गोरिथम
के द्वारा प्रयोग किया -क्रॉस जंपिंग प्रत्येक ब्लॉक में आने वाले किनारों की संख्या में O(N^2) है।
बढ़ते मूल्यों का अर्थ है अधिक आक्रामक अनुकूलन, संकलन समय बनाना
निष्पादन योग्य आकार में शायद छोटे सुधार के साथ वृद्धि।

मिन-क्रॉसजंप-इन्स
निर्देशों की न्यूनतम संख्या जो दो ब्लॉक के अंत में मेल खाना चाहिए
उन पर क्रॉस-जंपिंग करने से पहले। मामले में इस मान को नज़रअंदाज़ किया जाता है
जहां से क्रॉस-जंप किए जा रहे ब्लॉक के सभी निर्देशों का मिलान किया जाता है। NS
डिफ़ॉल्ट मान 5 है।

मैक्स-ग्रो-कॉपी-बीबी-इंसंस
इसके बजाय मूल ब्लॉक की प्रतिलिपि बनाते समय अधिकतम कोड आकार विस्तार कारक
कूदना विस्तार एक छलांग निर्देश के सापेक्ष है। डिफ़ॉल्ट मान है
8.

मैक्स-गोटो-डुप्लीकेशन-इंसंस
किसी ब्लॉक में डुप्लिकेट करने के लिए निर्देशों की अधिकतम संख्या जो a . पर जाती है
गणना गोटो। कई पासों में O(N^2) व्यवहार से बचने के लिए, GCC कारक
संकलन प्रक्रिया की शुरुआत में गोटो की गणना की जाती है, और उन्हें देर से
मुमकिन। अधिकतम से अधिक नहीं वाले मूल ब्लॉक के अंत में केवल गणना की गई कूद-
गोटो-डुप्लीकेशन-इन्स अप्रभावित हैं। डिफ़ॉल्ट मान 8 है।

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

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

मैक्स-जीसीएसई-मेमोरी
मेमोरी की अनुमानित अधिकतम मात्रा जिसे निष्पादित करने के लिए आवंटित किया जा सकता है
वैश्विक सामान्य उप-अभिव्यक्ति उन्मूलन अनुकूलन। अगर ज्यादा मेमोरी
निर्दिष्ट आवश्यक है, अनुकूलन नहीं किया गया है।

अधिकतम-जीसीएसई-सम्मिलन-अनुपात
यदि विलोपन के लिए व्यंजक सम्मिलन का अनुपात इस मान से बड़ा है
कोई व्यंजक, फिर RTL PRE व्यंजक को सम्मिलित करता है या हटाता है और इस प्रकार छोड़ देता है
निर्देश स्ट्रीम में आंशिक रूप से निरर्थक संगणनाएँ। डिफ़ॉल्ट मान है
20.

अधिकतम-लंबित-सूची-लंबाई
फ़्लश करने से पहले लंबित निर्भरता शेड्यूलिंग की अधिकतम संख्या की अनुमति देता है
वर्तमान स्थिति और शुरुआत। कुछ शाखाओं या कॉल के साथ बड़े कार्य कर सकते हैं
अत्यधिक बड़ी सूचियाँ बनाएँ जो अनावश्यक रूप से स्मृति और संसाधनों का उपभोग करती हैं।

मैक्स-मॉड्यूलो-बैकट्रैक-प्रयास
अनुसूचक द्वारा किए जाने वाले बैकट्रैक प्रयासों की अधिकतम संख्या जब modulo
एक लूप शेड्यूल करना। बड़े मान तेजी से संकलन समय बढ़ा सकते हैं।

मैक्स-इनलाइन-इन्स-सिंगल
कई पैरामीटर जीसीसी में प्रयुक्त ट्री इनलाइनर को नियंत्रित करते हैं। यह नंबर सेट करता है
निर्देशों की अधिकतम संख्या (जीसीसी के आंतरिक प्रतिनिधित्व में गिना जाता है) a
सिंगल फंक्शन जिसे ट्री इनलाइनर इनलाइनिंग के लिए मानता है। यह केवल प्रभावित करता है
एक वर्ग घोषणा (सी ++) में कार्यान्वित इनलाइन और विधियों की घोषणा की गई कार्य।
डिफॉल्यू मूल्य शून्य है।

मैक्स-इनलाइन-इन्स-ऑटो
जब आप उपयोग करते हैं -फिनलाइन-फ़ंक्शंस (में शामिल -ओ३), बहुत सारे कार्य जो करेंगे
अन्यथा संकलक द्वारा इनलाइनिंग के लिए विचार नहीं किया जाता है। प्रति
उन कार्यों, कार्यों की तुलना में एक अलग (अधिक प्रतिबंधात्मक) सीमा
घोषित इनलाइन लागू किया जा सकता है। डिफ़ॉल्ट मान 40 है।

इनलाइन-मिनट-स्पीडअप
जब कॉलर + कैली रनटाइम का अनुमानित प्रदर्शन सुधार इससे अधिक हो जाता है
थ्रेशोल्ड (वर्तमान में), फ़ंक्शन को सीमा पर ध्यान दिए बिना इनलाइन किया जा सकता है
--परम मैक्स-इनलाइन-इन्स-सिंगल और --परम मैक्स-इनलाइन-इन्स-ऑटो.

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

बड़ा-कार्य-विकास
प्रतिशत में इनलाइनिंग के कारण बड़े फ़ंक्शन की अधिकतम वृद्धि निर्दिष्ट करता है। NS
डिफ़ॉल्ट मान 100 है जो बड़े फ़ंक्शन वृद्धि को मूल से 2.0 गुना तक सीमित करता है
आकार।

बड़ी-इकाई-इंन्स
बड़ी अनुवाद इकाई को निर्दिष्ट करने वाली सीमा। इकाइयों की इनलाइनिंग के कारण वृद्धि
इस सीमा से बड़ा द्वारा सीमित है --परम इनलाइन-इकाई-विकास. छोटी इकाइयों के लिए
यह बहुत तंग हो सकता है। उदाहरण के लिए, एक इकाई पर विचार करें जिसमें फ़ंक्शन A . है
वह इनलाइन है और बी जो सिर्फ ए को तीन बार कॉल करता है। यदि B, A के सापेक्ष छोटा है,
इकाई की वृद्धि 300\% है और फिर भी इस तरह की इनलाइनिंग बहुत समझदार है। बहुत बड़े के लिए
छोटे इनलाइन करने योग्य कार्यों से युक्त इकाइयाँ, हालाँकि, समग्र इकाई वृद्धि
सीमा कोड आकार के घातीय विस्फोट से बचने के लिए आवश्यक है। इस प्रकार छोटे . के लिए
इकाइयों, आकार में वृद्धि हुई है --परम बड़ी-इकाई-इंन्स आवेदन करने से पहले --परम
इनलाइन-इकाई-विकास. डिफ़ॉल्ट 10000 है।

इनलाइन-इकाई-विकास
इनलाइनिंग के कारण संकलन इकाई के अधिकतम समग्र विकास को निर्दिष्ट करता है। NS
डिफ़ॉल्ट मान 20 है जो इकाई वृद्धि को मूल आकार के 1.2 गुना तक सीमित करता है। सर्दी
फ़ंक्शन (या तो विशेषता के माध्यम से या प्रोफ़ाइल फ़ीडबैक द्वारा चिह्नित ठंड) नहीं हैं
इकाई के आकार में गिना जाता है।

आईपीसीपी-इकाई-विकास
इंटरप्रोसेड्यूरल के कारण संकलन इकाई के अधिकतम समग्र विकास को निर्दिष्ट करता है
निरंतर प्रसार। डिफ़ॉल्ट मान 10 है जो इकाई वृद्धि को 1.1 . तक सीमित करता है
मूल आकार का गुना।

बड़ा ढेर फ्रेम
बड़े स्टैक फ़्रेम को निर्दिष्ट करने वाली सीमा। एल्गोरिथ्म इनलाइन करते समय कोशिश कर रहा है
इस सीमा से बहुत अधिक नहीं बढ़ने के लिए। डिफ़ॉल्ट मान 256 बाइट्स है।

बड़े ढेर-फ्रेम-विकास
प्रतिशत में इनलाइनिंग के कारण बड़े स्टैक फ़्रेम की अधिकतम वृद्धि निर्दिष्ट करता है।
डिफ़ॉल्ट मान 1000 है जो बड़े स्टैक फ्रेम विकास को 11 गुना तक सीमित करता है
मूल आकार।

मैक्स-इनलाइन-इन्स-पुनरावर्ती
मैक्स-इनलाइन-इन्स-पुनरावर्ती-ऑटो
निर्देशों की अधिकतम संख्या को स्वयं की एक आउट-ऑफ़-लाइन प्रतिलिपि निर्दिष्ट करता है-
रिकर्सिव इनलाइन फ़ंक्शन रिकर्सिव इनलाइनिंग करके बढ़ सकता है।

--परम मैक्स-इनलाइन-इन्स-पुनरावर्ती इनलाइन घोषित कार्यों पर लागू होता है। के लिये
कार्यों को इनलाइन घोषित नहीं किया गया है, पुनरावर्ती इनलाइनिंग तभी होती है जब
-फिनलाइन-फ़ंक्शंस (में शामिल -ओ३) सक्षम किया गया है; --परम मैक्स-इनलाइन-इन्स-
रिकर्सिव-ऑटो इसके बजाय लागू होता है। डिफ़ॉल्ट मान 450 है।

अधिकतम-इनलाइन-पुनरावर्ती-गहराई
अधिकतम-इनलाइन-पुनरावर्ती-गहराई-ऑटो
रिकर्सिव इनलाइनिंग के लिए उपयोग की जाने वाली अधिकतम रिकर्सन गहराई निर्दिष्ट करता है।

--परम अधिकतम-इनलाइन-पुनरावर्ती-गहराई इनलाइन घोषित कार्यों पर लागू होता है। के लिये
कार्यों को इनलाइन घोषित नहीं किया गया है, पुनरावर्ती इनलाइनिंग तभी होती है जब
-फिनलाइन-फ़ंक्शंस (में शामिल -ओ३) सक्षम किया गया है; --परम मैक्स-इनलाइन-पुनरावर्ती-
गहराई-ऑटो इसके बजाय लागू होता है। डिफ़ॉल्ट मान 8 है।

न्यूनतम-इनलाइन-पुनरावर्ती-संभाव्यता
रिकर्सिव इनलाइनिंग केवल उस फ़ंक्शन के लिए लाभदायक है जिसमें गहरी रिकर्सन है
औसत और कम रिकर्सन गहराई वाले फ़ंक्शन के लिए चोट पहुंचा सकता है
अन्य अनुकूलकों के लिए प्रस्तावना आकार या फ़ंक्शन बॉडी की जटिलता।

जब प्रोफ़ाइल फ़ीडबैक उपलब्ध हो (देखें -फ्रोफाइल-उत्पन्न) वास्तविक रिकर्सन
किसी दिए गए कॉल के माध्यम से फ़ंक्शन की पुनरावृत्ति होने की संभावना से गहराई का अनुमान लगाया जा सकता है
अभिव्यक्ति। यह पैरामीटर केवल उन अभिव्यक्तियों को कॉल करने के लिए इनलाइनिंग को सीमित करता है जिनके
प्रायिकता दी गई सीमा से अधिक है (प्रतिशत में)। डिफ़ॉल्ट मान 10 है।

अर्ली-इनलाइनिंग-इंसंस
विकास निर्दिष्ट करें जो प्रारंभिक इनलाइनर कर सकता है। वास्तव में यह राशि बढ़ाता है
एक बड़े अमूर्त दंड वाले कोड के लिए इनलाइनिंग। डिफ़ॉल्ट मान 14 है।

मैक्स-अर्ली-इनलाइनर-पुनरावृति
प्रारंभिक इनलाइनर के पुनरावृत्तियों की सीमा। यह मूल रूप से की संख्या को सीमित करता है
नेस्टेड अप्रत्यक्ष कॉल प्रारंभिक इनलाइनर हल कर सकते हैं। गहरी जंजीरें अभी बाकी हैं
देर से इनलाइनिंग द्वारा संभाला।

कॉमडैट-शेयरिंग-प्रायिकता
प्रायिकता (प्रतिशत में) कि कॉमडैट दृश्यता के साथ C++ इनलाइन फ़ंक्शन हैं
कई संकलन इकाइयों में साझा किया गया। डिफ़ॉल्ट मान 20 है।

प्रोफ़ाइल-फ़ंक्शन-आंतरिक-आईडी
प्रोफ़ाइल डेटाबेस में फ़ंक्शन आंतरिक आईडी का उपयोग करने के लिए नियंत्रित करने के लिए एक पैरामीटर
खोजें। यदि मान 0 है, तो कंपाइलर फ़ंक्शन पर आधारित एक आईडी का उपयोग करता है
कोडांतरक का नाम और फ़ाइल नाम, जो पुराने प्रोफ़ाइल डेटा को स्रोत के प्रति अधिक सहिष्णु बनाता है
फ़ंक्शन रीऑर्डरिंग आदि जैसे परिवर्तन। डिफ़ॉल्ट मान 0 है।

मिन-वेक्ट-लूप-बाउंड
पुनरावृत्तियों की न्यूनतम संख्या जिसके तहत लूप वेक्टरकृत नहीं होते हैं जब
-फ़्री-वेक्टराइज़ प्रयोग किया जाता है। वैश्वीकरण के बाद पुनरावृत्तियों की संख्या की आवश्यकता है
वैश्वीकरण की अनुमति देने के लिए इस विकल्प द्वारा निर्दिष्ट मूल्य से अधिक हो। NS
डिफ़ॉल्ट मान 0 है।

gcse-लागत-दूरी-अनुपात
अधिकतम दूरी की गणना में स्केलिंग कारक द्वारा एक अभिव्यक्ति को स्थानांतरित किया जा सकता है
जीसीएसई अनुकूलन। यह वर्तमान में केवल कोड उत्थापन पास में समर्थित है।
अनुपात जितना बड़ा होगा, उतना ही आक्रामक कोड उत्थापन सरल होगा
भाव, यानी, वे भाव जिनकी लागत . से कम है जीसीएसई-अप्रतिबंधित-
लागत. 0 निर्दिष्ट करने से साधारण व्यंजकों का उत्थापन अक्षम हो जाता है। डिफ़ॉल्ट मान है
10.

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

अधिकतम-लहरा-गहराई
भावों को फहराने के लिए डोमिनेटर ट्री में खोज की गहराई। यह प्रयोग किया जाता है
उत्थापन एल्गोरिथ्म में द्विघात व्यवहार से बचने के लिए। 0 का मान सीमित नहीं है
खोज पर, लेकिन विशाल कार्यों के संकलन को धीमा कर सकता है। डिफ़ॉल्ट मान
एक्सएनएनएक्स है।

मैक्स-टेल-मर्ज-तुलना
किसी bb से तुलना करने के लिए समान bbs की अधिकतम राशि। इसका उपयोग बचने के लिए किया जाता है
ट्री टेल मर्जिंग में द्विघात व्यवहार। डिफ़ॉल्ट मान 10 है।

अधिकतम-पूंछ-मर्ज-पुनरावृत्तियों
फ़ंक्शन पर पास की पुनरावृत्तियों की अधिकतम मात्रा। यह करने के लिए प्रयोग किया जाता है
ट्री टेल मर्जिंग में संकलन समय सीमित करें। डिफ़ॉल्ट मान 2 है।

मैक्स-अनरोल्ड-इंसंस
निर्देशों की अधिकतम संख्या जिन्हें एक लूप को अनियंत्रित करना पड़ सकता है। यदि एक लूप
अनियंत्रित है, यह पैरामीटर यह भी निर्धारित करता है कि लूप कोड कितनी बार है
अनियंत्रित।

अधिकतम-औसत-अनियंत्रित-इन्स
निर्देशों की अधिकतम संख्या उनके निष्पादन की संभावनाओं के पक्षपाती है कि
एक लूप को अनियंत्रित करना पड़ सकता है। यदि कोई लूप अनियंत्रित है, तो यह पैरामीटर भी
यह निर्धारित करता है कि लूप कोड कितनी बार अनियंत्रित हुआ है।

अधिकतम-अनरोल-समय
एकल लूप के अनरोलिंग की अधिकतम संख्या।

मैक्स-छील-इन्स
निर्देशों की अधिकतम संख्या जिन्हें एक लूप को छीलना पड़ सकता है। यदि एक लूप
छील दिया जाता है, यह पैरामीटर यह भी निर्धारित करता है कि लूप कोड कितनी बार छीला गया है।

अधिकतम-छील-समय
एक लूप के छिलके की अधिकतम संख्या।

मैक्स-छील-शाखाएं
छिलके वाले क्रम से गर्म पथ पर शाखाओं की अधिकतम संख्या।

अधिकतम-पूरी तरह से छील-इन्स
पूरी तरह से खुली हुई लूप की अधिकतम संख्या।

अधिकतम-पूरी तरह से छील-बार
एक लूप के पुनरावृत्तियों की अधिकतम संख्या पूर्ण छीलने के लिए उपयुक्त होना चाहिए।

अधिकतम-पूरी तरह से छील-लूप-घोंसला-गहराई
लूप नेस्ट की अधिकतम गहराई पूरी तरह से छीलने के लिए उपयुक्त है।

मैक्स-अनस्विच-इंसंस
स्विच न किए गए लूप की अधिकतम संख्या।

अधिकतम-अनस्विच-स्तर
एक लूप में बंद की गई शाखाओं की अधिकतम संख्या।

सीमित खर्चीला
लूप अपरिवर्तनीय गति में एक महंगी अभिव्यक्ति की न्यूनतम लागत।

iv-विचार-सभी-उम्मीदवार-बाध्य
प्रेरण चर के लिए उम्मीदवारों की संख्या पर बाध्य, जिसके नीचे सभी उम्मीदवार
प्रेरण चर अनुकूलन में प्रत्येक उपयोग के लिए माना जाता है। अगर वहाँ
इससे अधिक उम्मीदवार, केवल सबसे प्रासंगिक लोगों से बचने के लिए माना जाता है
द्विघात समय जटिलता।

iv-अधिकतम-माना-उपयोग
इंडक्शन वैरिएबल ऑप्टिमाइज़ेशन उन लूपों को छोड़ देता है जिनमें अधिक इंडक्शन होता है
परिवर्तनशील उपयोग।

iv-हमेशा-छंटनी-कैंड-सेट-बाउंड
यदि सेट में उम्मीदवारों की संख्या इस मान से कम है, तो हमेशा कोशिश करें
नया जोड़ते समय अनावश्यक ivs को सेट से हटा दें।

scev-अधिकतम-expr-आकार
अदिश विकास विश्लेषक में प्रयुक्त अभिव्यक्तियों के आकार पर बाध्य। बड़ा
अभिव्यक्ति विश्लेषक को धीमा कर देती है।

scev-अधिकतम-expr-जटिलता
अदिश विकास विश्लेषक में भावों की जटिलता पर बंधा हुआ।
जटिल भाव विश्लेषक को धीमा कर देते हैं।

ओमेगा-मैक्स-वार्स
एक ओमेगा बाधा प्रणाली में चर की अधिकतम संख्या। डिफ़ॉल्ट मान
एक्सएनएनएक्स है।

ओमेगा-मैक्स-गीक्स
एक ओमेगा बाधा प्रणाली में असमानताओं की अधिकतम संख्या। डिफ़ॉल्ट
मान 256 है।

ओमेगा-मैक्स-ईक्यूएस
एक ओमेगा बाधा प्रणाली में समानता की अधिकतम संख्या। डिफ़ॉल्ट मान
एक्सएनएनएक्स है।

ओमेगा-मैक्स-वाइल्ड-कार्ड
वाइल्डकार्ड वेरिएबल की अधिकतम संख्या जिसे ओमेगा सॉल्वर सम्मिलित करने में सक्षम है।
डिफॉल्यू मूल्य शून्य है।

ओमेगा-हैश-टेबल-आकार
ओमेगा सॉल्वर में हैश तालिका का आकार। डिफ़ॉल्ट मान 550 है।

ओमेगा-अधिकतम-कुंजी
ओमेगा सॉल्वर द्वारा उपयोग की जाने वाली चाबियों की अधिकतम संख्या। डिफ़ॉल्ट मान 500 है।

ओमेगा-उन्मूलन-अनावश्यक-बाधाएं
जब 1 पर सेट किया जाता है, तो सभी अनावश्यक बाधाओं को समाप्त करने के लिए महंगी विधियों का उपयोग करें। NS
डिफ़ॉल्ट मान 0 है।

वेक्टर-अधिकतम-संस्करण-के लिए-संरेखण-जांच
लूप करते समय किए जा सकने वाले रन-टाइम चेक की अधिकतम संख्या
वेक्टरिज़र में संरेखण के लिए संस्करण।

वेक्टर-अधिकतम-संस्करण-के-उपनाम-जांच
लूप करते समय किए जा सकने वाले रन-टाइम चेक की अधिकतम संख्या
वेक्टरिज़र में उपनाम के लिए संस्करण।

वेक्टर-अधिकतम-छीलने के लिए संरेखण
वेक्टराइज़र के लिए एक्सेस अलाइनमेंट को बढ़ाने के लिए लूप पील्स की अधिकतम संख्या। मूल्य
-1 का अर्थ है 'कोई सीमा नहीं'।

अधिकतम-पुनरावृत्तियों-से-ट्रैक
पाश के पुनरावृत्तियों की अधिकतम संख्या विश्लेषण के लिए जानवर-बल एल्गोरिथ्म
लूप के पुनरावृत्तियों की संख्या का मूल्यांकन करने का प्रयास करता है।

हॉट-बीबी-गिनती-डब्ल्यूएस-पर्मिले
एक बुनियादी ब्लॉक प्रोफ़ाइल गणना को गर्म माना जाता है यदि यह दिए गए में योगदान देता है
संपूर्ण रूपरेखा निष्पादन का परमिलेज (अर्थात 0...1000)।

गर्म-बीबी-आवृत्ति-अंश
मूल ब्लॉक के निष्पादन की प्रविष्टि ब्लॉक आवृत्ति के अंश का चयन करें
दिए गए फ़ंक्शन को मूल ब्लॉक को गर्म माना जाना चाहिए।

अधिकतम-अनुमानित-पुनरावृत्तियों
लूप पुनरावृत्तियों की अधिकतम संख्या हम सांख्यिकीय रूप से भविष्यवाणी करते हैं। यह उपयोगी है
ऐसे मामले जहां एक फ़ंक्शन में ज्ञात बाउंड और दूसरा लूप वाला एक लूप होता है
अज्ञात बंधन के साथ। पुनरावृत्तियों की ज्ञात संख्या की भविष्यवाणी सही ढंग से की जाती है, जबकि
पुनरावृत्तियों की अज्ञात संख्या औसतन लगभग 10. इसका अर्थ है कि लूप
बिना सीमा के दूसरे के सापेक्ष कृत्रिम रूप से ठंडा दिखाई देता है।

अंतर्निहित-उम्मीद-प्रायिकता
निर्दिष्ट मान वाले व्यंजक की प्रायिकता को नियंत्रित करें। इस
पैरामीटर इनपुट के रूप में एक प्रतिशत (यानी 0 ... 100) लेता है। डिफ़ॉल्ट संभावना
90 का आनुभविक रूप से प्राप्त किया जाता है।

संरेखित-दहलीज
एक मूल ब्लॉक के निष्पादन की अधिकतम आवृत्ति के अंश का चयन करें a
मूल ब्लॉक को संरेखित करने के लिए कार्य।

संरेखित-लूप-पुनरावृत्तियों
कम से कम चयनित पुनरावृत्तियों की पुनरावृति के लिए अपेक्षित लूप संरेखित है।

अनुरेखक-गतिशील-कवरेज
अनुरेखक-गतिशील-कवरेज-प्रतिक्रिया
इस मान का उपयोग के दिए गए प्रतिशत के बाद सुपरब्लॉक गठन को सीमित करने के लिए किया जाता है
निष्पादित निर्देश शामिल हैं। यह अनावश्यक कोड आकार विस्तार को सीमित करता है।

RSI अनुरेखक-गतिशील-कवरेज-प्रतिक्रिया पैरामीटर का उपयोग केवल तभी किया जाता है जब प्रोफ़ाइल फ़ीडबैक
उपलब्ध है। वास्तविक प्रोफाइल (सांख्यिकीय रूप से अनुमानित लोगों के विपरीत) हैं
थ्रेशोल्ड को बड़ा मान होने की अनुमति देने के लिए बहुत कम संतुलित।

अनुरेखक-अधिकतम-कोड-विकास
एक बार कोड वृद्धि दिए गए प्रतिशत तक पहुंचने के बाद पूंछ दोहराव बंद करो। यह है एक
बल्कि कृत्रिम सीमा है, क्योंकि अधिकांश डुप्लीकेट बाद में क्रॉस में हटा दिए जाते हैं
कूदना, इसलिए इसे वांछित कोड वृद्धि की तुलना में बहुत अधिक मूल्यों पर सेट किया जा सकता है।

अनुरेखक-मिनट-शाखा-अनुपात
रिवर्स ग्रोथ को रोकें जब बेस्ट एज की रिवर्स संभावना इससे कम हो
सीमा (प्रतिशत में)।

अनुरेखक-मिनट-शाखा-अनुपात
अनुरेखक-मिनट-शाखा-अनुपात-प्रतिक्रिया
यदि सर्वोत्तम बढ़त की संभावना इस सीमा से कम है, तो आगे की वृद्धि रोकें।

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

अधिकतम-सीएसई-पथ-लंबाई
पथ पर बुनियादी ब्लॉकों की अधिकतम संख्या जिसे सीएसई मानता है। डिफ़ॉल्ट 10 है।

मैक्स-सीएसई-इंन्स
फ्लशिंग से पहले CSE द्वारा संसाधित किए जाने वाले निर्देशों की अधिकतम संख्या। डिफ़ॉल्ट है
1000.

ggc-मिनट-विस्तार
GCC अपने स्वयं के मेमोरी आवंटन को प्रबंधित करने के लिए एक कचरा संग्रहकर्ता का उपयोग करता है। यह पैरामीटर
न्यूनतम प्रतिशत निर्दिष्ट करता है जिसके द्वारा कचरा संग्रहकर्ता का ढेर होना चाहिए
संग्रह के बीच विस्तार करने की अनुमति है। इसे ट्यून करने से संकलन गति में सुधार हो सकता है;
इसका कोड जनरेशन पर कोई प्रभाव नहीं पड़ता है।

डिफ़ॉल्ट 30% + 70% * (रैम/1 जीबी) 100% की ऊपरी सीमा के साथ है जब रैम> = 1 जीबी।
यदि "getrlimit" उपलब्ध है, तो "RAM" की धारणा वास्तविक RAM में सबसे छोटी है और
"RLIMIT_DATA" या "RLIMIT_AS"। यदि जीसीसी किसी विशेष पर रैम की गणना करने में सक्षम नहीं है
मंच, 30% की निचली सीमा का उपयोग किया जाता है। इस पैरामीटर को सेट करना और जीजीसी-मिनट-
हीप साइज शून्य के कारण हर अवसर पर एक पूर्ण संग्रह होता है। यह है
बेहद धीमा, लेकिन डिबगिंग के लिए उपयोगी हो सकता है।

जीजीसी-मिन-हीपसाइज
कचरा संग्रहकर्ता के ढेर का न्यूनतम आकार इससे पहले कि वह इकट्ठा करने के लिए परेशान होने लगे
कूड़ा। ढेर के विस्तार के बाद पहला संग्रह होता है ggc-मिनट-विस्तार%
परे जीजीसी-मिन-हीपसाइज. फिर से, इसे ट्यून करने से संकलन गति में सुधार हो सकता है, और
कोड जनरेशन पर कोई प्रभाव नहीं पड़ता है।

डिफ़ॉल्ट RAM/8, RLIMIT_RSS, या एक सीमा से छोटा है जो सुनिश्चित करने का प्रयास करता है
कि RLIMIT_DATA या RLIMIT_AS को पार नहीं किया गया है, लेकिन 4096 की निचली सीमा के साथ
(चार मेगाबाइट) और 131072 (128 मेगाबाइट) की ऊपरी सीमा। अगर जीसीसी सक्षम नहीं है
किसी विशेष प्लेटफॉर्म पर रैम की गणना करने के लिए, निचली सीमा का उपयोग किया जाता है। इसे सेट करना
पैरामीटर बहुत बड़ा प्रभावी ढंग से कचरा संग्रहण अक्षम करता है। इसे सेट करना
पैरामीटर और ggc-मिनट-विस्तार शून्य से प्रत्येक पर एक पूर्ण संग्रह होने का कारण बनता है
अवसर।

अधिकतम-पुनः लोड-खोज-इंसंस
निर्देश पुनः लोड की अधिकतम संख्या समकक्ष के लिए पीछे की ओर देखना चाहिए
रजिस्टर करें। बढ़ते मूल्यों का अर्थ है अधिक आक्रामक अनुकूलन, बनाना
शायद थोड़ा बेहतर प्रदर्शन के साथ संकलन समय में वृद्धि। डिफ़ॉल्ट
मान 100 है।

मैक्स-सेलिब-मेमोरी-लोकेशन
मेमोरी स्थानों की अधिकतम संख्या cselib को ध्यान में रखना चाहिए।
बढ़ते मूल्यों का अर्थ है अधिक आक्रामक अनुकूलन, संकलन समय बनाना
शायद थोड़ा बेहतर प्रदर्शन के साथ वृद्धि। डिफ़ॉल्ट मान 500 है।

पुन: क्रमित-ब्लॉक-डुप्लिकेट
पुन: क्रमित-ब्लॉक-डुप्लिकेट-प्रतिक्रिया
बिना शर्त उपयोग करने का निर्णय लेने के लिए मूल ब्लॉक रीऑर्डरिंग पास द्वारा उपयोग किया जाता है
अपने गंतव्य पर कोड को शाखा या डुप्लिकेट करें। कोड तब दोहराया जाता है जब उसका
अनुमानित आकार के अनुमानित आकार से गुणा किए गए इस मान से छोटा है
कार्यक्रम के हॉट स्पॉट में बिना शर्त छलांग।

RSI पुन: क्रमित-ब्लॉक-डुप्लिकेट-प्रतिक्रिया पैरामीटर का उपयोग केवल तभी किया जाता है जब प्रोफ़ाइल फ़ीडबैक
उपलब्ध है। इसे से अधिक मान पर सेट किया जा सकता है पुन: क्रमित-ब्लॉक-डुप्लिकेट के बाद से
हॉट स्पॉट की जानकारी अधिक सटीक होती है।

अधिकतम-अनुसूचित-तैयार-insns
अनुसूचक जारी करने के लिए तैयार निर्देशों की अधिकतम संख्या होनी चाहिए
पहले शेड्यूलिंग पास के दौरान किसी भी समय पर विचार करें। बढ़ते मूल्य
मतलब अधिक गहन खोजों, संकलन समय को संभवतः के साथ बढ़ाना
थोड़ा लाभ। डिफ़ॉल्ट मान 100 है।

अधिकतम-अनुसूचित-क्षेत्र-ब्लॉक
किसी क्षेत्र में इंटरब्लॉक के लिए विचार किए जाने वाले ब्लॉकों की अधिकतम संख्या
शेड्यूलिंग। डिफ़ॉल्ट मान 10 है।

अधिकतम-पाइपलाइन-क्षेत्र-ब्लॉक
किसी क्षेत्र में पाइपलाइनिंग के लिए विचार किए जाने वाले ब्लॉकों की अधिकतम संख्या
चयनात्मक अनुसूचक। डिफ़ॉल्ट मान 15 है।

अधिकतम-अनुसूचित-क्षेत्र-इंसंस
किसी क्षेत्र में इंटरब्लॉक के लिए विचार किए जाने वाले इंस की अधिकतम संख्या
शेड्यूलिंग। डिफ़ॉल्ट मान 100 है।

मैक्स-पाइपलाइन-क्षेत्र-इंसंस
किसी क्षेत्र में पाइपलाइनिंग के लिए विचार किए जाने वाले इंस की अधिकतम संख्या
चयनात्मक अनुसूचक। डिफ़ॉल्ट मान 200 है।

मिन-स्पेक-प्रोब
इंटरब्लॉक के लिए स्रोत ब्लॉक तक पहुंचने की न्यूनतम संभावना (प्रतिशत में)
सट्टा शेड्यूलिंग। डिफ़ॉल्ट मान 40 है।

अधिकतम-अनुसूचित-विस्तार-क्षेत्र-पुनरावृत्तियों
क्षेत्रों का विस्तार करने के लिए CFG के माध्यम से पुनरावृत्तियों की अधिकतम संख्या। 0 का मान (द
डिफ़ॉल्ट) क्षेत्र एक्सटेंशन अक्षम करता है।

अधिकतम-अनुसूचित-इन-संघर्ष-देरी
सट्टा गति के लिए विचार किए जाने वाले एक इंस के लिए अधिकतम संघर्ष विलंब।
डिफॉल्यू मूल्य शून्य है।

शेड्यूल-स्पेक-प्रोब-कटऑफ़
सट्टा सफलता की न्यूनतम संभावना (प्रतिशत में), ताकि सट्टा
इन्स निर्धारित हैं। डिफ़ॉल्ट मान 40 है।

शेड्यूल-स्पेक-स्टेट-एज-प्रोब-कटऑफ़
अनुसूचक के लिए अपने राज्य को बचाने के लिए किनारे की न्यूनतम संभावना होनी चाहिए
इसके आर - पार। डिफ़ॉल्ट मान 10 है।

शेड्यूल-मेम-ट्रू-डिप-लागत
समान मेमोरी को लक्षित करने वाले स्टोर और लोड के बीच न्यूनतम दूरी (सीपीयू चक्रों में)
स्थान। डीफॉल्ट मूल्य 1 है।

सेल्शेड-मैक्स-लुकहेड
चुनिंदा शेड्यूलिंग की लुकहेड विंडो का अधिकतम आकार। यह एक गहराई है
उपलब्ध निर्देशों की खोज के लिए। डिफ़ॉल्ट मान 50 है।

सेल्शेड-अधिकतम-अनुसूचित-समय
चयनात्मक के दौरान एक निर्देश को निर्धारित करने की अधिकतम संख्या
शेड्यूलिंग। यह उन पुनरावृत्तियों की संख्या की सीमा है जिसके द्वारा
निर्देश पाइपलाइन किया जा सकता है। डिफ़ॉल्ट मान 2 है।

selsched-अधिकतम-इन्स-टू-नाम बदलें
तैयार सूची में सर्वोत्तम निर्देशों की अधिकतम संख्या जिनके लिए विचार किया जाता है
चयनात्मक अनुसूचक में नामकरण। डिफ़ॉल्ट मान 2 है।

एसएमएस-मिनट-एससी
स्टेज काउंट का न्यूनतम मान जो स्विंग मॉड्यूलो शेड्यूलर उत्पन्न करता है। NS
डिफ़ॉल्ट मान 2 है।

अधिकतम-अंतिम-मूल्य-आरटीएल
किसी व्यंजक में रिकॉर्ड किए जा सकने वाले RTL की संख्या के रूप में मापा गया अधिकतम आकार
उस रजिस्टर के अंतिम ज्ञात मूल्य के रूप में एक छद्म रजिस्टर के लिए कॉम्बिनर में। NS
डिफ़ॉल्ट 10000 है।

मैक्स-कॉम्बिनेशन-इंन्स
RTL कॉम्बिनर द्वारा संयोजित किए जाने वाले निर्देशों की अधिकतम संख्या। डिफ़ॉल्ट
मान 2 at . है -ओजी और 4 अन्यथा।

पूर्णांक-शेयर-सीमा
छोटे पूर्णांक स्थिरांक एक साझा डेटा संरचना का उपयोग कर सकते हैं, संकलक को कम कर सकते हैं
स्मृति उपयोग और इसकी गति में वृद्धि। यह एक साझा का अधिकतम मूल्य निर्धारित करता है
पूर्णांक स्थिरांक। डिफ़ॉल्ट मान 256 है।

एसएसपी-बफर-आकार
बफ़र्स का न्यूनतम आकार (यानी सरणियाँ) जो स्टैक स्मैशिंग सुरक्षा प्राप्त करते हैं
कब -फस्टैक-सुरक्षा प्रयोग किया जाता है।

उबंटू 10.10 से पहले यह डिफ़ॉल्ट "8" था। वर्तमान में यह "4" है, इसे बढ़ाने के लिए
स्टैक रक्षक द्वारा संरक्षित कार्यों की संख्या।

न्यूनतम-आकार-के-स्टैक-साझाकरण
स्टैक स्लॉट साझाकरण में भाग लेने वाले चर का न्यूनतम आकार जब नहीं
अनुकूलन। डिफ़ॉल्ट मान 32 है।

अधिकतम-कूद-धागा-दोहराव-stmts
किसी ब्लॉक में अनुमत कथनों की अधिकतम संख्या जिसे दोहराए जाने की आवश्यकता होती है जब
थ्रेडिंग कूदता है।

अधिकतम-फ़ील्ड-के-फ़ील्ड-संवेदनशील
के दौरान क्षेत्र संवेदनशील तरीके से संसाधित संरचना में फ़ील्ड की अधिकतम संख्या
सूचक विश्लेषण। के लिए डिफ़ॉल्ट शून्य है -ओ३ और -ओ३, और 100 के लिए -ओस, -ओ३, तथा
-ओ३.

प्रीफ़ेच-विलंबता
प्रीफ़ेच से पहले निष्पादित किए जाने वाले निर्देशों की औसत संख्या का अनुमान लगाएं
खत्म। आगे प्रीफ़ेच की गई दूरी इस स्थिरांक के समानुपाती होती है।
इस संख्या को बढ़ाने से कम स्ट्रीम प्रीफ़ेच किए जा सकते हैं (देखें
एक साथ-प्रीफेच).

एक साथ-प्रीफेच
एक ही समय में चलने वाले प्रीफ़ेच की अधिकतम संख्या।

l1-कैश-लाइन-आकार
L1 कैश में कैश लाइन का आकार, बाइट्स में।

l1-कैश-आकार
L1 कैश का आकार, किलोबाइट में।

l2-कैश-आकार
L2 कैश का आकार, किलोबाइट में।

न्यूनतम-इन-से-प्रीफेच-अनुपात
निर्देशों की संख्या और प्रीफ़ेच की संख्या के बीच न्यूनतम अनुपात
लूप में प्रीफ़ेचिंग सक्षम करने के लिए।

प्रीफेच-मिनट-इन-टू-मेम-अनुपात
निर्देशों की संख्या और स्मृति की संख्या के बीच न्यूनतम अनुपात
लूप में प्रीफ़ेचिंग सक्षम करने के लिए संदर्भ।

उपयोग-विहित-प्रकार
क्या कंपाइलर को "कैनोनिकल" टाइप सिस्टम का उपयोग करना चाहिए। डिफ़ॉल्ट रूप से, यह
हमेशा 1 होना चाहिए, जो तुलना करने के लिए अधिक कुशल आंतरिक तंत्र का उपयोग करता है
सी ++ और ऑब्जेक्टिव-सी ++ में टाइप करें। हालाँकि, यदि विहित प्रकार प्रणाली में बग हैं
संकलन विफलताओं के कारण, विहित प्रकारों को अक्षम करने के लिए इस मान को 0 पर सेट करें।

स्विच-रूपांतरण-अधिकतम-शाखा-अनुपात
स्विच इनिशियलाइज़ेशन रूपांतरण से बड़े सरणियाँ बनाने से इनकार करता है
स्विच-रूपांतरण-अधिकतम-शाखा-अनुपात स्विच में शाखाओं की संख्या का गुणा।

अधिकतम-आंशिक-विरोधी-लंबाई
आंशिक एंटिक सेट की अधिकतम लंबाई की गणना ट्री आंशिक के दौरान की जाती है
अतिरेक उन्मूलन अनुकूलन (-फट्री-प्री) पर अनुकूलित करते समय -ओ३ और ऊपर।
कुछ प्रकार के स्रोत कोड के लिए एन्हांस्ड आंशिक अतिरेक उन्मूलन
ऑप्टिमाइज़ेशन भाग सकता है, होस्ट पर उपलब्ध सभी मेमोरी का उपभोग करता है
मशीन। यह पैरामीटर गणना किए गए सेट की लंबाई पर एक सीमा निर्धारित करता है,
जो भगोड़े व्यवहार को रोकता है। इस पैरामीटर के लिए 0 का मान सेट करना
असीमित सेट लंबाई की अनुमति देता है।

sccvn-अधिकतम-scc-आकार
SCCVN प्रसंस्करण के दौरान दृढ़ता से जुड़े घटक (SCC) का अधिकतम आकार। अगर
यह सीमा समाप्त हो गई है, पूरे समारोह के लिए एससीसीवीएन प्रसंस्करण नहीं किया गया है और
इसके आधार पर अनुकूलन अक्षम हैं। डिफ़ॉल्ट अधिकतम एससीसी आकार है
10000.

sccvn-अधिकतम-उपनाम-प्रश्न-प्रति-पहुंच
अतिरेक की तलाश में हम अधिकतम संख्या में उपनाम-ओरेकल क्वेरी करते हैं
लोड और स्टोर के लिए। यदि यह सीमा हिट हो जाती है तो खोज निरस्त कर दी जाती है और लोड या
स्टोर को बेमानी नहीं माना जाता है। प्रश्नों की संख्या एल्गोरिथम है
लोड से लेकर फंक्शन एंट्री तक सभी रास्तों पर स्टोर्स की संख्या तक सीमित है।
प्रश्नों की डिफ़ॉल्ट अधिकतम संख्या 1000 है।

इरा-अधिकतम-लूप-संख्या
IRA डिफ़ॉल्ट रूप से क्षेत्रीय रजिस्टर आवंटन का उपयोग करता है। यदि किसी फ़ंक्शन में अधिक शामिल हैं
इस पैरामीटर द्वारा दी गई संख्या से लूप, केवल दी गई संख्या के अधिकतम पर
क्षेत्रीय रजिस्टर आवंटन के लिए सबसे अधिक बार निष्पादित लूप क्षेत्र बनाते हैं।
पैरामीटर का डिफ़ॉल्ट मान 100 है।

इरा-अधिकतम-संघर्ष-तालिका-आकार
हालांकि IRA संघर्ष तालिका को संपीड़ित करने के लिए एक परिष्कृत एल्गोरिथम का उपयोग करता है,
तालिका को अभी भी विशाल कार्यों के लिए अत्यधिक मात्रा में स्मृति की आवश्यकता हो सकती है। अगर
किसी फ़ंक्शन के लिए विरोध तालिका इसके द्वारा दिए गए MB में आकार से अधिक हो सकती है
पैरामीटर, रजिस्टर आवंटक इसके बजाय एक तेज, सरल और निम्न का उपयोग करता है-
गुणवत्ता एल्गोरिथ्म जिसमें छद्म-पंजीकरण संघर्ष तालिका बनाने की आवश्यकता नहीं होती है।
पैरामीटर का डिफ़ॉल्ट मान 2000 है।

इरा-लूप-आरक्षित-regs
निर्णयों के लिए लूप में अधिक सटीक रजिस्टर दबाव का मूल्यांकन करने के लिए IRA का उपयोग किया जा सकता है
लूप इनवेरिएंट को स्थानांतरित करने के लिए (देखें -ओ३) के लिए आरक्षित उपलब्ध रजिस्टरों की संख्या
कुछ अन्य उद्देश्य इस पैरामीटर द्वारा दिए गए हैं। का डिफ़ॉल्ट मान
पैरामीटर 2 है, जो कि विशिष्ट द्वारा आवश्यक रजिस्टरों की न्यूनतम संख्या है
निर्देश। यह मान कई प्रयोगों से सबसे अच्छा पाया गया है।

एलआरए-विरासत-ईबीबी-संभाव्यता-कटऑफ
एलआरए बाद के इन्सन्स में रजिस्टरों में पुनः लोड किए गए मूल्यों का पुन: उपयोग करने का प्रयास करता है। इस
अनुकूलन को वंशानुक्रम कहा जाता है। EBB ऐसा करने के लिए एक क्षेत्र के रूप में प्रयोग किया जाता है
अनुकूलन। पैरामीटर न्यूनतम फॉल-थ्रू एज प्रायिकता को परिभाषित करता है
प्रतिशत एलआरए में बीबी को विरासत ईबीबी में जोड़ने के लिए उपयोग किया जाता है। का डिफ़ॉल्ट मान
पैरामीटर 40 है। मान को x2000-86 पर SPEC64 के कई रनों से चुना गया था।

लूप-अपरिवर्तनीय-अधिकतम-बीबीएस-इन-लूप
लूप अपरिवर्तनीय गति बहुत महंगी हो सकती है, संकलन समय और समय दोनों में
बहुत बड़े लूप के साथ आवश्यक संकलन-समय मेमोरी की मात्रा। अधिक के साथ लूप्स
इस पैरामीटर की तुलना में मूल ब्लॉक में लूप अपरिवर्तनीय गति अनुकूलन नहीं होगा
उन पर प्रदर्शन किया। पैरामीटर का डिफ़ॉल्ट मान 1000 के लिए है -ओ३ और 10000
एसटी -ओ३ और ऊपर।

लूप-मैक्स-डेटारेफ़्स-फॉर-डेटाडेप्स
बहुत बड़े लूप के लिए डेटा डिपेंडेंसी बनाना महंगा है। यह पैरामीटर
डेटा के लिए विचार किए जाने वाले लूप में डेटा संदर्भों की संख्या को सीमित करता है
निर्भरता विश्लेषण। इन बड़े लूपों को ऑप्टिमाइज़ेशन द्वारा नियंत्रित नहीं किया जाता है
लूप डेटा निर्भरता। डिफ़ॉल्ट मान 1000 है।

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

अधिकतम-vartrack-expr-गहराई
चर नामों को मैप करने का प्रयास करते समय अधिकतम संख्या में रिकर्सन स्तर सेट करता है या
डिबग अस्थायी भाव भाव के लिए। यह अधिक के लिए संकलन समय का व्यापार करता है
डिबग की पूरी जानकारी। यदि यह बहुत कम सेट किया गया है, तो मान व्यंजक जो हैं
उपलब्ध है और डिबग जानकारी में प्रदर्शित किया जा सकता है अंत में उपयोग नहीं किया जा सकता है;
इसे उच्चतर सेट करने से संकलक अधिक जटिल डिबग खोजने में सक्षम हो सकता है
अभिव्यक्ति, लेकिन संकलन समय और स्मृति उपयोग बढ़ सकता है। डिफ़ॉल्ट 12 है।

मिन-नॉन्डेबग-इन्स-यूआईडी
इस पैरामीटर से शुरू होने वाले यूआईडी का उपयोग नॉनडेबग इंन्स के लिए करें। नीचे की सीमा
पैरामीटर विशेष रूप से द्वारा बनाए गए डिबग इन्स के लिए आरक्षित है
-fvar-ट्रैकिंग-असाइनमेंट, लेकिन डिबग इन्सन्स ऊपर (गैर-अतिव्यापी) यूआईडी प्राप्त कर सकते हैं
यह अगर आरक्षित सीमा समाप्त हो गई है।

आईपीए-एसआरए-पीटीआर-विकास-कारक
IPA-SRA केवल एक या अधिक नए मापदंडों के साथ एक पॉइंटर को एक एग्रीगेट में बदल देता है
जब उनका संचयी आकार से कम या बराबर हो आईपीए-एसआरए-पीटीआर-विकास-कारक समय
मूल सूचक पैरामीटर का आकार।

एसआरए-मैक्स-स्केलराइजेशन-आकार-ओस्पीड
एसआरए-मैक्स-स्केलराइजेशन-आकार-ओसाइज
दो स्केलर रिडक्शन ऑफ एग्रीगेट्स पास (एसआरए और आईपीए-एसआरए) को बदलने का लक्ष्य है
स्वतंत्र अदिश चरों के उपयोग के साथ समुच्चय के अदिश भाग। इन
पैरामीटर अधिकतम आकार को नियंत्रित करते हैं, भंडारण इकाइयों में, कुल मिलाकर जो है
गति के लिए संकलन करते समय प्रतिस्थापन के लिए विचार किया जाता है (sra-अधिकतम-स्केलराइज़ेशन-आकार-
ओस्पीड) या आकार (एसआरए-मैक्स-स्केलराइजेशन-आकार-ओसाइजक्रमशः)।

tm-अधिकतम-कुल-आकार
लेन-देन में थ्रेड-स्थानीय चर की प्रतियां बनाते समय, यह पैरामीटर
बाइट्स में आकार निर्दिष्ट करता है जिसके बाद चर लॉगिंग के साथ सहेजे जाते हैं
कोड अनुक्रम जोड़े को सहेजने/पुनर्स्थापित करने के विपरीत कार्य करता है। केवल यह विकल्प
उपयोग करते समय लागू होता है -फग्नू-टीएम.

ग्रेफाइट-अधिकतम-एनबी-स्कोप-पैराम्स
ग्रेफाइट लूप रूपांतरण में घातांकीय प्रभावों से बचने के लिए, की संख्या
स्टेटिक कंट्रोल पार्ट (एससीओपी) में पैरामीटर बाध्य हैं। डिफ़ॉल्ट मान 10 . है
पैरामीटर। एक चर जिसका मूल्य संकलन समय पर अज्ञात है और परिभाषित है
एससीओपी के बाहर एससीओपी का एक पैरामीटर है।

ग्रेफाइट-अधिकतम-बीबीएस-प्रति-फ़ंक्शन
एससीओपी का पता लगाने में घातीय प्रभावों से बचने के लिए, कार्यों का आकार
ग्रेफाइट द्वारा विश्लेषण परिबद्ध है। डिफ़ॉल्ट मान 100 मूल ब्लॉक है।

लूप-ब्लॉक-टाइल-आकार
लूप ब्लॉकिंग या स्ट्रिप माइनिंग ट्रांसफॉर्म, के साथ सक्षम -फ्लॉप-ब्लॉक or
-फ्लूप-स्ट्रिप-माइन, लूप नेस्ट में प्रत्येक लूप को दिए गए नंबर से स्ट्रिप करें
पुनरावृत्तियों पट्टी की लंबाई को का उपयोग करके बदला जा सकता है लूप-ब्लॉक-टाइल-आकार
पैरामीटर। डिफ़ॉल्ट मान 51 पुनरावृत्तियों है।

लूप-अनरोल-जाम-आकार
के लिए अनियंत्रित कारक निर्दिष्ट करें -फ्लॉप-अनरोल-एंड-जाम विकल्प। डिफ़ॉल्ट मान
एक्सएनएनएक्स है।

लूप-अनरोल-जाम-गहराई
के लिए अनियंत्रित होने के लिए आयाम निर्दिष्ट करें (सबसे आंतरिक लूप से गिनती)
-फ्लॉप-अनरोल-एंड-जाम. डिफ़ॉल्ट मान 2 है।

आईपीए-सीपी-मूल्य-सूची-आकार
IPA-CP किसी फ़ंक्शन को दिए गए सभी संभावित मानों और प्रकारों को ट्रैक करने का प्रयास करता है
उन्हें प्रचारित करने और वर्चुअलाइजेशन करने के लिए पैरामीटर। आईपीए-सीपी-मूल्य-
सूची आकार प्रति औपचारिक रूप से संग्रहीत मूल्यों और प्रकारों की अधिकतम संख्या है
किसी फ़ंक्शन का पैरामीटर।

आईपीए-सीपी-eval-दहलीज
IPA-CP क्लोनिंग लाभप्रदता अनुमानों के अपने स्वयं के स्कोर की गणना करता है और प्रदर्शन करता है
से अधिक स्कोर वाले क्लोनिंग अवसर आईपीए-सीपी-eval-दहलीज.

आईपीए-सीपी-पुनरावर्ती-दंड
पुनरावर्ती कार्यों का प्रतिशत जुर्माना जब उनका मूल्यांकन किया जाएगा
क्लोनिंग के लिए।

आईपीए-सीपी-सिंगल-कॉल-पेनल्टी
किसी अन्य फ़ंक्शन के लिए एकल कॉल को शामिल करने वाले पेनल्टी फ़ंक्शन का प्रतिशत होगा
प्राप्त करते हैं जब उनका क्लोनिंग के लिए मूल्यांकन किया जाता है।

आईपीए-अधिकतम-एजीजी-आइटम
आईपीए-सीपी एक में पारित कई अदिश मूल्यों को प्रचारित करने में भी सक्षम है
सकल। आईपीए-अधिकतम-एजीजी-आइटम प्रति एक ऐसे मूल्यों की अधिकतम संख्या को नियंत्रित करता है
पैरामीटर।

आईपीए-सीपी-लूप-संकेत-बोनस
जब IPA-CP यह निर्धारित करता है कि एक क्लोनिंग उम्मीदवार की संख्या बनाएगा
ज्ञात लूप के पुनरावृत्तियों, यह का एक बोनस जोड़ता है आईपीए-सीपी-लूप-संकेत-बोनस को
उम्मीदवार का लाभप्रदता स्कोर।

आईपीए-सीपी-सरणी-सूचकांक-संकेत-बोनस
जब IPA-CP यह निर्धारित करता है कि एक क्लोनिंग उम्मीदवार एक सरणी की अनुक्रमणिका बनाएगा
ज्ञात पहुंच, यह का एक बोनस जोड़ता है आईपीए-सीपी-सरणी-सूचकांक-संकेत-बोनस को
उम्मीदवार का लाभप्रदता स्कोर।

आईपीए-अधिकतम-आ-चरण
कार्य निकायों के अपने विश्लेषण के दौरान, IPA-CP उर्फ ​​विश्लेषण को नियोजित करता है ताकि
फ़ंक्शन पैरामीटर द्वारा इंगित ट्रैक मान। ज्यादा समय न बिताने के लिए
विशाल कार्यों का विश्लेषण करते हुए, यह छोड़ देता है और बाद में बंद की गई सभी मेमोरी पर विचार करता है
की जांच आईपीए-अधिकतम-आ-चरण स्मृति को संशोधित करने वाले कथन।

एलटीओ-विभाजन
WHOPR संकलन के दौरान उत्पादित विभाजनों की वांछित संख्या निर्दिष्ट करें। NS
विभाजनों की संख्या संकलन के लिए प्रयुक्त CPU की संख्या से अधिक होनी चाहिए। NS
डिफ़ॉल्ट मान 32 है।

lto-विभाजन
WHOPR के लिए न्यूनतम विभाजन का आकार (अनुमानित निर्देशों में)। यह रोकता है
बहुत छोटे कार्यक्रमों को बहुत सारे विभाजनों में विभाजित करने का खर्च।

डायग्नोस्टिक-सहायता के लिए cxx-max-namespaces
C++ नाम खोजते समय सुझावों के लिए परामर्श करने के लिए नामस्थानों की अधिकतम संख्या
एक पहचानकर्ता के लिए विफल रहता है। डिफ़ॉल्ट 1000 है।

सिंक-आवृत्ति-दहलीज
लक्ष्य ब्लॉक की अधिकतम सापेक्ष निष्पादन आवृत्ति (प्रतिशत में)
एक बयान के मूल ब्लॉक के सापेक्ष बयान डूबने की अनुमति देने के लिए a
बयान। बड़ी संख्या के परिणामस्वरूप अधिक आक्रामक बयान डूब जाता है। NS
डिफ़ॉल्ट मान 75 है। के साथ बयानों के लिए एक छोटा सकारात्मक समायोजन लागू किया जाता है
मेमोरी ऑपरेंड क्योंकि वे और भी अधिक लाभदायक हैं इसलिए सिंक करें।

मैक्स-स्टोर-टू-सिंक
कंडीशनल स्टोर जोड़े की अधिकतम संख्या जो डूब सकती है। 0 पर सेट करें यदि
या तो वैश्वीकरण (-फ़्री-वेक्टराइज़) या अगर-रूपांतरण (-फट्री-लूप-अगर-कन्वर्ट)
अक्षम है। डिफ़ॉल्ट 2 है।

अनुमति-भंडार-डेटा-दौड़
अनुकूलकों को स्टोर पर नई डेटा दौड़ शुरू करने की अनुमति दें। अनुमति देने के लिए 1 पर सेट करें,
अन्यथा 0 पर। यह विकल्प डिफ़ॉल्ट रूप से अनुकूलन स्तर पर सक्षम है -ओफ़ास्ट.

केस-मान-दहलीज
विभिन्न मूल्यों की सबसे छोटी संख्या जिसके लिए जम्प-टेबल का उपयोग करना सबसे अच्छा है
सशर्त शाखाओं के पेड़ के बजाय। यदि मान 0 है, तो के लिए डिफ़ॉल्ट का उपयोग करें
मशीन। डिफ़ॉल्ट 0 है।

वृक्ष-पुनःसोक-चौड़ाई
पुन: संबद्ध पेड़ में समानांतर में निष्पादित निर्देशों की अधिकतम संख्या निर्धारित करें।
यह पैरामीटर डिफ़ॉल्ट रूप से उपयोग किए जाने वाले लक्ष्य निर्भर अनुमानों को ओवरराइड करता है यदि गैर है
शून्य मान।

शेड्यूल-प्रेशर-एल्गोरिदम
के दो उपलब्ध कार्यान्वयनों में से चुनें -fsched-दबाव. एल्गोरिथम 1
मूल कार्यान्वयन है और इससे निर्देशों को रोकने की अधिक संभावना है
पुन: व्यवस्थित किया जा रहा है। एल्गोरिथम 2 को के बीच एक समझौता करने के लिए डिज़ाइन किया गया था
एल्गोरिथम 1 द्वारा लिया गया अपेक्षाकृत रूढ़िवादी दृष्टिकोण और बल्कि आक्रामक
डिफ़ॉल्ट अनुसूचक द्वारा लिया गया दृष्टिकोण। यह a . होने पर अधिक निर्भर करता है
नियमित रजिस्टर फ़ाइल और सटीक रजिस्टर दबाव वर्ग। देखो हाइफ़ा-sched.c
अधिक जानकारी के लिए जीसीसी स्रोतों में।

डिफ़ॉल्ट विकल्प लक्ष्य पर निर्भर करता है।

मैक्स-एसएलएसआर-कैंड-स्कैन
मौजूदा उम्मीदवारों की अधिकतम संख्या निर्धारित करें जिन पर विचार करते समय विचार किया जाता है a
एक नई सीधी रेखा शक्ति में कमी उम्मीदवार के लिए आधार।

आसन-वैश्विक
वैश्विक वस्तुओं के लिए बफर अतिप्रवाह पहचान सक्षम करें। इस प्रकार है सुरक्षा
यदि आप उपयोग कर रहे हैं तो डिफ़ॉल्ट रूप से सक्षम -फसैनिटाइज=पता विकल्प। वैश्विक अक्षम करने के लिए
वस्तुओं की सुरक्षा का उपयोग --परम आसन-वैश्विक = 0.

आसन का ढेर
स्टैक ऑब्जेक्ट्स के लिए बफर ओवरफ्लो डिटेक्शन सक्षम करें। इस प्रकार है सुरक्षा
उपयोग करते समय डिफ़ॉल्ट रूप से सक्षम-फसैनिटाइज=पता. स्टैक सुरक्षा उपयोग को अक्षम करने के लिए
--परम आसन-स्टैक = 0 विकल्प.

आसन-साधन-पढ़ता है
मेमोरी रीड के लिए बफर ओवरफ्लो डिटेक्शन सक्षम करें। इस प्रकार है सुरक्षा
उपयोग करते समय डिफ़ॉल्ट रूप से सक्षम -फसैनिटाइज=पता. मेमोरी को अक्षम करने के लिए पढ़ता है
सुरक्षा उपयोग --परम आसन-साधन-पढ़ता है = 0.

आसन-यंत्र-लिखता है
मेमोरी राइट के लिए बफर ओवरफ्लो डिटेक्शन सक्षम करें। इस प्रकार है सुरक्षा
उपयोग करते समय डिफ़ॉल्ट रूप से सक्षम -फसैनिटाइज=पता. मेमोरी राइट्स को डिसेबल करने के लिए
सुरक्षा उपयोग --परम आसन-यंत्र-लिखता है=0 विकल्प.

आसन-मेमिनट्रिन
अंतर्निहित कार्यों के लिए पहचान सक्षम करें। इस प्रकार की सुरक्षा किसके द्वारा सक्षम की जाती है
उपयोग करते समय डिफ़ॉल्ट -फसैनिटाइज=पता. अंतर्निहित कार्यों की सुरक्षा को अक्षम करने के लिए
उपयोग --परम आसन-मेमिनट्रिन = 0.

आसन-उपयोग-बाद-वापसी
उपयोग-बाद-वापसी का पता लगाना सक्षम करें। इस प्रकार की सुरक्षा किसके द्वारा सक्षम की जाती है
उपयोग करते समय डिफ़ॉल्ट -फसैनिटाइज=पता विकल्प। उपयोग-बाद-वापसी को अक्षम करने के लिए
पता लगाने का उपयोग --परम आसन-उपयोग-बाद-वापसी = 0.

आसन-उपकरण-के-साथ-कॉल-दहलीज
यदि इंस्ट्रुमेंट किए जा रहे फंक्शन में मेमोरी एक्सेस की संख्या अधिक या बराबर है
इस नंबर पर, इनलाइन चेक के बजाय कॉलबैक का उपयोग करें। उदाहरण के लिए इनलाइन कोड अक्षम करने के लिए
उपयोग --परम आसन-उपकरण-साथ-कॉल-दहलीज = 0.

chkp-अधिकतम-ctor-आकार
पॉइंटर बाउंड चेकर द्वारा उत्पन्न स्टेटिक कंस्ट्रक्टर बहुत बड़े हो सकते हैं और
अनुकूलन स्तर पर संकलन समय में उल्लेखनीय वृद्धि -ओ३ और उच्चा। इस
पैरामीटर एकल जेनरेट किए गए कंस्ट्रक्टर में बयानों की अधिकतम संख्या है।
डिफ़ॉल्ट मान 5000 है।

अधिकतम-fsm-धागा-पथ-insns
एक सीमित अवस्था में ब्लॉक की नकल करते समय कॉपी करने के लिए निर्देशों की अधिकतम संख्या
ऑटोमेटन जंप थ्रेड पथ। डिफ़ॉल्ट 100 है।

अधिकतम-fsm-धागा-लंबाई
एक सीमित राज्य automaton कूद धागा पथ पर मूल ब्लॉक की अधिकतम संख्या। NS
डिफ़ॉल्ट 10 है।

अधिकतम-fsm-धागा-पथ
परिमित अवस्था ऑटोमेटन के लिए बनाने के लिए नए जम्प थ्रेड पथों की अधिकतम संख्या।
डिफ़ॉल्ट 50 है।

ऑप्शंस नियंत्रित करना la प्रीप्रोसेसर
ये विकल्प सी प्रीप्रोसेसर को नियंत्रित करते हैं, जो वास्तविक से पहले प्रत्येक सी स्रोत फ़ाइल पर चलाया जाता है
संकलन।

यदि आप उपयोग करते हैं -E विकल्प, प्रीप्रोसेसिंग के अलावा कुछ भी नहीं किया जाता है। इनमें से कुछ विकल्प
केवल एक साथ समझ में -E क्योंकि वे प्रीप्रोसेसर आउटपुट का कारण बनते हैं
वास्तविक संकलन के लिए अनुपयुक्त।

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

-एक्सप्रीप्रोसेसर विकल्प
पास विकल्प प्रीप्रोसेसर के विकल्प के रूप में। आप इसका उपयोग सिस्टम की आपूर्ति के लिए कर सकते हैं-
विशिष्ट प्रीप्रोसेसर विकल्प जिन्हें जीसीसी नहीं पहचानता है।

यदि आप एक विकल्प पारित करना चाहते हैं जो तर्क लेता है, तो आपको इसका उपयोग करना चाहिए -एक्सप्रीप्रोसेसर
दो बार, एक बार विकल्प के लिए और एक बार तर्क के लिए।

-नहीं-एकीकृत-सीपीपी
संकलन से पहले एक अलग पास के रूप में प्रीप्रोसेसिंग करें। डिफ़ॉल्ट रूप से, GCC प्रदर्शन करता है
इनपुट टोकनाइजेशन और पार्सिंग के एक एकीकृत हिस्से के रूप में प्रीप्रोसेसिंग। यदि यह विकल्प
प्रदान किया गया है, उपयुक्त भाषा फ्रंट एंड (cc1, सीसी1प्लसया, cc1obj सी, सी ++ के लिए,
और ऑब्जेक्टिव-सी, क्रमशः) को इसके बजाय दो बार लागू किया जाता है, एक बार केवल प्रीप्रोसेसिंग के लिए
और एक बार प्रीप्रोसेस्ड इनपुट के वास्तविक संकलन के लिए। यह विकल्प उपयोगी हो सकता है
के साथ संयोजन के रूप में -B or -आवरण वैकल्पिक प्रीप्रोसेसर निर्दिष्ट करने के लिए विकल्प या
सामान्य प्रीप्रोसेसिंग और के बीच प्रोग्राम स्रोत का अतिरिक्त प्रसंस्करण करें
संकलन।

-D नाम
पूर्वपरिभाषित नाम एक मैक्रो के रूप में, परिभाषा के साथ 1.

-D नाम=परिभाषा
की सामग्री परिभाषा टोकनयुक्त और संसाधित किए जाते हैं जैसे कि वे इस दौरान प्रकट हुए हों
अनुवाद चरण तीन a . में #define निर्देश। विशेष रूप से, परिभाषा होगी
एम्बेडेड न्यूलाइन वर्णों द्वारा छोटा कर दिया गया।

यदि आप किसी शेल या शेल जैसे प्रोग्राम से प्रीप्रोसेसर का आह्वान कर रहे हैं जिसकी आपको आवश्यकता हो सकती है
रिक्त स्थान जैसे वर्णों की सुरक्षा के लिए शेल के उद्धरण सिंटैक्स का उपयोग करने के लिए a
शेल सिंटैक्स में अर्थ।

यदि आप कमांड लाइन पर फ़ंक्शन-जैसे मैक्रो को परिभाषित करना चाहते हैं, तो उसका तर्क लिखें
समान चिह्न (यदि कोई हो) से पहले आसपास के कोष्ठकों के साथ सूची बनाएं। कोष्ठक हैं
अधिकांश गोले के लिए सार्थक, इसलिए आपको विकल्प को उद्धृत करने की आवश्यकता होगी। साथ में sh और csh,
-डी'नाम(तर्क...)=परिभाषा' काम करता है।

-D और -U कमांड लाइन पर दिए गए क्रम में विकल्पों को संसाधित किया जाता है। सभी
-इमैक्रोस पट्टिका और -शामिल पट्टिका विकल्प सभी के बाद संसाधित होते हैं -D और -U विकल्प.

-U नाम
की कोई पिछली परिभाषा रद्द करें नाम, या तो निर्मित या प्रदान किया गया a -D विकल्प.

-अनडेफ
किसी सिस्टम-विशिष्ट या GCC-विशिष्ट मैक्रोज़ को पूर्वनिर्धारित न करें। मानक पूर्वनिर्धारित
मैक्रो परिभाषित रहते हैं।

-I दीर
निर्देशिका जोड़ें दीर शीर्षलेख फ़ाइलों के लिए खोजी जाने वाली निर्देशिकाओं की सूची में।
द्वारा नामित निर्देशिकाएँ -I मानक प्रणाली में निर्देशिकाओं को शामिल करने से पहले खोजे जाते हैं।
यदि निर्देशिका दीर एक मानक प्रणाली है जिसमें निर्देशिका शामिल है, विकल्प पर ध्यान नहीं दिया जाता है
सुनिश्चित करें कि सिस्टम निर्देशिकाओं और विशेष उपचार के लिए डिफ़ॉल्ट खोज आदेश
सिस्टम हेडर की हार नहीं होती है। अगर दीर "=" से शुरू होता है, फिर "=" होगा
sysroot उपसर्ग द्वारा प्रतिस्थापित; देख --सिसरूट और -इसिसरूट.

-o पट्टिका
को आउटपुट लिखें पट्टिका. यह निर्दिष्ट करने जैसा ही है पट्टिका दूसरे गैर-विकल्प के रूप में
करने के लिए तर्क सीपीपी. जीसीसी दूसरे गैर-विकल्प तर्क की एक अलग व्याख्या है,
तो आपको उपयोग करना चाहिए -o आउटपुट फ़ाइल निर्दिष्ट करने के लिए।

-दीवार
सभी वैकल्पिक चेतावनियों को चालू करता है जो सामान्य कोड के लिए वांछनीय हैं। वर्तमान में यह
is -कमेन्ट करें, -वट्रिग्राफ, -वमल्टीचार और पूर्णांक प्रचार के बारे में एक चेतावनी जिसके कारण a
"#if" भावों में चिन्ह का परिवर्तन। ध्यान दें कि प्रीप्रोसेसर की कई चेतावनियां
डिफ़ॉल्ट रूप से चालू हैं और उन्हें नियंत्रित करने के लिए उनके पास कोई विकल्प नहीं है।

-कमेन्ट करें
-टिप्पणियां
जब भी कोई टिप्पणी-प्रारंभ अनुक्रम चेतावनी दें /* में प्रकट होता है /* टिप्पणी करें, या जब भी
बैकस्लैश-न्यूलाइन a . में प्रकट होता है // टिप्पणी। (दोनों रूपों का प्रभाव समान है।)

-वट्रिग्राफ
टिप्पणियों में अधिकांश ट्रिग्राफ कार्यक्रम के अर्थ को प्रभावित नहीं कर सकते। हालांकि, एक
ट्रिग्राफ जो एक बची हुई नई लाइन बनाएगा (??/ एक पंक्ति के अंत में) द्वारा . कर सकते हैं
जहां टिप्पणी शुरू होती है या समाप्त होती है उसे बदलना। इसलिए, केवल ट्रिग्राफ जो बनेंगे
बची हुई न्यूलाइन एक टिप्पणी के अंदर चेतावनियाँ उत्पन्न करती हैं।

यह विकल्प द्वारा निहित है -दीवार. अगर -दीवार नहीं दिया गया है, यह विकल्प अभी भी सक्षम है
जब तक कि ट्रिग्राफ सक्षम न हों। चेतावनियों के बिना ट्रिग्राफ रूपांतरण प्राप्त करने के लिए, लेकिन प्राप्त करें
अन्य -दीवार चेतावनियाँ, उपयोग -ट्रिग्राफ -दीवार -नो-ट्रिग्राफ.

-पारंपरिक
पारंपरिक और आईएसओ सी में अलग व्यवहार करने वाले कुछ निर्माणों के बारे में चेतावनी दें। इसके अलावा
आईएसओ सी निर्माणों के बारे में चेतावनी दें जिनमें कोई पारंपरिक सी समकक्ष नहीं है, और समस्याग्रस्त है
निर्माण से बचना चाहिए।

-वुंडेफ
चेतावनी दें कि जब भी कोई पहचानकर्ता जो मैक्रो नहीं है, का सामना किसी में होता है #अगर निर्देश
के बाहर परिभाषित. ऐसे पहचानकर्ताओं को शून्य से बदल दिया जाता है।

-वुनयूज्ड-मैक्रोज़
अप्रयुक्त मुख्य फ़ाइल में परिभाषित मैक्रोज़ के बारे में चेतावनी दें। एक मैक्रो है प्रयुक्त अगर यह होता है
कम से कम एक बार अस्तित्व के लिए विस्तारित या परीक्षण किया गया। प्रीप्रोसेसर भी चेतावनी देगा अगर
मैक्रो का उपयोग उस समय नहीं किया गया है जब इसे फिर से परिभाषित या अपरिभाषित किया गया हो।

अंतर्निहित मैक्रोज़, कमांड लाइन पर परिभाषित मैक्रोज़ और इसमें परिभाषित मैक्रोज़ शामिल हैं
फाइलों के बारे में चेतावनी नहीं दी जाती है।

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

#अगर परिभाषित किया गया the_macro_causing_the_warning
#endif

-वेंडिफ-लेबल
जब भी चेतावनी दें #else या एक #endif पाठ द्वारा पीछा किया जाता है। यह आमतौर पर में होता है
फॉर्म का कोड

#अगर खाना
...
#और खाना
...
#endif फ़ू

दूसरा और तीसरा "एफओओ" टिप्पणियों में होना चाहिए, लेकिन अक्सर पुराने कार्यक्रमों में नहीं होते हैं।
यह चेतावनी डिफ़ॉल्ट रूप से चालू है।

-आतंक
सभी चेतावनियों को कठिन त्रुटियों में बदलें। चेतावनियों को ट्रिगर करने वाला स्रोत कोड होगा
अस्वीकृत।

-डब्ल्यूसिस्टम-हेडर
सिस्टम हेडर में कोड के लिए चेतावनी जारी करें। ये आमतौर पर खोजने में अनुपयोगी होते हैं
आपके अपने कोड में बग, इसलिए दबा दिया गया। यदि आप सिस्टम के लिए जिम्मेदार हैं
पुस्तकालय, आप उन्हें देखना चाह सकते हैं।

-w GNU CPP द्वारा डिफ़ॉल्ट रूप से जारी की जाने वाली चेतावनियों सहित सभी चेतावनियों को रोकें।

पांडित्य
सी मानक में सूचीबद्ध सभी अनिवार्य निदान जारी करें। उनमें से कुछ बचे हैं
डिफ़ॉल्ट रूप से, क्योंकि वे हानिरहित कोड पर अक्सर ट्रिगर होते हैं।

-पांडित्य-त्रुटियों
सभी अनिवार्य निदान जारी करें, और सभी अनिवार्य निदानों को त्रुटियों में बदलें।
इसमें अनिवार्य निदान शामिल हैं जिन्हें जीसीसी बिना जारी करता है पांडित्य लेकिन व्यवहार करता है
चेतावनियाँ।

-M प्रीप्रोसेसिंग के परिणाम को आउटपुट करने के बजाय, उपयुक्त नियम आउटपुट करें बनाना
मुख्य स्रोत फ़ाइल की निर्भरता का वर्णन करना। प्रीप्रोसेसर एक आउटपुट करता है
बनाना उस स्रोत फ़ाइल, एक कोलन, और नामों के लिए ऑब्जेक्ट फ़ाइल नाम युक्त नियम
सभी शामिल फाइलों में से, जिनमें से आने वाली फाइलें भी शामिल हैं -शामिल or -इमैक्रोस कमान
लाइन विकल्प।

जब तक स्पष्ट रूप से निर्दिष्ट न हो (साथ -एमटी or -एमक्यू), ऑब्जेक्ट फ़ाइल नाम में शामिल हैं
किसी भी प्रत्यय के साथ स्रोत फ़ाइल का नाम ऑब्जेक्ट फ़ाइल प्रत्यय के साथ और किसी के साथ प्रतिस्थापित किया गया
प्रमुख निर्देशिका भागों को हटा दिया गया। यदि कई शामिल फ़ाइलें हैं तो नियम है
का उपयोग करके कई पंक्तियों में विभाजित करें \-नई पंक्ति। नियम में कोई आदेश नहीं है।

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

पासिंग -M चालक का तात्पर्य है -E, और एक निहित के साथ चेतावनियों को दबा देता है -w.

-एमएम पसंद -M लेकिन हेडर फाइलों का उल्लेख न करें जो सिस्टम हेडर निर्देशिकाओं में पाए जाते हैं,
न ही ऐसे हेडर से सीधे या परोक्ष रूप से शामिल हेडर फाइलें।

इसका तात्पर्य यह है कि कोण कोष्ठक या दोहरे उद्धरण चिह्नों की पसंद a # शामिल
निर्देश अपने आप में यह निर्धारित नहीं करता है कि वह शीर्षलेख अंदर दिखाई देगा या नहीं -एमएम
निर्भरता आउटपुट। यह GCC संस्करण 3.0 और से शब्दार्थ में थोड़ा सा परिवर्तन है
इससे पहले।

-एमएफ पट्टिका
जब used के साथ प्रयोग किया जाता है -M or -एमएम, निर्भरताओं को लिखने के लिए एक फ़ाइल निर्दिष्ट करता है। अगर नहीं -एमएफ
स्विच दिया जाता है प्रीप्रोसेसर नियमों को उसी स्थान पर भेजता है जहां उसने भेजा होगा
प्रीप्रोसेस्ड आउटपुट।

जब ड्राइवर विकल्पों के साथ प्रयोग किया जाता है -एमडी or -एमएमडी, -एमएफ डिफ़ॉल्ट निर्भरता को ओवरराइड करता है
निर्गम संचिका।

-एमजी जैसे विकल्प के साथ संयोजन में -M निर्भरता पीढ़ी का अनुरोध, -एमजी मान लिया गया है
लापता हेडर फाइलें जेनरेट की गई फाइलें हैं और उन्हें बिना निर्भरता सूची में जोड़ देती हैं
एक त्रुटि उठा रहा है। निर्भरता फ़ाइल नाम सीधे "# शामिल" से लिया जाता है
कोई रास्ता तैयार किए बिना निर्देश। -एमजी प्रीप्रोसेस्ड आउटपुट को भी दबा देता है, जैसे a
अनुपलब्ध हेडर फ़ाइल इसे बेकार कर देती है।

इस सुविधा का उपयोग मेकफ़ाइल्स के स्वचालित अद्यतन में किया जाता है।

-एमपी यह विकल्प सीपीपी को निर्देश देता है कि के अलावा प्रत्येक निर्भरता के लिए एक नकली लक्ष्य जोड़ें
मुख्य फ़ाइल, जिसके कारण प्रत्येक कुछ भी नहीं पर निर्भर करता है। ये डमी नियम त्रुटियों के आसपास काम करते हैं
बनाना देता है अगर आप बिना अपडेट किए हेडर फाइल हटाते हैं makefile मैच के लिए।

यह विशिष्ट आउटपुट है:

test.o: test.c test.h

टेस्ट.एच:

-एमटी लक्ष्य
निर्भरता पीढ़ी द्वारा उत्सर्जित नियम का लक्ष्य बदलें। डिफ़ॉल्ट रूप से सीपीपी लेता है
मुख्य इनपुट फ़ाइल का नाम, किसी भी निर्देशिका घटक और किसी फ़ाइल प्रत्यय को हटा देता है
जैसे .c, और प्लेटफ़ॉर्म के सामान्य ऑब्जेक्ट प्रत्यय को जोड़ता है। परिणाम लक्ष्य है।

An -एमटी विकल्प लक्ष्य को आपके द्वारा निर्दिष्ट स्ट्रिंग के रूप में सेट करेगा। अगर आप चाहते हैं
एकाधिक लक्ष्य, आप उन्हें एक तर्क के रूप में निर्दिष्ट कर सकते हैं -एमटी, या एकाधिक का उपयोग करें
-एमटी विकल्प.

उदाहरण के लिए, -एमटी '$(objpfx)foo.o' दे सकता है

$(objpfx)foo.o: foo.c

-एमक्यू लक्ष्य
के समान -एमटी, लेकिन यह किसी भी पात्र को उद्धृत करता है जो मेक के लिए विशेष है।
-एमक्यू '$(objpfx)foo.o' देता है

$$(objpfx)foo.o: foo.c

डिफ़ॉल्ट लक्ष्य स्वचालित रूप से उद्धृत किया जाता है, जैसे कि इसके साथ दिया गया हो -एमक्यू.

-एमडी -एमडी के बराबर है -M -एमएफ पट्टिका, सिवाय इसके कि -E निहित नहीं है। चालक
निर्धारित पट्टिका इस पर आधारित है कि क्या कोई -o विकल्प दिया गया है। यदि ऐसा है, तो चालक इसका उपयोग करता है
तर्क लेकिन के प्रत्यय के साथ .d, अन्यथा यह इनपुट फ़ाइल का नाम लेता है,
किसी भी निर्देशिका घटक और प्रत्यय को हटा देता है, और लागू होता है a .d प्रत्यय।

If -एमडी के साथ संयोजन के रूप में उपयोग किया जाता है -E, कोई -o स्विच निर्दिष्ट करने के लिए समझा जाता है
निर्भरता आउटपुट फ़ाइल, लेकिन अगर बिना उपयोग की जाती है -Eप्रत्येक, -o एक निर्दिष्ट करने के लिए समझा जाता है
लक्ष्य वस्तु फ़ाइल।

जबसे -E निहित नहीं है, -एमडी एक निर्भरता आउटपुट फ़ाइल उत्पन्न करने के लिए इस्तेमाल किया जा सकता है a
संकलन प्रक्रिया का दुष्प्रभाव।

-एमएमडी
पसंद -एमडी केवल उपयोगकर्ता शीर्षलेख फ़ाइलों का उल्लेख करने के अलावा, सिस्टम शीर्षलेख फ़ाइलें नहीं।

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

-एफपीच-प्रीप्रोसेस
यह विकल्प एक साथ पूर्व-संकलित शीर्षलेख के उपयोग की अनुमति देता है -E. यह एक विशेष सम्मिलित करता है
"#pragma", "#pragma GCC pch_preprocess "फ़ाइल का नाम"" आउटपुट में जगह को चिह्नित करने के लिए
जहां प्रीकंपील्ड हेडर मिला था, और उसका फ़ाइल का नाम. जब -फप्रीप्रोसेस्ड में है
उपयोग, GCC इस "#pragma" को पहचानता है और PCH को लोड करता है।

यह विकल्प डिफ़ॉल्ट रूप से बंद है, क्योंकि परिणामी प्रीप्रोसेस्ड आउटपुट केवल है
जीसीसी के इनपुट के रूप में वास्तव में उपयुक्त है। इसके द्वारा चालू किया जाता है -बचाओ-अस्थायी.

आपको यह "#pragma" अपने कोड में नहीं लिखना चाहिए, लेकिन इसे संपादित करना सुरक्षित है
फ़ाइल नाम यदि पीसीएच फ़ाइल किसी भिन्न स्थान पर उपलब्ध है। फ़ाइल का नाम हो सकता है
निरपेक्ष या यह जीसीसी की वर्तमान निर्देशिका के सापेक्ष हो सकता है।

-x c
-x सी ++
-x उद्देश्य सी
-x असेंबलर-साथ-सीपीपी
स्रोत भाषा निर्दिष्ट करें: C, C++, Objective-C, या असेंबली। इसका कोई लेना-देना नहीं है
मानकों के अनुरूप या विस्तार के साथ; यह केवल यह चुनता है कि कौन सा आधार वाक्यविन्यास है
अपेक्षा करना। यदि आप इनमें से कोई भी विकल्प नहीं देते हैं, तो cpp भाषा को से घटाएगा
स्रोत फ़ाइल का विस्तार: .c, . सीसी, .mया, .S. के लिए कुछ अन्य सामान्य एक्सटेंशन
सी ++ और असेंबली भी मान्यता प्राप्त हैं। यदि cpp एक्सटेंशन को नहीं पहचानता है, तो यह
फ़ाइल को सी के रूप में मानेंगे; यह सबसे सामान्य विधा है।

नोट: cpp के पिछले संस्करणों को स्वीकार किया गया a -लंग विकल्प जिसने दोनों को चुना
भाषा और मानक अनुरूपता स्तर। यह विकल्प हटा दिया गया है, क्योंकि
यह के साथ संघर्ष करता है -l विकल्प.

-एसटीडी=मानक
-अनसी
उस मानक को निर्दिष्ट करें जिसके अनुरूप कोड होना चाहिए। वर्तमान में CPP C . के बारे में जानता है
और सी++ मानक; दूसरों को भविष्य में जोड़ा जा सकता है।

मानक इनमें से एक हो सकता है:

"सी90"
"सी89"
"आईएसओ9899:1990"
1990 से आईएसओ सी मानक। c90 के इस संस्करण के लिए प्रथागत आशुलिपि है
मानक।

RSI -अनसी विकल्प के बराबर है -एसटीडी = सी 90.

"आईएसओ9899:199409"
1990 सी मानक, 1994 में संशोधित।

"आईएसओ9899:1999"
"सी99"
"आईएसओ9899:199x"
"सी9एक्स"
संशोधित आईएसओ सी मानक, दिसंबर 1999 में प्रकाशित हुआ। प्रकाशन से पहले, यह
C9X के नाम से जाना जाता था।

"आईएसओ9899:2011"
"सी11"
"सी1एक्स"
संशोधित आईएसओ सी मानक, दिसंबर 2011 में प्रकाशित हुआ। प्रकाशन से पहले, यह
C1X के नाम से जाना जाता था।

"gnu90"
"gnu89"
1990 सी मानक प्लस जीएनयू एक्सटेंशन। यह डिफ़ॉल्ट है।

"gnu99"
"gnu9x"
1999 सी मानक प्लस जीएनयू एक्सटेंशन।

"gnu11"
"gnu1x"
2011 सी मानक प्लस जीएनयू एक्सटेंशन।

"सी++98"
1998 ISO C++ मानक प्लस संशोधन।

"ग्नू++98"
बराबर -एसटीडी=सी++98 प्लस जीएनयू एक्सटेंशन। यह C++ कोड के लिए डिफ़ॉल्ट है।

-मैं- शामिल पथ को विभाजित करें। के साथ निर्दिष्ट कोई निर्देशिका -I पहले विकल्प -मैं- रहे
केवल "#include" के साथ अनुरोधित हेडर के लिए खोजा गयाफ़ाइल""; उनकी तलाश नहीं की जाती है
"#शामिलफ़ाइल>". यदि अतिरिक्त निर्देशिकाओं के साथ निर्दिष्ट किया गया है -I के बाद विकल्प
-मैं-, उन निर्देशिकाओं को सभी के लिए खोजा जाता है # शामिल दिशा निर्देशों।

इसके अलावा, -मैं- वर्तमान फ़ाइल निर्देशिका की निर्देशिका के उपयोग को रोकता है:
"#include" के लिए पहली खोज निर्देशिकाफ़ाइल"". यह विकल्प बहिष्कृत कर दिया गया है।

-नोस्टडिंक
हेडर फाइलों के लिए मानक सिस्टम निर्देशिकाओं की खोज न करें। केवल निर्देशिका
आपने के साथ निर्दिष्ट किया है -I विकल्प (और वर्तमान फ़ाइल की निर्देशिका, if
उपयुक्त) खोजे जाते हैं।

-नोस्टडिंक++
C++ - विशिष्ट मानक निर्देशिकाओं में शीर्षलेख फ़ाइलों की खोज न करें, लेकिन फिर भी करें
अन्य मानक निर्देशिका खोजें। (इस विकल्प का उपयोग C++ . का निर्माण करते समय किया जाता है
पुस्तकालय।)

-शामिल पट्टिका
प्रक्रिया पट्टिका जैसे कि "#include "file"" प्राथमिक स्रोत की पहली पंक्ति के रूप में दिखाई दिया
फ़ाइल। हालाँकि, पहली निर्देशिका की खोज की गई पट्टिका प्रीप्रोसेसर काम कर रहा है
डायरेक्टरी बजाय of मुख्य स्रोत फ़ाइल वाली निर्देशिका। नहीं मिला तो
वहां, इसे "#include "..."" खोज श्रृंखला के शेष भाग में खोजा जाता है जैसे
सामान्य.

अगर कई -शामिल विकल्प दिए गए हैं, फाइलों को उनके क्रम में शामिल किया गया है
कमांड लाइन पर दिखाई दें।

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

द्वारा निर्दिष्ट सभी फ़ाइलें -इमैक्रोस द्वारा निर्दिष्ट सभी फाइलों से पहले संसाधित होते हैं -शामिल.

-इदिराफ्टर दीर
Search दीर हेडर फाइलों के लिए, लेकिन इसे करें बाद के साथ निर्दिष्ट सभी निर्देशिकाएं -I और
मानक सिस्टम निर्देशिका समाप्त हो गई हैं। दीर एक प्रणाली के रूप में माना जाता है
निर्देशिका। अगर दीर "=" से शुरू होता है, फिर "=" को sysroot द्वारा बदल दिया जाएगा
उपसर्ग; देख --सिसरूट और -इसिसरूट.

-आईप्रीफिक्स उपसर्ग
निर्दिष्ट करें उपसर्ग बाद के उपसर्ग के रूप में -iwithउपसर्ग विकल्प। यदि उपसर्ग
एक निर्देशिका का प्रतिनिधित्व करता है, आपको अंतिम शामिल करना चाहिए /.

-iwithउपसर्ग दीर
-iसाथउपसर्गपहले दीर
जोड़ना दीर पहले से निर्दिष्ट उपसर्ग के साथ -आईप्रीफिक्स, और परिणामी जोड़ें
खोज पथ शामिल करने के लिए निर्देशिका। -iसाथउपसर्गपहले इसे उसी स्थान पर रखता है -I
चाहेंगे; -iwithउपसर्ग इसे कहाँ रखता है -इदिराफ्टर होगा।

-इसिसरूट दीर
यह विकल्प इस प्रकार है --सिसरूट विकल्प, लेकिन केवल हेडर फाइलों पर लागू होता है (को छोड़कर)
डार्विन लक्ष्य, जहां यह हेडर फाइलों और पुस्तकालयों दोनों पर लागू होता है)। देखें
--सिसरूट अधिक जानकारी के लिए विकल्प।

-इमल्टीलिब दीर
उपयोग दीर लक्ष्य-विशिष्ट C++ शीर्षलेख वाली निर्देशिका की उपनिर्देशिका के रूप में।

-सिस्टम दीर
Search दीर हेडर फाइलों के लिए, द्वारा निर्दिष्ट सभी निर्देशिकाओं के बाद -I लेकिन इससे पहले
मानक प्रणाली निर्देशिका। इसे सिस्टम निर्देशिका के रूप में चिह्नित करें, ताकि यह समान हो जाए
विशेष उपचार जैसा कि मानक सिस्टम निर्देशिकाओं पर लागू होता है। अगर दीर शुरू करना
"=" के साथ, फिर "=" को sysroot उपसर्ग से बदल दिया जाएगा; देख --सिसरूट और
-इसिसरूट.

-मैं उद्धृत करता हूं दीर
Search दीर केवल "#include" के साथ अनुरोधित शीर्षलेख फ़ाइलों के लिएफ़ाइल""; वो नहीं हैं
"#शामिल" के लिए खोजाफ़ाइल>", द्वारा निर्दिष्ट सभी निर्देशिकाओं से पहले -I और पहले
मानक प्रणाली निर्देशिका। अगर दीर "=" से शुरू होता है, फिर "=" को से बदल दिया जाएगा
सिसरूट उपसर्ग; देख --सिसरूट और -इसिसरूट.

-fdirective-only
प्रीप्रोसेसिंग करते समय, निर्देशों को संभालें, लेकिन मैक्रोज़ का विस्तार न करें।

विकल्प का व्यवहार इस पर निर्भर करता है: -E और -फप्रीप्रोसेस्ड विकल्प.

- -E, प्रीप्रोसेसिंग "#define" जैसे निर्देशों को संभालने तक सीमित है,
"#ifdef", और "#error"। अन्य प्रीप्रोसेसर संचालन, जैसे मैक्रो विस्तार और
ट्रिग्राफ रूपांतरण नहीं किया जाता है। इसके साथ में -डीडी विकल्प परोक्ष है
सक्षम होना चाहिए।

- -फप्रीप्रोसेस्ड, कमांड लाइन और अधिकांश बिल्टिन मैक्रोज़ की पूर्व परिभाषा है
अक्षम। मैक्रोज़ जैसे "__LINE__", जो प्रासंगिक रूप से निर्भर हैं, को संभाला जाता है
सामान्य रूप से। यह "-E ." के साथ पूर्व-संसाधित फ़ाइलों के संकलन को सक्षम बनाता है
-निर्देश-केवल"।

दोनोंके साथ -E और -फप्रीप्रोसेस्डके लिए नियम -फप्रीप्रोसेस्ड पूर्वता ले। इस
"-E ." के साथ पूर्व-संसाधित फ़ाइलों के पूर्ण प्रीप्रोसेसिंग को सक्षम करता है
-निर्देश-केवल"।

- डॉलर-में-पहचानकर्ता
स्वीकार करें $ पहचानकर्ताओं में।

-फेक्टेड-पहचानकर्ता
पहचानकर्ताओं में सार्वभौमिक चरित्र नाम स्वीकार करें। यह विकल्प डिफॉल्ट द्वारा सक्षम हो जाता है
C99 (और बाद में C मानक संस्करण) और C++ के लिए।

-फनो-कैनोनिकल-सिस्टम-हेडर
प्रीप्रोसेसिंग करते समय, कैनोनिकलाइज़ेशन के साथ सिस्टम हेडर पथ को छोटा न करें।

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

-फप्रीप्रोसेस्ड निहित है यदि इनपुट फ़ाइल में एक्सटेंशन में से एक है .i, ii or .एमआई.
ये वे एक्सटेंशन हैं जिनका उपयोग GCC द्वारा बनाई गई प्रीप्रोसेस्ड फ़ाइलों के लिए करता है -बचाओ-अस्थायी.

-फटबस्टॉप=चौडाई
टैब स्टॉप के बीच की दूरी सेट करें। यह प्रीप्रोसेसर रिपोर्ट को सही कॉलम में मदद करता है
चेतावनियों या त्रुटियों में नंबर, भले ही टैब लाइन पर दिखाई दें। यदि मान कम है
1 से अधिक या 100 से अधिक, विकल्प पर ध्यान नहीं दिया जाता है। डिफ़ॉल्ट 8 है।

-एफडीबग-सीपीपी
यह विकल्प केवल GCC डीबग करने के लिए उपयोगी है। जब के साथ प्रयोग किया जाता है -E, डिबगिंग डंप करता है
स्थान के नक्शे के बारे में जानकारी। आउटपुट में प्रत्येक टोकन के डंप से पहले होता है
वह मानचित्र जिससे उसका स्थान संबंधित है। एक टोकन के स्थान को धारण करने वाले मानचित्र का डंप
होने वाला:

{"पी": एफ ;"एफ":एफ ; "एल": ;"सी": ;"एस": ;"एम": ;"इ": , "लोक": }

बिना उपयोग किए जाने पर -E, इस विकल्प का कोई प्रभाव नहीं है।

-फ्रैक-मैक्रो-विस्तार[=स्तर]
मैक्रो विस्तार में टोकन के स्थानों को ट्रैक करें। यह संकलक को उत्सर्जित करने की अनुमति देता है
वर्तमान मैक्रो विस्तार स्टैक के बारे में निदान जब एक संकलन त्रुटि होती है
एक मैक्रो विस्तार। इस विकल्प का उपयोग करने से प्रीप्रोसेसर और कंपाइलर उपभोग करते हैं
अधिक स्मृति। NS स्तर टोकन की सटीकता के स्तर को चुनने के लिए पैरामीटर का उपयोग किया जा सकता है
स्थान ट्रैकिंग इस प्रकार यदि आवश्यक हो तो स्मृति खपत को कम करती है। मूल्य 0 of
स्तर इस विकल्प को वैसे ही निष्क्रिय कर देता है जैसे कि नहीं -फ्रैक-मैक्रो-विस्तार पर मौजूद था
कमांड लाइन। मूल्य 1 के लिए एक अवक्रमित मोड में टोकन स्थानों को ट्रैक करता है
न्यूनतम मेमोरी ओवरहेड। इस मोड में an . के विस्तार के परिणामस्वरूप सभी टोकन
फ़ंक्शन-जैसे मैक्रो के तर्क का स्थान समान होता है। मूल्य 2 ट्रैक टोकन
स्थान पूरी तरह से। यह मान सबसे अधिक स्मृति भूखा है। जब यह विकल्प दिया जाता है
कोई तर्क नहीं, डिफ़ॉल्ट पैरामीटर मान है 2.

ध्यान दें कि "-ftrack-macro-expansion=2" डिफ़ॉल्ट रूप से सक्रिय होता है।

-फेक्सेक-चारसेट =चारसेट
निष्पादन वर्ण सेट सेट करें, स्ट्रिंग और वर्ण स्थिरांक के लिए उपयोग किया जाता है। डिफ़ॉल्ट
यूटीएफ -8 है। चारसेट सिस्टम की "iconv" लाइब्रेरी द्वारा समर्थित कोई भी एन्कोडिंग हो सकता है
दिनचर्या।

-फवाइड-निष्पादन-चारसेट=चारसेट
विस्तृत स्ट्रिंग और वर्ण स्थिरांक के लिए उपयोग किए जाने वाले विस्तृत निष्पादन वर्ण सेट को सेट करें।
डिफ़ॉल्ट UTF-32 या UTF-16 है, जो भी "wchar_t" की चौड़ाई के अनुरूप हो। जैसा
साथ में -फेक्सेक-चारसेट, चारसेट सिस्टम के "iconv" द्वारा समर्थित कोई भी एन्कोडिंग हो सकता है
पुस्तकालय दिनचर्या; हालांकि, आपको उन एन्कोडिंग के साथ समस्या होगी जो फिट नहीं हैं
बिल्कुल "wchar_t" में।

-फिनपुट-चारसेट =चारसेट
इनपुट कैरेक्टर सेट सेट करें, इनपुट के कैरेक्टर सेट से अनुवाद के लिए उपयोग किया जाता है
जीसीसी द्वारा उपयोग किए जाने वाले स्रोत वर्ण सेट में फ़ाइल। यदि स्थान निर्दिष्ट नहीं करता है, या GCC
यह जानकारी लोकेल से नहीं मिल सकती है, डिफ़ॉल्ट यूटीएफ -8 है। यह हो सकता है
लोकेल या इस कमांड-लाइन विकल्प द्वारा ओवरराइड किया गया। वर्तमान में आदेश-
कोई विरोध होने पर लाइन विकल्प को प्राथमिकता दी जाती है। चारसेट कोई भी एन्कोडिंग हो सकता है
सिस्टम के "iconv" लाइब्रेरी रूटीन द्वारा समर्थित।

-फ़वर्किंग-निर्देशिका
प्रीप्रोसेसर आउटपुट में लाइनमार्कर की पीढ़ी को सक्षम करें जो कंपाइलर को देगा
प्रीप्रोसेसिंग के समय वर्तमान कार्यशील निर्देशिका को जानें। जब यह विकल्प है
सक्षम, प्रीप्रोसेसर प्रारंभिक लाइनमार्कर के बाद, दूसरा लाइनमार्कर उत्सर्जित करेगा
वर्तमान कार्यशील निर्देशिका के साथ दो स्लैश के बाद। जीसीसी इसका उपयोग करेगा
निर्देशिका, जब यह प्रीप्रोसेस्ड इनपुट में मौजूद होती है, तो निर्देशिका के रूप में उत्सर्जित होती है
कुछ डिबगिंग सूचना स्वरूपों में वर्तमान कार्यशील निर्देशिका। यह विकल्प है
डिबगिंग जानकारी सक्षम होने पर निहित रूप से सक्षम है, लेकिन इसे इसके साथ बाधित किया जा सकता है
अस्वीकृत रूप -फनो-वर्किंग-डायरेक्टरी। अगर -P ध्वज कमांड में मौजूद है
लाइन, इस विकल्प का कोई प्रभाव नहीं है, क्योंकि कोई भी "#line" निर्देश उत्सर्जित नहीं होते हैं।

-फनो-शो-कॉलम
डायग्नोस्टिक्स में कॉलम नंबर प्रिंट न करें। यह आवश्यक हो सकता है यदि निदान हैं
एक प्रोग्राम द्वारा स्कैन किया जा रहा है जो कॉलम नंबरों को नहीं समझता है, जैसे कि
देजगनु.

-A विधेय=जवाब
विधेय के साथ एक अभिकथन करें विधेय और उत्तर जवाब. यह फॉर्म है
पुराने रूप को पसंद किया -A विधेय(जवाब), जो अभी भी समर्थित है, क्योंकि यह
शेल विशेष वर्णों का उपयोग नहीं करता है।

-A -विधेय=जवाब
विधेय के साथ एक अभिकथन रद्द करें विधेय और उत्तर जवाब.

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

M सामान्य आउटपुट के बजाय, की एक सूची तैयार करें #define सभी के लिए निर्देश
पूर्वनिर्धारित सहित प्रीप्रोसेसर के निष्पादन के दौरान परिभाषित मैक्रोज़
मैक्रोज़ यह आपको यह पता लगाने का एक तरीका देता है कि आपके संस्करण में पूर्वनिर्धारित क्या है
प्रीप्रोसेसर। मान लें कि आपके पास कोई फ़ाइल नहीं है फू.एच, आदेश

स्पर्श फू.एच; सीपीपी -डीएम foo.h

सभी पूर्वनिर्धारित मैक्रोज़ दिखाएगा।

आप उपयोग करते हैं -डीएम के बिना -E विकल्प, -डीएम के समानार्थी के रूप में व्याख्या की जाती है
-फडंप-आरटीएल-मच.

D पसंद M दो मामलों को छोड़कर: यह करता है नहीं पूर्वनिर्धारित मैक्रोज़ शामिल करें, और यह
outputs के के छात्रों la #define निर्देश और प्रीप्रोसेसिंग का परिणाम। दोनों प्रकार
आउटपुट का मानक आउटपुट फ़ाइल पर जाएं।

N पसंद D, लेकिन केवल मैक्रो नामों का उत्सर्जन करते हैं, उनके विस्तार नहीं।

I उत्पादन # शामिल प्रीप्रोसेसिंग के परिणाम के अलावा निर्देश।

U पसंद D सिवाय इसके कि केवल मैक्रोज़ जो विस्तारित हैं, या जिनकी परिभाषा का परीक्षण किया गया है
प्रीप्रोसेसर निर्देशों में, आउटपुट हैं; उपयोग या . तक आउटपुट में देरी हो रही है
मैक्रो का परीक्षण; तथा # कुंड परीक्षण किए गए मैक्रोज़ के लिए निर्देश भी आउटपुट हैं लेकिन
उस समय अपरिभाषित।

-P प्रीप्रोसेसर से आउटपुट में लाइनमार्कर की पीढ़ी को रोकें। यह हो सकता है
प्रीप्रोसेसर को किसी ऐसी चीज़ पर चलाते समय उपयोगी है जो सी कोड नहीं है, और भेजा जाएगा
एक प्रोग्राम के लिए जो लाइनमार्कर द्वारा भ्रमित किया जा सकता है।

-C टिप्पणियों को न छोड़ें। सभी टिप्पणियों को आउटपुट फ़ाइल के माध्यम से पारित किया जाता है, सिवाय
संसाधित निर्देशों में टिप्पणियों के लिए, जिन्हें निर्देश के साथ हटा दिया जाता है।

उपयोग करते समय आपको दुष्प्रभावों के लिए तैयार रहना चाहिए -C; यह प्रीप्रोसेसर का कारण बनता है
टिप्पणियों को अपने आप में टोकन के रूप में मानें। उदाहरण के लिए, पर प्रदर्शित होने वाली टिप्पणियां
एक निर्देश रेखा क्या होगी की शुरुआत उस रेखा को एक में बदलने का असर है
साधारण स्रोत लाइन, चूंकि लाइन पर पहला टोकन अब नहीं है a #.

-सीसी मैक्रो विस्तार के दौरान सहित टिप्पणियों को न छोड़ें। यह इसके जैसा है -C, के सिवाय
मैक्रोज़ के भीतर निहित टिप्पणियों को भी आउटपुट फ़ाइल के माध्यम से पारित किया जाता है जहां
मैक्रो का विस्तार किया गया है।

के दुष्प्रभावों के अलावा -C विकल्प, -सीसी विकल्प सभी सी ++ - शैली का कारण बनता है
मैक्रो के अंदर टिप्पणियों को सी-स्टाइल टिप्पणियों में परिवर्तित किया जाना है। यह बाद में रोकने के लिए है
स्रोत लाइन के शेष भाग पर अनजाने में टिप्पणी करने से उस मैक्रो का उपयोग।

RSI -सीसी विकल्प आमतौर पर लिंट टिप्पणियों का समर्थन करने के लिए उपयोग किया जाता है।

-पारंपरिक-सीपीपी
आईएसओ सी के विपरीत पुराने जमाने के सी प्रीप्रोसेसरों के व्यवहार की नकल करने की कोशिश करें
प्रीप्रोसेसर।

-ट्रिग्राफ
प्रक्रिया ट्रिग्राफ अनुक्रम। ये तीन-वर्ण अनुक्रम हैं, जो सभी से शुरू होते हैं
??, जो एकल वर्णों के लिए ISO C द्वारा परिभाषित हैं। उदाहरण के लिए, ??/ खड़ा
एसटी \, इतना '??/एन' एक नई पंक्ति के लिए एक चरित्र स्थिरांक है। डिफ़ॉल्ट रूप से, GCC अनदेखा करता है
ट्रिग्राफ, लेकिन मानक-अनुरूप मोड में यह उन्हें परिवर्तित करता है। देखें -एसटीडी और -अनसी
विकल्प.

नौ ट्रिग्राफ और उनके प्रतिस्थापन हैं

ट्रिग्राफ: ??( ??) ??< ??> ??= ??/ ??' ??! ??-
प्रतिस्थापन: [ ] { } # \ ^ | ~

-रेमैप
फ़ाइल सिस्टम के आसपास काम करने के लिए विशेष कोड सक्षम करें जो केवल बहुत छोटी फ़ाइल की अनुमति देता है
एमएस-डॉस जैसे नाम।

--मदद
--लक्ष्य-सहायता
किसी भी चीज़ को प्रीप्रोसेस करने के बजाय सभी कमांड-लाइन विकल्पों का वर्णन करने वाला टेक्स्ट प्रिंट करें।

-v वाचाल प्रकार। निष्पादन की शुरुआत में जीएनयू सीपीपी के संस्करण संख्या का प्रिंट आउट लें, और
शामिल पथ के अंतिम रूप की रिपोर्ट करें।

-H अन्य सामान्य गतिविधियों के अलावा, उपयोग की जाने वाली प्रत्येक हेडर फ़ाइल का नाम प्रिंट करें। प्रत्येक
नाम को यह दिखाने के लिए इंडेंट किया गया है कि में कितना गहरा है # शामिल ढेर है। प्रीकंपील्ड हेडर
फ़ाइलें भी मुद्रित की जाती हैं, भले ही वे अमान्य पाई जाती हैं; एक अमान्य पूर्वसंकलित
हैडर फ़ाइल के साथ मुद्रित है ...एक्स और एक वैध के साथ ...! .

-संस्करण
--संस्करण
जीएनयू सीपीपी के संस्करण संख्या का प्रिंट आउट लें। एक डैश के साथ, सामान्य रूप से प्रीप्रोसेस करने के लिए आगे बढ़ें।
दो डैश के साथ, तुरंत बाहर निकलें।

पासिंग ऑप्शंस सेवा मेरे la कोडांतरक
आप असेंबलर को विकल्प पास कर सकते हैं।

-वा,विकल्प
पास विकल्प असेंबलर के विकल्प के रूप में। अगर विकल्प अल्पविराम होता है, यह विभाजित होता है
अल्पविराम में कई विकल्पों में।

-एक्ससेम्बलर विकल्प
पास विकल्प असेंबलर के विकल्प के रूप में। आप इसका उपयोग सिस्टम-विशिष्ट आपूर्ति करने के लिए कर सकते हैं
असेंबलर विकल्प जिन्हें जीसीसी नहीं पहचानता है।

यदि आप एक विकल्प पारित करना चाहते हैं जो तर्क लेता है, तो आपको इसका उपयोग करना चाहिए -एक्ससेम्बलर दो बार,
एक बार विकल्प के लिए और एक बार तर्क के लिए।

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

वस्तु-फ़ाइल-नाम
एक फ़ाइल नाम जो एक विशेष मान्यता प्राप्त प्रत्यय में समाप्त नहीं होता है, उसे एक नाम माना जाता है
ऑब्जेक्ट फ़ाइल या लाइब्रेरी। (ऑब्जेक्ट फाइलों को लिंकर द्वारा पुस्तकालयों से अलग किया जाता है
फ़ाइल सामग्री के अनुसार।) यदि लिंकिंग की जाती है, तो इन ऑब्जेक्ट फ़ाइलों का उपयोग इस प्रकार किया जाता है
लिंकर के लिए इनपुट।

-c
-S
-E यदि इनमें से किसी भी विकल्प का उपयोग किया जाता है, तो लिंकर नहीं चलता है, और ऑब्जेक्ट फ़ाइल नाम
तर्क के रूप में इस्तेमाल नहीं किया जाना चाहिए।

-फ्यूज-एलडी = बीएफडी
उपयोग BFD डिफ़ॉल्ट लिंकर के बजाय लिंकर।

-फ्यूज-एलडी = सोना
उपयोग सोना डिफ़ॉल्ट लिंकर के बजाय लिंकर।

-lपुस्तकालय
-l पुस्तकालय
नाम की लाइब्रेरी खोजें पुस्तकालय लिंक करते समय। (दूसरा विकल्प के साथ
एक अलग तर्क के रूप में पुस्तकालय केवल पॉज़िक्स अनुपालन के लिए है और इसकी अनुशंसा नहीं की जाती है।)

इससे फर्क पड़ता है कि आप कमांड में यह विकल्प कहां लिखते हैं; लिंकर खोजता है
और पुस्तकालयों और ऑब्जेक्ट फ़ाइलों को उनके निर्दिष्ट क्रम में संसाधित करता है। इस प्रकार, फू.ओ
-lz बार.ओ खोज पुस्तकालय z फ़ाइल के बाद फू.ओ लेकिन इससे पहले बार.ओ. अगर बार.ओ को संदर्भित करता है
में काम करता है z, उन कार्यों को लोड नहीं किया जा सकता है।

लिंकर पुस्तकालय के लिए निर्देशिकाओं की एक मानक सूची खोजता है, जो वास्तव में है
नाम की एक फाइल पुस्तकालय.ए. लिंकर तब इस फ़ाइल का उपयोग करता है जैसे कि इसे निर्दिष्ट किया गया हो
ठीक नाम से।

खोजी गई निर्देशिकाओं में कई मानक सिस्टम निर्देशिकाएं शामिल हैं, साथ ही कोई भी जो आप
के साथ निर्दिष्ट करें -L.

आम तौर पर इस तरह से पाई जाने वाली फाइलें लाइब्रेरी फाइलें होती हैं --- संग्रह फाइलें जिनके सदस्य हैं
वस्तु फ़ाइलें। लिंकर सदस्यों के लिए इसके माध्यम से स्कैन करके एक संग्रह फ़ाइल को संभालता है
जो उन प्रतीकों को परिभाषित करते हैं जिन्हें अब तक संदर्भित किया गया है लेकिन परिभाषित नहीं किया गया है। लेकिन अगर
जो फाइल मिलती है वह एक साधारण ऑब्जेक्ट फाइल होती है, यह सामान्य तरीके से जुड़ी होती है। NS
an . का उपयोग करने के बीच केवल अंतर -l विकल्प और फ़ाइल नाम निर्दिष्ट करना है कि -l
चारों ओर से घेरे पुस्तकालय साथ में lib और .a और कई निर्देशिका खोजता है।

-लोबजेसी
आपको इस विशेष मामले की आवश्यकता है -l एक उद्देश्य-सी को जोड़ने के लिए विकल्प या
उद्देश्य-सी ++ कार्यक्रम।

-नोस्टार्टफाइल्स
लिंक करते समय मानक सिस्टम स्टार्टअप फ़ाइलों का उपयोग न करें। मानक प्रणाली
पुस्तकालयों का सामान्य रूप से उपयोग किया जाता है, जब तक कि -नोस्टडलिब or -नोडिफॉल्टलिब्स प्रयोग किया जाता है।

-नोडिफॉल्टलिब्स
लिंक करते समय मानक सिस्टम लाइब्रेरी का उपयोग न करें। केवल आपके द्वारा निर्दिष्ट पुस्तकालय
लिंकर को पास किया जाता है, और सिस्टम लाइब्रेरी के लिंकेज को निर्दिष्ट करने वाले विकल्प, जैसे
as -स्थैतिक-libgcc or -साझा-libgcc, उपेक्षा की जाती है। मानक स्टार्टअप फ़ाइलों का उपयोग किया जाता है
सामान्य रूप से, जब तक -नोस्टार्टफाइल्स प्रयोग किया जाता है।

संकलक "memcmp", "memset", "memcpy" और "memmove" को कॉल उत्पन्न कर सकता है। इन
प्रविष्टियां आमतौर पर libc में प्रविष्टियों द्वारा हल की जाती हैं। ये प्रवेश बिंदु होने चाहिए
जब यह विकल्प निर्दिष्ट किया जाता है तो किसी अन्य तंत्र के माध्यम से आपूर्ति की जाती है।

-नोस्टडलिब
लिंक करते समय मानक सिस्टम स्टार्टअप फ़ाइलों या पुस्तकालयों का उपयोग न करें। कोई स्टार्टअप नहीं
फ़ाइलें और केवल आपके द्वारा निर्दिष्ट पुस्तकालय लिंकर को पास किए जाते हैं, और विकल्प
सिस्टम लाइब्रेरी के लिंकेज को निर्दिष्ट करना, जैसे कि -स्थैतिक-libgcc or -साझा-libgcc,
नजरअंदाज कर दिया जाता है।

संकलक "memcmp", "memset", "memcpy" और "memmove" को कॉल उत्पन्न कर सकता है। इन
प्रविष्टियां आमतौर पर libc में प्रविष्टियों द्वारा हल की जाती हैं। ये प्रवेश बिंदु होने चाहिए
जब यह विकल्प निर्दिष्ट किया जाता है तो किसी अन्य तंत्र के माध्यम से आपूर्ति की जाती है।

मानक पुस्तकालयों में से एक को बायपास किया गया -नोस्टडलिब और -नोडिफॉल्टलिब्स is libgcc.aतक
आंतरिक सबरूटीन्स का पुस्तकालय जो जीसीसी विशेष की कमियों को दूर करने के लिए उपयोग करता है
मशीनों, या कुछ भाषाओं के लिए विशेष आवश्यकताएँ।

ज्यादातर मामलों में, आपको चाहिए libgcc.a तब भी जब आप अन्य मानक पुस्तकालयों से बचना चाहते हैं।
दूसरे शब्दों में, जब आप निर्दिष्ट करते हैं -नोस्टडलिब or -नोडिफॉल्टलिब्स आपको आमतौर पर
उल्लिखित करना -एलजीसीसी भी। यह सुनिश्चित करता है कि आपके पास कोई अनसुलझे संदर्भ नहीं हैं
आंतरिक जीसीसी पुस्तकालय सबरूटीन। (ऐसे आंतरिक सबरूटीन का एक उदाहरण है
"__main", यह सुनिश्चित करने के लिए उपयोग किया जाता है कि C++ कंस्ट्रक्टर कहलाते हैं।)

-पाई
उन लक्ष्यों पर स्वतंत्र निष्पादन योग्य स्थिति तैयार करें जो इसका समर्थन करते हैं। पूर्वानुमेय के लिए
परिणाम, आपको संकलन के लिए उपयोग किए गए विकल्पों के समान सेट को भी निर्दिष्ट करना होगा (-एफपीआई,
-एफपीआईई, या मॉडल उपविकल्प) जब आप इस लिंकर विकल्प को निर्दिष्ट करते हैं।

-नो-पाई
स्वतंत्र निष्पादन योग्य स्थिति का उत्पादन न करें।

-गतिशील
झंडा पास करो -निर्यात-गतिशील ईएलएफ लिंकर को, उन लक्ष्यों पर जो इसका समर्थन करते हैं। इस
लिंकर को सभी प्रतीकों को जोड़ने का निर्देश देता है, न कि केवल इस्तेमाल किए गए लोगों को, गतिशील प्रतीक में जोड़ने के लिए
टेबल। "dlopen" के कुछ उपयोगों के लिए या प्राप्त करने की अनुमति देने के लिए इस विकल्प की आवश्यकता है
एक कार्यक्रम के भीतर से पीछे की ओर।

-s निष्पादन योग्य से सभी प्रतीक तालिका और स्थानांतरण जानकारी निकालें।

स्थैतिक
डायनामिक लिंकिंग का समर्थन करने वाले सिस्टम पर, यह शेयर्ड के साथ लिंकिंग को रोकता है
पुस्तकालय। अन्य प्रणालियों पर, इस विकल्प का कोई प्रभाव नहीं पड़ता है।

कमरा साझा
एक साझा वस्तु का निर्माण करें जिसे बाद में अन्य वस्तुओं के साथ जोड़ा जा सकता है
निष्पादन योग्य। सभी सिस्टम इस विकल्प का समर्थन नहीं करते हैं। पूर्वानुमेय परिणामों के लिए, आपको अवश्य करना चाहिए
संकलन के लिए उपयोग किए गए विकल्पों के समान सेट को भी निर्दिष्ट करें (-एफपीआईसी, -एफपीआईसी, या मॉडल
उपविकल्प) जब आप इस लिंकर विकल्प को निर्दिष्ट करते हैं। [1]

-साझा-libgcc
-स्थैतिक-libgcc
प्रदान करने वाले सिस्टम पर लिबगसीसी एक साझा पुस्तकालय के रूप में, ये विकल्प के उपयोग को बाध्य करते हैं
या तो साझा या स्थिर संस्करण, क्रमशः। यदि . का कोई साझा संस्करण नहीं है लिबगसीसी था
जब कंपाइलर कॉन्फ़िगर किया गया था, तो इन विकल्पों का कोई प्रभाव नहीं पड़ता है।

ऐसी कई स्थितियाँ हैं जिनमें किसी एप्लिकेशन को साझा का उपयोग करना चाहिए लिबगसीसी
स्थिर संस्करण के बजाय। इनमें से सबसे आम है जब application
विभिन्न साझा पुस्तकालयों में अपवादों को फेंकना और पकड़ना चाहता है। उस स्तिथि में,
प्रत्येक पुस्तकालय के साथ-साथ एप्लिकेशन को भी साझा का उपयोग करना चाहिए लिबगसीसी.

इसलिए, G++ और GCJ ड्राइवर स्वचालित रूप से जोड़ते हैं -साझा-libgcc जब भी आप निर्माण करते हैं
एक साझा पुस्तकालय या मुख्य निष्पादन योग्य, क्योंकि सी ++ और जावा प्रोग्राम आमतौर पर उपयोग करते हैं
अपवाद, इसलिए यह करना सही है।

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

हालाँकि, यदि किसी पुस्तकालय या मुख्य निष्पादन योग्य को अपवादों को फेंकना या पकड़ना है, तो आप
इसे G++ या GCJ ड्राइवर का उपयोग करके लिंक करना होगा, जैसा कि इसमें प्रयुक्त भाषाओं के लिए उपयुक्त है
कार्यक्रम, या विकल्प का उपयोग कर -साझा-libgcc, जैसे कि यह साझा . के साथ जुड़ा हुआ है
लिबगसीसी.

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

-स्थैतिक-libtsan
जब -फसैनिटाइज = धागा विकल्प का उपयोग प्रोग्राम को जोड़ने के लिए किया जाता है, GCC ड्राइवर
स्वचालित रूप से के खिलाफ लिंक करता है लिबत्सान. अगर लिबत्सान एक साझा पुस्तकालय के रूप में उपलब्ध है, और
la स्थैतिक विकल्प का उपयोग नहीं किया जाता है, तो यह के साझा संस्करण के विरुद्ध लिंक करता है लिबत्सान.
RSI -स्थैतिक-libtsan विकल्प GCC ड्राइवर को लिंक करने का निर्देश देता है लिबत्सान स्थिर रूप से, बिना
अनिवार्य रूप से अन्य पुस्तकालयों को स्थिर रूप से जोड़ना।

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

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

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

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

-स्थैतिक-libstdc++
जब जी ++ प्रोग्राम का उपयोग C++ प्रोग्राम को लिंक करने के लिए किया जाता है, यह सामान्य रूप से स्वचालित रूप से लिंक करता है
के खिलाफ libstdc++. अगर libstdc++ एक साझा पुस्तकालय के रूप में उपलब्ध है, और स्थैतिक
विकल्प का उपयोग नहीं किया जाता है, तो यह के साझा संस्करण के विरुद्ध लिंक करता है libstdc++। अर्थात्
सामान्य रूप से ठीक। हालांकि, कभी-कभी के संस्करण को फ्रीज करना उपयोगी होता है libstdc++
पूरी तरह से स्थिर लिंक पर जाने के बिना प्रोग्राम द्वारा उपयोग किया जाता है। NS
-स्थैतिक-libstdc++ विकल्प निर्देशित करता है जी ++ लिंक करने के लिए ड्राइवर libstdc++ स्थिर रूप से, बिना
अनिवार्य रूप से अन्य पुस्तकालयों को स्थिर रूप से जोड़ना।

-प्रतीकात्मक
एक साझा वस्तु का निर्माण करते समय वैश्विक प्रतीकों के संदर्भों को बांधें। किसी के बारे में चेतावनी दें
अनसुलझे संदर्भ (जब तक कि लिंक संपादक विकल्प द्वारा ओवरराइड नहीं किया जाता है -एक्सलिंकर -z
-एक्सलिंकर डीएफएस) केवल कुछ सिस्टम ही इस विकल्प का समर्थन करते हैं।

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

-एक्सलिंकर विकल्प
पास विकल्प लिंकर के विकल्प के रूप में। आप इसका उपयोग सिस्टम-विशिष्ट आपूर्ति करने के लिए कर सकते हैं
लिंकर विकल्प जिन्हें जीसीसी नहीं पहचानता है।

यदि आप एक विकल्प पारित करना चाहते हैं जो एक अलग तर्क लेता है, तो आपको इसका उपयोग करना चाहिए -एक्सलिंकर
दो बार, एक बार विकल्प के लिए और एक बार तर्क के लिए। उदाहरण के लिए, पास करने के लिए -जोर
परिभाषाएँ, आपको लिखना चाहिए -एक्सलिंकर -जोर -एक्सलिंकर परिभाषाएँ. यह काम नहीं करता
लिखने के लिए -एक्सलिंकर "-जोर" परिभाषाएं", क्योंकि यह पूरे स्ट्रिंग को a . के रूप में पास करता है
एकल तर्क, जो कि लिंकर की अपेक्षा नहीं है।

GNU लिंकर का उपयोग करते समय, आमतौर पर लिंकर को तर्क देना अधिक सुविधाजनक होता है
विकल्प का उपयोग कर विकल्प=मूल्य अलग तर्क के रूप में वाक्यविन्यास। उदाहरण के लिए, आप
निर्दिष्ट कर सकते हैं -एक्सलिंकर -मैप=आउटपुट.मैप बजाय -एक्सलिंकर -नक्शा -एक्सलिंकर आउटपुट.मैप.
अन्य लिंकर कमांड-लाइन विकल्पों के लिए इस सिंटैक्स का समर्थन नहीं कर सकते हैं।

-डब्ल्यूएल,विकल्प
पास विकल्प लिंकर के विकल्प के रूप में। अगर विकल्प अल्पविराम होता है, इसे विभाजित किया जाता है
अल्पविराम पर कई विकल्प। आप इस सिंटैक्स का उपयोग तर्क को पारित करने के लिए कर सकते हैं
विकल्प। उदाहरण के लिए, -डब्ल्यूएल, -मैप, आउटपुट.मैप गुजरता -नक्शा आउटपुट.मैप लिंकर को। कब
जीएनयू लिंकर का उपयोग करके, आप भी वही प्रभाव प्राप्त कर सकते हैं -Wl,-मानचित्र = output.map.

नोट: उबंटू 8.10 और बाद के संस्करणों में, एलडीएफएलजीएस के लिए, विकल्प -डब्ल्यूएल, -जेड, रिलेरो प्रयोग किया जाता है।
अक्षम करने के लिए, उपयोग करें -डब्ल्यूएल,-जेड,नोरेलो.

-u प्रतीक
प्रतीक दिखाओ प्रतीक परिभाषित करने के लिए पुस्तकालय मॉड्यूल को जोड़ने के लिए बाध्य करने के लिए अपरिभाषित है
यह। आप उपयोग कर सकते हैं -u लोड करने के लिए मजबूर करने के लिए विभिन्न प्रतीकों के साथ कई बार
अतिरिक्त पुस्तकालय मॉड्यूल।

-z कीवर्ड
-z कीवर्ड के साथ सीधे लिंकर को भेज दिया जाता है कीवर्ड. अनुभाग देखें
अनुमत मूल्यों और उनके अर्थों के लिए आपके लिंकर के दस्तावेज़ीकरण में।

ऑप्शंस एसटी निर्देशिका Search
ये विकल्प निर्देशिकाओं को हेडर फ़ाइलों की खोज के लिए, पुस्तकालयों के लिए और भागों के लिए निर्दिष्ट करते हैं
संकलक का:

-Iदीर
निर्देशिका जोड़ें दीर शीर्षलेख के लिए खोजी जाने वाली निर्देशिकाओं की सूची के शीर्ष पर
फ़ाइलें। इसका उपयोग सिस्टम हेडर फ़ाइल को ओवरराइड करने के लिए किया जा सकता है, जो आपकी खुद की जगह लेता है
संस्करण, चूंकि इन निर्देशिकाओं को सिस्टम हेडर फ़ाइल से पहले खोजा जाता है
निर्देशिका। हालाँकि, आपको इस विकल्प का उपयोग उन निर्देशिकाओं को जोड़ने के लिए नहीं करना चाहिए जिनमें शामिल हैं
विक्रेता द्वारा आपूर्ति की गई सिस्टम हेडर फाइलें (उपयोग करें -सिस्टम उसके लिए)। यदि आप एक से अधिक का उपयोग करते हैं
-I विकल्प, निर्देशिकाओं को बाएं से दाएं क्रम में स्कैन किया जाता है; मानक प्रणाली
निर्देशिका के बाद आते हैं।

यदि एक मानक प्रणाली में निर्देशिका, या के साथ निर्दिष्ट निर्देशिका शामिल है -सिस्टमहै,
के साथ भी निर्दिष्ट -I, -I विकल्प पर ध्यान नहीं दिया जाता है। निर्देशिका अभी भी खोजी गई है लेकिन
सिस्टम निर्देशिका के रूप में सिस्टम में इसकी सामान्य स्थिति में chain. ये इस को
सुनिश्चित करें कि बग्गी सिस्टम हेडर को ठीक करने के लिए जीसीसी की प्रक्रिया और उसके लिए आदेश देना
"include_next" निर्देश अनजाने में नहीं बदले गए हैं। अगर आपको वास्तव में बदलने की जरूरत है
सिस्टम निर्देशिकाओं के लिए खोज क्रम, का उपयोग करें -नोस्टडिंक और / या -सिस्टम विकल्प.

-आईप्लगइंडिर=दीर
द्वारा पारित प्लगइन्स की खोज के लिए निर्देशिका सेट करें -फ़्प्लगिन =नाम के बजाय
-फ़्प्लगिन =पथ/नाम.so. यह विकल्प उपयोगकर्ता द्वारा उपयोग करने के लिए नहीं है, बल्कि केवल
चालक द्वारा पारित किया गया।

-मैं उद्धृत करता हूंदीर
निर्देशिका जोड़ें दीर शीर्षलेख के लिए खोजी जाने वाली निर्देशिकाओं की सूची के शीर्ष पर
केवल "#include" के मामले में फ़ाइलेंफ़ाइल""; उन्हें "#शामिल" के लिए नहीं खोजा जाता है
<फ़ाइल>", अन्यथा बस की तरह -I.

-Lदीर
निर्देशिका जोड़ें दीर खोजी जाने वाली निर्देशिकाओं की सूची में -l.

-Bउपसर्ग
यह विकल्प निर्दिष्ट करता है कि निष्पादन योग्य, पुस्तकालयों को कहां खोजना है, फाइलों को शामिल करना है, और
कंपाइलर की डेटा फाइलें ही।

कंपाइलर ड्राइवर प्रोग्राम एक या अधिक सबप्रोग्राम चलाता है सीपीपी, cc1, as और ld.
यह कोशिश करता है उपसर्ग प्रत्येक प्रोग्राम के लिए एक उपसर्ग के रूप में यह चलाने की कोशिश करता है, दोनों के साथ और बिना
मशीन/संस्करण/.

प्रत्येक उपप्रोग्राम को चलाने के लिए, कंपाइलर ड्राइवर पहले कोशिश करता है -B उपसर्ग, यदि कोई हो।
यदि वह नाम नहीं मिला है, या यदि -B निर्दिष्ट नहीं है, चालक दो मानक कोशिश करता है
उपसर्ग, /usr/lib/जीसीसी/ और /usr/स्थानीय/lib/gcc/. यदि इनमें से कोई भी परिणाम a . में नहीं होता है
फ़ाइल नाम जो पाया जाता है, का उपयोग करने के लिए असंशोधित प्रोग्राम नाम खोजा जाता है
आपके . में निर्दिष्ट निर्देशिकाएं पथ वातावरण विविधता।

संकलक यह देखने के लिए जाँच करता है कि क्या पथ प्रदान किया गया है -B एक निर्देशिका को संदर्भित करता है, और यदि
आवश्यक यह पथ के अंत में एक निर्देशिका विभाजक वर्ण जोड़ता है।

-B उपसर्ग जो प्रभावी रूप से निर्देशिका नाम निर्दिष्ट करते हैं, वे पुस्तकालयों पर भी लागू होते हैं
लिंकर, क्योंकि संकलक इन विकल्पों का अनुवाद करता है -L लिंकर के लिए विकल्प।
वे प्रीप्रोसेसर में फ़ाइलों को शामिल करने के लिए भी आवेदन करते हैं, क्योंकि संकलक अनुवाद करता है
इन विकल्पों में -सिस्टम प्रीप्रोसेसर के लिए विकल्प। इस मामले में, संकलक
संलग्न कर देता है शामिल उपसर्ग को।

रनटाइम समर्थन फ़ाइल libgcc.a का उपयोग करने के लिए भी खोजा जा सकता है -B उपसर्ग, अगर
आवश्यकता है। यदि यह वहां नहीं मिलता है, तो ऊपर दिए गए दो मानक उपसर्गों की कोशिश की जाती है, और वह
सब है। फ़ाइल लिंक से बाहर रह जाती है यदि यह उन तरीकों से नहीं मिलती है।

उपसर्ग की तरह निर्दिष्ट करने का दूसरा तरीका -B उपसर्ग पर्यावरण का उपयोग करना है
परिवर्तनशील जीसीसी_EXEC_PREFIX.

एक विशेष कीचड़ के रूप में, यदि पथ द्वारा प्रदान किया गया -B is [डीआईआर/]स्टेजएन/, जहां N एक संख्या है
0 से 9 की सीमा में, फिर इसे बदल दिया जाता है [डीआईआर/]शामिल करें. यह बूट के साथ मदद करने के लिए है-
कंपाइलर को स्ट्रैप करना।

- चश्मा =पट्टिका
प्रक्रिया पट्टिका संकलक मानक में पढ़ने के बाद ऐनक फ़ाइल, ओवरराइड करने के लिए
चूक जो जीसीसी ड्राइवर प्रोग्राम का उपयोग यह निर्धारित करते समय करता है कि कौन सा स्विच पास करना है
सेवा मेरे cc1, सीसी1प्लस, as, ld, आदि। एक से अधिक - चश्मा =पट्टिका पर निर्दिष्ट किया जा सकता है
कमांड लाइन, और उन्हें बाएं से दाएं क्रम में संसाधित किया जाता है।

--सिसरूट=दीर
उपयोग दीर हेडर और लाइब्रेरी के लिए लॉजिकल रूट डायरेक्टरी के रूप में। उदाहरण के लिए, यदि
कंपाइलर आमतौर पर हेडर की खोज करता है / usr / शामिल हैं और पुस्तकालयों में / Usr / lib, यह
इसके बजाय खोजता है डीआईआर/यूएसआर/शामिल और डीआईआर/यूएसआर/lib.

यदि आप इस विकल्प और दोनों का उपयोग करते हैं -इसिसरूट विकल्प, फिर --सिसरूट विकल्प
पुस्तकालयों पर लागू होता है, लेकिन -इसिसरूट विकल्प हेडर फाइलों पर लागू होता है।

GNU लिंकर (संस्करण 2.16 से आरंभ) के पास इसके लिए आवश्यक समर्थन है
विकल्प। यदि आपका लिंकर इस विकल्प का समर्थन नहीं करता है, तो हेडर फ़ाइल पहलू
--सिसरूट अभी भी काम करता है, लेकिन पुस्तकालय पहलू नहीं करता है।

--नो-सिसरूट-प्रत्यय
कुछ लक्ष्यों के लिए, निर्दिष्ट रूट निर्देशिका में एक प्रत्यय जोड़ा जाता है --सिसरूट,
उपयोग किए गए अन्य विकल्पों के आधार पर, ताकि उदाहरण के लिए शीर्षलेख में पाया जा सके
डीआईआर/प्रत्यय/यूएसआर/शामिल के बजाय डीआईआर/यूएसआर/शामिल. यह विकल्प जोड़ को निष्क्रिय कर देता है
ऐसे प्रत्यय का।

-मैं- यह विकल्प बहिष्कृत कर दिया गया है। इस्तेमाल करें -मैं उद्धृत करता हूं इसके स्थान पर -I निर्देशिका पहले
la -मैं- और हटा दें -मैं- विकल्प। आपके द्वारा निर्दिष्ट कोई भी निर्देशिका -I पहले विकल्प
la -मैं- विकल्प केवल "#include" के मामले में खोजा जाता हैफ़ाइल""; वो नहीं हैं
"#शामिल" के लिए खोजाफ़ाइल>".

यदि अतिरिक्त निर्देशिकाओं के साथ निर्दिष्ट किया गया है -I के बाद विकल्प -मैं- विकल्प, ये
निर्देशिकाओं को सभी "#include" निर्देशों के लिए खोजा जाता है। (आमतौर पर सब -I
निर्देशिकाओं का उपयोग इस तरह किया जाता है।)

इसके अलावा, -मैं- विकल्प वर्तमान निर्देशिका के उपयोग को रोकता है (जहां
वर्तमान इनपुट फ़ाइल से आई) "#include" के लिए पहली खोज निर्देशिका के रूप मेंफ़ाइल"".
के इस प्रभाव को ओवरराइड करने का कोई तरीका नहीं है -मैं-. साथ -मैं। आप खोज निर्दिष्ट कर सकते हैं
वह निर्देशिका जो संकलक के लागू होने पर चालू होती है। यह बिल्कुल नहीं है
जैसा कि प्रीप्रोसेसर डिफ़ॉल्ट रूप से करता है, लेकिन यह अक्सर संतोषजनक होता है।

-मैं- हेडर फ़ाइलों के लिए मानक सिस्टम निर्देशिकाओं के उपयोग को रोकता नहीं है।
इस प्रकार, -मैं- और -नोस्टडिंक स्वतंत्र हैं।

निर्दिष्ट करना लक्ष्य मशीन और संकलक संस्करण
जीसीसी चलाने का सामान्य तरीका निष्पादन योग्य को चलाना है जिसे कहा जाता है जीसीसीया, मशीन-जीसीसी जब क्रॉस-
संकलन, या मशीन-जीसीसी-संस्करण स्थापित किए गए संस्करण के अलावा किसी अन्य संस्करण को चलाने के लिए
पिछले।

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

कंपाइलर के कुछ कॉन्फ़िगरेशन अतिरिक्त विशेष विकल्पों का भी समर्थन करते हैं, आमतौर पर
एक ही मंच पर अन्य संकलक के साथ संगतता।

AAArch64 ऑप्शंस

इन विकल्पों को AArch64 कार्यान्वयन के लिए परिभाषित किया गया है:

-माबी=नाम
निर्दिष्ट डेटा मॉडल के लिए कोड जनरेट करें। अनुमेय मान हैं आईएलपी32 SysV के लिए-
डेटा मॉडल की तरह जहां इंट, लॉन्ग इंट और पॉइंटर 32-बिट हैं, और lp64 SysV-like . के लिए
डेटा मॉडल जहां इंट 32-बिट है, लेकिन लॉन्ग इंट और पॉइंटर 64-बिट हैं।

डिफ़ॉल्ट विशिष्ट लक्ष्य कॉन्फ़िगरेशन पर निर्भर करता है। ध्यान दें कि LP64 और
ILP32 ABI लिंक-संगत नहीं हैं; आपको अपने पूरे कार्यक्रम को उसी के साथ संकलित करना होगा
ABI, और पुस्तकालयों के संगत सेट के साथ लिंक।

-मबिग-एंडियन
बिग-एंडियन कोड जेनरेट करें। यह डिफ़ॉल्ट है जब जीसीसी को किसी के लिए कॉन्फ़िगर किया गया है
aarch64_be-*-* लक्ष्य।

-जनरल-regs-only
कोड उत्पन्न करें जो केवल सामान्य रजिस्टरों का उपयोग करता है।

-थोड़ा-एंडियन
लिटिल-एंडियन कोड जेनरेट करें। यह डिफ़ॉल्ट है जब जीसीसी को किसी के लिए कॉन्फ़िगर किया गया है
अर्च64-*-* लेकिन नहीं aarch64_be-*-* लक्ष्य।

-एमसीमॉडल = छोटा
छोटे कोड मॉडल के लिए कोड जेनरेट करें। कार्यक्रम और इसके सांख्यिकीय रूप से परिभाषित प्रतीक
एक दूसरे के 1GB के भीतर होना चाहिए। पॉइंटर्स 64 बिट हैं। कार्यक्रम स्थिर हो सकते हैं
या गतिशील रूप से जुड़ा हुआ है। यह मॉडल पूरी तरह से लागू नहीं किया गया है और इसे ज्यादातर के रूप में माना जाता है
छोटा.

-एमसीमॉडल = छोटा
छोटे कोड मॉडल के लिए कोड जनरेट करें। कार्यक्रम और इसकी सांख्यिकीय रूप से परिभाषित
प्रतीक एक दूसरे के 4GB के भीतर होने चाहिए। पॉइंटर्स 64 बिट हैं। कार्यक्रम हो सकते हैं
स्थिर या गतिशील रूप से जुड़ा हुआ। यह डिफ़ॉल्ट कोड मॉडल है।

-एमसीमॉडल = बड़ा
बड़े कोड मॉडल के लिए कोड जनरेट करें। यह पते के बारे में कोई धारणा नहीं बनाता है और
वर्गों के आकार। पॉइंटर्स 64 बिट हैं। प्रोग्राम को केवल स्टैटिकली लिंक किया जा सकता है।

-मस्ट्रिक्ट-संरेखण
यह न मानें कि असंरेखित स्मृति संदर्भों को सिस्टम द्वारा नियंत्रित किया जाता है।

-मोमित-पत्ती-फ्रेम-सूचक
-मनो-ओमिट-लीफ-फ्रेम-पॉइंटर
फ़्रेम पॉइंटर को लीफ फ़ंक्शंस में छोड़ दें या रखें। पूर्व व्यवहार है
चूक।

-mtls-बोली=desc
टीएलएस की गतिशील पहुंच के लिए थ्रेड-लोकल स्टोरेज मैकेनिज्म के रूप में टीएलएस डिस्क्रिप्टर का उपयोग करें
चर। यह डिफ़ॉल्ट है।

-एमटीएलएस-बोली=पारंपरिक
टीएलएस की गतिशील पहुंच के लिए पारंपरिक टीएलएस का उपयोग थ्रेड-लोकल स्टोरेज मैकेनिज्म के रूप में करें
चर।

-एमफिक्स-कॉर्टेक्स-ए53-835769
-मनो-फिक्स-कॉर्टेक्स-ए53-835769
एआरएम कॉर्टेक्स-ए53 इरेटम नंबर 835769 के लिए वैकल्पिक हल को सक्षम या अक्षम करें। यह
मेमोरी निर्देशों और 64-बिट पूर्णांक के बीच एक NOP निर्देश सम्मिलित करना शामिल है
गुणा-संचय निर्देश।

-एमफिक्स-कॉर्टेक्स-ए53-843419
-मनो-फिक्स-कॉर्टेक्स-ए53-843419
एआरएम कॉर्टेक्स-ए53 इरेटम नंबर 843419 के लिए वैकल्पिक हल को सक्षम या अक्षम करें। यह
इरेटम वर्कअराउंड लिंक समय पर किया जाता है और यह केवल संबंधित ध्वज को पास करेगा
लिंकर को।

-मार्च=नाम
लक्ष्य आर्किटेक्चर का नाम निर्दिष्ट करें, वैकल्पिक रूप से एक या अधिक द्वारा प्रत्ययित
सुविधा संशोधक। इस विकल्प का रूप है -मार्च=मेहराब{+[नहीं]सुविधा}*, जहां
के लिए केवल अनुमेय मूल्य मेहराब is ARMv8-ए. के लिए अनुमेय मान सुविधा रहे
नीचे उप-अनुभाग में प्रलेखित।

जहां परस्पर विरोधी फीचर संशोधक निर्दिष्ट किए जाते हैं, वहां सबसे सही फीचर का उपयोग किया जाता है।

GCC इस नाम का उपयोग यह निर्धारित करने के लिए करता है कि जनरेट करते समय यह किस प्रकार के निर्देश उत्सर्जित कर सकता है
विधानसभा कोड।

कहा पे मार्च इनमें से किसी के बिना निर्दिष्ट किया गया है -मट्यून or -एमसीपीयू यह भी निर्दिष्ट किया जा रहा है,
कोड को लागू करने वाले लक्ष्य प्रोसेसर की एक श्रृंखला में अच्छा प्रदर्शन करने के लिए ट्यून किया गया है
लक्ष्य वास्तुकला।

-मट्यून =नाम
लक्ष्य प्रोसेसर का नाम निर्दिष्ट करें जिसके लिए GCC को के प्रदर्शन को ट्यून करना चाहिए
कोड। इस विकल्प के लिए अनुमेय मान हैं: सामान्य, कॉर्टेक्स- A53, कॉर्टेक्स- A57,
कॉर्टेक्स- A72, Exynos-m1, थंडरक्स, xgene1.

इसके अतिरिक्त, यह विकल्प निर्दिष्ट कर सकता है कि जीसीसी को कोड के प्रदर्शन को ट्यून करना चाहिए
एक बड़े.लिटल सिस्टम के लिए। इस विकल्प के लिए अनुमेय मान हैं:
कोर्टेक्स-ए57.कॉर्टेक्स-ए53, कोर्टेक्स-ए72.कॉर्टेक्स-ए53.

जहां कोई नहीं -मट्यून =, -एमसीपीयू = or -मार्च= निर्दिष्ट हैं, कोड को प्रदर्शन करने के लिए ट्यून किया गया है
लक्ष्य प्रोसेसर की एक श्रृंखला में अच्छी तरह से।

इस विकल्प को फीचर संशोधक द्वारा प्रत्यय नहीं दिया जा सकता है।

-एमसीपीयू =नाम
लक्ष्य प्रोसेसर का नाम निर्दिष्ट करें, वैकल्पिक रूप से एक या अधिक सुविधाओं द्वारा प्रत्ययित
संशोधक इस विकल्प का रूप है -एमसीपीयू =सीपीयू{+[नहीं]सुविधा}*, जहां अनुमति हो
के लिए मूल्य सीपीयू के लिए उपलब्ध हैं के समान हैं -मट्यून.

के लिए अनुमेय मान सुविधा नीचे उप-अनुभाग में प्रलेखित हैं।

जहां परस्पर विरोधी फीचर संशोधक निर्दिष्ट किए जाते हैं, वहां सबसे सही फीचर का उपयोग किया जाता है।

GCC इस नाम का उपयोग यह निर्धारित करने के लिए करता है कि जनरेट करते समय यह किस प्रकार के निर्देश उत्सर्जित कर सकता है
असेंबली कोड (जैसे कि by मार्च) और लक्ष्य प्रोसेसर निर्धारित करने के लिए जिसके लिए
प्रदर्शन के लिए धुन (जैसे कि by -मट्यून) जहां इस विकल्प का प्रयोग के संयोजन में किया जाता है
मार्च or -मट्यून, उन विकल्पों को इसके उपयुक्त भाग पर वरीयता दी जाती है
विकल्प.

मार्च और -एमसीपीयू फ़ीचर संशोधक

फ़ीचर संशोधक के साथ प्रयोग किया जाता है मार्च और -एमसीपीयू निम्नलिखित में से एक हो सकता है:

सीआरसी सीआरसी एक्सटेंशन सक्षम करें।

क्रिप्टो
क्रिप्टो एक्सटेंशन सक्षम करें। इसका मतलब है कि उन्नत सिम सक्षम है।

fp फ़्लोटिंग-पॉइंट निर्देश सक्षम करें।

सिमडो
उन्नत SIMD निर्देश सक्षम करें। इसका तात्पर्य फ़्लोटिंग-पॉइंट निर्देश हैं
सक्षम। विकल्पों के लिए सभी मौजूदा संभावित मानों के लिए यह डिफ़ॉल्ट है मार्च और
-एमसीपीयू =.

अदपतेवा घोषणा ऑप्शंस

इन -m एडेप्टेवा एपिफेनी के लिए विकल्पों को परिभाषित किया गया है:

-एमहाफ-रेग-फाइल
"r32"..."r63" श्रेणी में कोई भी रजिस्टर आवंटित न करें। यह कोड को चालू रखने की अनुमति देता है
हार्डवेयर वेरिएंट जिनमें इन रजिस्टरों की कमी है।

-मपसंद-लघु-इन्स-regs
अधिमानतः रजिस्टरों को आवंटित करें जो लघु निर्देश पीढ़ी की अनुमति देते हैं। यह हो सकता है
परिणामस्वरूप निर्देश संख्या में वृद्धि हुई है, इसलिए यह समग्र रूप से कम या बढ़ सकता है
कोड आकार।

- शाखा-लागत =संख्या
शाखाओं की लागत मोटे तौर पर सेट करें संख्या "सरल" निर्देश। यह लागत केवल एक है
अनुमानी और सभी रिलीज में लगातार परिणाम देने की गारंटी नहीं है।

-एमसीमूव
सशर्त चालों की पीढ़ी को सक्षम करें।

-मनोप्स=संख्या
फेंकना संख्या हर दूसरे उत्पन्न निर्देश से पहले एनओपी।

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

-मस्टैक-ऑफ़सेट=संख्या
स्टैक के शीर्ष और स्टैक पॉइंटर के बीच ऑफ़सेट सेट करें। जैसे, 8 . का मान
इसका मतलब है कि "sp+0...sp+7" श्रेणी में आठ बाइट्स का उपयोग लीफ फ़ंक्शंस द्वारा किया जा सकता है
ढेर आवंटन के बिना। के अलावा अन्य मान 8 or 16 परीक्षण नहीं किए गए हैं और संभावना नहीं है
काम। यह भी ध्यान दें कि यह विकल्प ABI को बदलता है; a के साथ एक प्रोग्राम संकलित करना
पुस्तकालयों की तुलना में अलग-अलग स्टैक ऑफ़सेट संकलित किए गए हैं जो आम तौर पर नहीं होते हैं
काम। यह विकल्प उपयोगी हो सकता है यदि आप मूल्यांकन करना चाहते हैं कि क्या कोई अलग स्टैक ऑफ़सेट है
आपको बेहतर कोड देगा, लेकिन वास्तव में निर्माण के लिए एक अलग स्टैक ऑफ़सेट का उपयोग करने के लिए
काम कर रहे कार्यक्रम, टूलचैन को उपयुक्त के साथ कॉन्फ़िगर करने की अनुशंसा की जाती है
--साथ-स्टैक-ऑफ़सेट=संख्या विकल्प.

-मनो-राउंड-निकटतम
शेड्यूलर को यह मान लें कि राउंडिंग मोड को छोटा करने के लिए सेट किया गया है। NS
डिफ़ॉल्ट है -माउंड-निकटतम.

-मलॉन्ग-कॉल
यदि किसी विशेषता द्वारा अन्यथा निर्दिष्ट नहीं किया गया है, तो मान लें कि सभी कॉल्स से परे हो सकते हैं
"बी" / "बीएल" निर्देशों की ऑफसेट रेंज, और इसलिए फ़ंक्शन पता लोड करें
(अन्यथा प्रत्यक्ष) कॉल करने से पहले एक रजिस्टर में। यह डिफ़ॉल्ट है।

-एमशॉर्ट-कॉल
यदि किसी विशेषता द्वारा अन्यथा निर्दिष्ट नहीं किया गया है, तो मान लें कि सभी प्रत्यक्ष कॉल सीमा में हैं
"बी" / "बीएल" निर्देशों का, इसलिए सीधे कॉल के लिए इन निर्देशों का उपयोग करें। NS
डिफ़ॉल्ट है -मलॉन्ग-कॉल.

-एमएसस्मॉल16
मान लें कि पते को 16-बिट अहस्ताक्षरित मानों के रूप में लोड किया जा सकता है। यह पर लागू नहीं होता है
समारोह के पते जिसके लिए -मलॉन्ग-कॉल शब्दार्थ प्रभाव में हैं।

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

मोड निम्नलिखित मानों में से एक पर सेट किया जा सकता है:

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

काट-छांट
यह फ़्लोटिंग-पॉइंट गणनाओं के लिए ट्रंकिंग (यानी राउंड .) के साथ उपयोग की जाने वाली विधा है
शून्य की ओर) गोलाई मोड। इसमें फ़्लोटिंग पॉइंट से रूपांतरण शामिल है
पूर्णांक।

गोल-निकटतम
यह फ्लोटिंग-पॉइंट गणनाओं के लिए राउंड-टू-निकटतम-या- के साथ उपयोग की जाने वाली विधा है
यहां तक ​​कि गोलाई मोड।

int यह एफपीयू में पूर्णांक गणना करने के लिए उपयोग की जाने वाली विधा है, उदाहरण के लिए पूर्णांक
गुणा करें, या पूर्णांक गुणा करें और जमा करें।

डिफ़ॉल्ट है -एमएफपी-मोड = कॉलर

-मनोस्प्लिट-लोही
-मनो-पोस्टिनसी
-एमनो-पोस्टमोडिफाई
कोड जनरेशन ट्वीक करता है जो क्रमशः 32-बिट लोड के विभाजन को अक्षम करता है,
पोस्ट-इंक्रीमेंट पतों की पीढ़ी, और पोस्ट-संशोधित पतों की पीढ़ी। NS
चूक हैं मस्प्लिट-लोही, -एमपोस्ट-इंक, तथा -mpost-संशोधित.

-मनोवेक्ट-डबल
पसंदीदा सिम मोड को सिमोड में बदलें। डिफ़ॉल्ट है -mvect-डबल, जो उपयोग करता है
DImode पसंदीदा SIMD मोड के रूप में।

-मैक्स-वेक्ट-संरेखण =संख्या
SIMD वेक्टर मोड प्रकारों के लिए अधिकतम संरेखण। संख्या 4 या 8 हो सकता है। डिफ़ॉल्ट है
8. ध्यान दें कि यह एक एबीआई परिवर्तन है, भले ही कई पुस्तकालय फ़ंक्शन इंटरफेस हैं
अप्रभावित अगर वे आकार और/या . को प्रभावित करने वाले स्थानों में SIMD वेक्टर मोड का उपयोग नहीं करते हैं
प्रासंगिक प्रकारों का संरेखण।

-msplit-vecmove-जल्दी
स्प्लिट वेक्टर पुनः लोड करने से पहले एकल शब्द चाल में चलता है। सिद्धांत रूप में यह दे सकता है
बेहतर रजिस्टर आवंटन, लेकिन अभी तक आम तौर पर उल्टा ही लगता है।

-एम1रेग-REG
स्थिर -1 रखने के लिए एक रजिस्टर निर्दिष्ट करें, जो लोडिंग को छोटा नकारात्मक बनाता है
स्थिरांक और कुछ बिटमास्क तेजी से। के लिए स्वीकार्य मान REG रहे r43 और r63,
जो उस रजिस्टर के उपयोग को एक निश्चित रजिस्टर के रूप में निर्दिष्ट करते हैं, और कोई नहीं, जिसका अर्थ है कि नहीं
इस उद्देश्य के लिए रजिस्टर का उपयोग किया जाता है। डिफ़ॉल्ट है -m1reg-कोई नहीं.

एआरसी ऑप्शंस

निम्नलिखित विकल्प आर्किटेक्चर संस्करण को नियंत्रित करते हैं जिसके लिए कोड संकलित किया जा रहा है:

-एमबैरल-शिफ्टर
बैरल शिफ्टर द्वारा समर्थित निर्देश उत्पन्न करें। यह डिफ़ॉल्ट है जब तक
-एमसीपीयू = एआरसी 601 प्रभाव में है।

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

ARC600
ARC600 के लिए संकलित करें। उपनाम: -एमए6, -मार्क600.

ARC601
ARC601 के लिए संकलित करें। उपनाम: -मार्क601.

ARC700
ARC700 के लिए संकलित करें। उपनाम: -एमए7, -मार्क700. कॉन्फ़िगर किए जाने पर यह डिफ़ॉल्ट है
साथ में --साथ-सीपीयू=arc700.

-एमडीपीएफपी
-एमडीपीएफपी-कॉम्पैक्ट
एफपीएक्स: कॉम्पैक्ट कार्यान्वयन के लिए ट्यून किए गए डबल प्रेसिजन एफपीएक्स निर्देश उत्पन्न करें।

-एमडीपीएफपी-फास्ट
FPX: डबल प्रिसिजन FPX निर्देश जेनरेट करें, जो तेजी से कार्यान्वयन के लिए ट्यून किए गए हैं।

-मनो-dpfp-lrsr
FPX एक्सटेंशन aux रजिस्टर का उपयोग करने से LR और SR निर्देशों को अक्षम करें।

-माया
विस्तारित अंकगणितीय निर्देश उत्पन्न करें। वर्तमान में केवल "दिवा", "जोड़ता है", "उप",
और "sat16" समर्थित हैं। यह हमेशा के लिए सक्षम है -एमसीपीयू = एआरसी 700.

-मनो-एमपीवाई
ARC700 के लिए mpy निर्देश उत्पन्न न करें।

-mmul32x16
32x16 बिट गुणा और मैक निर्देश उत्पन्न करें।

-mmul64
mul64 और mulu64 निर्देश उत्पन्न करें। केवल के लिए मान्य -एमसीपीयू = एआरसी 600.

-मनोर्म
मानक निर्देश उत्पन्न करें। यह डिफ़ॉल्ट है अगर -एमसीपीयू = एआरसी 700 प्रभाव में है।

-एमएसपीएफपी
-mspfp-कॉम्पैक्ट
एफपीएक्स: कॉम्पैक्ट कार्यान्वयन के लिए ट्यून किए गए सिंगल प्रेसिजन एफपीएक्स निर्देश उत्पन्न करें।

-एमएसपीएफपी-फास्ट
एफपीएक्स: तेजी से कार्यान्वयन के लिए ट्यून किए गए सिंगल प्रेसिजन एफपीएक्स निर्देश उत्पन्न करें।

-एमएसआईएमडी
लक्ष्य-विशिष्ट बिलिन के माध्यम से ARC SIMD निर्देशों का निर्माण सक्षम करें। केवल मान्य
एसटी -एमसीपीयू = एआरसी 700.

-एमसॉफ्ट-फ्लोट
इस विकल्प पर ध्यान नहीं दिया गया; यह केवल संगतता उद्देश्यों के लिए प्रदान किया जाता है। सॉफ्टवेयर
फ़्लोटिंग पॉइंट कोड डिफ़ॉल्ट रूप से उत्सर्जित होता है, और यह डिफ़ॉल्ट FPX द्वारा ओवरराइड किया जा सकता है
विकल्प; एमएसपीएफपी, एमएसपीएफपी-कॉम्पैक्टया, एमएसपीएफपी-फास्ट एकल परिशुद्धता के लिए, और एमडीपीएफपी, एमडीपीएफपी-
सघनया, एमडीपीएफपी-फास्ट दोहरी सटीकता के लिए।

-एमएसवाप
स्वैप निर्देश उत्पन्न करें।

निम्नलिखित विकल्प असेंबलर के माध्यम से पारित किए जाते हैं, और प्रीप्रोसेसर को भी परिभाषित करते हैं
मैक्रो प्रतीक।

-एमडीएसपी-पैका
डीएसपी पैक ए एक्सटेंशन को सक्षम करने के लिए असेंबलर को पास किया गया। भी सेट करता है
प्रीप्रोसेसर प्रतीक "__Xdsp_packa"।

-एमडीवीबीएफ
दोहरी viterbi तितली विस्तार को सक्षम करने के लिए असेंबलर को पास किया गया। भी
प्रीप्रोसेसर प्रतीक "__Xdvbf" सेट करता है।

-मलॉक
लॉक्ड लोड/स्टोर कंडीशनल एक्सटेंशन को सक्षम करने के लिए असेंबलर को पास किया गया।
प्रीप्रोसेसर प्रतीक "__Xlock" भी सेट करता है।

-एमएमएसी-डी16
असेंबलर के पास गया। प्रीप्रोसेसर प्रतीक "__Xxmac_d16" भी सेट करता है।

-एमएमएसी-24
असेंबलर के पास गया। प्रीप्रोसेसर प्रतीक "__Xxmac_24" भी सेट करता है।

-एमआरटीएससी
64-बिट टाइम-स्टैम्प काउंटर एक्सटेंशन को सक्षम करने के लिए असेंबलर को पास किया गया
निर्देश। प्रीप्रोसेसर प्रतीक "__Xrtsc" भी सेट करता है।

-मस्वैप
स्वैप बाइट ऑर्डरिंग एक्सटेंशन निर्देश को सक्षम करने के लिए असेंबलर को पास किया गया।
प्रीप्रोसेसर प्रतीक "__Xswape" भी सेट करता है।

-टेलीफोनी
दोहरे और एकल ऑपरेंड निर्देशों को सक्षम करने के लिए असेंबलर को पास किया गया
टेलीफोनी। प्रीप्रोसेसर प्रतीक "__Xtelephony" भी सेट करता है।

-एमएक्सवाई
XY मेमोरी एक्सटेंशन को सक्षम करने के लिए असेंबलर को पास किया गया। भी सेट करता है
प्रीप्रोसेसर प्रतीक "__Xxy"।

निम्नलिखित विकल्प नियंत्रित करते हैं कि असेंबली कोड को कैसे एनोटेट किया जाता है:

-मिसाइज़
अनुमानित पतों के साथ कोडांतरक निर्देशों की व्याख्या करें।

-मनोटेट-संरेखित
बताएं कि कौन से संरेखण विचार निर्देश बनाने के निर्णय की ओर ले जाते हैं
छोटा या लंबा।

निम्नलिखित विकल्पों को लिंकर के माध्यम से पारित किया जाता है:

-मार्क्लिनक्स
"आर्कलिनक्स" इम्यूलेशन के उपयोग को निर्दिष्ट करने के लिए, लिंकर के माध्यम से पारित किया गया। इस विकल्प
"आर्क-लिनक्स-यूक्लिब" और . के लिए निर्मित टूल चेन में डिफ़ॉल्ट रूप से सक्षम है
जब प्रोफाइलिंग का अनुरोध नहीं किया जाता है तो "arceb-linux-uclibc" लक्ष्य।

-मार्क्लिनक्स_प्रोफ
"arclinux_prof" इम्यूलेशन के उपयोग को निर्दिष्ट करने के लिए लिंकर के माध्यम से पारित किया गया। इस
विकल्प "आर्क-लिनक्स-यूक्लिब" के लिए निर्मित टूल चेन में डिफ़ॉल्ट रूप से सक्षम होता है और
जब प्रोफाइलिंग का अनुरोध किया जाता है तो "arceb-linux-uclibc" लक्ष्य।

निम्नलिखित विकल्प उत्पन्न कोड के शब्दार्थ को नियंत्रित करते हैं:

-मेपिलॉग-सीएफआई
उपसंहारों के लिए कॉल फ्रेम सूचना का सृजन सक्षम करें।

-मनो-उपसंहार-सीएफआई
उपसंहारों के लिए कॉल फ्रेम जानकारी का निर्माण अक्षम करें।

-मलॉन्ग-कॉल
कॉल इन्सन्स को रजिस्टर इनडायरेक्ट कॉल के रूप में उत्पन्न करें, इस प्रकार पूर्ण तक पहुँच प्रदान करें
32-बिट एड्रेस रेंज।

-मध्यम-कॉल
कॉल के लिए 25 बिट से कम एड्रेसिंग रेंज का उपयोग न करें, जो कि ऑफ़सेट उपलब्ध है
बिना शर्त शाखा-और-लिंक निर्देश के लिए। समारोह का सशर्त निष्पादन
25-बिट रेंज के बजाय 21-बिट रेंज के उपयोग की अनुमति देने के लिए कॉल को दबा दिया जाता है
सशर्त शाखा-और-लिंक के साथ। इसके लिए निर्मित टूल चेन के लिए यह डिफ़ॉल्ट है
"आर्क-लिनक्स-यूक्लिबक" और "आर्सेब-लिनक्स-यूक्लिबक" लक्ष्य।

-मनो-एसडीटा
sdata संदर्भ उत्पन्न न करें। इसके लिए निर्मित टूल चेन के लिए यह डिफ़ॉल्ट है
"आर्क-लिनक्स-यूक्लिबक" और "आर्सेब-लिनक्स-यूक्लिबक" लक्ष्य।

-मुकब-एमकाउंट
यूसीबी कोड में उपयोग किए गए एमकाउंट कॉल के साथ उपकरण। यानी कैली में काउंटिंग करते हैं,
फोन करने वाला नहीं। डिफ़ॉल्ट रूप से ARC इंस्ट्रूमेंटेशन कॉलर में गिना जाता है।

-मोलेटाइल-कैश
अस्थिर संदर्भों के लिए सामान्य रूप से कैश्ड मेमोरी एक्सेस का उपयोग करें। यह डिफ़ॉल्ट है।

-मनो-वाष्पशील-कैश
अस्थिर संदर्भों के लिए कैश बायपास सक्षम करें।

निम्नलिखित विकल्प फाइन ट्यून कोड जनरेशन:

-दुर्भावनापूर्ण-कॉल
कॉल निर्देशों के लिए संरेखण अनुकूलन करें।

-मोटो-संशोधित-रेग
रजिस्टर विस्थापन के साथ प्री/पोस्ट मॉडिफाई के उपयोग को सक्षम करें।

-एमबीबिट-पीपहोल
bbit peephole2 सक्षम करें।

-मनो-बीआरसीसी
यह विकल्प लक्ष्य-विशिष्ट पास को अक्षम करता है arc_reorg "बीआरसीसी" उत्पन्न करने के लिए
निर्देश। कंबाइनर पास द्वारा संचालित "बीआरसीसी" पीढ़ी पर इसका कोई प्रभाव नहीं पड़ता है।

-एमकेस-वेक्टर-पीसीआरईएल
पीसी-रिश्तेदार स्विच केस टेबल का उपयोग करें - यह केस टेबल को छोटा करने में सक्षम बनाता है। यह है
के लिए डिफ़ॉल्ट -ओस.

-मकॉम्पैक्ट-केससी
कॉम्पैक्ट केसी पैटर्न सक्षम करें। यह इसके लिए डिफ़ॉल्ट है -ओस.

-मनो-कंड-निष्पादन
सशर्त निष्पादन निर्देश उत्पन्न करने के लिए ARCompact विशिष्ट पास को अक्षम करें। देय
स्लॉट शेड्यूलिंग और ऑपरेंड नंबरों, शाब्दिक आकारों के बीच बातचीत में देरी करने के लिए,
निर्देश की लंबाई, और सशर्त निष्पादन के लिए समर्थन, लक्ष्य-स्वतंत्र
सशर्त निष्पादन उत्पन्न करने के लिए पास अक्सर कमी होती है, इसलिए एआरसी पोर्ट ने एक रखा है
विशेष पास जो अधिक सशर्त निष्पादन उत्पन्न करने का प्रयास करता है
पंजीकरण आवंटन, शाखा को छोटा करने और स्लॉट शेड्यूलिंग में देरी के बाद के अवसर
कर दिए गए हैं। यह आम तौर पर पास होता है, लेकिन हमेशा नहीं, प्रदर्शन और कोड में सुधार करता है
आकार, अतिरिक्त संकलन समय की कीमत पर, यही कारण है कि स्विच करने का विकल्प है
यह बंद। यदि आपको उनके स्वीकार्य ऑफ़सेट से अधिक कॉल निर्देशों की समस्या है
रेंज क्योंकि वे सशर्त हैं, आपको उपयोग करने पर विचार करना चाहिए -मध्यम-कॉल
बजाय.

-मायरली-cbranchsi
cbranchsi पैटर्न का प्री-रीलोड उपयोग सक्षम करें।

-मेक्सपैंड-अद्दी
आरटीएल पीढ़ी के समय में "adddi3" और "subdi3" का विस्तार "add.f", "adc" आदि में करें।

-माइंडेक्सड-लोड
अनुक्रमित भार का उपयोग सक्षम करें। यह समस्याग्रस्त हो सकता है क्योंकि कुछ अनुकूलक तब
मान लें कि अनुक्रमित भंडार मौजूद हैं, जो कि मामला नहीं है।

-एमएलआरए
स्थानीय रजिस्टर आवंटन सक्षम करें। यह अभी भी ARC के लिए प्रायोगिक है, इसलिए डिफ़ॉल्ट रूप से
संकलक मानक पुनः लोड (यानी .) का उपयोग करता है -मनो-लरा).

-एमएलआरए-प्राथमिकता-कोई नहीं
लक्ष्य रजिस्टरों के लिए कोई प्राथमिकता न बताएं।

-एमएलआरए-प्राथमिकता-कॉम्पैक्ट
r0..r3 / r12..r15 के लिए लक्ष्य रजिस्टर प्राथमिकता इंगित करें।

-एमएलआरए-प्राथमिकता-गैर-कॉम्पैक्ट
r0..r3 / r12..r15 के लिए लक्ष्य regsiter प्राथमिकता कम करें।

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

-मिमिश्रित-कोड
16-बिट निर्देश निर्माण में मदद करने के लिए ट्वीक रजिस्टर आवंटन। यह आम तौर पर है
निर्देश बढ़ाने के दौरान औसत निर्देश आकार घटाने का प्रभाव
गिनती।

-एमक्यू-क्लास
'क्यू' निर्देश विकल्प सक्षम करें। यह इसके लिए डिफ़ॉल्ट है -ओस.

-एमआरसीक्यू
Rcq बाधा प्रबंधन सक्षम करें - अधिकांश शॉर्ट कोड जनरेशन इस पर निर्भर करता है। यह है
डिफ़ॉल्ट।

-एमआरसीडब्ल्यू
Rcw बाधा प्रबंधन सक्षम करें - ccfsm condexec ज्यादातर इसी पर निर्भर करता है। यह है
चूक।

-एमएसाइज-स्तर =स्तर
निर्देश लंबाई और संरेखण के संबंध में फ़ाइन-ट्यून आकार अनुकूलन। NS
के लिए मान्यता प्राप्त मूल्य स्तर यह है:

0 कोई आकार अनुकूलन नहीं। इस स्तर को पदावनत और इस तरह व्यवहार किया जाता है 1.

1 संक्षिप्त निर्देश अवसरवादी रूप से उपयोग किए जाते हैं।

2 इसके अलावा, बाधाओं के बाद लूप और कोड का संरेखण गिरा दिया जाता है।

3 इसके अलावा, वैकल्पिक डेटा संरेखण छोड़ दिया जाता है, और विकल्प Os सक्षम किया गया है।

यह डिफ़ॉल्ट रूप से 3 कब -ओस प्रभाव में है। अन्यथा, व्यवहार जब यह नहीं है
सेट स्तर के बराबर है 1.

-मट्यून =सीपीयू
के लिए निर्देश शेड्यूलिंग पैरामीटर सेट करें सीपीयू, द्वारा निहित किसी को ओवरराइड करना -एमसीपीयू =.

के लिए समर्थित मान सीपीयू रहे

ARC600
ARC600 सीपीयू के लिए ट्यून करें।

ARC601
ARC601 सीपीयू के लिए ट्यून करें।

ARC700
मानक गुणक ब्लॉक के साथ ARC700 सीपीयू के लिए ट्यून करें।

एआरसी700-एक्समैक
XMAC ब्लॉक के साथ ARC700 सीपीयू के लिए ट्यून करें।

एआरसी725डी
ARC725D सीपीयू के लिए ट्यून करें।

एआरसी750डी
ARC750D सीपीयू के लिए ट्यून करें।

-मिमलकॉस्ट =संख्या
एक गुणा निर्देश के लिए मान लेने की लागत, के साथ 4 एक सामान्य निर्देश के बराबर होना।

-मुनालाइन-प्रोब-दहलीज=संभावना
असंरेखित शाखाओं के लिए संभाव्यता सीमा निर्धारित करें। के लिए ट्यूनिंग करते समय ARC700 और
गति के लिए अनुकूलन, बिना देरी स्लॉट के भरी हुई शाखाओं को अधिमानतः उत्सर्जित किया जाता है
असंरेखित और लंबा, जब तक कि प्रोफाइलिंग इंगित नहीं करती है कि शाखा के लिए संभावना
लिया जाना नीचे है संभावना. डिफ़ॉल्ट है (REG_BR_PROB_BASE/2), यानी 5000।

पश्चगामी संगतता के लिए निम्नलिखित विकल्प बनाए गए हैं, लेकिन अब पदावनत कर दिए गए हैं
और भविष्य के रिलीज में हटा दिया जाएगा:

-मार्गोनॉट
अप्रचलित एफपीएक्स।

-मबिग-एंडियन
-ईबी बड़े एंडियन लक्ष्यों के लिए कोड संकलित करें। इन विकल्पों का उपयोग अब बहिष्कृत कर दिया गया है। उपयोगकर्ताओं
बड़े-एंडियन कोड चाहते हैं, "arceb-elf32" और "arceb-linux-uclibc" लक्ष्यों का उपयोग करना चाहिए
टूल चेन बनाते समय, जिसके लिए बिग-एंडियन डिफ़ॉल्ट है।

-थोड़ा-एंडियन
हैं El छोटे एंडियन लक्ष्यों के लिए कोड संकलित करें। इन विकल्पों का उपयोग अब बहिष्कृत कर दिया गया है।
छोटे-एंडियन कोड चाहने वाले उपयोगकर्ताओं को "arc-elf32" और "arc-linux-uclibc" का उपयोग करना चाहिए।
उपकरण श्रृंखला बनाते समय लक्ष्य, जिसके लिए छोटा-एंडियन डिफ़ॉल्ट है।

-एमबारेल_शिफ्टर
द्वारा प्रतिस्थापित -एमबैरल-शिफ्टर.

-एमडीपीएफपी_कॉम्पैक्ट
द्वारा प्रतिस्थापित -एमडीपीएफपी-कॉम्पैक्ट.

-एमडीपीएफपी_फास्ट
द्वारा प्रतिस्थापित -एमडीपीएफपी-फास्ट.

-एमडीएसपी_पैका
द्वारा प्रतिस्थापित -एमडीएसपी-पैका.

-एमईए
द्वारा प्रतिस्थापित -माया.

-एममैक_24
द्वारा प्रतिस्थापित -एमएमएसी-24.

-एममैक_डी16
द्वारा प्रतिस्थापित -एमएमएसी-डी16.

-एमएसपीएफपी_कॉम्पैक्ट
द्वारा प्रतिस्थापित -mspfp-कॉम्पैक्ट.

-एमएसपीएफपी_फास्ट
द्वारा प्रतिस्थापित -एमएसपीएफपी-फास्ट.

-मट्यून =सीपीयू
मान arc600, arc601, arc700 और चाप700-xmac एसटी सीपीयू द्वारा प्रतिस्थापित किया जाता है ARC600, ARC601,
ARC700 और एआरसी700-एक्समैक क्रमश

-मल्टीकॉस्ट =संख्या
द्वारा प्रतिस्थापित -मल्टीकॉस्ट.

एआरएम ऑप्शंस

इन -m एआरएम पोर्ट के लिए विकल्प परिभाषित किए गए हैं:

-माबी=नाम
निर्दिष्ट ABI के लिए कोड जनरेट करें। अनुमेय मान हैं: एपीसीएस-ग्नू, एटीपीसी, एएपीसी,
एएपीसी-लिनक्स और आईडब्ल्यूएमएमएक्सटी.

-मैप्स-फ्रेम
एक स्टैक फ्रेम उत्पन्न करें जो सभी के लिए एआरएम प्रक्रिया कॉल मानक के अनुरूप हो
कार्य, भले ही यह कोड के सही निष्पादन के लिए कड़ाई से आवश्यक न हो।
निर्दिष्ट करना -फोमिट-फ्रेम-पॉइंटर इस विकल्प के कारण स्टैक फ़्रेम नहीं होते हैं
पत्ती कार्यों के लिए उत्पन्न। डिफ़ॉल्ट है -एमनो-एपीसीएस-फ्रेम. यह विकल्प है
पदावनत।

-मैप्स
यह का समानार्थी है -मैप्स-फ्रेम और बहिष्कृत है।

-मथंब-इंटरवर्क
एआरएम और थंब निर्देश सेट के बीच कॉलिंग का समर्थन करने वाला कोड जेनरेट करें।
इस विकल्प के बिना, पूर्व-v5 आर्किटेक्चर पर, दो निर्देश सेट नहीं हो सकते हैं
विश्वसनीय रूप से एक कार्यक्रम के अंदर उपयोग किया जाता है। डिफ़ॉल्ट है -मनो-अंगूठे-इंटरवर्क, के बाद से थोड़ा
बड़ा कोड तब उत्पन्न होता है जब -मथंब-इंटरवर्क निर्दिष्ट किया जाता है। एएपीसीएस विन्यास में
यह विकल्प अर्थहीन है।

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

-मफ्लोट-अबी =नाम
निर्दिष्ट करता है कि किस फ़्लोटिंग-पॉइंट ABI का उपयोग करना है। अनुमेय मान हैं: नरम, सॉफ्टएफपी और
कठिन.

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

डिफ़ॉल्ट विशिष्ट लक्ष्य कॉन्फ़िगरेशन पर निर्भर करता है। ध्यान दें कि हार्ड-फ्लोट
और सॉफ्ट-फ्लोट एबीआई लिंक-संगत नहीं हैं; आपको अपने पूरे कार्यक्रम को संकलित करना होगा
एक ही एबीआई, और पुस्तकालयों के एक संगत सेट के साथ लिंक।

-थोड़ा-एंडियन
लिटिल-एंडियन मोड में चल रहे प्रोसेसर के लिए कोड जेनरेट करें। यह इसके लिए डिफ़ॉल्ट है
सभी मानक विन्यास।

-मबिग-एंडियन
बिग-एंडियन मोड में चल रहे प्रोसेसर के लिए कोड जेनरेट करें; डिफ़ॉल्ट संकलित करना है
थोड़ा-एंडियन प्रोसेसर के लिए कोड।

-मार्च=नाम
यह लक्ष्य एआरएम आर्किटेक्चर का नाम निर्दिष्ट करता है। जीसीसी इस नाम का उपयोग करता है
यह निर्धारित करें कि असेंबली कोड जनरेट करते समय यह किस प्रकार के निर्देश उत्सर्जित कर सकता है। इस
विकल्प के साथ या के बजाय संयोजन के रूप में इस्तेमाल किया जा सकता है -एमसीपीयू = विकल्प। जायज़
नाम है: आर्मव2, arv2a, आर्मव3, एआरएमवी3एम, आर्मव4, Armv4t, आर्मव5, Armv5t, एआरएमवी5ई,
Armv5te, आर्मव6, एआरएमवी6जे, एआरएमवी6टी2, arv6z, Armv6zk, armv6-एम, आर्मव7, ARMv7-ए, ARMv7-आर,
armv7-एम, armv7e-एम, arv7ve, ARMv8-ए, armv8-ए + सीआरसी, आईडब्ल्यूएमएमएक्सटी, iwmmxt2, ep9312.

-मार्च = armv7ve वर्चुअलाइजेशन एक्सटेंशन के साथ armv7-a आर्किटेक्चर है।

-मार्च = armv8-a+crc ARMv8-A आर्किटेक्चर के लिए कोड जनरेशन को सक्षम बनाता है
वैकल्पिक CRC32 एक्सटेंशन।

-मार्च = देशी कंपाइलर को बिल्ड की वास्तुकला का स्वतः पता लगाने का कारण बनता है
संगणक। वर्तमान में, यह सुविधा केवल GNU/Linux पर समर्थित है, और सभी पर नहीं
स्थापत्य की मान्यता है। यदि ऑटो-डिटेक्ट असफल होता है तो विकल्प में नहीं है
प्रभाव।

-मट्यून =नाम
यह विकल्प लक्ष्य एआरएम प्रोसेसर का नाम निर्दिष्ट करता है जिसके लिए जीसीसी को ट्यून करना चाहिए
कोड का प्रदर्शन। कुछ एआरएम कार्यान्वयन के लिए बेहतर प्रदर्शन हो सकता है
इस विकल्प का उपयोग करके प्राप्त किया। अनुमत नाम हैं: arm2, arm250, arm3, arm6,
arm60, arm600, arm610, arm620, arm7, हाथ7m, आर्म7डी, आर्म7डीएम, आर्म7डी, आर्म7डीएमआई, arm70,
arm700, आर्म700i, arm710, आर्म710सी, arm7100, arm720, arm7500, आर्म7500fe, एआरएम7टीडीएमआई,
ARM7TDMI-एस, आर्म710टी, आर्म720टी, आर्म740टी, मजबूत बांह, स्ट्रांगआर्म110, स्ट्रांगआर्म1100,
स्ट्रांगआर्म1110, arm8, arm810, arm9, आर्म9ई, arm920, आर्म920टी, आर्म922टी, ARM946E-एस,
ARM966E-एस, ARM968E-एस, arm926ej-एस, आर्म940टी, एआरएम9टीडीएमआई, एआरएम10टीडीएमआई, आर्म1020टी, arm1026ej-एस,
आर्म10ई, आर्म1020ई, आर्म1022ई, ARM1136J-एस, arm1136jf-एस, एमपीकोर, mpcorenovfp, arm1156t2-एस,
arm1156t2f-एस, arm1176jz-एस, ARM1176JZF-एस, कॉर्टेक्स- A5, कॉर्टेक्स- A7, कॉर्टेक्स- A8, कॉर्टेक्स- A9,
कॉर्टेक्स- A12, कॉर्टेक्स- A15, कॉर्टेक्स- A53, कॉर्टेक्स- A57, कॉर्टेक्स- A72, कॉर्टेक्स- R4, कोर्टेक्स-r4f,
कॉर्टेक्स- R5, कॉर्टेक्स- R7, कॉर्टेक्स- एम 7, कॉर्टेक्स- एम 4, कॉर्टेक्स- एम 3, कॉर्टेक्स- एम 1, कॉर्टेक्स- एम 0,
कोर्टेक्स-एम0प्लस, कोर्टेक्स-एम1.छोटा-गुणा, कोर्टेक्स-एम0.छोटा-गुणा,
कोर्टेक्स-एम0प्लस।छोटा-गुणा, Exynos-m1, मार्वल-पीजे4, X स्केल, आईडब्ल्यूएमएमएक्सटी, iwmmxt2, ep9312,
fa526, fa626, fa606te, fa626te, एफएमपी626, fa726te, xgene1.

इसके अतिरिक्त, यह विकल्प निर्दिष्ट कर सकता है कि जीसीसी को कोड के प्रदर्शन को ट्यून करना चाहिए
एक बड़े.लिटल सिस्टम के लिए। अनुमत नाम हैं: कोर्टेक्स-ए15.कॉर्टेक्स-ए7,
कोर्टेक्स-ए57.कॉर्टेक्स-ए53, कोर्टेक्स-ए72.कॉर्टेक्स-ए53.

-मट्यून = सामान्य-मेहराब निर्दिष्ट करता है कि GCC को के मिश्रण के लिए प्रदर्शन को ट्यून करना चाहिए
आर्किटेक्चर के भीतर प्रोसेसर मेहराब. उद्देश्य कोड उत्पन्न करना है जो अच्छी तरह से चलता है
वर्तमान सबसे लोकप्रिय प्रोसेसर, कुछ को लाभ पहुंचाने वाले अनुकूलन के बीच संतुलन
सीपीयू सीमा में हैं, और अन्य सीपीयू के प्रदर्शन के नुकसान से बचते हैं। इसके प्रभाव
यह विकल्प भविष्य के जीसीसी संस्करणों में बदल सकता है क्योंकि सीपीयू मॉडल आते हैं और जाते हैं।

-मट्यून = देशी कंपाइलर को बिल्ड कंप्यूटर के सीपीयू को ऑटो-डिटेक्ट करने का कारण बनता है। पर
वर्तमान में, यह सुविधा केवल GNU/Linux पर समर्थित है, और सभी आर्किटेक्चर नहीं हैं
मान्यता प्राप्त। यदि ऑटो-डिटेक्ट असफल होता है तो विकल्प का कोई प्रभाव नहीं पड़ता है।

-एमसीपीयू =नाम
यह लक्ष्य एआरएम प्रोसेसर का नाम निर्दिष्ट करता है। GCC इस नाम का उपयोग को प्राप्त करने के लिए करता है
लक्ष्य एआरएम आर्किटेक्चर का नाम (जैसे कि द्वारा निर्दिष्ट किया गया है मार्च) और एआरएम प्रोसेसर
प्रकार जिसके लिए प्रदर्शन के लिए ट्यून करना है (जैसे कि द्वारा निर्दिष्ट किया गया है -मट्यून) जहां यह विकल्प
के साथ संयोजन के रूप में उपयोग किया जाता है मार्च or -मट्यून, उन विकल्पों को वरीयता दी जाती है
इस विकल्प का उपयुक्त भाग।

इस विकल्प के लिए अनुमत नाम वही हैं जो इसके लिए हैं -मट्यून.

-एमसीपीयू = सामान्य-मेहराब अनुमेय भी है, और के बराबर है -मार्च=मेहराब
-मट्यून = सामान्य-मेहराब. देखना -मट्यून देखें।

-एमसीपीयू = देशी कंपाइलर को बिल्ड कंप्यूटर के सीपीयू को ऑटो-डिटेक्ट करने का कारण बनता है। पर
वर्तमान में, यह सुविधा केवल GNU/Linux पर समर्थित है, और सभी आर्किटेक्चर नहीं हैं
मान्यता प्राप्त। यदि ऑटो-डिटेक्ट असफल होता है तो विकल्प का कोई प्रभाव नहीं पड़ता है।

-एमएफपीयू=नाम
यह निर्दिष्ट करता है कि कौन सा फ़्लोटिंग-पॉइंट हार्डवेयर (या हार्डवेयर इम्यूलेशन) उपलब्ध है
लक्ष्य। अनुमत नाम हैं: वीएफपी, वीएफपीवी3, vfpv3-fp16, वीएफपीवी3-डी16, vfpv3-d16-fp16,
vfpv3xd, vfpv3xd-fp16, नीयन, नियॉन-एफपी16, वीएफपीवी4, वीएफपीवी4-डी16, एफपीवी4-एसपी-डी16, नियॉन-वीएफपीवी4,
fpv5-d16, एफपीवी5-एसपी-डी16, एफपी-armv8, नियॉन-एफपी-आर्मव8, तथा क्रिप्टो-नियॉन-एफपी-आर्मव8.

If -एमसॉफ्ट-फ्लोट निर्दिष्ट है यह फ़्लोटिंग-पॉइंट मानों के प्रारूप को निर्दिष्ट करता है।

यदि चयनित फ़्लोटिंग-पॉइंट हार्डवेयर में नीयन एक्सटेंशन शामिल है (उदा -एमएफपीयू=नीयन),
ध्यान दें कि फ्लोटिंग-पॉइंट ऑपरेशंस जीसीसी के ऑटो-वेक्टराइजेशन पास द्वारा उत्पन्न नहीं होते हैं
जब तक -फनसेफ-गणित-अनुकूलन भी निर्दिष्ट है। ऐसा इसलिए है क्योंकि नीयन हार्डवेयर
फ्लोटिंग-पॉइंट अंकगणित के लिए IEEE 754 मानक को पूरी तरह से लागू नहीं करता है (in .)
विशेष असामान्य मूल्यों को शून्य माना जाता है), इसलिए नीयन निर्देशों का उपयोग हो सकता है
सटीकता के नुकसान का कारण बनता है।

-एमएफपी16-प्रारूप =नाम
"__fp16" अर्ध-सटीक फ़्लोटिंग-पॉइंट प्रकार का प्रारूप निर्दिष्ट करें। जायज़
नाम है कोई नहीं, आईईईई, तथा वैकल्पिक; डिफ़ॉल्ट है कोई नहीं, जिस स्थिति में "__fp16"
प्रकार परिभाषित नहीं है।

-एमस्ट्रक्चर-आकार-सीमा =n
सभी संरचनाओं और संघों के आकार को की संख्या के गुणक तक पूर्णांकित किया जाता है
इस विकल्प द्वारा निर्धारित बिट्स। अनुमेय मान 8, 32 और 64 हैं। डिफ़ॉल्ट मान
विभिन्न टूलचेन के लिए भिन्न होता है। सीओएफएफ लक्षित टूलचेन के लिए डिफ़ॉल्ट मान है
8. 64 के मान की अनुमति केवल तभी दी जाती है जब अंतर्निहित एबीआई इसका समर्थन करता है।

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

-मबॉर्ट-ऑन-नोरटर्न
"नोरटर्न" फ़ंक्शन के अंत में "निरस्त" फ़ंक्शन के लिए एक कॉल उत्पन्न करें। यह है
निष्पादित किया जाता है यदि फ़ंक्शन वापस करने का प्रयास करता है।

-मलॉन्ग-कॉल
-मनो-लॉन्ग-कॉल
कंपाइलर को पहले का पता लोड करके फंक्शन कॉल करने के लिए कहता है
एक रजिस्टर में कार्य करना और फिर इस रजिस्टर पर एक सबरूटीन कॉल करना। इस
यदि लक्ष्य फ़ंक्शन 64-मेगाबाइट एड्रेसिंग के बाहर है तो स्विच की आवश्यकता है
सबरूटीन कॉल निर्देश के ऑफ़सेट-आधारित संस्करण की श्रेणी।

भले ही यह स्विच सक्षम हो, सभी फ़ंक्शन कॉल लंबी कॉल में नहीं बदली जाती हैं।
अनुमानी यह है कि स्थिर कार्य, ऐसे कार्य जिनमें "शॉर्ट_कॉल" होता है
विशेषता, कार्य जो "#pragma no_long_calls" निर्देश के दायरे में हैं,
और ऐसे कार्य जिनकी परिभाषाएँ पहले से ही वर्तमान के भीतर संकलित की जा चुकी हैं
संकलन इकाई लंबी कॉल में नहीं बदली जाती है। इस नियम के अपवाद हैं कि
कमजोर कार्य परिभाषाएँ, "long_call" विशेषता या "अनुभाग" के साथ कार्य
विशेषता, और कार्य जो "#pragma long_calls" निर्देश के दायरे में हैं
हमेशा लंबी कॉलों में बदल जाते हैं।

यह सुविधा डिफ़ॉल्ट रूप से सक्षम नहीं है। निर्दिष्ट करना -मनो-लॉन्ग-कॉल बहाल करता है
डिफ़ॉल्ट व्यवहार, जैसा कि फ़ंक्शन कॉल को "#pragma ." के दायरे में रखता है
long_calls_off" निर्देश। ध्यान दें कि इन स्विचों का संकलक पर कोई प्रभाव नहीं पड़ता है
फ़ंक्शन पॉइंटर्स के माध्यम से फ़ंक्शन कॉल को संभालने के लिए कोड उत्पन्न करता है।

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

-एमपीआईसी-रजिस्टर=REG
PIC एड्रेसिंग के लिए उपयोग किए जाने वाले रजिस्टर को निर्दिष्ट करें। मानक पीआईसी आधार मामले के लिए,
डिफ़ॉल्ट संकलक द्वारा निर्धारित कोई भी उपयुक्त रजिस्टर है। सिंगल पीआईसी बेस केस के लिए,
डिफ़ॉल्ट है R9 यदि लक्ष्य ईएबीआई आधारित है या स्टैक-चेकिंग सक्षम है, अन्यथा
डिफ़ॉल्ट है R10.

-एमपीसी-डेटा-है-पाठ-सापेक्ष
मान लें कि प्रत्येक डेटा खंड लोड समय पर पाठ खंड के सापेक्ष हैं। इसलिए,
यह पीसी-सापेक्ष संचालन का उपयोग करके डेटा को संबोधित करने की अनुमति देता है। यह विकल्प डिफ़ॉल्ट रूप से चालू है
VxWorks RTP के अलावा अन्य लक्ष्यों के लिए।

-मपोक-फ़ंक्शन-नाम
टेक्स्ट सेक्शन में प्रत्येक फंक्शन का नाम सीधे फंक्शन से पहले लिखें
प्रस्ताव। उत्पन्न कोड इस के समान है:

t0
.ascii "arm_poke_function_name", 0
संरेखित करें
t1
.वर्ड 0xff000000 + (t1 - t0)
आर्म_पोक_फ़ंक्शन_नाम
मूव आईपी, स्पा
stmfd एसपी!, {एफपी, आईपी, एलआर, पीसी}
उप एफपी, आईपी, #4

स्टैक बैकट्रेस करते समय, कोड "fp + ." पर संग्रहीत "पीसी" के मान का निरीक्षण कर सकता है
0"। यदि ट्रेस फ़ंक्शन "पीसी - 12" स्थान को देखता है और शीर्ष 8 बिट्स हैं
सेट करें, तो हम जानते हैं कि इसके ठीक पहले एक फ़ंक्शन नाम एम्बेड किया गया है
स्थान और लंबाई है "((पीसी [-3]) और 0xff000000)"।

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

-एमटीपीसी-फ्रेम
एक स्टैक फ्रेम उत्पन्न करें जो थंब प्रक्रिया कॉल मानक के अनुरूप है
सभी गैर-पत्ती कार्य। (एक लीफ फंक्शन वह है जो किसी अन्य को कॉल नहीं करता है
फ़ंक्शन।) डिफ़ॉल्ट है -एमनो-टीपीसीएस-फ्रेम.

-एमटीपीसी-पत्ती-फ्रेम
एक स्टैक फ्रेम उत्पन्न करें जो थंब प्रक्रिया कॉल मानक के अनुरूप है
सभी पत्ती कार्य। (एक लीफ फंक्शन वह है जो किसी अन्य फंक्शन को कॉल नहीं करता है।)
डिफ़ॉल्ट है -एमनो-एपीसीएस-लीफ-फ्रेम.

-मैकली-सुपर-इंटरवर्किंग
एआरएम निर्देश संकलित की जा रही फ़ाइल में सभी बाहरी रूप से दिखाई देने वाले कार्यों को देता है
हेडर सेट करें जो बाकी फ़ंक्शन को निष्पादित करने से पहले थंब मोड पर स्विच करता है।
यह इन कार्यों को गैर-इंटरवर्किंग कोड से कॉल करने की अनुमति देता है। यह विकल्प है
एएपीसीएस कॉन्फ़िगरेशन में मान्य नहीं है क्योंकि डिफ़ॉल्ट रूप से इंटरवर्किंग सक्षम है।

-मैकलर-सुपर-इंटरवर्किंग
फ़ंक्शन पॉइंटर्स (वर्चुअल फ़ंक्शंस सहित) के माध्यम से कॉल को सही ढंग से निष्पादित करने की अनुमति देता है
इस बात की परवाह किए बिना कि लक्ष्य कोड इंटरवर्किंग के लिए संकलित किया गया है या नहीं।
फ़ंक्शन पॉइंटर को निष्पादित करने की लागत में एक छोटा ओवरहेड होता है यदि यह विकल्प
सक्षम किया गया है। यह विकल्प एएपीसीएस कॉन्फ़िगरेशन में मान्य नहीं है क्योंकि इंटरवर्किंग है
डिफ़ॉल्ट रूप से सक्षम।

-एमटीपी=नाम
थ्रेड लोकल स्टोरेज पॉइंटर के लिए एक्सेस मॉडल निर्दिष्ट करें। मान्य मॉडल हैं
नरम, जो "__aeabi_read_tp" पर कॉल उत्पन्न करता है, cp15, जो धागा लाता है
सीधे "cp15" से पॉइंटर (arm6k आर्किटेक्चर में समर्थित), और स्वत:, जो
चयनित प्रोसेसर के लिए सर्वोत्तम उपलब्ध विधि का उपयोग करता है। डिफ़ॉल्ट सेटिंग है
स्वत:.

-mtls-बोली=बोली
थ्रेड स्थानीय संग्रहण तक पहुँचने के लिए उपयोग की जाने वाली बोली निर्दिष्ट करें। दो बोलीएस रहे हैं
का समर्थन किया---बैल की आकृति का बारहसिद्धान्त और जीएनयू२३४बैल की आकृति का बारहसिद्धान्त बोली के लिए मूल जीएनयू योजना का चयन करता है
स्थानीय और वैश्विक गतिशील टीएलएस मॉडल का समर्थन करना। NS जीएनयू२३४ बोली जीएनयू का चयन करती है
डिस्क्रिप्टर स्कीम, जो साझा पुस्तकालयों के लिए बेहतर प्रदर्शन प्रदान करती है। जीएनयू
डिस्क्रिप्टर योजना मूल योजना के अनुकूल है, लेकिन इसके लिए नए की आवश्यकता है
कोडांतरक, लिंकर और पुस्तकालय समर्थन। प्रारंभिक और स्थानीय निष्पादन टीएलएस मॉडल हैं
इस विकल्प से अप्रभावित और हमेशा मूल योजना का उपयोग करें।

-mword-स्थानांतरण
केवल शब्द-आकार के मानों (यानी R_ARM_ABS32) पर पूर्ण स्थानांतरण उत्पन्न करें। यह है
लक्ष्य पर डिफ़ॉल्ट रूप से सक्षम (uClinux, SymbianOS) जहां रनटाइम लोडर लगाता है
यह प्रतिबंध, और कब -एफपीआईसी or -एफपीआईसी अधिकृत है।

-एमफिक्स-कॉर्टेक्स-एम3-एलडीआरडी
कुछ Cortex-M3 कोर डेटा भ्रष्टाचार का कारण बन सकते हैं जब "ldrd" निर्देश के साथ
अतिव्यापी गंतव्य और आधार रजिस्टरों का उपयोग किया जाता है। यह विकल्प जनरेट करने से बचता है
ये निर्देश। यह विकल्प डिफ़ॉल्ट रूप से तब सक्षम होता है जब -एमसीपीयू = कोर्टेक्स-एम3 is
निर्दिष्ट।

-मुना-संरेखित-पहुंच
-मनो-असंरेखित-पहुंच
पतों से 16- और 32-बिट मानों को पढ़ने और लिखने को सक्षम (या अक्षम) करता है
जो 16- या 32-बिट संरेखित नहीं हैं। डिफ़ॉल्ट रूप से असंरेखित पहुंच सभी के लिए अक्षम है
पूर्व ARMv6 और सभी ARMv6-M आर्किटेक्चर, और अन्य सभी आर्किटेक्चर के लिए सक्षम। अगर
असंरेखित पहुँच सक्षम नहीं है तो पैक किए गए डेटा संरचनाओं में शब्दों का उपयोग किया जाता है a
एक बार में बाइट।

ARM विशेषता "Tag_CPU_unaligned_access" को जेनरेट की गई ऑब्जेक्ट फ़ाइल में सेट किया गया है
इस विकल्प की सेटिंग के आधार पर या तो सही या गलत। यदि असंरेखित पहुँच
सक्षम है तो प्रीप्रोसेसर प्रतीक "__ARM_FEATURE_UNALIGNED" भी परिभाषित किया गया है।

-नियॉन-फॉर-64बिट्स
स्केलर 64-बिट संचालन को संभालने के लिए नियॉन का उपयोग करने में सक्षम बनाता है। यह डिफ़ॉल्ट रूप से अक्षम है
चूंकि कोर रजिस्टरों से नियॉन में डेटा ले जाने की लागत अधिक है।

-एमएसलो-फ्लैश-डेटा
मान लें कि फ्लैश से डेटा लोड करना निर्देश प्राप्त करने से धीमा है। इसलिए शाब्दिक
बेहतर प्रदर्शन के लिए लोड कम किया जाता है। यह विकल्प केवल तभी समर्थित होता है जब
एआरएमवी7 एम-प्रोफाइल के लिए संकलन और डिफ़ॉल्ट रूप से बंद।

-masm-वाक्यविन्यास-एकीकृत
मान लें कि इनलाइन असेंबलर एकीकृत एएसएम सिंटैक्स का उपयोग कर रहा है। डिफ़ॉल्ट वर्तमान में बंद है
जिसका अर्थ है विभाजित वाक्य रचना। वर्तमान में यह विकल्प केवल Thumb1 और . के लिए उपलब्ध है
ARM स्थिति और Thumb2 पर कोई प्रभाव नहीं पड़ता है। हालांकि, यह भविष्य के रिलीज में बदल सकता है
जीसीसी विभाजित वाक्यविन्यास को बहिष्कृत माना जाना चाहिए।

-मरेस्ट्रिक्ट-आईटी
ARMv8 के नियमों के अनुरूप आईटी ब्लॉकों के निर्माण को प्रतिबंधित करता है। आईटी ब्लॉक कर सकते हैं
निर्देशों के चुनिंदा सेट से केवल एक 16-बिट निर्देश शामिल है। इस
ARMv8 थंब मोड के लिए डिफ़ॉल्ट रूप से विकल्प चालू होता है।

-प्रिंट-ट्यून-जानकारी
असेंबलर फ़ाइल में टिप्पणी के रूप में सीपीयू ट्यूनिंग जानकारी प्रिंट करें। यह इस्तेमाल किया गया एक विकल्प है
केवल संकलक के प्रतिगमन परीक्षण के लिए और सामान्य उपयोग के लिए अभिप्रेत नहीं है
कोड संकलित करना। डिफाल्ट रूप में यह विकल्प निष्क्रिय है।

AVR ऑप्शंस

इन विकल्पों को AVR कार्यान्वयन के लिए परिभाषित किया गया है:

-एमएमसीयू =एमसीयू
Atmel AVR निर्देश सेट आर्किटेक्चर (ISA) या MCU प्रकार निर्दिष्ट करें।

इस विकल्प के लिए डिफ़ॉल्ट है@टाई{}avr2.

GCC निम्नलिखित AVR उपकरणों और ISAs का समर्थन करता है:

"एवीआर2"
8@टाई{}किब तक प्रोग्राम मेमोरी वाले "क्लासिक" डिवाइस। एमसीयू@टाई{}= "अट्टी 22",
"attiny26", "at90c8534", "at90s2313", "at90s2323", "at90s2333", "at90s2343",
"at90s4414", "at90s4433", "at90s4434", "at90s8515", "at90s8535".

"एवीआर25"
8@टाई{}किब तक प्रोग्राम मेमोरी और "एमओवीडब्ल्यू" के साथ "क्लासिक" डिवाइस
अनुदेश। एमसीयू@tie{}= "ata5272", "ata6616c", "attiny13", "attiny13a",
"attiny2313", "attiny2313a", "attiny24", "attiny24a", "attiny25", "attiny261",
"attiny261a", "attiny43u", "attiny4313", "attiny44", "attiny44a", "attiny441",
"attiny45", "attiny461", "attiny461a", "attiny48", "attiny828", "attiny84",
"attiny84a", "attiny841", "attiny85", "attiny861", "attiny861a", "attiny87",
"attiny88", "at86rf401"।

"एवीआर3"
16@टाई{}किब तक 64@टाई{}किब प्रोग्राम मेमोरी वाले "क्लासिक" डिवाइस।
एमसीयू@tie{}= "at43usb355", "at76c711"।

"एवीआर31"
128@टाई{}किब प्रोग्राम मेमोरी वाले "क्लासिक" डिवाइस। एमसीयू@टाई{}= "एटमेगा103",
"at43usb320"।

"एवीआर35"
16@टाई{}किब तक 64@टाई{}किब प्रोग्राम मेमोरी वाले "क्लासिक" डिवाइस
"MOVW" निर्देश। एमसीयू@tie{}= "ata5505", "ata6617c", "ata664251",
"atmega16u2", "atmega32u2", "atmega8u2", "attiny1634", "attiny167", "at90usb162",
"at90usb82"।

"एवीआर4"
8@टाई{}किब तक प्रोग्राम मेमोरी वाले "उन्नत" डिवाइस। एमसीयू@टाई{}= "एटा6285",
"ata6286", "ata6289", "ata6612c", "atmega48", "atmega48a", "atmega48p",
"atmega48pa", "atmega8", "atmega8a", "atmega8hva", "atmega8515", "atmega8535",
"atmega88", "atmega88a", "atmega88p", "atmega88pa", "at90pwm1", "at90pwm2",
"at90pwm2b", "at90pwm3", "at90pwm3b", "at90pwm81".

"एवीआर5"
16@टाई{}किब तक 64@टाई{}किब प्रोग्राम मेमोरी वाले "उन्नत" डिवाइस।
एमसीयू@tie{}= "ata5702m322", "ata5782", "ata5790", "ata5790n", "ata5795", "ata5831",
"ata6613c", "ata6614q", "atmega16", "atmega16a", "atmega16hva", "atmega16hva2",
"atmega16hvb", "atmega16hvbrevb", "atmega16m1", "atmega16u4", "atmega161",
"atmega162", "atmega163", "atmega164a", "atmega164p", "atmega164pa", "atmega165",
"atmega165a", "atmega165p", "atmega165pa", "atmega168", "atmega168a",
"atmega168p", "atmega168pa", "atmega169", "atmega169a", "atmega169p",
"atmega169pa", "atmega32", "atmega32a", "atmega32c1", "atmega32hvb",
"atmega32hvbrevb", "atmega32m1", "atmega32u4", "atmega32u6", "atmega323",
"atmega324a", "atmega324p", "atmega324pa", "atmega325", "atmega325a",
"atmega325p", "atmega325pa", "atmega3250", "atmega3250a", "atmega3250p",
"atmega3250pa", "atmega328", "atmega328p", "atmega329", "atmega329a",
"atmega329p", "atmega329pa", "atmega3290", "atmega3290a", "atmega3290p",
"atmega3290pa", "atmega406", "atmega64", "atmega64a", "atmega64c1", "atmega64hve",
"atmega64hve2", "atmega64m1", "atmega64rfr2", "atmega640", "atmega644",
"atmega644a", "atmega644p", "atmega644pa", "atmega644rfr2", "atmega645",
"atmega645a", "atmega645p", "atmega6450", "atmega6450a", "atmega6450p",
"atmega649", "atmega649a", "atmega649p", "atmega6490", "atmega6490a",
"atmega6490p", "at90can32", "at90can64", "at90pwm161", "at90pwm216", "at90pwm316",
"at90scr100", "at90usb646", "at90usb647", "at94k", "m3000"।

"एवीआर51"
128@टाई{}किब प्रोग्राम मेमोरी के साथ "उन्नत" डिवाइस। एमसीयू@टाई{}= "एटमेगा128",
"atmega128a", "atmega128rfa1", "atmega128rfr2", "atmega1280", "atmega1281",
"atmega1284", "atmega1284p", "atmega1284rfr2", "at90can128", "at90usb1286",
"at90usb1287"।

"एवीआर6"
3-बाइट पीसी वाले "उन्नत" डिवाइस, यानी 128@टाई से अधिक{}किब प्रोग्राम के साथ
याद। एमसीयू@tie{}= "atmega256rfr2", "atmega2560", "atmega2561", "atmega2564rfr2"।

"avrxmega2"
8@tie{}KiB से अधिक और 64@tie{}KiB प्रोग्राम मेमोरी वाले "XMEGA" डिवाइस।
एमसीयू@tie{}= "atxmega16a4", "atxmega16a4u", "atxmega16c4", "atxmega16d4",
"atxmega16e5", "atxmega32a4", "atxmega32a4u", "atxmega32c3", "atxmega32c4",
"atxmega32d3", "atxmega32d4", "atxmega32e5", "atxmega8e5".

"avrxmega4"
64@टाई{}किब और 128@टाई{}किब प्रोग्राम वाले "एक्सएमईजीए" डिवाइस
याद। एमसीयू@tie{}= "atxmega64a3", "atxmega64a3u", "atxmega64a4u", "atxmega64b1",
"atxmega64b3", "atxmega64c3", "atxmega64d3", "atxmega64d4".

"avrxmega5"
64@टाई{}किब और 128@टाई{}किब प्रोग्राम वाले "एक्सएमईजीए" डिवाइस
मेमोरी और 64@टाई{}किब रैम से अधिक। एमसीयू@tie{}= "atxmega64a1",
"atxmega64a1u"।

"avrxmega6"
128@टाई{}KiB प्रोग्राम मेमोरी से अधिक वाले "XMEGA" डिवाइस। एमसीयू@टाई{}=
"atxmega128a3", "atxmega128a3u", "atxmega128b1", "atxmega128b3", "atxmega128c3",
"atxmega128d3", "atxmega128d4", "atxmega192a3", "atxmega192a3u", "atxmega192c3",
"atxmega192d3", "atxmega256a3", "atxmega256a3b", "atxmega256a3bu",
"atxmega256a3u", "atxmega256c3", "atxmega256d3", "atxmega384c3", "atxmega384d3".

"avrxmega7"
128@टाई{}KiB प्रोग्राम मेमोरी और इससे अधिक के साथ "XMEGA" डिवाइस
64@टाई{}किब रैम। एमसीयू@tie{}= "atxmega128a1", "atxmega128a1u", "atxmega128a4u"।

"अवर्टिनी"
512@टाई{}बी अप टू 4@टाई{}किब प्रोग्राम मेमोरी के साथ "टिनी" टिनी कोर डिवाइस।
एमसीयू@tie{}= "attiny10", "attiny20", "attiny4", "attiny40", "attiny5", "attiny9"।

"एवीआर1"
यह आईएसए न्यूनतम एवीआर कोर द्वारा कार्यान्वित किया गया है और केवल असेंबलर के लिए समर्थित है।
एमसीयू@tie{}= "attiny11", "attiny12", "attiny15", "attiny28", "at90s1200"।

-संकुचित-आर्ग्स
आउटगोइंग फ़ंक्शन तर्कों को संचित करें और के लिए आवश्यक स्टैक स्थान प्राप्त करें/रिलीज़ करें
फ़ंक्शन प्रस्तावना/उपसंहार में एक बार आउटगोइंग फ़ंक्शन तर्क। इस विकल्प के बिना,
किसी फ़ंक्शन को कॉल करने से पहले आउटगोइंग तर्कों को धक्का दिया जाता है और बाद में पॉप किया जाता है।

फ़ंक्शन कॉल के बाद तर्कों को रोकना AVR पर महंगा हो सकता है ताकि
स्टैक स्पेस को जमा करने से छोटे निष्पादन योग्य हो सकते हैं क्योंकि तर्कों की आवश्यकता होती है
ऐसे फ़ंक्शन कॉल के बाद स्टैक से हटाया नहीं जाना चाहिए।

यह विकल्प कई कॉल करने वाले कार्यों के लिए कोड आकार को कम कर सकता है
फ़ंक्शंस जो स्टैक पर उनके तर्क प्राप्त करते हैं जैसे प्रिंटफ-जैसे फ़ंक्शंस को कॉल करते हैं।

- शाखा-लागत =लागत
सशर्त शाखा निर्देशों के लिए शाखा लागत को इस पर सेट करें लागत. उचित मूल्य
एसटी लागत छोटे, गैर-ऋणात्मक पूर्णांक हैं। डिफ़ॉल्ट शाखा लागत 0 है।

-mcall-प्रस्तावना
कार्य प्रस्तावनाओं/उपसंहारों का विस्तार उपयुक्त सबरूटीन्स के लिए कॉल के रूप में किया जाता है। कोड
आकार छोटा है।

-मिंट8
"int" को 8-बिट पूर्णांक मान लें। यह सभी प्रकार के आकारों को प्रभावित करता है: एक "चार" 1 है
बाइट, एक "इंट" 1 बाइट है, एक "लॉन्ग" 2 बाइट्स है, और "लॉन्ग लॉन्ग" 4 बाइट्स है। कृपया
ध्यान दें कि यह विकल्प C मानकों के अनुरूप नहीं है, लेकिन इसका परिणाम छोटा होता है
कोड आकार।

-एमएन-फ्लैश =संख्या
मान लें कि फ्लैश मेमोरी का आकार है संख्या बार 64@टाई{}किब.

-मनो-बाधित
जेनरेट कोड हार्डवेयर इंटरप्ट के साथ संगत नहीं है। कोड आकार छोटा है।

-मेरेलैक्स
"कॉल" सम्मान को बदलने का प्रयास करें। छोटे "RCALL" सम्मान द्वारा "JMP" निर्देश। "आरजेएमपी"
निर्देश यदि लागू हो। स्थापना -मेरेलैक्स बस जोड़ता है --mlink-आराम विकल्प
असेंबलर की कमांड लाइन और --आराम करना लिंकर की कमांड लाइन का विकल्प।

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

यदि लिंकर स्टब्स की आवश्यकता है तो आराम चालू होना चाहिए, "ईआईएनडी" पर अनुभाग देखें और
नीचे लिंकर स्टब्स।

-एमआरएमडब्ल्यू
मान लें कि डिवाइस रीड-मॉडिफाई-राइट निर्देशों "XCH", "LAC", "LAS" का समर्थन करता है
और "लैट"।

-एमएसपी8
स्टैक पॉइंटर रजिस्टर को 8-बिट रजिस्टर के रूप में मानें, यानी उच्च बाइट मान लें
स्टैक पॉइंटर शून्य है। सामान्य तौर पर, आपको इस विकल्प को हाथ से सेट करने की आवश्यकता नहीं है।

इस विकल्प का उपयोग कंपाइलर द्वारा आंतरिक रूप से मल्टीलिब्स को चुनने और बनाने के लिए किया जाता है
आर्किटेक्चर "avr2" और "avr25"। ये आर्किटेक्चर उपकरणों को साथ और बिना मिलाते हैं
"एसपीएच"। के अलावा किसी भी सेटिंग के लिए -एमएमसीयू = एवीआर 2 or -एमएमसीयू = एवीआर 25 कंपाइलर ड्राइवर जोड़ता है
या इस विकल्प को कंपाइलर की कमांड लाइन से हटा देता है, क्योंकि कंपाइलर
तब पता चलता है कि डिवाइस या आर्किटेक्चर में 8-बिट स्टैक पॉइंटर है और इस प्रकार कोई "एसपीएच" नहीं है
रजिस्टर करें या नहीं।

-मस्ट्रिक्ट-X
हार्डवेयर द्वारा प्रस्तावित तरीके से एड्रेस रजिस्टर "X" का उपयोग करें। इसका मतलब है कि "X" is
केवल अप्रत्यक्ष, पोस्ट-इन्क्रीमेंट या प्री-डिक्रीमेंट एड्रेसिंग में उपयोग किया जाता है।

इस विकल्प के बिना, "X" रजिस्टर का उपयोग उसी तरह किया जा सकता है जैसे "Y" या "Z" जो
फिर अतिरिक्त निर्देशों द्वारा अनुकरण किया जाता है। उदाहरण के लिए, के साथ एक मान लोड करना
एक रजिस्टर में एक छोटे से गैर-नकारात्मक "कॉन्स्ट <64" के साथ "एक्स + कॉन्स" को संबोधित करना Rn is
के रूप में प्रदर्शन किया

आदि r26, कास्ट ; एक्स + = कॉन्स्ट
एलडी , एक्स ; = *X
एसबीआई आर26, कॉन्स्ट; एक्स - = कॉन्स्ट

-मटिनी-स्टैक
स्टैक पॉइंटर के केवल निचले 8@टाई{}बिट्स बदलें।

-नोडेविसेलिब
AVR-LibC की डिवाइस विशिष्ट लाइब्रेरी "libdev.a" से लिंक न करें।

-वाड्र-स्पेस-कन्वर्ट
उस स्थिति में पता स्थान के बीच रूपांतरणों के बारे में चेतावनी दें जहां परिणामी पता
आने वाले पता स्थान में स्थान समाहित नहीं है।

"EIND" और फ्लैश के 128 Ki बाइट्स से अधिक वाले उपकरण

कार्यान्वयन में पॉइंटर्स 16@टाई{}बिट चौड़े हैं। किसी फ़ंक्शन या लेबल का पता
शब्द पते के रूप में दर्शाया गया है ताकि अप्रत्यक्ष कूद और कॉल किसी भी कोड को लक्षित कर सकें
64@टाई{}की वर्ड्स की रेंज में एड्रेस।

128@tie{}Kibytes of . से अधिक वाले उपकरणों पर अप्रत्यक्ष रूप से कूदने की सुविधा के लिए
प्रोग्राम मेमोरी स्पेस, "ईआईएनडी" नामक एक विशेष फ़ंक्शन रजिस्टर है जो इस प्रकार कार्य करता है
लक्ष्य पते का सबसे महत्वपूर्ण हिस्सा जब "EICALL" या "EIJMP" निर्देश हैं
उपयोग किया गया।

इन उपकरणों पर अप्रत्यक्ष कूद और कॉल को कंपाइलर द्वारा निम्नानुसार नियंत्रित किया जाता है और हैं
कुछ सीमाओं के अधीन:

* कंपाइलर कभी भी "EIND" सेट नहीं करता है।

* संकलक "EICALL"/"EIJMP" निर्देशों में निहित रूप से "EIND" का उपयोग करता है या पढ़ सकता है
एक "RET" के माध्यम से एक अप्रत्यक्ष कॉल/कूद का अनुकरण करने के लिए सीधे "EIND"
अनुदेश।

* कंपाइलर मानता है कि "EIND" स्टार्टअप कोड के दौरान या उसके दौरान कभी नहीं बदलता है
आवेदन। विशेष रूप से, "EIND" फ़ंक्शन या इंटरप्ट में सहेजा/बहाल नहीं किया जाता है
सेवा नियमित प्रस्तावना / उपसंहार।

* कार्यों के लिए अप्रत्यक्ष कॉल और गणना किए गए गोटो के लिए, लिंकर उत्पन्न करता है स्टब्स. स्टब्स
जंप पैड हैं जिन्हें कभी-कभी भी कहा जाता है ट्रैम्पोलाइंस. इस प्रकार, अप्रत्यक्ष कॉल/कूद कूदता है
ऐसा ठूंठ। स्टब में वांछित पते पर सीधी छलांग होती है।

* लिंकर छूट को चालू किया जाना चाहिए ताकि लिंकर स्टब्स को सही ढंग से उत्पन्न करे
सभी स्थितियों में। कंपाइलर विकल्प देखें -मेरेलैक्स और लिंकर विकल्प --आराम करना.
ऐसे कोने के मामले हैं जहां लिंकर को स्टब्स उत्पन्न करना चाहिए, लेकिन बंद हो जाता है
आराम के बिना और एक उपयोगी त्रुटि संदेश के बिना।

* डिफ़ॉल्ट लिंकर स्क्रिप्ट "EIND = 0" वाले कोड के लिए व्यवस्थित है। यदि कोड माना जाता है
"EIND != 0" के साथ एक सेटअप के लिए काम करने के लिए, एक कस्टम लिंकर स्क्रिप्ट का उपयोग क्रम में किया जाना है
उन खंडों को रखने के लिए जिनका नाम ".trampolines" से शुरू होता है, उस खंड में जहां
"ईएनडी" इंगित करता है।

* libgcc का स्टार्टअप कोड कभी भी "EIND" सेट नहीं करता है। ध्यान दें कि स्टार्टअप कोड एक मिश्रण है
libgcc और AVR-LibC से कोड का। "EIND" पर AVR-LibC के प्रभाव के लिए, AVR देखें-
LibC उपयोगकर्ता पुस्तिका ("http://nongnu.org/avr-libc/user-manual/").

* उपयोगकर्ता-विशिष्ट स्टार्टअप कोड के लिए "EIND" को जल्दी सेट करना वैध है, उदाहरण के लिए
".init3" खंड में स्थित आरंभीकरण कोड का साधन। ऐसा कोड . से पहले चलता है
सामान्य स्टार्टअप कोड जो रैम को इनिशियलाइज़ करता है और कंस्ट्रक्टर्स को कॉल करता है, लेकिन बिट के बाद
AVR-LibC से स्टार्टअप कोड जो "EIND" को उस सेगमेंट में सेट करता है जहां वेक्टर टेबल है
स्थित है.

#शामिल

स्थिर शून्य
__attribute__((अनुभाग (".init3"), नग्न, प्रयुक्त, no_instrument_function))
init3_set_eind (शून्य)
{
__asm ​​वोलेटाइल ("ldi r24,pm_hh8(__trampolines_start)\n\t"
"आउट %i0,r24" :: "n" (&EIND): "r24", "मेमोरी");
}

लिंकर स्क्रिप्ट में "__trampolines_start" प्रतीक परिभाषित किया गया है।

* स्टब्स स्वचालित रूप से लिंकर द्वारा उत्पन्न होते हैं यदि निम्नलिखित दो स्थितियां हैं:
मिला:

-
(के लिए कम उत्पन्न स्टब्स) इस तरह:

एलडीआई r24, lo8 (जीएस ( ))
एलडीआई r25, hi8(gs( ))

-
बाहर वह खंड जहां स्टब्स स्थित हैं।

* कंपाइलर निम्नलिखित स्थितियों में कोड लेबल के लिए ऐसे "जीएस" संशोधक का उत्सर्जन करता है:

-
-
- -mcall-प्रस्तावना>
कमांड लाइन विकल्प।

-
टेबल आप निर्दिष्ट कर सकते हैं -फनो-जंप-टेबल कमांड लाइन विकल्प।

-
-
* गैर-प्रतीकात्मक पतों पर इस तरह कूदना है नहीं समर्थित:

मुख्य अंतर (शून्य)
{
/* वर्ड एड्रेस 0x2 पर कॉल फंक्शन */
वापसी ((इंट (*) (शून्य)) 0x2) ();
}

इसके बजाय, एक स्टब सेट करना होगा, यानी फ़ंक्शन को एक प्रतीक के माध्यम से कॉल करना होगा
("func_4" उदाहरण में):

मुख्य अंतर (शून्य)
{
बाहरी इंट func_4 (शून्य);

/* बाइट एड्रेस 0x4 पर कॉल फंक्शन */
वापसी func_4 ();
}

और आवेदन के साथ जुड़ा होना चाहिए -Wl,--defsym,func_4=0x4. वैकल्पिक रूप से, "func_4"
लिंकर स्क्रिप्ट में परिभाषित किया जा सकता है।

"RAMPD", "RAMPX", "RAMPY" और "RAMPZ" विशेष कार्य रजिस्टरों का संचालन

कुछ AVR डिवाइस 64@टाई{}किब रेंज से बड़ी मेमोरी को सपोर्ट करते हैं, जिसे एक्सेस किया जा सकता है
16-बिट पॉइंटर्स के साथ। इस 64@टाई{}किब रेंज के बाहर स्मृति स्थानों तक पहुंचने के लिए,
"RAMP" रजिस्टर की सामग्री का उपयोग पते के उच्च भाग के रूप में किया जाता है: "X", "Y", "Z"
पता रजिस्टर "RAMPX", "RAMPY", "RAMPZ" विशेष फ़ंक्शन के साथ जुड़ा हुआ है
एक विस्तृत पता प्राप्त करने के लिए क्रमशः रजिस्टर करें। इसी तरह, "RAMPD" का प्रयोग किसके साथ किया जाता है
सीधा संबोधन।

* स्टार्टअप कोड "RAMP" स्पेशल फंक्शन रजिस्टर को शून्य से इनिशियलाइज़ करता है।

* यदि एक AVR नामांकित पता रिक्त स्थान, नामित पता अंतरिक्ष जेनेरिक के अलावा या "__flash" is
उपयोग किया जाता है, फिर "RAMPZ" को ऑपरेशन से पहले आवश्यकतानुसार सेट किया जाता है।

* अगर डिवाइस 64@tie{}KiB से बड़े RAM को सपोर्ट करता है और कंपाइलर को बदलने की जरूरत है
एक ऑपरेशन को पूरा करने के लिए "RAMPZ", ऑपरेशन के बाद "RAMPZ" को शून्य पर रीसेट कर दिया जाता है।

* यदि डिवाइस एक विशिष्ट "रैंप" रजिस्टर के साथ आता है, तो आईएसआर प्रस्तावना/उपसंहार
उस एसएफआर को सहेजता/पुनर्स्थापित करता है और आईएसआर कोड के मामले में इसे शून्य से प्रारंभ करता है
(निहित) इसका उपयोग करें।

* 64@tie से बड़ी RAM{}KiB, AVR लक्ष्यों के लिए GCC द्वारा समर्थित नहीं है। यदि तुम प्रयोग करते हो
इनलाइन असेंबलर 16-बिट एड्रेस रेंज के बाहर के स्थानों से पढ़ने और बदलने के लिए
"RAMP" रजिस्टरों में से एक, आपको एक्सेस के बाद इसे शून्य पर रीसेट करना होगा।

AVR बिल्ट-इन मैक्रोज़

जीसीसी कई अंतर्निहित मैक्रो को परिभाषित करता है ताकि उपयोगकर्ता कोड उपस्थिति के लिए परीक्षण कर सके या
सुविधाओं का अभाव। निम्नलिखित में से लगभग कोई भी अंतर्निहित मैक्रो डिवाइस से काटा जाता है
क्षमताओं और इस प्रकार द्वारा ट्रिगर किया गया -एमएमसीयू = कमांड लाइन विकल्प।

और भी अधिक AVR-विशिष्ट अंतर्निर्मित मैक्रोज़ के लिए देखें AVR नामांकित पता Spaces और AVR अन्तर्निर्मित में
कार्य.

"__AVR_ARCH__"
बिल्ड-इन मैक्रो जो एक दशमलव संख्या को हल करता है जो आर्किटेक्चर की पहचान करता है और
पर निर्भर करता है -एमएमसीयू =एमसीयू विकल्प। संभावित मान हैं:

2, 25, 3, 31, 35, 4, 5, 51, 6

एसटी एमसीयू="avr2", "avr25", "avr3", "avr31", "avr35", "avr4", "avr5", "avr51", "avr6",

क्रमशः और

100, 102, 104 105, 106, 107

एसटी एमसीयू="avrtiny", "avrxmega2", "avrxmega4", "avrxmega5", "avrxmega6", "avrxmega7",
क्रमश। अगर एमसीयू डिवाइस निर्दिष्ट करता है, यह अंतर्निहित मैक्रो तदनुसार सेट किया गया है। के लिये
उदाहरण, साथ -एमएमसीयू = atmega8 मैक्रो को 4 से परिभाषित किया गया है।

"__AVR_युक्ति__"
की स्थापना -एमएमसीयू =युक्ति इस बिल्ट-इन मैक्रो को परिभाषित करता है जो डिवाइस के नाम को दर्शाता है। के लिये
उदाहरण, -एमएमसीयू = atmega8 अंतर्निहित मैक्रो "__AVR_ATmega8__" को परिभाषित करता है, -एमएमसीयू=एटिनी261ए
परिभाषित करता है "__AVR_ATtiny261A__", आदि।

अंतर्निहित मैक्रोज़ के नाम "__AVR_" योजना का अनुसरण करते हैंयुक्ति__" जहां युक्ति विश्व का सबसे लोकप्रिय एंव
डिवाइस का नाम AVR उपयोगकर्ता पुस्तिका से लिया गया है। बीच में अंतर युक्ति बिल्ट-इन में
मैक्रो और युक्ति in -एमएमसीयू =युक्ति यह है कि उत्तरार्द्ध हमेशा लोअरकेस होता है।

If युक्ति एक उपकरण नहीं है बल्कि केवल एक मुख्य वास्तुकला है जैसे avr51, यह मैक्रो नहीं है
परिभाषित।

"__AVR_DEVICE_NAME__"
की स्थापना -एमएमसीयू =युक्ति इस अंतर्निहित मैक्रो को डिवाइस के नाम पर परिभाषित करता है। उदाहरण के लिए,
साथ में -एमएमसीयू = atmega8 मैक्रो को "atmega8" के रूप में परिभाषित किया गया है।

If युक्ति एक उपकरण नहीं है बल्कि केवल एक मुख्य वास्तुकला है जैसे avr51, यह मैक्रो नहीं है
परिभाषित।

"__AVR_XMEGA__"
डिवाइस / आर्किटेक्चर डिवाइस के XMEGA परिवार से संबंधित है।

"__AVR_HAVE_ELPM__"
डिवाइस में "ELPM" निर्देश है।

"__AVR_HAVE_ELPMX__"
डिवाइस में "ELPM R ." हैएन, जेड" और "ईएलपीएम आरएन, जेड+" निर्देश.

"__AVR_HAVE_MOVW__"
डिवाइस में 16-बिट रजिस्टर-रजिस्टर चालें करने के लिए "MOVW" निर्देश है।

"__AVR_HAVE_LPMX__"
डिवाइस में "LPM R ." हैएन, जेड" और "एलपीएम आरएन, जेड+" निर्देश.

"__AVR_HAVE_MUL__"
डिवाइस में एक हार्डवेयर गुणक है।

"__AVR_HAVE_JMP_CALL__"
डिवाइस में "JMP" और "CALL" निर्देश हैं। यह उन उपकरणों के मामले में है
कम से कम 16@टाई{}किब प्रोग्राम मेमोरी।

"__AVR_HAVE_EIJMP_EICALL__"
"__AVR_3_BYTE_PC__"
डिवाइस में "EIJMP" और "EICALL" निर्देश हैं। उपकरणों के लिए यह मामला है
128@टाई{}KiB से अधिक प्रोग्राम मेमोरी के साथ। इसका मतलब यह भी है कि कार्यक्रम
काउंटर (पीसी) 3@टाई{}बाइट चौड़ा है।

"__AVR_2_BYTE_PC__"
प्रोग्राम काउंटर (पीसी) 2@टाई{}बाइट चौड़ा है। तक के उपकरणों के लिए यह मामला है
128@टाई{}किब ऑफ प्रोग्राम मेमोरी।

"__AVR_HAVE_8BIT_SP__"
"__AVR_HAVE_16BIT_SP__"
स्टैक पॉइंटर (एसपी) रजिस्टर को क्रमशः 8-बिट के रूप में माना जाता है 16-बिट रजिस्टर द्वारा
संकलक। इन मैक्रोज़ की परिभाषा इससे प्रभावित होती है -मटिनी-स्टैक.

"__AVR_HAVE_SPH__"
"__AVR_SP8__"
डिवाइस में एसपीएच (स्टैक पॉइंटर का उच्च भाग) विशेष फ़ंक्शन रजिस्टर है या है
क्रमशः 8-बिट स्टैक पॉइंटर। इन मैक्रोज़ की परिभाषा इससे प्रभावित होती है
-एमएमसीयू = और के मामलों में -एमएमसीयू = एवीआर 2 और -एमएमसीयू = एवीआर 25 द्वारा भी -एमएसपी8.

"__AVR_HAVE_RAMPD__"
"__AVR_HAVE_RAMPX__"
"__AVR_HAVE_RAMPY__"
"__AVR_HAVE_RAMPZ__"
डिवाइस में "RAMPD", "RAMPX", "RAMPY", "RAMPZ" विशेष फ़ंक्शन रजिस्टर है,
क्रमशः.

"__NO_INTERRUPTS__"
यह मैक्रो दर्शाता है -मनो-बाधित कमांड लाइन विकल्प।

"__AVR_ERRATA_SKIP__"
"__AVR_ERRATA_SKIP_JMP_CALL__"
कुछ AVR डिवाइस (AT90S8515, ATmega103) को 32-बिट निर्देशों को नहीं छोड़ना चाहिए क्योंकि a
हार्डवेयर त्रुटि। छोड़ें निर्देश "SBRS", "SBRC", "SBIS", "SBIC" और "CPSE" हैं।
दूसरा मैक्रो केवल तभी परिभाषित किया जाता है जब "__AVR_HAVE_JMP_CALL__" भी सेट हो।

"__AVR_ISA_RMW__"
डिवाइस में रीड-मॉडिफाई-राइट निर्देश (XCH, LAC, LAS और LAT) हैं।

"__AVR_SFR_OFFSET__=ऑफसेट"
निर्देश जो I/O विशेष कार्य रजिस्टरों को सीधे "IN" की तरह संबोधित कर सकते हैं,
"आउट", "एसबीआई", आदि एक अलग पते का उपयोग कर सकते हैं जैसे कि एक निर्देश द्वारा संबोधित किया गया हो
"एलडी" या "एसटीएस" जैसे रैम तक पहुंचें। यह ऑफसेट डिवाइस आर्किटेक्चर पर निर्भर करता है और है
संबंधित I/O@tie{}पता प्राप्त करने के लिए RAM पते से घटाया जाना है।

"__with_AVRLIBC__"
कंपाइलर को AVR-Libc के साथ उपयोग करने के लिए कॉन्फ़िगर किया गया है। देखें --with-avrlibc
कॉन्फ़िगर विकल्प।

ब्लैकफिन ऑप्शंस

-एमसीपीयू =सीपीयू[-सिरविज़न]
लक्ष्य ब्लैकफिन प्रोसेसर का नाम निर्दिष्ट करता है। वर्तमान में, सीपीयू में से एक हो सकता है
bf512, bf514, bf516, bf518, bf522, bf523, bf524, bf525, bf526, bf527, bf531, bf532,
bf533, bf534, bf536, bf537, bf538, bf539, bf542, bf544, bf547, bf548, bf549, बीएफ542एम,
बीएफ544एम, बीएफ547एम, बीएफ548एम, बीएफ549एम, bf561, bf592.

वैकल्पिक सिरविज़न लक्ष्य ब्लैकफिन के सिलिकॉन संशोधन को निर्दिष्ट करता है
संसाधक लक्षित सिलिकॉन संशोधन के लिए उपलब्ध कोई भी समाधान सक्षम है।
If सिरविज़न is कोई नहीं, कोई समाधान सक्षम नहीं है। अगर सिरविज़न is कोई, सभी
लक्षित प्रोसेसर के लिए समाधान सक्षम हैं। "__SILICON_REVISION__" मैक्रो
दो हेक्साडेसिमल अंकों को परिभाषित किया गया है जो प्रमुख और छोटी संख्याओं का प्रतिनिधित्व करते हैं
सिलिकॉन संशोधन। अगर सिरविज़न is कोई नहीं, "__SILICON_REVISION__" परिभाषित नहीं है।
If सिरविज़न is कोई, "__SILICON_REVISION__" को 0xffff के रूप में परिभाषित किया गया है। अगर यह
वैकल्पिक सिरविज़न का उपयोग नहीं किया जाता है, जीसीसी का नवीनतम ज्ञात सिलिकॉन संशोधन मानता है
लक्षित ब्लैकफिन प्रोसेसर।

जीसीसी निर्दिष्ट के लिए एक प्रीप्रोसेसर मैक्रो को परिभाषित करता है सीपीयू। के लिए बीफिन-एल्फ उपकरण श्रृंखला,
यह विकल्प libgloss द्वारा प्रदान किए गए हार्डवेयर BSP को if . में लिंक करने का कारण बनता है -मसिम is
नहीं दिया।

इस विकल्प के बिना, bf532 डिफ़ॉल्ट रूप से प्रोसेसर के रूप में उपयोग किया जाता है।

ध्यान दें कि समर्थन bf561 अधूरा है। के लिये bf561, केवल प्रीप्रोसेसर मैक्रो है
परिभाषित।

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

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

-mspecld-विसंगति
सक्षम होने पर, कंपाइलर सुनिश्चित करता है कि जेनरेट कोड में शामिल नहीं है
कूद निर्देश के बाद सट्टा भार। यदि इस विकल्प का उपयोग किया जाता है,
"__WORKAROUND_SPECULATIVE_LOADS" परिभाषित किया गया है।

-मनो-स्पेकल्ड-विसंगति
सट्टा लोड होने से रोकने के लिए अतिरिक्त कोड उत्पन्न न करें।

-एमसीसिंक-विसंगति
सक्षम होने पर, कंपाइलर सुनिश्चित करता है कि जनरेट किए गए कोड में CSYNC शामिल नहीं है या
सशर्त शाखाओं के तुरंत बाद SSYNC के निर्देश। यदि इस विकल्प का उपयोग किया जाता है,
"__WORKAROUND_SPECULATIVE_SYNCS" परिभाषित किया गया है।

-मनो-सीसिंक-विसंगति
CSYNC या SSYNC निर्देशों को भी होने से रोकने के लिए अतिरिक्त कोड उत्पन्न न करें
एक सशर्त शाखा के तुरंत बाद।

-एमएलओ-64k
सक्षम होने पर, संकलक इस ज्ञान का लाभ उठाने के लिए स्वतंत्र है कि संपूर्ण
प्रोग्राम कम 64k मेमोरी में फिट बैठता है।

-मनो-लो-64k
मान लें कि प्रोग्राम मनमाने ढंग से बड़ा है। यह डिफ़ॉल्ट है।

-मस्टैक-चेक-l1
uClinux द्वारा L1 स्क्रैचपैड मेमोरी में रखी गई जानकारी का उपयोग करके स्टैक चेकिंग करें
गिरी।

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

-मनो-आईडी-साझा-लाइब्रेरी
कोड उत्पन्न करें जो यह नहीं मानता कि आईडी-आधारित साझा पुस्तकालयों का उपयोग किया जा रहा है। यह है
डिफ़ॉल्ट।

-mleaf-आईडी-साझा-लाइब्रेरी
कोड उत्पन्न करें जो लाइब्रेरी आईडी विधि के माध्यम से साझा पुस्तकालयों का समर्थन करता है, लेकिन मानता है
कि यह पुस्तकालय या निष्पादन योग्य किसी अन्य आईडी साझा पुस्तकालयों के खिलाफ लिंक नहीं होगा।
यह संकलक को छलांग और कॉल के लिए तेज कोड का उपयोग करने की अनुमति देता है।

-मनो-लीफ-आईडी-साझा-लाइब्रेरी
यह न मानें कि संकलित किया जा रहा कोड किसी भी आईडी साझा लाइब्रेरी से लिंक नहीं होगा।
कूदने और कॉल करने के लिए धीमा कोड उत्पन्न होता है।

-mshared-लाइब्रेरी-आईडी = n
संकलित की जा रही आईडी-आधारित साझा लाइब्रेरी की पहचान संख्या निर्दिष्ट करता है।
0 का मान निर्दिष्ट करना अधिक कॉम्पैक्ट कोड उत्पन्न करता है; अन्य मान बलों को निर्दिष्ट करना
वर्तमान पुस्तकालय के लिए उस संख्या का आवंटन लेकिन अब कोई स्थान नहीं है- या समय-
इस विकल्प को छोड़ने से कुशल।

-एमएसईपी-डेटा
कोड उत्पन्न करें जो डेटा खंड को स्मृति के एक अलग क्षेत्र में स्थित होने की अनुमति देता है
पाठ खंड से। यह बिना किसी वातावरण में निष्पादित करने की अनुमति देता है
पाठ अनुभाग के विरुद्ध स्थानान्तरण को समाप्त करके आभासी स्मृति प्रबंधन।

-मनो-सितंबर-डेटा
कोड जेनरेट करें जो मानता है कि डेटा सेगमेंट टेक्स्ट सेगमेंट का अनुसरण करता है। यह है
डिफ़ॉल्ट।

-मलॉन्ग-कॉल
-मनो-लॉन्ग-कॉल
कंपाइलर को पहले का पता लोड करके फंक्शन कॉल करने के लिए कहता है
एक रजिस्टर में कार्य करना और फिर इस रजिस्टर पर एक सबरूटीन कॉल करना। इस
यदि लक्ष्य फ़ंक्शन 24-बिट एड्रेसिंग रेंज के बाहर स्थित है, तो स्विच की आवश्यकता होती है
सबरूटीन कॉल निर्देश का ऑफ़सेट-आधारित संस्करण।

यह सुविधा डिफ़ॉल्ट रूप से सक्षम नहीं है। निर्दिष्ट करना -मनो-लॉन्ग-कॉल बहाल करता है
डिफ़ॉल्ट व्यवहार। ध्यान दें कि कंपाइलर कैसे उत्पन्न करता है इस पर इन स्विच का कोई प्रभाव नहीं पड़ता है
फ़ंक्शन पॉइंटर्स के माध्यम से फ़ंक्शन कॉल को संभालने के लिए कोड।

-एमफास्ट-एफपी
फास्ट फ्लोटिंग-पॉइंट लाइब्रेरी से लिंक करें। यह पुस्तकालय आईईईई में से कुछ को आराम देता है
नॉट-ए-नंबर (एनएएन) के खिलाफ इनपुट की जांच के लिए फ्लोटिंग-पॉइंट मानक के नियम
प्रदर्शन की रुचि।

-मिनलाइन-पीएलटी
फ़ंक्शन कॉल में पीएलटी प्रविष्टियों की इनलाइनिंग सक्षम करें जो फ़ंक्शन के लिए ज्ञात नहीं हैं
स्थानीय रूप से बांधें। इसके बिना कोई प्रभाव नहीं है -एमएफडीपीआईसी.

-मल्टीकोर
मल्टीकोर ब्लैकफिन प्रोसेसर के लिए एक स्टैंडअलोन एप्लिकेशन बनाएं। इस विकल्प का कारण बनता है
उपयोग की जाने वाली मल्टीकोर का समर्थन करने वाली उचित प्रारंभ फ़ाइलें और लिंक स्क्रिप्ट, और परिभाषित करता है
मैक्रो "__BFIN_MULTICORE"। इसका उपयोग केवल के साथ किया जा सकता है -एमसीपीयू = बीएफ561[-सिरविज़न].

इस विकल्प के साथ इस्तेमाल किया जा सकता है -मकोरिया or -मकोरबे, जो एक-आवेदन का चयन करता है-
प्रति-कोर प्रोग्रामिंग मॉडल। के बग़ैर -मकोरिया or -मकोरबे,
सिंगल-एप्लिकेशन/डुअल-कोर प्रोग्रामिंग मॉडल का उपयोग किया जाता है। इस मॉडल में, मुख्य
कोर बी के कार्य को "coreb_main" के रूप में नामित किया जाना चाहिए।

यदि इस विकल्प का उपयोग नहीं किया जाता है, तो सिंगल-कोर एप्लिकेशन प्रोग्रामिंग मॉडल का उपयोग किया जाता है।

-मकोरिया
एक-आवेदन-प्रति- का उपयोग करते समय BF561 के कोर ए के लिए एक स्टैंडअलोन एप्लिकेशन बनाएं
कोर प्रोग्रामिंग मॉडल। कोर का समर्थन करने के लिए उचित प्रारंभ फ़ाइलें और लिंक स्क्रिप्ट का उपयोग किया जाता है
ए, और मैक्रो "__BFIN_COREA" परिभाषित किया गया है। इस विकल्प का उपयोग केवल में किया जा सकता है
संयोग के साथ -मल्टीकोर.

-मकोरबे
एक-आवेदन-प्रति- का उपयोग करते समय BF561 के कोर बी के लिए एक स्टैंडअलोन एप्लिकेशन बनाएं
कोर प्रोग्रामिंग मॉडल। कोर का समर्थन करने के लिए उचित प्रारंभ फ़ाइलें और लिंक स्क्रिप्ट का उपयोग किया जाता है
बी, और मैक्रो "__BFIN_COREB" परिभाषित किया गया है। जब इस विकल्प का उपयोग किया जाता है, "coreb_main"
"मुख्य" के बजाय इस्तेमाल किया जाना चाहिए। इस विकल्प का उपयोग केवल के संयोजन में ही किया जा सकता है
-मल्टीकोर.

-एमएसड्राम
एसडीआरएएम के लिए एक स्टैंडअलोन एप्लिकेशन बनाएं। उचित प्रारंभ फ़ाइलें और लिंक स्क्रिप्ट का उपयोग किया जाता है
एप्लिकेशन को SDRAM में डालने के लिए, और मैक्रो "__BFIN_SDRAM" परिभाषित किया गया है। NS
लोडर को एप्लिकेशन लोड करने से पहले SDRAM को इनिशियलाइज़ करना चाहिए।

-मिकप्लब
मान लें कि ICPLBs रन टाइम पर सक्षम हैं। यह कुछ विसंगतियों पर प्रभाव डालता है
उपाय। Linux लक्ष्यों के लिए, डिफ़ॉल्ट यह मान लेना है कि ICPLBs सक्षम हैं; के लिये
स्टैंडअलोन एप्लिकेशन डिफ़ॉल्ट बंद है।

सी6एक्स ऑप्शंस

-मार्च=नाम
यह लक्ष्य वास्तुकला का नाम निर्दिष्ट करता है। GCC इस नाम का उपयोग यह निर्धारित करने के लिए करता है
असेंबली कोड जनरेट करते समय यह किस प्रकार के निर्देश उत्सर्जित कर सकता है। जायज़
नाम है: C62X, C64X, सी64एक्स+, C67X, सी67एक्स+, C674X.

-मबिग-एंडियन
बड़े-एंडियन लक्ष्य के लिए कोड जनरेट करें।

-थोड़ा-एंडियन
छोटे-एंडियन लक्ष्य के लिए कोड जनरेट करें। यह डिफ़ॉल्ट है।

-मसिम
सिम्युलेटर के लिए उपयुक्त स्टार्टअप फ़ाइलें और लिंकर स्क्रिप्ट चुनें।

-एमएसडेटा = डिफ़ॉल्ट
छोटे वैश्विक और स्थिर डेटा को ".neardata" अनुभाग में रखें, जो कि द्वारा इंगित किया गया है
रजिस्टर "बी 14"। ".bss" अनुभाग में छोटे अप्रारंभीकृत वैश्विक और स्थिर डेटा डालें,
जो ".neardata" खंड के निकट है। इसमें केवल पढ़ने के लिए छोटा डेटा डालें
".rodata" खंड। डेटा के बड़े टुकड़ों के लिए उपयोग किए जाने वाले संबंधित खंड हैं
".fardata", ".far" और ".const"।

-एमएसडेटा = सभी
छोटे डेटा के लिए आरक्षित अनुभागों में, केवल छोटी वस्तुओं को ही नहीं, सभी डेटा डालें, और
उन तक पहुँचने के लिए "B14" रजिस्टर के सापेक्ष एड्रेसिंग का उपयोग करें।

-msdata=कोई नहीं
छोटे डेटा के लिए आरक्षित अनुभागों का उपयोग न करें, और निरपेक्ष पतों का उपयोग करें
सभी डेटा तक पहुंचें। सभी आरंभिक वैश्विक और स्थिर डेटा को ".fardata" में रखें
अनुभाग, और ".far" अनुभाग में सभी अप्रारंभीकृत डेटा। सभी स्थिर डेटा डालें
".const" खंड।

क्रिस ऑप्शंस

इन विकल्पों को विशेष रूप से CRIS पोर्ट के लिए परिभाषित किया गया है।

-मार्च=वास्तुकला-प्रकार
-एमसीपीयू =वास्तुकला-प्रकार
निर्दिष्ट आर्किटेक्चर के लिए कोड जेनरेट करें। के लिए विकल्प वास्तुकला-प्रकार रहे
v3, v8 और v10 क्रमशः ETRAX 4, ETRAX 100 और ETRAX 100 LX के लिए। डिफ़ॉल्ट है v0
क्रिस-अक्ष-लिनक्स-ग्नू को छोड़कर, जहां डिफ़ॉल्ट है v10.

-मट्यून =वास्तुकला-प्रकार
ट्यून टू वास्तुकला-प्रकार जनरेट किए गए कोड के बारे में सब कुछ लागू है, सिवाय इसके कि
एबीआई और उपलब्ध निर्देशों का सेट। के लिए विकल्प वास्तुकला-प्रकार रहे
के लिए के समान -मार्च=वास्तुकला-प्रकार.

-एमएमएक्स-स्टैक-फ्रेम =n
किसी फ़ंक्शन के स्टैक फ्रेम से अधिक होने पर चेतावनी दें n बाइट्स।

-मेट्रैक्स4
-मेट्रैक्स100
विकल्प -मेट्रैक्स4 और -मेट्रैक्स100 के पर्यायवाची हैं -मार्च=v3 और -मार्च=v8
क्रमशः.

-mmul-बग-समाधान
-मनो-मुल-बग-वर्कअराउंड
सीपीयू मॉडल के लिए "मल्स" और "मुलु" निर्देशों में एक बग के आसपास काम करें जहां यह
लागू होता है। यह विकल्प डिफ़ॉल्ट रूप से सक्रिय है।

-एमपीडीबग
असेंबली कोड में CRIS-विशिष्ट वर्बोज़ डीबग-संबंधित जानकारी सक्षम करें। इस
विकल्प का भी बंद करने का प्रभाव पड़ता है #NO_APP को स्वरूपित-कोड संकेतक
असेंबली फ़ाइल की शुरुआत में असेंबलर।

-एमसीसी-इनिट
पिछले निर्देश के कंडीशन-कोड परिणामों का उपयोग न करें; हमेशा तुलना करें और
कंडीशन कोड के उपयोग से पहले परीक्षण निर्देश।

-मनो-दुष्प्रभाव
पोस्ट- के अलावा अन्य तरीकों को संबोधित करने में साइड इफेक्ट वाले निर्देशों का उत्सर्जन न करें-
वेतन वृद्धि।

-मस्टैक-संरेखण
-मनो-स्टैक-संरेखण
-mdata-संरेखण
-मनो-डेटा-संरेखण
-mconst-संरेखण
-मनो-कॉन्स्ट-संरेखण
ये विकल्प (नहीं- विकल्प) स्टैक फ्रेम के लिए व्यवस्था (व्यवस्था समाप्त) करें,
व्यक्तिगत डेटा और स्थिरांक को अधिकतम एकल डेटा एक्सेस आकार के लिए संरेखित किया जाना है
चुने हुए CPU मॉडल के लिए। डिफ़ॉल्ट 32-बिट संरेखण की व्यवस्था करना है। अबी
संरचना लेआउट जैसे विवरण इन विकल्पों से प्रभावित नहीं होते हैं।

-एम 32-बिट
-एम 16-बिट
-एम 8-बिट
उपरोक्त स्टैक-डेटा- और कॉन्स्ट-एलाइन विकल्पों के समान, ये विकल्प व्यवस्था करते हैं
स्टैक फ्रेम, लिखने योग्य डेटा और स्थिरांक सभी 32-बिट, 16-बिट या 8-बिट संरेखित हों।
डिफ़ॉल्ट 32-बिट संरेखण है।

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

-मनो-गॉटप्लाट
-एमजीओटीपीएलटी
- -एफपीआईसी और -एफपीआईसी, लोड करने वाले निर्देश अनुक्रम उत्पन्न (उत्पन्न करें) न करें
जीओटी के पीएलटी भाग से कार्यों के लिए पते के बजाय (अन्य पर पारंपरिक
आर्किटेक्चर) पीएलटी को कॉल करता है। डिफ़ॉल्ट है -एमजीओटीपीएलटी.

-मेल्फ़
लीगेसी नो-ऑप विकल्प केवल क्रिस-अक्ष-एल्फ और क्रिस-अक्ष-लिनक्स-ग्नू के साथ मान्यता प्राप्त है
लक्ष्य।

-मिलिनक्स
लीगेसी नो-ऑप विकल्प केवल क्रिस-अक्ष-लिनक्स-ग्नू लक्ष्य के साथ पहचाना जाता है।

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

-सिम2
पसंद -सिम, लेकिन 0x40000000 और शून्य पर आरंभिक डेटा का पता लगाने के लिए लिंकर विकल्प पास करें-
0x80000000 पर आरंभिक डेटा।

CR16 ऑप्शंस

इन विकल्पों को विशेष रूप से CR16 पोर्ट के लिए परिभाषित किया गया है।

-एमएमएसी
गुणन-संचय निर्देशों के उपयोग को सक्षम करें। डिफ़ॉल्ट रूप से अक्षम।

-एमसीआर16सीप्लस
-एमसीआर16सी
CR16C या CR16C+ आर्किटेक्चर के लिए कोड जेनरेट करें। CR16C+ आर्किटेक्चर डिफ़ॉल्ट है।

-मसिम
पुस्तकालय libsim.a को लिंक करता है जो सिम्युलेटर के साथ संगत है। ईएलएफ के लिए लागू
केवल संकलक।

-मिंट32
पूर्णांक प्रकार को 32-बिट चौड़ा चुनें।

-एमबिट-ऑप्स
बिट जोड़तोड़ के लिए "sbit"/"cbit" निर्देश उत्पन्न करता है।

-mdata-मॉडल=आदर्श
एक डेटा मॉडल चुनें। के लिए विकल्प आदर्श रहे पास, दूर or मध्यम. मध्यम डिफ़ॉल्ट है।
हालांकि, दूर के साथ मान्य नहीं है -एमसीआर16सी, क्योंकि CR16C आर्किटेक्चर इसका समर्थन नहीं करता है
दूर डेटा मॉडल।

डार्विन ऑप्शंस

ये विकल्प डार्विन ऑपरेटिंग सिस्टम को चलाने वाले सभी आर्किटेक्चर के लिए परिभाषित हैं।

डार्विन पर FSF GCC "वसा" ऑब्जेक्ट फ़ाइलें नहीं बनाता है; यह के लिए एक वस्तु फ़ाइल बनाता है
एकल वास्तुकला जिसे GCC को लक्षित करने के लिए बनाया गया था। डार्विन पर Apple का GCC "वसा" बनाता है
फ़ाइलें यदि एकाधिक —करना विकल्पों का उपयोग किया जाता है; यह कंपाइलर या लिंकर चलाकर ऐसा करता है
कई बार और परिणामों को एक साथ जोड़ना लाइपो.

बनाई गई फ़ाइल का उपप्रकार (जैसे पीपीसी7400 or पीपीसी970 or i686) द्वारा निर्धारित किया जाता है
झंडे जो ISA को निर्दिष्ट करते हैं जिसे GCC लक्षित कर रहा है, जैसे -एमसीपीयू or मार्च
-force_cpusubtype_ALL इसे ओवरराइड करने के लिए विकल्प का उपयोग किया जा सकता है।

आईएसए बेमेल के साथ प्रस्तुत किए जाने पर डार्विन उपकरण उनके व्यवहार में भिन्न होते हैं। NS
असेंबलर, as, केवल उन निर्देशों का उपयोग करने की अनुमति देता है जो उपप्रकार के लिए मान्य हैं
फ़ाइल उत्पन्न कर रहा है, इसलिए आप 64-बिट निर्देशों को a . में नहीं डाल सकते हैं पीपीसी750 वस्तु फ़ाइल। NS
साझा पुस्तकालयों के लिए लिंकर, /usr/bin/libtool, विफल रहता है और अगर पूछा जाए तो एक त्रुटि प्रिंट करता है
अपनी इनपुट फ़ाइलों की तुलना में कम प्रतिबंधात्मक उपप्रकार के साथ एक साझा लाइब्रेरी बनाएं (के लिए
उदाहरण के लिए, एक डालने की कोशिश कर रहा है पीपीसी970 ऑब्जेक्ट फ़ाइल a पीपीसी7400 पुस्तकालय)। के लिए लिंकर
निष्पादन योग्य, ld, चुपचाप निष्पादन योग्य को इसके किसी भी का सबसे प्रतिबंधात्मक उपप्रकार देता है
इनपुट फ़ाइलें।

-Fदीर
ढांचा निर्देशिका जोड़ें दीर खोजी जाने वाली निर्देशिकाओं की सूची के शीर्ष पर
हेडर फाइलों के लिए। इन निर्देशिकाओं को उनके द्वारा निर्दिष्ट के साथ अंतःस्थापित किया गया है -I
विकल्प और बाएं से दाएं क्रम में स्कैन किए जाते हैं।

एक फ्रेमवर्क डायरेक्टरी एक डायरेक्टरी है जिसमें फ्रेमवर्क होता है। एक ढांचा है a
a . के साथ निर्देशिका शीर्ष लेख और / या निजी शीर्षलेख निर्देशिका इसमें सीधे निहित है कि
में समाप्त होता है .ढांचा. एक ढांचे का नाम इस निर्देशिका का नाम है, को छोड़कर
la .ढांचा. ढांचे से जुड़े शीर्षलेख उन दो में से एक में पाए जाते हैं
निर्देशिका, साथ शीर्ष लेख पहले खोजा जा रहा है। एक सबफ्रेमवर्क एक ढांचा है
निर्देशिका जो एक ढांचे में है चौखटे निर्देशिका। सबफ्रेमवर्क शामिल है
हेडर केवल उस फ्रेमवर्क के हेडर में दिखाई दे सकते हैं जिसमें सबफ्रेमवर्क होता है, या
एक भाई सबफ्रेमवर्क हेडर में। दो सबफ्रेमवर्क भाई-बहन हैं यदि वे में होते हैं
एक ही ढांचा। एक सबफ़्रेमवर्क का नाम फ़्रेमवर्क के समान नहीं होना चाहिए; ए
इसका उल्लंघन करने पर चेतावनी जारी की जाती है। वर्तमान में एक सबफ्रेमवर्क नहीं हो सकता
सबफ्रेमवर्क; भविष्य में, इसका समर्थन करने के लिए तंत्र को बढ़ाया जा सकता है। NS
मानक ढांचे में पाया जा सकता है / सिस्टम / लाइब्रेरी / फ़्रेमवर्क और
/ Library / Frameworks. एक उदाहरण में शामिल है "#शामिल करें . जैसा दिखता है ",
जहां ढांचा ढांचे के नाम को दर्शाता है और हेडर.एच में पाया जाता है
निजी शीर्षलेख or शीर्ष लेख निर्देशिका.

-आईफ्रेमवर्कदीर
पसंद -F निर्देशिका को छोड़कर एक सिस्टम निर्देशिका के रूप में माना जाता है। मुख्य अंतर
इस बीच -आईफ्रेमवर्क और -F वह है -आईफ्रेमवर्क संकलक चेतावनी नहीं देता
के माध्यम से मिली हेडर फाइलों के भीतर निहित निर्माणों के बारे में दीर. यह विकल्प मान्य है
केवल भाषाओं के C परिवार के लिए।

-गुस्ड
उपयोग किए जाने वाले प्रतीकों के लिए डिबगिंग जानकारी उत्सर्जित करें। स्टैब्स डिबगिंग प्रारूप के लिए,
यह सक्षम करता है -फेलिमिनेट-अप्रयुक्त-डीबग-प्रतीक. यह डिफ़ॉल्ट रूप से चालू है।

-गफुल
सभी प्रतीकों और प्रकारों के लिए डिबगिंग जानकारी उत्सर्जित करें।

-mmacosx-संस्करण-मिनट=संस्करण
MacOS X का सबसे पुराना संस्करण जिस पर यह निष्पादन योग्य चलेगा, वह है संस्करण। ठेठ
के मान संस्करण 10.1, 10.2 और 10.3.9 शामिल हैं।

यदि कंपाइलर को डिफ़ॉल्ट रूप से सिस्टम के हेडर का उपयोग करने के लिए बनाया गया था, तो डिफ़ॉल्ट के लिए
यह विकल्प सिस्टम संस्करण है जिस पर संकलक चल रहा है, अन्यथा
डिफ़ॉल्ट रूप से ऐसे विकल्प चुनना है जो जितने सिस्टम और कोड बेस के साथ संगत हों
संभव.

-मकर्नेल
कर्नेल विकास मोड सक्षम करें। NS -मकर्नेल विकल्प सेट स्थैतिक, -फनो-कॉमन,
-फनो-यूज-सीएक्सए-एटेक्सिट, -फनो-अपवाद, -फनो-नॉन-कॉल-अपवाद, -फ़प्पल-केक्स्ट,
-फनो-कमजोर और -फनो-आरटीटीआई जहां लागू। यह मोड भी सेट करता है -मनो-altivec,
-एमसॉफ्ट-फ्लोट, -फनो-बिल्टिन और -मलॉन्ग-शाखा पावरपीसी लक्ष्यों के लिए।

-मोन-बाइट-बूल
"बूल" के लिए डिफ़ॉल्ट को ओवरराइड करें ताकि "आकार (बूल) == 1"। डिफ़ॉल्ट रूप से "आकार (बूल)"
डार्विन/पावरपीसी के लिए संकलन करते समय 4 है और डार्विन/x1 के लिए संकलन करते समय 86 है, इसलिए यह
विकल्प का x86 पर कोई प्रभाव नहीं पड़ता है।

चेतावनी: RSI -मोन-बाइट-बूल स्विच जीसीसी को कोड उत्पन्न करने का कारण बनता है जो बाइनरी नहीं है
उस स्विच के बिना उत्पन्न कोड के साथ संगत। इस स्विच का उपयोग करने की आवश्यकता हो सकती है
सिस्टम लाइब्रेरी सहित किसी प्रोग्राम में अन्य सभी मॉड्यूल्स को फिर से कंपाइल करना। इस का उपयोग करें
एक गैर-डिफ़ॉल्ट डेटा मॉडल के अनुरूप स्विच करें।

-एमफिक्स-और-जारी रखें
-फिक्स-और-जारी रखें
-findirect-डेटा
तेजी से बदलाव के विकास के लिए उपयुक्त कोड उत्पन्न करें, जैसे कि GDB को अनुमति देने के लिए
गतिशील रूप से लोड .o पहले से चल रहे कार्यक्रमों में फ़ाइलें। -findirect-डेटा और
-फिक्स-और-जारी रखें पश्च संगतता के लिए प्रदान की जाती हैं।

-सभी_लोड
स्थिर संग्रह पुस्तकालयों के सभी सदस्यों को लोड करता है। आदमी देखें ld(1) अधिक जानकारी के लिए।

-आर्च_एरर्स_फेटल
घातक होने के लिए गलत आर्किटेक्चर वाली फ़ाइलों के साथ होने वाली त्रुटियों का कारण।

-बाइंड_एट_लोड
आउटपुट फ़ाइल को इस तरह चिह्नित करने का कारण बनता है कि डायनेमिक लिंकर सभी को बाइंड कर देगा
फ़ाइल लोड या लॉन्च होने पर अपरिभाषित संदर्भ।

-बंडला
Mach-o बंडल प्रारूप फ़ाइल बनाएँ। आदमी देखें ld(1) अधिक जानकारी के लिए।

-बंडल_लोडर निष्पादन
यह विकल्प निर्दिष्ट करता है निष्पादन जो बिल्ड आउटपुट फ़ाइल को लोड करेगा
जुड़े हुए। आदमी देखें ld(1) अधिक जानकारी के लिए।

-गतिशीललिब
इस विकल्प को पारित करने पर, जीसीसी एक निष्पादन योग्य के बजाय एक गतिशील पुस्तकालय उत्पन्न करता है जब
डार्विन का उपयोग करते हुए जोड़ना libtool आदेश।

-force_cpusubtype_ALL
इसके कारण GCC की आउटपुट फ़ाइल में होती है सब उपप्रकार, द्वारा नियंत्रित एक के बजाय
la -एमसीपीयू or मार्च विकल्प.

-स्वीकार्य_क्लाइंट ग्राहक का नाम
-ग्राहक का नाम
-संगतता_संस्करण
-वर्तमान संस्करण
-डेड_स्ट्रिप
-निर्भरता-फ़ाइल
-dylib_file
-डिलिंकर_इंस्टॉल_नाम
-स्वाभाविक
-निर्यात_प्रतीक_सूची
-फ़ाइलसूची
-फ्लैट_नामस्थान
-force_flat_namespace
-हेडरपैड_मैक्स_इंस्टॉल_नाम
-इमेज_बेस
-इस में
-इंस्टॉल_नाम
-निजी_बाहरी रखें
-मल्टी_मॉड्यूल
-गुणा_परिभाषित
-गुणा_परिभाषित_अप्रयुक्त
-नोऑल_लोड
-नो_डेड_स्ट्रिप_इनिट्स_एंड_टर्म्स
-नोफिक्स प्रीबाइंडिंग
-नोमल्टीडेफ्स
-नोप्रेबाइंड
-नोसेग्लिंकसंपादित करें
-पेजेरो_साइज
-प्रीबाइंड
-prebind_all_twolevel_modules
-निजी_बंडल
-read_only_relocs
-सेक्टलाइन
-सेक्टोबजेक्टप्रतीक
-व्हायलोड
-seg1addr
-संप्रदाय बनाना
-सेक्टोबजेक्टप्रतीक
-सेक्टर
-सेगद्रो
-segs_read_only_addr
-segs_read_write_addr
-seg_addr_table
-seg_addr_table_filename
-सेग्लिंकसंपादित करें
-सेगप्रोट
-segs_read_only_addr
-segs_read_write_addr
-एकल_मॉड्यूल
स्थैतिक
-उप_लाइब्रेरी
-उप_छाता
-दोस्तर_नाम स्थान
-छतरी
-अपरिभाषित
-unexported_symbols_list
-कमजोर_संदर्भ_बेमेल
-व्हाट्सलोडेड
ये विकल्प डार्विन लिंकर को पास कर दिए जाते हैं। डार्विन लिंकर मैन पेज वर्णन करता है
उन्हें विस्तार से।

दिसम्बर अल्फा ऑप्शंस

इन -m डीईसी अल्फा कार्यान्वयन के लिए विकल्पों को परिभाषित किया गया है:

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

ध्यान दें कि फ़्लोटिंग-पॉइंट ऑपरेशंस के बिना अल्फा कार्यान्वयन की आवश्यकता होती है
फ्लोटिंग-पॉइंट रजिस्टर।

-एमएफपी-रेग
-मनो-एफपी-रेग्स
फ़्लोटिंग-पॉइंट रजिस्टर सेट का उपयोग करने वाला (उपयोग नहीं करता) कोड उत्पन्न करें। -मनो-एफपी-रेग्स
का तात्पर्य -एमसॉफ्ट-फ्लोट. यदि फ़्लोटिंग-पॉइंट रजिस्टर सेट का उपयोग नहीं किया जाता है, तो फ़्लोटिंग-पॉइंट
ऑपरेंड को पूर्णांक रजिस्टरों में पारित किया जाता है जैसे कि वे पूर्णांक और फ़्लोटिंग-पॉइंट थे
परिणाम $f0 के बजाय $0 में पास किए जाते हैं। यह एक गैर-मानक कॉलिंग अनुक्रम है, इसलिए
फ़्लोटिंग-पॉइंट तर्क या कोड संकलित द्वारा बुलाए गए रिटर्न वैल्यू वाला कोई भी फ़ंक्शन
साथ में -मनो-एफपी-रेग्स उस विकल्प के साथ भी संकलित किया जाना चाहिए।

इस विकल्प का एक विशिष्ट उपयोग एक कर्नेल का निर्माण कर रहा है जो उपयोग नहीं करता है, और इसलिए इसकी आवश्यकता है
किसी भी फ्लोटिंग-पॉइंट रजिस्टर को सेव और रिस्टोर न करें।

-मीई
अल्फा आर्किटेक्चर अधिकतम के लिए अनुकूलित फ्लोटिंग-पॉइंट हार्डवेयर को लागू करता है
प्रदर्शन। यह ज्यादातर आईईईई फ्लोटिंग-पॉइंट मानक के अनुरूप है। तथापि,
पूर्ण अनुपालन के लिए, सॉफ़्टवेयर सहायता की आवश्यकता है। यह विकल्प कोड उत्पन्न करता है
पूरी तरह से आईईईई-अनुपालन कोड सिवाय कि अचूक झंडा बनाए नहीं रखा गया है (नीचे देखें)।
यदि यह विकल्प चालू है, तो प्रीप्रोसेसर मैक्रो "_IEEE_FP" के दौरान परिभाषित किया गया है
संकलन परिणामी कोड कम कुशल है लेकिन सही ढंग से समर्थन करने में सक्षम है
असामान्य संख्याएं और असाधारण आईईईई मान जैसे नॉट-ए-नंबर और प्लस/माइनस
अनंतता। अन्य अल्फा कम्पाइलर इस विकल्प को कहते हैं -ieee_with_no_inexact.

-मिई-साथ-अचूक
यह इसके जैसा है -मीई जेनरेट कोड को छोड़कर आईईईई भी बनाए रखता है अचूक झंडा.
इस विकल्प को चालू करने से जनरेट किया गया कोड पूरी तरह से अनुपालन आईईईई को लागू करता है
गणित। "_IEEE_FP" के अलावा, "_IEEE_FP_EXACT" को प्रीप्रोसेसर मैक्रो के रूप में परिभाषित किया गया है।
कुछ अल्फा कार्यान्वयन पर परिणामी कोड काफी धीमी गति से निष्पादित हो सकता है
डिफ़ॉल्ट रूप से उत्पन्न कोड। चूंकि बहुत कम कोड है जो इस पर निर्भर करता है
अचूक झंडा, आपको सामान्य रूप से इस विकल्प को निर्दिष्ट नहीं करना चाहिए। अन्य अल्फा कंपाइलर कॉल
इस विकल्प -ieee_with_inexact.

-एमएफपी-ट्रैप-मोड =जाल मोड
यह विकल्प नियंत्रित करता है कि कौन से फ़्लोटिंग-पॉइंट संबंधित ट्रैप सक्षम हैं। अन्य अल्फा
संकलक इस विकल्प को कहते हैं -एफपीटीएम जाल मोड. ट्रैप मोड को चार में से एक पर सेट किया जा सकता है
मान:

n यह डिफ़ॉल्ट (सामान्य) सेटिंग है। सक्षम किए गए एकमात्र जाल हैं
जिन्हें सॉफ्टवेयर में निष्क्रिय नहीं किया जा सकता है (उदाहरण के लिए, जीरो ट्रैप द्वारा विभाजन)।

u द्वारा सक्षम जाल के अलावा n, अंडरफ्लो ट्रैप भी सक्षम हैं।

su पसंद u, लेकिन निर्देशों को सॉफ़्टवेयर पूर्णता के लिए सुरक्षित होने के लिए चिह्नित किया गया है (देखें
विवरण के लिए अल्फा आर्किटेक्चर मैनुअल)।

सुई पसंद su, लेकिन अचूक जाल भी सक्षम हैं।

-एमएफपी-राउंडिंग-मोड =गोलाई-मोड
आईईईई राउंडिंग मोड का चयन करता है। अन्य अल्फा कम्पाइलर इस विकल्प को कहते हैं -एफपीआरएम
गोलाई-मोडगोलाई-मोड इनमें से एक हो सकता है:

n सामान्य आईईईई राउंडिंग मोड। फ़्लोटिंग-पॉइंट नंबर निकटतम की ओर गोल होते हैं
टाई होने की स्थिति में मशीन नंबर या सम मशीन नंबर की ओर।

m शून्य से अनंत की ओर गोल।

c कटा हुआ गोलाई मोड। फ़्लोटिंग-पॉइंट नंबर शून्य की ओर गोल होते हैं।

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

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

p कार्यक्रम की शुद्धता। यह विकल्प डिफ़ॉल्ट है और इसका मतलब है कि केवल एक ट्रैप हैंडलर ही कर सकता है
पहचानें कि कौन सा प्रोग्राम फ़्लोटिंग-पॉइंट अपवाद का कारण बनता है।

f समारोह परिशुद्धता। ट्रैप हैंडलर उस फ़ंक्शन को निर्धारित कर सकता है जिसके कारण a
फ़्लोटिंग-पॉइंट अपवाद।

i निर्देश सटीकता। ट्रैप हैंडलर सटीक निर्देश निर्धारित कर सकता है कि
एक फ़्लोटिंग-पॉइंट अपवाद का कारण बना।

अन्य अल्फा कंपाइलर समकक्ष विकल्प प्रदान करते हैं जिन्हें कहा जाता है -स्कोप_सुरक्षित और
-फिर से शुरू_सुरक्षित.

-मी-अनुरूपक
यह विकल्प उत्पन्न कोड को IEEE अनुरूप के रूप में चिह्नित करता है। आपको इस विकल्प का उपयोग नहीं करना चाहिए
जब तक कि आप भी निर्दिष्ट न करें -mtrap-सटीक = i और या तो -एमएफपी-ट्रैप-मोड = सु or
-एमएफपी-ट्रैप-मोड = सुई. इसका एकमात्र प्रभाव रेखा का उत्सर्जन करना है झंडा 48 समारोह में
जेनरेट की गई असेंबली फ़ाइल का प्रस्तावना।

-एमबिल्ड-स्थिरांक
आम तौर पर जीसीसी यह देखने के लिए 32- या 64-बिट पूर्णांक स्थिरांक की जांच करता है कि क्या यह इसका निर्माण कर सकता है
दो या तीन निर्देशों में छोटे स्थिरांक से। यदि यह नहीं कर सकता है, तो यह आउटपुट करता है
एक शाब्दिक के रूप में स्थिर और रन टाइम पर डेटा सेगमेंट से इसे लोड करने के लिए कोड उत्पन्न करता है।

GCC के निर्माण की आवश्यकता के लिए इस विकल्प का उपयोग करें सब कोड का उपयोग कर पूर्णांक स्थिरांक, भले ही
यह अधिक निर्देश लेता है (अधिकतम छह है)।

साझा लाइब्रेरी डायनेमिक लोडर बनाने के लिए आप आमतौर पर इस विकल्प का उपयोग करते हैं। खुद एक
साझा पुस्तकालय, इसे चर खोजने से पहले स्मृति में खुद को स्थानांतरित करना होगा और
अपने स्वयं के डेटा खंड में स्थिरांक।

-एमबीडब्ल्यूएक्स
-मनो-बीडब्ल्यूएक्स
-एमसीएक्स
-मनो-सिक्स
-एमफिक्स
-मनो-फिक्स
-एममैक्स
-मनो-मैक्स
इंगित करें कि क्या GCC को वैकल्पिक BWX, CIX, FIX और MAX का उपयोग करने के लिए कोड जनरेट करना चाहिए
निर्देश सेट। डिफ़ॉल्ट सीपीयू द्वारा समर्थित निर्देश सेट का उपयोग करना है
के माध्यम से निर्दिष्ट प्रकार -एमसीपीयू = विकल्प या वह सीपीयू जिस पर जीसीसी बनाया गया था यदि कोई नहीं है
निर्दिष्ट।

-मफ्लोट-वैक्स
-मफ्लोट-आईईईई
कोड उत्पन्न करें जो इसके बजाय VAX F और G फ्लोटिंग-पॉइंट अंकगणित का उपयोग करता है (उपयोग नहीं करता)
IEEE सिंगल और डबल प्रिसिजन।

-मेक्सप्लिसिट-रिलोक्स
-मनो-स्पष्ट-रिलोक्स
पुराने अल्फा असेंबलरों ने इसके अलावा प्रतीक स्थानांतरण उत्पन्न करने का कोई तरीका नहीं दिया
असेंबलर मैक्रोज़। इन मैक्रो का उपयोग इष्टतम निर्देश शेड्यूलिंग की अनुमति नहीं देता है।
2.12 संस्करण के रूप में जीएनयू बिनुटिल्स एक नए सिंटैक्स का समर्थन करता है जो संकलक को करने की अनुमति देता है
स्पष्ट रूप से चिह्नित करें कि कौन से स्थानांतरण किस निर्देश पर लागू होने चाहिए। यह विकल्प है
डिबगिंग के लिए अधिकतर उपयोगी, क्योंकि जीसीसी असेंबलर की क्षमताओं का पता लगाता है जब यह
बनाया गया है और उसके अनुसार डिफ़ॉल्ट सेट करता है।

-एमएसस्मॉल-डेटा
-मिलर्ज-डेटा
. -मेक्सप्लिसिट-रिलोक्स प्रभाव में है, स्थैतिक डेटा के माध्यम से पहुँचा जाता है जीपी-रिश्तेदार
स्थान परिवर्तन। कब -एमएसस्मॉल-डेटा प्रयोग किया जाता है, 8 बाइट लंबी या छोटी वस्तुओं को अंदर रखा जाता है
a छोटा तिथि क्षेत्र (".sdata" और ".sbss" अनुभाग) और 16-बिट . के माध्यम से पहुँचा जा सकता है
$gp रजिस्टर से स्थानांतरण। यह छोटे डेटा क्षेत्र के आकार को सीमित करता है
64KB, लेकिन एक ही निर्देश के माध्यम से वेरिएबल को सीधे एक्सेस करने की अनुमति देता है।

डिफ़ॉल्ट है -मिलर्ज-डेटा. इस विकल्प के साथ डेटा क्षेत्र ठीक नीचे तक सीमित है
2जीबी. जिन प्रोग्रामों को 2GB से अधिक डेटा की आवश्यकता होती है, उन्हें "मॉलोक" या "एमएमएपी" का उपयोग करना चाहिए
कार्यक्रम के डेटा खंड के बजाय ढेर में डेटा आवंटित करें।

साझा पुस्तकालयों के लिए कोड जनरेट करते समय, -एफपीआईसी का तात्पर्य -एमएसस्मॉल-डेटा और -एफपीआईसी
का तात्पर्य -मिलर्ज-डेटा.

-एमएसस्मॉल-पाठ
-मलर्ज-पाठ
. -एमएसस्मॉल-पाठ प्रयोग किया जाता है, संकलक मानता है कि पूरे कार्यक्रम का कोड
(या साझा पुस्तकालय) 4 एमबी में फिट बैठता है, और इस प्रकार एक शाखा निर्देश के साथ उपलब्ध है।
. -एमएसस्मॉल-डेटा उपयोग किया जाता है, तो संकलक यह मान सकता है कि सभी स्थानीय प्रतीक साझा करते हैं
समान $gp मान, और इस प्रकार किसी फ़ंक्शन के लिए आवश्यक निर्देशों की संख्या को कम करता है
4 से 1 तक कॉल करें।

डिफ़ॉल्ट है -मलर्ज-पाठ.

-एमसीपीयू =सीपीयू_प्रकार
मशीन प्रकार के लिए निर्देश सेट और निर्देश शेड्यूलिंग पैरामीटर सेट करें
सीपीयू_प्रकार. आप या तो निर्दिष्ट कर सकते हैं EV शैली का नाम या संबंधित चिप संख्या।
GCC प्रोसेसर के EV4, EV5 और EV6 परिवार के लिए शेड्यूलिंग पैरामीटर का समर्थन करता है और
आपके द्वारा निर्दिष्ट प्रोसेसर से निर्देश सेट के लिए डिफ़ॉल्ट मान चुनता है। अगर
आप एक प्रोसेसर प्रकार निर्दिष्ट नहीं करते हैं, जीसीसी उस प्रोसेसर के लिए डिफॉल्ट करता है जिस पर
कंपाइलर बनाया गया था।

के लिए समर्थित मान सीपीयू_प्रकार रहे

ev4
ev45
21064
EV4 के रूप में अनुसूचियां और कोई निर्देश सेट एक्सटेंशन नहीं है।

ev5
21164
EV5 के रूप में अनुसूचियां और कोई निर्देश सेट एक्सटेंशन नहीं है।

ev56
21164a
EV5 के रूप में अनुसूचियां और BWX एक्सटेंशन का समर्थन करता है।

पीसीए56
21164pc
21164PC
EV5 के रूप में अनुसूचियां और BWX और MAX एक्सटेंशन का समर्थन करता है।

ev6
21264
EV6 के रूप में अनुसूचियां और BWX, FIX और MAX एक्सटेंशन का समर्थन करता है।

ev67
21264a
EV6 के रूप में अनुसूचियां और BWX, CIX, FIX और MAX एक्सटेंशन का समर्थन करता है।

देशी टूलचेन भी मूल्य का समर्थन करते हैं देशी, जो सर्वोत्तम वास्तुकला का चयन करता है
होस्ट प्रोसेसर के लिए विकल्प। -एमसीपीयू = देशी GCC को मान्यता नहीं देने पर कोई प्रभाव नहीं पड़ता
प्रोसेसर।

-मट्यून =सीपीयू_प्रकार
मशीन प्रकार के लिए केवल निर्देश शेड्यूलिंग पैरामीटर सेट करें सीपीयू_प्रकार
निर्देश सेट नहीं बदला है।

देशी टूलचेन भी मूल्य का समर्थन करते हैं देशी, जो सर्वोत्तम वास्तुकला का चयन करता है
होस्ट प्रोसेसर के लिए विकल्प। -मट्यून = देशी GCC को मान्यता नहीं देने पर कोई प्रभाव नहीं पड़ता
प्रोसेसर।

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

के लिए मान्य विकल्प पहर रहे

संख्या
घड़ी चक्रों का प्रतिनिधित्व करने वाली एक दशमलव संख्या।

L1
L2
L3
मुख्य
कंपाइलर में "विशिष्ट" EV4 और के लिए घड़ी चक्रों की संख्या का अनुमान होता है
लेवल 5, 1 और 2 कैश के लिए EV3 हार्डवेयर (जिसे Dcache, स्कैच और . भी कहा जाता है)
Bcache), साथ ही साथ मुख्य मेमोरी के लिए। ध्यान दें कि L3 केवल EV5 के लिए मान्य है।

FR30 ऑप्शंस

इन विकल्पों को विशेष रूप से FR30 पोर्ट के लिए परिभाषित किया गया है।

-एमएसस्मॉल-मॉडल
छोटे पता स्थान मॉडल का प्रयोग करें। यह छोटे कोड का उत्पादन कर सकता है, लेकिन यह मानता है
कि सभी प्रतीकात्मक मान और पते 20-बिट श्रेणी में फ़िट हों।

-मनो-लसिम
मान लें कि रनटाइम समर्थन प्रदान किया गया है और इसलिए इसमें शामिल करने की कोई आवश्यकता नहीं है
सिम्युलेटर पुस्तकालय (libsim.a) लिंकर कमांड लाइन पर।

FRV ऑप्शंस

-एमजीपीआर-32
केवल पहले 32 सामान्य प्रयोजन रजिस्टरों का उपयोग करें।

-एमजीपीआर-64
सभी 64 सामान्य प्रयोजन रजिस्टरों का प्रयोग करें।

-एमएफपीआर-32
केवल पहले 32 फ़्लोटिंग-पॉइंट रजिस्टरों का उपयोग करें।

-एमएफपीआर-64
सभी 64 फ्लोटिंग-पॉइंट रजिस्टरों का उपयोग करें।

-महार्ड-फ्लोट
फ़्लोटिंग-पॉइंट ऑपरेशंस के लिए हार्डवेयर निर्देशों का प्रयोग करें।

-एमसॉफ्ट-फ्लोट
फ़्लोटिंग-पॉइंट ऑपरेशंस के लिए लाइब्रेरी रूटीन का प्रयोग करें।

-मॉलोक-सीसी
स्थिति कोड रजिस्टरों को गतिशील रूप से आवंटित करें।

-एमफिक्स्ड-सीसी
कंडीशन कोड रजिस्टरों को गतिशील रूप से आवंटित करने का प्रयास न करें, केवल "icc0" और . का उपयोग करें
"एफसीसी0"।

-एमडीवर्ड
डबल वर्ड इन्सन्स का उपयोग करने के लिए एबीआई बदलें।

-मनो-डवर्ड
दोहरे शब्द निर्देशों का प्रयोग न करें।

-मडबल
फ़्लोटिंग-पॉइंट डबल निर्देशों का प्रयोग करें।

-मनो-डबल
फ़्लोटिंग-पॉइंट डबल निर्देशों का प्रयोग न करें।

-मिमीडिया
मीडिया निर्देशों का प्रयोग करें।

-मनो-मीडिया
मीडिया निर्देशों का प्रयोग न करें।

-ममुलद्द
गुणा का प्रयोग करें और निर्देशों को जोड़ें/घटाएं।

-मनो-मुलद्द
गुणा और निर्देशों को जोड़ने/घटाने का प्रयोग न करें।

-एमएफडीपीआईसी
FDPIC ABI का चयन करें, जो पॉइंटर्स को दर्शाने के लिए फ़ंक्शन डिस्क्रिप्टर का उपयोग करता है
कार्य। बिना किसी PIC/PIE-संबंधित विकल्पों के, इसका तात्पर्य है -एफपीआईई. साथ -एफपीआईसी or
-एफपीआई, यह मानता है कि GOT प्रविष्टियाँ और छोटा डेटा GOT . से 12-बिट की सीमा के भीतर है
आधार पता; साथ -एफपीआईसी or -एफपीआईई, GOT ऑफ़सेट की गणना 32 बिट्स के साथ की जाती है। के साथ
बीफिन-एल्फ लक्ष्य, इस विकल्प का तात्पर्य है -मसिम.

-मिनलाइन-पीएलटी
फ़ंक्शन कॉल में पीएलटी प्रविष्टियों की इनलाइनिंग सक्षम करें जो फ़ंक्शन के लिए ज्ञात नहीं हैं
स्थानीय रूप से बांधें। इसके बिना कोई प्रभाव नहीं है -एमएफडीपीआईसी. यह डिफ़ॉल्ट रूप से सक्षम है अगर
साझा पुस्तकालयों के लिए गति और संकलन के लिए अनुकूलन (यानी, -एफपीआईसी or -एफपीआईसी), या
जब एक अनुकूलन विकल्प जैसे -ओ३ या ऊपर कमांड लाइन में मौजूद है।

-एमटीएलएस
थ्रेड-लोकल कोड जनरेट करते समय एक बड़ा TLS सेगमेंट मान लें।

-एमटीएलएसओ
थ्रेड-लोकल कोड जनरेट करते समय एक बड़े TLS सेगमेंट की कल्पना न करें।

-एमजीप्रेल-आरओई
डेटा के लिए FDPIC ABI में "GPREL" स्थानांतरणों के उपयोग को सक्षम करें जिसे . में जाना जाता है
केवल-पढ़ने के लिए अनुभाग। यह को छोड़कर, डिफ़ॉल्ट रूप से सक्षम है -एफपीआईसी or -एफपीआई: भले ही
यह वैश्विक ऑफ़सेट तालिका को छोटा बनाने में मदद कर सकता है, यह 1 के लिए 4 निर्देश का व्यापार करता है
-एफपीआईसी or -एफपीआईई, यह 3 के लिए 4 निर्देशों का व्यापार करता है, जिनमें से एक को एकाधिक द्वारा साझा किया जा सकता है
प्रतीकों, और यह संदर्भित प्रतीक के लिए एक GOT प्रविष्टि की आवश्यकता से बचा जाता है, इसलिए यह है
जीत की संभावना अधिक है। अगर यह नही तो, -मनो-गप्रेल-आरओ इसे निष्क्रिय करने के लिए इस्तेमाल किया जा सकता है।

-मल्टीलिब-लाइब्रेरी-तस्वीर
(लाइब्रेरी, एफडी नहीं) पिक लाइब्रेरी से लिंक करें। इसका तात्पर्य है -पुस्तकालय-तस्वीर, भी
के रूप में -एफपीआईसी और -एफपीआईसी बिना -एमएफडीपीआईसी. आपको इसे कभी भी स्पष्ट रूप से उपयोग नहीं करना चाहिए।

-mlinked-एफपी
जब भी कोई स्टैक फ़्रेम हो तो हमेशा फ़्रेम पॉइंटर बनाने की EABI आवश्यकता का पालन करें
आवंटित किया जाता है। यह विकल्प डिफ़ॉल्ट रूप से सक्षम है और इसे अक्षम किया जा सकता है
-मनो-लिंक्ड-एफपी.

-मलॉन्ग-कॉल
वर्तमान संकलन इकाई के बाहर कार्यों को कॉल करने के लिए अप्रत्यक्ष पते का उपयोग करें। इस
कार्यों को 32-बिट पता स्थान के भीतर कहीं भी रखने की अनुमति देता है।

-दुर्भावनापूर्ण-लेबल
पिछले पैकेट में एनओपी डालकर लेबल को 8-बाइट सीमा में संरेखित करने का प्रयास करें।
यह विकल्प केवल तभी प्रभावी होता है जब VLIW पैकिंग सक्षम हो। यह नया नहीं बनाता है
पैकेट; यह केवल मौजूदा लोगों के लिए एनओपी जोड़ता है।

-पुस्तकालय-तस्वीर
स्थिति-स्वतंत्र ईएबीआई कोड उत्पन्न करें।

-मैक-4
केवल पहले चार मीडिया संचायक रजिस्टरों का प्रयोग करें।

-मैक-8
सभी आठ मीडिया संचायक रजिस्टरों का प्रयोग करें।

-एमपीक
VLIW निर्देश पैक करें।

-मनो-पैक
वीएलआईडब्ल्यू निर्देशों को पैक न करें।

-मनो-फ्लैग्स
E_flags में ABI स्विच को चिह्नित न करें।

-mcond-चाल
सशर्त-चाल निर्देशों का उपयोग सक्षम करें (डिफ़ॉल्ट)।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनो-कंड-मूव
सशर्त-चाल निर्देशों के उपयोग को अक्षम करें।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-एमएससीसी
सशर्त सेट निर्देशों (डिफ़ॉल्ट) के उपयोग को सक्षम करें।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनो-एससीसी
सशर्त सेट निर्देशों का उपयोग अक्षम करें।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-mcond-कार्यकारी
सशर्त निष्पादन (डिफ़ॉल्ट) के उपयोग को सक्षम करें।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनो-कंड-निष्पादन
सशर्त निष्पादन के उपयोग को अक्षम करें।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मवलीव-शाखा
VLIW निर्देशों (डिफ़ॉल्ट) में शाखाओं को पैक करने के लिए पास चलाएँ।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनो-वलीव-शाखा
वीएलआईडब्ल्यू निर्देशों में शाखाओं को पैक करने के लिए पास न चलाएं।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-एममल्टी-कंड-निष्पादन
"&&" और "||" का अनुकूलन सक्षम करें सशर्त निष्पादन (डिफ़ॉल्ट) में।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनो-मल्टी-कंड-निष्पादन
"&&" और "||" का अनुकूलन अक्षम करें सशर्त निष्पादन में।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनेस्टेड-कंड-निष्पादन
नेस्टेड सशर्त निष्पादन अनुकूलन सक्षम करें (डिफ़ॉल्ट)।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनो-नेस्टेड-कंड-निष्पादन
नेस्टेड सशर्त निष्पादन अनुकूलन अक्षम करें।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मोप्टिमाइज-सदस्य
यह स्विच कंपाइलर-जनरेटेड कोड से अनावश्यक "सदस्य" निर्देशों को हटा देता है।
इसे बाई दिफ़ौल्ट मर्थकृत किया गया है।

-mno-अनुकूलन-सदस्य
यह स्विच से अनावश्यक "सदस्य" निर्देशों को स्वचालित रूप से हटाने को अक्षम करता है
उत्पन्न कोड।

-mtomcat-आँकड़े
टॉमकैट आँकड़ों को प्रिंट करने के लिए गैस का कारण।

-एमसीपीयू =सीपीयू
उस प्रोसेसर प्रकार का चयन करें जिसके लिए कोड जनरेट करना है। संभावित मान हैं एफआरवीई, fr550,
बिल्ला, fr500, fr450, fr405, fr400, fr300 और सरल.

ग्नू / लिनक्स ऑप्शंस

इन -m GNU/Linux लक्ष्यों के लिए विकल्पों को परिभाषित किया गया है:

-एमजीलिबसी
जीएनयू सी पुस्तकालय का प्रयोग करें। यह चालू को छोड़कर डिफ़ॉल्ट है *-*-लिनक्स-*यूक्लिबक* और
*-*-लिनक्स-*एंड्रॉइड* लक्ष्य।

-म्यूक्लिबक
यूक्लिब सी लाइब्रेरी का प्रयोग करें। यह डिफ़ॉल्ट चालू है *-*-लिनक्स-*यूक्लिबक* लक्ष्य।

-मबायोनिक
बायोनिक सी लाइब्रेरी का प्रयोग करें। यह डिफ़ॉल्ट चालू है *-*-लिनक्स-*एंड्रॉइड* लक्ष्य।

-मैंड्रॉइड
एंड्रॉइड प्लेटफॉर्म के साथ संगत कोड संकलित करें। यह डिफ़ॉल्ट चालू है
*-*-लिनक्स-*एंड्रॉइड* लक्ष्य।

संकलन करते समय, यह विकल्प सक्षम करता है -मबायोनिक, -एफपीआईसी, -फनो-अपवाद और -फनो-आरटीटीआई by
चूक जाना। लिंक करते समय, यह विकल्प GCC ड्राइवर को Android-विशिष्ट विकल्प पास करने देता है
लिंकर को। अंत में, इस विकल्प के कारण प्रीप्रोसेसर मैक्रो "__ANDROID__" हो जाता है
परिभाषित।

-tno-एंड्रॉइड-सीसी
के संकलन प्रभाव अक्षम करें -मैंड्रॉइड, यानी, सक्षम न करें -मबायोनिक, -एफपीआईसी,
-फनो-अपवाद और -फनो-आरटीटीआई डिफ़ॉल्ट रूप से

-tno-एंड्रॉइड-एलडी
के लिंकिंग प्रभावों को अक्षम करें -मैंड्रॉइड, अर्थात, मानक Linux लिंकिंग विकल्पों को पास करें
जोड़नेवाला।

H8 / 300 ऑप्शंस

इन -m H8/300 कार्यान्वयन के लिए विकल्पों को परिभाषित किया गया है:

-मेरेलैक्स
जब संभव हो, लिंक समय पर कुछ पता संदर्भों को छोटा करें; लिंकर विकल्प का उपयोग करता है
-आराम करें.

-मह H8/300H के लिए कोड जनरेट करें।

-एमएस H8S के लिए कोड जनरेट करें।

-एमएन सामान्य मोड में H8S और H8/300H के लिए कोड जनरेट करें। इस स्विच का उपयोग किया जाना चाहिए
या इसके साथ -मह or -एमएस.

-एमएस2600
H8S/2600 के लिए कोड जनरेट करें। इस स्विच के साथ प्रयोग किया जाना चाहिए -एमएस.

-मेक्सरो
मॉनिटर के साथ फ़ंक्शन के निष्पादन से पहले विस्तारित रजिस्टरों को स्टैक पर संग्रहीत किया जाता है
गुण। डिफ़ॉल्ट विकल्प है -मेक्सरो. यह विकल्प केवल H8S लक्ष्यों के लिए मान्य है।

-मनो-एक्सआर
मॉनिटर के साथ फ़ंक्शन के निष्पादन से पहले विस्तारित रजिस्टरों को स्टैक पर संग्रहीत नहीं किया जाता है
गुण। डिफ़ॉल्ट विकल्प है -मनो-एक्सआर. यह विकल्प केवल H8S लक्ष्यों के लिए मान्य है।

-मिंट32
डिफ़ॉल्ट रूप से "int" डेटा 32 बिट बनाएं।

-मैलिग्न-300
H8/300H और H8S पर, H8/300 के समान संरेखण नियमों का उपयोग करें। डिफ़ॉल्ट
H8/300H और H8S के लिए 4-बाइट सीमाओं पर लॉन्ग और फ्लोट्स को संरेखित करना है।
-मैलिग्न-300 उन्हें 2-बाइट सीमाओं पर गठबंधन करने का कारण बनता है। इस विकल्प का कोई प्रभाव नहीं है
H8/300 पर।

एचपीपीए ऑप्शंस

इन -m कंप्यूटर के एचपीपीए परिवार के लिए विकल्पों को परिभाषित किया गया है:

-मार्च=वास्तुकला-प्रकार
निर्दिष्ट आर्किटेक्चर के लिए कोड जेनरेट करें। के लिए विकल्प वास्तुकला-प्रकार रहे
1.0 पीए 1.0 के लिए, 1.1 पीए 1.1 के लिए, और 2.0 पीए 2.0 प्रोसेसर के लिए। को देखें
/usr/lib/sched.models एचपी-यूएक्स सिस्टम पर उचित आर्किटेक्चर विकल्प निर्धारित करने के लिए
आपकी मशीन के लिए। कम संख्या वाले आर्किटेक्चर के लिए संकलित कोड उच्च पर चलता है
क्रमांकित आर्किटेक्चर, लेकिन दूसरी तरफ नहीं।

-एमपीए-रिस्क-1-0
-एमपीए-रिस्क-1-1
-एमपीए-रिस्क-2-0
के लिए पर्यायवाची -मार्च = 1.0, -मार्च = 1.1, तथा -मार्च = 2.0 क्रमशः.

-एमजंप-इन-देरी
इस विकल्प को अनदेखा किया जाता है और केवल संगतता उद्देश्यों के लिए प्रदान किया जाता है।

-mdisable-fpregs
फ्लोटिंग-पॉइंट रजिस्टरों को किसी भी तरह से इस्तेमाल होने से रोकें। इसके लिए यह आवश्यक है
फ़्लोटिंग-पॉइंट रजिस्टरों के आलसी संदर्भ स्विचिंग करने वाले कर्नेल को संकलित करना। अगर
आप इस विकल्प का उपयोग करते हैं और फ़्लोटिंग-पॉइंट ऑपरेशंस करने का प्रयास करते हैं, कंपाइलर
गर्भपात।

-mdisable-अनुक्रमण
कंपाइलर को इंडेक्सिंग एड्रेस मोड का उपयोग करने से रोकें। यह कुछ बल्कि टालता है
मैक के तहत एमआईजी जेनरेट कोड संकलित करते समय अस्पष्ट समस्याएं।

-एमनो-स्पेस-रेज
कोड उत्पन्न करें जो मानता है कि लक्ष्य में कोई स्थान रजिस्टर नहीं है। यह जीसीसी को अनुमति देता है
तेजी से अप्रत्यक्ष कॉल उत्पन्न करें और अनस्केल्ड इंडेक्स एड्रेस मोड का उपयोग करें।

ऐसा कोड लेवल 0 PA सिस्टम और कर्नेल के लिए उपयुक्त है।

-mfast-अप्रत्यक्ष-कॉल
कोड उत्पन्न करें जो मानता है कि कॉल कभी भी अंतरिक्ष सीमाओं को पार नहीं करते हैं। यह जीसीसी को अनुमति देता है
उत्सर्जन कोड जो तेजी से अप्रत्यक्ष कॉल करता है।

यह विकल्प साझा पुस्तकालयों या नेस्टेड कार्यों की उपस्थिति में काम नहीं करता है।

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

-मलॉन्ग-लोड-स्टोर
एचपी-यूएक्स 3 . द्वारा कभी-कभी आवश्यक होने पर 10-निर्देश लोड और स्टोर अनुक्रम उत्पन्न करें
लिंकर। यह के बराबर है +k एचपी कंपाइलर्स के लिए विकल्प।

-पोर्टेबल-रनटाइम
ईएलएफ सिस्टम के लिए एचपी द्वारा प्रस्तावित पोर्टेबल कॉलिंग सम्मेलनों का प्रयोग करें।

-मगास
केवल GAS ही असेंबलर निर्देशों के उपयोग को सक्षम करता है।

-एमएसशेड्यूल=सीपीयू प्रकार
मशीन प्रकार के लिए बाधाओं के अनुसार शेड्यूल कोड सीपीयू प्रकार. विकल्प
एसटी सीपीयू प्रकार रहे 700 7100, 7100LC, 7200, 7300 और 8000। को देखें
/usr/lib/sched.models एचपी-यूएक्स सिस्टम पर उचित शेड्यूलिंग विकल्प निर्धारित करने के लिए
आपकी मशीन। डिफ़ॉल्ट शेड्यूलिंग है 8000.

-मलिंकर-ऑप्ट
HP-UX लिंकर में ऑप्टिमाइज़ेशन पास सक्षम करें। ध्यान दें कि यह प्रतीकात्मक डिबगिंग बनाता है
असंभव। यह एचपी-यूएक्स 8 और एचपी-यूएक्स 9 लिंकर्स में एक बग भी ट्रिगर करता है जिसमें वे
कुछ प्रोग्राम को लिंक करते समय फर्जी त्रुटि संदेश दें।

-एमसॉफ्ट-फ्लोट
फ़्लोटिंग पॉइंट के लिए लाइब्रेरी कॉल युक्त आउटपुट जेनरेट करें। चेतावनी: अपेक्षित
सभी एचपीपीए लक्ष्यों के लिए पुस्तकालय उपलब्ध नहीं हैं। आम तौर पर की सुविधाएं
मशीन के सामान्य सी कंपाइलर का उपयोग किया जाता है, लेकिन यह सीधे क्रॉस में नहीं किया जा सकता है-
संकलन उपयुक्त पुस्तकालय उपलब्ध कराने के लिए आपको अपनी व्यवस्था स्वयं करनी होगी
क्रॉस-संकलन के लिए कार्य।

-एमसॉफ्ट-फ्लोट आउटपुट फ़ाइल में कॉलिंग कन्वेंशन को बदलता है; इसलिए, यह केवल . है
उपयोगी अगर आप संकलित करते हैं सब इस विकल्प के साथ एक कार्यक्रम का। विशेष रूप से, आपको चाहिए
संकलन libgcc.a, पुस्तकालय जो जीसीसी के साथ आता है -एमसॉफ्ट-फ्लोट इसके लिए
काम करने के लिए.

-एमएसआईओ
सर्वर IO के लिए पूर्वनिर्धारित, "_SIO" उत्पन्न करें। डिफ़ॉल्ट है -म्व्सियो. यह उत्पन्न करता है
वर्कस्टेशन IO के लिए पूर्वनिर्धारित, "__hp9000s700", "__hp9000s700__" और "_WSIO"।
ये विकल्प HP-UX और HI-UX के अंतर्गत उपलब्ध हैं।

-एमजीएनयू-एलडी
GNU के लिए विशिष्ट विकल्पों का उपयोग करें ld. यह गुजरता है कमरा साझा सेवा मेरे ld एक साझा . का निर्माण करते समय
पुस्तकालय। यह डिफ़ॉल्ट है जब जीसीसी को स्पष्ट रूप से या परोक्ष रूप से कॉन्फ़िगर किया गया है
जीएनयू लिंकर। यह विकल्प किसको प्रभावित नहीं करता है ld कहा जाता है; यह केवल क्या बदलता है
पैरामीटर उस पर पारित किए जाते हैं ldld जिसे द्वारा निर्धारित किया जाता है
--साथ-एलडी कॉन्फ़िगर विकल्प, GCC का प्रोग्राम खोज पथ, और अंत में उपयोगकर्ता द्वारा पथ.
जीसीसी द्वारा उपयोग किए जाने वाले लिंकर का उपयोग करके मुद्रित किया जा सकता है कौन कौन से `जीसीसी -प्रिंट-प्रोग-नाम = ld`। इस
विकल्प केवल 64-बिट एचपी-यूएक्स जीसीसी पर उपलब्ध है, अर्थात कॉन्फ़िगर किया गया
एचपीपीए*64*-*-एचपीयूक्स*.

-एमएचपी-एलडी
HP के लिए विशिष्ट विकल्पों का उपयोग करें ld. यह गुजरता है -b सेवा मेरे ld साझा पुस्तकालय का निर्माण करते समय
और गुजरता +स्वीकार करें बेमेल टाइप सेवा मेरे ld सभी लिंक पर। जब GCC होता है तो यह डिफ़ॉल्ट होता है
एचपी लिंकर के साथ, स्पष्ट रूप से या परोक्ष रूप से कॉन्फ़िगर किया गया। यह विकल्प प्रभावित नहीं करता
कौन कौन से ld कहा जाता है; यह केवल बदलता है कि कौन से पैरामीटर पास किए गए हैं ldld
जिसे द्वारा निर्धारित किया जाता है --साथ-एलडी कॉन्फ़िगर विकल्प, जीसीसी की प्रोग्राम खोज
पथ, और अंत में उपयोगकर्ता के द्वारा पथ. जीसीसी द्वारा उपयोग किए जाने वाले लिंकर का उपयोग करके मुद्रित किया जा सकता है
कौन कौन से `जीसीसी -प्रिंट-प्रोग-नाम = ld`. यह विकल्प केवल 64-बिट HP-UX पर उपलब्ध है
जीसीसी, यानी कॉन्फ़िगर किया गया एचपीपीए*64*-*-एचपीयूक्स*.

-मलॉन्ग-कॉल
लंबे कॉल अनुक्रमों का उपयोग करने वाला कोड उत्पन्न करें। यह सुनिश्चित करता है कि कॉल हमेशा सक्षम है
लिंकर जनित स्टब्स तक पहुँचने के लिए। डिफ़ॉल्ट केवल लंबी कॉल उत्पन्न करने के लिए है जब
कॉल साइट से फ़ंक्शन या अनुवाद इकाई की शुरुआत तक की दूरी, जैसे
मामला हो सकता है, उपयोग की जा रही शाखा प्रकार द्वारा निर्धारित पूर्वनिर्धारित सीमा से अधिक हो। NS
पीए 7,600,000 . के लिए सामान्य कॉल की सीमा क्रमशः 240,000 और 2.0 बाइट्स है
और पीए 1.X आर्किटेक्चर। सिबकॉल हमेशा 240,000 बाइट्स पर सीमित होते हैं।

दूरियों का उपयोग करते समय कार्यों की शुरुआत से मापा जाता है
-फंक्शन-सेक्शन विकल्प, या का उपयोग करते समय -मगास और -मनो-पोर्टेबल-रनटाइम विकल्पों
एसओएम लिंकर के साथ एचपी-यूएक्स के तहत।

आमतौर पर इस विकल्प का उपयोग करना वांछनीय नहीं है क्योंकि यह प्रदर्शन को कम करता है। तथापि,
यह बड़े अनुप्रयोगों में उपयोगी हो सकता है, खासकर जब आंशिक लिंकिंग का उपयोग किया जाता है
एप्लिकेशन का निर्माण करें।

उपयोग की जाने वाली लंबी कॉलों के प्रकार असेंबलर और लिंकर की क्षमताओं पर निर्भर करते हैं,
और कोड का प्रकार उत्पन्न किया जा रहा है। लंबे समय तक समर्थन करने वाली प्रणालियों पर प्रभाव
पूर्ण कॉल, और लंबी तस्वीर प्रतीक-अंतर या पीसी-सापेक्ष कॉल होना चाहिए
अपेक्षाकृत छोटा। हालांकि, पिक कोड में 32-बिट ईएलएफ सिस्टम पर एक अप्रत्यक्ष कॉल का उपयोग किया जाता है
और यह काफी लंबा है।

-मुनिक्स =यूनिक्स-एसटीडी
संकलक पूर्वनिर्धारित उत्पन्न करें और निर्दिष्ट UNIX मानक के लिए एक स्टार्टफाइल का चयन करें।
के लिए विकल्प यूनिक्स-एसटीडी रहे 93, 95 और 98. 93 सभी एचपी-यूएक्स संस्करणों पर समर्थित है।
95 HP-UX 10.10 और बाद के संस्करण पर उपलब्ध है। 98 HP-UX 11.11 और बाद के संस्करण पर उपलब्ध है।
डिफ़ॉल्ट मान हैं 93 एचपी-यूएक्स 10.00 के लिए, 95 एचपी-यूएक्स 10.10 के लिए हालांकि 11.00, और 98
एचपी-यूएक्स 11.11 और बाद के संस्करण के लिए।

-मुनिक्स=93 जीसीसी 3.3 और 3.4 के समान पूर्वनिर्धारितता प्रदान करता है। -मुनिक्स=95 प्रदान करता है
"XOPEN_UNIX" और "_XOPEN_SOURCE_EXTENDED" और स्टार्टफाइल के लिए अतिरिक्त पूर्वनिर्धारित
unix95.o. -मुनिक्स=98 "_XOPEN_UNIX" के लिए अतिरिक्त पूर्वनिर्धारितता प्रदान करता है,
"_XOPEN_SOURCE_EXTENDED", "_INCLUDE__STDC_A1_SOURCE" और "_INCLUDE_XOPEN_SOURCE_500",
और स्टार्टफाइल unix98.o.

यह महत्वपूर्ण ध्यान दें कि यह विकल्प विभिन्न पुस्तकालय के इंटरफेस को बदलता है
दिनचर्या यह सी पुस्तकालय के परिचालन व्यवहार को भी प्रभावित करता है। इस प्रकार, चरम
इस विकल्प का उपयोग करने में सावधानी की आवश्यकता है।

एक से अधिक यूनिक्स मानकों के साथ काम करने के उद्देश्य से पुस्तकालय कोड का परीक्षण करना चाहिए,
उपयुक्त के रूप में "__xpg4_extended_mask" चर को सेट और पुनर्स्थापित करें। अधिकांश जीएनयू सॉफ्टवेयर
यह क्षमता प्रदान नहीं करता है।

-नोलिब्डल्ड
जब libdld.sl खोजने के लिए लिंक विकल्पों की पीढ़ी को दबाएं स्थैतिक विकल्प है
एचपी-यूएक्स 10 और बाद में निर्दिष्ट।

स्थैतिक
libc में setlocale के HP-UX कार्यान्वयन की libdld.sl पर निर्भरता है। वहां
libdld.sl का संग्रह संस्करण नहीं है। इस प्रकार, जब स्थैतिक विकल्प निर्दिष्ट है,
इस निर्भरता को हल करने के लिए विशेष लिंक विकल्पों की आवश्यकता है।

HP-UX 10 और बाद के संस्करण पर, GCC ड्राइवर लिंक करने के लिए आवश्यक विकल्प जोड़ता है
libdld.sl जब स्थैतिक विकल्प निर्दिष्ट है। यह परिणामी बाइनरी का कारण बनता है
गतिशील हो। 64-बिट पोर्ट पर, लिंकर डिफ़ॉल्ट रूप से डायनेमिक बायनेरिज़ उत्पन्न करते हैं
किसी भी मामले। NS -नोलिब्डल्ड विकल्प का उपयोग GCC ड्राइवर को जोड़ने से रोकने के लिए किया जा सकता है
ये लिंक विकल्प।

-धागे
के साथ मल्टीथ्रेडिंग के लिए समर्थन जोड़ें DCE धागा एचपी-यूएक्स के तहत पुस्तकालय। इस विकल्प
प्रीप्रोसेसर और लिंकर दोनों के लिए झंडे सेट करता है।

IA-64 ऑप्शंस

ये हैं -m Intel IA-64 आर्किटेक्चर के लिए परिभाषित विकल्प।

-मबिग-एंडियन
बड़े-एंडियन लक्ष्य के लिए कोड जनरेट करें। यह एचपी-यूएक्स के लिए डिफ़ॉल्ट है।

-थोड़ा-एंडियन
छोटे-एंडियन लक्ष्य के लिए कोड जनरेट करें। यह AIX5 और GNU/Linux के लिए डिफ़ॉल्ट है।

-मग्नू-के रूप में
-मनो-ग्नू-अस
जीएनयू असेंबलर के लिए कोड जेनरेट (या नहीं) करें। यह डिफ़ॉल्ट है।

-एमजीएनयू-एलडी
-मनो-ग्नू-एलडी
जीएनयू लिंकर के लिए कोड जेनरेट करें (या न करें)। यह डिफ़ॉल्ट है।

-मनो-पिक
कोड उत्पन्न करें जो वैश्विक सूचक रजिस्टर का उपयोग नहीं करता है। परिणाम स्थिति नहीं है
स्वतंत्र कोड, और IA-64 ABI का उल्लंघन करता है।

-अस्थिर-एएसएम-रोक
-मनो-वाष्पशील-एएसएम-स्टॉप
अस्थिर एएसएम स्टेटमेंट के तुरंत पहले और बाद में स्टॉप बिट जेनरेट करें (या न करें)।

-मजिस्टर-नाम
-मनो-रजिस्टर-नाम
उत्पन्न करें (या नहीं) in, loc, तथा आउट स्टैक्ड रजिस्टरों के लिए नाम पंजीकृत करें। इस
असेंबलर आउटपुट को और अधिक पठनीय बना सकता है।

-मनो-एसडीटा
-एमएसडेटा
छोटे डेटा अनुभाग का उपयोग करने वाले अनुकूलन को अक्षम (या सक्षम) करें। यह उपयोगी हो सकता है
अनुकूलक बग के आसपास काम करने के लिए।

-मकॉन्स्टेंट-जीपी
एकल स्थिर वैश्विक सूचक मान का उपयोग करने वाला कोड जनरेट करें। यह तब उपयोगी होता है जब
कर्नेल कोड संकलित करना।

-मोटो-तस्वीर
कोड उत्पन्न करें जो स्व-स्थानांतरित हो। यह संकेत करता है -मकॉन्स्टेंट-जीपी. यह उपयोगी है
फर्मवेयर कोड संकलित करते समय।

-मिनलाइन-फ्लोट-डिवाइड-मिन-लेटेंसी
न्यूनतम विलंबता का उपयोग करके फ़्लोटिंग-पॉइंट मानों के इनलाइन डिवाइड के लिए कोड जनरेट करें
कलन विधि।

-मिनलाइन-फ्लोट-डिवाइड-मैक्स-थ्रूपुट
अधिकतम थ्रूपुट का उपयोग करके फ़्लोटिंग-पॉइंट मानों के इनलाइन डिवाइड के लिए कोड जेनरेट करें
कलन विधि।

-मनो-इनलाइन-फ्लोट-डिवाइड
फ़्लोटिंग-पॉइंट मानों के विभाजन के लिए इनलाइन कोड उत्पन्न न करें।

-मिनलाइन-इंट-डिवाइड-मिन-लेटेंसी
न्यूनतम विलंबता का उपयोग करके पूर्णांक मानों के इनलाइन विभाजन के लिए कोड जेनरेट करें
कलन विधि।

-मिनलाइन-इंट-डिवाइड-मैक्स-थ्रूपुट
अधिकतम थ्रूपुट का उपयोग करके पूर्णांक मानों के इनलाइन डिवाइड के लिए कोड जेनरेट करें
कलन विधि।

-मनो-इनलाइन-इंट-डिवाइड
पूर्णांक मानों के विभाजन के लिए इनलाइन कोड उत्पन्न न करें।

-मिनलाइन-वर्ग-मिनट-विलंबता
न्यूनतम विलंबता एल्गोरिथम का उपयोग करके इनलाइन वर्गमूलों के लिए कोड जनरेट करें।

-मिनलाइन-वर्ग-अधिकतम-थ्रूपुट
अधिकतम थ्रूपुट एल्गोरिथम का उपयोग करके इनलाइन वर्गमूलों के लिए कोड जनरेट करें।

-मनो-इनलाइन-वर्ग
"sqrt" के लिए इनलाइन कोड उत्पन्न न करें।

-मफ्यूज्ड-मैड
-मनो-फ्यूज्ड-मैड
कोड जनरेट करें (न करें) जो फ़्यूज्ड गुणा/जोड़ या गुणा/घटाव का उपयोग करता है
निर्देश। डिफ़ॉल्ट इन निर्देशों का उपयोग करना है।

-मनो-बौना2-एएसएम
-mdwarf2-asm
DWARF 2 लाइन नंबर डिबगिंग जानकारी के लिए कोडांतरक कोड उत्पन्न न करें (या करें)।
यह तब उपयोगी हो सकता है जब GNU असेंबलर का उपयोग न किया जाए।

-मायरली-स्टॉप-बिट्स
-मनो-अर्ली-स्टॉप-बिट्स
स्टॉप बिट्स को निर्देश से ठीक पहले रखने की अनुमति दें कि
स्टॉप बिट को ट्रिगर किया। यह निर्देश शेड्यूलिंग में सुधार कर सकता है, लेकिन हमेशा नहीं
ऐसा करो।

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

-एमटीएलएस-आकार =टीएलएस-आकार
तत्काल TLS ऑफ़सेट का बिट आकार निर्दिष्ट करें। मान्य मान 14, 22 और 64 हैं।

-मट्यून =सीपीयू प्रकार
किसी विशेष CPU के लिए निर्देश शेड्यूलिंग को ट्यून करें, मान्य मान हैं: इटेनियम,
इटेनियम1, Merced, इटेनियम2, तथा MCKINLEY.

-मिलप32
-एमएलपी64
32-बिट या 64-बिट वातावरण के लिए कोड जनरेट करें। 32-बिट वातावरण int सेट करता है,
32 बिट्स के लिए लंबा और सूचक। 64-बिट वातावरण int को 32 बिट्स और लंबे समय तक सेट करता है और
64 बिट्स के लिए सूचक। ये एचपी-यूएक्स विशिष्ट झंडे हैं।

-मनो-अनुसूचित-बीआर-डेटा-कल्पना
-msched-br-डेटा-कल्पना
(डिस/एन) पुनः लोड करने से पहले डेटा सट्टा शेड्यूलिंग सक्षम करें। इसका परिणाम . की पीढ़ी में होता है
"ld.a" निर्देश और संबंधित जांच निर्देश ("ld.c" / "chk.a")। NS
डिफ़ॉल्ट 'अक्षम' है।

-msched-ar-डेटा-कल्पना
-मनो-अनुसूचित-एआर-डेटा-कल्पना
(एन/डिस) पुनः लोड करने के बाद डेटा सट्टा शेड्यूलिंग सक्षम करें। इसका परिणाम . की पीढ़ी में होता है
"ld.a" निर्देश और संबंधित जांच निर्देश ("ld.c" / "chk.a")। NS
डिफ़ॉल्ट 'सक्षम' है।

-मनो-अनुसूचित-नियंत्रण-कल्पना
-msched-नियंत्रण-कल्पना
(डिस/एन) सट्टा शेड्यूलिंग को नियंत्रित करने में सक्षम। यह सुविधा केवल के दौरान उपलब्ध है
क्षेत्र शेड्यूलिंग (यानी पुनः लोड करने से पहले)। इसका परिणाम "ld.s" की पीढ़ी में होता है
निर्देश और संबंधित चेक निर्देश "chk.s"। डिफ़ॉल्ट है
'अक्षम करना'।

-मशेड-बीआर-इन-डेटा-कल्पना
-मनो-अनुसूचित-बीआर-में-डेटा-कल्पना
(En/Dis) डेटा पर निर्भर निर्देशों का सट्टा शेड्यूलिंग सक्षम करें
पुनः लोड करने से पहले सट्टा भार। यह केवल के साथ प्रभावी है -msched-br-डेटा-कल्पना
सक्षम। डिफ़ॉल्ट 'सक्षम' है।

-मशेड-एआर-इन-डेटा-कल्पना
-मनो-अनुसूचित-एआर-इन-डेटा-कल्पना
(En/Dis) डेटा पर निर्भर निर्देशों का सट्टा शेड्यूलिंग सक्षम करें
पुनः लोड के बाद सट्टा भार। यह केवल के साथ प्रभावी है -msched-ar-डेटा-कल्पना
सक्षम। डिफ़ॉल्ट 'सक्षम' है।

-मशेड-इन-कंट्रोल-स्पेक
-मनो-शेड्यूल-इन-कंट्रोल-स्पेक
(एन/डिस) निर्देशों का सट्टा शेड्यूलिंग सक्षम है जो पर निर्भर हैं
सट्टा भार को नियंत्रित करें। यह केवल के साथ प्रभावी है -msched-नियंत्रण-कल्पना सक्षम होना चाहिए।
डिफ़ॉल्ट 'सक्षम' है।

-मोनो-शेड्यूल-प्रीफरेंस-नॉन-डेटा-स्पेक-इन्स
-msched-वरीयता-गैर-डेटा-कल्पना-insns
यदि सक्षम किया गया है, तो डेटा-सट्टा निर्देश शेड्यूल के लिए केवल तभी चुने जाते हैं जब कोई नहीं
इस समय अन्य विकल्प। यह डेटा अटकलों का अधिक उपयोग करता है
रूढ़िवादी। डिफ़ॉल्ट 'अक्षम' है।

-मनो-अनुसूचित-पसंद-गैर-नियंत्रण-कल्पना-इंसंस
-msched-पसंद-गैर-नियंत्रण-कल्पना-insns
सक्षम होने पर, नियंत्रण-सट्टा निर्देश केवल तभी शेड्यूल के लिए चुने जाते हैं जब
फिलहाल कोई अन्य विकल्प नहीं। यह नियंत्रण अटकलों का अधिक उपयोग करता है
अधिक रूढ़िवादी। डिफ़ॉल्ट 'अक्षम' है।

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

-msched-कल्पना-ldc
एक साधारण डेटा सट्टा जांच का प्रयोग करें। यह विकल्प डिफ़ॉल्ट रूप से चालू है।

-msched-नियंत्रण-कल्पना-ldc
नियंत्रण अटकलों के लिए एक साधारण जांच का प्रयोग करें। यह विकल्प डिफ़ॉल्ट रूप से चालू है।

-मैशेड-स्टॉप-बिट्स-आफ्टर-हर-साइकल
शेड्यूलिंग करते समय प्रत्येक चक्र के बाद एक स्टॉप बिट रखें। यह विकल्प डिफ़ॉल्ट रूप से चालू है।

-msched-fp-mem-deps-शून्य-लागत
मान लें कि फ़्लोटिंग-पॉइंट स्टोर और लोड के कारण विरोध होने की संभावना नहीं है
एक ही निर्देश समूह में रखा गया। डिफाल्ट रूप में यह विकल्प निष्क्रिय है।

-एमएसएल-शेड्यूल-न-चेक-कंट्रोल-स्पेक
चुनिंदा शेड्यूलिंग में नियंत्रण अटकलों के लिए चेक जेनरेट करें। यह झंडा है
डिफ़ॉल्ट रूप से अक्षम।

-msched-अधिकतम-मेमोरी-इंसंस=मैक्स-इन्स
प्रति निर्देश समूह मेमोरी इंस की संख्या को सीमित करें, निम्न को प्राथमिकता दें
बाद के मेमोरी इंस उसी निर्देश समूह में शेड्यूल करने का प्रयास कर रहे हैं।
कैश बैंक संघर्षों को रोकने के लिए अक्सर उपयोगी। डीफॉल्ट मूल्य 1 है।

-msched-अधिकतम-मेमोरी-इंस-हार्ड-लिमिट
द्वारा निर्दिष्ट सीमा बनाता है msched-अधिकतम-स्मृति-insns एक कठिन सीमा, अधिक की अनुमति नहीं
एक निर्देश समूह में उस संख्या की तुलना में। अन्यथा, सीमा "नरम" है, जिसका अर्थ है
कि सीमा समाप्त होने पर गैर-स्मृति संचालन को प्राथमिकता दी जाती है, लेकिन स्मृति
संचालन अभी भी निर्धारित किया जा सकता है।

LM32 ऑप्शंस

इन -m LatticeMico32 आर्किटेक्चर के लिए विकल्पों को परिभाषित किया गया है:

-एमबैरल-शिफ्ट-सक्षम
बैरल-शिफ्ट निर्देश सक्षम करें।

-mडिवाइड-सक्षम
विभाजित और मापांक निर्देश सक्षम करें।

-mmultiply-सक्षम
गुणा निर्देश सक्षम करें।

-msign-विस्तार-सक्षम
साइन विस्तार निर्देश सक्षम करें।

-म्यूजर-सक्षम
उपयोगकर्ता-परिभाषित निर्देश सक्षम करें।

M32C ऑप्शंस

-एमसीपीयू =नाम
उस CPU का चयन करें जिसके लिए कोड जनरेट किया गया है। नाम में से एक हो सकता है R8C R8C/Tiny . के लिए
श्रृंखला, m16c M16C (/60 तक) श्रृंखला के लिए, एम 32 सेमी M16C/80 श्रृंखला के लिए, या m32c
M32C/80 श्रृंखला के लिए।

-मसिम
निर्दिष्ट करता है कि प्रोग्राम सिम्युलेटर पर चलाया जाएगा। यह एक वैकल्पिक . का कारण बनता है
रनटाइम लाइब्रेरी को लिंक किया जाना है जिसमें समर्थन करता है, उदाहरण के लिए, फ़ाइल I/O। तुम नहीं करना चाहिए
वास्तविक हार्डवेयर पर चलने वाले प्रोग्राम बनाते समय इस विकल्प का उपयोग करें; आपको चाहिए
I/O फ़ंक्शंस की जो भी आवश्यकता हो, उसके लिए अपनी स्वयं की रनटाइम लाइब्रेरी प्रदान करें।

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

M32R/डी ऑप्शंस

इन -m रेनेसास M32R/D आर्किटेक्चर के लिए विकल्पों को परिभाषित किया गया है:

-एम32आर2
M32R/2 के लिए कोड जनरेट करें।

-एम32आरएक्स
M32R/X के लिए कोड जनरेट करें।

-एम32आर
M32R के लिए कोड जनरेट करें। यह डिफ़ॉल्ट है।

-मॉडेल = छोटा
मान लें कि सभी ऑब्जेक्ट कम 16MB मेमोरी में रहते हैं (ताकि उनके पते हो सकें
"ld24" निर्देश के साथ लोड किया गया), और मान लें कि सभी सबरूटीन्स के साथ उपलब्ध हैं
"बीएल" निर्देश। यह डिफ़ॉल्ट है।

किसी विशेष वस्तु की एड्रेसेबिलिटी को "मॉडल" विशेषता के साथ सेट किया जा सकता है।

-मॉडेल = मध्यम
मान लें कि ऑब्जेक्ट 32-बिट एड्रेस स्पेस में कहीं भी हो सकते हैं (कंपाइलर उत्पन्न करता है
"seth/add3" उनके पते लोड करने के निर्देश), और मान लें कि सभी सबरूटीन्स हैं
"बीएल" निर्देश के साथ पहुंचा जा सकता है।

-मॉडेल = बड़ा
मान लें कि ऑब्जेक्ट 32-बिट एड्रेस स्पेस में कहीं भी हो सकते हैं (कंपाइलर उत्पन्न करता है
"seth/add3" निर्देश उनके पते लोड करने के लिए), और मान लें कि सबरूटीन्स नहीं हो सकते हैं
"बीएल" निर्देश के साथ पहुंचा जा सकता है (संकलक बहुत धीमा उत्पन्न करता है
"सेठ/ऐड3/जेएल" निर्देश अनुक्रम)।

-msdata=कोई नहीं
छोटे डेटा क्षेत्र का उपयोग अक्षम करें। चर ".data", ".bss", या . में से किसी एक में डाले जाते हैं
".rodata" (जब तक कि "सेक्शन" विशेषता निर्दिष्ट नहीं की गई हो)। यह डिफ़ॉल्ट है।

छोटे डेटा क्षेत्र में ".sdata" और ".sbss" अनुभाग होते हैं। वस्तुएं हो सकती हैं
इनमें से किसी एक का उपयोग करके "सेक्शन" विशेषता वाले छोटे डेटा क्षेत्र में स्पष्ट रूप से डालें
वर्गों.

-एमएसडेटा = एसडीटा
छोटे डेटा क्षेत्र में छोटे वैश्विक और स्थिर डेटा डालें, लेकिन विशेष उत्पन्न न करें
उन्हें संदर्भित करने के लिए कोड।

-एमएसडेटा = उपयोग
छोटे डेटा क्षेत्र में छोटे वैश्विक और स्थिर डेटा डालें, और विशेष उत्पन्न करें
उन्हें रेफर करने के निर्देश

-G संख्या
वैश्विक और स्थिर वस्तुओं को से कम या उसके बराबर रखें संख्या छोटे डेटा में बाइट्स या
सामान्य डेटा या बीएसएस अनुभागों के बजाय बीएसएस अनुभाग। का डिफ़ॉल्ट मान संख्या is
8. -एमएसडेटा विकल्प को इनमें से किसी एक पर सेट किया जाना चाहिए sdata or उपयोग इस विकल्प के लिए कोई भी
प्रभाव।

सभी मॉड्यूल उसी के साथ संकलित किए जाने चाहिए -G संख्या मूल्य। विभिन्न के साथ संकलन
के मान संख्या काम कर सकता है या नहीं; अगर ऐसा नहीं होता है तो लिंकर एक त्रुटि देता है
संदेश --- गलत कोड उत्पन्न नहीं होता है।

-एमडीबग
संकलक में M32R- विशिष्ट कोड को कुछ आंकड़े प्रदर्शित करता है जो मदद कर सकते हैं
डिबगिंग कार्यक्रमों में।

-मैलिग्न-लूप
सभी लूपों को 32-बाइट सीमा पर संरेखित करें।

-मनो-संरेखण-लूप
लूप के लिए 32-बाइट संरेखण लागू न करें। यह डिफ़ॉल्ट है।

-मुद्दे-दर =संख्या
मुद्दा संख्या प्रति चक्र निर्देश। संख्या केवल 1 या 2 हो सकता है।

- शाखा-लागत =संख्या
संख्या केवल 1 या 2 हो सकता है। यदि यह 1 है तो सशर्त पर शाखाओं को प्राथमिकता दी जाती है
कोड, यदि यह 2 है, तो विपरीत लागू होता है।

-mflush-जाल=संख्या
कैश फ्लश करने के लिए उपयोग करने के लिए ट्रैप नंबर निर्दिष्ट करता है। डिफ़ॉल्ट 12 है। मान्य
संख्या 0 और 15 समावेशी के बीच हैं।

-मनो-फ्लश-ट्रैप
निर्दिष्ट करता है कि ट्रैप का उपयोग करके कैश को फ़्लश नहीं किया जा सकता है।

-एमफ्लश-फंक =नाम
कैश फ्लश करने के लिए कॉल करने के लिए ऑपरेटिंग सिस्टम फ़ंक्शन का नाम निर्दिष्ट करता है। NS
डिफ़ॉल्ट है _फ्लश_कैश, लेकिन फ़ंक्शन कॉल का उपयोग केवल तभी किया जाता है जब कोई ट्रैप उपलब्ध न हो।

-मनो-फ्लश-फंक
इंगित करता है कि कैश फ्लश करने के लिए कोई OS फ़ंक्शन नहीं है।

M680x0 ऑप्शंस

ये हैं -m M680x0 और कोल्डफायर प्रोसेसर के लिए परिभाषित विकल्प। डिफ़ॉल्ट सेटिंग्स
निर्भर करता है कि कंपाइलर को कॉन्फ़िगर करते समय किस आर्किटेक्चर का चयन किया गया था; चूक
सबसे आम विकल्पों के लिए नीचे दिए गए हैं।

-मार्च=मेहराब
विशिष्ट M680x0 या ColdFire निर्देश सेट आर्किटेक्चर के लिए कोड जनरेट करें।
के अनुमेय मूल्य मेहराब M680x0 आर्किटेक्चर के लिए हैं: 68000, 68010, 68020, 68030,
68040, 68060 और cpu32. फ्रीस्केल के अनुसार कोल्डफायर आर्किटेक्चर का चयन किया जाता है
आईएसए वर्गीकरण और अनुमेय मूल्य हैं: Isaa, इसाप्लस, isab और Isac.

GCC मैक्रो को परिभाषित करता है "__mcfमेहराब__" जब भी यह कोल्डफायर के लिए कोड जनरेट कर रहा हो
लक्ष्य मेहराब इस मैक्रो में से एक है मार्च ऊपर दिए गए तर्क।

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

-एमसीपीयू =सीपीयू
विशिष्ट M680x0 या ColdFire प्रोसेसर के लिए कोड जनरेट करें। M680x0 सीपीयूये हैं:
68000, 68010, 68020, 68030, 68040, 68060, 68302, 68332 और cpu32. कोल्डफायर सीपीयूs
नीचे दी गई तालिका द्वारा दिया गया है, जो सीपीयू को परिवारों में भी वर्गीकृत करता है:

परिवार : -एमसीपीयू तर्क
51 : 51 51ac 51ag 51cn 51em 51je 51jf 51 जीजी 51jm 51mm 51qe 51qm
5206 : 5202 5204 5206
5206e : 5206e
5208 : 5207 5208
5211a : 5210a 5211a
5213 : 5211 5212 5213
5216 : 5214 5216
52235 : 52230 52231 52232 52233 52234 52235
5225 : 5224 5225
52259 : 52252 52254 52255 52256 52258 52259
5235 : 5232 5233 5234 5235 523x
5249 : 5249
5250 : 5250
5271 : 5270 5271
5272 : 5272
5275 : 5274 5275
5282 : 5280 5281 5282 528x
53017 : 53011 53012 53013 53014 53015 53016 53017
5307 : 5307
5329 : 5327 5328 5329 532x
5373 : 5372 5373 537x
5407 : 5407
5475 : 5470 5471 5472 5473 5474 5475 547x 5480 5481 5482 5483 5484 5485

-एमसीपीयू =सीपीयू ओवरराइड -मार्च=मेहराब if मेहराब के साथ संगत है सीपीयू. के अन्य संयोजन
-एमसीपीयू और मार्च खारिज कर दिया जाता है।

जीसीसी मैक्रो को परिभाषित करता है "__mcf_cpu_सी पी यू" जब कोल्डफायर लक्ष्य सीपीयू चूना गया। यह भी
परिभाषित करता है "__mcf_family_परिवार", जहां का मान परिवार उपरोक्त तालिका द्वारा दिया गया है।

-मट्यून =धुन
द्वारा निर्धारित बाधाओं के भीतर एक विशेष माइक्रोआर्किटेक्चर के लिए कोड को ट्यून करें मार्च
और -एमसीपीयू. M680x0 माइक्रोआर्किटेक्चर हैं: 68000, 68010, 68020, 68030, 68040,
68060 और cpu32. कोल्डफायर माइक्रोआर्किटेक्चर हैं: सीएफवी1, सीएफवी2, सीएफवी3, सीएफवी4 और
cfv4e.

आप भी उपयोग कर सकते हैं -मट्यून=68020-40 कोड के लिए जिसे 68020 पर अपेक्षाकृत अच्छी तरह से चलाने की आवश्यकता है,
68030 और 68040 लक्ष्य। -मट्यून=68020-60 समान है लेकिन इसमें 68060 लक्ष्य शामिल हैं:
कुंआ। ये दो विकल्प उसी ट्यूनिंग निर्णयों का चयन करते हैं जैसे -एम68020-40 और -एम68020-60
क्रमशः.

जीसीसी मैक्रोज़ को परिभाषित करता है "__mcमेहराब" और "__mcमेहराब__" 680x0 आर्किटेक्चर के लिए ट्यूनिंग करते समय
मेहराब. यह "एमसी ." को भी परिभाषित करता हैमेहराब" जब तक या तो -अनसी या एक गैर-जीएनयू -एसटीडी विकल्प का प्रयोग किया जाता है।
यदि GCC कई प्रकार के आर्किटेक्चर के लिए ट्यूनिंग कर रहा है, जैसा कि इसके द्वारा चुना गया है -मट्यून=68020-40 or
-मट्यून=68020-60, यह सीमा में प्रत्येक आर्किटेक्चर के लिए मैक्रोज़ को परिभाषित करता है।

जीसीसी मैक्रो "__m ." को भी परिभाषित करता हैउर्च__" कोल्डफायर माइक्रोआर्किटेक्चर के लिए ट्यूनिंग करते समय
उर्च, जहां उर्च ऊपर दिए गए तर्कों में से एक है।

-एम 68000
-एमसी68000
68000 के लिए आउटपुट उत्पन्न करें। यह डिफ़ॉल्ट है जब कंपाइलर को कॉन्फ़िगर किया गया है
68000-आधारित सिस्टम। यह के बराबर है -मार्च = 68000.

68000 सहित 000 या ईसी68008 कोर वाले माइक्रोकंट्रोलर्स के लिए इस विकल्प का उपयोग करें,
68302, 68306, 68307, 68322, 68328 और 68356

-एम 68010
68010 के लिए आउटपुट उत्पन्न करें। यह डिफ़ॉल्ट है जब कंपाइलर को कॉन्फ़िगर किया गया है
68010-आधारित सिस्टम। यह के बराबर है -मार्च = 68010.

-एम 68020
-एमसी68020
68020 के लिए आउटपुट उत्पन्न करें। यह डिफ़ॉल्ट है जब कंपाइलर को कॉन्फ़िगर किया गया है
68020-आधारित सिस्टम। यह के बराबर है -मार्च = 68020.

-एम 68030
68030 के लिए आउटपुट उत्पन्न करें। यह डिफ़ॉल्ट है जब कंपाइलर को कॉन्फ़िगर किया गया है
68030-आधारित सिस्टम। यह के बराबर है -मार्च = 68030.

-एम 68040
68040 के लिए आउटपुट उत्पन्न करें। यह डिफ़ॉल्ट है जब कंपाइलर को कॉन्फ़िगर किया गया है
68040-आधारित सिस्टम। यह के बराबर है -मार्च = 68040.

यह विकल्प 68881/68882 निर्देशों के उपयोग को रोकता है जिनका अनुकरण किया जाना है
68040 पर सॉफ्टवेयर। यदि आपके 68040 में अनुकरण करने के लिए कोड नहीं है तो इस विकल्प का उपयोग करें
उन निर्देशों।

-एम 68060
68060 के लिए आउटपुट उत्पन्न करें। यह डिफ़ॉल्ट है जब कंपाइलर को कॉन्फ़िगर किया गया है
68060-आधारित सिस्टम। यह के बराबर है -मार्च = 68060.

यह विकल्प 68020 और 68881/68882 निर्देशों के उपयोग को रोकता है जिन्हें होना चाहिए
68060 पर सॉफ़्टवेयर द्वारा अनुकरण किया गया। यदि आपके 68060 में कोड नहीं है तो इस विकल्प का उपयोग करें
उन निर्देशों का अनुकरण करने के लिए।

-एमसीपीयू32
CPU32 के लिए आउटपुट जेनरेट करें। यह डिफ़ॉल्ट है जब संकलक के लिए कॉन्फ़िगर किया गया है
CPU32-आधारित सिस्टम। यह के बराबर है -मार्च = सीपीयू 32.

CPU32 या CPU32+ कोर वाले माइक्रोकंट्रोलर के लिए इस विकल्प का उपयोग करें, जिसमें 68330,
68331, 68332, 68333, 68334, 68336, 68340, 68341, 68349 और 68360।

-एम 5200
520X कोल्डफायर सीपीयू के लिए आउटपुट जेनरेट करें। यह डिफ़ॉल्ट है जब संकलक है
520X-आधारित सिस्टम के लिए कॉन्फ़िगर किया गया। यह के बराबर है -एमसीपीयू=5206, और अब है
उस विकल्प के पक्ष में बहिष्कृत।

5200 कोर वाले माइक्रोकंट्रोलर के लिए इस विकल्प का उपयोग करें, जिसमें MCF5202, MCF5203,
MCF5204 और MCF5206।

-एम5206ई
5206e कोल्डफायर सीपीयू के लिए आउटपुट जेनरेट करें। विकल्प अब के पक्ष में पदावनत कर दिया गया है
बराबर -एमसीपीयू=5206e.

-m528x
कोल्डफायर 528X परिवार के सदस्य के लिए आउटपुट उत्पन्न करें। विकल्प अब है
समकक्ष के पक्ष में पदावनत -एमसीपीयू=528x.

-एम 5307
कोल्डफायर 5307 सीपीयू के लिए आउटपुट जेनरेट करें। विकल्प अब के पक्ष में पदावनत कर दिया गया है
बराबर -एमसीपीयू=5307.

-एम 5407
कोल्डफायर 5407 सीपीयू के लिए आउटपुट जेनरेट करें। विकल्प अब के पक्ष में पदावनत कर दिया गया है
बराबर -एमसीपीयू=5407.

-एमसीएफवी4ई
कोल्डफायर वी4ई फैमिली सीपीयू (जैसे 547x/548x) के लिए आउटपुट जेनरेट करें। इसमें का उपयोग शामिल है
हार्डवेयर फ्लोटिंग-पॉइंट निर्देश। विकल्प के बराबर है -एमसीपीयू=547x, और है
अब उस विकल्प के पक्ष में पदावनत कर दिया गया है।

-एम68020-40
किसी भी नए निर्देश का उपयोग किए बिना, 68040 के लिए आउटपुट उत्पन्न करें। इसका परिणाम
कोड में जो 68020/68881 या 68030 या a . पर अपेक्षाकृत कुशलता से चल सकता है
68040. जनरेट किया गया कोड 68881 निर्देशों का उपयोग करता है जिनका अनुकरण किया जाता है
68040.

विकल्प के बराबर है -मार्च = 68020 -मट्यून=68020-40.

-एम68020-60
किसी भी नए निर्देश का उपयोग किए बिना, 68060 के लिए आउटपुट उत्पन्न करें। इसका परिणाम
कोड में जो 68020/68881 या 68030 या a . पर अपेक्षाकृत कुशलता से चल सकता है
68040. जनरेट किया गया कोड 68881 निर्देशों का उपयोग करता है जिनका अनुकरण किया जाता है
68060.

विकल्प के बराबर है -मार्च = 68020 -मट्यून=68020-60.

-महार्ड-फ्लोट
-एम 68881
फ़्लोटिंग-पॉइंट निर्देश उत्पन्न करें। यह 68020 और इसके बाद के संस्करण के लिए डिफ़ॉल्ट है, और
कोल्डफायर उपकरणों के लिए जिनमें एक FPU है। यह मैक्रो "__HAVE_68881__" को परिभाषित करता है
M680x0 लक्ष्य और "__mcffpu__" कोल्डफायर लक्ष्यों पर।

-एमसॉफ्ट-फ्लोट
फ़्लोटिंग-पॉइंट निर्देश उत्पन्न न करें; इसके बजाय लाइब्रेरी कॉल का उपयोग करें। यह है
68000, 68010 और 68832 लक्ष्यों के लिए डिफ़ॉल्ट। यह कोल्डफायर के लिए भी डिफ़ॉल्ट है
ऐसे उपकरण जिनमें कोई FPU नहीं है।

-एमडीवी
-मनो-डिव
कोल्डफायर हार्डवेयर डिवाइड और शेष निर्देश उत्पन्न करें (उत्पन्न न करें)। अगर
मार्च बिना उपयोग किया जाता है -एमसीपीयू, कोल्डफायर आर्किटेक्चर के लिए डिफ़ॉल्ट "चालू" है और "बंद" है
M680x0 आर्किटेक्चर के लिए। अन्यथा, डिफ़ॉल्ट लक्ष्य CPU से लिया जाता है (या तो
डिफ़ॉल्ट सीपीयू, या द्वारा निर्दिष्ट एक -एमसीपीयू) उदाहरण के लिए, डिफ़ॉल्ट "बंद" है
एसटी -एमसीपीयू=5206 और "चालू" के लिए -एमसीपीयू=5206e.

इस विकल्प के सक्षम होने पर GCC मैक्रो "__mcfhwdiv__" को परिभाषित करता है।

-मशॉर्ट
16 बिट चौड़ा होने के लिए "int" टाइप करें, जैसे "शॉर्ट इंट"। इसके अतिरिक्त, पैरामीटर
स्टैक पर पारित लक्ष्य पर भी 16-बिट सीमा के साथ गठबंधन किया जाता है जिसका एपीआई
32-बिट को बढ़ावा देना अनिवार्य है।

-मनो-शॉर्ट
टाइप "int" को 16 बिट चौड़ा न मानें। यह डिफ़ॉल्ट है।

-मनोबिटफील्ड
-मनो-बिटफ़ील्ड
बिट-फ़ील्ड निर्देशों का उपयोग न करें। NS -एम 68000, -एमसीपीयू32 और -एम 5200 विकल्प का अर्थ है
-मनोबिटफील्ड.

-एमबिटफ़ील्ड
बिट-फ़ील्ड निर्देशों का उपयोग करें। NS -एम 68020 विकल्प का तात्पर्य है -एमबिटफ़ील्ड। ये है
डिफ़ॉल्ट यदि आप 68020 के लिए डिज़ाइन किए गए कॉन्फ़िगरेशन का उपयोग करते हैं।

-एमआरटीडी
एक अलग फ़ंक्शन-कॉलिंग कन्वेंशन का उपयोग करें, जिसमें फ़ंक्शन जो एक निश्चित लेते हैं
तर्कों की संख्या "rtd" निर्देश के साथ लौटती है, जो उनके तर्कों को पॉप करता है
लौटते समय। यह कॉलर में एक निर्देश बचाता है क्योंकि इसकी कोई आवश्यकता नहीं है
वहां तर्क पॉप करें।

यह कॉलिंग कन्वेंशन सामान्य रूप से यूनिक्स पर उपयोग किए जाने वाले के साथ असंगत है, इसलिए आप
यदि आपको यूनिक्स कंपाइलर के साथ संकलित पुस्तकालयों को कॉल करने की आवश्यकता है तो इसका उपयोग नहीं कर सकते हैं।

साथ ही, आपको उन सभी कार्यों के लिए फ़ंक्शन प्रोटोटाइप प्रदान करना होगा जो चर लेते हैं
तर्कों की संख्या ("प्रिंटफ" सहित); अन्यथा गलत कोड उत्पन्न होता है
उन कार्यों के लिए कॉल।

इसके अलावा, यदि आप किसी फ़ंक्शन को बहुत अधिक कॉल करते हैं, तो गंभीर रूप से गलत कोड परिणाम देता है
तर्क। (आम तौर पर, अतिरिक्त तर्कों को हानिरहित रूप से अनदेखा किया जाता है।)

"RTD" निर्देश 68010, 68020, 68030, 68040, 68060 और CPU32 द्वारा समर्थित है
प्रोसेसर, लेकिन 68000 या 5200 तक नहीं।

-मनो-आरटीडी
द्वारा चुने गए कॉलिंग सम्मेलनों का उपयोग न करें -एमआरटीडी. यह डिफ़ॉल्ट है।

-मालिग्न-इंट
-मनो-संरेखित-इंट
नियंत्रित करें कि क्या GCC "int", "long", "long long", "float", "double" और "long . को संरेखित करता है
32-बिट सीमा पर डबल" चर (-मालिग्न-इंट) या 16-बिट सीमा
(-मनो-संरेखित-इंट) 32-बिट सीमाओं पर चर संरेखित करने से कोड उत्पन्न होता है जो चलता है
अधिक मेमोरी की कीमत पर 32-बिट बस वाले प्रोसेसर पर कुछ तेज।

चेतावनी: यदि आप उपयोग करते हैं -मालिग्न-इंट स्विच, जीसीसी उपरोक्त युक्त संरचनाओं को संरेखित करता है
अधिकांश प्रकाशित एप्लिकेशन बाइनरी इंटरफ़ेस विनिर्देशों की तुलना में भिन्न प्रकार
एम68के।

-एमपीसीआरएल
ग्लोबल का उपयोग करने के बजाय सीधे 68000 के पीसी-रिश्तेदार एड्रेसिंग मोड का उपयोग करें
ऑफसेट टेबल। वर्तमान में, इस विकल्प का अर्थ है -एफपीआईसी, अधिकतम 16-बिट ऑफ़सेट की अनुमति देता है
पीसी-रिश्तेदार पते के लिए। -एफपीआईसी वर्तमान में के साथ समर्थित नहीं है -एमपीसीआरएल, हालांकि
यह 68020 और उच्चतर प्रोसेसर के लिए समर्थित हो सकता है।

-मनो-सख्त-संरेखण
-मस्ट्रिक्ट-संरेखण
यह मत मानिए (करते हैं) कि असंरेखित स्मृति संदर्भों को सिस्टम द्वारा नियंत्रित किया जाता है।

-एमएसईपी-डेटा
कोड उत्पन्न करें जो डेटा खंड को स्मृति के एक अलग क्षेत्र में स्थित होने की अनुमति देता है
पाठ खंड से। यह बिना किसी वातावरण में निष्पादित-इन-प्लेस की अनुमति देता है
आभासी स्मृति प्रबंधन। इस विकल्प का तात्पर्य है -एफपीआईसी.

-मनो-सितंबर-डेटा
कोड जेनरेट करें जो मानता है कि डेटा सेगमेंट टेक्स्ट सेगमेंट का अनुसरण करता है। यह है
डिफ़ॉल्ट।

-मिड-शेयर्ड-लाइब्रेरी
लाइब्रेरी आईडी विधि के माध्यम से साझा पुस्तकालयों का समर्थन करने वाला कोड उत्पन्न करें। यह अनुमति देता है
वर्चुअल मेमोरी के बिना वातावरण में निष्पादित-इन-प्लेस और साझा पुस्तकालयों के लिए
प्रबंध। इस विकल्प का तात्पर्य है -एफपीआईसी.

-मनो-आईडी-साझा-लाइब्रेरी
कोड उत्पन्न करें जो यह नहीं मानता कि आईडी-आधारित साझा पुस्तकालयों का उपयोग किया जा रहा है। यह है
डिफ़ॉल्ट।

-mshared-लाइब्रेरी-आईडी = n
संकलित की जा रही आईडी-आधारित साझा लाइब्रेरी की पहचान संख्या निर्दिष्ट करता है।
0 का मान निर्दिष्ट करना अधिक कॉम्पैक्ट कोड उत्पन्न करता है; अन्य मान बलों को निर्दिष्ट करना
वर्तमान पुस्तकालय के लिए उस संख्या का आवंटन, लेकिन अब कोई स्थान नहीं है- या समय-
इस विकल्प को छोड़ने से कुशल।

-मक्सगोट
-मनो-एक्सगोट
कोल्डफायर के लिए स्थिति-स्वतंत्र कोड उत्पन्न करते समय, कोड उत्पन्न करें जो काम करता है if
जीओटी में 8192 से अधिक प्रविष्टियां हैं। यह कोड कोड से बड़ा और धीमा है
इस विकल्प के बिना उत्पन्न। M680x0 प्रोसेसर पर, इस विकल्प की आवश्यकता नहीं है; -एफपीआईसी
पर्याप्त होता।

जीसीसी आम तौर पर जीओटी से मूल्यों को लोड करने के लिए एक ही निर्देश का उपयोग करता है। जबकि यह है
अपेक्षाकृत कुशल, यह केवल तभी काम करता है जब GOT लगभग 64k से छोटा हो। कुछ भी
बड़ा कारण लिंकर को त्रुटि की रिपोर्ट करने का कारण बनता है जैसे:

स्थानांतरण को फिट करने के लिए छोटा किया गया: R_68K_GOT16O foobar

यदि ऐसा होता है, तो आपको अपना कोड फिर से कंपाइल करना चाहिए -मक्सगोट. इसके बाद काम करना चाहिए
बहुत बड़े जीओटी। हालांकि, कोड के साथ उत्पन्न -मक्सगोट कम कुशल है, क्योंकि यह
वैश्विक प्रतीक का मान प्राप्त करने के लिए 4 निर्देश लेता है।

ध्यान दें कि जीएनयू लिंकर के नए संस्करणों सहित कुछ लिंकर बना सकते हैं
एकाधिक जीओटी और सॉर्ट जीओटी प्रविष्टियां। यदि आपके पास ऐसा लिंकर है, तो आपको केवल इसकी आवश्यकता होनी चाहिए
उपयोग करने के लिए -मक्सगोट 8192 से अधिक GOT तक पहुँचने वाली एकल ऑब्जेक्ट फ़ाइल को संकलित करते समय
प्रविष्टियाँ। बहुत कम करते हैं।

इन विकल्पों का कोई प्रभाव नहीं पड़ता है जब तक कि जीसीसी स्थिति-स्वतंत्र कोड उत्पन्न नहीं कर रहा है।

एमकोर ऑप्शंस

ये हैं -m Motorola M*Core प्रोसेसर के लिए परिभाषित विकल्प।

-महार्डलिट
-मनो-हार्डलिट
कोड स्ट्रीम में इनलाइन स्थिरांक यदि यह दो या उससे कम निर्देशों में किया जा सकता है।

-एमडीवी
-मनो-डिव
विभाजित निर्देश का प्रयोग करें। (डिफ़ॉल्ट रूप से सक्षम)।

-मेरेलैक्स-तत्काल
-मनो-आराम-तत्काल
बिट ऑपरेशंस में मनमाने आकार के तत्काल अनुमति दें।

-मवाइड-बिटफ़ील्ड
-मनो-वाइड-बिटफ़ील्ड
हमेशा बिट-फ़ील्ड को "int" -साइज़ के रूप में मानें।

-एम4बाइट-फ़ंक्शंस
-मनो-4बाइट-फ़ंक्शंस
सभी कार्यों को 4-बाइट सीमा से संरेखित करने के लिए बाध्य करें।

-मैकॉलग्राफ-डेटा
-मनो-कॉलग्राफ-डेटा
कॉलग्राफ जानकारी उत्सर्जित करें।

-एमएसलो-बाइट्स
-मनो-धीमी-बाइट्स
बाइट मात्राओं को पढ़ते समय वर्ड एक्सेस को प्राथमिकता दें।

-थोड़ा-एंडियन
-मबिग-एंडियन
छोटे-एंडियन लक्ष्य के लिए कोड जनरेट करें।

-एम 210
-एम 340
210 प्रोसेसर के लिए कोड जेनरेट करें।

-मनो-लसिम
मान लें कि रनटाइम समर्थन प्रदान किया गया है और इसलिए सिम्युलेटर लाइब्रेरी को छोड़ दें
(लिबसिम.ए) लिंकर कमांड लाइन से।

-मस्टैक-इन्क्रीमेंट=आकार
सिंगल स्टैक इंक्रीमेंट ऑपरेशन के लिए अधिकतम राशि निर्धारित करें। बड़े मूल्य कर सकते हैं
उन कार्यक्रमों की गति बढ़ाएं जिनमें ऐसे कार्य होते हैं जिनकी बड़ी मात्रा में आवश्यकता होती है
स्टैक स्पेस, लेकिन यदि स्टैक को बढ़ाया जाता है, तो वे एक सेगमेंटेशन फॉल्ट को भी ट्रिगर कर सकते हैं
बहुत अधिक। डिफ़ॉल्ट मान 0x1000 है।

एमईपी ऑप्शंस

-मैब्सडिफ
"एब्स" निर्देश को सक्षम करता है, जो दो रजिस्टरों के बीच पूर्ण अंतर है।

-मॉल-ऑप्ट्स
सभी वैकल्पिक निर्देशों को सक्षम करता है --- औसत, गुणा, भाग, बिट संचालन,
अग्रणी शून्य, पूर्ण अंतर, न्यूनतम/अधिकतम, क्लिप, और संतृप्ति।

-मावरेज
"ave" निर्देश को सक्षम करता है, जो दो रजिस्टरों के औसत की गणना करता है।

-एमबेड =n
आकार के चर n बाइट्स या छोटे डिफ़ॉल्ट रूप से ".आधारित" अनुभाग में रखे जाते हैं।
आधारित चर $tp रजिस्टर को आधार रजिस्टर के रूप में उपयोग करते हैं, और एक 128-बाइट सीमा होती है
".आधारित" अनुभाग में।

-एमबीटॉप्स
बिट ऑपरेशन निर्देश सक्षम करता है --- बिट टेस्ट ("बीटीएसटीएम"), सेट ("बीसेटएम"), स्पष्ट
("bclrm"), इनवर्ट ("bnotm"), और टेस्ट-एंड-सेट ("tas")।

-एमसी =नाम
चुनता है कि किस अनुभाग में निरंतर डेटा रखा गया है। नाम हो सकता है छोटे, पासया, दूर.

-एमसीलिप
"क्लिप" निर्देश को सक्षम करता है। ध्यान दें कि -एमसीलिप तब तक उपयोगी नहीं है जब तक आप भी
प्रदान करना -मिमिनमैक्स.

-एमकॉन्फिग =नाम
अंतर्निहित कोर कॉन्फ़िगरेशन में से एक का चयन करता है। प्रत्येक एमईपी चिप में एक या अधिक होते हैं
इसमें मॉड्यूल; प्रत्येक मॉड्यूल में एक कोर सीपीयू और विभिन्न प्रकार के सहसंसाधक होते हैं, वैकल्पिक
निर्देश, और परिधीय। "MeP-Integrator" टूल, GCC का भाग नहीं, प्रदान करता है
इस विकल्प के माध्यम से ये विन्यास; इस विकल्प का उपयोग करना सभी का उपयोग करने के समान है
संबंधित कमांड-लाइन विकल्प। डिफ़ॉल्ट कॉन्फ़िगरेशन है चूक.

-मकोप
सहसंसाधक निर्देशों को सक्षम करता है। डिफ़ॉल्ट रूप से, यह एक 32-बिट कोप्रोसेसर है। ध्यान दें
कि कोप्रोसेसर सामान्य रूप से के माध्यम से सक्षम होता है -एमकॉन्फिग = विकल्प.

-एमसीओपी32
32-बिट कोप्रोसेसर के निर्देशों को सक्षम करता है।

-एमसीओपी64
64-बिट कोप्रोसेसर के निर्देशों को सक्षम करता है।

-एमआईवीसी2
IVC2 शेड्यूलिंग सक्षम करता है। IVC2 एक 64-बिट VLIW कोप्रोसेसर है।

-एमडीसी
निरंतर चर को ".निकट" खंड में रखने का कारण बनता है।

-एमडीवी
"Div" और "divu" निर्देशों को सक्षम करता है।

-मेब
बिग-एंडियन कोड जेनरेट करें।

-मेले
लिटिल-एंडियन कोड जेनरेट करें।

-मियो-अस्थिर
संकलक को बताता है कि "io" विशेषता के साथ चिह्नित कोई भी चर होना चाहिए
अस्थिर माना जाता है।

-एमएल डिफ़ॉल्ट रूप से ".far" अनुभाग को चर निर्दिष्ट करने का कारण बनता है।

-मलेड्ज़ो
"लीडज़" (अग्रणी शून्य) निर्देश सक्षम करता है।

-म डिफ़ॉल्ट रूप से वेरिएबल को ".निकट" अनुभाग में असाइन करने का कारण बनता है।

-मिमिनमैक्स
"न्यूनतम" और "अधिकतम" निर्देशों को सक्षम करता है।

-मिमल
गुणा और गुणा-संचय निर्देशों को सक्षम करता है।

-मनो-ऑप्स
द्वारा सक्षम सभी वैकल्पिक निर्देशों को अक्षम करता है -मॉल-ऑप्ट्स.

-मरेपीट
लो-ओवरहेड लूपिंग के लिए उपयोग किए जाने वाले "रिपीट" और "रेपीट" निर्देशों को सक्षम करता है।

-एमएस सभी वेरिएबल को ".tiny" सेक्शन में डिफॉल्ट कर देता है। ध्यान दें कि एक है
इस खंड के लिए 65536-बाइट सीमा। इन चरों तक पहुँच %gp आधार का उपयोग करती है
रजिस्टर.

-मसतुर
संतृप्ति निर्देशों को सक्षम करता है। ध्यान दें कि कंपाइलर वर्तमान में नहीं है
इन्हें स्वयं उत्पन्न करें, लेकिन यह विकल्प अन्य उपकरणों के साथ संगतता के लिए शामिल है,
जैसे"।

-एमएसड्राम
डिफ़ॉल्ट ROM-आधारित रनटाइम के बजाय SDRAM-आधारित रनटाइम को लिंक करें।

-मसिम
सिम्युलेटर रन-टाइम लाइब्रेरी को लिंक करें।

-मसिमनोवेक
रीसेट के लिए अंतर्निहित समर्थन को छोड़कर, सिम्युलेटर रनटाइम लाइब्रेरी को लिंक करें और
अपवाद वैक्टर और टेबल।

-एमटीएफ
सभी कार्यों को ".far" खंड में डिफ़ॉल्ट रूप से उत्पन्न करता है। इस विकल्प के बिना, कार्य
".निकट" अनुभाग के लिए डिफ़ॉल्ट।

-मिनी =n
चर जो हैं n बाइट्स या छोटे को ".tiny" सेक्शन में आवंटित किया जाता है। इन
चर $gp आधार रजिस्टर का उपयोग करते हैं। इस विकल्प के लिए डिफ़ॉल्ट 4 है, लेकिन ध्यान दें कि
".tiny" खंड में 65536-बाइट की सीमा है।

माइक्रोब्लाज ऑप्शंस

-एमसॉफ्ट-फ्लोट
फ़्लोटिंग पॉइंट (डिफ़ॉल्ट) के लिए सॉफ़्टवेयर इम्यूलेशन का उपयोग करें।

-महार्ड-फ्लोट
हार्डवेयर फ़्लोटिंग-पॉइंट निर्देशों का उपयोग करें।

-mmemcpy
ब्लॉक चालों का अनुकूलन न करें, "memcpy" का उपयोग करें।

-मनो-क्लीयरबस
यह विकल्प बहिष्कृत है। उपयोग -फनो-जीरो-इनिशियलाइज्ड-इन-बीएसएस बजाय.

-एमसीपीयू =सीपीयू प्रकार
दिए गए CPU के लिए सुविधाओं और शेड्यूल कोड का उपयोग करें। समर्थित मान में हैं
प्रारूप vX.YY.Z, जहां X एक प्रमुख संस्करण है, YY लघु संस्करण है, और Z is
संगतता कोड। उदाहरण मान हैं v3.00.ए, v4.00.बी, v5.00.ए, v5.00.बी, v5.00.बी,
v6.00.ए.

-एमएक्सएल-सॉफ्ट-मुल
सॉफ़्टवेयर गुणा इम्यूलेशन (डिफ़ॉल्ट) का उपयोग करें।

-एमएक्सएल-सॉफ्ट-डिव
डिवाइड (डिफ़ॉल्ट) के लिए सॉफ़्टवेयर इम्यूलेशन का उपयोग करें।

-एमएक्सएल-बैरल-शिफ्ट
हार्डवेयर बैरल शिफ्टर का उपयोग करें।

-एमएक्सएल-पैटर्न-तुलना
पैटर्न तुलना निर्देशों का प्रयोग करें।

-स्मॉल-डिवाइड
छोटे हस्ताक्षरित पूर्णांक विभाजनों के लिए तालिका लुकअप अनुकूलन का उपयोग करें।

-एमएक्सएल-स्टैक-चेक
यह विकल्प बहिष्कृत है। उपयोग -फस्टैक-चेक बजाय.

-एमएक्सएल-जीपी-ऑप्ट
GP-सापेक्ष ".sdata"/.sbss" अनुभागों का उपयोग करें।

-एमएक्सएल-गुणा-उच्च
32x32 गुणा के उच्च भाग के लिए उच्च निर्देशों को गुणा करें का उपयोग करें।

-एमएक्सएल-फ्लोट-कन्वर्ट
हार्डवेयर फ़्लोटिंग-पॉइंट रूपांतरण निर्देशों का उपयोग करें।

-एमएक्सएल-फ्लोट-वर्ग
हार्डवेयर फ़्लोटिंग-पॉइंट स्क्वायर रूट निर्देश का प्रयोग करें।

-मबिग-एंडियन
बड़े-एंडियन लक्ष्य के लिए कोड जनरेट करें।

-थोड़ा-एंडियन
छोटे-एंडियन लक्ष्य के लिए कोड जनरेट करें।

-एमएक्सएल-रीऑर्डर
पुन: क्रम निर्देशों का उपयोग करें (स्वैप और बाइट रिवर्स लोड/स्टोर)।

-एमएक्सएल-मोड-ऐप-मॉडल
एप्लिकेशन मॉडल का चयन करें ऐप-मॉडल. मान्य मॉडल हैं

निष्पादन
सामान्य निष्पादन योग्य (डिफ़ॉल्ट), स्टार्टअप कोड का उपयोग करता है crt0.o.

xmdstub
Xilinx माइक्रोप्रोसेसर डीबगर (XMD) आधारित सॉफ़्टवेयर घुसपैठ डीबग के साथ प्रयोग के लिए
xmdstub नामक एजेंट। यह स्टार्टअप फ़ाइल का उपयोग करता है crt1.o और का प्रारंभ पता सेट करता है
0x800 के लिए कार्यक्रम।

बूटस्ट्रैप
बूटलोडर का उपयोग करके लोड किए गए अनुप्रयोगों के लिए। यह मॉडल स्टार्टअप फ़ाइल का उपयोग करता है
crt2.o जिसमें प्रोसेसर रीसेट वेक्टर हैंडलर नहीं है। यह उपयुक्त है
प्रोसेसर पर नियंत्रण को बूटलोडर पर रीसेट करने के बजाय स्थानांतरित करने के लिए
आवेदन.

नवप्रवर्तक
उन अनुप्रयोगों के लिए जिन्हें किसी भी माइक्रोब्लेज़ वैक्टर की आवश्यकता नहीं होती है। इस विकल्प
मॉनिटरिंग एप्लिकेशन के भीतर चल रहे एप्लिकेशन के लिए उपयोगी हो सकता है। यह मॉडल
का उपयोग करता है crt3.o स्टार्टअप फ़ाइल के रूप में।

विकल्प -एक्सएल-मोड-ऐप-मॉडल के लिए एक पदावनत उपनाम है -एमएक्सएल-मोड-ऐप-मॉडल.

एमआइपी ऑप्शंस

-ईबी बिग-एंडियन कोड जेनरेट करें।

हैं El लिटिल-एंडियन कोड जेनरेट करें। यह इसके लिए डिफ़ॉल्ट है मिप्स*एल-*-* विन्यास।

-मार्च=मेहराब
कोड जनरेट करें जो चालू रहता है मेहराब, जो एक सामान्य MIPS ISA का नाम हो सकता है, या
एक विशेष प्रोसेसर का नाम। आईएसए नाम हैं: मिप्स1, मिप्स2, मिप्स3, मिप्स4,
मिप्स32, mips32r2, mips32r3, mips32r5, mips32r6, मिप्स64, mips64r2, mips64r3, mips64r5
और mips64r6. प्रोसेसर के नाम हैं: 4kc, 4km, ९३४६७४८९३४kp, 4ksc, 4केईसी, 4केएम, 4केपी, 4केएसडी,
5kc, 5kf, 20kc, 24kc, 24केएफ2_1, 24केएफ1_1, 24केईसी, 24केफ2_1, 24केफ1_1, 34kc, 34केएफ2_1,
34केएफ1_1, 34kn, 74kc, 74केएफ2_1, 74केएफ1_1, 74केएफ3_2, 1004kc, 1004केएफ2_1, 1004केएफ1_1,
लूंगसन2ई, लूंगसन2f, लूंगसन3ए, m4k, m14k, एम14केसी, m14ke, एम14केईसी, अष्टक, अष्टक+,
अष्टक 2, अष्टक 3, ओरियन, p5600, r2000, r3000, r3900, r4000, r4400, r4600, r4650,
r4700, r6000, r8000, rm7000, rm9000, r10000, r12000, r14000, r16000, sb1, sr71000,
vr4100, vr4111, vr4120, vr4130, vr4300, vr5000, vr5400, vr5500, XLR और XLP
विशेष मूल्य से-अबी चयनित ABI के लिए सबसे संगत आर्किटेक्चर का चयन करता है
(अर्थात्, मिप्स1 32-बिट एबीआई और . के लिए मिप्स3 64-बिट एबीआई के लिए)।

देशी Linux/GNU टूलचेन भी मूल्य का समर्थन करता है देशी, जो सर्वश्रेष्ठ का चयन करता है
होस्ट प्रोसेसर के लिए आर्किटेक्चर विकल्प। -मार्च = देशी जीसीसी करता है तो कोई प्रभाव नहीं पड़ता
प्रोसेसर को नहीं पहचानते।

प्रोसेसर नामों में, एक अंतिम 000 के रूप में संक्षिप्त किया जा सकता है k (उदाहरण के लिए, -मार्च=r2k).
उपसर्ग वैकल्पिक हैं, और vr लिखा जा सकता है r.

फॉर्म के नाम nf2_1 एफपीयू के साथ प्रोसेसर का संदर्भ लें, जो की आधी दर पर क्लॉक किया गया है
कोर, फॉर्म के नाम nf1_1 समान दर पर क्लॉक किए गए FPU वाले प्रोसेसर का संदर्भ लें
कोर के रूप में, और प्रपत्र के नाम nf3_2 एफपीयू के साथ एक अनुपात में देखे गए प्रोसेसर का संदर्भ लें
कोर के संबंध में 3:2 का। अनुकूलता कारणों से, nf के रूप में स्वीकार किया जाता है
के लिए समानार्थी nf2_1 जब nx और bfx के पर्यायवाची के रूप में स्वीकार किए जाते हैं nf1_1.

GCC इस विकल्प के मूल्य के आधार पर दो मैक्रो को परिभाषित करता है। पहला "_MIPS_ARCH" है,
जो एक स्ट्रिंग के रूप में लक्ष्य वास्तुकला का नाम देता है। दूसरे का रूप है
"_MIPS_ARCH_फू", जहां foo "_MIPS_ARCH" का पूंजीकृत मान है। उदाहरण के लिए,
-मार्च = r2000 "_MIPS_ARCH" को "r2000" पर सेट करता है और मैक्रो "_MIPS_ARCH_R2000" को परिभाषित करता है।

ध्यान दें कि "_MIPS_ARCH" मैक्रो ऊपर दिए गए प्रोसेसर नामों का उपयोग करता है। अन्य में
शब्द, इसमें पूर्ण उपसर्ग है और संक्षिप्त नहीं है 000 as k। के मामले में से-
अबी, मैक्रो हल किए गए आर्किटेक्चर को नाम देता है (या तो "mips1" या "mips3")। यह नाम
डिफ़ॉल्ट आर्किटेक्चर जब नहीं मार्च विकल्प दिया गया है।

-मट्यून =मेहराब
के लिए ऑप्टिमाइज़ करें मेहराब. अन्य बातों के अलावा, यह विकल्प निर्देशों के तरीके को नियंत्रित करता है
अनुसूचित, और अंकगणितीय परिचालनों की अनुमानित लागत। की सूची मेहराब मानों
के लिए ही है मार्च.

जब इस विकल्प का उपयोग नहीं किया जाता है, तो GCC द्वारा निर्दिष्ट प्रोसेसर के लिए अनुकूलित किया जाता है मार्च। द्वारा
का उपयोग मार्च और -मट्यून एक साथ, कोड उत्पन्न करना संभव है जो a . पर चलता है
प्रोसेसर का परिवार, लेकिन उस परिवार के एक विशेष सदस्य के लिए कोड को अनुकूलित करें।

-मट्यून मैक्रोज़ "_MIPS_TUNE" और "_MIPS_TUNE_" को परिभाषित करता हैफू", जो उसी में काम करते हैं
जिस तरह से मार्च ऊपर वर्णित वाले।

-मिप्स1
के बराबर -मार्च = मिप्स1.

-मिप्स2
के बराबर -मार्च = मिप्स2.

-मिप्स3
के बराबर -मार्च = मिप्स3.

-मिप्स4
के बराबर -मार्च = मिप्स4.

-मिप्स32
के बराबर -मार्च = मिप्स32.

-मिप्स32r3
के बराबर -मार्च = mips32r3.

-मिप्स32r5
के बराबर -मार्च = mips32r5.

-मिप्स32r6
के बराबर -मार्च = mips32r6.

-मिप्स64
के बराबर -मार्च = मिप्स64.

-मिप्स64r2
के बराबर -मार्च = mips64r2.

-मिप्स64r3
के बराबर -मार्च = mips64r3.

-मिप्स64r5
के बराबर -मार्च = mips64r5.

-मिप्स64r6
के बराबर -मार्च = mips64r6.

-मिप्स16
-मनो-मिप्स16
MIPS16 कोड उत्पन्न करें (उत्पन्न न करें)। यदि GCC MIPS32 या MIPS64 को लक्षित कर रहा है
वास्तुकला, यह MIPS16e ASE का उपयोग करता है।

MIPS16 कोड जनरेशन को प्रति-फ़ंक्शन के आधार पर भी नियंत्रित किया जा सकता है
"mips16" और "nomips16" विशेषताएँ।

-एमएफलिप-मिप्स16
वैकल्पिक कार्यों पर MIPS16 कोड उत्पन्न करें। यह विकल्प प्रतिगमन के लिए प्रदान किया गया है
मिश्रित MIPS16/गैर-MIPS16 कोड पीढ़ी का परीक्षण, और सामान्य के लिए अभिप्रेत नहीं है
उपयोगकर्ता कोड संकलित करने में उपयोग करें।

-मिन्टरलिंक-संपीड़ित
-मनो-इंटरलिंक-संपीड़ित
आवश्यकता है (आवश्यक नहीं है) कि मानक (असम्पीडित) MIPS ISA का उपयोग करने वाला कोड लिंक हो-
MIPS16 और microMIPS कोड के साथ संगत, और इसके विपरीत।

उदाहरण के लिए, मानक ISA एन्कोडिंग का उपयोग करने वाला कोड सीधे MIPS16 पर नहीं जा सकता या
माइक्रोएमआईपीएस कोड; इसे या तो कॉल या अप्रत्यक्ष छलांग का उपयोग करना चाहिए। -मिन्टरलिंक-संपीड़ित
इसलिए सीधे छलांग को निष्क्रिय कर देता है जब तक कि जीसीसी यह नहीं जानता कि छलांग का लक्ष्य नहीं है
दबा हुआ।

-मिन्टरलिंक-मिप्स16
-मनो-इंटरलिंक-मिप्स16
के उपनाम -मिन्टरलिंक-संपीड़ित और -मनो-इंटरलिंक-संपीड़ित. ये विकल्प
माइक्रोएमआईपीएस एएसई की भविष्यवाणी करते हैं और पश्चगामी संगतता के लिए बनाए रखा जाता है।

-मबी=32
-माबी = ओ 64
-मबी = n32
-मबी=64
-मबी=ईबी
दिए गए ABI के लिए कोड जनरेट करें।

ध्यान दें कि ईएबीआई में 32-बिट और 64-बिट संस्करण हैं। जीसीसी सामान्य रूप से 64-बिट . उत्पन्न करता है
कोड जब आप 64-बिट आर्किटेक्चर का चयन करते हैं, लेकिन आप इसका उपयोग कर सकते हैं -एमजीपी32 32-बिट कोड प्राप्त करने के लिए
बजाय.

O64 ABI के बारे में जानकारी के लिए देखेंhttp://gcc.gnu.org/projects/mipso64-abi.html>.

GCC o32 ABI के एक प्रकार का समर्थन करता है जिसमें फ़्लोटिंग-पॉइंट रजिस्टर 64 बल्कि हैं
32 बिट से अधिक चौड़ा। आप इस संयोजन का चयन कर सकते हैं -मबी=32 -एमएफपी64. यह एबीआई
"mthc1" और "mfhc1" निर्देशों पर निर्भर करता है और इसलिए केवल के लिए समर्थित है
MIPS32R2, MIPS32R3 और MIPS32R5 प्रोसेसर।

तर्कों और वापसी मूल्यों के लिए रजिस्टर असाइनमेंट समान रहते हैं, लेकिन प्रत्येक
अदिश मान 64-बिट की जोड़ी के बजाय एकल 32-बिट रजिस्टर में पारित किया जाता है
रजिस्टर उदाहरण के लिए, अदिश फ़्लोटिंग-पॉइंट मान लौटाए जाते हैं $f0 केवल, नहीं a
$f0/$f1 जोड़ा। कॉल-सेव्ड रजिस्टरों का सेट भी वही रहता है जिसमें सम-
क्रमांकित डबल-सटीक रजिस्टर सहेजे जाते हैं।

o32 ABI के दो अतिरिक्त संस्करण से संक्रमण को सक्षम करने के लिए समर्थित हैं
32-बिट से 64-बिट रजिस्टर। ये हैं FPXX (-एमएफपीएक्सएक्स) और FP64A (-एमएफपी64
-मनो-ऑड-स्प्रिग) FPXX एक्सटेंशन अनिवार्य है कि सभी कोड सही ढंग से निष्पादित होने चाहिए
जब 32-बिट या 64-बिट रजिस्टरों का उपयोग करके चलाया जाता है। कोड को या तो इंटरलिंक किया जा सकता है
FP32 या FP64, लेकिन दोनों नहीं। FP64A एक्सटेंशन FP64 एक्सटेंशन के समान है लेकिन
विषम-संख्या वाले एकल-सटीक रजिस्टरों के उपयोग को प्रतिबंधित करता है। इसका उपयोग में किया जा सकता है
MIPS32R5 प्रोसेसर में FPU के "FRE" मोड के साथ संयोजन और FP32 . दोनों की अनुमति देता है
और FP64A कोड को आपस में जोड़ने और FPU मोड को बदले बिना उसी प्रक्रिया में चलाने के लिए।

-मैबिकल्स
-मनो-एबिकल्स
कोड उत्पन्न करें (उत्पन्न न करें) जो SVR4-शैली की गतिशील वस्तुओं के लिए उपयुक्त है।
-मैबिकल्स SVR4-आधारित सिस्टम के लिए डिफ़ॉल्ट है।

-mshared
-मनो-साझा
कोड उत्पन्न करें (उत्पन्न न करें) जो पूरी तरह से स्थिति-स्वतंत्र है, और जो कर सकता है
इसलिए साझा पुस्तकालयों में जोड़ा जाना चाहिए। यह विकल्प केवल प्रभावित करता है -मैबिकल्स.

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

-मनो-साझा बिनुटिल्स 2.16 या उच्चतर पर निर्भर करता है और ऐसी वस्तुएं उत्पन्न करता है जो केवल हो सकती हैं
जीएनयू लिंकर द्वारा जुड़ा हुआ है। हालांकि, विकल्प फाइनल के एबीआई को प्रभावित नहीं करता है
निष्पादन योग्य; यह केवल स्थानांतरित करने योग्य वस्तुओं के एबीआई को प्रभावित करता है। का उपयोग करते हुए -मनो-साझा
आम तौर पर निष्पादन योग्य दोनों को छोटा और तेज बनाता है।

-mshared डिफ़ॉल्ट है।

-एमपीएलटी
-मनो-पीएलटी
मान लें (मान लें) कि स्थिर और गतिशील लिंकर्स पीएलटी का समर्थन करते हैं और कॉपी करते हैं
स्थान परिवर्तन। यह विकल्प केवल प्रभावित करता है -मनो-साझा -मैबिकल्स. एन 64 एबीआई के लिए, यह
बिना विकल्प का कोई प्रभाव नहीं पड़ता -एमएसआईएम32.

आप कर सकते हैं -एमपीएलटी के साथ जीसीसी को कॉन्फ़िगर करके डिफ़ॉल्ट --साथ-मिप्स-पीएलटी। डिफ़ॉल्ट
is -मनो-पीएलटी अन्यथा।

-मक्सगोट
-मनो-एक्सगोट
वैश्विक ऑफ़सेट तालिका के आकार पर सामान्य प्रतिबंधों को उठाएं (उठाएं नहीं)।

जीसीसी आम तौर पर जीओटी से मूल्यों को लोड करने के लिए एक ही निर्देश का उपयोग करता है। जबकि यह है
अपेक्षाकृत कुशल, यह केवल तभी काम करता है जब GOT लगभग 64k से छोटा हो। कुछ भी
बड़ा कारण लिंकर को त्रुटि की रिपोर्ट करने का कारण बनता है जैसे:

स्थानांतरण को फिट करने के लिए छोटा किया गया: R_MIPS_GOT16 foobar

यदि ऐसा होता है, तो आपको अपना कोड फिर से कंपाइल करना चाहिए -मक्सगोट. यह बहुत के साथ काम करता है
बड़े जीओटी, हालांकि कोड भी कम कुशल है, क्योंकि इसमें तीन लगते हैं
वैश्विक प्रतीक का मूल्य लाने के निर्देश।

ध्यान दें कि कुछ लिंकर कई जीओटी बना सकते हैं। यदि आपके पास ऐसा लिंकर है, तो आप
केवल उपयोग करने की आवश्यकता होनी चाहिए -मक्सगोट जब एक एकल ऑब्जेक्ट फ़ाइल 64k से अधिक तक पहुँचती है
जीओटी प्रविष्टियों के लायक। बहुत कम करते हैं।

इन विकल्पों का कोई प्रभाव नहीं पड़ता है जब तक कि जीसीसी स्थिति स्वतंत्र कोड उत्पन्न नहीं कर रहा है।

-एमजीपी32
मान लें कि सामान्य प्रयोजन के रजिस्टर 32 बिट चौड़े हैं।

-एमजीपी64
मान लें कि सामान्य प्रयोजन के रजिस्टर 64 बिट चौड़े हैं।

-एमएफपी32
मान लें कि फ़्लोटिंग-पॉइंट रजिस्टर 32 बिट चौड़े हैं।

-एमएफपी64
मान लें कि फ़्लोटिंग-पॉइंट रजिस्टर 64 बिट चौड़े हैं।

-एमएफपीएक्सएक्स
फ्लोटिंग-पॉइंट रजिस्टरों की चौड़ाई न मानें।

-महार्ड-फ्लोट
फ्लोटिंग-पॉइंट कोप्रोसेसर निर्देशों का उपयोग करें।

-एमसॉफ्ट-फ्लोट
फ्लोटिंग-पॉइंट कोप्रोसेसर निर्देशों का उपयोग न करें। फ़्लोटिंग-पॉइंट लागू करें
इसके बजाय लाइब्रेरी कॉल का उपयोग करके गणना।

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

-एकल-फ्लोट
मान लें कि फ़्लोटिंग-पॉइंट कोप्रोसेसर केवल एकल-सटीक संचालन का समर्थन करता है।

-मडबल-फ्लोट
मान लें कि फ़्लोटिंग-पॉइंट कोप्रोसेसर डबल-सटीक संचालन का समर्थन करता है। इस
डिफ़ॉल्ट है।

-मोड-स्प्रिग
-मनो-ऑड-स्प्रिग
o32 . के लिए विषम-संख्या वाले एकल-सटीक फ़्लोटिंग-पॉइंट रजिस्टरों के उपयोग को सक्षम करें
एबीआई। यह उन प्रोसेसर के लिए डिफ़ॉल्ट है जो इन रजिस्टरों का समर्थन करने के लिए जाने जाते हैं।
o32 FPXX ABI का उपयोग करते समय, -मनो-ऑड-स्प्रिग डिफ़ॉल्ट रूप से सेट है।

-मैब्स = 2008
-मैब्स = विरासत
ये विकल्प स्पेशल नॉट-ए-नंबर (NaN) IEEE 754 . के उपचार को नियंत्रित करते हैं
फ्लोटिंग-पॉइंट डेटा "abs.एफएमटी" और "नकारात्मक।एफएमटी" मशीन निर्देश।

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

RSI -मैब्स = 2008 विकल्प IEEE 754-2008 उपचार का चयन करता है। इस मामले में इन
निर्देशों को गैर-अंकगणितीय माना जाता है और इसलिए सभी में सही ढंग से काम कर रहा है
मामले, विशेष रूप से जहां इनपुट ऑपरेंड एक NaN है। ये निर्देश
इसलिए हमेशा संबंधित कार्यों के लिए उपयोग किया जाता है।

-मन = 2008
-मनन=विरासत
ये विकल्प स्पेशल नॉट-ए-नंबर (NaN) IEEE 754 . के एन्कोडिंग को नियंत्रित करते हैं
फ्लोटिंग-पॉइंट डेटा।

RSI -मनन=विरासत विकल्प लीगेसी एन्कोडिंग का चयन करता है। इस मामले में शांत NaNs (qNaNs)
उनके अनुगामी महत्व के पहले बिट द्वारा निरूपित किया जाता है और क्षेत्र 0 होता है, जबकि
सिग्नलिंग NaNs (sNaNs) को उनके अनुगामी महत्व के पहले बिट द्वारा दर्शाया जाता है
क्षेत्र 1.

RSI -मन = 2008 विकल्प IEEE 754-2008 एन्कोडिंग का चयन करता है। इस मामले में qNaNs हैं
उनके अनुगामी महत्व के पहले बिट द्वारा निरूपित किया जाता है और क्षेत्र 1 होता है, जबकि sNaNs
उनके अनुगामी महत्व के पहले बिट और 0 होने के क्षेत्र द्वारा निरूपित किया जाता है।

डिफ़ॉल्ट है -मनन=विरासत जब तक जीसीसी को कॉन्फ़िगर नहीं किया गया है --साथ-नान=2008.

-एमएलएससी
-मनो-एलएलएससी
उपयोग करें (उपयोग न करें) ll, sc, तथा सिंक अंतर्निहित परमाणु स्मृति को लागू करने के निर्देश
कार्य। जब कोई भी विकल्प निर्दिष्ट नहीं किया जाता है, तो GCC निर्देशों का उपयोग करता है यदि लक्ष्य
वास्तुकला उनका समर्थन करती है।

-एमएलएससी उपयोगी है यदि रनटाइम वातावरण निर्देशों का अनुकरण कर सकता है और -मनो-एलएलएससी
गैर-मानक ISAs के लिए संकलन करते समय उपयोगी हो सकता है। आप इनमें से कोई भी विकल्प बना सकते हैं
के साथ जीसीसी को कॉन्फ़िगर करके डिफ़ॉल्ट --साथ-llsc और --बिना-llsc क्रमशः.
--साथ-llsc कुछ कॉन्फ़िगरेशन के लिए डिफ़ॉल्ट है; स्थापना दस्तावेज़ देखें
ब्योरा हेतु।

-एमडीएसपी
-मनो-डीएसपी
एमआईपीएस डीएसपी एएसई के संशोधन 1 का प्रयोग करें (उपयोग न करें)।
यह विकल्प प्रीप्रोसेसर मैक्रो "__mips_dsp" को परिभाषित करता है। यह भी परिभाषित करता है
"__mips_dsp_rev" से 1.

-एमडीएसपीआर2
-मनो-डीएसपीआर2
एमआईपीएस डीएसपी एएसई के संशोधन 2 का प्रयोग करें (उपयोग न करें)।
यह विकल्प प्रीप्रोसेसर मैक्रोज़ "__mips_dsp" और "__mips_dspr2" को परिभाषित करता है। यह
"__mips_dsp_rev" को 2 तक भी परिभाषित करता है।

-एमएसमार्टमिप्स
-मनो-स्मार्टमिप्स
एमआईपीएस स्मार्टएमआईपीएस एएसई का प्रयोग करें (उपयोग न करें)।

-युग्मित-एकल
-मनो-पेयर-सिंगल
युग्मित-एकल फ़्लोटिंग-पॉइंट निर्देशों का उपयोग करें (उपयोग न करें)।
इस विकल्प को सक्षम करने के लिए हार्डवेयर फ़्लोटिंग-पॉइंट समर्थन की आवश्यकता है।

-एमडीएमएक्स
-मनो-एमडीएमएक्स
MIPS डिजिटल मीडिया एक्सटेंशन निर्देशों का उपयोग करें (उपयोग न करें)। यह विकल्प केवल हो सकता है
64-बिट कोड जनरेट करते समय उपयोग किया जाता है और इसके लिए हार्डवेयर फ़्लोटिंग-पॉइंट समर्थन की आवश्यकता होती है
सक्षम होना चाहिए।

-मिप्स3डी
-मनो-मिप्स3डी
MIPS-3D ASE का उपयोग करें (उपयोग न करें)। विकल्प -मिप्स3डी का तात्पर्य -युग्मित-एकल.

-मिमाइक्रोमिप्स
-मनो-माइक्रोमिप्स
माइक्रोएमआईपीएस कोड उत्पन्न करें (उत्पन्न न करें)।

माइक्रोएमआईपीएस कोड पीढ़ी को प्रति-कार्य के आधार पर भी नियंत्रित किया जा सकता है
"माइक्रोमिप्स" और "नोमिक्रोमिप्स" विशेषताएँ।

-एमएमटी
-मनो-एमटी
एमटी मल्टीथ्रेडिंग निर्देशों का उपयोग करें (उपयोग न करें)।

-एमएमक्यू
-मनो-एमसीयू
एमआईपीएस एमसीयू एएसई निर्देशों का प्रयोग करें (उपयोग न करें)।

-मेवा
-मनो-इवा
MIPS एन्हांस्ड वर्चुअल एड्रेसिंग निर्देशों का उपयोग करें (उपयोग न करें)।

-मविर्ट
-मनो-पुण्य
MIPS वर्चुअलाइजेशन एप्लिकेशन विशिष्ट निर्देशों का उपयोग करें (उपयोग न करें)।

-एमएक्सपीए
-मनो-एक्सपीए
एमआईपीएस विस्तारित भौतिक पता (एक्सपीए) निर्देशों का प्रयोग करें (उपयोग न करें)।

-एमएलॉन्ग64
बल "लंबे" प्रकार 64 बिट चौड़े होने चाहिए। देखो -एमएलॉन्ग32 डिफ़ॉल्ट की व्याख्या के लिए
और जिस तरह से सूचक आकार निर्धारित किया जाता है।

-एमएलॉन्ग32
बल "लॉन्ग", "इंट", और पॉइंटर प्रकार 32 बिट चौड़े होने चाहिए।

"इंट", "लॉन्ग" और पॉइंटर्स का डिफ़ॉल्ट आकार एबीआई पर निर्भर करता है। आल थे
समर्थित ABI 32-बिट "int" का उपयोग करते हैं। n64 ABI 64-बिट "लॉन्ग" का उपयोग करता है, जैसा कि 64-बिट . करता है
ईएबीआई; अन्य 32-बिट "लॉन्ग" का उपयोग करते हैं। पॉइंटर्स "long" s, या the के समान आकार के होते हैं
पूर्णांक रजिस्टरों के समान आकार, जो भी छोटा हो।

-एमएसआईएम32
-मनो-सिम32
मान लें (मान न लें) कि सभी प्रतीकों में 32-बिट मान हैं, चयनित की परवाह किए बिना
एबीआई। यह विकल्प के संयोजन में उपयोगी है -मबी=64 और -मनो-एबिकल्स क्योंकि यह
जीसीसी को सांकेतिक पतों के लिए छोटे और तेज संदर्भ उत्पन्न करने की अनुमति देता है।

-G संख्या
बाहरी रूप से दिखाई देने वाले डेटा की परिभाषाओं को एक छोटे डेटा अनुभाग में रखें यदि वह डेटा नहीं है
से भी बड़ा संख्या बाइट्स। जीसीसी तब डेटा तक अधिक कुशल पहुंच उत्पन्न कर सकता है; देख
-एमजीपॉप्ट ब्योरा हेतु।

डिफ़ॉल्ट -G विकल्प विन्यास पर निर्भर करता है।

-मलोकल-एसडीटा
-मनो-लोकल-एसडीटा
बढ़ाएँ (विस्तार न करें) -G स्थानीय डेटा के लिए भी व्यवहार, जैसे कि स्थिर चर
सी। में। -मलोकल-एसडीटा सभी कॉन्फ़िगरेशन के लिए डिफ़ॉल्ट है।

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

-मेक्सटर्न-एसडीटा
-मनो-बाहरी-एसडीटा
मान लें (मान न लें) कि बाहरी रूप से परिभाषित डेटा एक छोटे डेटा अनुभाग में है यदि
उस डेटा का आकार के भीतर है -G सीमा। -मेक्सटर्न-एसडीटा सभी के लिए डिफ़ॉल्ट है
विन्यास।

यदि आप एक मॉड्यूल संकलित करते हैं रास्ता साथ में -मेक्सटर्न-एसडीटा -G संख्या -एमजीपॉप्ट, तथा रास्ता संदर्भ
परिवर्तनशील प्रत्येक यह से बड़ा नहीं है संख्या बाइट्स, आपको यह सुनिश्चित करना होगा कि प्रत्येक रखा गया है
एक छोटे से डेटा अनुभाग में। अगर प्रत्येक किसी अन्य मॉड्यूल द्वारा परिभाषित किया गया है, आपको या तो संकलित करना होगा
वह मॉड्यूल एक उच्च-पर्याप्त . के साथ -G "सेक्शन" विशेषता को सेट करना या संलग्न करना प्रत्येक's
परिभाषा। अगर प्रत्येक सामान्य है, आपको एप्लिकेशन को उच्च-पर्याप्त के साथ लिंक करना होगा -G
सेटिंग.

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

-एमजीपॉप्ट
-मनो-गपोप्ट
छोटे डेटा में ज्ञात प्रतीकों के लिए जीपी-रिश्तेदार पहुंच का उपयोग करें (उपयोग न करें)
अनुभाग; देख -G, -मलोकल-एसडीटा और -मेक्सटर्न-एसडीटा. -एमजीपॉप्ट सभी के लिए डिफ़ॉल्ट है
विन्यास।

-मनो-गपोप्ट उन मामलों के लिए उपयोगी है जहां $gp रजिस्टर का मूल्य नहीं हो सकता है
"_जीपी"। उदाहरण के लिए, यदि कोड एक पुस्तकालय का हिस्सा है जिसका उपयोग बूट में किया जा सकता है
मॉनिटर, प्रोग्राम जो बूट मॉनिटर रूटीन को कॉल करते हैं, $gp में एक अज्ञात मान पास करते हैं। (में
ऐसी स्थितियों में, बूट मॉनिटर स्वयं आमतौर पर संकलित किया जाता है -G0.)

-मनो-गपोप्ट का तात्पर्य -मनो-लोकल-एसडीटा और -मनो-बाहरी-एसडीटा.

-मेम्बेडेड-डेटा
-एमनो-एम्बेडेड-डेटा
यदि संभव हो तो पहले केवल-पढ़ने के लिए डेटा अनुभाग में चर आवंटित करें, फिर अगले में
यदि संभव हो तो छोटा डेटा अनुभाग, अन्यथा डेटा में। यह थोड़ा धीमा कोड देता है
डिफ़ॉल्ट की तुलना में, लेकिन निष्पादित करते समय आवश्यक RAM की मात्रा को कम करता है, और इस प्रकार हो सकता है
कुछ एम्बेडेड सिस्टम के लिए पसंद किया जा सकता है।

-मुनीनिट-कॉन्स्ट-इन-रोडाटा
-मनो-यूनिट-कॉन्स्ट-इन-रोडाटा
केवल-पढ़ने के लिए डेटा अनुभाग में अप्रारंभीकृत "स्थिरांक" चर डालें। यह विकल्प है
के साथ संयोजन के रूप में ही सार्थक -मेम्बेडेड-डेटा.

-एमकोड-पठनीय =की स्थापना
निर्दिष्ट करें कि क्या जीसीसी कोड उत्पन्न कर सकता है जो निष्पादन योग्य अनुभागों से पढ़ता है। वहां
तीन संभावित सेटिंग्स:

-एमकोड-पठनीय = हाँ
निर्देश निष्पादन योग्य अनुभागों तक स्वतंत्र रूप से पहुंच सकते हैं। यह डिफ़ॉल्ट सेटिंग है।

-mcode-पठनीय = pcrel
MIPS16 पीसी-सापेक्ष लोड निर्देश निष्पादन योग्य अनुभागों तक पहुंच सकते हैं, लेकिन अन्य
निर्देश ऐसा नहीं करना चाहिए। यह विकल्प 4केएससी और 4केएसडी प्रोसेसर पर उपयोगी है
जब कोड टीएलबी में रीड इनहिबिट बिट सेट होता है। यह प्रोसेसर पर भी उपयोगी है
जिसे दोहरे निर्देश/डेटा SRAM इंटरफ़ेस के लिए कॉन्फ़िगर किया जा सकता है और वह,
M4K की तरह, स्वचालित रूप से पीसी-सापेक्ष भार को निर्देश RAM पर पुनर्निर्देशित करता है।

-एमकोड-पठनीय = नहीं
निर्देशों को निष्पादन योग्य अनुभागों तक नहीं पहुंचना चाहिए। यह विकल्प उपयोगी हो सकता है
ऐसे लक्ष्य जिन्हें दोहरे निर्देश/डेटा SRAM इंटरफ़ेस के लिए कॉन्फ़िगर किया गया है लेकिन
कि (M4K के विपरीत) पीसी-सापेक्ष भार को स्वचालित रूप से पुनर्निर्देशित नहीं करता है
निर्देश रैम।

-एमएसप्लिट-पते
-मनो-विभाजन-पते
"% hi ()" और "% lo ()" असेंबलर स्थानांतरण ऑपरेटरों के उपयोग को सक्षम (अक्षम) करें। इस
विकल्प द्वारा प्रतिस्थापित किया गया है -मेक्सप्लिसिट-रिलोक्स लेकिन पीछे की ओर रखा जाता है
संगतता।

-मेक्सप्लिसिट-रिलोक्स
-मनो-स्पष्ट-रिलोक्स
प्रतीकात्मक पते के साथ काम करते समय असेंबलर स्थानांतरण ऑपरेटरों का उपयोग करें (उपयोग न करें)।
विकल्प, द्वारा चुना गया -मनो-स्पष्ट-रिलोक्स, इसके बजाय असेंबलर मैक्रोज़ का उपयोग करना है।

-मेक्सप्लिसिट-रिलोक्स डिफ़ॉल्ट है यदि जीसीसी को एक असेंबलर का उपयोग करने के लिए कॉन्फ़िगर किया गया था कि
स्थानांतरण ऑपरेटरों का समर्थन करता है।

-एमचेक-शून्य-विभाजन
-मनो-चेक-जीरो-डिवीजन
पूर्णांक विभाजन पर शून्य से ट्रैप (ट्रैप न करें)।

डिफ़ॉल्ट है -एमचेक-शून्य-विभाजन.

-विभाजित-जाल
-विभाजित-विराम
MIPS सिस्टम या तो एक सशर्त ट्रैप या a . उत्पन्न करके विभाजन के लिए शून्य से जाँच करता है
निर्देश तोड़ो। ट्रैप का उपयोग करने से छोटे कोड बनते हैं, लेकिन यह केवल MIPS पर समर्थित है
द्वितीय और बाद में। साथ ही, Linux कर्नेल के कुछ संस्करणों में एक बग है जो ट्रैप को रोकता है
उचित संकेत उत्पन्न करने से ("SIGFPE")। उपयोग -विभाजित-जाल सशर्त अनुमति देने के लिए
आर्किटेक्चर पर जाल जो उनका समर्थन करते हैं और -विभाजित-विराम के उपयोग के लिए मजबूर करने के लिए
टूट जाता है।

डिफ़ॉल्ट आमतौर पर है -विभाजित-जाल, लेकिन इसे कॉन्फ़िगर समय पर ओवरराइड किया जा सकता है
का उपयोग --साथ-विभाजन=टूटना. डिवाइड-बाय-जीरो चेक का उपयोग करके पूरी तरह से अक्षम किया जा सकता है
-मनो-चेक-जीरो-डिवीजन.

-mmemcpy
-मनो-मेम्सीपी
गैर-तुच्छ ब्लॉक चालों के लिए "memcpy" के उपयोग को बल दें (बल न दें)। डिफ़ॉल्ट है
-मनो-मेम्सीपी, जो GCC को अधिकांश स्थिर आकार की प्रतियों को इनलाइन करने की अनुमति देता है।

-मलॉन्ग-कॉल
-मनो-लॉन्ग-कॉल
अक्षम करें (अक्षम न करें) "jal" निर्देश का उपयोग करें। "Jal" का उपयोग करके कॉलिंग फ़ंक्शन
अधिक कुशल है लेकिन कॉल करने वाले और कैली को समान 256 मेगाबाइट में होना आवश्यक है
खंड।

इस विकल्प का abicalls कोड पर कोई प्रभाव नहीं पड़ता है। डिफ़ॉल्ट है -मनो-लॉन्ग-कॉल.

-एमएमएडी
-मनो-मद
"पागल", "मदु" और "मूल" निर्देशों के उपयोग को सक्षम (अक्षम) करें, जैसा कि द्वारा प्रदान किया गया है
R4650 आईएसए।

-मिमाद्दो
-मनो-इमाद्दो
"मैड" और "एमएसबी" पूर्णांक निर्देशों के उपयोग को सक्षम (अक्षम) करें। डिफ़ॉल्ट है
-मिमाद्दो 74k . को छोड़कर "मैड" और "एमएसबी" का समर्थन करने वाले आर्किटेक्चर पर
आर्किटेक्चर जहां यह धीमा कोड उत्पन्न करने के लिए पाया गया था।

-मफ्यूज्ड-मैड
-मनो-फ्यूज्ड-मैड
फ़्लोटिंग-पॉइंट गुणा-संचय निर्देशों के उपयोग को सक्षम (अक्षम) करें, जब वे
उपलब्ध हैं। डिफ़ॉल्ट है -मफ्यूज्ड-मैड.

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

-एनओसीपीपी
MIPS असेंबलर को अपने प्रीप्रोसेसर को उपयोगकर्ता असेंबलर फ़ाइलों पर नहीं चलाने के लिए कहें (a . के साथ)
.s प्रत्यय) उन्हें इकट्ठा करते समय।

-एमफिक्स-24k
-मनो-फिक्स-24k
इरेटा 24K E48 (रिफिल के दौरान स्टोर पर डेटा खो गया) के आसपास काम करें। उपाय
जीसीसी के बजाय असेंबलर द्वारा कार्यान्वित किया जाता है।

-एमफिक्स-आर4000
-मनो-फिक्स-आर 4000
कुछ R4000 CPU इरेटा के आसपास कार्य करें:

- डबल-वर्ड या वेरिएबल शिफ्ट निष्पादित होने पर गलत परिणाम दे सकता है
एक पूर्णांक विभाजन शुरू करने के तुरंत बाद।

- एक डबल-वर्ड या एक परिवर्तनीय बदलाव गलत परिणाम दे सकता है यदि निष्पादित किया जाता है
एक पूर्णांक गुणन प्रगति पर है।

- एक पूर्णांक विभाजन गलत परिणाम दे सकता है यदि a . के विलंब स्लॉट में प्रारंभ किया गया हो
ली गई शाखा या छलांग।

-एमफिक्स-आर4400
-मनो-फिक्स-आर 4400
कुछ R4400 CPU इरेटा के आसपास कार्य करें:

- डबल-वर्ड या वेरिएबल शिफ्ट निष्पादित होने पर गलत परिणाम दे सकता है
एक पूर्णांक विभाजन शुरू करने के तुरंत बाद।

-एमफिक्स-आर10000
-मनो-फिक्स-आर 10000
कुछ निश्चित R10000 इरेटा के आसपास कार्य करें:

- "ll"/"sc" क्रम 3.0 से पहले के संशोधनों पर परमाणु रूप से व्यवहार नहीं कर सकते हैं। वे कर सकते हैं
2.6 और इससे पहले के संशोधनों पर गतिरोध।

इस विकल्प का उपयोग केवल तभी किया जा सकता है जब लक्ष्य आर्किटेक्चर शाखा-संभावना का समर्थन करता है
निर्देश. -एमफिक्स-आर10000 डिफ़ॉल्ट है जब -मार्च = r10000 प्रयोग किया जाता है; -मनो-फिक्स-आर 10000
अन्यथा डिफ़ॉल्ट है।

-एमफिक्स-आरएम7000
-मनो-फिक्स-आरएम7000
RM7000 "dmult"/"dmultu" इरेटा के आसपास कार्य करें। वर्कअराउंड द्वारा कार्यान्वित किया जाता है
जीसीसी के बजाय असेंबलर।

-एमफिक्स-वीआर4120
-मनो-फिक्स-vr4120
कुछ निश्चित VR4120 इरेटा के आसपास कार्य करें:

- "dmultu" हमेशा सही परिणाम नहीं देता है।

- "div" और "ddiv" हमेशा सही परिणाम नहीं देते हैं यदि ऑपरेंड में से कोई एक है
नकारात्मक है।

डिवीज़न इरेटा के लिए वर्कअराउंड विशेष फ़ंक्शन पर निर्भर करता है libgcc.a. पर
वर्तमान में, ये फ़ंक्शन केवल "mips64vr*-elf" कॉन्फ़िगरेशन द्वारा प्रदान किए जाते हैं।

अन्य VR4120 इरेटा के लिए कुछ युग्मों के बीच NOP डालने की आवश्यकता होती है
निर्देश। इन इरेटा को असेंबलर द्वारा नियंत्रित किया जाता है, स्वयं जीसीसी द्वारा नहीं।

-एमफिक्स-वीआर4130
VR4130 "mflo"/"mfhi" इरेटा के आसपास कार्य करें। वर्कअराउंड द्वारा कार्यान्वित किया जाता है
जीसीसी के बजाय असेंबलर, हालांकि जीसीसी "एमएफएलओ" और "एमएफआई" का उपयोग करने से बचता है यदि
इसके बजाय VR4130 "macc", "macchi", "dmacc" और "dmacchi" निर्देश उपलब्ध हैं।

-एमफिक्स-एसबी1
-मनो-फिक्स-एसबी 1
कुछ SB-1 CPU कोर इरेटा के आसपास कार्य करें। (यह ध्वज वर्तमान में SB-1 . के आसपास काम करता है)
संशोधन 2 "F1" और "F2" फ्लोटिंग-पॉइंट इरेटा।)

-mr10k-कैश-बाधा =की स्थापना
निर्दिष्ट करें कि क्या जीसीसी को के दुष्प्रभावों से बचने के लिए कैश बैरियर सम्मिलित करना चाहिए
R10K प्रोसेसर पर अटकलें।

कई प्रोसेसर के साथ आम तौर पर, R10K एक सशर्त के परिणाम की भविष्यवाणी करने की कोशिश करता है
शाखा और सट्टा "लिया" शाखा से निर्देशों को निष्पादित करता है। यह बाद में
पूर्वानुमानित परिणाम गलत होने पर इन निर्देशों को निरस्त कर देता है। हालाँकि, R10K पर,
यहां तक ​​कि निरस्त निर्देशों के भी दुष्प्रभाव हो सकते हैं।

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

प्रत्येक मेमोरी एक्सेस से पहले कैश बैरियर निर्देश सम्मिलित करना एक समाधान है
सट्टा लगाया जा सकता है और गर्भपात होने पर भी इसके दुष्प्रभाव हो सकते हैं।
-mr10k-कैश-बाधा =की स्थापना इस समाधान के जीसीसी के कार्यान्वयन को नियंत्रित करता है। यह
मानता है कि निम्नलिखित क्षेत्रों में किसी भी बाइट के लिए निरस्त पहुंच का कोई पक्ष नहीं है
प्रभाव:

1. वर्तमान फ़ंक्शन के स्टैक फ्रेम द्वारा कब्जा की गई मेमोरी;

2. आने वाली स्टैक तर्क द्वारा कब्जा की गई स्मृति;

3. लिंक-टाइम-स्थिर पते के साथ किसी ऑब्जेक्ट द्वारा कब्जा की गई मेमोरी।

यह सुनिश्चित करने के लिए कर्नेल की जिम्मेदारी है कि इन क्षेत्रों में सट्टा पहुंचें
वास्तव में सुरक्षित हैं।

यदि इनपुट प्रोग्राम में फ़ंक्शन घोषणा शामिल है जैसे कि:

शून्य फू (शून्य);

तो "फू" के कार्यान्वयन को "जे फू" और "जल फू" को निष्पादित करने की अनुमति देनी चाहिए
अनुमान के अनुसार। जीसीसी इस प्रतिबंध का उन कार्यों के लिए सम्मान करता है जो वह स्वयं संकलित करता है। यह
गैर-जीसीसी कार्यों (जैसे हस्तलिखित असेंबली कोड) से ऐसा करने की अपेक्षा करता है।

विकल्प के तीन रूप हैं:

-mr10k-कैश-बैरियर = लोड-स्टोर
एक लोड या स्टोर से पहले कैश बैरियर डालें जिसे सट्टा निष्पादित किया जा सकता है
और गर्भपात होने पर भी इसके दुष्प्रभाव हो सकते हैं।

-mr10k-कैश-बैरियर = स्टोर
एक स्टोर से पहले कैश बैरियर डालें जिसे सट्टा निष्पादित किया जा सकता है और
जिसका गर्भपात होने पर भी दुष्प्रभाव हो सकते हैं।

-mr10k-कैश-बाधा = कोई नहीं
कैश बाधाओं को सम्मिलित करना अक्षम करें। यह डिफ़ॉल्ट सेटिंग है।

-एमफ्लश-फंक =समारोह
-मनो-फ्लश-फंक
I और D कैश को फ्लश करने के लिए कॉल करने के लिए फ़ंक्शन निर्दिष्ट करता है, या ऐसा कोई कॉल नहीं करता है
समारोह। यदि कहा जाता है, तो फ़ंक्शन को समान तर्कों को सामान्य के रूप में लेना चाहिए
"_flush_func", यानी मेमोरी रेंज का पता जिसके लिए कैश किया जा रहा है
फ्लश, मेमोरी रेंज का आकार, और संख्या 3 (दोनों कैश को फ्लश करने के लिए)। NS
डिफ़ॉल्ट उस लक्ष्य पर निर्भर करता है जिसके लिए GCC कॉन्फ़िगर किया गया था, लेकिन आमतौर पर या तो है
"_flush_func" या "__cpu_flush"।

शाखा-लागत =संख्या
शाखाओं की लागत मोटे तौर पर सेट करें संख्या "सरल" निर्देश। यह लागत केवल एक है
अनुमानी और रिलीज में लगातार परिणाम देने की गारंटी नहीं है। एक शून्य
लागत अनावश्यक रूप से डिफ़ॉल्ट का चयन करती है, जो कि पर आधारित है -मट्यून सेटिंग.

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

-एमएफपी-अपवाद
-मनो-एफपी-अपवाद
निर्दिष्ट करता है कि एफपी अपवाद सक्षम हैं या नहीं। यह प्रभावित करता है कि एफपी निर्देश कैसे हैं
कुछ प्रोसेसर के लिए अनुसूचित। डिफ़ॉल्ट यह है कि FP अपवाद सक्षम हैं।

उदाहरण के लिए, SB-1 पर, यदि FP अपवाद अक्षम हैं, और हम 64-बिट उत्सर्जित कर रहे हैं
कोड, तो हम दोनों एफपी पाइप का उपयोग कर सकते हैं। अन्यथा, हम केवल एक FP पाइप का उपयोग कर सकते हैं।

-mvr4130-संरेखण
-mno-vr4130-संरेखण
VR4130 पाइपलाइन दो-तरफा सुपरस्केलर है, लेकिन केवल दो निर्देश जारी कर सकती है
एक साथ अगर पहला 8-बाइट संरेखित है। जब यह विकल्प सक्षम होता है, GCC संरेखित होता है
निर्देशों के जोड़े जो उसे लगता है कि समानांतर में निष्पादित होने चाहिए।

यह विकल्प केवल VR4130 के लिए ऑप्टिमाइज़ करते समय ही प्रभावी होता है। यह सामान्य रूप से कोड बनाता है
तेजी से, लेकिन इसे बड़ा बनाने की कीमत पर। यह डिफ़ॉल्ट रूप से सक्षम है
अनुकूलन स्तर -ओ३.

-मसिंसी
-मनो-सिंसी
इसका समर्थन करने वाले आर्किटेक्चर पर "सिंसी" निर्देशों की पीढ़ी को सक्षम (अक्षम) करें।
"सिंसी" निर्देश (यदि सक्षम हो) तब उत्पन्न होते हैं जब "__builtin___clear_cache" होता है
संकलित।

यह विकल्प डिफॉल्ट करता है -मनो-सिंसी, लेकिन डिफ़ॉल्ट को कॉन्फ़िगर करके ओवरराइड किया जा सकता है
जीसीसी के साथ --साथ-सिंसी.

सिंगल प्रोसेसर सिस्टम के लिए कोड संकलित करते समय, आमतौर पर "सिंसी" का उपयोग करना सुरक्षित होता है।
हालांकि, कई मल्टी-कोर (एसएमपी) सिस्टम पर, यह निर्देश को अमान्य नहीं करता है
सभी कोर पर कैश और अपरिभाषित व्यवहार हो सकता है।

-मेरेलैक्स-तस्वीर-कॉल
-मनो-आराम-तस्वीर-कॉल
PIC कॉल्स को चालू करने का प्रयास करें जो आम तौर पर रजिस्टर $25 के माध्यम से डायरेक्ट कॉल में भेजी जाती हैं।
यह तभी संभव है जब लिंकर लिंक-टाइम पर गंतव्य का समाधान कर सके और यदि
गंतव्य एक सीधी कॉल के लिए सीमा के भीतर है।

-मेरेलैक्स-तस्वीर-कॉल डिफ़ॉल्ट है यदि GCC को एक असेंबलर का उपयोग करने के लिए कॉन्फ़िगर किया गया था और a
लिंकर जो ".reloc" असेंबली निर्देश का समर्थन करता है और -मेक्सप्लिसिट-रिलोक्स में है
प्रभाव। साथ में -मनो-स्पष्ट-रिलोक्स, यह अनुकूलन द्वारा किया जा सकता है
कंपाइलर की मदद के बिना अकेले असेंबलर और लिंकर।

-mmकाउंट-आरए-पता
-मनो-एमकाउंट-आरए-पता
एमिट (उत्सर्जित न करें) कोड जो "_mcount" को कॉलिंग फ़ंक्शन के रिटर्न को संशोधित करने की अनुमति देता है
पता। सक्षम होने पर, यह विकल्प सामान्य "_mcount" इंटरफ़ेस को एक नए . के साथ विस्तारित करता है
रा-पता पैरामीटर, जिसमें "intptr_t *" टाइप है और रजिस्टर $12 में पास किया गया है।
"_mcount" फिर निम्नलिखित में से दोनों को करके वापसी पते को संशोधित कर सकता है:

* नया पता $31 रजिस्टर में वापस करना।

* नए पते को "* में संग्रहीत करनारा-पता", अगर रा-पता शून्य है।

डिफ़ॉल्ट है -मनो-एमकाउंट-आरए-पता.

एमएमआईक्स ऑप्शंस

इन विकल्पों को MMIX के लिए परिभाषित किया गया है:

-एमएलबीफनक्स
-mno-libfuncs
निर्दिष्ट करें कि आंतरिक पुस्तकालय कार्यों को संकलित किया जा रहा है, सभी मूल्यों को पारित कर रहा है
रजिस्टर, कोई फर्क नहीं पड़ता आकार।

-मेप्सिलॉन
-मनो-एप्सिलॉन
फ़्लोटिंग-पॉइंट तुलना निर्देश उत्पन्न करें जो "आरई" के संबंध में तुलना करते हैं
एप्सिलॉन रजिस्टर।

-मबी = मिमीिक्सवेयर
-मबी = ग्नू
कोड उत्पन्न करें जो फ़ंक्शन पैरामीटर पास करता है और मान लौटाता है (कॉल किए गए में)
फ़ंक्शन) को जीएनयू एबीआई के विरोध में $0 और ऊपर के रजिस्टर के रूप में देखा जाता है, जो ग्लोबल . का उपयोग करता है
$ 231 और ऊपर पंजीकृत करता है।

-mzero-विस्तार
-मनो-शून्य-विस्तार
64 बिट से छोटे आकार में मेमोरी से डेटा पढ़ते समय, शून्य का उपयोग करें (उपयोग न करें)-
साइन-विस्तार वाले के बजाय डिफ़ॉल्ट रूप से लोड निर्देशों का विस्तार करना।

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

-mtoplevel-प्रतीकों
-मनो-टॉपलेवल-प्रतीक
प्रीपेन्ड (प्रीपेन्ड न करें) a : सभी वैश्विक प्रतीकों के लिए, इसलिए असेंबली कोड का उपयोग किया जा सकता है
"PREFIX" असेंबली निर्देश के साथ।

-मेल्फ़
डिफ़ॉल्ट के बजाय ईएलएफ प्रारूप में एक निष्पादन योग्य बनाएं mmo द्वारा प्रयुक्त प्रारूप
la MMIX सिम्युलेटर।

-शाखा-भविष्यवाणी
-मनो-शाखा-भविष्यवाणी
संभावित-शाखा निर्देशों का उपयोग करें (उपयोग न करें), जब स्थिर शाखा भविष्यवाणी
एक संभावित शाखा को इंगित करता है।

-एमबेस-पते
-मनो-आधार-पते
कोड उत्पन्न करें (उत्पन्न न करें) जो उपयोग करता है आधार पतों. आधार पते का उपयोग करना
a . के लिए स्वचालित रूप से एक अनुरोध (असेंबलर और लिंकर द्वारा नियंत्रित) उत्पन्न करता है
एक वैश्विक रजिस्टर में स्थापित करने के लिए स्थिर। रजिस्टर का उपयोग एक या अधिक आधार के लिए किया जाता है
रजिस्टर में रखे गए मान से 0 से 255 की सीमा के भीतर पता अनुरोध। NS
आम तौर पर छोटे और तेज़ कोड की ओर जाता है, लेकिन विभिन्न डेटा आइटम की संख्या जो
सीमित किया जा सकता है। इसका मतलब है कि एक प्रोग्राम जो बहुत सारे स्थिर डेटा का उपयोग करता है
आवश्यकता हो सकती है -मनो-आधार-पते.

-एकल-निकास
-मनो-एकल-निकास
प्रत्येक फ़ंक्शन में एक एकल निकास बिंदु रखने के लिए उत्पन्न कोड को बल दें (बल न दें)।

MN10300 ऑप्शंस

इन -m Matsushita MN10300 आर्किटेक्चर के लिए विकल्पों को परिभाषित किया गया है:

-मिमल-बग
MN10300 प्रोसेसर के लिए गुणा निर्देशों में बग से बचने के लिए कोड जनरेट करें।
यह डिफ़ॉल्ट है।

-मनो-मल्टी-बग
MN10300 . के गुणा निर्देशों में बग से बचने के लिए कोड जनरेट न करें
प्रोसेसर।

-Mam33
AM33 प्रोसेसर के लिए विशिष्ट सुविधाओं का उपयोग करके कोड जनरेट करें।

-मनो-एम33
AM33 प्रोसेसर के लिए विशिष्ट सुविधाओं का उपयोग करके कोड उत्पन्न न करें। यह है
चूक।

-Mam33-2
AM33/2.0 प्रोसेसर के लिए विशिष्ट सुविधाओं का उपयोग करके कोड जनरेट करें।

-Mam34
AM34 प्रोसेसर के लिए विशिष्ट सुविधाओं का उपयोग करके कोड जनरेट करें।

-मट्यून =सीपीयू प्रकार
निर्देशों को शेड्यूल करते समय संकेतित CPU प्रकार की समय विशेषताओं का उपयोग करें।
यह लक्षित प्रोसेसर प्रकार को नहीं बदलता है। CPU प्रकार इनमें से एक होना चाहिए
mn10300, am33, एएम33-2 or am34.

-mreturn-सूचक-पर-d0
पॉइंटर लौटाने वाले फ़ंक्शन को जेनरेट करते समय, पॉइंटर को "a0" और . दोनों में लौटाएं
"डी0"। अन्यथा, सूचक केवल "a0" में लौटाया जाता है, और इस तरह कॉल करने का प्रयास करता है
एक प्रोटोटाइप के बिना कार्य त्रुटियों में परिणाम। ध्यान दें कि यह विकल्प इसके द्वारा चालू है
चूक जाना; उपयोग -मनो-रिटर्न-पॉइंटर-ऑन-डी0 इसे निष्क्रिय करने के लिए।

-मनो-सीआरटी0
C रन-टाइम इनिशियलाइज़ेशन ऑब्जेक्ट फ़ाइल में लिंक न करें।

-मेरेलैक्स
लिंकर को इंगित करें कि उसे एक छूट अनुकूलन पास करना चाहिए
शाखाओं, कॉलों और पूर्ण स्मृति पते को छोटा करें। इस विकल्प का ही प्रभाव है
जब अंतिम लिंक चरण के लिए कमांड लाइन पर उपयोग किया जाता है।

यह विकल्प प्रतीकात्मक डिबगिंग को असंभव बनाता है।

-मिलीव
संकलक को उत्पन्न करने दें लंबा अनुदेश शब्द निर्देश यदि लक्ष्य है
AM33 या बाद में। यह डिफ़ॉल्ट है। यह विकल्प प्रीप्रोसेसर मैक्रो को परिभाषित करता है
"__LIW__"।

-मोनोलीव
संकलक को उत्पन्न करने की अनुमति न दें लंबा अनुदेश शब्द निर्देश। इस विकल्प
प्रीप्रोसेसर मैक्रो "__NO_LIW__" को परिभाषित करता है।

-मसेटएलबी
संकलक को उत्पन्न करने की अनुमति दें सेटलब और एल सी सी निर्देश यदि लक्ष्य है
AM33 या बाद में। यह डिफ़ॉल्ट है। यह विकल्प प्रीप्रोसेसर मैक्रो को परिभाषित करता है
"__SETLB__"।

-मनोसेटएलबी
संकलक को उत्पन्न करने की अनुमति न दें सेटलब or एल सी सी निर्देश। यह विकल्प परिभाषित करता है
प्रीप्रोसेसर मैक्रो "__NO_SETLB__"।

Moxie ऑप्शंस

-मेब
बिग-एंडियन कोड जेनरेट करें। यह इसके लिए डिफ़ॉल्ट है मोक्सी-*-* विन्यास।

-मेले
लिटिल-एंडियन कोड जेनरेट करें।

-एममूल.x
mul.x और umul.x निर्देश जनरेट करें। यह इसके लिए डिफ़ॉल्ट है मोक्सीबॉक्स-*-*
विन्यास।

-मनो-सीआरटी0
C रन-टाइम इनिशियलाइज़ेशन ऑब्जेक्ट फ़ाइल में लिंक न करें।

MSP430 ऑप्शंस

इन विकल्पों को MSP430 के लिए परिभाषित किया गया है:

-masm-हेक्स
असेंबली आउटपुट को हमेशा हेक्स स्थिरांक का उपयोग करने के लिए बाध्य करें। आम तौर पर ऐसे स्थिरांक पर हस्ताक्षर किए जाते हैं
दशमलव, लेकिन यह विकल्प टेस्टसूट और/या सौंदर्य प्रयोजनों के लिए उपलब्ध है।

-एमएमसीयू =
लक्षित करने के लिए MCU का चयन करें। इसका उपयोग C के आधार पर प्रीप्रोसेसर प्रतीक बनाने के लिए किया जाता है
MCU नाम, अपर केस में कनवर्ट किया गया और प्री- और पोस्ट-फिक्स्ड के साथ __. यह बदले में
द्वारा प्रयोग किया जाता है एमएसपी430.एच एमसीयू-विशिष्ट पूरक शीर्षलेख का चयन करने के लिए शीर्षलेख फ़ाइल
फ़ाइल.

विकल्प ISA को उपयोग करने के लिए भी सेट करता है। यदि MCU नाम वह है जो केवल ज्ञात है
430 ISA का समर्थन करता है तो वह चुना जाता है, अन्यथा 430X ISA चुना जाता है। ए
का सामान्य एमसीयू नाम एमएसपी430 430 ISA का चयन करने के लिए भी इस्तेमाल किया जा सकता है। इसी तरह
सामान्य एमएसपी430x MCU नाम 430X ISA का चयन करता है।

इसके अलावा एक MCU- विशिष्ट लिंकर स्क्रिप्ट को लिंकर कमांड लाइन में जोड़ा जाता है। NS
स्क्रिप्ट का नाम एमसीयू का नाम है .एलडी संलग्न। इस प्रकार निर्दिष्ट करना -एमएमसीयू=xxx on
la जीसीसी कमांड लाइन सी प्रीप्रोसेसर प्रतीक "__XXX__" को परिभाषित करती है और लिंकर का कारण बनती है
एक स्क्रिप्ट की खोज करने के लिए कहा जाता है xxx.एलडी.

यह विकल्प असेंबलर को भी दिया जाता है।

-एमसीपीयू =
उपयोग करने के लिए ISA निर्दिष्ट करता है। स्वीकृत मान हैं एमएसपी430, एमएसपी430x और एमएसपी430xv2। इस
विकल्प बहिष्कृत है। NS -एमएमसीयू = आईएसए का चयन करने के लिए विकल्प का उपयोग किया जाना चाहिए।

-मसिम
सिम्युलेटर रनटाइम लाइब्रेरी और लिंकर स्क्रिप्ट से लिंक करें। किसी भी स्क्रिप्ट को ओवरराइड करता है जो
द्वारा चुना जाएगा -एमएमसीयू = विकल्प.

-मलर्ज
बड़े-मॉडल एड्रेसिंग (20-बिट पॉइंटर्स, 32-बिट "size_t") का उपयोग करें।

-मस्मॉल
छोटे-मॉडल एड्रेसिंग (16-बिट पॉइंटर्स, 16-बिट "size_t") का उपयोग करें।

-मेरेलैक्स
यह विकल्प असेंबलर और लिंकर को दिया जाता है, और लिंकर को प्रदर्शन करने की अनुमति देता है
कुछ अनुकूलन जो अंतिम लिंक तक नहीं किए जा सकते।

महमल्ट =
लक्ष्य द्वारा समर्थित हार्डवेयर के प्रकार का वर्णन करता है। स्वीकृत मान हैं
कोई नहीं बिना हार्डवेयर गुणा के, 16bit मूल 16-बिट-केवल गुणा समर्थित के लिए
प्रारंभिक एमसीयू द्वारा। 32bit बाद के एमसीयू द्वारा समर्थित 16/32-बिट गुणा के लिए और f5श्रृंखला
F16-श्रृंखला MCU द्वारा समर्थित 32/5-बिट गुणा के लिए। का एक मूल्य स्वत: यह भी हो सकता है
दिया हुआ। यह GCC को MCU नाम के आधार पर हार्डवेयर गुणन समर्थन निकालने के लिए कहता है
द्वारा प्रदान किया गया -एमएमक्यू विकल्प। अगर नहीं -एमएमक्यू विकल्प निर्दिष्ट है तो 32bit हार्डवेयर
बहु समर्थन माना जाता है। स्वत: डिफ़ॉल्ट सेटिंग है।

हार्डवेयर गुणन सामान्य रूप से लाइब्रेरी रूटीन को कॉल करके किया जाता है। यह बचाता है
उत्पन्न कोड में स्थान। पर संकलन करते समय -ओ३ या उच्चतर हालांकि हार्डवेयर
गुणक को इनलाइन कहा जाता है। यह बड़ा, लेकिन तेज़ कोड बनाता है।

हार्डवेयर मल्टीप्ली रूटीन चलने के दौरान इंटरप्ट को अक्षम करता है और इसे पुनर्स्थापित करता है
पिछली रुकावट स्थिति जब वे समाप्त करते हैं। यह उन्हें अंदर उपयोग करने के लिए सुरक्षित बनाता है
इंटरप्ट हैंडलर के साथ-साथ सामान्य कोड में भी।

-मिनर्ट
न्यूनतम रनटाइम वातावरण का उपयोग सक्षम करें - कोई स्थिर प्रारंभकर्ता नहीं या
रचनाकार। यह स्मृति-विवश उपकरणों के लिए अभिप्रेत है। कंपाइलर में शामिल हैं
कुछ वस्तुओं में विशेष प्रतीक जो लिंकर और रनटाइम को बताते हैं कि कौन से कोड टुकड़े हैं
आवश्यक हैं.

NDS32 ऑप्शंस

इन विकल्पों को NDS32 कार्यान्वयन के लिए परिभाषित किया गया है:

-मबिग-एंडियन
बिग-एंडियन मोड में कोड जनरेट करें।

-थोड़ा-एंडियन
लिटिल-एंडियन मोड में कोड जनरेट करें।

-mreduced-regs
रजिस्टर आवंटन के लिए कम सेट रजिस्टरों का प्रयोग करें।

-एमफुल-रेग
रजिस्टर आवंटन के लिए पूर्ण सेट रजिस्टरों का प्रयोग करें।

-एमसीमोव
सशर्त चाल निर्देश उत्पन्न करें।

-मनो-सेमोव
सशर्त चाल निर्देश उत्पन्न न करें।

-mperf-ext
प्रदर्शन एक्सटेंशन निर्देश जेनरेट करें.

-मनो-परफ-एक्सटी
प्रदर्शन विस्तार निर्देश उत्पन्न न करें।

-एमवी3पुश
v3 push25/pop25 निर्देश जेनरेट करें।

-मनो-वी3पुश
v3 push25/pop25 निर्देश उत्पन्न न करें।

-एम 16-बिट
16-बिट निर्देश उत्पन्न करें।

-मनो-16-बिट
16-बिट निर्देश उत्पन्न न करें।

-मिस्र-वेक्टर-आकार =संख्या
प्रत्येक इंटरप्ट वेक्टर का आकार निर्दिष्ट करें, जो 4 या 16 होना चाहिए।

-mcache-ब्लॉक-आकार =संख्या
प्रत्येक कैश ब्लॉक का आकार निर्दिष्ट करें, जो 2 और 4 के बीच 512 की शक्ति होनी चाहिए।

-मार्च=मेहराब
लक्ष्य आर्किटेक्चर का नाम निर्दिष्ट करें।

-एमसीमॉडल=कोड-मॉडल
कोड मॉडल को इनमें से किसी एक पर सेट करें

छोटा
सभी डेटा और केवल-पढ़ने के लिए डेटा खंड 512KB एड्रेसिंग स्पेस के भीतर होना चाहिए।
टेक्स्ट सेगमेंट 16MB एड्रेसिंग स्पेस के भीतर होना चाहिए।

मध्यम
डेटा खंड 512KB के भीतर होना चाहिए, जबकि केवल-पढ़ने के लिए डेटा खंड हो सकता है
4GB एड्रेसिंग स्पेस के भीतर। टेक्स्ट सेगमेंट अभी भी 16MB . के भीतर होना चाहिए
अंतरिक्ष को संबोधित करना।

बड़ा
सभी टेक्स्ट और डेटा सेगमेंट 4GB एड्रेसिंग स्पेस के भीतर हो सकते हैं।

-मक्टर-डॉटर
कंस्ट्रक्टर/डिस्ट्रक्टर सुविधा सक्षम करें।

-मेरेलैक्स
निर्देशों को शिथिल करने के लिए गाइड लिंकर।

एनआईओएस II ऑप्शंस

ये Altera Nios II प्रोसेसर के लिए परिभाषित विकल्प हैं।

-G संख्या
वैश्विक और स्थिर वस्तुओं को से कम या उसके बराबर रखें संख्या छोटे डेटा में बाइट्स या
सामान्य डेटा या बीएसएस अनुभागों के बजाय बीएसएस अनुभाग। का डिफ़ॉल्ट मान संख्या is
8.

-एमजीपॉप्ट=विकल्प
-एमजीपॉप्ट
-मनो-गपोप्ट
जीपी-रिश्तेदार पहुंच उत्पन्न करें (उत्पन्न न करें)। निम्नलिखित विकल्प नाम है
मान्यता प्राप्त:

कोई नहीं
GP-सापेक्ष पहुँच उत्पन्न न करें।

स्थानीय
छोटे डेटा ऑब्जेक्ट के लिए GP-सापेक्ष पहुँच उत्पन्न करें जो बाहरी नहीं हैं या
कमज़ोर। उन वस्तुओं के लिए जीपी-रिश्तेदार पते का भी उपयोग करें जिन्हें स्पष्ट रूप से किया गया है
एक "अनुभाग" विशेषता के माध्यम से एक छोटे डेटा अनुभाग में रखा गया है।

वैश्विक
से संबंधित स्थानीय, लेकिन छोटे डेटा ऑब्जेक्ट के लिए GP-सापेक्ष अभिगम भी उत्पन्न करते हैं जो
बाहरी या कमजोर हैं। यदि आप इस विकल्प का उपयोग करते हैं, तो आपको यह सुनिश्चित करना होगा कि . के सभी भाग
आपका कार्यक्रम (पुस्तकालयों सहित) उसी के साथ संकलित किया गया है -G सेटिंग.

तिथि
प्रोग्राम में सभी डेटा ऑब्जेक्ट के लिए GP-सापेक्ष पहुँच उत्पन्न करें। यदि तुम प्रयोग करते हो
यह विकल्प, आपके प्रोग्राम का संपूर्ण डेटा और BSS खंड 64K . में फ़िट होना चाहिए
मेमोरी और आपको उन्हें आवंटित करने के लिए एक उपयुक्त लिंकर स्क्रिप्ट का उपयोग करना चाहिए
वैश्विक सूचक की पता योग्य सीमा।

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

-एमजीपॉप्ट के बराबर है -mgpopt=स्थानीय, तथा -मनो-गपोप्ट के बराबर है -mgpopt=कोई नहीं.

डिफ़ॉल्ट है -एमजीपॉप्ट सिवाय कब -एफपीआईसी or -एफपीआईसी स्थिति उत्पन्न करने के लिए निर्दिष्ट है-
स्वतंत्र कोड। ध्यान दें कि Nios II ABI GP-सापेक्ष अभिगम की अनुमति नहीं देता है
साझा पुस्तकालय।

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

-मेले
-मेब
क्रमशः छोटे-एंडियन (डिफ़ॉल्ट) या बड़े-एंडियन (प्रयोगात्मक) कोड उत्पन्न करें।

-एमबीपास-कैश
-मनो-बाईपास-कैश
I/O प्रकारों का उपयोग करके कैश को हमेशा बायपास करने के लिए सभी लोड और स्टोर निर्देशों को बाध्य करें
हिदायतें। डिफ़ॉल्ट कैश को बायपास नहीं करना है।

-मनो-कैश-अस्थिर
-mcache-अस्थिर
अस्थिर मेमोरी एक्सेस लोड और स्टोर के I/O वेरिएंट का उपयोग करके कैश को बायपास करता है
निर्देश। डिफ़ॉल्ट कैश को बायपास नहीं करना है।

-मनो-फास्ट-स्व-दिव
-mfast-sw-div
छोटी संख्याओं के लिए टेबल-आधारित फ़ास्ट डिवाइड का उपयोग न करें। डिफ़ॉल्ट उपवास का उपयोग करना है
पर विभाजित करें -ओ३ और ऊपर।

-मनो-एचडब्ल्यू-मुलु
-महव-मुलु
-मनो-एचडब्ल्यू-मुल्क्स
-mhw-mulx
-मनो-एचडब्ल्यू-डिव
-महव-दिव
निर्देशों के "mul", "mulx" और "div" परिवार को उत्सर्जित करने में सक्षम या अक्षम करें
संकलक। डिफ़ॉल्ट "mul" का उत्सर्जन करना है और "div" और "mulx" का उत्सर्जन नहीं करना है।

-एमकस्टम-इन्स्नो=N
-मनो-कस्टम-इन्स्नो
से प्रत्येक -एमकस्टम-इन्स्नो=N विकल्प एन्कोडिंग के साथ एक कस्टम निर्देश के उपयोग को सक्षम बनाता है N कब
जनरेटिंग कोड जो उपयोग करता है इन्स्नो। उदाहरण के लिए, -mcustom-fadds=253 कस्टम उत्पन्न करता है
निर्देश 253 के बजाय एकल-सटीक फ़्लोटिंग-पॉइंट ऐड ऑपरेशंस के लिए
लाइब्रेरी कॉल का उपयोग करने का डिफ़ॉल्ट व्यवहार।

के निम्नलिखित मान इन्स्नो समर्थित हैं। जैसा कि अन्यथा उल्लेख किया गया है, फ़्लोटिंग-पॉइंट
संचालन सामान्य IEEE 754 शब्दार्थ के साथ लागू होने की उम्मीद है और
सीधे सी ऑपरेटरों या समकक्ष जीसीसी अंतर्निर्मित कार्यों से मेल खाते हैं।

एकल-सटीक फ़्लोटिंग पॉइंट:

फ़ैड्स, एफएसयूबी, एफडीआईवीएस, fmuls
बाइनरी अंकगणितीय संचालन।

fnegs
यूनरी नकार।

फैब्स
यूनरी निरपेक्ष मूल्य।

fcmpeqs, fcmpges, fcmpgts, fcmples, fcmlts, fcmpnes
तुलना संचालन।

fmins, fmax
फ़्लोटिंग-पॉइंट न्यूनतम और अधिकतम। ये निर्देश केवल तभी उत्पन्न होते हैं जब
-अनंत-गणित-केवल अधिकृत है।

fqrts
यूनरी स्क्वायर रूट ऑपरेशन।

एफसीओएसएस, fsins, फ्तान, फतन, fexps, कोड़े
फ़्लोटिंग-पॉइंट त्रिकोणमितीय और घातीय कार्य। ये निर्देश हैं
केवल उत्पन्न अगर -फनसेफ-गणित-अनुकूलन भी निर्दिष्ट है।

डबल-सटीक फ़्लोटिंग पॉइंट:

फड्ड, एफएसयूबीडी, एफडीआईवीडी, fmuld
बाइनरी अंकगणितीय संचालन।

fnegd
यूनरी नकार।

फैब्सडी
यूनरी निरपेक्ष मूल्य।

fcmpeqd, fcmpg, fcmpgtd, fcmpled, एफसीएमपीएलटीडी, fcmpned
तुलना संचालन।

मन, fmaxd
डबल-सटीक न्यूनतम और अधिकतम। ये निर्देश केवल तभी उत्पन्न होते हैं जब
-अनंत-गणित-केवल अधिकृत है।

एफएसक्यूआरटीडी
यूनरी स्क्वायर रूट ऑपरेशन।

एफसीओएसडी, एफएसआईएनडी, ftand, फतंड, fexpd, कोड़े मारे गए
डबल-सटीक त्रिकोणमितीय और घातीय कार्य। ये निर्देश हैं
केवल उत्पन्न अगर -फनसेफ-गणित-अनुकूलन भी निर्दिष्ट है।

रूपांतरण:

fextd
एकल परिशुद्धता से दोहरी परिशुद्धता में रूपांतरण।

fruncds
डबल परिशुद्धता से एकल परिशुद्धता में रूपांतरण।

फिक्ससी, फिक्ससु, फिक्सडी, फिक्सडु
फ़्लोटिंग पॉइंट से हस्ताक्षरित या अहस्ताक्षरित पूर्णांक प्रकारों में रूपांतरण, के साथ
शून्य की ओर कटाव।

दौर
एकल-सटीक फ़्लोटिंग पॉइंट से हस्ताक्षरित पूर्णांक में रूपांतरण, को गोल करना
निकटतम पूर्णांक और शून्य से दूर संबंध। यह से मेल खाती है
"__builtin_lroundf" फ़ंक्शन जब -फनो-गणित-त्रुटि प्रयोग किया जाता है।

फ्लोटिस, फ्लोटस, फ्लोटिड, फ्लोटुड
हस्ताक्षरित या अहस्ताक्षरित पूर्णांक प्रकारों से फ़्लोटिंग-पॉइंट प्रकारों में रूपांतरण।

इसके अलावा, आंतरिक रजिस्टरों एक्स और वाई के लिए निम्नलिखित सभी स्थानांतरण निर्देश
किसी भी डबल-सटीक फ़्लोटिंग-पॉइंट निर्देशों का उपयोग करने के लिए प्रदान किया जाना चाहिए।
दो डबल-सटीक स्रोत ऑपरेंड लेने वाले कस्टम निर्देश पहले की अपेक्षा करते हैं
64-बिट रजिस्टर X में ऑपरेंड। अन्य ऑपरेंड (या एक यूनरी का केवल ऑपरेंड
ऑपरेशन) कम से कम महत्वपूर्ण के साथ कस्टम अंकगणितीय निर्देश को दिया जाता है
स्रोत रजिस्टर में आधा src1 और सबसे महत्वपूर्ण आधा src2. एक परंपरा
एक डबल-सटीक परिणाम देने वाला निर्देश सबसे महत्वपूर्ण 32 . लौटाता है
गंतव्य रजिस्टर में बिट्स और 32-बिट रजिस्टर में दूसरा आधा वाई। जीसीसी
रजिस्टर X लिखने और/या पढ़ने के लिए स्वचालित रूप से आवश्यक कोड अनुक्रम उत्पन्न करता है
जब डबल-सटीक फ़्लोटिंग-पॉइंट निर्देशों का उपयोग किया जाता है तो वाई पंजीकृत करें।

एफडब्ल्यूआरएक्स
लिखना src1 एक्स और . के कम से कम महत्वपूर्ण आधे में src2 सबसे महत्वपूर्ण में
एक्स का आधा

fwry
लिखना src1 वाई में

fdxhi, fdxlo
X का सबसे या कम से कम (क्रमशः) महत्वपूर्ण आधा पढ़ें और इसे इसमें स्टोर करें गंतव्य.

फ़्रेडी
Y का मान पढ़ें और इसे इसमें स्टोर करें गंतव्य.

ध्यान दें कि आप Nios II कस्टम की पीढ़ी पर अधिक स्थानीय नियंत्रण प्राप्त कर सकते हैं
"लक्ष्य ("कस्टम-इन्सन = एन")" और "लक्ष्य ("नहीं-कस्टम-इंसन")"
कार्य गुण या प्राग्मास।

-एमकस्टम-fpu-cfg=नाम
यह विकल्प कस्टम निर्देश एन्कोडिंग के एक पूर्वनिर्धारित, नामित सेट को सक्षम करता है (देखें
-एमकस्टम-इन्स्नो ऊपर)। वर्तमान में, निम्नलिखित सेट परिभाषित किए गए हैं:

-mcustom-fpu-cfg=60-1 के बराबर है: -एमकस्टम-fmuls=252 -mcustom-fadds=253
-एमकस्टम-fsubs = 254 -फसिंगल-सटीक-स्थिर

-mcustom-fpu-cfg=60-2 के बराबर है: -एमकस्टम-fmuls=252 -mcustom-fadds=253
-एमकस्टम-fsubs = 254 -एमकस्टम-fdivs=255 -फसिंगल-सटीक-स्थिर

-mcustom-fpu-cfg=72-3 के बराबर है: -एमकस्टम-फ्लोटस = 243 -mcustom-fixsi=244
-mcustom-floatis = 245 -एमकस्टम-fcmpgts=246 -एमकस्टम-fcmples=249 -एमकस्टम-fcmpeqs=250
-एमकस्टम-fcmpnes=251 -एमकस्टम-fmuls=252 -mcustom-fadds=253 -एमकस्टम-fsubs = 254
-एमकस्टम-fdivs=255 -फसिंगल-सटीक-स्थिर

व्यक्ति द्वारा दिए गए कस्टम निर्देश असाइनमेंट -एमकस्टम-इन्स्नो= विकल्प ओवरराइड
द्वारा दिए गए -एमकस्टम-fpu-cfg=, पर विकल्पों के क्रम की परवाह किए बिना
कमांड लाइन।

ध्यान दें कि आप FPU कॉन्फ़िगरेशन के चयन पर अधिक स्थानीय नियंत्रण प्राप्त कर सकते हैं
"लक्ष्य ("कस्टम-एफपीयू-सीएफजी = ) का उपयोग करनानाम")" समारोह विशेषता या pragma.

ये अतिरिक्त -m Altera Nios II ELF (बेयर-मेटल) लक्ष्य के लिए विकल्प उपलब्ध हैं:

-महाली
एचएएल बसपा से जुड़ें। यह GCC द्वारा प्रदान किए गए C रनटाइम स्टार्टअप के साथ लिंकिंग को दबा देता है
और समाप्ति कोड, और आमतौर पर के साथ संयोजन के रूप में प्रयोग किया जाता है -msys-crt0= विस्तृत विवरण देना
एचएएल बसपा द्वारा प्रदान किए गए वैकल्पिक स्टार्टअप कोड का स्थान।

-एमएसस्मॉलसी
सी पुस्तकालय के सीमित संस्करण के साथ लिंक करें, -लस्मॉलसी, न्यूलिब के बजाय।

-msys-crt0=स्टार्टफाइल
स्टार्टफाइल लिंक करते समय उपयोग करने के लिए स्टार्टफाइल (crt0) का फ़ाइल नाम है। इस विकल्प
केवल के संयोजन में उपयोगी है -महाली.

-एमएसआईएस-लिब =सिस्टमलिब
सिस्टमलिब पुस्तकालय का पुस्तकालय नाम है जो निम्न-स्तरीय सिस्टम कॉल प्रदान करता है
सी पुस्तकालय द्वारा आवश्यक, उदाहरण के लिए "पढ़ें" और "लिखें"। यह विकल्प आमतौर पर प्रयोग किया जाता है
एचएएल बसपा द्वारा प्रदान किए गए पुस्तकालय के साथ लिंक।

Nvidia PTX ऑप्शंस

इन विकल्पों को एनवीडिया पीटीएक्स के लिए परिभाषित किया गया है:

-एम 32
-एम 64
32-बिट या 64-बिट ABI के लिए कोड जेनरेट करें।

-ममेनकर्नेल
__main कर्नेल के लिए कोड में लिंक करें। यह ऑफलोडिंग के बजाय स्टैंड-अलोन के लिए है
निष्पादन।

पीडीपी -11 ऑप्शंस

ये विकल्प पीडीपी-11 के लिए परिभाषित हैं:

-एमएफपीयू
हार्डवेयर FPP फ्लोटिंग पॉइंट का उपयोग करें। यह डिफ़ॉल्ट है। (एफआईएस फ़्लोटिंग पॉइंट
पीडीपी-11/40 समर्थित नहीं है।)

-एमसॉफ्ट-फ्लोट
हार्डवेयर फ्लोटिंग पॉइंट का उपयोग न करें।

-मैक0
एसी 0 में फ्लोटिंग-पॉइंट परिणाम लौटाएं (यूनिक्स असेंबलर सिंटैक्स में एफआर 0)।

-मनो-एसी0
स्मृति में फ़्लोटिंग-पॉइंट परिणाम लौटाएं। यह डिफ़ॉल्ट है।

-एम 40
पीडीपी-11/40 के लिए कोड जनरेट करें।

-एम 45
पीडीपी-11/45 के लिए कोड जनरेट करें। यह डिफ़ॉल्ट है।

-एम 10
पीडीपी-11/10 के लिए कोड जनरेट करें।

-एमबीकॉपी-बिलिन
मेमोरी को कॉपी करने के लिए इनलाइन "movmemhi" पैटर्न का उपयोग करें। यह डिफ़ॉल्ट है।

-एमबीकॉपी
स्मृति को कॉपी करने के लिए इनलाइन "movmemhi" पैटर्न का उपयोग न करें।

-मिंट16
-मनो-इंट32
16-बिट "int" का प्रयोग करें। यह डिफ़ॉल्ट है।

-मिंट32
-मनो-इंट16
32-बिट "int" का प्रयोग करें।

-एमफ्लोट64
-मनो-फ्लोट32
64-बिट "फ्लोट" का प्रयोग करें। यह डिफ़ॉल्ट है।

-एमफ्लोट32
-मनो-फ्लोट64
32-बिट "फ्लोट" का प्रयोग करें।

-मबशी
"abshi2" पैटर्न का प्रयोग करें। यह डिफ़ॉल्ट है।

-मनो-अब्शी
"abshi2" पैटर्न का प्रयोग न करें।

-मशाखा-महंगा
दिखाओ कि शाखाएं महंगी हैं। यह कोड जनरेशन के साथ प्रयोग करने के लिए है
केवल.

-मब्रांच-सस्ते
यह ढोंग न करें कि शाखाएँ महंगी हैं। यह डिफ़ॉल्ट है।

-मुनिक्स-एएसएम
यूनिक्स असेंबलर सिंटैक्स का प्रयोग करें। के लिए कॉन्फ़िगर किए जाने पर यह डिफ़ॉल्ट है पीडीपी11-*-बीएसडी.

-एमडीईसी-एएसएम
डीईसी असेंबलर सिंटैक्स का प्रयोग करें। किसी भी पीडीपी-11 लक्ष्य के लिए कॉन्फ़िगर किए जाने पर यह डिफ़ॉल्ट होता है
अन्य की तुलना में पीडीपी11-*-बीएसडी.

पिकोचिप ऑप्शंस

इन -m पिकोशिप कार्यान्वयन के लिए विकल्पों को परिभाषित किया गया है:

-माई =ae_type
सरणी के लिए निर्देश सेट, रजिस्टर सेट और निर्देश शेड्यूलिंग पैरामीटर सेट करें
तत्व प्रकार ae_type. के लिए समर्थित मान ae_type रहे किसी, एमयूएल, तथा मैक.

-माई = कोई भी पूरी तरह से सामान्य AE प्रकार का चयन करता है। इस विकल्प से उत्पन्न कोड चलता है
किसी भी अन्य AE प्रकार पर। कोड उतना कुशल नहीं है जितना कि संकलित होने पर होगा
एक विशिष्ट AE प्रकार के लिए, और कुछ प्रकार के ऑपरेशन (जैसे, गुणन) काम नहीं करते हैं
सभी प्रकार के एई पर ठीक से।

-माई = एमयूएल एक MUL AE प्रकार का चयन करता है। संकलित कोड के लिए यह सबसे उपयोगी AE प्रकार है,
और डिफ़ॉल्ट है।

-माई = मैक एक डीएसपी-शैली मैक एई का चयन करता है। इस विकल्प के साथ संकलित कोड से पीड़ित हो सकता है
बाइट (चार) हेरफेर का खराब प्रदर्शन, क्योंकि डीएसपी एई प्रदान नहीं करता है
बाइट लोड/स्टोर्स के लिए हार्डवेयर समर्थन।

-mप्रतीक-जैसा-पता
लोड/स्टोर में एक पते के रूप में सीधे प्रतीक नाम का उपयोग करने के लिए कंपाइलर को सक्षम करें
निर्देश, पहले इसे एक रजिस्टर में लोड किए बिना। आमतौर पर, इसका उपयोग
विकल्प बड़े प्रोग्राम उत्पन्न करता है, जो विकल्प का उपयोग न करने की तुलना में तेजी से चलता है।
हालाँकि, परिणाम एक कार्यक्रम से दूसरे कार्यक्रम में भिन्न होते हैं, इसलिए इसे एक उपयोगकर्ता विकल्प के रूप में छोड़ दिया जाता है,
स्थायी रूप से सक्षम होने के बजाय।

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

PowerPC ऑप्शंस

ये के तहत सूचीबद्ध हैं

RL78 ऑप्शंस

-मसिम
एक सिम्युलेटर के भीतर संचालन का समर्थन करने के लिए अतिरिक्त लक्ष्य पुस्तकालयों में लिंक।

-mmul=कोई नहीं
-एममूल = जी 13
-एमएमुल=आरएल78
उपयोग किए जाने वाले हार्डवेयर गुणन समर्थन के प्रकार को निर्दिष्ट करता है। डिफ़ॉल्ट है
कोई नहीं, जो सॉफ्टवेयर गुणन कार्यों का उपयोग करता है। NS g13 विकल्प के लिए है
हार्डवेयर केवल RL78/G13 लक्ष्यों पर परिधीय गुणा/विभाजित करता है। NS rl78 विकल्प है
RL78 सॉफ्टवेयर मैनुअल में परिभाषित मानक हार्डवेयर गुणन के लिए।

-एम64बिट-डबल्स
-एम32बिट-डबल्स
"डबल" डेटा प्रकार को 64 बिट बनाएं (-एम64बिट-डबल्स) या 32 बिट (-एम32बिट-डबल्स)
आकार में। डिफ़ॉल्ट है -एम32बिट-डबल्स.

आईबीएम रुपये / 6000 और PowerPC ऑप्शंस

इन -m IBM RS/6000 और PowerPC के लिए विकल्पों को परिभाषित किया गया है:

-एमपॉवरपीसी-जीपीओपीटी
-मनो-पावरपीसी-जीपीओपीटी
-एमपॉवरपीसी-जीएफएक्सऑप्ट
-एमनो-पावरपीसी-जीएफएक्सओपीटी
-एमपॉवरपीसी64
-मनो-पावरपीसी64
-एमएमएफसीआरएफ
-मनो-एमएफसीआरएफ
-एमपीओपीसीएनटीबी
-मनो-पॉपसीएनटीबी
-एमपीओपीसीएनटीडी
-मनो-पॉपसीएनटीडी
-एमएफपीआरएनडी
-मनो-एफआरएनडी
-एमसीएमपीबी
-एमनो-सीएमपीबी
-एमएमएफपीजीपीआर
-मनो-एमएफपीजीपीआर
-महार्ड-डीएफपी
-मनो-हार्ड-डीएफपी
आप इन विकल्पों का उपयोग यह निर्दिष्ट करने के लिए करते हैं कि आपके प्रोसेसर पर कौन से निर्देश उपलब्ध हैं
का उपयोग कर रहे हैं। GCC को कॉन्फ़िगर करते समय इन विकल्पों का डिफ़ॉल्ट मान निर्धारित किया जाता है।
निर्दिष्ट करना -एमसीपीयू =सीपीयू_प्रकार इन विकल्पों के विनिर्देश को ओवरराइड करता है। हम
अनुशंसा करते हैं कि आप का उपयोग करें -एमसीपीयू =सीपीयू_प्रकार ऊपर सूचीबद्ध विकल्पों के बजाय विकल्प।

निर्दिष्ट करना -एमपॉवरपीसी-जीपीओपीटी GCC को वैकल्पिक PowerPC आर्किटेक्चर का उपयोग करने की अनुमति देता है
फ़्लोटिंग-पॉइंट वर्गमूल सहित सामान्य प्रयोजन समूह में निर्देश।
निर्दिष्ट करना -एमपॉवरपीसी-जीएफएक्सऑप्ट GCC को वैकल्पिक PowerPC आर्किटेक्चर का उपयोग करने की अनुमति देता है
ग्राफ़िक्स समूह में निर्देश, फ़्लोटिंग-पॉइंट चयन सहित।

RSI -एमएमएफसीआरएफ विकल्प जीसीसी को कंडीशन रजिस्टर फील्ड से मूव जेनरेट करने की अनुमति देता है
POWER4 प्रोसेसर और अन्य प्रोसेसर पर लागू किया गया निर्देश जो इसका समर्थन करते हैं
पावरपीसी V2.01 आर्किटेक्चर। NS -एमपीओपीसीएनटीबी विकल्प जीसीसी को पॉपकाउंट उत्पन्न करने की अनुमति देता है
और डबल-सटीक एफपी पारस्परिक अनुमान निर्देश POWER5 . पर लागू किया गया
प्रोसेसर और अन्य प्रोसेसर जो PowerPC V2.02 आर्किटेक्चर का समर्थन करते हैं। NS
-एमपीओपीसीएनटीडी विकल्प जीसीसी को पर लागू पॉपकाउंट निर्देश उत्पन्न करने की अनुमति देता है
POWER7 प्रोसेसर और अन्य प्रोसेसर जो PowerPC V2.06 आर्किटेक्चर का समर्थन करते हैं।
RSI -एमएफपीआरएनडी विकल्प जीसीसी को एफपी राउंड टू इंटीजर निर्देश उत्पन्न करने की अनुमति देता है
POWER5+ प्रोसेसर और PowerPC का समर्थन करने वाले अन्य प्रोसेसर पर लागू किया गया
V2.03 वास्तुकला। NS -एमसीएमपीबी विकल्प जीसीसी को तुलना बाइट्स उत्पन्न करने की अनुमति देता है
POWER6 प्रोसेसर और अन्य प्रोसेसर पर लागू किया गया निर्देश जो इसका समर्थन करते हैं
पावरपीसी V2.05 आर्किटेक्चर। NS -एमएमएफपीजीपीआर विकल्प जीसीसी को एफपी चाल उत्पन्न करने की अनुमति देता है
POWER6X प्रोसेसर पर लागू किए गए सामान्य प्रयोजन के रजिस्टर निर्देशों के लिए / से और
अन्य प्रोसेसर जो विस्तारित PowerPC V2.05 आर्किटेक्चर का समर्थन करते हैं। NS -महार्ड-डीएफपी
विकल्प जीसीसी को लागू दशमलव फ़्लोटिंग-पॉइंट निर्देश उत्पन्न करने की अनुमति देता है
कुछ पावर प्रोसेसर।

RSI -एमपॉवरपीसी64 विकल्प जीसीसी को अतिरिक्त 64-बिट निर्देश उत्पन्न करने की अनुमति देता है कि
पूर्ण PowerPC64 आर्किटेक्चर में पाए जाते हैं और GPR को 64-बिट, डबलवर्ड के रूप में मानते हैं
मात्रा। GCC डिफ़ॉल्ट करने के लिए -मनो-पावरपीसी64.

-एमसीपीयू =सीपीयू_प्रकार
के लिए आर्किटेक्चर प्रकार सेट करें, उपयोग रजिस्टर करें, और निर्देश शेड्यूलिंग पैरामीटर सेट करें
मशीन की तरह सीपीयू_प्रकार. के लिए समर्थित मान सीपीयू_प्रकार रहे 401, 403, 405, 405एफपी, 440,
440एफपी, 464, 464एफपी, 476, 476एफपी, 505, 601, 602, 603, 603e, 604, 604e, 620, 630, 740,
7400, 7450, 750, 801, 821, 823, 860, 970, 8540, a2, e300c2, e300c3, ई500एमसी, e500mc64,
e5500, e6500, ईसी603ई, G3, G4, G5, टाइटन, power3, power4, power5, पावर5+, power6,
पावर6x, power7, power8, PowerPC, पावरपीसी64, पावरपीसी64ले, तथा rs64.

-एमसीपीयू = पावरपीसी, -एमसीपीयू = पावरपीसी 64, तथा -एमसीपीयू = पावरपीसी64ले शुद्ध 32-बिट पावरपीसी निर्दिष्ट करें
(या तो एंडियन), 64-बिट बड़ा एंडियन पावरपीसी और 64-बिट छोटा एंडियन पावरपीसी
आर्किटेक्चर मशीन प्रकार, एक उपयुक्त, सामान्य प्रोसेसर मॉडल के लिए माना जाता है
शेड्यूलिंग उद्देश्यों।

अन्य विकल्प एक विशिष्ट प्रोसेसर निर्दिष्ट करते हैं। उन विकल्पों के तहत उत्पन्न कोड
उस प्रोसेसर पर सबसे अच्छा चलता है, और दूसरों पर बिल्कुल भी नहीं चल सकता है।

RSI -एमसीपीयू विकल्प निम्नलिखित विकल्पों को स्वचालित रूप से सक्षम या अक्षम करते हैं:

-माल्टीवेसी -एमएफपीआरएनडी -महार्ड-फ्लोट -एमएमएफसीआरएफ -मिमल्टीपल -एमपीओपीसीएनटीबी -एमपीओपीसीएनटीडी -एमपॉवरपीसी64
-एमपॉवरपीसी-जीपीओपीटी -एमपॉवरपीसी-जीएफएक्सऑप्ट -एकल-फ्लोट -मडबल-फ्लोट -एमएससरल-एफपीयू -मस्ट्रिंग
-ममुल्ह्वा -एमडीएलएमजेबी -एमएमएफपीजीपीआर -एमवीएसएक्स -मक्रिप्टो -एमडायरेक्ट-मूव -mpower8-संलयन
-mpower8-वेक्टर -एमक्वाड-मेमोरी -mquad-स्मृति-परमाणु

किसी विशेष सीपीयू के लिए निर्धारित विशेष विकल्प कंपाइलर संस्करणों के बीच भिन्न होता है,
इस पर निर्भर करता है कि कौन सी सेटिंग उस CPU के लिए इष्टतम कोड उत्पन्न करती है; यह नहीं है
आवश्यक रूप से वास्तविक हार्डवेयर की क्षमताओं को प्रतिबिंबित करता है। यदि आप एक सेट करना चाहते हैं
किसी विशेष मूल्य के लिए अलग-अलग विकल्प, आप इसे बाद में निर्दिष्ट कर सकते हैं -एमसीपीयू विकल्प,
पसंद -एमसीपीयू=970 -मनो-altivec.

AIX पर, -माल्टीवेसी और -एमपॉवरपीसी64 विकल्प सक्षम या अक्षम नहीं हैं -एमसीपीयू
विकल्प वर्तमान में क्योंकि AIX के पास इन विकल्पों के लिए पूर्ण समर्थन नहीं है। आप कर सकते हैं
अभी भी उन्हें व्यक्तिगत रूप से सक्षम या अक्षम करें यदि आप सुनिश्चित हैं कि यह आपके में काम करेगा
पर्यावरण.

-मट्यून =सीपीयू_प्रकार
मशीन प्रकार के लिए निर्देश शेड्यूलिंग पैरामीटर सेट करें सीपीयू_प्रकार, लेकिन सेट न करें
आर्किटेक्चर प्रकार या रजिस्टर उपयोग, जैसे -एमसीपीयू =सीपीयू_प्रकार करता है। के लिए समान मान
सीपीयू_प्रकार के लिए उपयोग किया जाता है -मट्यून से संबंधित -एमसीपीयू. यदि दोनों निर्दिष्ट हैं, तो उत्पन्न कोड
द्वारा निर्धारित वास्तुकला और रजिस्टरों का उपयोग करता है -एमसीपीयू, लेकिन शेड्यूलिंग पैरामीटर द्वारा सेट किया गया
-मट्यून.

-एमसीमॉडल = छोटा
छोटे मॉडल के लिए PowerPC64 कोड जनरेट करें: TOC 64k तक सीमित है।

-एमसीमॉडल = मध्यम
मध्यम मॉडल के लिए PowerPC64 कोड जनरेट करें: TOC और अन्य स्थिर डेटा ऊपर हो सकते हैं
कुल 4G आकार में।

-एमसीमॉडल = बड़ा
बड़े मॉडल के लिए PowerPC64 कोड जनरेट करें: TOC का आकार 4G तक हो सकता है। अन्य
डेटा और कोड केवल 64-बिट पता स्थान द्वारा सीमित है।

-माल्टीवेसी
-मनो-altivec
कोड जेनरेट करें जो AltiVec निर्देशों का उपयोग करता है (उपयोग नहीं करता है), और उपयोग को सक्षम भी करता है
बिल्ट-इन फ़ंक्शंस जो AltiVec निर्देश सेट तक अधिक सीधी पहुँच की अनुमति देते हैं।
आपको सेट करने की भी आवश्यकता हो सकती है -माबी=altivec AltiVec ABI के साथ वर्तमान ABI को समायोजित करने के लिए
संवर्द्धन।

. -माल्टीवेसी के बजाय प्रयोग किया जाता है -माल्टीवेक = ले or -माल्टीवेक = बीई, तत्व क्रम
Altivec इंट्रिनिक्स के लिए जैसे "vec_splat", "vec_extract", और "vec_insert" मैच
लक्ष्य की अंतहीनता के अनुरूप सरणी तत्व क्रम। यानी तत्व
शून्य एक बड़े-एंडियन को लक्षित करते समय वेक्टर रजिस्टर में सबसे बाएं तत्व की पहचान करता है
प्लेटफ़ॉर्म, और लक्ष्यीकरण करते समय वेक्टर रजिस्टर में सबसे सही तत्व की पहचान करता है a
लिटिल-एंडियन प्लेटफॉर्म।

-माल्टीवेक = बीई
बड़े-एंडियन तत्व क्रम का उपयोग करके Altivec निर्देश उत्पन्न करें, भले ही
लक्ष्य बड़ा है- या छोटा-एंडियन। बड़े-एंडियन को लक्षित करते समय यह डिफ़ॉल्ट है
प्लेटफार्म पर ट्रेड कैसे करना है|

एलिमेंट ऑर्डर का उपयोग अल्टिवेक इंट्रिनिक्स में एलिमेंट नंबरों की व्याख्या करने के लिए किया जाता है जैसे कि
"vec_splat", "vec_extract", और "vec_insert"। डिफ़ॉल्ट रूप से, ये सरणी तत्व से मेल खाते हैं
लक्ष्य के लिए अंतहीनता के अनुरूप क्रम।

-माल्टीवेक = ले
छोटे-एंडियन तत्व क्रम का उपयोग करके अल्टिवेक निर्देश उत्पन्न करें, भले ही
लक्ष्य बड़ा है- या छोटा-एंडियन। थोड़ा लक्षित करते समय यह डिफ़ॉल्ट है-
एंडियन मंच। बिग-एंडियन को लक्षित करते समय इस विकल्प को वर्तमान में अनदेखा कर दिया जाता है
प्लेटफार्म पर ट्रेड कैसे करना है|

एलिमेंट ऑर्डर का उपयोग अल्टिवेक इंट्रिनिक्स में एलिमेंट नंबरों की व्याख्या करने के लिए किया जाता है जैसे कि
"vec_splat", "vec_extract", और "vec_insert"। डिफ़ॉल्ट रूप से, ये सरणी तत्व से मेल खाते हैं
लक्ष्य के लिए अंतहीनता के अनुरूप क्रम।

-मवरसेव
-मनो-वरसेव
AltiVec कोड जनरेट करते समय VRSAVE निर्देश जेनरेट करें।

-मेजेन-सेल-माइक्रोकोड
सेल माइक्रोकोड निर्देश उत्पन्न करें।

-मवार्न-सेल-माइक्रोकोड
सेल माइक्रोकोड निर्देश उत्सर्जित होने पर चेतावनी दें। सेल माइक्रोकोड का एक उदाहरण
निर्देश एक परिवर्तनशील बदलाव है।

-मसिक्योर-पीएलटी
कोड उत्पन्न करें जो अनुमति देता है ld और ld.so निष्पादन योग्य और साझा पुस्तकालयों का निर्माण करने के लिए
गैर-निष्पादन योग्य ".plt" और ".got" अनुभाग। यह एक PowerPC 32-बिट SYSV ABI विकल्प है।

-एमबीएस-पीएलटी
एक BSS ".plt" अनुभाग का उपयोग करने वाला कोड जनरेट करें जो ld.so भरता है, और ".plt" की आवश्यकता होती है
और ".got" अनुभाग जो लिखने योग्य और निष्पादन योग्य दोनों हैं। यह एक पावरपीसी 32-बिट है
SYSV एबीआई विकल्प।

-मिसेल
-मनो-इसेल
यह स्विच ISEL निर्देशों के निर्माण को सक्षम या अक्षम करता है।

-मिसल =हाँ नही
यह स्विच बहिष्कृत कर दिया गया है। उपयोग -मिसेल और -मनो-इसेल बजाय.

-एमएसपीई
-मनो-स्पे
यह स्विच एसपीई सिम निर्देशों के निर्माण को सक्षम या अक्षम करता है।

-युग्मित
-मनो-पेयर
यह स्विच PAIRED सिम निर्देशों की पीढ़ी को सक्षम या अक्षम करता है।

-एमएसपीई =हाँ नही
यह विकल्प बहिष्कृत कर दिया गया है। उपयोग -एमएसपीई और -मनो-स्पे बजाय.

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

-मक्रिप्टो
-मनो-क्रिप्टो
अंतर्निहित कार्यों के उपयोग (अक्षम) को सक्षम करें जो सीधे पहुंच की अनुमति देते हैं
क्रिप्टोग्राफ़िक निर्देश जो PowerPC ISA के संस्करण 2.07 में जोड़े गए थे।

-एमडायरेक्ट-मूव
-मनो-डायरेक्ट-मूव
कोड उत्पन्न करें जो डेटा को के बीच स्थानांतरित करने के लिए निर्देशों का उपयोग करता है (उपयोग नहीं करता है)
सामान्य प्रयोजन रजिस्टर और वेक्टर/स्केलर (वीएसएक्स) रजिस्टर जिन्हें जोड़ा गया था
पावरपीसी आईएसए का संस्करण 2.07।

-mpower8-संलयन
-मनो-पावर8-फ्यूजन
कोड उत्पन्न करें जो कुछ पूर्णांक संक्रियाओं को आसन्न रखता है (रखता नहीं है) ताकि
निर्देशों को पॉवर8 और बाद के प्रोसेसर पर एक साथ जोड़ा जा सकता है।

-mpower8-वेक्टर
-मनो-पावर8-वेक्टर
कोड उत्पन्न करें जो वेक्टर और स्केलर निर्देशों का उपयोग करता है (उपयोग नहीं करता है) जो थे
PowerPC ISA के संस्करण 2.07 में जोड़ा गया। अंतर्निहित कार्यों के उपयोग को भी सक्षम करें
जो वेक्टर निर्देशों तक अधिक सीधी पहुंच की अनुमति देता है।

-एमक्वाड-मेमोरी
-मनो-क्वाड-मेमोरी
गैर-परमाणु क्वाड वर्ड मेमोरी निर्देशों का उपयोग (उपयोग नहीं करता) कोड उत्पन्न करें।
RSI -एमक्वाड-मेमोरी विकल्प के लिए 64-बिट मोड के उपयोग की आवश्यकता है।

-mquad-स्मृति-परमाणु
-मनो-क्वाड-मेमोरी-एटॉमिक
कोड उत्पन्न करें जो परमाणु क्वाड शब्द मेमोरी निर्देशों का उपयोग करता है (उपयोग नहीं करता है)। NS
-mquad-स्मृति-परमाणु विकल्प के लिए 64-बिट मोड के उपयोग की आवश्यकता है।

-मपर-रेग-डीएफ
-मनो-अपर-रेग-डीएफ
स्केलर डबल सटीक निर्देशों का उपयोग करने वाले (उपयोग नहीं करने वाले) कोड उत्पन्न करें जो
वेक्टर/स्केलर फ़्लोटिंग पॉइंट रजिस्टर सेट में सभी 64 रजिस्टरों को लक्षित करें जो थे
PowerPC ISA के संस्करण 2.06 में जोड़ा गया। -मपर-रेग-डीएफ डिफ़ॉल्ट रूप से चालू है अगर
आप इनमें से किसी का उपयोग करते हैं -एमसीपीयू = पावर7, -एमसीपीयू = पावर8या, -एमवीएसएक्स विकल्प.

-मपर-रेग-एसएफ
-mno-ऊपरी-regs-sf
स्केलर एकल सटीक निर्देशों का उपयोग करने वाला (उपयोग नहीं करने वाला) कोड उत्पन्न करें जो
वेक्टर/स्केलर फ़्लोटिंग पॉइंट रजिस्टर सेट में सभी 64 रजिस्टरों को लक्षित करें जो थे
PowerPC ISA के संस्करण 2.07 में जोड़ा गया। -मपर-रेग-एसएफ डिफ़ॉल्ट रूप से चालू है अगर
आप इनमें से किसी एक का उपयोग करते हैं -एमसीपीयू = पावर8 or -mpower8-वेक्टर विकल्प.

-मपर-रेग
-मनो-अपर-रेग्स
सभी 64 . को लक्षित करने वाले अदिश निर्देशों का उपयोग करने वाला (उपयोग नहीं करने वाला) कोड उत्पन्न करें
के मॉडल के आधार पर वेक्टर/स्केलर फ्लोटिंग पॉइंट रजिस्टर सेट में रजिस्टर
यंत्र।

अगर -मनो-अपर-रेग्स विकल्प का उपयोग किया जाता है, यह दोनों को बंद कर देता है -मपर-रेग-एसएफ और
-मपर-रेग-डीएफ विकल्प.

-एमफ्लोट-जीपीआरएस=हाँ/एकल/डबल/नहीं
-एमफ्लोट-जीपीआरएस
यह स्विच फ़्लोटिंग-पॉइंट ऑपरेशंस की पीढ़ी को सक्षम या अक्षम करता है
इसका समर्थन करने वाले आर्किटेक्चर के लिए सामान्य प्रयोजन के रजिस्टर।

तर्क हाँ or एक एकल-सटीक फ़्लोटिंग-पॉइंट के उपयोग को सक्षम बनाता है
आपरेशनों।

तर्क डबल सिंगल और डबल-सटीक फ़्लोटिंग-पॉइंट के उपयोग को सक्षम बनाता है
आपरेशनों।

तर्क नहीं सामान्य प्रयोजन के रजिस्टरों पर फ्लोटिंग-पॉइंट संचालन को अक्षम करता है।

यह विकल्प वर्तमान में केवल MPC854x पर उपलब्ध है।

-एम 32
-एम 64
डार्विन और SVR32 लक्ष्यों के 64-बिट या 4-बिट परिवेशों के लिए कोड जनरेट करें (सहित
जीएनयू/लिनक्स)। 32-बिट वातावरण int, long और पॉइंटर को 32 बिट्स पर सेट करता है और
कोड उत्पन्न करता है जो किसी भी PowerPC संस्करण पर चलता है। 64-बिट वातावरण int को . पर सेट करता है
32 बिट और लंबा और 64 बिट के लिए सूचक, और PowerPC64 के लिए कोड उत्पन्न करता है, जैसे कि
-एमपॉवरपीसी64.

-एमफुल-टोक
-मनो-एफपी-इन-टोक
-मनो-सम-इन-टोक
-मिमिनिमल-टोक
टीओसी (सामग्री की तालिका) की पीढ़ी को संशोधित करें, जो प्रत्येक के लिए बनाई गई है
निष्पादनीय फाइल। NS -एमफुल-टोक विकल्प डिफ़ॉल्ट रूप से चुना जाता है। उस स्थिति में, जीसीसी
में प्रत्येक अद्वितीय गैर-स्वचालित चर संदर्भ के लिए कम से कम एक TOC प्रविष्टि आवंटित करता है
आपका कार्यक्रम। जीसीसी टीओसी में फ्लोटिंग-पॉइंट स्थिरांक भी रखता है। हालांकि, केवल
टीओसी में 16,384 प्रविष्टियां उपलब्ध हैं।

यदि आपको एक लिंकर त्रुटि संदेश प्राप्त होता है जो कह रहा है कि आपने उपलब्ध ओवरफ्लो कर दिया है
TOC स्थान, आप उपयोग किए गए TOC स्थान की मात्रा को कम कर सकते हैं -मनो-एफपी-इन-टोक और
-मनो-सम-इन-टोक विकल्प. -मनो-एफपी-इन-टोक जीसीसी को फ़्लोटिंग-पॉइंट डालने से रोकता है
टीओसी में स्थिरांक और -मनो-सम-इन-टोक GCC को गणना करने के लिए कोड जनरेट करने के लिए बाध्य करता है
उस राशि को TOC में डालने के बजाय एक पते का योग और रन टाइम पर एक स्थिरांक।
आप इनमें से एक या दोनों विकल्पों को निर्दिष्ट कर सकते हैं। प्रत्येक जीसीसी का बहुत उत्पादन करने का कारण बनता है
TOC स्थान के संरक्षण की कीमत पर थोड़ा धीमा और बड़ा कोड।

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

-मैक्स64
-मैक्स32
64-बिट AIX ABI और कॉलिंग कन्वेंशन सक्षम करें: 64-बिट पॉइंटर्स, 64-बिट "लॉन्ग" टाइप, और
उन्हें समर्थन देने के लिए आवश्यक बुनियादी ढाँचा। निर्दिष्ट करना -मैक्स64 का तात्पर्य -एमपॉवरपीसी64,
जब -मैक्स32 64-बिट ABI को अक्षम करता है और इसका अर्थ है -मनो-पावरपीसी64. GCC डिफ़ॉल्ट करने के लिए
-मैक्स32.

-mxl-compat
-मनो-एक्सएल-संगत
AIX- का उपयोग करते समय IBM XL कंपाइलर सेमेन्टिक्स के अधिक निकटता के अनुरूप कोड तैयार करें।
संगत एबीआई। से परे प्रोटोटाइप कार्यों के लिए फ़्लोटिंग-पॉइंट तर्क पास करें
तर्क एफपीआर के अलावा स्टैक पर रजिस्टर सेव एरिया (आरएसए) दर्ज करें। नही मानो
128-बिट लंबे डबल मान में सबसे महत्वपूर्ण डबल को ठीक से गोल किया जाता है जब
मूल्यों की तुलना करना और डबल में परिवर्तित करना। लंबे डबल के लिए XL प्रतीक नामों का प्रयोग करें
समर्थन दिनचर्या।

AIX कॉलिंग कन्वेंशन को बढ़ाया गया था लेकिन शुरू में इसे संभालने के लिए प्रलेखित नहीं किया गया था
अस्पष्ट के एंड आर सी एक फ़ंक्शन को कॉल करने का मामला जो इसके तर्कों का पता लेता है
घोषित से कम तर्क। IBM XL कंपाइलर फ़्लोटिंग-पॉइंट तर्कों तक पहुँचते हैं कि
जब बिना सबरूटीन संकलित किया जाता है तो स्टैक से RSA में फ़िट नहीं होता है
अनुकूलन। क्योंकि स्टैक पर हमेशा फ्लोटिंग-पॉइंट तर्क संग्रहीत करना है
अक्षम और शायद ही कभी आवश्यक, यह विकल्प डिफ़ॉल्ट रूप से सक्षम नहीं है और केवल है
ऑप्टिमाइज़ेशन के बिना IBM XL कंपाइलर्स द्वारा संकलित सबरूटीन्स को कॉल करते समय आवश्यक है।

-एमपीई
सहायता आईबीएम रुपये / 6000 SP समानांतर वातावरण (पी.ई)। उपयोग के लिए लिखे गए एप्लिकेशन को लिंक करें
एप्लिकेशन को चलाने के लिए सक्षम करने के लिए विशेष स्टार्टअप कोड के साथ संदेश गुजर रहा है। NS
सिस्टम में मानक स्थान पर पीई स्थापित होना चाहिए (/usr/lpp/ppe.poe/), या
ऐनक फ़ाइल को इसके साथ ओवरराइड किया जाना चाहिए - चश्मा = उपयुक्त निर्दिष्ट करने का विकल्प
निर्देशिका स्थान। समानांतर पर्यावरण थ्रेड्स का समर्थन नहीं करता है, इसलिए -एमपीई
विकल्प और -पथ्रेड विकल्प असंगत हैं।

-घातक-प्राकृतिक
-घातक-शक्ति
AIX, 32-बिट डार्विन और 64-बिट PowerPC GNU/Linux पर, विकल्प -घातक-प्राकृतिक
बड़े प्रकार के एबीआई-परिभाषित संरेखण को ओवरराइड करता है, जैसे फ़्लोटिंग-पॉइंट डबल्स,
उनकी प्राकृतिक आकार-आधारित सीमा पर। विकल्प -घातक-शक्ति जीसीसी को निर्देश देता है
एबीआई-निर्दिष्ट संरेखण नियमों का पालन करें। जीसीसी मानक संरेखण में चूक करता है
एबीआई में परिभाषित

64-बिट डार्विन पर, प्राकृतिक संरेखण डिफ़ॉल्ट है, और -घातक-शक्ति नहीं है
समर्थित।

-एमसॉफ्ट-फ्लोट
-महार्ड-फ्लोट
कोड उत्पन्न करें जो फ़्लोटिंग-पॉइंट रजिस्टर सेट का उपयोग (उपयोग) नहीं करता है। सॉफ्टवेयर
फ़्लोटिंग-पॉइंट इम्यूलेशन प्रदान किया जाता है यदि आप का उपयोग करते हैं -एमसॉफ्ट-फ्लोट विकल्प, और पास करें
लिंक करते समय जीसीसी का विकल्प।

-एकल-फ्लोट
-मडबल-फ्लोट
सिंगल- या डबल-सटीक फ़्लोटिंग-पॉइंट ऑपरेशंस के लिए कोड जेनरेट करें।
-मडबल-फ्लोट का तात्पर्य -एकल-फ्लोट.

-एमएससरल-एफपीयू
हार्डवेयर फ़्लोटिंग-पॉइंट यूनिट के लिए "sqrt" और "div" निर्देश उत्पन्न न करें।

-एमएफपीयू=नाम
फ्लोटिंग-पॉइंट यूनिट का प्रकार निर्दिष्ट करें। के लिए मान्य मान नाम रहे sp_lite (के बराबर
-एकल-फ्लोट -एमएससरल-एफपीयू), डीपी_लाइट (के बराबर -मडबल-फ्लोट -एमएससरल-एफपीयू),
sp_full (के बराबर -एकल-फ्लोट), और डीपी_पूर्ण (के बराबर -मडबल-फ्लोट).

-mxilinx-fpu
Xilinx PPC 405/440 पर फ्लोटिंग-पॉइंट यूनिट के लिए ऑप्टिमाइज़ेशन करें।

-मिमल्टीपल
-मनो-मल्टीपल
कोड उत्पन्न करें जो लोड एकाधिक शब्द निर्देशों का उपयोग करता है (उपयोग नहीं करता है) और
एकाधिक शब्द निर्देश संग्रहीत करें। ये निर्देश डिफ़ॉल्ट रूप से उत्पन्न होते हैं
पावर सिस्टम, और पावरपीसी सिस्टम पर उत्पन्न नहीं। उपयोग नहीं करो -मिमल्टीपल थोड़ा पर-
एंडियन पावरपीसी सिस्टम, चूंकि प्रोसेसर चालू होने पर वे निर्देश काम नहीं करते हैं
लिटिल-एंडियन मोड। पीपीसी740 और पीपीसी750 अपवाद हैं जो इन्हें अनुमति देते हैं
लिटिल-एंडियन मोड में निर्देश।

-मस्ट्रिंग
-मनो-स्ट्रिंग
लोड स्ट्रिंग निर्देशों और स्टोर का उपयोग करने वाला (उपयोग नहीं करता) कोड उत्पन्न करें
एकाधिक रजिस्टरों को सहेजने और छोटे ब्लॉक चालें करने के लिए स्ट्रिंग शब्द निर्देश। इन
निर्देश डिफ़ॉल्ट रूप से POWER सिस्टम पर उत्पन्न होते हैं, और PowerPC पर उत्पन्न नहीं होते हैं
सिस्टम उपयोग नहीं करो -मस्ट्रिंग छोटे-एंडियन पावरपीसी सिस्टम पर, क्योंकि उनसे
जब प्रोसेसर छोटे-एंडियन मोड में होता है तो निर्देश काम नहीं करते हैं। अपवाद
PPC740 और PPC750 हैं जो इन निर्देशों को लिटिल-एंडियन मोड में अनुमति देते हैं।

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

-मावॉइड-अनुक्रमित-पते
-मनो-बचें-अनुक्रमित-पते
कोड उत्पन्न करें जो अनुक्रमित लोड या स्टोर के उपयोग से बचने (बचाने) की कोशिश करता है
निर्देश। ये निर्देश Power6 प्रोसेसर पर प्रदर्शन जुर्माना लगा सकते हैं
कुछ स्थितियों में, जैसे कि 16M . को पार करने वाले बड़े सरणियों के माध्यम से कदम रखते समय
सीमा। Power6 और अक्षम को लक्षित करते समय यह विकल्प डिफ़ॉल्ट रूप से सक्षम होता है
अन्यथा।

-मफ्यूज्ड-मैड
-मनो-फ्यूज्ड-मैड
फ़्लोटिंग-पॉइंट का उपयोग करने वाला (उपयोग नहीं करने वाला) कोड उत्पन्न करें और जमा करें
निर्देश। ये निर्देश डिफ़ॉल्ट रूप से उत्पन्न होते हैं यदि हार्डवेयर फ़्लोटिंग पॉइंट
प्रयोग किया जाता है। मशीन पर निर्भर -मफ्यूज्ड-मैड विकल्प अब मशीन में मैप किया गया है-
स्वतंत्र -ffp-अनुबंध = तेज विकल्प, और -मनो-फ्यूज्ड-मैड को मैप किया जाता है
-ffp-अनुबंध = बंद.

-ममुल्ह्वा
-मनो-मुल्ह्वा
कोड उत्पन्न करें जो अर्ध-शब्द का उपयोग करता है (उपयोग नहीं करता है) गुणा और गुणा-संचय
आईबीएम 405, 440, 464 और 476 प्रोसेसर पर निर्देश। ये निर्देश हैं
उन प्रोसेसर को लक्षित करते समय डिफ़ॉल्ट रूप से उत्पन्न होता है।

-एमडीएलएमजेबी
-मनो-dlmzb
स्ट्रिंग-खोज का उपयोग करने वाला (उपयोग नहीं करने वाला) कोड उत्पन्न करें dlmzb आईबीएम पर निर्देश
405, 440, 464 और 476 प्रोसेसर। यह निर्देश डिफ़ॉल्ट रूप से तब उत्पन्न होता है जब
उन प्रोसेसर को लक्षित करना।

-मनो-बिट-संरेखण
-एमबिट-संरेखण
सिस्टम पर V.4 और एम्बेडेड पावरपीसी सिस्टम संरचनाओं और यूनियनों को बाध्य (करते) नहीं करते हैं
जिसमें बिट-फ़ील्ड होते हैं जिन्हें बिट-फ़ील्ड के आधार प्रकार से संरेखित किया जाता है।

उदाहरण के लिए, डिफ़ॉल्ट रूप से एक संरचना जिसमें 8 "अहस्ताक्षरित" बिट-फ़ील्ड के अलावा कुछ नहीं होता है
लंबाई 1 को 4-बाइट सीमा से जोड़ा गया है और इसका आकार 4 बाइट्स है। का उपयोग करके
-मनो-बिट-संरेखण, संरचना 1-बाइट सीमा से संरेखित है और आकार में 1 बाइट है।

-मनो-सख्त-संरेखण
-मस्ट्रिक्ट-संरेखण
सिस्टम पर V.4 और एम्बेडेड पावरपीसी सिस्टम यह नहीं मानते (करते हैं) कि असंरेखित मेमोरी
संदर्भ प्रणाली द्वारा नियंत्रित किया जाता है।

-मरिलोकेबल
-मनो-स्थानांतरणीय
कोड उत्पन्न करें जो एक स्थिर निष्पादन योग्य को a . में स्थानांतरित करने की अनुमति देता है (अनुमति नहीं देता है)
रन टाइम पर अलग पता। एक साधारण एम्बेडेड पावरपीसी सिस्टम लोडर चाहिए
".fixup" में सूचीबद्ध ".got2" और 4-बाइट स्थानों की संपूर्ण सामग्री को स्थानांतरित करें
अनुभाग, इस विकल्प द्वारा उत्पन्न 32-बिट पतों की एक तालिका। इसके लिए काम करने के लिए, सभी
एक साथ जुड़ी वस्तुओं को संकलित किया जाना चाहिए -मरिलोकेबल or -mrelocatable-lib.
-मरिलोकेबल कोड स्टैक को 8-बाइट सीमा पर संरेखित करता है।

-mrelocatable-lib
-mno-स्थानांतरित-lib
पसंद -मरिलोकेबल, -mrelocatable-lib स्थैतिक अनुमति देने के लिए ".fixup" अनुभाग उत्पन्न करता है
निष्पादन योग्य को रन टाइम पर स्थानांतरित किया जाना है, लेकिन -mrelocatable-lib का उपयोग नहीं करता है
का छोटा स्टैक संरेखण -मरिलोकेबल. के साथ संकलित वस्तुएं -mrelocatable-lib मई
के किसी भी संयोजन के साथ संकलित वस्तुओं से जुड़ा होना चाहिए -मरिलोकेबल विकल्प.

-मनो-टोकसी
-एमटीओसी
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर यह नहीं मानते (करते हैं) कि रजिस्टर 2 में शामिल है
कार्यक्रम में उपयोग किए गए पतों की ओर इशारा करते हुए एक वैश्विक क्षेत्र का सूचक।

-थोड़ा
-थोड़ा-एंडियन
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर प्रोसेसर के लिए कोड को थोड़ा-थोड़ा करके संकलित करें-
एंडियन मोड। NS -थोड़ा-एंडियन विकल्प के समान है -थोड़ा.

-मबिगो
-मबिग-एंडियन
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर प्रोसेसर के लिए बड़े पैमाने पर कोड संकलित करते हैं-
एंडियन मोड। NS -मबिग-एंडियन विकल्प के समान है -मबिगो.

-mगतिशील-नहीं-तस्वीर
डार्विन और मैक ओएस एक्स सिस्टम पर, कोड संकलित करें ताकि इसे स्थानांतरित नहीं किया जा सके, लेकिन वह
इसके बाहरी संदर्भ स्थानांतरित करने योग्य हैं। परिणामी कोड के लिए उपयुक्त है
अनुप्रयोग, लेकिन साझा पुस्तकालय नहीं।

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

- प्राथमिकता-प्रतिबंधित-इन्स =प्राथमिकता
यह विकल्प उस प्राथमिकता को नियंत्रित करता है जिसे डिस्पैच-स्लॉट प्रतिबंधित को सौंपा गया है
दूसरे शेड्यूलिंग पास के दौरान निर्देश। तर्क प्राथमिकता मान लेता है
0, 1या, 2 करने के लिए नहीं, उच्चतम, या दूसरी-उच्चतम (क्रमशः) प्राथमिकता निर्दिष्ट करने के लिए
प्रेषण-स्लॉट प्रतिबंधित निर्देश।

-मस्केड-महंगा-डिप =निर्भरता_प्रकार
यह विकल्प नियंत्रित करता है कि लक्ष्य के दौरान कौन सी निर्भरताएं महंगी मानी जाती हैं
निर्देश समयबद्धन। तर्क निर्भरता_प्रकार निम्नलिखित में से एक लेता है
मान:

नहीं कोई निर्भरता महंगी नहीं है।

सब सभी निर्भरताएं महंगी हैं।

true_store_to_load
स्टोर से लोड पर एक सच्ची निर्भरता महंगी है।

स्टोर_टू_लोड
स्टोर से लोड पर कोई निर्भरता महंगा है।

संख्या
कोई भी निर्भरता जिसके लिए विलंबता . से अधिक या उसके बराबर है संख्या महंगा है।

-मिन्सर्ट-शेड-एनओपीएस =योजना
यह विकल्प नियंत्रित करता है कि दूसरी शेड्यूलिंग के दौरान कौन सी NOP प्रविष्टि योजना का उपयोग किया जाता है
उत्तीर्ण। तर्क योजना निम्न में से एक मान लेता है:

नहीं एनओपी न डालें।

पैड एनओपी के साथ पैड किसी भी प्रेषण समूह जिसमें रिक्त इश्यू स्लॉट हैं, के अनुसार
अनुसूचक का समूहन।

पुन: समूह_सटीक
अलग-अलग समूहों में महंगे आश्रित इन्स को बाध्य करने के लिए एनओपी डालें। बिल्कुल डालें
अनुमान के अनुसार, एक नए समूह के लिए एक इंस को मजबूर करने के लिए जितनी जरूरत हो उतनी एनओपी
प्रोसेसर समूहन।

संख्या
अलग-अलग समूहों में महंगे आश्रित इन्स को बाध्य करने के लिए एनओपी डालें। डालने संख्या
एनओपी एक नए समूह के लिए एक इंस को मजबूर करने के लिए।

-एमकॉल-sysv
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर कॉलिंग सम्मेलनों का उपयोग करके कोड संकलित करते हैं जो
सिस्टम वी एप्लीकेशन बाइनरी इंटरफेस, पावरपीसी के मार्च 1995 के मसौदे का पालन करें
प्रोसेसर पूरक। यह तब तक डिफ़ॉल्ट है जब तक कि आपने GCC का उपयोग करके कॉन्फ़िगर नहीं किया है
पॉवरपीसी-*-ईबियाईक्स.

-mcall-sysv-eabi
-mcall-ईबी
दोनों निर्दिष्ट करें -एमकॉल-sysv और -मेबी विकल्प.

-mcall-sysv-noeabi
दोनों निर्दिष्ट करें -एमकॉल-sysv और -मनो-ईबी विकल्प.

-mcall-aixdesc
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर AIX ऑपरेटिंग सिस्टम के लिए कोड संकलित करें।

-मकॉल-लिनक्स
सिस्टम V.4 और एम्बेडेड PowerPC सिस्टम पर Linux-आधारित GNU के लिए कोड संकलित करें
प्रणाली।

-एमकॉल-फ्रीबीएसडी
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर फ्रीबीएसडी ऑपरेटिंग के लिए कोड संकलित करें
प्रणाली।

-एमकॉल-नेटबीएसडी
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर नेटबीएसडी ऑपरेटिंग के लिए कोड संकलित करें
प्रणाली।

-एमकॉल-ओपनबीएसडी
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर OpenBSD ऑपरेटिंग के लिए कोड संकलित करें
प्रणाली।

-मैक्स-स्ट्रक्चर-रिटर्न
स्मृति में सभी संरचनाएँ लौटाएँ (जैसा कि AIX ABI द्वारा निर्दिष्ट किया गया है)।

-msvr4-संरचना-वापसी
रजिस्टरों में 8 बाइट्स से छोटी रिटर्न संरचनाएँ (जैसा कि SVR4 ABI द्वारा निर्दिष्ट किया गया है)।

-माबी=अबी-प्रकार
वर्तमान ABI को किसी विशेष एक्सटेंशन के साथ बढ़ाएँ, या ऐसे एक्सटेंशन को हटा दें। वैध
मान हैं alivec, नो-altivec, spe, नो-स्पी, आईबीएमलॉन्गडबल, यानी लोंगडबल, योगिनी1,
योगिनी2.

-मबी = विशेष
वर्तमान ABI को SPE ABI एक्सटेंशन के साथ बढ़ाएँ। यह डिफ़ॉल्ट एबीआई नहीं बदलता है,
इसके बजाय यह वर्तमान एबीआई में एसपीई एबीआई एक्सटेंशन जोड़ता है।

-मबी = नो-स्पे
वर्तमान एबीआई के लिए बुक-ई एसपीई एबीआई एक्सटेंशन अक्षम करें।

-माबी = आईबीएमलोंगडबल
आईबीएम विस्तारित-सटीक लंबे डबल का उपयोग करने के लिए वर्तमान एबीआई को बदलें। यह एक पावरपीसी है
32-बिट SYSV ABI विकल्प।

-माबी = यानीईलॉन्गडबल
IEEE विस्तारित-सटीक लंबे डबल का उपयोग करने के लिए वर्तमान ABI को बदलें। यह एक पावरपीसी है
32-बिट लिनक्स एबीआई विकल्प।

-मबी = elfv1
ELFv1 ABI का उपयोग करने के लिए वर्तमान ABI बदलें। यह बिग-एंडियन के लिए डिफ़ॉल्ट एबीआई है
पावरपीसी 64-बिट लिनक्स। डिफ़ॉल्ट ABI को ओवरराइड करने के लिए विशेष सिस्टम समर्थन की आवश्यकता होती है और
शानदार तरीकों से विफल होने की संभावना है।

-मबी = elfv2
ELFv2 ABI का उपयोग करने के लिए वर्तमान ABI बदलें। यह छोटे के लिए डिफ़ॉल्ट ABI है-
एंडियन पावरपीसी 64-बिट लिनक्स। डिफ़ॉल्ट ABI को ओवरराइड करने के लिए विशेष सिस्टम की आवश्यकता होती है
समर्थन और शानदार तरीकों से विफल होने की संभावना है।

-प्रोटोटाइप
-मनो-प्रोटोटाइप
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर यह मान लिया जाता है कि सभी कॉल चर तर्क के लिए हैं
कार्यों को ठीक से प्रोटोटाइप किया जाता है। अन्यथा, कंपाइलर को एक निर्देश सम्मिलित करना होगा
कंडीशन कोड रजिस्टर के बिट 6 को सेट या क्लियर करने के लिए प्रत्येक गैर-प्रोटोटाइप कॉल से पहले
("सीआर") यह इंगित करने के लिए कि क्या फ़्लोटिंग-पॉइंट मान फ़्लोटिंग-पॉइंट में पारित किए गए हैं
यदि फ़ंक्शन चर तर्क लेता है तो रजिस्टर करता है। साथ में -प्रोटोटाइप, केवल कॉल
प्रोटोटाइप चर तर्क कार्यों के लिए बिट सेट या साफ़ करें।

-मसिम
एम्बेडेड पावरपीसी सिस्टम पर, मान लें कि स्टार्टअप मॉड्यूल कहा जाता है सिम-crt0.o और
कि मानक सी पुस्तकालय हैं libsim.a और libc.a. यह इसके लिए डिफ़ॉल्ट है
पॉवरपीसी-*-ईबीसिम विन्यास।

-एमएमवीएमई
एम्बेडेड पावरपीसी सिस्टम पर, मान लें कि स्टार्टअप मॉड्यूल कहा जाता है crt0.o और
मानक सी पुस्तकालय हैं libmvme.a और libc.a.

-पागल
एम्बेडेड पावरपीसी सिस्टम पर, मान लें कि स्टार्टअप मॉड्यूल कहा जाता है crt0.o और
मानक सी पुस्तकालय हैं libads.a और libc.a.

-मयेलोनाइफ
एम्बेडेड पावरपीसी सिस्टम पर, मान लें कि स्टार्टअप मॉड्यूल कहा जाता है crt0.o और
मानक सी पुस्तकालय हैं libyk.a और libc.a.

-एमवीएक्सवर्क्स
सिस्टम V.4 और एम्बेडेड PowerPC सिस्टम पर, निर्दिष्ट करें कि आप a . के लिए संकलन कर रहे हैं
वीएक्सवर्क्स सिस्टम।

-मेम्ब
एम्बेडेड पावरपीसी सिस्टम पर, इंगित करने के लिए ईएलएफ फ्लैग हेडर में "पीपीसी_ईएमबी" बिट सेट करें
कि ईएबीआई विस्तारित स्थानान्तरण का उपयोग किया जाता है।

-मेबी
-मनो-ईबी
सिस्टम पर V.4 और एम्बेडेड पावरपीसी सिस्टम एंबेडेड का पालन करते हैं (नहीं करते हैं)
एप्लीकेशन बाइनरी इंटरफेस (ईएबीआई), जो सिस्टम में संशोधनों का एक सेट है
V.4 विनिर्देशों। चुनना -मेबी इसका मतलब है कि स्टैक 8-बाइट से जुड़ा हुआ है
सीमा, एक फ़ंक्शन "__eabi" को EABI वातावरण स्थापित करने के लिए "मुख्य" से कहा जाता है,
और -एमएसडेटा विकल्प दो अलग-अलग छोटे डेटा को इंगित करने के लिए "r2" और "r13" दोनों का उपयोग कर सकता है
क्षेत्र। चुनना -मनो-ईबी इसका मतलब है कि स्टैक 16-बाइट सीमा से जुड़ा हुआ है, नहीं
EABI आरंभीकरण फ़ंक्शन को "मुख्य" से कहा जाता है, और -एमएसडेटा विकल्प केवल उपयोग करता है
"r13" एक छोटे से डेटा क्षेत्र को इंगित करने के लिए। NS -मेबी विकल्प डिफ़ॉल्ट रूप से चालू है यदि आप
इनमें से किसी एक का उपयोग करके जीसीसी को कॉन्फ़िगर किया गया है पावरपीसी*-*-ईएबी* विकल्प.

-एमएसडेटा = ईबीई
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर, छोटे इनिशियलाइज़्ड "कॉन्स्ट" ग्लोबल और
".sdata2" खंड में स्थिर डेटा, जिसे रजिस्टर "r2" द्वारा इंगित किया गया है। छोटा रखो
".sdata" खंड में आरंभिक गैर-"स्थिरांक" वैश्विक और स्थिर डेटा, जो है
रजिस्टर "r13" द्वारा इंगित किया गया। में छोटे अप्रारंभीकृत वैश्विक और स्थिर डेटा डालें
".sbss" खंड, जो ".sdata" खंड के निकट है। NS -एमएसडेटा = ईबीई विकल्प
के साथ असंगत है -मरिलोकेबल विकल्प। -एमएसडेटा = ईबीई विकल्प भी सेट करता है
-मेम्ब विकल्प.

-एमएसडेटा = sysv
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर, छोटे वैश्विक और स्थिर डेटा को इसमें रखें
".sdata" अनुभाग, जिसे रजिस्टर "r13" द्वारा इंगित किया गया है। छोटे को इनिशियलाइज़ करें
".sbss" अनुभाग में वैश्विक और स्थिर डेटा, जो ".sdata" के निकट है
अनुभाग। NS -एमएसडेटा = sysv विकल्प के साथ असंगत है -मरिलोकेबल विकल्प.

-एमएसडेटा = डिफ़ॉल्ट
-एमएसडेटा
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर, यदि -मेबी उपयोग किया जाता है, उसी कोड को संकलित करें
as -एमएसडेटा = ईबीई, अन्यथा कोड को उसी के समान संकलित करें -एमएसडेटा = sysv.

-एमएसडेटा = डेटा
सिस्टम V.4 और एम्बेडेड PowerPC सिस्टम पर, ".sdata" में छोटा वैश्विक डेटा डालें
अनुभाग। ".sbss" अनुभाग में छोटे अप्रारंभीकृत वैश्विक डेटा डालें। उपयोग नहीं करो
हालांकि छोटे डेटा को संबोधित करने के लिए "r13" पंजीकृत करें। यह डिफ़ॉल्ट व्यवहार है जब तक
अन्य -एमएसडेटा विकल्पों का प्रयोग किया जाता है।

-msdata=कोई नहीं
-मनो-एसडीटा
एम्बेडेड PowerPC सिस्टम पर, सभी आरंभिक वैश्विक और स्थिर डेटा को ".data" में डालें
अनुभाग, और ".bss" अनुभाग में सभी अप्रारंभीकृत डेटा।

-मब्लॉक-चाल-इनलाइन-सीमा =संख्या
सभी ब्लॉक चालों को इनलाइन करें (जैसे "memcpy" या संरचना प्रतियों के लिए कॉल) or . से कम
के बराबर संख्या बाइट्स। के लिए न्यूनतम मूल्य संख्या 32-बिट लक्ष्य और 32 . पर 64 बाइट्स है
64-बिट लक्ष्य पर बाइट्स। डिफ़ॉल्ट मान लक्ष्य-विशिष्ट है।

-G संख्या
एम्बेडेड पावरपीसी सिस्टम पर, वैश्विक और स्थिर आइटम को से कम या उसके बराबर रखें संख्या
सामान्य डेटा या बीएसएस अनुभाग के बजाय छोटे डेटा या बीएसएस अनुभागों में बाइट्स।
डिफ़ॉल्ट रूप से, संख्या है 8. द -G संख्या लिंकर को स्विच भी पास किया जाता है। सभी मॉड्यूल
उसी के साथ संकलित किया जाना चाहिए -G संख्या मूल्य.

-mregnames
-मनो-रेगनेम्स
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर रजिस्टर नामों का उत्सर्जन (नहीं) करते हैं
प्रतीकात्मक रूपों का उपयोग करके असेंबली भाषा आउटपुट।

-मलोंगकॉल
-मनो-लॉन्गकॉल
डिफ़ॉल्ट रूप से मान लें कि सभी कॉल बहुत दूर हैं ताकि लंबी और अधिक महंगी
कॉलिंग अनुक्रम की आवश्यकता है। 32 मेगाबाइट से अधिक की कॉल के लिए यह आवश्यक है
(33,554,432 बाइट्स) वर्तमान स्थान से। एक छोटी कॉल उत्पन्न होती है यदि
कंपाइलर जानता है कि कॉल इतनी दूर नहीं हो सकती है। इस सेटिंग को इसके द्वारा ओवरराइड किया जा सकता है
"शॉर्टकॉल" फ़ंक्शन विशेषता, या "#pragma . द्वारा लांगकॉल(0)"।

कुछ लिंकर्स आउट-ऑफ़-रेंज कॉल का पता लगाने और ग्लू कोड जनरेट करने में सक्षम हैं
मक्खी। इन प्रणालियों पर, लंबी कॉल अनावश्यक हैं और धीमी कोड उत्पन्न करती हैं। जैसा
इस लेखन में, AIX लिंकर ऐसा कर सकता है, जैसा कि PowerPC/64 के लिए GNU लिंकर कर सकता है। यह
इस सुविधा को 32-बिट पावरपीसी सिस्टम के लिए जीएनयू लिंकर में भी जोड़ने की योजना है।

डार्विन/पीपीसी सिस्टम पर, "#pragma longcall" "jbsr callee, L42", प्लस a उत्पन्न करता है शाखा
द्वीप (गोंद कोड)। दो लक्ष्य पते कैली और शाखा का प्रतिनिधित्व करते हैं
द्वीप। डार्विन/पीपीसी लिंकर पहले पते को प्राथमिकता देता है और "ब्ल कैली" उत्पन्न करता है
यदि पीपीसी "बीएल" निर्देश सीधे कैली तक पहुंचता है; अन्यथा, लिंकर
शाखा द्वीप को कॉल करने के लिए "bl L42" उत्पन्न करता है। शाखा द्वीप को से जोड़ा गया है
कॉलिंग फ़ंक्शन का शरीर; यह कैली के पूर्ण 32-बिट पते की गणना करता है और
उस पर कूदता है।

Mach-O (डार्विन) सिस्टम पर, यह विकल्प कंपाइलर एमिट को ग्लू के लिए निर्देशित करता है
हर सीधी कॉल, और डार्विन लिंकर यह तय करता है कि इसका उपयोग करना है या नहीं।

भविष्य में, जब लिंकर को पता हो, तो GCC लॉन्गकॉल विनिर्देशों को अनदेखा कर सकता है
गोंद उत्पन्न करें।

-एमटीएलएस-मार्कर
-मनो-टीएलएस-मार्कर
फ़ंक्शन को निर्दिष्ट करने वाले स्थानांतरण के साथ "__tls_get_addr" पर कॉल को चिह्नित करें (चिह्नित न करें)
तर्क। स्थानांतरण लिंकर को फ़ंक्शन कॉल को मज़बूती से संबद्ध करने की अनुमति देता है
टीएलएस अनुकूलन के लिए तर्क सेटअप निर्देश, जो बदले में जीसीसी को बेहतर करने की अनुमति देता है
अनुक्रम निर्धारित करें।

-पथ्रेड
के साथ मल्टीथ्रेडिंग के लिए समर्थन जोड़ता है pthreads पुस्तकालय। यह विकल्प इसके लिए फ़्लैग सेट करता है
प्रीप्रोसेसर और लिंकर दोनों।

-मरेसिप
-मनो-रेसिपी
यह विकल्प पारस्परिक अनुमान और पारस्परिक वर्गमूल अनुमान के उपयोग को सक्षम बनाता है
अतिरिक्त न्यूटन-रैफसन चरणों के साथ निर्देश के बजाय परिशुद्धता बढ़ाने के लिए
फ्लोटिंग-पॉइंट तर्कों के लिए डिवाइड या स्क्वायर रूट और डिवाइड करना। आपको उपयोग करना चाहिए
la -फफास्ट-गणित विकल्प का उपयोग करते समय -मरेसिप (या कम से कम -फनसेफ-गणित-अनुकूलन,
-परिमित-गणित-केवल, -फ्रेसिप्रोकल-गणित और -फनो-ट्रैपिंग-गणित) ध्यान दें कि जबकि
अनुक्रम का थ्रूपुट आम तौर पर गैर- के थ्रूपुट से अधिक होता है
पारस्परिक निर्देश, अनुक्रम की शुद्धता को 2 ulp . तक कम किया जा सकता है
(यानी 1.0 का व्युत्क्रम 0.99999994 के बराबर होता है) पारस्परिक वर्गमूल के लिए।

-मरेसिप =चुनना
यह विकल्प नियंत्रित करता है कि कौन से पारस्परिक अनुमान निर्देशों का उपयोग किया जा सकता है। चुनना एक
विकल्पों की अल्पविराम से अलग की गई सूची, जिसके पहले "!" विकल्प को उलटने के लिए:

सब सभी अनुमान निर्देश सक्षम करें।

चूक
डिफ़ॉल्ट निर्देशों को सक्षम करें, के बराबर -मरेसिप.

कोई नहीं
सभी अनुमान निर्देशों को अक्षम करें, के बराबर -मनो-रेसिपी.

div सिंगल और डबल दोनों के लिए पारस्परिक सन्निकटन निर्देश सक्षम करें
परिशुद्धता।

divf
एकल-सटीक पारस्परिक सन्निकटन निर्देश सक्षम करें।

डिवीडी
डबल-सटीक पारस्परिक सन्निकटन निर्देश सक्षम करें।

आरएसक्यूआरटी
एकल और . दोनों के लिए पारस्परिक वर्गमूल सन्निकटन निर्देश सक्षम करें
दोहरी सुनिश्चितता।

आरएसक्यूआरटीएफ
एकल-सटीक पारस्परिक वर्गमूल सन्निकटन निर्देश सक्षम करें।

आरएसक्यूआरटीडी
डबल-सटीक पारस्परिक वर्गमूल सन्निकटन निर्देश सक्षम करें।

इसलिए, उदाहरण के लिए, -mrecip=सभी,!rsqrtd सभी पारस्परिक अनुमानों को सक्षम करता है
निर्देश, "FRSQRTE", "XSRSQRTEDP", और "XVRSQRTEDP" निर्देशों को छोड़कर
जो डबल-सटीक पारस्परिक वर्गमूल गणनाओं को संभालते हैं।

-मरेसिप-सटीक
-मो-नुस्खा-सटीक
मान लें (मान न लें) कि पारस्परिक अनुमान निर्देश उच्चतर प्रदान करते हैं-
PowerPC ABI द्वारा अनिवार्य की तुलना में सटीक अनुमान। चुनना -एमसीपीयू = पावर6,
-एमसीपीयू = पावर7 or -एमसीपीयू = पावर8 स्वचालित रूप से चुनता है -मरेसिप-सटीक. जुड़वा-
सटीक वर्गमूल अनुमान निर्देश निम्न पर डिफ़ॉल्ट रूप से उत्पन्न नहीं होते हैं-
सटीक मशीनें, क्योंकि वे एक अनुमान प्रदान नहीं करते हैं जो तीन के बाद अभिसरण करता है
कदम।

-मवेक्लिबाबी=टाइप
बाहरी लाइब्रेरी का उपयोग करके इंट्रिनिक्स को वेक्टर करने के लिए उपयोग करने के लिए एबीआई प्रकार निर्दिष्ट करता है।
वर्तमान में समर्थित एकमात्र प्रकार है सामूहिक, जो आईबीएम के गणितीय का उपयोग करने के लिए निर्दिष्ट करता है
एक्सेलेरेशन सबसिस्टम (एमएएसएस) लाइब्रेरी बाहरी का उपयोग करके इंट्रिनिक्स को वेक्टर करने के लिए
पुस्तकालय। GCC वर्तमान में "acosd2", "acosf4", "acoshd2", "acoshf4",
"asind2", "asinf4", "asinhd2", "asinhf4", "atan2d2", "atan2f4", "atand2", "atanf4",
"atanhd2", "atanhf4", "cbrtd2", "cbrtf4", "cosd2", "cosf4", "coshd2", "coshf4",
"erfcd2", "erfcf4", "erfd2", "erff4", "exp2d2", "exp2f4", "expd2", "expf4", "expm1d2",
"expm1f4", "hypotd2", "hypotf4", "lgammad2", "lgammaf4", "log10d2", "log10f4",
"log1pd2", "log1pf4", "log2d2", "log2f4", "logd2", "logf4", "powd2", "powf4", "sind2",
"sinf4", "sinhd2", "sinhf4", "sqrtd2", "sqrtf4", "tand2", "tanf4", "tanhd2", और
power4 के लिए कोड जनरेट करते समय "tanhf7"। दोनों -फ़्री-वेक्टराइज़ और
-फनसेफ-गणित-अनुकूलन भी सक्षम होना चाहिए। MASS पुस्तकालय होना चाहिए
लिंक समय पर निर्दिष्ट।

-मफ़्रिज़
-मनो-फ़्रिज़
"फ़्रिज़" निर्देश उत्पन्न करें (उत्पन्न न करें) जब -फनसेफ-गणित-अनुकूलन
विकल्प का उपयोग फ़्लोटिंग-पॉइंट मानों की गोलाई को 64-बिट पूर्णांक में अनुकूलित करने के लिए किया जाता है और
फ्लोटिंग पॉइंट पर वापस। "फ़्रिज़" निर्देश समान मान वापस नहीं करता है यदि
एक पूर्णांक में फ़िट होने के लिए फ़्लोटिंग-पॉइंट संख्या बहुत बड़ी है।

-एमपॉइंटर्स-टू-नेस्टेड-फ़ंक्शंस
-मनो-पॉइंटर्स-टू-नेस्टेड-फ़ंक्शंस
स्थिर श्रृंखला रजिस्टर ("r11") को लोड करने के लिए कोड उत्पन्न करें (उत्पन्न न करें) जब
AIX और 64-बिट Linux सिस्टम पर एक पॉइंटर के माध्यम से कॉल करना जहां एक फ़ंक्शन पॉइंटर
एक 3-शब्द डिस्क्रिप्टर को इंगित करता है जो फ़ंक्शन पता देता है, टीओसी मान को लोड किया जाना है
रजिस्टर "आर 2", और स्थिर श्रृंखला मूल्य रजिस्टर "आर 11" में लोड किया जाना है। NS
-एमपॉइंटर्स-टू-नेस्टेड-फ़ंक्शंस डिफ़ॉल्ट रूप से चालू है। आप पॉइंटर्स के माध्यम से कॉल नहीं कर सकते
अन्य भाषाओं में संकलित कार्यों के लिए नेस्टेड फ़ंक्शन या पॉइंटर्स जो का उपयोग करते हैं
स्थिर श्रृंखला यदि आप उपयोग करते हैं -मनो-पॉइंटर्स-टू-नेस्टेड-फ़ंक्शंस.

-msave-toc-अप्रत्यक्ष
-मनो-सेव-टॉक-इनडायरेक्ट
आरक्षित स्टैक स्थान में TOC मान को सहेजने के लिए कोड उत्पन्न करें (उत्पन्न न करें)
फ़ंक्शन प्रस्तावना में यदि फ़ंक्शन AIX और 64-बिट पर एक पॉइंटर के माध्यम से कॉल करता है
लिनक्स सिस्टम। यदि प्रस्तावना में TOC मान सहेजा नहीं गया है, तो यह ठीक पहले सहेजा जाता है
सूचक के माध्यम से कॉल। NS -मनो-सेव-टॉक-इनडायरेक्ट विकल्प डिफ़ॉल्ट है।

-mcompat-संरेखण-पर्म
-मनो-संगत-संरेखण-पर्म
अधिकतम संरेखण के साथ संरचना मापदंडों को पारित करने के लिए कोड उत्पन्न करें (उत्पन्न न करें)
जीसीसी के पुराने संस्करणों के साथ संगतता के लिए 64 बिट्स का।

जीसीसी के पुराने संस्करण (4.9.0 से पहले) ने संरचना पैरामीटर को गलत तरीके से संरेखित नहीं किया
128-बिट सीमा पर जब उस संरचना में 128-बिट की आवश्यकता वाले सदस्य होते हैं
संरेखण। इसे जीसीसी के हाल के संस्करणों में ठीक किया गया है। इस विकल्प का उपयोग किया जा सकता है
पुराने संस्करणों के साथ संकलित कार्यों के साथ संगत कोड उत्पन्न करने के लिए
जीसीसी।

RSI -मनो-संगत-संरेखण-पर्म विकल्प डिफ़ॉल्ट है।

RX ऑप्शंस

ये कमांड-लाइन विकल्प RX लक्ष्यों के लिए परिभाषित हैं:

-एम64बिट-डबल्स
-एम32बिट-डबल्स
"डबल" डेटा प्रकार को 64 बिट बनाएं (-एम64बिट-डबल्स) या 32 बिट (-एम32बिट-डबल्स)
आकार में। डिफ़ॉल्ट है -एम32बिट-डबल्स. नोट RX फ्लोटिंग-पॉइंट हार्डवेयर केवल काम करता है
32-बिट मानों पर, यही कारण है कि डिफ़ॉल्ट है -एम32बिट-डबल्स.

-एफपीयू
-नोफपु
सक्षम करता है (-एफपीयू) या अक्षम (-नोफपु) RX फ्लोटिंग-पॉइंट हार्डवेयर का उपयोग। NS
डिफ़ॉल्ट RX600 श्रृंखला के लिए सक्षम है और RX200 श्रृंखला के लिए अक्षम है।

फ़्लोटिंग-पॉइंट निर्देश केवल 32-बिट फ़्लोटिंग-पॉइंट मानों के लिए उत्पन्न होते हैं,
हालाँकि, इसलिए FPU हार्डवेयर का उपयोग युगल के लिए नहीं किया जाता है यदि -एम64बिट-डबल्स विकल्प है
उपयोग किया गया।

नोट अगर -एफपीयू विकल्प सक्षम है तो -फनसेफ-गणित-अनुकूलन भी सक्षम है
खुद ब खुद। ऐसा इसलिए है क्योंकि RX FPU निर्देश स्वयं असुरक्षित हैं।

-एमसीपीयू =नाम
लक्षित किए जाने वाले RX CPU के प्रकार का चयन करता है। वर्तमान में तीन प्रकार समर्थित हैं,
सामान्य RX600 और RX200 श्रृंखला हार्डवेयर और विशिष्ट RX610 सी पी यू। डिफ़ॉल्ट है
RX600.

केवल अंतर RX600 और RX610 स्था कुए Le RX610 का समर्थन नहीं करता
"एमवीटीआईपीएल" निर्देश।

RSI RX200 श्रृंखला में हार्डवेयर फ़्लोटिंग-पॉइंट इकाई नहीं है और इसलिए -नोफपु सक्षम किया गया है
डिफ़ॉल्ट रूप से जब इस प्रकार का चयन किया जाता है।

-एमबिग-एंडियन-डेटा
-थोड़ा-एंडियन-डेटा
डेटा स्टोर करें (लेकिन कोड नहीं) बड़े-एंडियन प्रारूप में। डिफ़ॉल्ट है
-थोड़ा-एंडियन-डेटा, यानी डेटा को छोटे-एंडियन प्रारूप में संग्रहीत करने के लिए।

-मस्मॉल-डेटा-सीमा =N
वैश्विक और स्थिर चर के बाइट्स में अधिकतम आकार निर्दिष्ट करता है जिसे रखा जा सकता है
छोटे डेटा क्षेत्र में। छोटे डेटा क्षेत्र का उपयोग करने से छोटे और तेज़ हो सकते हैं
कोड, लेकिन क्षेत्र का आकार सीमित है और यह सुनिश्चित करने के लिए प्रोग्रामर पर निर्भर है
क्षेत्र अतिप्रवाह नहीं करता है। साथ ही जब छोटे डेटा क्षेत्र का उपयोग RX's में से किसी एक के लिए किया जाता है
रजिस्टर (आमतौर पर "r13") इस क्षेत्र की ओर इशारा करते हुए उपयोग के लिए आरक्षित है, इसलिए यह नहीं है
अब संकलक द्वारा उपयोग के लिए उपलब्ध है। इसका परिणाम धीमा और/या बड़ा हो सकता है
कोड अगर इस रजिस्टर में रखे जाने के बजाय चर को स्टैक पर धकेल दिया जाता है।

नोट, सामान्य चर (वेरिएबल जिन्हें प्रारंभ नहीं किया गया है) और स्थिरांक हैं
छोटे डेटा क्षेत्र में नहीं रखा गया है क्योंकि उन्हें अन्य अनुभागों को सौंपा गया है
आउटपुट निष्पादन योग्य।

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

-मसिम
-मनो-सिम
सिम्युलेटर रनटाइम का उपयोग करें। डिफ़ॉल्ट रूप से libgloss बोर्ड-विशिष्ट रनटाइम का उपयोग करना है।

-mas100-वाक्यविन्यास
-mno-as100-वाक्यविन्यास
असेंबलर आउटपुट उत्पन्न करते समय एक सिंटैक्स का उपयोग करें जो रेनेसास के AS100 . के साथ संगत हो
असेंबलर। इस सिंटैक्स को GAS असेंबलर द्वारा भी नियंत्रित किया जा सकता है, लेकिन इसमें कुछ है
प्रतिबंध इसलिए यह डिफ़ॉल्ट रूप से उत्पन्न नहीं होता है।

-एमएमएक्स-स्थिर-आकार =N
बाइट्स में अधिकतम आकार निर्दिष्ट करता है, जो एक स्थिरांक के रूप में उपयोग किया जा सकता है
एक आरएक्स निर्देश। हालांकि RX निर्देश सेट 4 . तक के स्थिरांक की अनुमति देता है
निर्देशों में उपयोग की जाने वाली लंबाई में बाइट्स, लंबा मान लंबे समय के बराबर होता है
निर्देश। इस प्रकार कुछ परिस्थितियों में के आकार को सीमित करना फायदेमंद हो सकता है
स्थिरांक जो निर्देशों में उपयोग किए जाते हैं। इसके बजाय जो स्थिरांक बहुत बड़े हैं वे हैं
एक निरंतर पूल में रखा गया है और रजिस्टर अप्रत्यक्ष के माध्यम से संदर्भित किया गया है।

महत्व N 0 और 4 के बीच हो सकता है। 0 (डिफ़ॉल्ट) या 4 के मान का अर्थ है कि
किसी भी आकार के स्थिरांक की अनुमति है।

-मेरेलैक्स
लिंकर छूट सक्षम करें। लिंकर छूट एक प्रक्रिया है जिसके द्वारा लिंकर प्रयास करता है
विभिन्न निर्देशों के छोटे संस्करणों को ढूंढकर प्रोग्राम के आकार को कम करने के लिए।
डिफ़ॉल्ट रूप से अक्षम

-मिंट-रजिस्टर=N
फास्ट इंटरप्ट हैंडलर फ़ंक्शन के लिए आरक्षित करने के लिए रजिस्टरों की संख्या निर्दिष्ट करें। NS
मूल्य N 0 और 4 के बीच हो सकता है। 1 के मान का अर्थ है कि रजिस्टर "r13" आरक्षित है
फास्ट इंटरप्ट हैंडलर के अनन्य उपयोग के लिए। 2 भंडार "r13" और . का मान
"आर 12"। 3 भंडार "r13", "r12" और "r11" का मान, और 4 भंडार "r13" का मान
"आर 10" के माध्यम से। 0 का मान, डिफ़ॉल्ट, कोई रजिस्टर आरक्षित नहीं करता है।

-msave-ac-in-interrupts
निर्दिष्ट करता है कि इंटरप्ट हैंडलर फ़ंक्शंस को संचायक रजिस्टर को संरक्षित करना चाहिए।
यह केवल तभी आवश्यक है जब सामान्य कोड संचायक रजिस्टर का उपयोग कर सकता है, उदाहरण के लिए
क्योंकि यह 64-बिट गुणन करता है। डिफ़ॉल्ट संचायक को अनदेखा करना है
क्योंकि यह इंटरप्ट हैंडलर को तेज बनाता है।

-एमपीआईडी
-मनो-पिडो
स्थिति स्वतंत्र डेटा की पीढ़ी को सक्षम करता है। किसी भी एक्सेस को सक्षम करने पर
निरंतर डेटा एक रजिस्टर में रखे गए आधार पते से ऑफसेट के माध्यम से किया जाता है। इस
निरंतर डेटा के स्थान को बिना आवश्यकता के रन टाइम पर निर्धारित करने की अनुमति देता है
निष्पादन योग्य को स्थानांतरित किया जाना है, जो कि तंग के साथ एम्बेडेड अनुप्रयोगों के लिए एक लाभ है
स्मृति बाधाएं। संशोधित किया जा सकने वाला डेटा इस विकल्प से प्रभावित नहीं होता है।

ध्यान दें, इस सुविधा का उपयोग करने से एक रजिस्टर सुरक्षित रहता है, आमतौर पर "r13", स्थिर डेटा के लिए
आधार पता। इसका परिणाम धीमा और/या बड़ा कोड हो सकता है, विशेष रूप से जटिल में
कार्य करता है.

स्थिर डेटाबेस पता रखने के लिए चुना गया वास्तविक रजिस्टर इस बात पर निर्भर करता है कि क्या
la -एमस्मॉल-डेटा-लिमिट और / या -मिंट-रजिस्टर कमांड-लाइन विकल्प सक्षम हैं।
रजिस्टर "r13" से शुरू होकर नीचे की ओर बढ़ते हुए, रजिस्टरों को पहले आवंटित किया जाता है
की आवश्यकताओं को पूरा करने के लिए -मिंट-रजिस्टर, तो -एमपीआईडी और अंत में
-एमस्मॉल-डेटा-लिमिट. इस प्रकार छोटे डेटा क्षेत्र रजिस्टर के लिए "r8" होना संभव है
अगर दोनों -मिंट-रजिस्टर=4 और -एमपीआईडी कमांड लाइन पर निर्दिष्ट हैं।

डिफ़ॉल्ट रूप से यह सुविधा सक्षम नहीं है। डिफ़ॉल्ट को के माध्यम से पुनर्स्थापित किया जा सकता है -मनो-पिडो
कमांड लाइन विकल्प।

-मनो-चेतावनी-एकाधिक-तेज़-व्यवधान
-मवार्न-मल्टीपल-फास्ट-इंटरप्ट
GCC को एक से अधिक तेज़ व्यवधान मिलने पर चेतावनी संदेश जारी करने से रोकता है
हैंडलर जब यह एक फ़ाइल संकलित कर रहा है। डिफ़ॉल्ट प्रत्येक अतिरिक्त के लिए चेतावनी जारी करना है
फास्ट इंटरप्ट हैंडलर मिला, क्योंकि आरएक्स केवल एक ऐसे इंटरप्ट का समर्थन करता है।

नोट: सामान्य जीसीसी कमांड लाइन विकल्प -फिक्स्ड-REG RX के लिए विशेष महत्व है
पोर्ट जब "इंटरप्ट" फ़ंक्शन विशेषता के साथ प्रयोग किया जाता है। यह विशेषता इंगित करती है a
फास्ट इंटरप्ट को संसाधित करने के उद्देश्य से फ़ंक्शन। जीसीसी सुनिश्चित करता है कि वह केवल रजिस्टरों का उपयोग करता है
"r10", "r11", "r12" और/या "r13" और केवल बशर्ते कि इसका सामान्य उपयोग
संबंधित रजिस्टरों को के माध्यम से प्रतिबंधित कर दिया गया है -फिक्स्ड-REG or -मिंट-रजिस्टर
कमांड लाइन विकल्प।

एस / 390 और जेड सीरीज ऑप्शंस

ये हैं -m S/390 और zSeries आर्किटेक्चर के लिए परिभाषित विकल्प।

-महार्ड-फ्लोट
-एमसॉफ्ट-फ्लोट
फ़्लोटिंग के लिए हार्डवेयर फ़्लोटिंग-पॉइंट निर्देशों और रजिस्टरों का उपयोग करें (उपयोग न करें)-
बिंदु संचालन। कब -एमसॉफ्ट-फ्लोट निर्दिष्ट है, में कार्य करता है libgcc.a आदत है
फ्लोटिंग-पॉइंट ऑपरेशन करें। कब -महार्ड-फ्लोट निर्दिष्ट है, संकलक
आईईईई फ्लोटिंग-पॉइंट निर्देश उत्पन्न करता है। यह डिफ़ॉल्ट है।

-महार्ड-डीएफपी
-मनो-हार्ड-डीएफपी
दशमलव के लिए हार्डवेयर दशमलव-अस्थायी-बिंदु निर्देशों का उपयोग करें (उपयोग न करें)-
फ्लोटिंग-पॉइंट ऑपरेशन। कब -मनो-हार्ड-डीएफपी निर्दिष्ट है, में कार्य करता है libgcc.a रहे
दशमलव-अस्थायी-बिंदु संचालन करने के लिए उपयोग किया जाता है। कब -महार्ड-डीएफपी निर्दिष्ट है,
कंपाइलर दशमलव-फ्लोटिंग-पॉइंट हार्डवेयर निर्देश उत्पन्न करता है। यह डिफ़ॉल्ट है
एसटी -मार्च = z9-ईसी या उच्चतर.

-मलॉन्ग-डबल-64
-मलॉन्ग-डबल-128
ये स्विच "लॉन्ग डबल" प्रकार के आकार को नियंत्रित करते हैं। 64 बिट का आकार बनाता है
"लॉन्ग डबल" टाइप "डबल" टाइप के बराबर है। यह डिफ़ॉल्ट है।

-एमबैकचेन
-मनो-बैकचेन
कॉलर के फ्रेम के पते को बैकचैन पॉइंटर के रूप में स्टोर करें (स्टोर न करें)
कैली का स्टैक फ्रेम। ऐसे टूल का उपयोग करके डिबगिंग की अनुमति देने के लिए बैकचेन की आवश्यकता हो सकती है जो
DWARF 2 कॉल फ्रेम जानकारी को नहीं समझते हैं। कब -मनो-पैक-स्टैक में है
प्रभाव, बैकचैन पॉइंटर को स्टैक फ्रेम के नीचे संग्रहीत किया जाता है; कब
-पैक्ड-स्टैक प्रभाव में है, बैकचेन को के सबसे ऊपरी शब्द में रखा गया है
96/160 बाइट रजिस्टर सेव एरिया।

सामान्य तौर पर, कोड संकलित किया गया -एमबैकचेन के साथ संकलित कोड के साथ कॉल-संगत है
-एमएमओ-बैकचेन; हालाँकि, डिबगिंग उद्देश्यों के लिए बैकचेन के उपयोग के लिए आमतौर पर आवश्यकता होती है
कि संपूर्ण बाइनरी के साथ बनाया गया है -एमबैकचेन. ध्यान दें कि का संयोजन
-एमबैकचेन, -पैक्ड-स्टैक और -महार्ड-फ्लोट समर्थित नहीं है। बनाने के लिए
लिनक्स कर्नेल उपयोग -एमसॉफ्ट-फ्लोट.

डिफ़ॉल्ट बैकचेन को बनाए नहीं रखना है।

-पैक्ड-स्टैक
-मनो-पैक-स्टैक
पैक्ड स्टैक लेआउट का उपयोग करें (उपयोग न करें)। कब -मनो-पैक-स्टैक निर्दिष्ट है,
कंपाइलर 96/160 बाइट रजिस्टर सेव एरिया के सभी क्षेत्रों का उपयोग केवल उनके लिए करता है
डिफ़ॉल्ट उद्देश्य; अप्रयुक्त फ़ील्ड अभी भी स्टैक स्पेस लेते हैं। कब -पैक्ड-स्टैक is
निर्दिष्ट, रजिस्टर सेव स्लॉट रजिस्टर सेव के शीर्ष पर घनी रूप से पैक किए गए हैं
क्षेत्र; अप्रयुक्त स्थान का अन्य उद्देश्यों के लिए पुन: उपयोग किया जाता है, जिससे अधिक कुशल उपयोग की अनुमति मिलती है
उपलब्ध स्टैक स्थान। हालाँकि, जब -एमबैकचेन प्रभाव में भी है, सर्वोच्च
सेव एरिया का शब्द हमेशा बैकचेन और रिटर्न एड्रेस को स्टोर करने के लिए उपयोग किया जाता है
रजिस्टर हमेशा बैकचेन के नीचे दो शब्द सहेजा जाता है।

जब तक स्टैक फ्रेम बैकचेन का उपयोग नहीं किया जाता है, तब तक कोड उत्पन्न होता है -पैक्ड-स्टैक
के साथ उत्पन्न कोड के साथ कॉल-संगत है -मनो-पैक-स्टैक. ध्यान दें कि कुछ गैर-FSF
S/2.95 या zSeries जनरेटेड कोड के लिए GCC 390 का विमोचन जो स्टैक फ्रेम का उपयोग करता है
केवल डिबगिंग उद्देश्यों के लिए नहीं, रन टाइम पर बैकचेन। ऐसा कोड कॉल नहीं है-
के साथ संकलित कोड के साथ संगत -पैक्ड-स्टैक. यह भी ध्यान दें कि का संयोजन
-एमबैकचेन, -पैक्ड-स्टैक और -महार्ड-फ्लोट समर्थित नहीं है। बनाने के लिए
लिनक्स कर्नेल उपयोग -एमसॉफ्ट-फ्लोट.

डिफ़ॉल्ट रूप से पैक्ड स्टैक लेआउट का उपयोग नहीं करना है।

-एमएसस्मॉल-निष्पादन
-मनो-छोटा-निष्पादन
सबरूटीन करने के लिए "ब्रा" निर्देश का उपयोग करके कोड उत्पन्न करें (या उत्पन्न न करें)
कॉल। यह केवल तभी मज़बूती से काम करता है जब कुल निष्पादन योग्य आकार 64k से अधिक न हो।
डिफ़ॉल्ट इसके बजाय "बसर" निर्देश का उपयोग करना है, जिसमें यह नहीं है
सीमा।

-एम 64
-एम 31
. -एम 31 निर्दिष्ट है, S/390 ABI के लिए GNU/Linux के अनुरूप कोड जनरेट करें। कब
-एम 64 निर्दिष्ट है, zSeries ABI के लिए GNU/Linux के अनुरूप कोड जनरेट करें। इस
जीसीसी को विशेष रूप से 64-बिट निर्देश उत्पन्न करने की अनुमति देता है। के लिए s390 लक्ष्य,
डिफ़ॉल्ट है -एम 31, जबकि s390x के लिए डिफ़ॉल्ट लक्ष्य -एम 64.

-मज़ार्च
-मेसा
. -मज़ार्च निर्दिष्ट है, पर उपलब्ध निर्देशों का उपयोग करके कोड जनरेट करें
जेड/आर्किटेक्चर। कब -मेसा निर्दिष्ट है, निर्देशों का उपयोग करके कोड जनरेट करें
ईएसए/390 पर उपलब्ध है। ध्यान दें कि -मेसा के साथ संभव नहीं है -एम 64. उत्पन्न करते समय
एस/390 एबीआई के लिए जीएनयू/लिनक्स के अनुरूप कोड, डिफ़ॉल्ट है -मेसा. उत्पन्न करते समय
zSeries ABI के लिए GNU/Linux के अनुरूप कोड, डिफ़ॉल्ट है -मज़ार्च.

-एमएमवीसीएल
-मनो-एमवीसीएल
ब्लॉक करने के लिए "mvcle" निर्देश का उपयोग करके कोड उत्पन्न करें (या उत्पन्न न करें)
चलता है। कब -मनो-एमवीसीएल निर्दिष्ट है, इसके बजाय "एमवीसी" लूप का उपयोग करें। यह डिफ़ॉल्ट है
जब तक आकार के लिए अनुकूलन नहीं होता।

-एमडीबग
-मनो-डीबग
संकलन करते समय अतिरिक्त डीबग जानकारी प्रिंट करें (या प्रिंट न करें)। डिफ़ॉल्ट है
डीबग जानकारी मुद्रित नहीं करने के लिए।

-मार्च=सीपीयू प्रकार
कोड जनरेट करें जो चालू रहता है सीपीयू प्रकार, जो एक का प्रतिनिधित्व करने वाली प्रणाली का नाम है a
कुछ प्रोसेसर प्रकार। के लिए संभावित मान सीपीयू प्रकार रहे g5, g6, z900, z990, z9-109,
z9-ईसी, z10, z196, zEC12, तथा z13. निर्देशों का उपयोग करते हुए कोड जनरेट करते समय
z/आर्किटेक्चर पर उपलब्ध है, डिफ़ॉल्ट है -मार्च = z900. अन्यथा, डिफ़ॉल्ट है
-मार्च=g5.

-मट्यून =सीपीयू प्रकार
ट्यून टू सीपीयू प्रकार उत्पन्न कोड के बारे में लागू सब कुछ, ABI को छोड़कर
और उपलब्ध निर्देशों का सेट। की सूची सीपीयू प्रकार मान for . के समान है
मार्च. डिफ़ॉल्ट वह मान है जिसका उपयोग किया जाता है मार्च.

-एमटीपीएफ-ट्रेस
-एमनो-टीपीएफ-ट्रेस
रूटीन का पता लगाने के लिए टीपीएफ ओएस विशिष्ट शाखाओं में जोड़ने वाला (जोड़ता नहीं) कोड उत्पन्न करें
ऑपरेटिंग सिस्टम में। यह विकल्प डिफ़ॉल्ट रूप से बंद है, यहां तक ​​कि इसके लिए संकलन करते समय भी
टीपीएफ ओएस।

-मफ्यूज्ड-मैड
-मनो-फ्यूज्ड-मैड
फ़्लोटिंग-पॉइंट का उपयोग करने वाला (उपयोग नहीं करने वाला) कोड उत्पन्न करें और जमा करें
निर्देश। ये निर्देश डिफ़ॉल्ट रूप से उत्पन्न होते हैं यदि हार्डवेयर फ़्लोटिंग पॉइंट
प्रयोग किया जाता है।

-मवार्न-फ्रेमसाइज =ढांचे का आकर
यदि वर्तमान फ़ंक्शन दिए गए फ़्रेम आकार से अधिक है, तो चेतावनी दें। क्योंकि यह है
एक संकलन-समय की जाँच करें कि प्रोग्राम के चलने पर इसे वास्तविक समस्या होने की आवश्यकता नहीं है। यह
उन कार्यों की पहचान करने का इरादा है जो संभवतः स्टैक ओवरफ़्लो का कारण बनते हैं। यह है
सीमित स्टैक आकार जैसे लिनक्स कर्नेल वाले वातावरण में उपयोग के लिए उपयोगी।

-मवार्न-डायनामिकस्टैक
यदि फ़ंक्शन "एलोका" कहता है या गतिशील रूप से आकार वाले सरणी का उपयोग करता है तो एक चेतावनी उत्सर्जित करें। इस
आम तौर पर सीमित स्टैक आकार के साथ एक बुरा विचार है।

-मस्टैक-गार्ड =ढेर रक्षक
-मस्टैक-आकार =ढेर-आकार
यदि ये विकल्प प्रदान किए जाते हैं तो S/390 बैक एंड में अतिरिक्त निर्देश जारी करता है
फ़ंक्शन प्रस्तावना जो एक जाल को ट्रिगर करती है यदि स्टैक का आकार है ढेर रक्षक के ऊपर बाइट्स
ढेर-आकार (याद रखें कि S/390 पर स्टैक नीचे की ओर बढ़ता है)। अगर ढेर रक्षक
विकल्प को संकलित के फ्रेम आकार से 2 की सबसे छोटी शक्ति को छोड़ दिया जाता है
समारोह चुना जाता है। इन विकल्पों का उपयोग डिबगिंग स्टैक में मदद करने के लिए किया जाता है
अतिप्रवाह समस्याएं। अतिरिक्त उत्सर्जित कोड केवल थोड़ा उपरि का कारण बनता है और
इसलिए अधिक प्रदर्शन के बिना उत्पादन जैसी प्रणालियों में भी इस्तेमाल किया जा सकता है
निम्नीकरण। दिए गए मान 2 और की सटीक घात होने चाहिए ढेर-आकार होना ही पड़ेगा
से अधिक से अधिक ढेर रक्षक 64k से अधिक के बिना। अतिरिक्त कुशल होने के लिए
कोड यह धारणा बनाता है कि स्टैक मान के साथ संरेखित पते पर शुरू होता है
के द्वारा दिया गया ढेर-आकारढेर रक्षक विकल्प का उपयोग केवल के संयोजन के साथ किया जा सकता है
ढेर-आकार.

-महोटपैच=पूर्व-आधा शब्द,पोस्ट हाफवर्ड्स
यदि हॉटपैच विकल्प सक्षम है, तो "हॉट-पैचिंग" फ़ंक्शन प्रस्तावना के लिए उत्पन्न होता है
संकलन इकाई में सभी कार्य। funtion लेबल दिए गए के साथ जुड़ा हुआ है
दो-बाइट एनओपी निर्देशों की संख्या (पूर्व-आधा शब्द, अधिकतम 1000000)। के बाद
लेबल, 2 * पोस्ट हाफवर्ड्स निर्देशों की तरह सबसे बड़े एनओपी का उपयोग करके बाइट्स को जोड़ा जाता है
वास्तुकला अनुमति देता है (अधिकतम 1000000)।

यदि दोनों तर्क शून्य हैं, तो हॉटपैचिंग अक्षम है।

इस विकल्प को "हॉटपैच" विशेषता के साथ अलग-अलग कार्यों के लिए ओवरराइड किया जा सकता है।

स्कोर ऑप्शंस

इन विकल्पों को स्कोर कार्यान्वयन के लिए परिभाषित किया गया है:

-मेब
बिग-एंडियन मोड के लिए कोड संकलित करें। यह डिफ़ॉल्ट है।

-मेले
लिटिल-एंडियन मोड के लिए कोड संकलित करें।

-मन्हव्लूप
"बीसीएनजेड" निर्देशों की पीढ़ी को अक्षम करें।

-मुल्स
असंरेखित लोड और स्टोर निर्देशों की पीढ़ी को सक्षम करें।

-एमएमएसी
गुणन-संचय निर्देशों के उपयोग को सक्षम करें। डिफ़ॉल्ट रूप से अक्षम।

-एमएसकोर5
SCORE5 को लक्ष्य आर्किटेक्चर के रूप में निर्दिष्ट करें।

-मस्कोर5यू
लक्ष्य आर्किटेक्चर का SCORE5U निर्दिष्ट करें।

-एमएसकोर7
SCORE7 को लक्ष्य आर्किटेक्चर के रूप में निर्दिष्ट करें। यह डिफ़ॉल्ट है।

-एमएसकोर7डी
SCORE7D को लक्ष्य आर्किटेक्चर के रूप में निर्दिष्ट करें।

SH ऑप्शंस

इन -m एसएच कार्यान्वयन के लिए विकल्पों को परिभाषित किया गया है:

-एम 1 SH1 के लिए कोड जनरेट करें।

-एम 2 SH2 के लिए कोड जनरेट करें।

-एम2ई
SH2e के लिए कोड जनरेट करें।

-एम2ए-नोफपु
FPU के बिना SH2a के लिए, या SH2a-FPU के लिए इस तरह से कोड जेनरेट करें कि
फ्लोटिंग-पॉइंट यूनिट का उपयोग नहीं किया जाता है।

-m2a-एकल-केवल
SH2a-FPU के लिए कोड जेनरेट करें, ताकि कोई डबल-सटीक फ़्लोटिंग-पॉइंट न हो
संचालन का उपयोग किया जाता है।

-m2a-एकल
SH2a-FPU के लिए कोड जेनरेट करें, यह मानते हुए कि फ्लोटिंग-पॉइंट यूनिट एकल-सटीक है
डिफ़ॉल्ट रूप से मोड।

-एम2ए
SH2a-FPU के लिए कोड जेनरेट करें, यह मानते हुए कि फ्लोटिंग-पॉइंट यूनिट डबल-सटीक है
डिफ़ॉल्ट रूप से मोड।

-एम 3 SH3 के लिए कोड जनरेट करें।

-एम3ई
SH3e के लिए कोड जनरेट करें।

-एम4-नोफपु
फ्लोटिंग-पॉइंट यूनिट के बिना SH4 के लिए कोड जनरेट करें।

-m4-एकल-केवल
SH4 के लिए एक फ्लोटिंग-पॉइंट यूनिट के साथ कोड जेनरेट करें जो केवल सिंगल का समर्थन करता है-
सटीक अंकगणित।

-एम 4-एकल
फ्लोटिंग-पॉइंट यूनिट एकल-सटीक मोड में है, यह मानते हुए SH4 के लिए कोड जेनरेट करें
डिफ़ॉल्ट रूप से

-एम 4 SH4 के लिए कोड जनरेट करें।

-एम4-100
SH4-100 के लिए कोड जनरेट करें।

-एम4-100-नोफ़पू
SH4-100 के लिए इस तरह से कोड जेनरेट करें कि फ्लोटिंग-पॉइंट यूनिट का उपयोग न हो।

-एम4-100-एकल
SH4-100 के लिए कोड जनरेट करें यह मानते हुए कि फ्लोटिंग-पॉइंट यूनिट एकल-सटीक मोड में है
डिफ़ॉल्ट रूप से

-m4-100-एकल-केवल
SH4-100 के लिए इस तरह से कोड जेनरेट करें कि कोई डबल-सटीक फ़्लोटिंग-पॉइंट न हो
संचालन का उपयोग किया जाता है।

-एम4-200
SH4-200 के लिए कोड जनरेट करें।

-एम4-200-नोफ़पू
SH4-200 के लिए इस तरह से कोड जेनरेट करें कि फ्लोटिंग-पॉइंट यूनिट न हो
उपयोग किया गया।

-एम4-200-एकल
SH4-200 के लिए कोड जनरेट करें यह मानते हुए कि फ्लोटिंग-पॉइंट यूनिट एकल-सटीक मोड में है
डिफ़ॉल्ट रूप से

-m4-200-एकल-केवल
SH4-200 के लिए इस तरह से कोड जेनरेट करें कि कोई डबल-सटीक फ़्लोटिंग-पॉइंट न हो
संचालन का उपयोग किया जाता है।

-एम4-300
SH4-300 के लिए कोड जनरेट करें।

-एम4-300-नोफ़पू
SH4-300 के लिए इस तरह से कोड जेनरेट करें कि फ्लोटिंग-पॉइंट यूनिट न हो
उपयोग किया गया।

-एम4-300-एकल
SH4-300 के लिए इस तरह से कोड जेनरेट करें कि कोई डबल-सटीक फ़्लोटिंग-पॉइंट न हो
संचालन का उपयोग किया जाता है।

-m4-300-एकल-केवल
SH4-300 के लिए इस तरह से कोड जेनरेट करें कि कोई डबल-सटीक फ़्लोटिंग-पॉइंट न हो
संचालन का उपयोग किया जाता है।

-एम4-340
SH4-340 के लिए कोड जनरेट करें (कोई MMU नहीं, कोई FPU नहीं)।

-एम4-500
SH4-500 के लिए कोड जनरेट करें (कोई FPU नहीं)। गुजरता -इसा=sh4-nofpu असेंबलर को।

-एम4ए-नोफपु
SH4al-dsp के लिए या SH4a के लिए इस तरह से कोड जेनरेट करें कि फ्लोटिंग-पॉइंट
इकाई का उपयोग नहीं किया जाता है।

-m4a-एकल-केवल
SH4a के लिए कोड जेनरेट करें, ताकि कोई डबल-सटीक फ़्लोटिंग-पॉइंट न हो
संचालन का उपयोग किया जाता है।

-m4a-एकल
SH4a के लिए कोड जनरेट करें यह मानते हुए कि फ्लोटिंग-पॉइंट इकाई एकल-सटीक है
डिफ़ॉल्ट रूप से मोड।

-एम4ए
SH4a के लिए कोड जनरेट करें।

-m4al
के समान -एम4ए-नोफपु, सिवाय इसके कि यह परोक्ष रूप से गुजरता है -डीएसपी असेंबलर को। जीसीसी
इस समय कोई डीएसपी निर्देश उत्पन्न नहीं करता है।

-एम5-32मीडिया
SHmedia के लिए 32-बिट कोड जनरेट करें।

-एम5-32मीडिया-नोफपु
SHmedia के लिए 32-बिट कोड इस तरह से जेनरेट करें कि फ्लोटिंग-पॉइंट यूनिट न हो
उपयोग किया गया।

-एम5-64मीडिया
SHmedia के लिए 64-बिट कोड जनरेट करें।

-एम5-64मीडिया-नोफपु
SHmedia के लिए 64-बिट कोड इस तरह से जेनरेट करें कि फ्लोटिंग-पॉइंट यूनिट न हो
उपयोग किया गया।

-एम5-कॉम्पैक्ट
SHcompact के लिए कोड जनरेट करें।

-एम5-कॉम्पैक्ट-नोफपु
SHcompact के लिए इस तरह से कोड जेनरेट करें कि फ्लोटिंग-पॉइंट यूनिट का उपयोग न हो।

-एमबी बड़े-एंडियन मोड में प्रोसेसर के लिए कोड संकलित करें।

-एमएल प्रोसेसर के लिए छोटे-एंडियन मोड में कोड संकलित करें।

-mdalign
64-बिट सीमाओं पर युगल संरेखित करें। ध्यान दें कि यह कॉलिंग सम्मेलनों को बदलता है,
और इस प्रकार मानक सी पुस्तकालय से कुछ कार्य तब तक काम नहीं करते जब तक आप पुन: संकलित नहीं करते
इसके साथ पहले -mdalign.

-मेरेलैक्स
जब संभव हो, लिंक समय पर कुछ पता संदर्भों को छोटा करें; लिंकर विकल्प का उपयोग करता है
-आराम करें.

-मबिगटेबल
"स्विच" तालिकाओं में 32-बिट ऑफ़सेट का उपयोग करें। डिफ़ॉल्ट 16-बिट ऑफ़सेट का उपयोग करना है।

-एमबीटॉप्स
SH2A पर बिट मैनिपुलेशन निर्देशों के उपयोग को सक्षम करें।

-एमएफमोवडी
निर्देश "fmovd" के उपयोग को सक्षम करें। जाँच -mdalign संरेखण बाधाओं के लिए।

-मेरेनेसा
रेनेसास द्वारा परिभाषित कॉलिंग सम्मेलनों का अनुपालन करें।

-मनो-रेनेसा
रेनेसास सम्मेलनों से पहले जीसीसी के लिए परिभाषित कॉलिंग सम्मेलनों का अनुपालन करें
उपलब्ध थे। यह विकल्प SH टूलचेन के सभी लक्ष्यों के लिए डिफ़ॉल्ट है।

-मनोमैकसेव
"मैक" रजिस्टर को कॉल-क्लोबर्ड के रूप में चिह्नित करें, भले ही -मेरेनेसा दिया हुआ है।

-मीई
-मनो-आईईईई
फ़्लोटिंग-पॉइंट तुलनाओं के IEEE अनुपालन को नियंत्रित करें, जो हैंडलिंग को प्रभावित करता है
उन मामलों की जहां तुलना का परिणाम अनियंत्रित है। डिफ़ॉल्ट रूप से -मीई is
निहित रूप से सक्षम। अगर -अनंत-गणित-केवल सक्षम किया गया है -मनो-आईईईई निहित रूप से सेट है,
जिसके परिणामस्वरूप तेजी से फ़्लोटिंग-पॉइंट अधिक-बराबर और कम-बराबर तुलना होती है। NS
निहित सेटिंग्स को या तो निर्दिष्ट करके ओवरराइड किया जा सकता है -मीई or -मनो-आईईईई.

-मिनलाइन-आईसी_अमान्य
नेस्टेड फ़ंक्शन सेट करने के बाद निर्देश कैश प्रविष्टियों को अमान्य करने के लिए इनलाइन कोड
ट्रैम्पोलिन। इस विकल्प का कोई प्रभाव नहीं पड़ता है यदि -मुसरमोड प्रभाव में है और चयनित
कोड जनरेशन विकल्प (जैसे -एम 4) "icbi" निर्देश के उपयोग की अनुमति नहीं देता है।
यदि चयनित कोड जनरेशन विकल्प "आईसीबीआई" के उपयोग की अनुमति नहीं देता है
निर्देश, और -मुसरमोड प्रभाव में नहीं है, इनलाइन कोड में हेरफेर करता है
निर्देश कैश एड्रेस सरणी सीधे एक सहयोगी लेखन के साथ। यह न केवल
रन टाइम पर विशेषाधिकार प्राप्त मोड की आवश्यकता होती है, लेकिन कैश लाइन होने पर यह भी विफल हो जाता है
टीएलबी के माध्यम से मैप किया गया और अनमैप्ड हो गया है।

-मिसाइज़
असेंबली कोड में निर्देश आकार और स्थान डंप करें।

-एमपीडस्ट्रक्ट
यह विकल्प बहिष्कृत है। यह 4 बाइट्स के गुणकों में संरचनाओं को पैड करता है, जो है
एसएच एबीआई के साथ असंगत।

-परमाणु-मॉडल=आदर्श
परमाणु संचालन के मॉडल और अतिरिक्त मापदंडों को अल्पविराम द्वारा अलग किए गए के रूप में सेट करता है
सूची। परमाणु अंतर्निहित कार्यों के विवरण के लिए देखें __परमाणु बिलिन्स
निम्नलिखित मॉडल और पैरामीटर समर्थित हैं:

कोई नहीं
संकलक उत्पन्न परमाणु अनुक्रमों को अक्षम करें और परमाणु के लिए पुस्तकालय कॉल का उत्सर्जन करें
संचालन। यह डिफ़ॉल्ट है यदि लक्ष्य "sh*-*-linux*" नहीं है।

नरम-गुसा
परमाणु निर्मित के लिए GNU/Linux संगत gUSA सॉफ़्टवेयर परमाणु क्रम उत्पन्न करें-
कार्यों में। उत्पन्न परमाणु अनुक्रमों को से अतिरिक्त समर्थन की आवश्यकता होती है
सिस्टम के इंटरप्ट/अपवाद हैंडलिंग कोड और केवल SH3* और . के लिए उपयुक्त हैं
SH4 * सिंगल-कोर सिस्टम। लक्ष्य होने पर यह विकल्प डिफ़ॉल्ट रूप से सक्षम होता है
"श*-*-लिनक्स*" और एसएच3* या एसएच4*। जब लक्ष्य SH4A हो, तो यह विकल्प भी
आंशिक रूप से हार्डवेयर परमाणु निर्देश "movli.l" और "movco.l" का उपयोग करता है
अधिक कुशल कोड बनाएं, जब तक कि कठोर अधिकृत है।

सॉफ्ट-टीसीबी
सॉफ़्टवेयर परमाणु अनुक्रम उत्पन्न करें जो थ्रेड नियंत्रण में एक चर का उपयोग करते हैं
खंड मैथा। यह gUSA अनुक्रमों का एक रूपांतर है जिसका उपयोग SH1* पर भी किया जा सकता है
और SH2* लक्ष्य। उत्पन्न परमाणु अनुक्रमों को अतिरिक्त समर्थन की आवश्यकता होती है
सिस्टम के इंटरप्ट/अपवाद हैंडलिंग कोड और केवल के लिए उपयुक्त हैं
सिंगल-कोर सिस्टम। इस मॉडल का उपयोग करते समय, gbr-ऑफ़सेट = पैरामीटर होना चाहिए
साथ ही निर्दिष्ट।

सॉफ्ट-इमास्क
सॉफ़्टवेयर परमाणु अनुक्रम उत्पन्न करें जो अस्थायी रूप से इंटरप्ट को सेटिंग द्वारा अक्षम करता है
"SR.IMASK = 1111"। यह मॉडल तभी काम करता है जब प्रोग्राम विशेषाधिकार प्राप्त मोड में चलता है
और केवल सिंगल-कोर सिस्टम के लिए उपयुक्त है। से अतिरिक्त समर्थन
सिस्टम के इंटरप्ट/अपवाद हैंडलिंग कोड की आवश्यकता नहीं है। यह मॉडल है
डिफ़ॉल्ट रूप से सक्षम जब लक्ष्य "sh*-*-linux*" और SH1* या SH2* हो।

हार्ड-एलएलसीएस
"Movli.l" और "movco.l" निर्देशों का उपयोग करके हार्डवेयर परमाणु अनुक्रम उत्पन्न करें
केवल। यह केवल SH4A पर उपलब्ध है और मल्टी-कोर सिस्टम के लिए उपयुक्त है।
चूंकि हार्डवेयर निर्देश केवल 32 बिट परमाणु चर का समर्थन करते हैं 8 . तक पहुंच
या 16 बिट चरों को 32 बिट अभिगमों के साथ अनुकरण किया जाता है। इसके साथ संकलित कोड
विकल्प अन्य सॉफ्टवेयर परमाणु मॉडल इंटरप्ट/अपवाद के साथ भी संगत है
SH4A सिस्टम पर निष्पादित होने पर हैंडलिंग सिस्टम। से अतिरिक्त समर्थन
इस मॉडल के लिए सिस्टम के इंटरप्ट/अपवाद हैंडलिंग कोड की आवश्यकता नहीं है।

gbr-ऑफ़सेट =
यह पैरामीटर थ्रेड नियंत्रण में चर के बाइट्स में ऑफ़सेट को निर्दिष्ट करता है
ब्लॉक संरचना जिसका उपयोग उत्पन्न परमाणु अनुक्रमों द्वारा किया जाना चाहिए जब
सॉफ्ट-टीसीबी मॉडल का चयन किया गया है। अन्य मॉडलों के लिए इस पैरामीटर पर ध्यान नहीं दिया जाता है।
निर्दिष्ट मान चार का पूर्णांक गुणक और 0-1020 की सीमा में होना चाहिए।

कठोर
यह पैरामीटर कई परमाणु मॉडल के मिश्रित उपयोग को रोकता है, भले ही वे हों
संगत, और संकलक को निर्दिष्ट के परमाणु अनुक्रम उत्पन्न करता है
केवल मॉडल।

-मटास
"__atomic_test_and_set" के लिए "tas.b" ऑपकोड जेनरेट करें। ध्यान दें कि के आधार पर
विशेष हार्डवेयर और सॉफ़्टवेयर कॉन्फ़िगरेशन यह समग्र प्रदर्शन को ख़राब कर सकता है
ऑपरेंड कैश लाइन फ्लश के कारण जो "tas.b" निर्देश द्वारा निहित हैं। पर
मल्टी-कोर SH4A प्रोसेसर "tas.b" निर्देश का उपयोग सावधानी के साथ किया जाना चाहिए क्योंकि यह
कुछ कैश कॉन्फ़िगरेशन के लिए डेटा भ्रष्टाचार का परिणाम हो सकता है।

-मप्रेफरगोट
स्थिति-स्वतंत्र कोड उत्पन्न करते समय, ग्लोबल ऑफ़सेट का उपयोग करके फ़ंक्शन कॉल उत्सर्जित करें
प्रक्रिया लिंकेज तालिका के बजाय तालिका।

-मुसरमोड
-मनो-यूजरमोड
विशेषाधिकार प्राप्त मोड कोड उत्पन्न करने वाले कंपाइलर को अनुमति न दें (अनुमति दें)। निर्दिष्ट करना
-मुसरमोड इसका अर्थ यह भी है -mno-इनलाइन-ic_invalidate अगर इनलाइन कोड काम नहीं करेगा
उपयोगकर्ता मोड में। -मुसरमोड डिफ़ॉल्ट है जब लक्ष्य "sh*-*-linux*" होता है। अगर
लक्ष्य SH1* या SH2* है -मुसरमोड कोई प्रभाव नहीं पड़ता है, क्योंकि कोई उपयोगकर्ता मोड नहीं है।

-मल्टीकॉस्ट =संख्या
एक गुणा इन्स के लिए मान लेने के लिए लागत निर्धारित करें।

-एमडीवी =रणनीति
पूर्णांक विभाजन संचालन के लिए उपयोग की जाने वाली विभाजन रणनीति निर्धारित करें। SHmedia . के लिए
रणनीति इनमें से एक हो सकता है:

fp फ्लोटिंग पॉइंट में ऑपरेशन करता है। इसमें बहुत अधिक विलंबता है, लेकिन इसकी आवश्यकता है
केवल कुछ निर्देश, इसलिए यदि आपके कोड में पर्याप्त है तो यह एक अच्छा विकल्प हो सकता है
संकलक को फ़्लोटिंग-पॉइंट शेड्यूल करने की अनुमति देने के लिए आसानी से शोषक ILP
अन्य निर्देशों के साथ निर्देश। शून्य से विभाजन a . का कारण बनता है
फ़्लोटिंग-पॉइंट अपवाद।

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

आमंत्रण: minlat
का एक प्रकार निवेश संबंधी निर्णय जहां, यदि कोई सीएसई या उत्थापन अवसर नहीं मिला है, या यदि
पूरे ऑपरेशन को एक ही स्थान पर फहराया गया है, के अंतिम चरण
उलटा गणना समग्र को कम करने के लिए अंतिम गुणा के साथ जुड़ी हुई है
विलंबता, कुछ और निर्देशों का उपयोग करने की कीमत पर, और इस प्रकार कम पेशकश
अन्य कोड के साथ शेड्यूलिंग अवसर।

कॉल
लाइब्रेरी फ़ंक्शन को कॉल करता है जो आमतौर पर लागू करता है आमंत्रण: minlat रणनीति। इस
"m5-*media-nofpu" संकलन के लिए उच्च कोड घनत्व देता है।

call2
एक ही पुस्तकालय समारोह के एक अलग प्रवेश बिंदु का उपयोग करता है, जहां यह मानता है कि a
लुकअप टेबल के लिए पॉइंटर पहले ही सेट किया जा चुका है, जो पॉइंटर लोड को उजागर करता है
सीएसई और कोड उत्थापन अनुकूलन के लिए।

आमंत्रण: कॉल
आमंत्रण: कॉल2
आमंत्रण: एफपी
उपयोग निवेश संबंधी निर्णय प्रारंभिक कोड पीढ़ी के लिए एल्गोरिथ्म, लेकिन अगर कोड रहता है
अअनुकूलित, पर वापस लौटें कॉल, call2या, fp रणनीतियाँ, क्रमशः। ध्यान दें कि
शून्य से विभाजन का संभावित-फँसाने वाला दुष्प्रभाव एक अलग द्वारा किया जाता है
निर्देश, इसलिए यह संभव है कि सभी पूर्णांक निर्देश बाहर फहराए जाएं,
लेकिन साइड इफेक्ट के लिए मार्कर वहीं रहता है जहां वह है। करने के लिए एक पुनर्संयोजन
उस स्थिति में फ़्लोटिंग-पॉइंट ऑपरेशंस या कॉल संभव नहीं है।

आमंत्रण20यू
Inv20l
के प्रकार आमंत्रण: minlat रणनीति। इस मामले में कि व्युत्क्रम गणना है
गुणा से अलग नहीं, वे विभाजन को गति देते हैं जहां लाभांश फिट बैठता है
20 बिट्स में (प्लस साइन जहां लागू हो) एक संख्या को छोड़ने के लिए एक परीक्षण सम्मिलित करके
इस मामले में संचालन; यह परीक्षण बड़े लाभांश के मामले को धीमा कर देता है।
आमंत्रण20यू ऐसे छोटे लाभांश के मामले को असंभाव्य मानता है, और Inv20l
संभावना मानता है।

SHmedia के अलावा अन्य लक्ष्यों के लिए रणनीति इनमें से एक हो सकता है:

कॉल-div1
लाइब्रेरी फ़ंक्शन को कॉल करता है जो सिंगल-स्टेप डिवीजन निर्देश "div1" का उपयोग करता है
ऑपरेशन करें। शून्य से भाग एक अनिर्दिष्ट परिणाम की गणना करता है और करता है
जाल नहीं। यह SH4, SH2A और SHcompact को छोड़कर डिफ़ॉल्ट है।

कॉल-एफपी
एक पुस्तकालय फ़ंक्शन को कॉल करें जो ऑपरेशन को डबल परिशुद्धता फ़्लोटिंग में करता है
बिंदु। शून्य से विभाजन एक फ़्लोटिंग-पॉइंट अपवाद का कारण बनता है। यह डिफ़ॉल्ट है
FPU के साथ SHcompact के लिए। इसे उन लक्ष्यों के लिए निर्दिष्ट करना जिनके पास डबल नहीं है
सटीक एफपीयू "कॉल-डिव 1" के लिए डिफ़ॉल्ट है।

कॉल-टेबल
लाइब्रेरी फ़ंक्शन को कॉल करता है जो छोटे विभाजकों के लिए लुकअप टेबल का उपयोग करता है और
बड़े भाजक के लिए केस भेद के साथ "div1" निर्देश। शून्य से विभाजन
एक अनिर्दिष्ट परिणाम की गणना करता है और फंसता नहीं है। यह SH4 के लिए डिफ़ॉल्ट है।
इसे उन लक्ष्यों के लिए निर्दिष्ट करना जिनमें डायनेमिक शिफ्ट निर्देश डिफ़ॉल्ट नहीं हैं
"कॉल-div1" के लिए।

जब एक विभाजन रणनीति निर्दिष्ट नहीं की जाती है, तो डिफ़ॉल्ट रणनीति का चयन आधारित होता है
वर्तमान लक्ष्य पर। SH2A के लिए डिफ़ॉल्ट रणनीति "divs" और "divu" का उपयोग करना है
लाइब्रेरी फ़ंक्शन कॉल के बजाय निर्देश।

-संकुचित-आउटगोइंग-आर्ग्स
फ़ंक्शन प्रस्तावना में आउटगोइंग तर्कों के लिए एक बार स्थान आरक्षित करें, न कि आस-पास
प्रत्येक कॉल। प्रदर्शन और आकार के लिए आम तौर पर फायदेमंद। खोलने के लिए भी आवश्यक
सशर्त कोड के आसपास स्टैक फ्रेम को बदलने से बचने के लिए।

-mdivsi3_libfunc=नाम
32-बिट हस्ताक्षरित डिवीजन के लिए उपयोग किए जाने वाले लाइब्रेरी फ़ंक्शन का नाम सेट करें नाम। इस
केवल में प्रयुक्त नाम को प्रभावित करता है कॉल और आमंत्रण: कॉल विभाजन रणनीतियाँ, और
कंपाइलर अभी भी इनपुट/आउटपुट/क्लोबर्ड रजिस्टरों के समान सेट की अपेक्षा करता है जैसे कि यह
विकल्प मौजूद नहीं थे।

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

-दिमागदार-संबोधन
SHmedia32/SHcompact के लिए अनुक्रमित एड्रेसिंग मोड के उपयोग को सक्षम करें। यह केवल .... ही
सुरक्षित अगर हार्डवेयर और/या ओएस अनुक्रमित के लिए 32-बिट रैप-अराउंड सेमेन्टिक्स लागू करते हैं
एड्रेसिंग मोड। आर्किटेक्चर 64-बिट के साथ प्रोसेसर के कार्यान्वयन की अनुमति देता है
MMU, जिसका उपयोग OS 32-बिट एड्रेसिंग प्राप्त करने के लिए कर सकता है, लेकिन चूंकि कोई मौजूदा हार्डवेयर नहीं है
कार्यान्वयन इस या किसी अन्य तरीके से अनुक्रमित एड्रेसिंग मोड को सुरक्षित बनाने का समर्थन करता है
32-बिट ABI में उपयोग करने के लिए, डिफ़ॉल्ट है -मनो-अनुक्रमित-संबोधन.

-मगेटरकॉस्ट =संख्या
"gettr" निर्देश के लिए अनुमानित लागत को सेट करें संख्या. डिफ़ॉल्ट 2 है अगर
-एमपीटी-फिक्स्ड प्रभाव में है, अन्यथा 100।

-एमपीटी-फिक्स्ड
मान लें कि "pt*" निर्देश ट्रैप नहीं करेंगे। यह आम तौर पर बेहतर-अनुसूचित कोड उत्पन्न करता है,
लेकिन वर्तमान हार्डवेयर पर असुरक्षित है। वर्तमान वास्तुकला परिभाषा कहती है कि
"ptabs" और "ptrel" ट्रैप जब लक्ष्य और 3 के साथ 3 है। इसमें है
एक से पहले इन निर्देशों को शेड्यूल करना असुरक्षित बनाने का अनजाने में प्रभाव
शाखा, या उन्हें एक लूप से बाहर फहराएं। उदाहरण के लिए, "__do_global_ctors", का एक भाग
लिबगसीसी जो प्रोग्राम स्टार्टअप पर कंस्ट्रक्टर चलाता है, एक सूची में फ़ंक्शन को कॉल करता है जो है
-1 द्वारा सीमांकित। उसके साथ -एमपीटी-फिक्स्ड विकल्प, "ptabs" परीक्षण से पहले किया जाता है
-1 के खिलाफ। इसका मतलब है कि सभी कंस्ट्रक्टर थोड़ा अधिक तेजी से चलते हैं, लेकिन जब
लूप सूची के अंत में आता है, प्रोग्राम क्रैश हो जाता है क्योंकि "ptabs" -1 को a . में लोड करता है
लक्ष्य रजिस्टर।

चूंकि यह विकल्प मौजूदा आर्किटेक्चर को लागू करने वाले किसी भी हार्डवेयर के लिए असुरक्षित है
विनिर्देश, डिफ़ॉल्ट है -मनो-पीटी-फिक्स्ड. जब तक स्पष्ट रूप से निर्दिष्ट न हो
-मगेटरकोस्ट, -मनो-पीटी-फिक्स्ड इसका अर्थ यह भी है -मगेटरकॉस्ट = 100; यह रजिस्टर रोकता है
साधारण पूर्णांकों को संग्रहीत करने के लिए लक्ष्य रजिस्टरों का उपयोग करने से आवंटन।

-मिनवैलिड-प्रतीक
मान लें कि प्रतीक अमान्य हो सकते हैं। संकलक द्वारा उत्पन्न साधारण कार्य प्रतीक
हमेशा "movi"/"sori"/"ptabs" या "movi"/"shori"/"ptrel" के साथ लोड करने के लिए मान्य होते हैं, लेकिन
असेंबलर और/या लिंकर ट्रिक्स के साथ प्रतीकों को उत्पन्न करना संभव है जो कारण
फंसाने के लिए "ptabs" या "ptrel"। यह विकल्प तभी सार्थक होता है जब -मनो-पीटी-फिक्स्ड में है
प्रभाव। यह क्रॉस-बेसिक-ब्लॉक CSE, उत्थापन और प्रतीक के अधिकांश शेड्यूलिंग को रोकता है
भार। डिफ़ॉल्ट है -मनो-अमान्य-प्रतीक.

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

-एमजेडडीसीशाखा
-मनो-जेडडीसीब्रांच
मान लें (मान न लें) कि शून्य विस्थापन सशर्त शाखा निर्देश "बीटी" और
"बीएफ" तेज हैं। अगर -एमजेडडीसीशाखा निर्दिष्ट है, संकलक शून्य विस्थापन पसंद करता है
शाखा कोड अनुक्रम। SH4 और . के लिए कोड जनरेट करते समय यह डिफ़ॉल्ट रूप से सक्षम होता है
एसएच4ए. इसे निर्दिष्ट करके स्पष्ट रूप से अक्षम किया जा सकता है -मनो-जेडडीसीब्रांच.

-एमसीब्रांच-बल-देरी-स्लॉट
सशर्त शाखाओं के लिए विलंब स्लॉट के उपयोग को बाध्य करें, जो विलंब स्लॉट को भर देता है
एक "एनओपी" के साथ यदि कोई उपयुक्त निर्देश नहीं मिल सकता है। डिफ़ॉल्ट रूप से यह विकल्प है
अक्षम। इसे मूल में पाए गए हार्डवेयर बग के आसपास काम करने के लिए सक्षम किया जा सकता है
एसएच7055.

-मफ्यूज्ड-मैड
-मनो-फ्यूज्ड-मैड
फ़्लोटिंग-पॉइंट का उपयोग करने वाला (उपयोग नहीं करने वाला) कोड उत्पन्न करें और जमा करें
निर्देश। ये निर्देश डिफ़ॉल्ट रूप से उत्पन्न होते हैं यदि हार्डवेयर फ़्लोटिंग पॉइंट
प्रयोग किया जाता है। मशीन पर निर्भर -मफ्यूज्ड-मैड विकल्प अब मशीन में मैप किया गया है-
स्वतंत्र -ffp-अनुबंध = तेज विकल्प, और -मनो-फ्यूज्ड-मैड को मैप किया जाता है
-ffp-अनुबंध = बंद.

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

-एमएफएसआरआरए
-मनो-एफएसआरआरए
कंपाइलर को पारस्परिक वर्ग के लिए "fsrra" निर्देश का उत्सर्जन करने की अनुमति दें या न दें
जड़ अनुमान। विकल्प -एमएफएसआरआरए के साथ संयोजन में इस्तेमाल किया जाना चाहिए
-फनसेफ-गणित-अनुकूलन और -अनंत-गणित-केवल. यह डिफ़ॉल्ट रूप से तब सक्षम होता है जब
SH4A के लिए जनरेटिंग कोड। का उपयोग करते हुए -मनो-एफएसआरआरए पारस्परिक वर्गमूल को निष्क्रिय करता है
सन्निकटन भले ही -फनसेफ-गणित-अनुकूलन और -अनंत-गणित-केवल में हैं
प्रभाव।

-व्याख्या-सीमूव
सशर्त चाल निर्देश के लिए शून्य-विस्थापन सशर्त शाखाओं को प्राथमिकता दें
पैटर्न। इसका परिणाम SH4 प्रोसेसर पर तेज़ कोड हो सकता है।

सोलारिस 2 ऑप्शंस

इन -m सोलारिस 2 पर विकल्प समर्थित हैं:

-mclear-hwcap
-mclear-hwcap द्वारा उत्पन्न हार्डवेयर क्षमताओं को हटाने के लिए संकलक को बताता है
सोलारिस असेंबलर। यह केवल तभी आवश्यक है जब ऑब्जेक्ट फ़ाइलें ISA एक्सटेंशन का उपयोग न करें
वर्तमान मशीन द्वारा समर्थित है, लेकिन रनटाइम पर जांचें कि उनका उपयोग करना है या नहीं।

-मिमप्योर-पाठ
-मिमप्योर-पाठ, के अलावा इस्तेमाल किया कमरा साझा, संकलक को पास न करने के लिए कहता है -z टेक्स्ट सेवा मेरे
किसी साझा वस्तु को लिंक करते समय लिंकर। इस विकल्प का उपयोग करके आप स्थिति को लिंक कर सकते हैं-
एक साझा वस्तु में निर्भर कोड।

-मिमप्योर-पाठ दबाता है "स्थानांतरण आवंटन योग्य लेकिन गैर-लिखने योग्य के खिलाफ रहता है"
अनुभाग" लिंकर त्रुटि संदेश। हालांकि, आवश्यक स्थानांतरण कॉपी-ऑन- ट्रिगर करते हैं
लिखें, और साझा वस्तु वास्तव में प्रक्रियाओं में साझा नहीं की जाती है। के बजाए
का उपयोग -मिमप्योर-पाठ, आपको सभी स्रोत कोड को संकलित करना चाहिए -एफपीआईसी or -एफपीआईसी.

ये स्विच सोलारिस 2 पर उपरोक्त के अतिरिक्त समर्थित हैं:

-पथ्रेड
POSIX थ्रेड्स लाइब्रेरी का उपयोग करके मल्टीथ्रेडिंग के लिए समर्थन जोड़ें। यह विकल्प सेट करता है
प्रीप्रोसेसर और लिंकर दोनों के लिए झंडे। यह विकल्प थ्रेड को प्रभावित नहीं करता
संकलक या इसके साथ आपूर्ति किए गए पुस्तकालयों द्वारा निर्मित ऑब्जेक्ट कोड की सुरक्षा।

-पथ्रेड
यह का समानार्थी है -पथ्रेड.

स्पार्क ऑप्शंस

इन -m विकल्प SPARC पर समर्थित हैं:

-मनो-ऐप-regs
-मैप-regs
निर्दिष्ट करें -मैप-regs वैश्विक रजिस्टर 2 से 4 का उपयोग करके आउटपुट उत्पन्न करने के लिए, जो
SPARC SVR4 ABI अनुप्रयोगों के लिए आरक्षित है। वैश्विक रजिस्टर 1 की तरह, प्रत्येक वैश्विक
रजिस्टर 2 से 4 को तब एक आवंटन योग्य रजिस्टर के रूप में माना जाता है जिसे
फ़ंक्शन कॉल। यह डिफ़ॉल्ट है।

कुछ प्रदर्शन हानि की कीमत पर पूरी तरह से SVR4 ABI-अनुपालन होने के लिए, निर्दिष्ट करें
-मनो-ऐप-regs. आपको इस विकल्प के साथ पुस्तकालयों और सिस्टम सॉफ्टवेयर को संकलित करना चाहिए।

-एमएफएलएटी
-मनो-फ्लैट
- -एमएफएलएटी, कंपाइलर निर्देशों को सहेज/पुनर्स्थापित नहीं करता है और a . का उपयोग करता है
"फ्लैट" या सिंगल रजिस्टर विंडो मॉडल। यह मॉडल नियमित . के साथ संगत है
विंडो मॉडल रजिस्टर करें। स्थानीय रजिस्टर और इनपुट रजिस्टर (0--5) अभी भी हैं
"कॉल-सेव्ड" रजिस्टर के रूप में माना जाता है और आवश्यकतानुसार स्टैक पर सहेजा जाता है।

- -मनो-फ्लैट (डिफ़ॉल्ट), कंपाइलर सेव / रिस्टोर निर्देश उत्पन्न करता है (सिवाय
पत्ती कार्यों के लिए)। यह सामान्य ऑपरेटिंग मोड है।

-एमएफपीयू
-महार्ड-फ्लोट
फ्लोटिंग-पॉइंट निर्देशों वाला आउटपुट जेनरेट करें। यह डिफ़ॉल्ट है।

-मनो-एफपीयू
-एमसॉफ्ट-फ्लोट
फ़्लोटिंग पॉइंट के लिए लाइब्रेरी कॉल युक्त आउटपुट जेनरेट करें। चेतावनी: अपेक्षित
सभी SPARC लक्ष्यों के लिए पुस्तकालय उपलब्ध नहीं हैं। आम तौर पर की सुविधाएं
मशीन के सामान्य सी कंपाइलर का उपयोग किया जाता है, लेकिन यह सीधे क्रॉस में नहीं किया जा सकता है-
संकलन उपयुक्त पुस्तकालय उपलब्ध कराने के लिए आपको अपनी व्यवस्था स्वयं करनी होगी
क्रॉस-संकलन के लिए कार्य। एम्बेडेड लक्ष्य स्पार्क-*-ऑउट और स्पार्लाइट-*-*
सॉफ़्टवेयर फ़्लोटिंग-पॉइंट समर्थन प्रदान करें।

-एमसॉफ्ट-फ्लोट आउटपुट फ़ाइल में कॉलिंग कन्वेंशन को बदलता है; इसलिए, यह केवल . है
उपयोगी अगर आप संकलित करते हैं सब इस विकल्प के साथ एक कार्यक्रम का। विशेष रूप से, आपको चाहिए
संकलन libgcc.a, पुस्तकालय जो जीसीसी के साथ आता है -एमसॉफ्ट-फ्लोट इसके लिए
काम करने के लिए.

-महार्ड-क्वाड-फ्लोट
क्वाड-वर्ड (लॉन्ग डबल) फ्लोटिंग-पॉइंट निर्देशों वाला आउटपुट जेनरेट करें।

-एमसॉफ्ट-क्वाड-फ्लोट
क्वाड-वर्ड (लॉन्ग डबल) फ्लोटिंग-पॉइंट के लिए लाइब्रेरी कॉल युक्त आउटपुट जेनरेट करें
निर्देश। जिन कार्यों को कहा जाता है वे स्पार्क एबीआई में निर्दिष्ट हैं। यह है
चूक।

इस लेखन के समय, कोई SPARC कार्यान्वयन नहीं है जिसके पास हार्डवेयर समर्थन है
क्वाड-वर्ड फ्लोटिंग-पॉइंट निर्देश। वे सभी में से एक के लिए एक जाल हैंडलर का आह्वान करते हैं
ये निर्देश, और फिर ट्रैप हैंडलर निर्देश के प्रभाव का अनुकरण करता है।
ट्रैप हैंडलर ओवरहेड के कारण, यह ABI लाइब्रेरी को कॉल करने की तुलना में बहुत धीमा है
दिनचर्या इस प्रकार -एमसॉफ्ट-क्वाड-फ्लोट विकल्प डिफ़ॉल्ट है।

-मनो-असंरेखित-युगल
-मुनसंरेखित-युगल
मान लें कि डबल्स में 8-बाइट संरेखण है। यह डिफ़ॉल्ट है।

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

-म्यूजर-मोड
-मनो-उपयोगकर्ता-मोड
कोड उत्पन्न न करें जो केवल पर्यवेक्षक मोड में चल सकता है। यह केवल के लिए प्रासंगिक है
LEON3 प्रोसेसर के लिए उत्सर्जित "कासा" निर्देश। यह डिफ़ॉल्ट है।

-मनो-तेज़-संरचनाएं
-mfaster-structs
- -mfaster-structs, संकलक मानता है कि संरचनाओं में 8-बाइट होना चाहिए
संरेखण। यह प्रतियों के लिए "ldd" और "std" निर्देशों के जोड़े के उपयोग को सक्षम बनाता है
संरचना असाइनमेंट में, दोगुने "एलडी" और "सेंट" जोड़े के स्थान पर। हालांकि
इस परिवर्तित संरेखण का उपयोग सीधे SPARC ABI का उल्लंघन करता है। इस प्रकार, यह इरादा है
केवल उन लक्ष्यों पर उपयोग के लिए जहां डेवलपर स्वीकार करता है कि उनका परिणामी कोड है
सीधे एबीआई के नियमों के अनुरूप नहीं है।

-एमसीपीयू =सीपीयू_प्रकार
के लिए निर्देश सेट, रजिस्टर सेट और निर्देश शेड्यूलिंग पैरामीटर सेट करें
मशीन की तरह सीपीयू_प्रकार. के लिए समर्थित मान सीपीयू_प्रकार रहे v7, सरू, v8, सुपरस्पार्क,
हाइपरस्पार्क, लियोन, leon3, लियोन3वी7, स्पार्क्लाइट, f930, f934, स्पार्क्लाइट86x, चिंगारी,
टीएससी701, v9, अल्ट्रास्पार्क, अल्ट्रास्पार्क3, नियगारा, नियाग्रा2, नियाग्रा3 और नियाग्रा4.

नेटिव सोलारिस और जीएनयू/लिनक्स टूलचेन भी मूल्य का समर्थन करते हैं देशी, जो चुनता है
होस्ट प्रोसेसर के लिए सर्वश्रेष्ठ आर्किटेक्चर विकल्प। -एमसीपीयू = देशी कोई प्रभाव नहीं पड़ता है अगर
GCC प्रोसेसर को नहीं पहचानता है।

डिफ़ॉल्ट निर्देश शेड्यूलिंग पैरामीटर का उपयोग उन मानों के लिए किया जाता है जो एक . का चयन करते हैं
वास्तुकला और कार्यान्वयन नहीं। य़े हैं v7, v8, स्पार्क्लाइट, चिंगारी, v9.

यहां प्रत्येक समर्थित आर्किटेक्चर और उनके समर्थित कार्यान्वयन की सूची दी गई है।

v7 सरू, leon3v7

v8 सुपरस्पार्क, हाइपरस्पार्क, लियोन, लियोन3

स्पार्क्लाइट
f930, f934, sparclite86x

चिंगारी
टीएससी701

v9 अल्ट्रास्पार्क, अल्ट्रास्पार्क 3, नियाग्रा, नियाग्रा 2, नियाग्रा 3, नियाग्रा 4

डिफ़ॉल्ट रूप से (जब तक कि अन्यथा कॉन्फ़िगर न किया गया हो), GCC के V7 संस्करण के लिए कोड उत्पन्न करता है
स्पार्क वास्तुकला। साथ में -एमसीपीयू = सरू, संकलक अतिरिक्त रूप से इसे अनुकूलित करता है
सरू CY7C602 चिप, जैसा कि SPARCStation/SPARCServer 3xx श्रृंखला में उपयोग किया जाता है। यह है
पुराने SPARCStation 1, 2, IPX आदि के लिए भी उपयुक्त है।

- -एमसीपीयू = वी 8, GCC, SPARC आर्किटेक्चर के V8 संस्करण के लिए कोड जनरेट करता है। NS
V7 कोड से केवल इतना अंतर है कि कंपाइलर पूर्णांक को गुणा करता है और
पूर्णांक विभाजित निर्देश जो SPARC-V8 में मौजूद हैं लेकिन SPARC-V7 में नहीं हैं। साथ में
-एमसीपीयू = सुपरस्पार्क, संकलक अतिरिक्त रूप से इसे सुपरस्पार्क चिप के लिए अनुकूलित करता है, जैसे
SPARCStation 10, 1000 और 2000 श्रृंखला में उपयोग किया जाता है।

- -एमसीपीयू=स्पार्क्लाइट, GCC, SPARC के SPARClite संस्करण के लिए कोड जनरेट करता है
वास्तुकला। यह पूर्णांक गुणा, पूर्णांक विभाजित चरण और स्कैन ("ffs") जोड़ता है
निर्देश जो SPARClite में मौजूद हैं लेकिन SPARC-V7 में नहीं। साथ में -एमसीपीयू = एफ930,
संकलक अतिरिक्त रूप से इसे Fujitsu MB86930 चिप के लिए अनुकूलित करता है, जो कि मूल है
SPARClite, बिना FPU के। साथ में -एमसीपीयू = एफ934, संकलक अतिरिक्त रूप से इसे अनुकूलित करता है
फुजित्सु एमबी86934 चिप, जो एफपीयू के साथ नवीनतम SPARClite है।

- -एमसीपीयू = स्पार्कलेट, जीसीसी स्पार्क के स्पार्कलेट संस्करण के लिए कोड उत्पन्न करता है
वास्तुकला। यह पूर्णांक गुणा, गुणा/संचय, पूर्णांक भाग जोड़ता है
चरण और स्कैन ("ffs") निर्देश जो SPARClet में मौजूद हैं लेकिन SPARC-V7 में नहीं। साथ में
-एमसीपीयू = टीएससी701, संकलक अतिरिक्त रूप से इसे TEMIC SPARClet चिप के लिए अनुकूलित करता है।

- -एमसीपीयू = वी 9, GCC, SPARC आर्किटेक्चर के V9 संस्करण के लिए कोड जेनरेट करता है। इस
64-बिट पूर्णांक और फ़्लोटिंग-पॉइंट मूव निर्देश, 3 अतिरिक्त फ़्लोटिंग-पॉइंट जोड़ता है
कंडीशन कोड रजिस्टर और कंडीशनल मूव निर्देश। साथ में -एमसीपीयू = अल्ट्रास्पार्क,
संकलक अतिरिक्त रूप से इसे Sun UltraSPARC I/II/IIIi चिप्स के लिए अनुकूलित करता है। साथ में
-एमसीपीयू = अल्ट्रास्पार्क3, संकलक अतिरिक्त रूप से इसे सन अल्ट्रास्पार्क के लिए अनुकूलित करता है
III/III+/IIIi/IIIi+/IV/IV+ चिप्स। साथ में -एमसीपीयू = नियाग्रा, संकलक अतिरिक्त रूप से
इसे Sun UltraSPARC T1 चिप्स के लिए अनुकूलित करता है। साथ में -एमसीपीयू=नियाग्रा2, संकलक
इसके अतिरिक्त इसे Sun UltraSPARC T2 चिप्स के लिए अनुकूलित करता है। साथ में -एमसीपीयू=नियाग्रा3,
संकलक अतिरिक्त रूप से इसे Sun UltraSPARC T3 चिप्स के लिए अनुकूलित करता है। साथ में -एमसीपीयू=नियाग्रा4,
संकलक अतिरिक्त रूप से इसे Sun UltraSPARC T4 चिप्स के लिए अनुकूलित करता है।

-मट्यून =सीपीयू_प्रकार
मशीन प्रकार के लिए निर्देश शेड्यूलिंग पैरामीटर सेट करें सीपीयू_प्रकार, लेकिन सेट न करें
निर्देश सेट या रजिस्टर सेट करें कि विकल्प -एमसीपीयू =सीपीयू_प्रकार करता है.

के लिए समान मान -एमसीपीयू =सीपीयू_प्रकार के लिए इस्तेमाल किया जा सकता है -मट्यून =सीपीयू_प्रकार, लेकिन केवल
उपयोगी मूल्य वे हैं जो एक विशेष सीपीयू कार्यान्वयन का चयन करते हैं। वे हैं
सरू, सुपरस्पार्क, हाइपरस्पार्क, लियोन, leon3, लियोन3वी7, f930, f934, स्पार्क्लाइट86x,
टीएससी701, अल्ट्रास्पार्क, अल्ट्रास्पार्क3, नियगारा, नियाग्रा2, नियाग्रा3 और नियाग्रा4. साथ
देशी सोलारिस और जीएनयू/लिनक्स टूलचेन, देशी भी इस्तेमाल किया जा सकता है.

-एमवी8प्लस
-मनो-वी8प्लस
- -एमवी8प्लस, GCC SPARC-V8+ ABI के लिए कोड जेनरेट करता है। V8 . से अंतर
ABI यह है कि वैश्विक और बाहरी रजिस्टरों को 64 बिट चौड़ा माना जाता है। यह सक्षम है
डिफ़ॉल्ट रूप से सोलारिस पर सभी SPARC-V32 प्रोसेसर के लिए 9-बिट मोड में।

-मविसो
-मनो-विज़
- -मविसो, जीसीसी कोड उत्पन्न करता है जो अल्ट्रास्पार्क विजुअल का लाभ उठाता है
निर्देश सेट एक्सटेंशन। डिफ़ॉल्ट है -मनो-विज़.

-एमविस2
-मनो-विज़2
- -एमविस2, GCC कोड उत्पन्न करता है जो UltraSPARC के संस्करण 2.0 का लाभ उठाता है
दृश्य निर्देश सेट एक्सटेंशन। डिफ़ॉल्ट है -एमविस2 एक सीपीयू को लक्षित करते समय
ऐसे निर्देशों का समर्थन करता है, जैसे कि UltraSPARC-III और बाद में। स्थापना -एमविस2 भी
सेट -मविसो.

-एमविस3
-मनो-विज़3
- -एमविस3, GCC कोड उत्पन्न करता है जो UltraSPARC के संस्करण 3.0 का लाभ उठाता है
दृश्य निर्देश सेट एक्सटेंशन। डिफ़ॉल्ट है -एमविस3 एक सीपीयू को लक्षित करते समय
ऐसे निर्देशों का समर्थन करता है, जैसे कि नियाग्रा-3 और बाद के संस्करण। स्थापना -एमविस3 भी सेट करता है
-एमविस2 और -मविसो.

-एमसीबीकोंड
-mno-cbcond
- -एमसीबीकोंड, जीसीसी कोड उत्पन्न करता है जो तुलना-और-शाखा का लाभ उठाता है
निर्देश, जैसा कि स्पार्क आर्किटेक्चर 2011 में परिभाषित किया गया है। डिफ़ॉल्ट है -एमसीबीकोंड कब
ऐसे निर्देशों का समर्थन करने वाले सीपीयू को लक्षित करना, जैसे कि नियाग्रा -4 और बाद में।

-एमपीओपीसी
-मनो-पॉपसी
- -एमपीओपीसी, जीसीसी कोड उत्पन्न करता है जो अल्ट्रास्पार्क आबादी का लाभ उठाता है
गिनती निर्देश। डिफ़ॉल्ट है -एमपीओपीसी ऐसे सीपीयू को लक्षित करते समय जो इस तरह का समर्थन करता है
निर्देश, जैसे नियाग्रा -2 और बाद में।

-एमएफएमएएफ
-मनो-एफएमएफ़
- -एमएफएमएएफ, GCC कोड उत्पन्न करता है जो UltraSPARC फ़्यूज्ड मल्टीप्ली का लाभ उठाता है-
फ़्लोटिंग-पॉइंट एक्सटेंशन जोड़ें। डिफ़ॉल्ट है -एमएफएमएएफ एक सीपीयू को लक्षित करते समय
इस तरह के निर्देशों का समर्थन करता है, जैसे नियाग्रा -3 और बाद में।

-एमफिक्स-एटी697एफ
Atmel AT697F प्रोसेसर के एकल इरेटा के लिए प्रलेखित वैकल्पिक हल को सक्षम करें
(जो AT13E प्रोसेसर के इरेटा #697 से मेल खाती है)।

-एमफिक्स-यूटी699
फ़्लोटिंग-पॉइंट इरेटा और डेटा कैश के लिए प्रलेखित समाधान सक्षम करें
UT699 प्रोसेसर के इरेटा को समाप्त करें।

इन -m उपरोक्त के अतिरिक्त 9-बिट में SPARC-V64 प्रोसेसर पर विकल्प समर्थित हैं
वातावरण:

-एम 32
-एम 64
32-बिट या 64-बिट वातावरण के लिए कोड जनरेट करें। 32-बिट वातावरण int सेट करता है,
32 बिट्स के लिए लंबा और सूचक। 64-बिट वातावरण int को 32 बिट्स और लंबे समय तक सेट करता है और
64 बिट्स के लिए सूचक।

-एमसीमॉडल=कौन कौन से
कोड मॉडल को इनमें से किसी एक पर सेट करें

मेडलो
मध्यम/निम्न कोड मॉडल: 64-बिट पते, प्रोग्राम को निम्न 32 . में लिंक किया जाना चाहिए
स्मृति के टुकड़े। कार्यक्रमों को स्थिर या गतिशील रूप से जोड़ा जा सकता है।

मेडमिडी
मध्यम/मध्य कोड मॉडल: 64-बिट पते, कार्यक्रमों को निम्न में जोड़ा जाना चाहिए
मेमोरी के 44 बिट, टेक्स्ट और डेटा सेगमेंट का आकार 2GB से कम होना चाहिए और
डेटा खंड पाठ खंड के 2GB के भीतर स्थित होना चाहिए।

मेदानी
मध्यम/कहीं भी कोड मॉडल: 64-बिट पते, प्रोग्राम कहीं भी लिंक किए जा सकते हैं
मेमोरी में, टेक्स्ट और डेटा सेगमेंट का आकार और डेटा 2GB से कम होना चाहिए
खंड पाठ खंड के 2GB के भीतर स्थित होना चाहिए।

एंबमेडनी
एम्बेडेड सिस्टम के लिए मध्यम/कहीं भी कोड मॉडल: 64-बिट पते, टेक्स्ट
और डेटा खंड 2GB से कम आकार के होने चाहिए, दोनों मेमोरी में कहीं से भी शुरू होने चाहिए
(लिंक समय पर निर्धारित)। वैश्विक रजिस्टर %g4 डेटा के आधार की ओर इशारा करता है
खंड। कार्यक्रम स्थिर रूप से जुड़े हुए हैं और PIC समर्थित नहीं है।

-मेमरी-मॉडल =मेम-मॉडल
प्रोसेसर पर लागू मेमोरी मॉडल को इनमें से किसी एक पर सेट करें

चूक
प्रोसेसर और ऑपरेटिंग सिस्टम के लिए डिफ़ॉल्ट मेमोरी मॉडल।

आरएमओ आराम से स्मृति आदेश

पीएसओ आंशिक स्टोर आदेश

त्सो कुल स्टोर ऑर्डर

sc अनुक्रमिक संगति

ये मेमोरी मॉडल औपचारिक रूप से स्पार्क V9 आर्किटेक्चर के परिशिष्ट D में परिभाषित किए गए हैं
मैनुअल, जैसा कि प्रोसेसर के "PSTATE.MM" फ़ील्ड में सेट किया गया है।

-मस्टैक-पूर्वाग्रह
-मनो-स्टैक-पूर्वाग्रह
- -मस्टैक-पूर्वाग्रह, GCC मानता है कि स्टैक पॉइंटर, और फ़्रेम पॉइंटर यदि मौजूद है,
-2047 तक ऑफसेट होते हैं जिन्हें स्टैक फ्रेम संदर्भ बनाते समय वापस जोड़ा जाना चाहिए। इस
64-बिट मोड में डिफ़ॉल्ट है। अन्यथा, मान लें कि ऐसी कोई ऑफसेट मौजूद नहीं है।

एस पी यू ऑप्शंस

इन -m विकल्प SPU पर समर्थित हैं:

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

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

-एमब्रांच-संकेत
डिफ़ॉल्ट रूप से, जीसीसी पाइपलाइन स्टालों से बचने के लिए एक शाखा संकेत निर्देश उत्पन्न करता है
हमेशा ली गई या शायद ली गई शाखाएँ। एक संकेत 8 . के करीब उत्पन्न नहीं होता है
अपनी शाखा से दूर निर्देश। उन्हें अक्षम करने का कोई कारण नहीं है, सिवाय इसके कि
डिबगिंग उद्देश्यों, या किसी वस्तु को थोड़ा छोटा करने के लिए।

-एमएसस्मॉल-मेम
-मिलर्ज-मेम
डिफ़ॉल्ट रूप से, GCC यह मानकर कोड जनरेट करता है कि पते कभी भी 18 बिट से बड़े नहीं होते हैं।
- -मिलर्ज-मेम कोड उत्पन्न होता है जो एक पूर्ण 32-बिट पता मानता है।

-एमएसटीडीमेन
डिफ़ॉल्ट रूप से, GCC स्टार्टअप कोड के विरुद्ध लिंक करता है जो SPU-शैली के मुख्य कार्य को ग्रहण करता है
इंटरफ़ेस (जिसमें एक अपरंपरागत पैरामीटर सूची है)। साथ में -एमएसटीडीमेन, जीसीसी लिंक
स्टार्टअप कोड के खिलाफ आपका प्रोग्राम जो C99-शैली इंटरफ़ेस को "मुख्य" मानता है,
"argv" स्ट्रिंग्स की एक स्थानीय प्रति सहित।

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

-mea32
-mea64
यह मानते हुए कोड संकलित करें कि "__ea" के माध्यम से पहुँचा पीपीयू पता स्थान की ओर संकेत करता है
नामित पता स्थान योग्यता या तो 32 या 64 बिट चौड़ा है। डिफ़ॉल्ट 32 बिट है।
चूंकि यह एक एबीआई-बदलने वाला विकल्प है, निष्पादन योग्य में सभी ऑब्जेक्ट कोड संकलित किए जाने चाहिए
एक ही सेटिंग के साथ।

-मैड्रेस-स्पेस-रूपांतरण
-मनो-पता-स्थान-रूपांतरण
"__ea" एड्रेस स्पेस को जेनेरिक एड्रेस के सुपरसेट के रूप में मानने/अस्वीकार करने की अनुमति दें
स्थान। यह "__ea" और सामान्य सूचक के साथ-साथ . के बीच स्पष्ट प्रकार के कास्ट को सक्षम बनाता है
जेनेरिक पॉइंटर्स का "__ea" पॉइंटर्स में निहित रूपांतरण। अनुमति देने के लिए डिफ़ॉल्ट है
पता स्थान सूचक रूपांतरण।

-mcache-आकार =कैचे आकार
यह विकल्प libgcc के उस संस्करण को नियंत्रित करता है जिसे संकलक एक निष्पादन योग्य से लिंक करता है
और "__ea" पते में चरों तक पहुँचने के लिए सॉफ़्टवेयर-प्रबंधित कैश का चयन करता है
एक विशेष कैश आकार के साथ स्थान। के लिए संभावित विकल्प कैचे आकार रहे 8, 16, 32, 64
और 128. डिफ़ॉल्ट कैश आकार 64KB है।

-परमाणु-अद्यतन
-मनो-परमाणु-अद्यतन
यह विकल्प libgcc के उस संस्करण को नियंत्रित करता है जिसे संकलक एक निष्पादन योग्य से लिंक करता है
और चुनता है कि क्या पीपीयू-साइड वेरिएबल्स के सॉफ़्टवेयर-प्रबंधित कैश में परमाणु अद्यतन हैं
उपयोग किया जाता है। यदि आप परमाणु अद्यतन का उपयोग करते हैं, तो एसपीयू कोड से पीपीयू चर में परिवर्तन का उपयोग कर
एड्रेस स्पेस क्वालिफायर नामित "__ea" अन्य पीपीयू में परिवर्तन में हस्तक्षेप नहीं करता है
पीपीयू कोड से एक ही कैश लाइन में रहने वाले चर। यदि आप परमाणु का उपयोग नहीं करते हैं
अद्यतन, ऐसा हस्तक्षेप हो सकता है; हालाँकि, कैशे लाइनों को वापस लिखना अधिक है
कुशल। डिफ़ॉल्ट व्यवहार परमाणु अद्यतनों का उपयोग करना है।

-mdual-nops
-mdual-nops =n
डिफ़ॉल्ट रूप से, जीसीसी दोहरे मुद्दे को बढ़ाने के लिए एनओपी सम्मिलित करता है जब वह इसके बढ़ने की अपेक्षा करता है
प्रदर्शन. n 0 से 10 तक का मान हो सकता है। एक छोटा n कम एनओपी सम्मिलित करता है। 10 is
डिफ़ॉल्ट, 0 के समान है -मनो-दोहरी-एनओपीएस. के साथ अक्षम -ओस.

-महिंट-मैक्स-नोप्स=n
शाखा संकेत के लिए सम्मिलित करने के लिए एनओपी की अधिकतम संख्या। एक शाखा संकेत कम से कम 8 . होना चाहिए
जिस शाखा से यह प्रभावित हो रहा है, उससे दूर निर्देश। GCC तक सम्मिलित करता है n नोप्स टू
इसे लागू करें, अन्यथा यह शाखा संकेत उत्पन्न नहीं करता है।

-महिंट-अधिकतम-दूरी=n
शाखा संकेत निर्देश का एन्कोडिंग संकेत को 256 . के भीतर सीमित करता है
जिस शाखा को यह प्रभावित कर रहा है, उसके निर्देश। डिफ़ॉल्ट रूप से, GCC सुनिश्चित करता है कि यह अंदर है
125.

-एमसेफ-संकेत
एक हार्डवेयर बग के आसपास काम करें जो एसपीयू को अनिश्चित काल के लिए ठप कर देता है। डिफ़ॉल्ट रूप से, जीसीसी
यह सुनिश्चित करने के लिए "hbrp" निर्देश सम्मिलित करता है कि यह स्टाल नहीं होगा।

ऑप्शंस एसटी प्रणाली V

ये अतिरिक्त विकल्प सिस्टम V रिलीज़ 4 पर अन्य के साथ संगतता के लिए उपलब्ध हैं
उन प्रणालियों पर संकलक:

-G एक साझा वस्तु बनाएँ। ये सिफ़ारिश की जाती है कि -प्रतीकात्मक or कमरा साझा की जगह इस्तेमाल किया जाए।

-क्यूयू ".ident" असेंबलर में, कंपाइलर द्वारा उपयोग किए जाने वाले प्रत्येक टूल के संस्करणों की पहचान करें
आउटपुट में निर्देश।

-क्यूएन आउटपुट फ़ाइल में ".ident" निर्देश जोड़ने से बचना चाहिए (यह डिफ़ॉल्ट है)।

-वाईपी,dirs
निर्देशिका खोजें dirs, और कोई अन्य नहीं, के साथ निर्दिष्ट पुस्तकालयों के लिए -l.

-यम,दीर
निर्देशिका में देखें दीर M4 प्रीप्रोसेसर खोजने के लिए। असेंबलर इसका उपयोग करता है
विकल्प.

टाइल-जीएक्स ऑप्शंस

इन -m विकल्प TILE-Gx पर समर्थित हैं:

-एमसीमॉडल = छोटा
छोटे मॉडल के लिए कोड जनरेट करें। सीधी कॉल के लिए दूरी 500M . तक सीमित है
किसी भी दिशा में। पीसी-सापेक्ष पते 32 बिट हैं। निरपेक्ष पते समर्थन
पूरा पता श्रेणी।

-एमसीमॉडल = बड़ा
बड़े मॉडल के लिए कोड जनरेट करें। कॉल दूरी पर कोई सीमा नहीं है, पीसी-
सापेक्ष पते, या निरपेक्ष पते।

-एमसीपीयू =नाम
लक्षित किए जाने वाले CPU के प्रकार का चयन करता है। वर्तमान में एकमात्र समर्थित प्रकार है टाइलगक्स.

-एम 32
-एम 64
32-बिट या 64-बिट वातावरण के लिए कोड जनरेट करें। 32-बिट वातावरण int सेट करता है,
लंबा, और 32 बिट्स के लिए सूचक। 64-बिट वातावरण int को 32 बिट्स और लंबे समय तक सेट करता है और
64 बिट्स के लिए सूचक।

-मबिग-एंडियन
-थोड़ा-एंडियन
क्रमशः बड़े/छोटे एंडियन मोड में कोड जेनरेट करें।

टाइलप्रो ऑप्शंस

इन -m विकल्प TILEPro पर समर्थित हैं:

-एमसीपीयू =नाम
लक्षित किए जाने वाले CPU के प्रकार का चयन करता है। वर्तमान में एकमात्र समर्थित प्रकार है टाइलप्रो.

-एम 32
32-बिट वातावरण के लिए कोड जेनरेट करें, जो इंट, लॉन्ग और पॉइंटर को 32 बिट्स पर सेट करता है।
यह एकमात्र समर्थित व्यवहार है इसलिए ध्वज को अनिवार्य रूप से अनदेखा किया जाता है।

V850 ऑप्शंस

इन -m विकल्प V850 कार्यान्वयन के लिए परिभाषित किए गए हैं:

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

-मनो-एपी
-मेप
समान इंडेक्स पॉइंटर 4 या अधिक का उपयोग करने वाले मूल ब्लॉक को ऑप्टिमाइज़ (ऑप्टिमाइज़ करें) न करें
पॉइंटर को "ईपी" रजिस्टर में कॉपी करने का समय, और छोटे "sld" और "sst" का उपयोग करें
निर्देश। NS -मेप यदि आप ऑप्टिमाइज़ करते हैं तो विकल्प डिफ़ॉल्ट रूप से चालू रहता है।

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

-एमस्पेस
कोड को यथासंभव छोटा बनाने का प्रयास करें। वर्तमान में, यह सिर्फ चालू करता है -मेप
और -मप्रोलॉग-फ़ंक्शन विकल्प.

-एमटीडीए=n
स्थिर या वैश्विक चर रखें जिनका आकार है n छोटे डेटा क्षेत्र में बाइट्स या उससे कम
वह रजिस्टर "ईपी" इंगित करता है। छोटा डेटा क्षेत्र कुल 256 बाइट्स तक पकड़ सकता है
(बाइट संदर्भों के लिए 128 बाइट्स)।

-एमएसडीए=n
स्थिर या वैश्विक चर रखें जिनका आकार है n छोटे डेटा क्षेत्र में बाइट्स या उससे कम
वह रजिस्टर "जीपी" इंगित करता है। छोटा डेटा क्षेत्र 64 किलोबाइट तक पकड़ सकता है।

-मज़्दा =n
स्थिर या वैश्विक चर रखें जिनका आकार है n पहले 32 . में बाइट्स या उससे कम
किलोबाइट मेमोरी।

-एमवी850
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850 है।

-एमवी850ई3वी5
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850E3V5. प्रीप्रोसेसर स्थिरांक
"__v850e3v5__" परिभाषित किया गया है यदि इस विकल्प का उपयोग किया जाता है।

-एमवी850ई2वी4
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850E3V5. यह के लिए एक उपनाम है
-एमवी850ई3वी5 विकल्प.

-एमवी850ई2वी3
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850E2V3. प्रीप्रोसेसर स्थिरांक
"__v850e2v3__" परिभाषित किया गया है यदि इस विकल्प का उपयोग किया जाता है।

-एमवी850ई2
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850E2 है। प्रीप्रोसेसर स्थिरांक
"__v850e2__" परिभाषित किया गया है यदि इस विकल्प का उपयोग किया जाता है।

-एमवी850ई1
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850E1 है। प्रीप्रोसेसर स्थिरांक
"__v850e1__" और "__v850e__" परिभाषित हैं यदि इस विकल्प का उपयोग किया जाता है।

-mv850es
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850ES है। यह के लिए एक उपनाम है -एमवी850ई1
विकल्प.

-एमवी850ई
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850E है। प्रीप्रोसेसर स्थिरांक "__v850e__"
परिभाषित किया गया है यदि इस विकल्प का उपयोग किया जाता है।

यदि न तो -एमवी850-एमवी850ई-एमवी850ई1-एमवी850ई2-एमवी850ई2वी3-एमवी850ई3वी5
परिभाषित हैं तो एक डिफ़ॉल्ट लक्ष्य प्रोसेसर चुना जाता है और प्रासंगिक __v850*__
प्रीप्रोसेसर स्थिरांक परिभाषित किया गया है।

प्रीप्रोसेसर स्थिरांक "__v850" और "__v851__" हमेशा परिभाषित किए जाते हैं, भले ही
कौन सा प्रोसेसर वेरिएंट टारगेट है।

-mअक्षम-कॉलट
-मनो-अक्षम-कॉल्ट
यह विकल्प v850e, v850e1 के लिए "CALLT" निर्देश की पीढ़ी को दबा देता है,
v850e2, v850e2v3 और v850e3v5 v850 आर्किटेक्चर के फ्लेवर।

यह विकल्प डिफ़ॉल्ट रूप से सक्रिय होता है जब RH850 ABI प्रयोग में होता है (देखें -mrh850-अबी), और
डिफ़ॉल्ट रूप से अक्षम जब GCC ABI उपयोग में हो। यदि "CALLT" निर्देश दिए जा रहे हैं
उत्पन्न होता है तो सी प्रीप्रोसेसर प्रतीक "__V850_CALLT__" परिभाषित किया जाता है।

-मेरेलैक्स
-मो-आराम
पास करें (या पास न करें) -मेरेलैक्स असेंबलर के लिए कमांड-लाइन विकल्प।

-मलोंग-कूद
-मनो-लॉन्ग-जंप्स
पीसी-सापेक्ष कूद निर्देशों की पीढ़ी को अक्षम (या पुन: सक्षम) करें।

-एमसॉफ्ट-फ्लोट
-महार्ड-फ्लोट
हार्डवेयर फ़्लोटिंग पॉइंट निर्देशों की पीढ़ी को अक्षम (या पुन: सक्षम) करें। इस
विकल्प तभी महत्वपूर्ण होता है जब लक्ष्य संरचना होती है वी850ई2वी3 या ऊँचा। अगर
हार्डवेयर फ़्लोटिंग पॉइंट निर्देश उत्पन्न किए जा रहे हैं फिर सी प्रीप्रोसेसर
प्रतीक "__FPU_OK__" परिभाषित किया गया है, अन्यथा प्रतीक "__NO_FPU__" परिभाषित किया गया है।

-मलोप
e3v5 LOOP निर्देश के उपयोग को सक्षम करता है। इस निर्देश का उपयोग नहीं है
डिफ़ॉल्ट रूप से सक्षम जब e3v5 आर्किटेक्चर का चयन किया जाता है क्योंकि इसका उपयोग अभी भी है
प्रयोगात्मक।

-mrh850-अबी
-एमजीएचएस
V850 ABI के RH850 संस्करण के लिए समर्थन सक्षम करता है। यह डिफ़ॉल्ट है। साथ में
एबीआई के इस संस्करण में निम्नलिखित नियम लागू होते हैं:

* पूर्णांक आकार की संरचनाएं और संघ स्मृति सूचक के माध्यम से लौटाए जाते हैं
एक रजिस्टर।

* बड़ी संरचनाएं और संघ (आकार में 8 बाइट्स से अधिक) मूल्य से पारित होते हैं।

* फ़ंक्शंस 16-बिट सीमाओं से संरेखित होते हैं।

* -m8बाइट-संरेखण कमांड-लाइन विकल्प समर्थित है।

* -mअक्षम-कॉलट कमांड-लाइन विकल्प डिफ़ॉल्ट रूप से सक्षम है। NS
-मनो-अक्षम-कॉल्ट कमांड-लाइन विकल्प समर्थित नहीं है।

जब एबीआई के इस संस्करण को सी प्रीप्रोसेसर प्रतीक "__V850_RH850_ABI__" सक्षम किया जाता है
परिभाषित किया गया है।

-एमजीसीसी-अबी
V850 ABI के पुराने GCC संस्करण के लिए समर्थन सक्षम करता है। ABI . के इस संस्करण के साथ
निम्नलिखित नियम लागू होते हैं:

* पूर्णांक आकार की संरचनाएं और संघ "r10" रजिस्टर में लौटाए जाते हैं।

* बड़ी संरचनाएं और संघ (आकार में 8 बाइट्स से अधिक) संदर्भ द्वारा पारित किए जाते हैं।

* आकार के लिए अनुकूलित किए जाने तक, कार्य 32-बिट सीमाओं से गठबंधन होते हैं।

* -m8बाइट-संरेखण कमांड-लाइन विकल्प समर्थित नहीं है।

* -mअक्षम-कॉलट कमांड-लाइन विकल्प समर्थित है लेकिन डिफ़ॉल्ट रूप से सक्षम नहीं है।

जब एबीआई के इस संस्करण को सी प्रीप्रोसेसर प्रतीक "__V850_GCC_ABI__" सक्षम किया जाता है
परिभाषित किया गया है।

-m8बाइट-संरेखण
-मनो-8बाइट-संरेखण
8-बाइट सीमाओं पर "डबल" और "लॉन्ग लॉन्ग" प्रकारों को संरेखित करने के लिए समर्थन सक्षम करता है।
डिफ़ॉल्ट सभी ऑब्जेक्ट्स के संरेखण को अधिकतम 4-बाइट्स तक सीमित करना है। कब
-m8बाइट-संरेखण सी प्रीप्रोसेसर प्रतीक "__V850_8BYTE_ALIGN__" प्रभाव में है
परिभाषित।

-एमबिग-स्विच
बड़े स्विच टेबल के लिए उपयुक्त कोड जेनरेट करें। इस विकल्प का प्रयोग तभी करें जब
असेंबलर/लिंकर स्विच टेबल के भीतर सीमा से बाहर शाखाओं के बारे में शिकायत करते हैं।

-मैप-regs
यह विकल्प संकलक द्वारा उत्पन्न कोड में r2 और r5 का उपयोग करने का कारण बनता है। इस
सेटिंग डिफ़ॉल्ट है।

-मनो-ऐप-regs
यह विकल्प r2 और r5 को निश्चित रजिस्टरों के रूप में मानने का कारण बनता है।

वैक्स ऑप्शंस

इन -m विकल्पों को VAX के लिए परिभाषित किया गया है:

-मुनिक्स
कुछ कूद निर्देश ("aobleq" और इसी तरह) आउटपुट न करें कि यूनिक्स असेंबलर
क्योंकि वैक्स लंबी रेंज में हैंडल नहीं कर सकता है।

-एमजीएनयू
उन कूद निर्देशों को आउटपुट करें, इस धारणा पर कि जीएनयू असेंबलर किया जा रहा है
उपयोग किया गया।

-एमजी डी-फॉर्मेट के बजाय जी-फॉर्मेट फ्लोटिंग-पॉइंट नंबरों के लिए आउटपुट कोड।

विज़ियम ऑप्शंस

-एमडीबग
एक प्रोग्राम जो फ़ाइल I/O करता है और MCM लक्ष्य पर चलने के लिए नियत होना चाहिए
इस विकल्प के साथ जुड़ा हुआ है। यह पुस्तकालयों libc.a और libdebug.a को जोड़ने का कारण बनता है।
प्रोग्राम को GDB रिमोट डिबगिंग के नियंत्रण में लक्ष्य पर चलाया जाना चाहिए
ठूंठ

-मसिम
एक प्रोग्राम जो फ़ाइल I/O करता है और सिम्युलेटर पर चलने के लिए नियत होना चाहिए
विकल्प के साथ जुड़ा हुआ है। यह पुस्तकालयों libc.a और libsim.a को जोड़ने का कारण बनता है।

-एमएफपीयू
-महार्ड-फ्लोट
फ़्लोटिंग-पॉइंट निर्देशों वाला कोड जेनरेट करें। यह डिफ़ॉल्ट है।

-मनो-एफपीयू
-एमसॉफ्ट-फ्लोट
फ़्लोटिंग-पॉइंट के लिए लाइब्रेरी कॉल युक्त कोड जेनरेट करें।

-एमसॉफ्ट-फ्लोट आउटपुट फ़ाइल में कॉलिंग कन्वेंशन को बदलता है; इसलिए, यह केवल . है
उपयोगी अगर आप संकलित करते हैं सब इस विकल्प के साथ एक कार्यक्रम का। विशेष रूप से, आपको चाहिए
संकलन libgcc.a, पुस्तकालय जो जीसीसी के साथ आता है -एमसॉफ्ट-फ्लोट इसके लिए
काम करने के लिए.

-एमसीपीयू =सीपीयू_प्रकार
के लिए निर्देश सेट, रजिस्टर सेट और निर्देश शेड्यूलिंग पैरामीटर सेट करें
मशीन की तरह सीपीयू_प्रकार. के लिए समर्थित मान सीपीयू_प्रकार रहे एमसीएम, gr5 और gr6.

एमसीएम का समानार्थी है gr5 पिछड़ी संगतता के लिए मौजूद है।

डिफ़ॉल्ट रूप से (जब तक कि अन्यथा कॉन्फ़िगर न किया गया हो), GCC GR5 संस्करण के लिए कोड उत्पन्न करता है
विज़ियम वास्तुकला।

- -एमसीपीयू = जीआर 6, GCC, Visium आर्किटेक्चर के GR6 संस्करण के लिए कोड जनरेट करता है।
GR5 कोड से एकमात्र अंतर यह है कि कंपाइलर ब्लॉक चाल उत्पन्न करेगा
निर्देश.

-मट्यून =सीपीयू_प्रकार
मशीन प्रकार के लिए निर्देश शेड्यूलिंग पैरामीटर सेट करें सीपीयू_प्रकार, लेकिन सेट न करें
निर्देश सेट या रजिस्टर सेट करें कि विकल्प -एमसीपीयू =सीपीयू_प्रकार होगा।

-एमएसवी-मोड
पर्यवेक्षक मोड के लिए कोड जनरेट करें, जहां पहुंच पर कोई प्रतिबंध नहीं है
सामान्य रजिस्टरों के लिए। यह डिफ़ॉल्ट है।

-म्यूजर-मोड
उपयोगकर्ता मोड के लिए कोड जनरेट करें, जहां कुछ सामान्य रजिस्टरों तक पहुंच है
निषिद्ध: GR5 पर, r24 से r31 तक के रजिस्टरों को इस मोड में एक्सेस नहीं किया जा सकता है; पर
GR6, केवल रजिस्टर r29 से r31 प्रभावित होते हैं।

वीएमएस ऑप्शंस

इन -m VMS कार्यान्वयन के लिए विकल्प परिभाषित किए गए हैं:

-एमवीएमएस-रिटर्न-कोड्स
"मुख्य" से वीएमएस शर्त कोड लौटाएं। डिफ़ॉल्ट POSIX- शैली की स्थिति लौटाना है
(जैसे त्रुटि) कोड।

-एमडीबग-मुख्य =उपसर्ग
पहले रूटीन को फ्लैग करें जिसका नाम से शुरू होता है उपसर्ग के लिए मुख्य दिनचर्या के रूप में
डिबगर।

-mmalloc64
64-बिट मेमोरी आवंटन रूटीन के लिए डिफ़ॉल्ट।

-एमपॉइंटर-आकार =आकार
पॉइंटर्स का डिफ़ॉल्ट आकार सेट करें। के लिए संभावित विकल्प आकार रहे 32 or कम 32 बिट . के लिए
संकेत, 64 or लंबा 64 बिट पॉइंटर्स के लिए, और नहीं केवल 32 बिट पॉइंटर्स का समर्थन करने के लिए।
बाद वाला विकल्प "pragma पॉइंटर_साइज़" को निष्क्रिय कर देता है।

वीएक्सवर्क्स ऑप्शंस

इस खंड के विकल्प सभी VxWorks लक्ष्यों के लिए परिभाषित हैं। के लिए विशिष्ट विकल्प
लक्ष्य हार्डवेयर उस लक्ष्य के लिए अन्य विकल्पों के साथ सूचीबद्ध हैं।

-एमआरटीपी
GCC VxWorks कर्नेल और रीयल टाइम प्रोसेस (RTP) दोनों के लिए कोड जेनरेट कर सकता है। इस
विकल्प पूर्व से बाद में स्विच करता है। यह प्रीप्रोसेसर मैक्रो को भी परिभाषित करता है
"__आरटीपी__"।

-गैर स्थैतिक
स्थिर पुस्तकालयों के बजाय साझा पुस्तकालयों के खिलाफ एक आरटीपी निष्पादन योग्य लिंक करें। NS
विकल्पों स्थैतिक और कमरा साझा आरटीपी के लिए भी इस्तेमाल किया जा सकता है; स्थैतिक डिफ़ॉल्ट है।

-बस्टेटिक
-बडायनामिक
ये विकल्प लिंकर को दिए जाते हैं। उन्हें संगतता के लिए परिभाषित किया गया है
दीब।

-Xbind-आलसी
फ़ंक्शन कॉल की आलसी बाइंडिंग सक्षम करें। यह विकल्प के बराबर है -डब्ल्यूएल, -जेड, अब और यह
Diab के साथ संगतता के लिए परिभाषित।

-Xbind-अब
फ़ंक्शन कॉल की आलसी बाध्यकारी अक्षम करें। यह विकल्प डिफ़ॉल्ट है और इसके लिए परिभाषित किया गया है
डायब के साथ संगतता।

x86 ऑप्शंस

इन -m कंप्यूटर के x86 परिवार के लिए विकल्पों को परिभाषित किया गया है।

-मार्च=सीपीयू प्रकार
मशीन के प्रकार के लिए निर्देश उत्पन्न करें सीपीयू प्रकार। के विपरीत -मट्यून =सीपीयू प्रकार,
जो केवल निर्दिष्ट के लिए उत्पन्न कोड को ट्यून करता है सीपीयू प्रकार, -मार्च=सीपीयू प्रकार
जीसीसी को कोड उत्पन्न करने की अनुमति देता है जो एक के अलावा अन्य प्रोसेसर पर बिल्कुल भी नहीं चल सकता है
संकेत दिया। निर्दिष्ट करना -मार्च=सीपीयू प्रकार का तात्पर्य -मट्यून =सीपीयू प्रकार.

के लिए विकल्प सीपीयू प्रकार यह है:

देशी
यह निर्धारित करके संकलन समय पर कोड उत्पन्न करने के लिए सीपीयू का चयन करता है
संकलन मशीन का प्रोसेसर प्रकार। का उपयोग करते हुए -मार्च = देशी सभी को सक्षम बनाता है
स्थानीय मशीन द्वारा समर्थित निर्देश सबसेट (इसलिए परिणाम नहीं चल सकता है
विभिन्न मशीनों पर)। का उपयोग करते हुए -मट्यून = देशी स्थानीय के लिए अनुकूलित कोड उत्पन्न करता है
मशीन चयनित निर्देश सेट की बाधाओं के तहत।

i386
मूल इंटेल i386 सीपीयू।

i486
इंटेल i486 सीपीयू। (इस चिप के लिए कोई शेड्यूलिंग लागू नहीं की गई है।)

i586
पेंटियम
बिना एमएमएक्स सपोर्ट वाला इंटेल पेंटियम सीपीयू।

पेंटियम-एमएमएक्स
इंटेल पेंटियम एमएमएक्स सीपीयू, एमएमएक्स निर्देश सेट समर्थन के साथ पेंटियम कोर पर आधारित है।

पेंटियमप्रो
इंटेल पेंटियम प्रो सीपीयू।

i686
जब used के साथ प्रयोग किया जाता है मार्च, पेंटियम प्रो निर्देश सेट का उपयोग किया जाता है, इसलिए कोड चलता है
सभी i686 परिवार चिप्स पर। जब के साथ प्रयोग किया जाता है -मट्यून, इसका एक ही अर्थ है
सामान्य.

पेंटियम2
एमएमएक्स निर्देश सेट समर्थन के साथ पेंटियम प्रो कोर पर आधारित इंटेल पेंटियम II सीपीयू।

पेंटियम3
पेंटियम3m
एमएमएक्स और एसएसई निर्देश सेट के साथ पेंटियम प्रो कोर पर आधारित इंटेल पेंटियम III सीपीयू
समर्थन करें.

पेंटियम एम
इंटेल पेंटियम एम; MMX, SSE और SSE2 के साथ Intel Pentium III CPU का लो-पावर संस्करण
निर्देश सेट समर्थन। Centrino नोटबुक द्वारा उपयोग किया जाता है।

पेंटियम4
पेंटियम4m
MMX, SSE और SSE4 इंस्ट्रक्शन सेट सपोर्ट के साथ Intel Pentium 2 CPU।

प्रेस्कॉट
MMX, SSE, SSE4 और SSE2 निर्देश के साथ Intel Pentium 3 CPU का उन्नत संस्करण
समर्थन सेट करें।

नोकोना
4-बिट एक्सटेंशन, MMX, SSE, SSE64 और . के साथ Intel Pentium 2 CPU का उन्नत संस्करण
SSE3 निर्देश सेट समर्थन।

core2
2-बिट एक्सटेंशन के साथ Intel Core 64 CPU, MMX, SSE, SSE2, SSE3 और SSSE3
निर्देश सेट समर्थन।

Nehalem
64-बिट एक्सटेंशन के साथ Intel Nehalem CPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2 और POPCNT निर्देश सेट समर्थन।

वेस्टमेरे
64-बिट एक्सटेंशन के साथ Intel Westmere CPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES और PCLMUL निर्देश सेट समर्थन।

सैंडी ब्रिज
64-बिट एक्सटेंशन के साथ इंटेल सैंडी ब्रिज सीपीयू, एमएमएक्स, एसएसई, एसएसई 2, एसएसई 3, एसएसएसई 3,
SSE4.1, SSE4.2, POPCNT, AVX, AES और PCLMUL निर्देश सेट समर्थन।

मेरा पुल
64-बिट एक्सटेंशन के साथ इंटेल आइवी ब्रिज सीपीयू, एमएमएक्स, एसएसई, एसएसई 2, एसएसई 3, एसएसएसई 3, एसएसई 4.1,
SSE4.2, POPCNT, AVX, AES, PCLMUL, FSGSBASE, RDRND और F16C निर्देश सेट
समर्थन करें.

Haswell
64-बिट एक्सटेंशन के साथ इंटेल हैसवेल सीपीयू, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2
और F16C निर्देश सेट समर्थन।

व्यापक
64-बिट एक्सटेंशन के साथ इंटेल ब्रॉडवेल सीपीयू, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C, RDSEED, ADCX और PREFETCHW निर्देश सेट समर्थन।

बोनेल
64-बिट एक्सटेंशन, MOVBE, MMX, SSE, SSE2, SSE3 और SSSE3 के साथ Intel Bonnell CPU
निर्देश सेट समर्थन।

सिल्वरमोंट
64-बिट एक्सटेंशन के साथ इंटेल सिल्वरमोंट सीपीयू, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AES, PCLMUL और RDRND निर्देश सेट समर्थन।

के.एन.एल 64-बिट एक्सटेंशन के साथ इंटेल नाइट का लैंडिंग सीपीयू, MOVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER और AVX512CD
निर्देश सेट समर्थन।

k6 एमएमएक्स निर्देश सेट समर्थन के साथ एएमडी के6 सीपीयू।

k6-2
k6-3
MMX और 6DNow के साथ AMD K3 CPU के बेहतर संस्करण! निर्देश सेट समर्थन।

Athlon
एथलॉन-टबर्ड
एमएमएक्स के साथ एएमडी एथलॉन सीपीयू, 3dNOW!, 3DNow बढ़ाया! और SSE प्रीफ़ेच निर्देश
समर्थन करें.

एथलॉन-4
एथलॉन-एक्सपी
एथलॉन-एमपी
MMX, 3DNow! के साथ बेहतर AMD Athlon CPU, 3DNow! और पूर्ण एसएसई निर्देश
समर्थन सेट करें।

k8
Opteron
एथलॉन64
एथलॉन-एफएक्स
x8-86 निर्देश सेट समर्थन के साथ AMD K64 कोर पर आधारित प्रोसेसर, जिसमें शामिल हैं
AMD Opteron, Athlon 64, और Athlon 64 FX प्रोसेसर। (यह एमएमएक्स को सुपरसेट करता है,
SSE, SSE2, 3DNow!, 3DNow बढ़ाया! और 64-बिट निर्देश सेट एक्सटेंशन।)

k8-sse3
Opteron-sse3
एथलॉन64-एसएसई3
SSE8 निर्देश सेट समर्थन के साथ AMD K3 कोर के बेहतर संस्करण।

एमडीएफएएम10
बार्सिलोना
x10-86 निर्देश सेट समर्थन के साथ AMD परिवार 64h कोर पर आधारित CPU। (इस
सुपरसेट्स MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, एन्हांस्ड 3DNow!, ABM और 64-बिट
निर्देश सेट एक्सटेंशन।)

बीडीवर1
x15-86 निर्देश सेट समर्थन के साथ AMD परिवार 64h कोर पर आधारित CPU। (इस
सुपरसेट FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A,
SSSE3, SSE4.1, SSE4.2, ABM और 64-बिट निर्देश सेट एक्सटेंशन।)

बीडीवर2
AMD परिवार 15h कोर आधारित CPU x86-64 निर्देश सेट समर्थन के साथ। (इस
सुपरसेट BMI, TBM, F16C, FMA, FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE,
SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM और 64-बिट निर्देश सेट
एक्सटेंशन।)

बीडीवर3
AMD परिवार 15h कोर आधारित CPU x86-64 निर्देश सेट समर्थन के साथ। (इस
सुपरसेट BMI, TBM, F16C, FMA, FMA4, FSGSBASE, AVX, XOP, LWP, AES, PCL_MUL, CX16,
MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM और 64-बिट निर्देश सेट
एक्सटेंशन।

बीडीवर4
AMD परिवार 15h कोर आधारित CPU x86-64 निर्देश सेट समर्थन के साथ। (इस
सुपरसेट BMI, BMI2, TBM, F16C, FMA, FMA4, FSGSBASE, AVX, AVX2, XOP, LWP, AES,
PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM और
64-बिट निर्देश सेट एक्सटेंशन।

btver1
x14-86 निर्देश सेट समर्थन के साथ AMD परिवार 64h कोर पर आधारित CPU। (इस
सुपरसेट MMX, SSE, SSE2, SSE3, SSSE3, SSE4A, CX16, ABM और 64-बिट निर्देश सेट
एक्सटेंशन।)

btver2
x16-86 निर्देश सेट समर्थन के साथ AMD परिवार 64h कोर पर आधारित CPU। इस
MOVBE, F16C, BMI, AVX, PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A,
SSSE3, SSE3, SSE2, SSE, MMX और 64-बिट निर्देश सेट एक्सटेंशन।

चरखी-c6
IDT WinChip C6 CPU, अतिरिक्त MMX निर्देश सेट के साथ i486 के समान व्यवहार करता है
समर्थन करें.

विंचिप2
IDT WinChip 2 CPU, अतिरिक्त MMX और 486DNow के साथ i3 की तरह ही व्यवहार करता है!
निर्देश सेट समर्थन।

c3 MMX और 3DNow के साथ C3 CPU के माध्यम से! निर्देश सेट समर्थन। (कोई शेड्यूलिंग नहीं है
इस चिप के लिए लागू किया गया।)

c3-2
MMX और SSE निर्देश सेट समर्थन के साथ VIA C3-2 (नहेमायाह/C5XL) CPU। (नहीं
इस चिप के लिए शेड्यूलिंग लागू की गई है।)

जीओड
MMX और 3DNow के साथ AMD Geode एम्बेडेड प्रोसेसर! निर्देश सेट समर्थन।

-मट्यून =सीपीयू प्रकार
ट्यून टू सीपीयू प्रकार उत्पन्न कोड के बारे में लागू सब कुछ, ABI को छोड़कर
और उपलब्ध निर्देशों का सेट। एक विशिष्ट चुनते समय सीपीयू प्रकार कार्यक्रम
चीजें उस विशेष चिप के लिए उचित रूप से, संकलक कोई कोड उत्पन्न नहीं करता है
जो डिफ़ॉल्ट मशीन प्रकार पर तब तक नहीं चल सकता जब तक आप a . का उपयोग नहीं करते -मार्च=सीपीयू प्रकार विकल्प.
उदाहरण के लिए, यदि GCC को i686-pc-linux-gnu के लिए कॉन्फ़िगर किया गया है तो -मट्यून=पेंटियम4 उत्पन्न करता है
कोड जो पेंटियम 4 के लिए ट्यून किया गया है लेकिन फिर भी i686 मशीनों पर चलता है।

के लिए विकल्प सीपीयू प्रकार के लिए समान हैं मार्च। के अतिरिक्त, -मट्यून 2 . का समर्थन करता है
के लिए अतिरिक्त विकल्प सीपीयू प्रकार:

सामान्य
सबसे सामान्य IA32/AMD64/EM64T प्रोसेसर के लिए अनुकूलित कोड तैयार करें। अगर तुम
उस सीपीयू को जानें जिस पर आपका कोड चलेगा, तो आपको संबंधित का उपयोग करना चाहिए
-मट्यून or मार्च के बजाय विकल्प -मट्यून = सामान्य. लेकिन, अगर आपको नहीं पता
वास्तव में आपके एप्लिकेशन के CPU उपयोगकर्ताओं के पास क्या होगा, तो आपको इसका उपयोग करना चाहिए
विकल्प.

जैसे ही बाजार में नए प्रोसेसर तैनात किए जाते हैं, इस विकल्प का व्यवहार
बदल जाएगा। इसलिए, यदि आप जीसीसी के नए संस्करण में अपग्रेड करते हैं, तो कोड जनरेशन
इस विकल्प द्वारा नियंत्रित सबसे अधिक प्रोसेसर को प्रतिबिंबित करने के लिए बदल जाएगा
उस समय सामान्य जीसीसी का संस्करण जारी किया गया था।

कोई नहीं है -मार्च = सामान्य विकल्प क्योंकि मार्च निर्देश सेट को इंगित करता है
कंपाइलर उपयोग कर सकता है, और सभी पर लागू होने वाला कोई सामान्य निर्देश सेट नहीं है
संसाधक इसके विपरीत, -मट्यून प्रोसेसर को इंगित करता है (या, इस मामले में,
प्रोसेसर का संग्रह) जिसके लिए कोड अनुकूलित किया गया है।

इंटेल
नवीनतम इंटेल प्रोसेसर के लिए अनुकूलित कोड तैयार करें, जो हैसवेल हैं
और जीसीसी के इस संस्करण के लिए सिल्वरमोंट। यदि आप उस CPU को जानते हैं जिस पर आपका कोड है
चलेंगे, तो आपको संबंधित का उपयोग करना चाहिए -मट्यून or मार्च के बजाय विकल्प
-मट्यून = इंटेल. लेकिन, यदि आप चाहते हैं कि आपका आवेदन Haswell दोनों पर बेहतर प्रदर्शन करे
और सिल्वरमोंट, तो आपको इस विकल्प का उपयोग करना चाहिए।

जैसे ही बाजार में नए इंटेल प्रोसेसर तैनात किए जाते हैं, इसका व्यवहार
विकल्प बदल जाएगा। इसलिए, यदि आप जीसीसी के नए संस्करण में अपग्रेड करते हैं, तो कोड
इस विकल्प द्वारा नियंत्रित पीढ़ी सबसे वर्तमान इंटेल को प्रतिबिंबित करने के लिए बदल जाएगी
प्रोसेसर उस समय जीसीसी का संस्करण जारी किया गया था।

कोई नहीं है -मार्च = इंटेल विकल्प क्योंकि मार्च निर्देश सेट को इंगित करता है
कंपाइलर उपयोग कर सकता है, और सभी पर लागू होने वाला कोई सामान्य निर्देश सेट नहीं है
संसाधक इसके विपरीत, -मट्यून प्रोसेसर को इंगित करता है (या, इस मामले में,
प्रोसेसर का संग्रह) जिसके लिए कोड अनुकूलित किया गया है।

-एमसीपीयू =सीपीयू प्रकार
के लिए पदावनत पर्यायवाची -मट्यून.

-एमएफपीमठ=इकाई
चयनित इकाई के लिए फ्लोटिंग-पॉइंट अंकगणित उत्पन्न करें इकाई. के लिए विकल्प इकाई यह है:

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

यह x86-32 लक्ष्यों के लिए डिफ़ॉल्ट विकल्प है।

ईएसएस SSE निर्देश सेट में मौजूद अदिश फ़्लोटिंग-पॉइंट निर्देशों का उपयोग करें। इस
निर्देश सेट पेंटियम III और नए चिप्स द्वारा समर्थित है, और एएमडी लाइन में
एथलॉन -4, एथलॉन एक्सपी और एथलॉन एमपी चिप्स द्वारा। SSE का पुराना संस्करण
निर्देश सेट केवल एकल-सटीक अंकगणित का समर्थन करता है, इस प्रकार डबल और
विस्तारित-सटीक अंकगणित अभी भी 387 का उपयोग करके किया जाता है। एक बाद का संस्करण, वर्तमान
केवल पेंटियम 4 और एएमडी x86-64 चिप्स में, डबल-सटीक अंकगणित का भी समर्थन करता है।

x86-32 कंपाइलर के लिए, आपको अवश्य उपयोग करना चाहिए -मार्च=सीपीयू प्रकार, -एमएसएसई or -एमएसएसई2 पर स्विच करता है
SSE एक्सटेंशन सक्षम करें और इस विकल्प को प्रभावी बनाएं। x86-64 कंपाइलर के लिए,
ये एक्सटेंशन डिफ़ॉल्ट रूप से सक्षम हैं।

परिणामी कोड अधिकांश मामलों में काफी तेज होना चाहिए और
387 कोड की संख्यात्मक अस्थिरता की समस्याओं से बचें, लेकिन कुछ मौजूदा तोड़ सकते हैं
कोड जो अस्थायी रूप से 80 बिट होने की अपेक्षा करता है।

यह x86-64 कंपाइलर के लिए डिफ़ॉल्ट विकल्प है।

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

-मासम =बोली
चयनित का उपयोग करके आउटपुट असेंबली निर्देश बोली. यह भी प्रभावित करता है कि कौन सी बोली है
मूल "एएसएम" और विस्तारित "एएसएम" के लिए उपयोग किया जाता है। समर्थित विकल्प (बोली क्रम में) हैं तक
or इंटेल। डिफ़ॉल्ट है तक. डार्विन समर्थन नहीं करता इंटेल.

-मिई-एफपी
-मनो-आईईईई-एफपी
नियंत्रित करें कि कंपाइलर IEEE फ़्लोटिंग-पॉइंट तुलनाओं का उपयोग करता है या नहीं। इन
उस मामले को सही ढंग से संभालें जहां तुलना का परिणाम अनियंत्रित है।

-एमसॉफ्ट-फ्लोट
फ़्लोटिंग पॉइंट के लिए लाइब्रेरी कॉल युक्त आउटपुट जेनरेट करें।

चेतावनी: अपेक्षित पुस्तकालय जीसीसी का हिस्सा नहीं हैं। आम तौर पर की सुविधाएं
मशीन के सामान्य सी कंपाइलर का उपयोग किया जाता है, लेकिन इसे सीधे क्रॉस-
संकलन उपयुक्त पुस्तकालय उपलब्ध कराने के लिए आपको अपनी व्यवस्था स्वयं करनी होगी
क्रॉस-संकलन के लिए कार्य।

उन मशीनों पर जहां कोई फ़ंक्शन 80387 रजिस्टर में फ़्लोटिंग-पॉइंट परिणाम देता है
स्टैक, कुछ फ़्लोटिंग-पॉइंट ऑपकोड उत्सर्जित हो सकते हैं, भले ही -एमसॉफ्ट-फ्लोट प्रयोग किया जाता है।

-मनो-एफपी-रिट-इन-387
कार्यों के वापसी मूल्यों के लिए एफपीयू रजिस्टरों का उपयोग न करें।

सामान्य कॉलिंग सम्मेलन में "फ्लोट" और "डबल" प्रकार के फ़ंक्शन रिटर्न मान होते हैं
एफपीयू रजिस्टर में, भले ही एफपीयू न हो। विचार यह है कि ऑपरेटिंग सिस्टम
एक एफपीयू का अनुकरण करना चाहिए।

विकल्प -मनो-एफपी-रिट-इन-387 सामान्य सीपीयू में ऐसे मूल्यों को वापस करने का कारण बनता है
इसके बजाय रजिस्टर।

-मनो-फैंसी-गणित-387
कुछ 387 एमुलेटर "sin", "cos" और "sqrt" निर्देशों का समर्थन नहीं करते हैं
387. उन निर्देशों को उत्पन्न करने से बचने के लिए इस विकल्प को निर्दिष्ट करें। यह विकल्प है
OpenBSD और NetBSD पर डिफ़ॉल्ट। यह विकल्प तब ओवरराइड होता है जब मार्च दर्शाता है कि
लक्ष्य सीपीयू में हमेशा एक एफपीयू होता है और इसलिए निर्देश को अनुकरण की आवश्यकता नहीं होती है।
ये निर्देश तब तक उत्पन्न नहीं होते जब तक आप इसका उपयोग भी नहीं करते हैं
-फनसेफ-गणित-अनुकूलन स्विच.

-मैलिग्न-डबल
-मनो-संरेखण-डबल
नियंत्रित करें कि क्या GCC a . पर "डबल", "लॉन्ग डबल", और "लॉन्ग लॉन्ग" वेरिएबल को अलाइन करता है
दो-शब्द की सीमा या एक-शब्द की सीमा। दो-शब्दों पर "डबल" चर संरेखित करना
सीमा कोड उत्पन्न करती है जो अधिक की कीमत पर पेंटियम पर कुछ तेज चलता है
याद।

x86-64 पर, -मैलिग्न-डबल डिफ़ॉल्ट रूप से सक्षम है।

चेतावनी: यदि आप उपयोग करते हैं -मैलिग्न-डबल स्विच, उपरोक्त प्रकार वाली संरचनाएं
प्रकाशित एप्लिकेशन बाइनरी इंटरफ़ेस विनिर्देशों की तुलना में अलग तरह से संरेखित हैं
x86-32 के लिए और बिना संकलित कोड में संरचनाओं के साथ बाइनरी संगत नहीं हैं
वह स्विच।

-एम 96 बिट-लॉन्ग-डबल
-एम 128 बिट-लॉन्ग-डबल
ये स्विच "लॉन्ग डबल" प्रकार के आकार को नियंत्रित करते हैं। x86-32 एप्लिकेशन बाइनरी
इंटरफ़ेस आकार को 96 बिट्स निर्दिष्ट करता है, इसलिए -एम 96 बिट-लॉन्ग-डबल में डिफ़ॉल्ट है
32-बिट मोड।

आधुनिक आर्किटेक्चर (पेंटियम और नए) 8- के साथ संरेखित होने के लिए "लॉन्ग डबल" पसंद करते हैं
या 16-बाइट सीमा। एबीआई के अनुरूप सरणियों या संरचनाओं में, यह नहीं है
मुमकिन। तो निर्दिष्ट करना -एम 128 बिट-लॉन्ग-डबल "लॉन्ग डबल" को 16-बाइट में संरेखित करता है
अतिरिक्त 32-बिट शून्य के साथ "लॉन्ग डबल" को पैडिंग करके सीमा।

X86-64 कंपाइलर में, -एम 128 बिट-लॉन्ग-डबल इसकी ABI के रूप में डिफ़ॉल्ट पसंद है
निर्दिष्ट करता है कि "लॉन्ग डबल" 16-बाइट सीमा पर संरेखित है।

ध्यान दें कि इनमें से कोई भी विकल्प x87 मानक पर कोई अतिरिक्त सटीकता सक्षम नहीं करता है
"लॉन्ग डबल" के लिए 80 बिट्स का।

चेतावनी: यदि आप अपने लक्ष्य ABI के लिए डिफ़ॉल्ट मान को ओवरराइड करते हैं, तो इससे आकार बदल जाता है
"लॉन्ग डबल" वेरिएबल वाली संरचनाओं और सरणियों के साथ-साथ संशोधित करना
"लॉन्ग डबल" लेने वाले फंक्शन के लिए फंक्शन कॉलिंग कन्वेंशन। इसलिए वे नहीं हैं
उस स्विच के बिना संकलित कोड के साथ बाइनरी-संगत।

-मलॉन्ग-डबल-64
-मलॉन्ग-डबल-80
-मलॉन्ग-डबल-128
ये स्विच "लॉन्ग डबल" प्रकार के आकार को नियंत्रित करते हैं। 64 बिट का आकार बनाता है
"लॉन्ग डबल" टाइप "डबल" टाइप के बराबर है। यह 32-बिट के लिए डिफ़ॉल्ट है
बायोनिक सी लाइब्रेरी। 128 बिट का आकार "लॉन्ग डबल" टाइप को के बराबर बनाता है
"__float128" प्रकार। यह 64-बिट बायोनिक सी लाइब्रेरी के लिए डिफ़ॉल्ट है।

चेतावनी: यदि आप अपने लक्ष्य ABI के लिए डिफ़ॉल्ट मान को ओवरराइड करते हैं, तो इससे आकार बदल जाता है
"लॉन्ग डबल" वेरिएबल वाली संरचनाओं और सरणियों के साथ-साथ संशोधित करना
"लॉन्ग डबल" लेने वाले फंक्शन के लिए फंक्शन कॉलिंग कन्वेंशन। इसलिए वे नहीं हैं
उस स्विच के बिना संकलित कोड के साथ बाइनरी-संगत।

-मैलिग्न-डेटा =टाइप
नियंत्रित करें कि GCC चरों को कैसे संरेखित करता है। के लिए समर्थित मान टाइप रहे compat उपयोग में वृद्धि
संरेखण मूल्य संगत जीसीसी 4.8 और इससे पहले का उपयोग करता है, अबी संरेखण मान का उपयोग करता है
psABI द्वारा निर्दिष्ट, और कैशलाइन मिलान करने के लिए बढ़े हुए संरेखण मान का उपयोग करता है
कैश लाइन का आकार। compat डिफ़ॉल्ट है।

-मिलर्ज-डेटा-दहलीज =द्वार
. -एमसीमॉडल = मध्यम निर्दिष्ट है, डेटा ऑब्जेक्ट . से बड़ा है द्वार में रखा गया है
बड़ा डेटा अनुभाग। यह मान जुड़े हुए सभी ऑब्जेक्ट्स में समान होना चाहिए
बाइनरी, और डिफॉल्ट से 65535।

-एमआरटीडी
एक अलग फ़ंक्शन-कॉलिंग कन्वेंशन का उपयोग करें, जिसमें फ़ंक्शन जो एक निश्चित लेते हैं
तर्कों की संख्या "ret ." के साथ वापस आती है अंक" निर्देश, जो उनके तर्कों को पॉप करता है
लौटते समय। यह कॉलर में एक निर्देश बचाता है क्योंकि इसकी कोई आवश्यकता नहीं है
वहां तर्क पॉप करें।

आप निर्दिष्ट कर सकते हैं कि इस कॉलिंग अनुक्रम के साथ एक व्यक्तिगत फ़ंक्शन को कॉल किया जाता है
फ़ंक्शन विशेषता "stdcall"। आप इसे ओवरराइड भी कर सकते हैं -एमआरटीडी का उपयोग करके विकल्प
फ़ंक्शन विशेषता "cdecl"।

चेतावनी: यह कॉलिंग कन्वेंशन सामान्य रूप से यूनिक्स पर उपयोग किए जाने वाले के साथ असंगत है,
इसलिए यदि आपको यूनिक्स कंपाइलर के साथ संकलित पुस्तकालयों को कॉल करने की आवश्यकता है तो आप इसका उपयोग नहीं कर सकते हैं।

साथ ही, आपको उन सभी कार्यों के लिए फ़ंक्शन प्रोटोटाइप प्रदान करना होगा जो चर लेते हैं
तर्कों की संख्या ("प्रिंटफ" सहित); अन्यथा गलत कोड उत्पन्न होता है
उन कार्यों के लिए कॉल।

इसके अलावा, यदि आप किसी फ़ंक्शन को बहुत अधिक कॉल करते हैं, तो गंभीर रूप से गलत कोड परिणाम देता है
तर्क। (आम तौर पर, अतिरिक्त तर्कों को हानिरहित रूप से अनदेखा किया जाता है।)

-मृगपर्म =संख्या
नियंत्रित करें कि पूर्णांक तर्कों को पारित करने के लिए कितने रजिस्टरों का उपयोग किया जाता है। डिफ़ॉल्ट रूप से, नहीं
तर्कों को पारित करने के लिए रजिस्टरों का उपयोग किया जाता है, और अधिकतम 3 रजिस्टरों का उपयोग किया जा सकता है। आप ऐसा कर सकते हैं
फ़ंक्शन विशेषता का उपयोग करके किसी विशिष्ट फ़ंक्शन के लिए इस व्यवहार को नियंत्रित करें
"रेगपरम"।

चेतावनी: यदि आप इस स्विच का उपयोग करते हैं, और संख्या शून्य नहीं है, तो आपको सभी मॉड्यूल बनाने होंगे
किसी भी पुस्तकालय सहित, समान मूल्य के साथ। इसमें सिस्टम लाइब्रेरी शामिल हैं और
स्टार्टअप मॉड्यूल।

-मसेरेगपार्म
फ्लोट और दोहरे तर्कों और वापसी मूल्यों के लिए एसएसई रजिस्टर पासिंग कन्वेंशन का उपयोग करें।
फ़ंक्शन विशेषता का उपयोग करके आप किसी विशिष्ट फ़ंक्शन के लिए इस व्यवहार को नियंत्रित कर सकते हैं
"सेरेगपर्म"।

चेतावनी: यदि आप इस स्विच का उपयोग करते हैं तो आपको समान मान वाले सभी मॉड्यूल बनाने होंगे,
किसी भी पुस्तकालय सहित। इसमें सिस्टम लाइब्रेरी और स्टार्टअप मॉड्यूल शामिल हैं।

-mvect8-रिट-इन-मेम
एमएमएक्स रजिस्टरों के बजाय स्मृति में 8-बाइट वैक्टर लौटाएं। यह डिफ़ॉल्ट चालू है
Solaris@tie{}8 और 9 और VxWorks सन स्टूडियो कम्पाइलर के ABI से तब तक मेल खाएंगे जब तक
संस्करण 12. बाद के संकलक संस्करण (स्टूडियो 12 अपडेट@टाई{}1 से शुरू) का अनुसरण करें
अन्य x86 लक्ष्यों द्वारा उपयोग किया जाने वाला ABI, जो Solaris@tie{}10 ​​और बाद के संस्करणों पर डिफ़ॉल्ट है।
केवल यदि आपको मौजूदा कोड के साथ संगत रहने की आवश्यकता है तो इस विकल्प का उपयोग करें
वे पिछले संकलक संस्करण या जीसीसी के पुराने संस्करण।

-एमपीसी32
-एमपीसी64
-एमपीसी80
80387 फ्लोटिंग-पॉइंट परिशुद्धता को 32, 64 या 80 बिट्स पर सेट करें। कब -एमपीसी32 अधिकृत है,
फ़्लोटिंग-पॉइंट ऑपरेशंस के परिणामों के महत्व को 24 बिट्स तक गोल किया जाता है
(एकल परिशुद्धता); -एमपीसी64 फ़्लोटिंग-पॉइंट के परिणामों के महत्व को गोल करता है
53 बिट्स (डबल प्रिसिजन) और . के लिए ऑपरेशन -एमपीसी80 परिणामों के महत्व को पूरा करता है
फ़्लोटिंग-पॉइंट ऑपरेशंस को 64 बिट्स (विस्तारित डबल परिशुद्धता) तक, जो है
चूक जाना। जब इस विकल्प का उपयोग किया जाता है, तो उच्च परिशुद्धता में फ़्लोटिंग-पॉइंट ऑपरेशंस होते हैं
स्पष्ट रूप से FPU नियंत्रण शब्द सेट किए बिना प्रोग्रामर के लिए उपलब्ध नहीं है।

फ्लोटिंग-पॉइंट ऑपरेशंस के राउंडिंग को डिफ़ॉल्ट 80 बिट से कम पर सेट कर सकते हैं
कुछ कार्यक्रमों को 2% या अधिक गति दें। ध्यान दें कि कुछ गणितीय पुस्तकालय यह मानते हैं कि
विस्तारित-सटीक (80-बिट) फ़्लोटिंग-पॉइंट संचालन डिफ़ॉल्ट रूप से सक्षम होते हैं; दिनचर्या
ऐसे पुस्तकालयों में सटीकता का महत्वपूर्ण नुकसान हो सकता है, आमतौर पर ऐसा-
"विनाशकारी रद्दीकरण" कहा जाता है, जब इस विकल्प का उपयोग सटीकता को सेट करने के लिए किया जाता है
विस्तारित परिशुद्धता से कम।

-mstackrealign
प्रवेश पर स्टैक को पुन: संरेखित करें। X86 पर, -mstackrealign विकल्प एक उत्पन्न करता है
वैकल्पिक प्रस्तावना और उपसंहार जो आवश्यक होने पर रन-टाइम स्टैक को पुन: संरेखित करता है। इस
आधुनिक कोड के साथ 4-बाइट स्टैक संरेखण रखने वाले विरासत कोड को मिलाने का समर्थन करता है
एसएसई संगतता के लिए 16-बाइट स्टैक संरेखण रखें। विशेषता भी देखें
"force_align_arg_pointer", व्यक्तिगत कार्यों पर लागू होता है।

-mpreferred-ढेर-सीमा =संख्या
स्टैक की सीमा को 2 से ऊपर उठाकर रखने का प्रयास करें संख्या बाइट सीमा। अगर
-mpreferred-ढेर-सीमा निर्दिष्ट नहीं है, डिफ़ॉल्ट 4 (16 बाइट्स या 128 बिट) है।

चेतावनी: SSE एक्सटेंशन के साथ x86-64 आर्किटेक्चर के लिए कोड जनरेट करते समय
विकलांग, -मप्रीफर्ड-स्टैक-बाउंड्री=3 स्टैक सीमा को संरेखित रखने के लिए इस्तेमाल किया जा सकता है
8 बाइट सीमा तक। चूँकि x86-64 ABI को 16 बाइट स्टैक संरेखण की आवश्यकता होती है, यह ABI है
असंगत और नियंत्रित वातावरण में उपयोग करने का इरादा है जहां स्टैक स्पेस है
महत्वपूर्ण सीमा। 16 . के साथ संकलित कार्यों के दौरान यह विकल्प गलत कोड की ओर ले जाता है
बाइट स्टैक संरेखण (जैसे मानक पुस्तकालय से कार्य) के साथ कहा जाता है
गलत संरेखित ढेर। इस मामले में, एसएसई निर्देश गलत तरीके से मेमोरी एक्सेस का कारण बन सकते हैं
जाल इसके अलावा, 16 बाइट संरेखित करने के लिए चर तर्क गलत तरीके से संभाले जाते हैं
ऑब्जेक्ट्स (x87 लॉन्ग डबल और __int128) सहित, गलत परिणाम देते हैं। आपको चाहिए
के साथ सभी मॉड्यूल बनाएं -मप्रीफर्ड-स्टैक-बाउंड्री=3, किसी भी पुस्तकालय सहित। इस
सिस्टम लाइब्रेरी और स्टार्टअप मॉड्यूल शामिल हैं।

-मिनकमिंग-स्टैक-सीमा =संख्या
मान लें कि आने वाले स्टैक को 2 से ऊपर उठाकर संरेखित किया गया है संख्या बाइट सीमा। अगर
-मिनकमिंग-स्टैक-सीमा निर्दिष्ट नहीं है, द्वारा निर्दिष्ट किया गया है
-mpreferred-ढेर-सीमा प्रयोग किया जाता है।

पेंटियम और पेंटियम प्रो पर, "डबल" और "लॉन्ग डबल" मानों को a . के साथ संरेखित किया जाना चाहिए
8-बाइट सीमा (देखें -मैलिग्न-डबल) या महत्वपूर्ण रन टाइम प्रदर्शन भुगतना
दंड। पेंटियम III पर, स्ट्रीमिंग SIMD एक्सटेंशन (SSE) डेटा प्रकार "__m128" मई
अगर यह 16-बाइट गठबंधन नहीं है तो ठीक से काम नहीं करता है।

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

यह अतिरिक्त संरेखण अतिरिक्त स्टैक स्थान का उपभोग करता है, और आम तौर पर कोड बढ़ाता है
आकार। कोड जो स्टैक स्पेस उपयोग के प्रति संवेदनशील है, जैसे एम्बेडेड सिस्टम और
ऑपरेटिंग सिस्टम कर्नेल, पसंदीदा संरेखण को कम करना चाह सकते हैं
-मप्रीफर्ड-स्टैक-बाउंड्री=2.

-एमएमएमएक्स
-एमएसएसई
-एमएसएसई2
-एमएसएसई3
-एमएसएसएसई3
-एमएसएसई4
-एमएसएसई4ए
-एमएसएसई4.1
-एमएसएसई4.2
-मावक्स
-मावएक्स2
-mavx512f
-mavx512pf
-mavx512er
-mavx512cd
-मशा
-मासे
-एमपीसीएलमुल
-मक्लफुशोप्ट
-एमएफएसजीएसबेस
-एमआरडीआरएनडी
-एमएफ16सी
-एमएफएमए
-एमएफएमए4
-मनो-fma4
-mprefetchwt1
-मक्सोप
-एमएलडब्ल्यूपी
-m3dnow
-एमपीओपीसीएनटी
-मबम
-एमबीएमआई
-एमबीएमआई2
-एमएलजेडसीएनटी
-एमएफएक्सएसआर
-एमएक्ससेव
-mxsaveopt
-mxsavec
-एमएक्ससेव्स
-एमआरटीएम
-एमटीबीएम
-एमएमपीएक्स
-mmwaitx
ये स्विच MMX, SSE, SSE2, SSE3, SSSE3 में निर्देशों के उपयोग को सक्षम करते हैं।
SSE4.1, AVX, AVX2, AVX512F, AVX512PF, AVX512ER, AVX512CD, SHA, AES, PCLMUL, FSGSBASE,
RDRND, F16C, FMA, SSE4A, FMA4, XOP, LWP, ABM, BMI, BMI2, FXSR, XSAVE, XSAVEOPT, LZCNT,
RTM, MPX, MWAITX या 3DNow! विस्तारित निर्देश सेट। प्रत्येक का एक संगत है -मनो-
इन निर्देशों के उपयोग को अक्षम करने का विकल्प।

ये एक्सटेंशन बिल्ट-इन फ़ंक्शंस के रूप में भी उपलब्ध हैं: देखें x86 अन्तर्निर्मित में कार्य,
इन स्विचों द्वारा सक्षम और अक्षम किए गए कार्यों के विवरण के लिए।

फ्लोटिंग-पॉइंट कोड से स्वचालित रूप से SSE/SSE2 निर्देश उत्पन्न करने के लिए (विरोध के रूप में)
387 निर्देशों के लिए), देखें -एमएफपीएमथ = एसएसई.

GCC SSEx निर्देशों को तब दबाता है जब -मावक्स प्रयोग किया जाता है। इसके बजाय, यह नया AVX उत्पन्न करता है
जरूरत पड़ने पर सभी SSEx निर्देशों के लिए निर्देश या AVX तुल्यता।

ये विकल्प जीसीसी को जेनरेट कोड में इन विस्तारित निर्देशों का उपयोग करने में सक्षम बनाते हैं, यहां तक ​​कि
बिना -एमएफपीएमथ = एसएसई. रन-टाइम CPU डिटेक्शन करने वाले एप्लिकेशन को कंपाइल करना चाहिए
उपयुक्त झंडों का उपयोग करते हुए प्रत्येक समर्थित आर्किटेक्चर के लिए अलग फाइलें। में
विशेष रूप से, सीपीयू डिटेक्शन कोड वाली फाइल को बिना संकलित किया जाना चाहिए
ये विकल्प।

-mdump-ट्यून-सुविधाएँ
यह विकल्प GCC को x86 प्रदर्शन ट्यूनिंग सुविधाओं के नामों को डंप करने का निर्देश देता है और
डिफ़ॉल्ट सेटिंग्स। नामों का उपयोग किया जा सकता है -एमटीयून-सीटीआरएल =सुविधा की सूची.

-एमटीयून-सीटीआरएल =सुविधा की सूची
इस विकल्प का उपयोग x86 कोड जनरेशन सुविधाओं का बारीक नियंत्रण करने के लिए किया जाता है।
सुविधा की सूची अल्पविराम से अलग की गई सूची है सुविधा names. यह सभी देखें
-mdump-ट्यून-सुविधाएँ. निर्दिष्ट होने पर, सुविधा चालू है अगर यह पहले नहीं है
साथ में ^, अन्यथा, इसे बंद कर दिया गया है। -एमटीयून-सीटीआरएल =सुविधा की सूची इस्तेमाल करने का इरादा है
जीसीसी डेवलपर्स द्वारा। इसका उपयोग करने से कोड पथ परीक्षण द्वारा कवर नहीं किए जा सकते हैं और कर सकते हैं
संभावित रूप से संकलक आईसीई या रनटाइम त्रुटियों में परिणाम।

-मनो-डिफॉल्ट
यह विकल्प GCC को सभी ट्यून करने योग्य सुविधाओं को बंद करने का निर्देश देता है। यह सभी देखें
-एमटीयून-सीटीआरएल =सुविधा की सूची और -mdump-ट्यून-सुविधाएँ.

-एमसीएलडी
यह विकल्प GCC को फ़ंक्शन के प्रस्तावना में "cld" निर्देश जारी करने का निर्देश देता है
जो स्ट्रिंग निर्देशों का उपयोग करते हैं। स्ट्रिंग निर्देश चुनने के लिए DF ध्वज पर निर्भर करते हैं
ऑटोइनक्रिकमेंट या ऑटोडेक्रिमेंट मोड के बीच। जबकि ABI DF ध्वज को निर्दिष्ट करता है
फ़ंक्शन प्रविष्टि पर साफ़ किया जा सकता है, कुछ ऑपरेटिंग सिस्टम इस विनिर्देश का उल्लंघन नहीं करते हैं
उनके अपवाद प्रेषकों में DF ध्वज को साफ़ करना। अपवाद हैंडलर हो सकता है
DF ध्वज सेट के साथ लागू किया जाता है, जो स्ट्रिंग के दौरान गलत दिशा मोड की ओर जाता है
निर्देशों का प्रयोग किया जाता है। इस विकल्प को डिफ़ॉल्ट रूप से 32-बिट x86 लक्ष्यों पर सक्षम किया जा सकता है
के साथ जीसीसी को विन्यस्त करना --सक्षम-सीएलडी कॉन्फ़िगर विकल्प। "सीएलडी" की पीढ़ी
निर्देशों को के साथ दबाया जा सकता है -मनो-सीएलडी इस मामले में संकलक विकल्प।

-मवज़ेरुपर
यह विकल्प GCC को के स्थानांतरण से पहले एक "vzeroupper" निर्देश जारी करने का निर्देश देता है
AVX से SSE ट्रांज़िशन पेनल्टी को भी कम करने के लिए फ़ंक्शन से प्रवाह को नियंत्रित करें
अनावश्यक "ज़ीरोपर" इंट्रिनिक्स को हटा दें।

-mprefer-avx128
यह विकल्प GCC को 128-बिट AVX के बजाय 256-बिट AVX निर्देशों का उपयोग करने का निर्देश देता है
ऑटो-वेक्टराइज़र में निर्देश।

-एमसीएक्स16
यह विकल्प GCC को "CMPXCHG16B" निर्देश उत्पन्न करने में सक्षम बनाता है। "CMPXCHG16B" अनुमति देता है
128-बिट डबल क्वाडवर्ड (या ओवर्ड) डेटा प्रकारों पर परमाणु संचालन के लिए। यह है
उच्च-रिज़ॉल्यूशन काउंटरों के लिए उपयोगी है जिसे एकाधिक प्रोसेसर द्वारा अद्यतन किया जा सकता है (या
कोर)। यह निर्देश परमाणु अंतर्निहित कार्यों के भाग के रूप में उत्पन्न होता है: देखें
__साथ - साथ करना बिलिन्स or __परमाणु बिलिन्स ब्योरा हेतु।

-मसाहफी
यह विकल्प 64-बिट कोड में "SAHF" निर्देशों को उत्पन्न करने में सक्षम बनाता है। प्रारंभिक इंटेल
पेंटियम 4 G64 चरण की शुरूआत से पहले, Intel 4 समर्थन के साथ Pentium 1 CPUs
दिसंबर 2005 में, "LAHF" और "SAHF" निर्देशों का अभाव था जो द्वारा समर्थित हैं
एएमडी 64। ये निश्चित स्थिति झंडे के लिए क्रमशः लोड और स्टोर निर्देश हैं।
64-बिट मोड में, "SAHF" निर्देश का उपयोग "fmod", "drem", और . को अनुकूलित करने के लिए किया जाता है
"शेष" अंतर्निहित कार्य; देख अन्य बिलिन्स ब्योरा हेतु।

-ममोवबे
यह विकल्प "__builtin_bswap32" को लागू करने के लिए "movbe" निर्देश के उपयोग को सक्षम बनाता है
और "__builtin_bswap64"।

-एमसीआरसी32
यह विकल्प बिल्ट-इन फंक्शन "__builtin_ia32_crc32qi" को सक्षम बनाता है।
"__builtin_ia32_crc32hi", "__builtin_ia32_crc32si" और "__builtin_ia32_crc32di" को
"crc32" मशीन निर्देश उत्पन्न करें।

-मरेसिप
यह विकल्प "RCPSS" और "RSQRTSS" निर्देशों (और उनके वेक्टरकृत) के उपयोग को सक्षम बनाता है
वेरिएंट "RCPPS" और "RSQRTPS") को बढ़ाने के लिए एक अतिरिक्त न्यूटन-रैफसन कदम के साथ
सिंगल के लिए "DIVSS" और "SQRTSS" (और उनके वेक्टराइज्ड वेरिएंट) के बजाय सटीक
सटीक फ़्लोटिंग-पॉइंट तर्क। ये निर्देश तभी उत्पन्न होते हैं जब
-फनसेफ-गणित-अनुकूलन के साथ सक्षम है -परिमित-गणित-केवल और
-फनो-ट्रैपिंग-गणित. ध्यान दें कि जबकि अनुक्रम का थ्रूपुट से अधिक है
गैर-पारस्परिक निर्देश के थ्रूपुट, अनुक्रम की शुद्धता हो सकती है
2 ulp तक कम हो गया (अर्थात 1.0 का व्युत्क्रम 0.99999994 के बराबर है)।

ध्यान दें कि जीसीसी लागू करता है "1.0f/sqrtf(एक्स)" पहले से ही "RSQRTSS" (या "RSQRTPS") के संदर्भ में
साथ में -फफास्ट-गणित (या उपरोक्त विकल्प संयोजन), और इसकी आवश्यकता नहीं है -मरेसिप.

यह भी ध्यान दें कि जीसीसी उपरोक्त अनुक्रम को अतिरिक्त न्यूटन-रैफसन चरण के साथ उत्सर्जित करता है
वेक्टरकृत सिंगल-फ्लोट डिवीजन और वेक्टराइज्ड "sqrtf(एक्स)" पहले से ही -फफास्ट-गणित
(या उपरोक्त विकल्प संयोजन), और इसकी आवश्यकता नहीं है -मरेसिप.

-मरेसिप =चुनना
यह विकल्प नियंत्रित करता है कि कौन से पारस्परिक अनुमान निर्देशों का उपयोग किया जा सकता है। चुनना एक
विकल्पों की अल्पविराम से अलग की गई सूची, जो a . से पहले हो सकती है ! विकल्प को उलटने के लिए:

सब सभी अनुमान निर्देश सक्षम करें।

चूक
डिफ़ॉल्ट निर्देशों को सक्षम करें, के बराबर -मरेसिप.

कोई नहीं
सभी अनुमान निर्देशों को अक्षम करें, के बराबर -मनो-रेसिपी.

div अदिश विभाजन के लिए सन्निकटन सक्षम करें।

vec-div
वेक्टरकृत विभाजन के लिए सन्निकटन सक्षम करें।

sqrt
अदिश वर्गमूल के लिए सन्निकटन सक्षम करें।

vec-sqrt
वेक्टरकृत वर्गमूल के लिए सन्निकटन सक्षम करें।

इसलिए, उदाहरण के लिए, -mrecip=सभी,!वर्ग सभी पारस्परिक अनुमानों को सक्षम बनाता है,
वर्गमूल को छोड़कर।

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

जीसीसी वर्तमान में "vmldExp2", "vmldLn2", "vmldLog102", "vmldLog102",
"vmldPow2", "vmldTanh2", "vmldTan2", "vmldAtan2", "vmldAtanh2", "vmldCbrt2",
"vmldSinh2", "vmldSin2", "vmldAsinh2", "vmldAsin2", "vmldCosh2", "vmldCos2",
"vmldAcosh2", "vmldAcos2", "vmlsExp4", "vmlsLn4", "vmlsLog104", "vmlsLog104",
"vmlsPow4", "vmlsTanh4", "vmlsTan4", "vmlsAtan4", "vmlsAtanh4", "vmlsCbrt4",
"vmlsSinh4", "vmlsSin4", "vmlsAsinh4", "vmlsAsin4", "vmlsCosh4", "vmlsCos4",
संबंधित फ़ंक्शन प्रकार के लिए "vmlsAcosh4" और "vmlsAcos4" जब -मवेक्लिबाबी = svml is
प्रयुक्त, और "__vrd2_sin", "__vrd2_cos", "__vrd2_exp", "__vrd2_log", "__vrd2_log2",
"__vrd2_log10", "__vrs4_sinf", "__vrs4_cosf", "__vrs4_expf", "__vrs4_logf",
संबंधित फ़ंक्शन प्रकार के लिए "__vrs4_log2f", "__vrs4_log10f" और "__vrs4_powf"
कब -मवेक्लिबाबी = एसीएमएल प्रयोग किया जाता है।

-माबी=नाम
निर्दिष्ट कॉलिंग कन्वेंशन के लिए कोड जनरेट करें। अनुमेय मान हैं sysv एसटी
GNU/Linux और अन्य प्रणालियों पर प्रयुक्त ABI, और ms माइक्रोसॉफ्ट एबीआई के लिए। NS
Microsoft Windows और SysV ABI को लक्षित करते समय Microsoft ABI का उपयोग करना डिफ़ॉल्ट है
अन्य सभी प्रणालियों पर। आप विशिष्ट कार्यों के लिए इस व्यवहार को नियंत्रित कर सकते हैं
फ़ंक्शन विशेषताएँ "ms_abi" और "sysv_abi"।

-mtls-बोली=टाइप
थ्रेड-लोकल स्टोरेज का उपयोग करने के लिए कोड जेनरेट करें बैल की आकृति का बारहसिद्धान्त or जीएनयू२३४ सम्मेलनों। बैल की आकृति का बारहसिद्धान्त
रूढ़िवादी डिफ़ॉल्ट है; जीएनयू२३४ अधिक कुशल है, लेकिन यह संकलन जोड़ सकता है- और चला सकता है-
समय की आवश्यकताएं जो सभी प्रणालियों पर संतुष्ट नहीं हो सकतीं।

-मपुश-आर्ग्स
-मनो-पुश-आर्ग्स
आउटगोइंग पैरामीटर्स को स्टोर करने के लिए PUSH ऑपरेशंस का उपयोग करें। यह विधि छोटी है और आमतौर पर
उप/एमओवी संचालन का उपयोग करने वाली विधि के समान ही तेज़ और डिफ़ॉल्ट रूप से सक्षम है। कुछ में
इसे अक्षम करने वाले मामले बेहतर शेड्यूलिंग और कम होने के कारण प्रदर्शन में सुधार कर सकते हैं
निर्भरता।

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

-मथ्रेड्स
MinGW पर थ्रेड-सुरक्षित अपवाद हैंडलिंग का समर्थन करें। प्रोग्राम जो थ्रेड-सुरक्षित पर निर्भर करते हैं
अपवाद हैंडलिंग को सभी कोड को संकलित और लिंक करना चाहिए -मथ्रेड्स विकल्प। कब
संकलन, -मथ्रेड्स परिभाषित करता है -डी_एमटी; लिंक करते समय, यह एक विशेष थ्रेड हेल्पर में लिंक करता है
पुस्तकालय -लमिंगवथर्ड जो प्रति-थ्रेड अपवाद-हैंडलिंग डेटा को साफ़ करता है।

-मनो-संरेखण-स्ट्रिंगोप्स
इनलाइन स्ट्रिंग ऑपरेशंस के गंतव्य को संरेखित न करें। यह स्विच कोड को कम करता है
आकार और प्रदर्शन में सुधार करता है यदि गंतव्य पहले से ही संरेखित है, लेकिन GCC
इसके बारे में नहीं जानता।

-मिनलाइन-ऑल-स्ट्रिंगॉप्स
डिफ़ॉल्ट रूप से जीसीसी इनलाइन स्ट्रिंग ऑपरेशंस केवल तभी होता है जब गंतव्य को जाना जाता है
कम से कम 4-बाइट सीमा के साथ संरेखित। यह अधिक इनलाइनिंग सक्षम करता है और कोड बढ़ाता है
आकार, लेकिन कोड के प्रदर्शन में सुधार कर सकता है जो तेज़ "memcpy", "strlen", और . पर निर्भर करता है
छोटी लंबाई के लिए "मेमसेट"।

-मिनलाइन-स्ट्रिंगोप्स-गतिशील रूप से
अज्ञात आकार के स्ट्रिंग संचालन के लिए, छोटे के लिए इनलाइन कोड के साथ रन-टाइम चेक का उपयोग करें
बड़े ब्लॉक के लिए ब्लॉक और लाइब्रेरी कॉल।

-मस्ट्रिंगॉप-रणनीति =ALG
के लिए उपयोग करने के लिए विशेष एल्गोरिदम के लिए आंतरिक निर्णय अनुमानी को ओवरराइड करें
इनलाइनिंग स्ट्रिंग ऑपरेशंस। के लिए अनुमत मान ALG यह है:

रेप_बाइट
प्रतिनिधि_4बाइट
प्रतिनिधि_8बाइट
निर्दिष्ट आकार के i386 "rep" उपसर्ग का उपयोग करके विस्तार करें।

बाइट_लूप
पाश
अनियंत्रित_लूप
एक इनलाइन लूप में विस्तार करें।

libcall
हमेशा लाइब्रेरी कॉल का उपयोग करें।

-mmemcpy-रणनीति=रणनीति
यह तय करने के लिए आंतरिक निर्णय अनुमानी को ओवरराइड करें कि "__builtin_memcpy" होना चाहिए
कॉपी ऑपरेशन के अपेक्षित आकार के दौरान इनलाइन और किस इनलाइन एल्गोरिदम का उपयोग करना है
ज्ञात है। रणनीति अल्पविराम से अलग की गई सूची है ALG:अधिकतम आकार:dest_align तीन गुना ALG
में निर्दिष्ट है -मस्ट्रिंगॉप-रणनीति, अधिकतम आकार अधिकतम बाइट आकार निर्दिष्ट करता है जिसके साथ
इनलाइन एल्गोरिथम ALG अनुमति दी है। अंतिम ट्रिपलेट के लिए, अधिकतम आकार "-1" होना चाहिए। NS
अधिकतम आकार सूची में तीन गुना बढ़ते क्रम में निर्दिष्ट किया जाना चाहिए। NS
के लिए न्यूनतम बाइट आकार ALG पहले त्रिक के लिए 0 है और "अधिकतम आकार + 1" का
पूर्ववर्ती सीमा।

-mmemset-रणनीति =रणनीति
विकल्प के समान है -mmemcpy-रणनीति= सिवाय इसके कि इसे नियंत्रित करना है
"__builtin_memset" विस्तार।

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

-एमटीएलएस-डायरेक्ट-सेग-रेफ्स
-मनो-टीएलएस-डायरेक्ट-सेग-रेफ्स
नियंत्रित करता है कि क्या टीएलएस वेरिएबल को टीएलएस सेगमेंट से ऑफसेट के साथ एक्सेस किया जा सकता है
रजिस्टर (32-बिट के लिए% gs, 64-बिट के लिए% fs), या क्या थ्रेड बेस पॉइंटर होना चाहिए
जोड़ा गया। यह मान्य है या नहीं यह ऑपरेटिंग सिस्टम पर निर्भर करता है, और क्या यह
पूरे टीएलएस क्षेत्र को कवर करने के लिए सेगमेंट को मैप करता है।

जीएनयू सी लाइब्रेरी का उपयोग करने वाले सिस्टम के लिए, डिफ़ॉल्ट चालू है।

-एमएसई2एवीएक्स
-mno-sse2avx
निर्दिष्ट करें कि कोडांतरक को SSE निर्देशों को VEX उपसर्ग के साथ एन्कोड करना चाहिए। विकल्प
-मावक्स इसे डिफ़ॉल्ट रूप से चालू करता है।

-मफेंट्री
-मनो-फेंट्री
यदि प्रोफाइलिंग सक्रिय है (-पीजी), प्रोफाइलिंग काउंटर कॉल को प्रस्तावना से पहले रखें।
नोट: x86 आर्किटेक्चर पर "ms_hook_prologue" विशेषता संभव नहीं है
पल के लिए -मफेंट्री और -पीजी.

-mrecord-mcount
-मनो-रिकॉर्ड-एमकाउंट
यदि प्रोफाइलिंग सक्रिय है (-पीजी), एक __mcount_loc अनुभाग उत्पन्न करें जिसमें पॉइंटर्स हों
प्रत्येक प्रोफाइलिंग कॉल के लिए। यह कॉल को स्वचालित रूप से पैच करने और आउट करने के लिए उपयोगी है।

-एमएनओपी-एमकाउंट
-मनो-एनओपी-एमकाउंट
यदि प्रोफाइलिंग सक्रिय है (-पीजी), प्रोफाइलिंग कार्यों को एनओपी के रूप में कॉल उत्पन्न करें।
यह तब उपयोगी होता है जब उन्हें बाद में गतिशील रूप से पैच किया जाना चाहिए। यह केवल संभावना है
साथ में उपयोगी -mrecord-mcount.

-एमस्किप-रैक्स-सेटअप
-मनो-स्किप-रैक्स-सेटअप
SSE एक्सटेंशन अक्षम के साथ x86-64 आर्किटेक्चर के लिए कोड जनरेट करते समय,
-स्किप-रैक्स-सेटअप जब कोई चर न हो तो RAX रजिस्टर की स्थापना को छोड़ने के लिए उपयोग किया जा सकता है
वेक्टर रजिस्टरों में पारित तर्क।

चेतावनी: चूंकि RAX रजिस्टर का उपयोग वेक्टर रजिस्टरों को अनावश्यक रूप से सहेजने से बचने के लिए किया जाता है
स्टैक जब चर तर्क पारित करते हैं, तो इस विकल्प के प्रभाव कैलीज़ हो सकते हैं
कुछ स्टैक स्पेस बर्बाद करें, दुर्व्यवहार करें या यादृच्छिक स्थान पर कूदें। जीसीसी 4.4 या नया
RAX रजिस्टर मान पर ध्यान दिए बिना, वे समस्याएँ नहीं हैं।

-m8bit-idiv
-mno-8bit-idiv
कुछ प्रोसेसर पर, जैसे इंटेल एटम, 8-बिट अहस्ताक्षरित पूर्णांक डिवाइड की तुलना में बहुत तेज है
32-बिट/64-बिट पूर्णांक विभाजित। यह विकल्प रन-टाइम चेक जनरेट करता है। अगर दोनों
लाभांश और भाजक 0 से 255 की सीमा के भीतर हैं, 8-बिट अहस्ताक्षरित पूर्णांक विभाजन है
32-बिट/64-बिट पूर्णांक विभाजन के बजाय उपयोग किया जाता है।

-mavx256-विभाजन-असंरेखित-लोड
-mavx256-विभाजन-असंरेखित-स्टोर
32-बाइट AVX असंरेखित लोड और स्टोर को विभाजित करें।

-मस्टैक-रक्षक-गार्ड =गार्ड
कैनरी का उपयोग करके स्टैक सुरक्षा कोड उत्पन्न करें गार्ड. समर्थित स्थान हैं वैश्विक
वैश्विक कैनरी के लिए or टीएलएस टीएलएस ब्लॉक (डिफ़ॉल्ट) में प्रति-थ्रेड कैनरी के लिए। इस
विकल्प का प्रभाव तभी होता है जब -स्टैक-रक्षक or -फस्टैक-रक्षक-सभी अधिकृत है।

इन -m 86 बिट . में x64-64 प्रोसेसर पर उपरोक्त के अतिरिक्त स्विच समर्थित हैं
वातावरण।

-एम 32
-एम 64
-एमएक्स32
-एम 16
16-बिट, 32-बिट या 64-बिट वातावरण के लिए कोड जेनरेट करें। NS -एम 32 विकल्प "int" सेट करता है,
"लॉन्ग", और पॉइंटर टाइप 32 बिट तक, और कोड जेनरेट करता है जो किसी भी i386 सिस्टम पर चलता है।

RSI -एम 64 विकल्प "int" को 32 बिट्स और "लॉन्ग" और पॉइंटर प्रकार को 64 बिट्स पर सेट करता है, और
x86-64 आर्किटेक्चर के लिए कोड जेनरेट करता है। केवल डार्विन के लिए -एम 64 विकल्प भी
बंद कर देता है -फनो-पिक और -mगतिशील-नहीं-तस्वीर विकल्प.

RSI -एमएक्स32 विकल्प "int", "long", और पॉइंटर प्रकार को 32 बिट्स पर सेट करता है, और कोड उत्पन्न करता है
x86-64 आर्किटेक्चर के लिए।

RSI -एम 16 विकल्प के समान है -एम 32, सिवाय इसके कि यह ".code16gcc" आउटपुट करता है
असेंबली आउटपुट की शुरुआत में असेंबली निर्देश ताकि बाइनरी चल सके
16-बिट मोड में।

-मनो-रेड-ज़ोन
x86-64 कोड के लिए तथाकथित "रेड ज़ोन" का उपयोग न करें। रेड जोन किसके द्वारा अनिवार्य है
x86-64 एबीआई; यह स्टैक पॉइंटर के स्थान से परे 128-बाइट क्षेत्र है जो नहीं है
सिग्नल या इंटरप्ट हैंडलर द्वारा संशोधित और इसलिए अस्थायी डेटा के लिए उपयोग किया जा सकता है
स्टैक पॉइंटर को समायोजित किए बिना। झंडा -मनो-रेड-ज़ोन इस रेड जोन को निष्क्रिय कर देता है।

-एमसीमॉडल = छोटा
छोटे कोड मॉडल के लिए कोड जनरेट करें: प्रोग्राम और उसके प्रतीकों को इसमें जोड़ा जाना चाहिए
पता स्थान का निचला 2 जीबी। पॉइंटर्स 64 बिट हैं। कार्यक्रम हो सकते हैं
स्थिर या गतिशील रूप से जुड़ा हुआ। यह डिफ़ॉल्ट कोड मॉडल है।

-एमसीमॉडल=कर्नेल
कर्नेल कोड मॉडल के लिए कोड जनरेट करें। कर्नेल नकारात्मक 2 GB में चलता है
पता स्थान। इस मॉडल का उपयोग लिनक्स कर्नेल कोड के लिए किया जाना है।

-एमसीमॉडल = मध्यम
मध्यम मॉडल के लिए कोड जनरेट करें: कार्यक्रम के निचले 2 जीबी में जुड़ा हुआ है
पता स्थान। वहां छोटे-छोटे चिन्ह भी रखे गए हैं। से बड़े आकार वाले प्रतीक
-मिलर्ज-डेटा-दहलीज बड़े डेटा या बीएसएस अनुभागों में डाल दिया जाता है और स्थित किया जा सकता है
2GB से ऊपर। कार्यक्रमों को स्थिर या गतिशील रूप से जोड़ा जा सकता है।

-एमसीमॉडल = बड़ा
बड़े मॉडल के लिए कोड जनरेट करें। यह मॉडल पतों के बारे में कोई धारणा नहीं बनाता
और वर्गों के आकार।

-मैड्रेस-मोड = लंबा
लॉन्ग एड्रेस मोड के लिए कोड जनरेट करें। यह केवल 64-बिट और x32 . के लिए समर्थित है
वातावरण। यह 64-बिट वातावरण के लिए डिफ़ॉल्ट पता मोड है।

-मैड्रेस-मोड = लघु
संक्षिप्त पता मोड के लिए कोड जनरेट करें। यह केवल 32-बिट और x32 . के लिए समर्थित है
वातावरण। यह 32-बिट और x32 परिवेशों के लिए डिफ़ॉल्ट पता मोड है।

x86 Windows ऑप्शंस

ये अतिरिक्त विकल्प Microsoft Windows लक्ष्य के लिए उपलब्ध हैं:

-एमकंसोल
यह विकल्प निर्दिष्ट करता है कि एक कंसोल एप्लिकेशन को निर्देश देकर उत्पन्न किया जाना है
कंसोल अनुप्रयोगों के लिए आवश्यक पीई हेडर सबसिस्टम प्रकार सेट करने के लिए लिंकर।
यह विकल्प Cygwin और MinGW लक्ष्यों के लिए उपलब्ध है और डिफ़ॉल्ट रूप से चालू है
उन लक्ष्यों।

-एमडीएल
यह विकल्प Cygwin और MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि एक DLL---a
डायनेमिक लिंक लाइब्रेरी --- उत्पन्न की जानी है, जिससे आवश्यक के चयन को सक्षम किया जा सके
रनटाइम स्टार्टअप ऑब्जेक्ट और एंट्री पॉइंट।

-मनोप-मज़ा-dllimport
यह विकल्प Cygwin और MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि
"dllimport" विशेषता को अनदेखा किया जाना चाहिए।

-मथ्रेड
यह विकल्प MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि MinGW- विशिष्ट थ्रेड
समर्थन का उपयोग करना है।

-मुनिकोड
यह विकल्प MinGW-w64 लक्ष्यों के लिए उपलब्ध है। यह "यूनिकोड" प्रीप्रोसेसर का कारण बनता है
मैक्रो को पूर्वनिर्धारित किया जाना है, और यूनिकोड-सक्षम रनटाइम स्टार्टअप कोड चुनता है।

-एमविन32
यह विकल्प Cygwin और MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि विशिष्ट
Microsoft Windows पूर्वनिर्धारित मैक्रोज़ को प्री-प्रोसेसर में सेट किया जाना है, लेकिन ऐसा नहीं है
रनटाइम लाइब्रेरी/स्टार्टअप कोड की पसंद को प्रभावित करते हैं।

-एमविंडो
यह विकल्प Cygwin और MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि एक GUI
पीई हेडर सेट करने के लिए लिंकर को निर्देश देकर आवेदन तैयार किया जाना है
सबसिस्टम उचित प्रकार।

-फनो-सेट-स्टैक-निष्पादन योग्य
यह विकल्प MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि निष्पादन योग्य ध्वज के लिए
नेस्टेड फ़ंक्शंस द्वारा उपयोग किया जाने वाला स्टैक सेट नहीं है। चलने वाले बायनेरिज़ के लिए यह आवश्यक है
Microsoft Windows के कर्नेल मोड में, वहाँ User32 API है, जिसका उपयोग सेट करने के लिए किया जाता है
निष्पादन योग्य विशेषाधिकार, उपलब्ध नहीं है।

-लेखनीय-स्थानांतरित-rdata
यह विकल्प MinGW और Cygwin लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि स्थानांतरित-
केवल-पढ़ने वाले अनुभाग में डेटा .डेटा अनुभाग में डाला जाता है। यह वृद्धों के लिए आवश्यक है
रनटाइम छद्म-स्थानांतरण के लिए .rdata अनुभागों के संशोधन का समर्थन नहीं करते हैं।

-एमपीई-संरेखित-कॉमन्स
यह विकल्प Cygwin और MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि जीएनयू
PE फ़ाइल स्वरूप का विस्तार जो COMMON चर के सही संरेखण की अनुमति देता है
कोड जनरेट करते समय उपयोग किया जाना चाहिए। यह डिफ़ॉल्ट रूप से सक्षम होता है यदि GCC को पता चलता है कि
कॉन्फ़िगरेशन के दौरान पाया गया लक्ष्य कोडांतरक सुविधा का समर्थन करता है।

के तहत भी देखें x86 ऑप्शंस मानक विकल्पों के लिए।

तूफानी16 ऑप्शंस

इन विकल्पों को Xstormy16 के लिए परिभाषित किया गया है:

-मसिम
सिम्युलेटर के लिए उपयुक्त स्टार्टअप फ़ाइलें और लिंकर स्क्रिप्ट चुनें।

Xtensa ऑप्शंस

ये विकल्प Xtensa लक्ष्यों के लिए समर्थित हैं:

-एमकॉन्स्ट16
-मनो-कॉन्स्ट 16
स्थिर मान लोड करने के लिए "CONST16" निर्देशों का उपयोग सक्षम या अक्षम करें। NS
"CONST16" निर्देश वर्तमान में Tensilica से एक मानक विकल्प नहीं है। कब
सक्षम, "CONST16" निर्देश हमेशा मानक "L32R" के स्थान पर उपयोग किए जाते हैं
निर्देश। "CONST16" का उपयोग डिफ़ॉल्ट रूप से तभी सक्षम होता है जब "L32R"
निर्देश उपलब्ध नहीं है।

-मफ्यूज्ड-मैड
-मनो-फ्यूज्ड-मैड
में जुड़े हुए गुणा/जोड़ें और गुणा/घटाव निर्देशों के उपयोग को सक्षम या अक्षम करें
फ्लोटिंग-पॉइंट विकल्प। यदि फ़्लोटिंग-पॉइंट विकल्प भी नहीं है तो इसका कोई प्रभाव नहीं पड़ता है
सक्षम। फ़्यूज्ड गुणा/जोड़ें और गुणा/घटाव निर्देशों को अक्षम करने से
कंपाइलर गुणा करने और जोड़ने/घटाने के संचालन के लिए अलग-अलग निर्देशों का उपयोग करने के लिए।
यह कुछ मामलों में वांछनीय हो सकता है जहां सख्त आईईईई 754-अनुपालन परिणाम हैं
आवश्यक: फ़्यूज्ड गुणा जोड़ने/घटाने के निर्देश मध्यवर्ती को गोल नहीं करते हैं
परिणाम, जिससे परिणाम उत्पन्न होते हैं अधिक द्वारा निर्दिष्ट की तुलना में परिशुद्धता के बिट्स
आईईईई मानक। फ़्यूज़ किए गए गुणा जोड़ें/घटाना निर्देशों को अक्षम करना यह भी सुनिश्चित करता है कि
प्रोग्राम आउटपुट गुणा करने की कंपाइलर की क्षमता के प्रति संवेदनशील नहीं है और
संचालन जोड़ें / घटाएं।

-mserialize-अस्थिर
-मनो-क्रमबद्ध-अस्थिर
जब यह विकल्प सक्षम होता है, तो GCC "अस्थिर" मेमोरी से पहले "MEMW" निर्देश सम्मिलित करता है
अनुक्रमिक स्थिरता की गारंटी के संदर्भ। डिफ़ॉल्ट है -mserialize-अस्थिर.
उपयोग -मनो-क्रमबद्ध-अस्थिर "एमईएमडब्ल्यू" निर्देशों को छोड़ने के लिए।

-मफोर्स-नो-पिक
लक्ष्य के लिए, जैसे GNU/Linux, जहाँ सभी उपयोगकर्ता-मोड Xtensa कोड की स्थिति होनी चाहिए-
स्वतंत्र कोड (PIC), यह विकल्प कर्नेल कोड को संकलित करने के लिए PIC को अक्षम करता है।

-mtext-अनुभाग-शाब्दिक
-मनो-पाठ-अनुभाग-शाब्दिक
ये विकल्प शाब्दिक पूल के उपचार को नियंत्रित करते हैं। डिफ़ॉल्ट है
-मनो-पाठ-अनुभाग-शाब्दिक, जो आउटपुट में एक अलग सेक्शन में अक्षर रखता है
फ़ाइल। यह शाब्दिक पूल को डेटा RAM/ROM में रखने की अनुमति देता है, और यह अनुमति भी देता है
लिंकर अनावश्यक को हटाने के लिए अलग-अलग ऑब्जेक्ट फ़ाइलों से शाब्दिक पूल को संयोजित करने के लिए
अक्षर और कोड आकार में सुधार। साथ में -mtext-अनुभाग-शाब्दिक, शाब्दिक हैं
उन्हें जितना संभव हो सके उनके पास रखने के लिए टेक्स्ट सेक्शन में अंतरित किया गया है
संदर्भ। यह बड़ी असेंबली फ़ाइलों के लिए आवश्यक हो सकता है।

-mलक्ष्य-संरेखण
-मनो-लक्ष्य-संरेखण
जब यह विकल्प सक्षम होता है, तो जीसीसी असेंबलर को स्वचालित रूप से संरेखित करने का निर्देश देता है
कुछ कोड घनत्व की कीमत पर शाखा दंड को कम करने के निर्देश। NS
असेंबलर शाखा लक्ष्यों को संरेखित करने के लिए घनत्व निर्देशों को चौड़ा करने का प्रयास करता है और
कॉल निर्देशों के बाद निर्देश। यदि पर्याप्त पूर्ववर्ती सुरक्षित नहीं हैं
लक्ष्य को संरेखित करने के लिए घनत्व निर्देश, कोई चौड़ीकरण नहीं किया जाता है। डिफ़ॉल्ट है
-mलक्ष्य-संरेखण. ये विकल्प स्वत: संरेखित के उपचार को प्रभावित नहीं करते हैं
"लूप" जैसे निर्देश, जो असेंबलर हमेशा संरेखित करता है, या तो चौड़ा करके
घनत्व निर्देश या एनओपी निर्देश सम्मिलित करके।

-मलॉन्गकॉल्स
-मनो-लॉन्गकॉल्स
जब यह विकल्प सक्षम होता है, तो जीसीसी असेंबलर को सीधे कॉल का अनुवाद करने का निर्देश देता है
अप्रत्यक्ष कॉल जब तक यह निर्धारित नहीं कर सकता कि प्रत्यक्ष कॉल का लक्ष्य में है
कॉल निर्देश द्वारा अनुमत सीमा। यह अनुवाद आमतौर पर कॉल करने के लिए होता है
अन्य स्रोत फ़ाइलों में कार्य करता है। विशेष रूप से, असेंबलर प्रत्यक्ष का अनुवाद करता है
"कॉल" निर्देश को "L32R" में और उसके बाद "CALLX" निर्देश में। डिफ़ॉल्ट है
-मनो-लॉन्गकॉल्स. इस विकल्प का उपयोग उन कार्यक्रमों में किया जाना चाहिए जहां कॉल लक्ष्य कर सकते हैं
संभावित रूप से सीमा से बाहर हो। यह विकल्प असेंबलर में लागू किया गया है, न कि
कंपाइलर, इसलिए जीसीसी द्वारा उत्पन्न असेंबली कोड अभी भी प्रत्यक्ष कॉल दिखाता है
निर्देश --- वास्तविक निर्देश देखने के लिए अलग किए गए ऑब्जेक्ट कोड को देखें।
ध्यान दें कि असेंबलर प्रत्येक क्रॉस-फ़ाइल कॉल के लिए अप्रत्यक्ष कॉल का उपयोग करता है, न कि केवल
जो वास्तव में सीमा से बाहर हैं।

जेड सीरीज ऑप्शंस

ये के तहत सूचीबद्ध हैं

ऑप्शंस एसटी कोड पीढ़ी कन्वेंशनों
ये मशीन-स्वतंत्र विकल्प कोड में प्रयुक्त इंटरफ़ेस सम्मेलनों को नियंत्रित करते हैं
पीढ़ी।

उनमें से अधिकांश के सकारात्मक और नकारात्मक दोनों रूप हैं; का नकारात्मक रूप -फ्फू is
-फनो-फू. नीचे दी गई तालिका में, केवल एक प्रपत्र सूचीबद्ध है --- वह जो नहीं है
चूक जाना। आप या तो हटाकर दूसरे फॉर्म का पता लगा सकते हैं नहीं- या इसे जोड़ रहे हैं।

-फबाउंड्स-चेक
इसका समर्थन करने वाले सामने के सिरों के लिए, यह जांचने के लिए अतिरिक्त कोड उत्पन्न करें कि क्या सूचकांकों का उपयोग किया जाता है
एक्सेस सरणियाँ घोषित सीमा के भीतर हैं। यह वर्तमान में केवल द्वारा समर्थित है
जावा और फोरट्रान सामने समाप्त होता है, जहां यह विकल्प सही और गलत पर डिफ़ॉल्ट होता है
क्रमशः.

-फस्टैक-पुन: उपयोग =पुन: उपयोग-स्तर
यह विकल्प उपयोगकर्ता द्वारा घोषित स्थानीय/स्वतः चरों के लिए स्टैक स्थान के पुन: उपयोग को नियंत्रित करता है और
संकलक उत्पन्न अस्थायी। पुन: उपयोग_स्तर हो सकता है सब, नामांकित_वार्सया, कोई नहीं. सब
सभी स्थानीय चर और अस्थायी के लिए स्टैक पुन: उपयोग को सक्षम बनाता है, नामांकित_वार्स सक्षम करता है
केवल नाम के साथ उपयोगकर्ता परिभाषित स्थानीय चर के लिए पुन: उपयोग करें, और कोई नहीं स्टैक पुन: उपयोग अक्षम करता है
पूरी तरह। डिफ़ॉल्ट मान है सब. जब प्रोग्राम का विस्तार होता है तो विकल्प की आवश्यकता होती है
एक स्कोप्ड स्थानीय चर या एक कंपाइलर का जीवनकाल अस्थायी से परे उत्पन्न होता है
भाषा द्वारा परिभाषित अंतिम बिंदु। जब एक चर का जीवनकाल समाप्त हो जाता है, और यदि
वैरिएबल मेमोरी में रहता है, ऑप्टिमाइज़िंग कंपाइलर को अपने स्टैक का पुन: उपयोग करने की स्वतंत्रता होती है
अन्य अस्थायी या स्कोप्ड स्थानीय चर के साथ स्थान जिनकी लाइव रेंज नहीं है
इसके साथ ओवरलैप करें। स्थानीय जीवन काल का विस्तार करने वाले लिगेसी कोड के टूटने की संभावना है
स्टैक पुन: उपयोग अनुकूलन।

उदाहरण के लिए,

int * p;
{
इंट लोकल1;

पी = &स्थानीय1;
स्थानीय 1 = 10;
....
}
{
इंट लोकल2;
स्थानीय 2 = 20;
...
}

if (*p == 10) // local1 . के दायरे से बाहर
{

}

एक और उदाहरण:

संरचना ए
{
ए (इंट के): आई (के), जे (के) { }
int i;
इंट जे;
};

ए *एपी;

शून्य फू (स्थिरांक ए और एआर)
{
एपी = & एआर;
}

शून्य बार ()
{
फू (A(10)); // अस्थायी वस्तु का जीवनकाल समाप्त हो जाता है जब फू वापस आ जाता है

{
A a; (20)
....
}
एपी->i+= 10; // एपी स्कोप अस्थायी से बाहर का संदर्भ देता है जिसका स्थान
// a के साथ पुन: उपयोग किया जाता है। एपी->आई का मूल्य क्या है?
}

अस्थायी रूप से उत्पन्न एक कंपाइलर का जीवनकाल सी ++ मानक द्वारा अच्छी तरह से परिभाषित किया गया है।
जब एक अस्थायी जीवन समाप्त हो जाता है, और यदि अस्थायी स्मृति में रहता है, तो
ऑप्टिमाइज़िंग कंपाइलर को अन्य अस्थायी के साथ अपने स्टैक स्पेस का पुन: उपयोग करने की स्वतंत्रता है या
स्कोप्ड लोकल वेरिएबल्स जिनकी लाइव रेंज इसके साथ ओवरलैप नहीं होती है। हालांकि इनमें से कुछ
विरासत कोड पुराने कंपाइलरों के व्यवहार पर निर्भर करता है जिसमें अस्थायी 'स्टैक'
स्थान का पुन: उपयोग नहीं किया जाता है, आक्रामक स्टैक पुन: उपयोग से रनटाइम त्रुटियां हो सकती हैं। इस
विकल्प का उपयोग अस्थायी स्टैक पुन: उपयोग अनुकूलन को नियंत्रित करने के लिए किया जाता है।

-फ्ट्रैपवी
यह विकल्प जोड़, घटाव पर हस्ताक्षरित अतिप्रवाह के लिए ट्रैप उत्पन्न करता है,
गुणन संचालन।

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

अपवाद
अपवाद हैंडलिंग सक्षम करें। अपवादों को प्रचारित करने के लिए आवश्यक अतिरिक्त कोड उत्पन्न करता है। के लिये
कुछ लक्ष्य, इसका तात्पर्य है कि जीसीसी सभी कार्यों के लिए फ्रेम खोलना जानकारी उत्पन्न करता है,
जो महत्वपूर्ण डेटा आकार ओवरहेड उत्पन्न कर सकता है, हालांकि यह प्रभावित नहीं करता है
क्रियान्वयन। यदि आप इस विकल्प को निर्दिष्ट नहीं करते हैं, तो GCC इसे डिफ़ॉल्ट रूप से भाषाओं के लिए सक्षम करता है
सी ++ की तरह जिसे आम तौर पर अपवाद हैंडलिंग की आवश्यकता होती है, और इसे भाषाओं के लिए अक्षम करता है जैसे
सी जिसे सामान्य रूप से इसकी आवश्यकता नहीं होती है। हालाँकि, आपको इस विकल्प को सक्षम करने की आवश्यकता हो सकती है जब
सी कोड संकलित करना जिसे लिखित अपवाद हैंडलर के साथ ठीक से इंटरऑपरेट करने की आवश्यकता है
सी ++ में। यदि आप पुराने C++ का संकलन कर रहे हैं, तो आप इस विकल्प को अक्षम भी कर सकते हैं
प्रोग्राम जो अपवाद हैंडलिंग का उपयोग नहीं करते हैं।

-फॉन-कॉल-अपवाद
कोड उत्पन्न करें जो ट्रैपिंग निर्देशों को अपवादों को फेंकने की अनुमति देता है। ध्यान दें कि यह
प्लेटफ़ॉर्म-विशिष्ट रनटाइम समर्थन की आवश्यकता होती है जो हर जगह मौजूद नहीं होता है। इसके अलावा,
यह केवल अनुमति देता है पकडना अपवादों को फेंकने के निर्देश, अर्थात् स्मृति संदर्भ या
फ्लोटिंग-पॉइंट निर्देश। यह अपवादों को मनमाने ढंग से फेंकने की अनुमति नहीं देता है
सिग्नल हैंडलर जैसे "SIGALRM"।

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

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

-फैसिंक्रोनस-अनविंड-टेबल्स
लक्ष्य मशीन द्वारा समर्थित होने पर, DWARF 2 प्रारूप में तालिका खोलना। तालिका है
प्रत्येक निर्देश सीमा पर सटीक, इसलिए इसका उपयोग अनइंडिंग स्टैक के लिए किया जा सकता है
अतुल्यकालिक घटनाएँ (जैसे डिबगर या कचरा संग्रहकर्ता)।

-फनो-ग्नू-अद्वितीय
हाल ही में GNU असेंबलर और C लाइब्रेरी वाले सिस्टम पर, C++ कंपाइलर का उपयोग करता है
"STB_GNU_UNIQUE" यह सुनिश्चित करने के लिए बाध्यकारी है कि टेम्पलेट स्थिर डेटा सदस्यों की परिभाषाएं
और इनलाइन फ़ंक्शंस में स्थिर स्थानीय चर की उपस्थिति में भी अद्वितीय हैं
"RTLD_LOCAL"; दो अलग-अलग द्वारा उपयोग की जाने वाली लाइब्रेरी के साथ समस्याओं से बचने के लिए यह आवश्यक है
"RTLD_LOCAL" प्लगइन्स उनमें से किसी एक में परिभाषा पर निर्भर करता है और इसलिए
प्रतीक के बंधन के बारे में दूसरे से असहमत। लेकिन इसका कारण बनता है
प्रभावित DSO के लिए "dlclose" को नज़रअंदाज़ किया जाएगा; यदि आपका प्रोग्राम पुन: प्रारंभ पर निर्भर करता है
"dlclose" और "dlopen" के माध्यम से एक DSO का, आप उपयोग कर सकते हैं -फनो-ग्नू-अद्वितीय.

-एफपीसीसी-स्ट्रक्चर-रिटर्न
स्मृति में "लघु" "संरचना" और "संघ" मान लौटाएं, जैसे कि लंबे समय तक, बजाय in
रजिस्टर यह सम्मेलन कम कुशल है, लेकिन इसे अनुमति देने का लाभ है
जीसीसी-संकलित फाइलों और अन्य कंपाइलरों के साथ संकलित फाइलों के बीच अंतःक्रियात्मकता,
विशेष रूप से पोर्टेबल सी कंपाइलर (पीसीसी)।

स्मृति में संरचनाओं को वापस करने के लिए सटीक सम्मेलन लक्ष्य पर निर्भर करता है
कॉन्फ़िगरेशन मैक्रोज़।

लघु संरचनाएं और संघ वे हैं जिनका आकार और संरेखण कुछ से मेल खाता है
पूर्णांक प्रकार।

चेतावनी: के साथ संकलित कोड -एफपीसीसी-स्ट्रक्चर-रिटर्न स्विच बाइनरी संगत नहीं है
के साथ संकलित कोड के साथ -फ्रेग-स्ट्रक्चर-रिटर्न स्विच। एक गैर के अनुरूप करने के लिए इसका इस्तेमाल करें
डिफ़ॉल्ट अनुप्रयोग बाइनरी इंटरफ़ेस।

-फ्रेग-स्ट्रक्चर-रिटर्न
जब संभव हो तो रजिस्टरों में "संरचना" और "संघ" मान लौटाएं। यह अधिक कुशल है
की तुलना में छोटी संरचनाओं के लिए -एफपीसीसी-स्ट्रक्चर-रिटर्न.

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

चेतावनी: के साथ संकलित कोड -फ्रेग-स्ट्रक्चर-रिटर्न स्विच बाइनरी संगत नहीं है
के साथ संकलित कोड के साथ -एफपीसीसी-स्ट्रक्चर-रिटर्न स्विच। एक गैर के अनुरूप करने के लिए इसका इस्तेमाल करें
डिफ़ॉल्ट अनुप्रयोग बाइनरी इंटरफ़ेस।

-फशॉर्ट-एनम्स
एक "एनम" प्रकार के लिए केवल उतने ही बाइट्स आवंटित करें जितने की घोषित सीमा के लिए आवश्यक है
संभावित मान। विशेष रूप से, "एनम" प्रकार सबसे छोटे पूर्णांक के बराबर है
प्रकार जिसमें पर्याप्त जगह हो।

चेतावनी: la -फशॉर्ट-एनम्स स्विच जीसीसी को कोड उत्पन्न करने का कारण बनता है जो बाइनरी नहीं है
उस स्विच के बिना उत्पन्न कोड के साथ संगत। एक गैर के अनुरूप करने के लिए इसका इस्तेमाल करें
डिफ़ॉल्ट अनुप्रयोग बाइनरी इंटरफ़ेस।

-फशॉर्ट-डबल
"डबल" के लिए "फ्लोट" के समान आकार का उपयोग करें।

चेतावनी: la -फशॉर्ट-डबल स्विच जीसीसी को कोड उत्पन्न करने का कारण बनता है जो बाइनरी नहीं है
उस स्विच के बिना उत्पन्न कोड के साथ संगत। एक गैर के अनुरूप करने के लिए इसका इस्तेमाल करें
डिफ़ॉल्ट अनुप्रयोग बाइनरी इंटरफ़ेस।

-फशॉर्ट-वचार
"wchar_t" के लिए अंतर्निहित प्रकार को "लघु अहस्ताक्षरित int" के बजाय ओवरराइड करें
लक्ष्य के लिए डिफ़ॉल्ट। यह विकल्प प्रोग्राम को चलाने के लिए उपयोगी है
वाइन।

चेतावनी: la -फशॉर्ट-वचार स्विच जीसीसी को कोड उत्पन्न करने का कारण बनता है जो बाइनरी नहीं है
उस स्विच के बिना उत्पन्न कोड के साथ संगत। एक गैर के अनुरूप करने के लिए इसका इस्तेमाल करें
डिफ़ॉल्ट अनुप्रयोग बाइनरी इंटरफ़ेस।

-फनो-कॉमन
सी कोड में, गैर-आरंभिक वैश्विक चर के प्लेसमेंट को नियंत्रित करता है। यूनिक्स सी संकलक
पारंपरिक रूप से इस तरह के चर की कई परिभाषाओं को अलग-अलग में अनुमति दी है
एक सामान्य ब्लॉक में चर रखकर संकलन इकाइयाँ। यह व्यवहार है
इसके द्वारा निर्दिष्ट आम, और अधिकांश लक्ष्यों पर GCC के लिए डिफ़ॉल्ट है। दूसरी ओर,
आईएसओ सी द्वारा इस व्यवहार की आवश्यकता नहीं है, और कुछ लक्ष्यों पर गति या कोड हो सकता है
परिवर्तनीय संदर्भों पर आकार जुर्माना। NS -फनो-कॉमन विकल्प निर्दिष्ट करता है कि
कंपाइलर को ऑब्जेक्ट के डेटा सेक्शन में गैर-आरंभिक वैश्विक चर रखना चाहिए
फ़ाइल, उन्हें सामान्य ब्लॉक के रूप में उत्पन्न करने के बजाय। इसका प्रभाव यह होता है कि यदि
एक ही चर घोषित किया गया है ("बाहरी" के बिना) दो अलग-अलग संकलनों में, आपको मिलता है a
बहु-परिभाषा त्रुटि जब आप उन्हें लिंक करते हैं। इस मामले में, आपको इसके साथ संकलन करना होगा
आम बजाय। के साथ संकलन -फनो-कॉमन उन लक्ष्यों पर उपयोगी है जिनके लिए यह
बेहतर प्रदर्शन प्रदान करता है, या यदि आप यह सत्यापित करना चाहते हैं कि कार्यक्रम काम करेगा
अन्य प्रणालियाँ जो हमेशा इस तरह से अप्रारंभीकृत चर घोषणाओं का इलाज करती हैं।

-फनो-पहचान
"#ident" निर्देश पर ध्यान न दें।

-फिनहिबिट-आकार-निर्देश
".size" असेंबलर निर्देश, या कुछ और जो परेशानी का कारण बनता है, आउटपुट न करें
यदि फ़ंक्शन बीच में विभाजित है, और दो हिस्सों को दूर स्थानों पर रखा गया है
स्मृति के अलावा। संकलन करते समय इस विकल्प का उपयोग किया जाता है सीआरटीस्टफ.सी; आपको आवश्यकता नहीं होनी चाहिए
इसे किसी और चीज के लिए इस्तेमाल करने के लिए।

-fverbose-asm
इसे और अधिक बनाने के लिए जनरेटेड असेंबली कोड में अतिरिक्त कमेंट्री जानकारी डालें
पढ़ने योग्य यह विकल्प आम तौर पर केवल उन लोगों के लिए उपयोगी होता है जिन्हें वास्तव में पढ़ने की आवश्यकता होती है
जनरेट किया गया असेंबली कोड (शायद कंपाइलर को डिबग करते समय)।

-fno-verbose-asm, डिफ़ॉल्ट, अतिरिक्त जानकारी को छोड़े जाने का कारण बनता है और है
दो असेंबलर फ़ाइलों की तुलना करते समय उपयोगी।

-फ़्रेकॉर्ड-जीसीसी-स्विच
यह स्विच कंपाइलर को दर्ज करने के लिए उपयोग की जाने वाली कमांड लाइन का कारण बनता है
ऑब्जेक्ट फ़ाइल जो बनाई जा रही है। यह स्विच केवल कुछ पर लागू किया गया है
लक्ष्य और रिकॉर्डिंग का सटीक प्रारूप लक्ष्य और बाइनरी फ़ाइल प्रारूप है
निर्भर है, लेकिन यह आमतौर पर ASCII टेक्स्ट वाले सेक्शन का रूप ले लेता है। इस
स्विच किससे संबंधित है? -fverbose-asm स्विच करें, लेकिन वह स्विच केवल रिकॉर्ड करता है
असेंबलर आउटपुट फ़ाइल में टिप्पणियों के रूप में जानकारी, इसलिए यह कभी भी वस्तु तक नहीं पहुंचती है
फ़ाइल। यह सभी देखें -ग्रेकॉर्ड-जीसीसी-स्विच कंपाइलर विकल्पों को संग्रहीत करने के दूसरे तरीके के लिए
वस्तु फ़ाइल।

-एफपीआईसी
साझा पुस्तकालय में उपयोग के लिए उपयुक्त स्थिति-स्वतंत्र कोड (PIC) उत्पन्न करें, यदि
लक्ष्य मशीन के लिए समर्थित। ऐसा कोड a . के माध्यम से सभी स्थिर पतों तक पहुँचता है
ग्लोबल ऑफ़सेट टेबल (जीओटी)। डायनेमिक लोडर GOT प्रविष्टियों को हल करता है जब
कार्यक्रम शुरू होता है (डायनेमिक लोडर जीसीसी का हिस्सा नहीं है; यह ऑपरेटिंग का हिस्सा है
प्रणाली)। यदि लिंक किए गए निष्पादन योग्य के लिए GOT आकार मशीन-विशिष्ट अधिकतम से अधिक है
आकार, आपको लिंकर से एक त्रुटि संदेश मिलता है जो दर्शाता है कि -एफपीआईसी काम नहीं करता; में
वह मामला, के साथ पुन: संकलित करें -एफपीआईसी बजाय। (ये अधिकतम स्पार्क पर 8k और 32k . हैं
m68k और RS/6000 पर। x86 की ऐसी कोई सीमा नहीं है।)

स्थिति-स्वतंत्र कोड को विशेष समर्थन की आवश्यकता होती है, और इसलिए यह केवल पर काम करता है
कुछ मशीनें। x86 के लिए, GCC सिस्टम V के लिए PIC का समर्थन करता है लेकिन सूर्य के लिए नहीं
386i. IBM RS/6000 के लिए उत्पन्न कोड हमेशा स्थिति-स्वतंत्र होता है।

जब यह फ़्लैग सेट किया जाता है, तो मैक्रोज़ "__pic__" और "__PIC__" को 1 से परिभाषित किया जाता है।

-एफपीआईसी
यदि लक्ष्य मशीन के लिए समर्थित है, तो स्थिति-स्वतंत्र कोड उत्सर्जित करें, इसके लिए उपयुक्त
डायनेमिक लिंकिंग और वैश्विक ऑफसेट टेबल के आकार की किसी भी सीमा से बचना। इस
विकल्प m68k, PowerPC और SPARC पर फर्क करता है।

स्थिति-स्वतंत्र कोड को विशेष समर्थन की आवश्यकता होती है, और इसलिए यह केवल पर काम करता है
कुछ मशीनें।

जब यह फ़्लैग सेट किया जाता है, तो मैक्रोज़ "__pic__" और "__PIC__" को 2 से परिभाषित किया जाता है।

-एफपीआई
-एफपीआईई
ये विकल्प के समान हैं -एफपीआईसी और -एफपीआईसी, लेकिन उत्पन्न स्थिति स्वतंत्र कोड
केवल निष्पादन योग्य में जोड़ा जा सकता है। आमतौर पर इन विकल्पों का उपयोग तब किया जाता है जब -पाई जीसीसी
लिंकिंग के दौरान विकल्प का उपयोग किया जाता है।

-एफपीआई और -एफपीआईई दोनों मैक्रोज़ "__pie__" और "__PIE__" को परिभाषित करते हैं। मैक्रोज़ के पास है
मूल्य 1 के लिए -एफपीआई और 2 के लिए -एफपीआईई.

-फनो-जंप-टेबल
स्विच स्टेटमेंट के लिए जंप टेबल का उपयोग न करें, भले ही यह अधिक कुशल हो
अन्य कोड जनरेशन रणनीतियों की तुलना में। यह विकल्प के संयोजन में उपयोग का है
-एफपीआईसी or -एफपीआईसी कोड बनाने के लिए जो एक गतिशील लिंकर का हिस्सा बनता है और नहीं कर सकता
जंप टेबल के पते का संदर्भ लें। कुछ लक्ष्यों पर, जंप टेबल के लिए a . की आवश्यकता नहीं होती है
GOT और इस विकल्प की आवश्यकता नहीं है।

-फिक्स्ड-REG
नाम के रजिस्टर का इलाज करें REG एक निश्चित रजिस्टर के रूप में; जेनरेट कोड को कभी भी संदर्भित नहीं करना चाहिए
यह (शायद एक स्टैक पॉइंटर, फ्रेम पॉइंटर या किसी अन्य निश्चित भूमिका में छोड़कर)।

REG एक रजिस्टर का नाम होना चाहिए। स्वीकृत रजिस्टर नाम मशीन-विशिष्ट हैं
और मशीन विवरण मैक्रो फ़ाइल में "REGISTER_NAMES" मैक्रो में परिभाषित हैं।

इस ध्वज का नकारात्मक रूप नहीं है, क्योंकि यह तीन-तरफ़ा विकल्प निर्दिष्ट करता है।

-fcall-प्रयुक्त-REG
नाम के रजिस्टर का इलाज करें REG एक आबंटन योग्य रजिस्टर के रूप में जिसे फ़ंक्शन द्वारा बंद किया जाता है
कॉल। इसे अस्थायी या चर के लिए आवंटित किया जा सकता है जो एक . के पार नहीं रहते हैं
बुलाना। इस तरह से संकलित कार्य रजिस्टर को सहेजते और पुनर्स्थापित नहीं करते हैं REG.

फ़्रेम पॉइंटर या स्टैक पॉइंटर के साथ इस फ़्लैग का उपयोग करना एक त्रुटि है। इसका उपयोग
अन्य रजिस्टरों के लिए ध्वज जिन्होंने मशीन के निष्पादन में व्यापक भूमिकाएँ निर्धारित की हैं
मॉडल विनाशकारी परिणाम देता है।

इस ध्वज का नकारात्मक रूप नहीं है, क्योंकि यह तीन-तरफ़ा विकल्प निर्दिष्ट करता है।

-fcall-सेव्ड-REG
नाम के रजिस्टर का इलाज करें REG कार्यों द्वारा सहेजे गए आवंटन योग्य रजिस्टर के रूप में। हो सकता है
कॉल के दौरान रहने वाले अस्थायी या चर के लिए भी आवंटित। कार्यों
इस तरह संकलित करें रजिस्टर को सहेजें और पुनर्स्थापित करें REG अगर वे इसका इस्तेमाल करते हैं।

फ़्रेम पॉइंटर या स्टैक पॉइंटर के साथ इस फ़्लैग का उपयोग करना एक त्रुटि है। इसका उपयोग
अन्य रजिस्टरों के लिए ध्वज जिन्होंने मशीन के निष्पादन में व्यापक भूमिकाएँ निर्धारित की हैं
मॉडल विनाशकारी परिणाम देता है।

एक रजिस्टर के लिए इस ध्वज के उपयोग से एक अलग प्रकार की आपदा का परिणाम होता है जिसमें
फ़ंक्शन मान वापस किया जा सकता है।

इस ध्वज का नकारात्मक रूप नहीं है, क्योंकि यह तीन-तरफ़ा विकल्प निर्दिष्ट करता है।

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

चेतावनी: la -फपैक-संरचना स्विच जीसीसी को कोड उत्पन्न करने का कारण बनता है जो बाइनरी नहीं है
उस स्विच के बिना उत्पन्न कोड के साथ संगत। इसके अतिरिक्त, यह कोड बनाता है
उप-इष्टतम। गैर-डिफ़ॉल्ट एप्लिकेशन बाइनरी इंटरफ़ेस के अनुरूप इसका उपयोग करें।

-फिंस्ट्रमेंट-फ़ंक्शंस
कार्यों में प्रवेश और निकास के लिए इंस्ट्रूमेंटेशन कॉल उत्पन्न करें। समारोह के ठीक बाद
प्रविष्टि और फ़ंक्शन से बाहर निकलने से ठीक पहले, निम्नलिखित रूपरेखा कार्यों को कहा जाता है:
वर्तमान फ़ंक्शन और उसकी कॉल साइट का पता। (कुछ प्लेटफॉर्म पर,
"__builtin_return_address" वर्तमान फ़ंक्शन से आगे काम नहीं करता है, इसलिए कॉल साइट
जानकारी अन्यथा प्रोफाइलिंग कार्यों के लिए उपलब्ध नहीं हो सकती है।)

शून्य __cyg_profile_func_enter (शून्य *this_fn,
शून्य * कॉल_साइट);
शून्य __cyg_profile_func_exit (शून्य *this_fn,
शून्य * कॉल_साइट);

पहला तर्क वर्तमान फ़ंक्शन की शुरुआत का पता है, जो हो सकता है
प्रतीक तालिका में बिल्कुल ऊपर देखा।

यह उपकरण अन्य कार्यों में इनलाइन विस्तारित कार्यों के लिए भी किया जाता है।
प्रोफाइलिंग कॉल्स इंगित करती हैं कि, अवधारणात्मक रूप से, इनलाइन फ़ंक्शन कहाँ दर्ज किया गया है और
निकल गया। इसका मतलब है कि ऐसे कार्यों के पता योग्य संस्करण उपलब्ध होने चाहिए। अगर
किसी फ़ंक्शन के आपके सभी उपयोग इनलाइन विस्तारित हैं, इसका अर्थ अतिरिक्त विस्तार हो सकता है
कोड आकार का। यदि आप अपने सी कोड में "बाहरी इनलाइन" का उपयोग करते हैं, तो इसका पता करने योग्य संस्करण
ऐसे कार्यों को प्रदान किया जाना चाहिए। (यह वैसे भी सामान्य रूप से होता है, लेकिन अगर आपको मिलता है
भाग्यशाली और अनुकूलक हमेशा इनलाइन कार्यों का विस्तार करता है, हो सकता है कि आपको मिल गया हो
स्थिर प्रतियां प्रदान किए बिना दूर।)

एक फ़ंक्शन को "no_instrument_function" विशेषता दी जा सकती है, जिस स्थिति में यह
यंत्रीकरण नहीं किया गया है। इसका उपयोग किया जा सकता है, उदाहरण के लिए, प्रोफाइलिंग के लिए
ऊपर सूचीबद्ध कार्य, उच्च-प्राथमिकता वाले व्यवधान दिनचर्या, और कोई भी कार्य जिससे
प्रोफाइलिंग कार्यों को सुरक्षित रूप से नहीं कहा जा सकता है (शायद सिग्नल हैंडलर, यदि
प्रोफाइलिंग रूटीन आउटपुट उत्पन्न करते हैं या मेमोरी आवंटित करते हैं)।

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

उदाहरण के लिए:

-फिन्सट्रूमेंट-फ़ंक्शंस-बहिष्कृत-फ़ाइल-सूची =/बिट्स/एसटीएल, शामिल/sys

उन फ़ाइलों में परिभाषित किसी भी इनलाइन फ़ंक्शन को शामिल नहीं करता है जिनके पथनाम शामिल हैं /बिट्स/एसटीएल or
शामिल/sys.

अगर, किसी कारण से, आप पत्र शामिल करना चाहते हैं , एक में प्रतीक, लिखो ,। उदाहरण के लिए,
-फिन्सट्रूमेंट-फ़ंक्शंस-बहिष्कृत-फ़ाइल-सूची = ',, टीएमपी' (आसपास के एकल उद्धरण पर ध्यान दें
विकल्प)।

-फंस्ट्रमेंट-फ़ंक्शंस-बहिष्कृत-फ़ंक्शन-सूची =प्रतीक,प्रतीक, ...
यह समान है -फिन्सट्रूमेंट-फ़ंक्शंस-बहिष्कृत-फ़ाइल-सूची, लेकिन यह विकल्प सेट करता है
इंस्ट्रुमेंटेशन से बाहर किए जाने वाले फ़ंक्शन नामों की सूची। समारोह का नाम होना चाहिए
मिलान इसका उपयोगकर्ता-दृश्यमान नाम है, जैसे "वेक्टर ब्लाह (स्थिरांक वेक्टर &)", नहीं
आंतरिक उलझा हुआ नाम (जैसे, "_Z4blahRSt6vectorIiSaIiEE")। मैच पर किया जाता है
सबस्ट्रिंग्स: यदि प्रतीक पैरामीटर फ़ंक्शन नाम का एक विकल्प है, इसे माना जाता है
एक मैच होना। C99 और C++ विस्तारित पहचानकर्ताओं के लिए, फ़ंक्शन का नाम दिया जाना चाहिए
यूटीएफ -8 में, सार्वभौमिक चरित्र नामों का उपयोग नहीं कर रहा है।

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

ध्यान दें कि यह स्विच वास्तव में जाँच करने का कारण नहीं बनता है; संचालन
सिस्टम या भाषा रनटाइम को ऐसा करना चाहिए। स्विच के कारण कोड उत्पन्न होता है
सुनिश्चित करें कि वे स्टैक को विस्तारित होते हुए देखते हैं।

आप अतिरिक्त रूप से एक स्ट्रिंग पैरामीटर निर्दिष्ट कर सकते हैं: नहीं मतलब कोई जाँच नहीं, सामान्य साधन
पुरानी शैली की जाँच का उपयोग करने के लिए बाध्य करें, विशिष्ट मतलब सर्वोत्तम जाँच पद्धति का उपयोग करें और
नंगे के बराबर है -फस्टैक-चेक.

पुरानी शैली की जाँच एक सामान्य तंत्र है जिसमें किसी विशिष्ट लक्ष्य समर्थन की आवश्यकता नहीं होती है
संकलक लेकिन निम्नलिखित कमियों के साथ आता है:

1. बड़ी वस्तुओं के लिए संशोधित आवंटन रणनीति: उन्हें हमेशा आवंटित किया जाता है
गतिशील रूप से यदि उनका आकार एक निश्चित सीमा से अधिक है।

2. कार्यों के स्थिर फ्रेम के आकार पर निश्चित सीमा: जब यह सबसे ऊपर होता है a
विशेष कार्य, स्टैक जाँच विश्वसनीय नहीं है और एक चेतावनी जारी की जाती है
संकलक।

3. अक्षमता: संशोधित आवंटन रणनीति और सामान्य दोनों के कारण
कार्यान्वयन, कोड प्रदर्शन बाधित है।

ध्यान दें कि पुरानी शैली की स्टैक जाँच भी इसके लिए फ़ॉलबैक विधि है विशिष्ट यदि नही
संकलक में लक्ष्य समर्थन जोड़ा गया है।

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

उदाहरण के लिए, यदि स्टैक निरपेक्ष पते पर शुरू होता है 0x80000000 और नीचे की ओर बढ़ता है,
आप झंडे का उपयोग कर सकते हैं -फस्टैक-सीमा-प्रतीक=__स्टैक_लिमिट और
-Wl,--defsym,__stack_limit=0x7ffe0000 128KB की स्टैक सीमा लागू करने के लिए। ध्यान दें कि
यह केवल जीएनयू लिंकर के साथ काम कर सकता है।

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

जब कोड संकलित किया गया -फस्प्लिट-स्टैक कॉल कोड बिना संकलित किया गया -फस्प्लिट-स्टैक, क्या आप वहां मौजूद हैं
बाद वाले कोड को चलाने के लिए अधिक स्टैक स्थान उपलब्ध नहीं हो सकता है। अगर सभी को संकलित करना
पुस्तकालय कोड सहित कोड, के साथ -फस्प्लिट-स्टैक एक विकल्प नहीं है, तो लिंकर कर सकता है
इन कॉलों को ठीक करें ताकि कोड बिना संकलित किया जा सके -फस्प्लिट-स्टैक हमेशा एक बड़ा
ढेर। इसके लिए समर्थन GNU बिनुटिल्स रिलीज़ में गोल्ड लिंकर में लागू किया गया है
2.21 और बाद में।

-अग्रणी-अंडरस्कोर
यह विकल्प और इसके समकक्ष, -फनो-अग्रणी-अंडरस्कोर, जबरन रास्ता बदलो सी
ऑब्जेक्ट फ़ाइल में प्रतीकों का प्रतिनिधित्व किया जाता है। एक उपयोग विरासत से जुड़ने में मदद करना है
विधानसभा कोड।

चेतावनी: la -अग्रणी-अंडरस्कोर स्विच जीसीसी को कोड उत्पन्न करने का कारण बनता है जो नहीं है
उस स्विच के बिना उत्पन्न कोड के साथ बाइनरी संगत। इसका उपयोग a . के अनुरूप करने के लिए करें
गैर-डिफ़ॉल्ट अनुप्रयोग बाइनरी इंटरफ़ेस। सभी लक्ष्य पूर्ण समर्थन प्रदान नहीं करते हैं
इस स्विच के लिए।

-एफटीएलएस-मॉडल =आदर्श
उपयोग किए जाने वाले थ्रेड-लोकल स्टोरेज मॉडल को बदलें। NS आदर्श तर्क इनमें से एक होना चाहिए
वैश्विक गतिशील, स्थानीय गतिशील, प्रारंभिक-निष्पादन or स्थानीय-निष्पादन. ध्यान दें कि चुनाव है
अनुकूलन के अधीन: संकलक प्रतीकों के लिए अधिक कुशल मॉडल का उपयोग नहीं कर सकता है
अनुवाद इकाई के बाहर दृश्यमान, या if -एफपीआईसी कमांड लाइन पर नहीं दिया गया है।

बिना डिफ़ॉल्ट -एफपीआईसी is प्रारंभिक-निष्पादन; साथ में -एफपीआईसी डिफ़ॉल्ट है वैश्विक गतिशील.

-दृश्यता =[चूक|आंतरिक|छिपा हुआ|संरक्षित]
डिफ़ॉल्ट ईएलएफ छवि प्रतीक दृश्यता को निर्दिष्ट विकल्प पर सेट करें --- सभी प्रतीक हैं
इसके साथ चिह्नित किया गया है जब तक कि कोड के भीतर ओवरराइड नहीं किया जाता है। इस सुविधा का उपयोग करना बहुत हो सकता है
साझा ऑब्जेक्ट लाइब्रेरी के लिंकिंग और लोड समय में काफी सुधार करें, अधिक उत्पादन करें
अनुकूलित कोड, निकट-पूर्ण एपीआई निर्यात प्रदान करते हैं और प्रतीक संघर्ष को रोकते हैं। यह है
दृढ़ता से अनुशंसा की जाती है कि आप इसे आपके द्वारा वितरित किसी भी साझा ऑब्जेक्ट में उपयोग करें।

नामकरण के बावजूद, चूक हमेशा जनता का मतलब है; यानी, लिंक होने के लिए उपलब्ध
साझा वस्तु के बाहर से विरुद्ध। संरक्षित और आंतरिक काफी बेकार हैं
वास्तविक दुनिया का उपयोग इसलिए आमतौर पर इस्तेमाल किया जाने वाला एकमात्र अन्य विकल्प है छिपा हुआ. डिफ़ॉल्ट अगर
-दृश्यता निर्दिष्ट नहीं है is चूकयानी हर प्रतीक को सार्वजनिक करें।

ईएलएफ प्रतीकों का सही होना सुनिश्चित करके दिए जाने वाले लाभों की एक अच्छी व्याख्या
उलरिच ड्रेपर (जो हो सकता है) द्वारा "साझा पुस्तकालयों को कैसे लिखें" द्वारा दृश्यता दी गई है
पर मिलाhttp://www.akkadia.org/drepper/>)---हालाँकि एक बेहतर समाधान बनाया
डिफ़ॉल्ट सार्वजनिक होने पर छिपी चीजों को चिह्नित करने के लिए इस विकल्प द्वारा संभव है
डिफ़ॉल्ट छिपा हुआ है और चीजों को सार्वजनिक रूप से चिह्नित करता है। विंडोज़ पर डीएलएल के साथ यह आदर्श है और
साथ में -दृश्यता = छिपा हुआ और "__attribute__ ((दृश्यता("डिफ़ॉल्ट")))" के बजाय
"__declspec(dllexport)" आपको समान सिंटैक्स के साथ लगभग समान शब्दार्थ मिलते हैं।
क्रॉस-प्लेटफ़ॉर्म प्रोजेक्ट्स के साथ काम करने वालों के लिए यह एक बहुत बड़ा वरदान है।

मौजूदा कोड में दृश्यता समर्थन जोड़ने वालों के लिए, आपको "#pragma GCC . मिल सकता है
दृश्यता" उपयोग की। यह आपके द्वारा उन घोषणाओं को संलग्न करके काम करता है जिन्हें आप सेट करना चाहते हैं
के लिए दृश्यता (उदाहरण के लिए) "#pragma GCC दृश्यता पुश (छिपा हुआ)" और "#pragma
जीसीसी दृश्यता पॉप"। ध्यान रखें कि प्रतीक दृश्यता देखी जानी चाहिए as भाग of
la API इंटरफेस अनुबंध और इस प्रकार सभी नए कोड को हमेशा दृश्यता निर्दिष्ट करनी चाहिए जब
यह डिफ़ॉल्ट नहीं है; यानी, केवल स्थानीय डीएसओ के भीतर उपयोग के लिए घोषणाएं
हमेशा पीएलटी अप्रत्यक्ष से बचने के लिए स्पष्ट रूप से छिपे हुए के रूप में चिह्नित किया जाना चाहिए
ओवरहेड्स --- इसे बहुतायत से स्पष्ट करने से भी पठनीयता और स्व-दस्तावेजीकरण में सहायता मिलती है
कोड का। ध्यान दें कि ISO C++ विनिर्देश आवश्यकताओं के कारण, "ऑपरेटर नया" और
"ऑपरेटर हटाएं" हमेशा डिफ़ॉल्ट दृश्यता का होना चाहिए।

ध्यान रखें कि आपके प्रोजेक्ट के बाहर के हेडर, विशेष रूप से सिस्टम हेडर और
आपके द्वारा उपयोग की जाने वाली किसी भी अन्य पुस्तकालय के शीर्षलेखों के साथ संकलित होने की अपेक्षा नहीं की जा सकती है
डिफ़ॉल्ट के अलावा अन्य दृश्यता। आपको स्पष्ट रूप से कहना पड़ सकता है "#pragma GCC
ऐसे किसी भी शीर्षलेख को शामिल करने से पहले दृश्यता पुश (डिफ़ॉल्ट)"।

"बाहरी" घोषणाएं प्रभावित नहीं होती हैं -दृश्यता, तो बहुत सारे कोड हो सकते हैं
के साथ पुन: संकलित -दृश्यता = छिपा हुआ बिना किसी संशोधन के। हालांकि, इसका मतलब है कि
बिना किसी स्पष्ट दृश्यता वाले "बाहरी" कार्यों के लिए कॉल पीएलटी का उपयोग करते हैं, इसलिए यह अधिक है
"__attribute ((दृश्यता))" और/या "#pragma GCC दृश्यता" का उपयोग करने के लिए प्रभावी
संकलक जो "बाहरी" घोषणाओं को छिपा हुआ माना जाना चाहिए।

ध्यान दें कि -दृश्यता सी ++ अस्पष्ट लिंकेज इकाइयों को प्रभावित करता है। इसका मतलब है कि, के लिए
उदाहरण के लिए, एक अपवाद वर्ग जिसे डीएसओ के बीच फेंका गया है, उसे स्पष्ट रूप से चिह्नित किया जाना चाहिए
डिफ़ॉल्ट दृश्यता के साथ ताकि type_info नोड्स डीएसओ के बीच एकीकृत होते हैं।

इन तकनीकों का एक सिंहावलोकन, उनके लाभ और उनका उपयोग कैसे करें, इस पर है
<http://gcc.gnu.org/wiki/Visibility>.

-फस्ट्रिक्ट-अस्थिर-बिटफील्ड्स
इस विकल्प का उपयोग तब किया जाना चाहिए जब अस्थिर बिट-फ़ील्ड (या अन्य संरचना .) तक पहुँच हो
फ़ील्ड, हालांकि संकलक आमतौर पर वैसे भी उन प्रकारों का सम्मान करता है) एक का उपयोग करना चाहिए
क्षेत्र के प्रकार की चौड़ाई तक पहुंच, यदि संभव हो तो प्राकृतिक संरेखण से गठबंधन।
उदाहरण के लिए, मेमोरी-मैप्ड पेरिफेरल रजिस्टर वाले लक्ष्यों को ऐसे सभी की आवश्यकता हो सकती है
16 बिट चौड़ा होने तक पहुंच; इस ध्वज के साथ आप सभी परिधीय बिट-फ़ील्ड घोषित कर सकते हैं
जीसीसी को उपयोग करने के लिए मजबूर करने के लिए "अहस्ताक्षरित लघु" (इन लक्ष्यों पर कम 16 बिट मानते हैं) के रूप में
शायद, अधिक कुशल 16-बिट एक्सेस के बजाय 32-बिट एक्सेस।

यदि यह विकल्प अक्षम है, तो संकलक सबसे कुशल निर्देश का उपयोग करता है। में
पिछला उदाहरण, यह 32-बिट लोड निर्देश हो सकता है, भले ही वह एक्सेस करता हो
बाइट्स जिनमें बिट-फ़ील्ड, या मेमोरी-मैप्ड रजिस्टरों का कोई भाग नहीं होता है
अद्यतन किए जाने वाले से असंबंधित।

कुछ मामलों में, जैसे कि जब "पैक्ड" विशेषता को किसी संरचना क्षेत्र पर लागू किया जाता है, तो यह
एक ही पढ़ने या लिखने के साथ फ़ील्ड तक पहुंचना संभव नहीं हो सकता है जो सही है
लक्ष्य मशीन के लिए गठबंधन। इस मामले में जीसीसी कई उत्पन्न करने के लिए वापस आ जाता है
कोड के बजाय एक्सेस करता है जो रन टाइम पर परिणाम को गलत या छोटा कर देगा।

नोट: C/C++11 मेमोरी मॉडल के प्रतिबंधों के कारण, लेखन अभिगम की अनुमति नहीं है
गैर-बिट-फ़ील्ड सदस्यों को स्पर्श करने के लिए। इसलिए यह अनुशंसा की जाती है कि के सभी बिट्स को परिभाषित किया जाए
फ़ील्ड का प्रकार बिट-फ़ील्ड सदस्यों के रूप में।

इस विकल्प का डिफ़ॉल्ट मान अनुप्रयोग बाइनरी इंटरफ़ेस द्वारा निर्धारित किया जाता है
लक्ष्य प्रोसेसर।

-fsync-libcalls
यह विकल्प नियंत्रित करता है कि क्या के "__sync" परिवार का कोई आउट-ऑफ़-लाइन इंस्टेंस
फ़ंक्शंस का उपयोग C++11 "__atomic" फ़ंक्शंस के परिवार को लागू करने के लिए किया जा सकता है।

इस विकल्प का डिफ़ॉल्ट मान सक्षम है, इस प्रकार विकल्प का एकमात्र उपयोगी रूप है
is -फनो-सिंक-लिबकॉल्स. इस विकल्प का उपयोग के कार्यान्वयन में किया जाता है कामोत्तेजक
क्रम पुस्तकालय।

वातावरण


यह खंड कई पर्यावरण चरों का वर्णन करता है जो जीसीसी के संचालन को प्रभावित करते हैं। कुछ
उनमें से विभिन्न प्रकार की खोज करते समय उपयोग करने के लिए निर्देशिका या उपसर्ग निर्दिष्ट करके काम करते हैं
फाइलों का। कुछ का उपयोग संकलन वातावरण के अन्य पहलुओं को निर्दिष्ट करने के लिए किया जाता है।

ध्यान दें कि आप विकल्पों का उपयोग करके खोजने के लिए स्थान भी निर्दिष्ट कर सकते हैं जैसे -B, -I और -L.
ये पर्यावरण चर का उपयोग करके निर्दिष्ट स्थानों पर पूर्वता लेते हैं, जो बदले में
जीसीसी के विन्यास द्वारा निर्दिष्ट लोगों पर वरीयता लें।

लैंग
एलसी_CTYPE
एलसी_MESSAGES
LC_ALL
ये पर्यावरण चर उस तरीके को नियंत्रित करते हैं जिससे GCC स्थानीयकरण जानकारी का उपयोग करता है
जो जीसीसी को विभिन्न राष्ट्रीय सम्मेलनों के साथ काम करने की अनुमति देता है। जीसीसी ने लोकेल का निरीक्षण किया
श्रेणियाँ एलसी_CTYPE और एलसी_MESSAGES अगर इसे ऐसा करने के लिए कॉन्फ़िगर किया गया है। ये लोकेल
श्रेणियों को आपकी स्थापना द्वारा समर्थित किसी भी मान पर सेट किया जा सकता है। एक विशिष्ट मूल्य है
en_GB.UTF-8 यूनाइटेड किंगडम में अंग्रेजी के लिए UTF-8 में एन्कोड किया गया।

RSI एलसी_CTYPE पर्यावरण चर वर्ण वर्गीकरण को निर्दिष्ट करता है। जीसीसी इसका उपयोग करता है
एक स्ट्रिंग में वर्ण सीमा निर्धारित करें; यह कुछ मल्टीबाइट के लिए आवश्यक है
एन्कोडिंग जिसमें उद्धरण और एस्केप वर्ण होते हैं जिन्हें अन्यथा a . के रूप में व्याख्यायित किया जाता है
स्ट्रिंग अंत या बच।

RSI एलसी_MESSAGES पर्यावरण चर निदान में उपयोग की जाने वाली भाषा को निर्दिष्ट करता है
संदेश.

अगर LC_ALL पर्यावरण चर सेट है, यह के मान को ओवरराइड करता है एलसी_CTYPE और
एलसी_MESSAGES; अन्यथा, एलसी_CTYPE और एलसी_MESSAGES के मान के लिए डिफ़ॉल्ट लैंग
वातावरण विविधता। यदि इनमें से कोई भी चर सेट नहीं है, तो GCC पारंपरिक पर डिफ़ॉल्ट है
सी अंग्रेजी व्यवहार।

टीएमपीडीआईआर
If टीएमपीडीआईआर सेट है, यह अस्थायी फ़ाइलों के लिए उपयोग करने के लिए निर्देशिका निर्दिष्ट करता है। जीसीसी उपयोग करता है
संकलन के एक चरण के आउटपुट को रखने के लिए अस्थायी फ़ाइलें जिसका उपयोग किया जाना है:
अगले चरण में इनपुट: उदाहरण के लिए, प्रीप्रोसेसर का आउटपुट, जो है
कंपाइलर को इनपुट उचित।

GCC_COMPARE_DEBUG
की स्थापना GCC_COMPARE_DEBUG पासिंग के लगभग बराबर है -fतुलना-डीबग को
संकलक चालक। अधिक जानकारी के लिए इस विकल्प का दस्तावेज़ीकरण देखें।

जीसीसी_EXEC_PREFIX
If जीसीसी_EXEC_PREFIX सेट है, यह के नामों में उपयोग करने के लिए एक उपसर्ग निर्दिष्ट करता है
संकलक द्वारा निष्पादित उपप्रोग्राम। जब इस उपसर्ग को जोड़ा जाता है तो कोई स्लैश नहीं जोड़ा जाता है
उपप्रोग्राम के नाम के साथ, लेकिन आप एक उपसर्ग निर्दिष्ट कर सकते हैं जो एक स्लैश के साथ समाप्त होता है if
तुम चाहो।

If जीसीसी_EXEC_PREFIX सेट नहीं है, GCC उपयोग करने के लिए एक उपयुक्त उपसर्ग का पता लगाने का प्रयास करता है
पथनाम के आधार पर इसे लागू किया जाता है।

यदि जीसीसी निर्दिष्ट उपसर्ग का उपयोग करके उपप्रोग्राम नहीं ढूंढ पाता है, तो यह देखने की कोशिश करता है
उपप्रोग्राम के लिए सामान्य स्थान।

का डिफ़ॉल्ट मान जीसीसी_EXEC_PREFIX is उपसर्ग/lib/gcc/ जहां उपसर्ग उपसर्ग है
स्थापित कंपाइलर। कई मामलों में उपसर्ग जब आप इसे चलाते हैं तो "उपसर्ग" का मान होता है
कॉन्फ़िगर लिपियों.

के साथ निर्दिष्ट अन्य उपसर्ग -B इस उपसर्ग पर वरीयता लें।

इस उपसर्ग का उपयोग फाइलों को खोजने के लिए भी किया जाता है जैसे कि crt0.o जिनका उपयोग लिंकिंग के लिए किया जाता है।

इसके अलावा, उपसर्ग का उपयोग असामान्य तरीके से खोज करने के लिए निर्देशिकाओं को खोजने में किया जाता है
हेडर फाइलों के लिए। प्रत्येक मानक निर्देशिका के लिए जिसका नाम सामान्य रूप से शुरू होता है
साथ में /usr/स्थानीय/lib/gcc (अधिक सटीक रूप से, के मूल्य के साथ GCC_INCLUDE_DIR), जीसीसी कोशिश करता है
एक वैकल्पिक निर्देशिका बनाने के लिए उस शुरुआत को निर्दिष्ट उपसर्ग के साथ बदलना
नाम। इस प्रकार, साथ -बीफू/, जीसीसी खोज फू/बार मानक की खोज करने से ठीक पहले
डायरेक्टरी /usr/स्थानीय/lib/bar. यदि एक मानक निर्देशिका कॉन्फ़िगर के साथ शुरू होती है
उपसर्ग तो का मान उपसर्ग द्वारा प्रतिस्थापित किया जाता है जीसीसी_EXEC_PREFIX हेडर की तलाश करते समय
फाइलें.

कंपाइलर_पथ
के मूल्य कंपाइलर_पथ निर्देशिकाओं की एक बृहदान्त्र-पृथक सूची है, बहुत पसंद है पथ.
जीसीसी उपप्रोग्राम की खोज करते समय इस प्रकार निर्दिष्ट निर्देशिकाओं की कोशिश करता है, अगर यह नहीं कर सकता है
उपप्रोग्राम का उपयोग करके खोजें जीसीसी_EXEC_PREFIX.

पुस्तकालय_पथ
के मूल्य पुस्तकालय_पथ निर्देशिकाओं की एक बृहदान्त्र-पृथक सूची है, बहुत पसंद है पथ.
जब एक देशी कंपाइलर के रूप में कॉन्फ़िगर किया जाता है, तो जीसीसी इस प्रकार निर्दिष्ट निर्देशिकाओं की कोशिश करता है जब
विशेष लिंकर फ़ाइलों की खोज करना, यदि यह उनका उपयोग करके नहीं मिल रहा है जीसीसी_EXEC_PREFIX.
सामान्य पुस्तकालयों की खोज करते समय जीसीसी का उपयोग करके लिंक करना भी इन निर्देशिकाओं का उपयोग करता है
के लिए -l विकल्प (लेकिन निर्देशिकाओं के साथ निर्दिष्ट) -L पहले आना)।

लैंग
इस वेरिएबल का उपयोग स्थानीय जानकारी को कंपाइलर को पास करने के लिए किया जाता है। एक तरीका जिससे
इस जानकारी का उपयोग वर्ण सेट करते समय उपयोग किए जाने वाले वर्ण सेट को निर्धारित करने के लिए किया जाता है
अक्षर, स्ट्रिंग अक्षर और टिप्पणियां सी और सी ++ में पार्स की जाती हैं। जब संकलक है
मल्टीबाइट वर्णों को अनुमति देने के लिए कॉन्फ़िगर किया गया है, निम्न मानों के लिए लैंग रहे
मान्यता प्राप्त:

सी-जिस
JIS वर्णों को पहचानें।

सी-एसजेआईएस
SJIS वर्णों को पहचानें।

सी-ईयूसीजेपी
EUCJP वर्णों को पहचानें।

If लैंग परिभाषित नहीं है, या यदि इसका कोई अन्य मूल्य है, तो संकलक "mblen" का उपयोग करता है
और "mbtowc" जैसा कि मल्टीबाइट को पहचानने और अनुवाद करने के लिए डिफ़ॉल्ट लोकेल द्वारा परिभाषित किया गया है
अक्षर.

कुछ अतिरिक्त पर्यावरण चर प्रीप्रोसेसर के व्यवहार को प्रभावित करते हैं।

सीपीएटीएच
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
प्रत्येक चर का मान एक विशेष वर्ण द्वारा अलग की गई निर्देशिकाओं की एक सूची है, बहुत कुछ
पसंद पथ, जिसमें हेडर फाइलों को देखना है। विशेष पात्र,
"PATH_SEPARATOR", लक्ष्य-निर्भर है और GCC निर्माण समय पर निर्धारित होता है। माइक्रोसॉफ्ट के लिए
विंडोज-आधारित लक्ष्य यह एक अर्धविराम है, और लगभग सभी अन्य लक्ष्यों के लिए यह एक है
कोलन।

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

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

इन सभी वेरिएबल्स में, एक खाली तत्व कंपाइलर को अपने करंट को खोजने का निर्देश देता है
कार्यकारी डाइरेक्टरी। पथ के आरंभ या अंत में खाली तत्व दिखाई दे सकते हैं। के लिये
उदाहरण के लिए, यदि का मान सीपीएटीएच है ":/विशेष/शामिल", जिसका प्रभाव वही है
-मैं। -मैं/विशेष/शामिल.

DEPENDENCIES_OUTPUT
यदि यह चर सेट किया गया है, तो इसका मान निर्दिष्ट करता है कि मेक आधारित के लिए निर्भरता कैसे आउटपुट करें
संकलक द्वारा संसाधित गैर-सिस्टम शीर्षलेख फ़ाइलों पर। सिस्टम हेडर फाइलें हैं
निर्भरता आउटपुट में अनदेखा किया गया।

के मूल्य DEPENDENCIES_OUTPUT केवल एक फ़ाइल नाम हो सकता है, जिस स्थिति में नियम बनाएं
स्रोत फ़ाइल नाम से लक्ष्य नाम का अनुमान लगाते हुए, उस फ़ाइल में लिखा जाता है। या
मान का रूप हो सकता है पट्टिका लक्ष्य, जिस स्थिति में नियम फाइल करने के लिए लिखे जाते हैं पट्टिका
का उपयोग लक्ष्य लक्ष्य नाम के रूप में।

दूसरे शब्दों में, यह पर्यावरण चर विकल्पों के संयोजन के बराबर है -एमएम
और -एमएफ, एक वैकल्पिक . के साथ -एमटी स्विच भी।

SUNPRO_DEPENDENCIES
यह चर समान है DEPENDENCIES_OUTPUT (ऊपर देखें), उस प्रणाली को छोड़कर
हेडर फाइलों को नजरअंदाज नहीं किया जाता है, इसलिए इसका मतलब है -M बजाय -एमएम। हालांकि
मुख्य इनपुट फ़ाइल पर निर्भरता छोड़ी गई है।

onworks.net सेवाओं का उपयोग करके ऑनलाइन mips-linux-gnu-gnatgcc का उपयोग करें


फ्री सर्वर और वर्कस्टेशन

विंडोज और लाइनेक्स एप डाउनलोड करें

लिनक्स कमांड

Ad