ইংরেজিফরাসিস্প্যানিশ

অনওয়ার্কস ফেভিকন

aarch64-linux-gnu-g++-4.8 - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks ফ্রি হোস্টিং প্রদানকারীতে aarch64-linux-gnu-g++-4.8 চালান

এটি হল aarch64-linux-gnu-g++-4.8 কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


gcc - GNU প্রকল্প C এবং C++ কম্পাইলার

সাইনোপিসিস


জিসিসি [-c|-S|-E] [-std=মান]
[-g] [-পিজি] [-Oস্তর]
[-Wসতর্ক...] [-ডব্লিউডান্টিক]
[-IDir...] [-LDir...]
[-Dম্যাক্রো[=defn]...] [-Uম্যাক্রো]
[-fপছন্দ...] [-mমেশিন বিকল্প...]
[-o আউটফাইল] [@ফাইল] ইনফাইল...

শুধুমাত্র সবচেয়ে দরকারী বিকল্প এখানে তালিকাভুক্ত করা হয়; বাকি জন্য নীচে দেখুন. g ++ গ্রহণ
বেশিরভাগ ক্ষেত্রে একই বিকল্প জিসিসি.

বর্ণনাঃ


আপনি যখন GCC আহ্বান করেন, এটি সাধারণত প্রিপ্রসেসিং, সংকলন, সমাবেশ এবং লিঙ্কিং করে।
"সামগ্রিক বিকল্পগুলি" আপনাকে একটি মধ্যবর্তী পর্যায়ে এই প্রক্রিয়াটি বন্ধ করার অনুমতি দেয়। জন্য
উদাহরণস্বরূপ, -c বিকল্পটি লিঙ্কার চালানোর জন্য না বলে। তারপর আউটপুট অবজেক্ট নিয়ে গঠিত
অ্যাসেম্বলার দ্বারা ফাইল আউটপুট।

অন্যান্য বিকল্পগুলি প্রক্রিয়াকরণের এক পর্যায়ে প্রেরণ করা হয়। কিছু বিকল্প নিয়ন্ত্রণ
প্রিপ্রসেসর এবং অন্যান্য কম্পাইলার নিজেই। তবুও অন্যান্য বিকল্পগুলি অ্যাসেম্বলার নিয়ন্ত্রণ করে এবং
লিঙ্কার এগুলোর বেশিরভাগই এখানে নথিভুক্ত করা হয়নি, যেহেতু আপনাকে খুব কমই তাদের কোনোটি ব্যবহার করতে হবে।

আপনি GCC এর সাথে ব্যবহার করতে পারেন এমন বেশিরভাগ কমান্ড-লাইন বিকল্পগুলি সি প্রোগ্রামগুলির জন্য দরকারী; কখন
একটি বিকল্প শুধুমাত্র অন্য ভাষার সাথে উপযোগী (সাধারণত C++), ব্যাখ্যাটি তাই বলে
স্পষ্টভাবে যদি একটি নির্দিষ্ট বিকল্পের জন্য বিবরণ একটি উত্স উল্লেখ না করে
ভাষা, আপনি সমস্ত সমর্থিত ভাষার সাথে সেই বিকল্পটি ব্যবহার করতে পারেন।

সার্জারির জিসিসি প্রোগ্রাম অপশন এবং ফাইলের নাম অপারেন্ড হিসাবে গ্রহণ করে। অনেক অপশন আছে বহু-
অক্ষরের নাম; তাই একাধিক একক-অক্ষর বিকল্প হতে পারে না গ্রুপ করা: -ডিভি খুব
অন্য রকম -d -v.

আপনি বিকল্প এবং অন্যান্য যুক্তি মিশ্রিত করতে পারেন. বেশিরভাগ অংশে, আপনি যে অর্ডারটি ব্যবহার করেন তা হয় না
ব্যাপার আপনি যখন একই ধরণের একাধিক বিকল্প ব্যবহার করেন তখন অর্ডারটি গুরুত্বপূর্ণ; উদাহরণস্বরূপ, যদি
আপনি নির্দিষ্ট করুন -L একাধিকবার, নির্দেশিকাগুলি নির্দিষ্ট ক্রমে অনুসন্ধান করা হয়। এছাড়াও,
বসানো -l বিকল্প উল্লেখযোগ্য।

অনেক অপশনে লম্বা নাম দিয়ে শুরু হয় -f বা সাথে -W---উদাহরণ স্বরূপ,
-ফমভ-লুপ-আক্রমণকারীরা, -Wformat এবং তাই এর বেশিরভাগই ইতিবাচক এবং নেতিবাচক উভয়ই রয়েছে
ফর্ম এর নেতিবাচক রূপ -ফু is -fno-foo. এই ম্যানুয়াল নথি এই শুধুমাত্র একটি
দুটি ফর্ম, যেটি একটি ডিফল্ট নয়৷

বিকল্প


পছন্দ সারাংশ
এখানে টাইপ অনুসারে গোষ্ঠীবদ্ধ সমস্ত বিকল্পের একটি সারাংশ রয়েছে। ব্যাখ্যা নিম্নলিখিত আছে
বিভাগে।

সার্বিক অপশন সমূহ
-c -S -E -o ফাইল -নো-প্রামানিক-উপসর্গ পাইপ -পাস-প্রস্থান-কোড -x ভাষা -v
-### --help[=শ্রেণী[...]] --লক্ষ্য-সাহায্য --সংস্করণ - মোড়ক @ফাইল -pplugin =ফাইল
-ফ্লাগিন-আর্গ-নাম=ARG -fdump-ada-pec[- পাতলা] -ফাদা-স্পেক-প্যারেন্ট=একক
-fdump- গো-স্পেক =ফাইল

C ভাষা অপশন সমূহ
-আনসি -std=মান -fgnu89-ইনলাইন -অক্স-তথ্য ফাইলের নাম
-পতন-প্যারামিটারহীন-ভেরিয়েডিক-ফাংশন -ফনো-এএসএম -এফএনও-বিল্টিন -এফএনও-বিল্টিন-ক্রিয়া
-ফোস্টেড -ফ্রিস্ট্যান্ডিং -ফোপেনএমপি -এফএমএস-এক্সটেনশন -fplan9-এক্সটেনশন -ট্রিগ্রাফ
- ঐতিহ্যগত -প্রথাগত-cpp পতিত-একক-নির্ভুলতা -fcond-অমিল
-ফ্ল্যাক্স-ভেক্টর-রূপান্তর -ফসাইনড-বিটফিল্ডস -ফসাইনড-চার ফানসাইনড-বিটফিল্ড
-ফানসাইনড-চার

সি ++ ভাষা অপশন সমূহ
-ফ্যাবি-সংস্করণ=n -fno-অ্যাক্সেস-কন্ট্রোল -fcheck-নতুন -fconstexpr-গভীরতা=n
-বন্ধু-ইনজেকশন -ফনো-এলাইড-নির্মাণকারী -এফএনও-এনফোর্স-এহ-স্পেক্স - সুযোগের জন্য
-এফএনও-ফর-স্কোপ -fno-gnu-কীওয়ার্ড -fno-ইমপ্লিসিট-টেমপ্লেট
-fno-ইমপ্লিসিট-ইনলাইন-টেমপ্লেট -fno-ইমপ্লিমেন্ট-ইনলাইন -এফএমএস-এক্সটেনশন
-fno-nonansi-builtins -fnothrow-opt -fno-অপারেটর-নাম -ফনো-বিকল্প-ডায়াগস
-অনুমতিপূর্ণ -fno-সুন্দর-টেমপ্লেট -ফ্রেপো -এফএনও-আরটিটি -ফস্ট্যাটস
-ftemplate-ব্যাকট্রেস-সীমা=n -ftemplate-গভীরতা=n -fno-থ্রেডসেফ-স্ট্যাটিক্স
-ফিউজ-সিএক্সএ-এটেক্সিট -fno-দুর্বল -নোস্টডিঙ্ক++ -fno-ডিফল্ট-ইনলাইন
-fvisibility-ইনলাইন-লুকানো -ফিসিবিলিটি-এমএস-কমপ্যাট -সাংখ্যিক-আক্ষরিক -ওয়াবি
-Wconversion-null -Wctor-dtor-গোপনীয়তা -Wdelete-non-ভার্চুয়াল-ডোর -লিটারাল-প্রত্যয়
- সংকীর্ণ - ব্যতীত -নোন-ভার্চুয়াল-ডোর -নিয়ন্ত্রণ -Weffc ++ -Wstrict-null-sentinel
-Wno-নন-টেমপ্লেট-বন্ধু -ওল্ড-স্টাইল-কাস্ট -ওভারলোডেড-ভার্চুয়াল -Wno-pmf-রূপান্তর
-Wsign-promo

উদ্দেশ্য গ এবং উদ্দেশ্য-C++ ভাষা অপশন সমূহ
-fconstant-স্ট্রিং-শ্রেণী=শ্রেণির নাম -fgnu-রানটাইম -পরবর্তী-রানটাইম -fno-nil-রিসিভার
-ফবজেসি-এবি-সংস্করণ=n -fobjc-কল-cxx-cdtors -fobjc-সরাসরি-প্রেরণ -fobjc- ব্যতিক্রম
-ফবজেসি-জিসি -ফবজেসি-নিলচেক -FOBJC-STD = OBJC1 -freplace-objc-ক্লাস -fzero-লিংক
-জেন-ডিক্লেস -Wassign-Intercept -উনো-প্রটোকল -সেলেক্টর - কঠোর-নির্বাচক-ম্যাচ
-উন্ড ঘোষিত-নির্বাচক

ভাষা স্বাধীন অপশন সমূহ
-fmessage-দৈর্ঘ্য=n -fdiagnosts-শো-লোকেশন =[একদা|প্রতিটি লাইন]
-fno-ডায়াগনস্টিকস-শো-বিকল্প -fno-ডায়াগনস্টিকস-শো-ক্যারেট

সতর্কতা অপশন সমূহ
-fsyntax-শুধুমাত্র -fmax-ত্রুটি=n -ডব্লিউডান্টিক -শিক্ষা সংক্রান্ত-ত্রুটি -w -ওয়েক্সট্রা -ওয়াল
-ওয়াডড্রেস -ওয়াগ্রিগেট-রিটার্ন -আড়ম্বরপূর্ণ-লুপ-অপ্টিমাইজেশান -ওয়ারে-সীমা
-Wno- বৈশিষ্ট্য -Wno-বিল্টিন-ম্যাক্রো-পুনরায় সংজ্ঞায়িত -Wc++-কম্প্যাট -Wc++11-কম্প্যাট -Wcast-সারিবদ্ধ
-Wcast-গুণ -Wchar-সাবস্ক্রিপ্ট -Wclobbered -Wcomment -Wconversion -Wcoverage-অমিল
-WNO-CPP -উনো-বঞ্চিত -Wno-বঞ্চিত-ঘোষণা -Wdisabled-অপ্টিমাইজেশান
-নো-ডিআইভি-বাই-জিরো -ডাবল-প্রমোশন -শরীর ভেজা -ভেনাম-তুলনা -Wno-endif-লেবেল
-ভুল -ভুল=* মারাত্মক-ত্রুটি -Wfloat-সমান -Wformat -Wformat = 2
-Wno-ফর্ম্যাটে-ধারণ করে-nul -Wno-ফর্ম্যাট-অতিরিক্ত-আর্গস -Wformat-nonliteral -Wformat-নিরাপত্তা
-Wformat-y2k -Wframe-এর চেয়ে বড়-=লেন -Wno-মুক্ত-ননহেপ-বস্তু -Wjump-মিস-ইনিট
-অজ্ঞান-কোয়ালিফায়ার -উইমপ্লিসিট - Wimplicit-ফাংশন-ঘোষণা - Wimplicit-int
-ভিনিত-স্বয়ং -উইনলাইন -Wmaybe-uninitialized -নো-ইন-ইন-টু-পয়েন্টার-কাস্ট
-Wno-অবৈধ-অফসেটফ -উইনভালিড-পিএইচ -Wlarger-এর চেয়ে =লেন -উনসেফ-লুপ-অপ্টিমাইজেশন
-ব্লোগিকাল-ওপ -লং-লং -উমাইন -Wmaybe-uninitialized -উইমিসিং-বন্ধনী
মিসিং-ফিল্ড-ইনিশিয়ালাইজার মিসিং-ইনক্লুড-ডিরস -উনো-মাডফ্ল্যাপ -উনো-মাল্টিচার
-উনোনুল -উনো-ওভারফ্লো -ওভারলেন্থ-স্ট্রিং -Wpacked -ডব্লিউপ্যাকড-বিটফিল্ড-কমপ্যাট
-Wpadded - বন্ধনী -Wpedantic-ms- বিন্যাস -নো-পেডান্টিক-এমএস-ফর্ম্যাট -Wpointer-rith
-Wno-পয়েন্টার থেকে int-কাস্ট -অপ্রয়োজনীয়- ঘোষণা -Wno-রিটার্ন-স্থানীয়-addr -Wreturn-টাইপ
-ডেনসেন্স-পয়েন্ট -ছায়া -সাইন-তুলনা -Wsign-রূপান্তর
-পয়েন্টার-মেমাক্সেসের আকার -Wstack-রক্ষক -Wstack- ব্যবহার =লেন -WSTRICT-LIASING
-WSTRICT-LIASING = n -Wstrict-ওভারফ্লো -WSTRICT-overflow =n
-Wsuggest-rtribute =[বিশুদ্ধ|const|ফেরত নেই|বিন্যাস] -উমিসিং-ফর্ম্যাট-অ্যাট্রিবিউট -উউইচ
-Wswitch-ডিফল্ট -উইউইচ-এনাম -Wsync-nand -Wsystem-headers -WTRAMPOLINES
-Wtrigraphs -Wtype-সীমা -উন্ডেফ -উনিনিটিয়ালাইজড -অজানা-প্রাগমাস -নো-প্রাগমাস
-Wunsufixed-float-constants -ওয়ান ব্যবহার করা হয়েছে -Wunused-ফাংশন -Wunused-লেবেল
-Wunused-স্থানীয়-টাইপডেফ -Wunused-পরামিটার -উনো-অব্যবহৃত-ফলাফল -উইনজড-মান
- Wunused- পরিবর্তনশীল -Wunused-কিন্তু-সেট-প্যারামিটার -উইনজুসেড-তবে-সেট-পরিবর্তনশীল -উইসলেস-কাস্ট
-Wvariadic-ম্যাক্রো -Wvector-অপারেশন-পারফরম্যান্স -Wvla -Wvolatile-register-var
লিখুন-স্ট্রিং -Wzero-as-নাল-পয়েন্টার-কনস্ট্যান্ট

C এবং উদ্দেশ্য-সি-শুধুমাত্র সতর্কতা অপশন সমূহ
-Wbad-ফাংশন-কাস্ট মিসিং-ঘোষণা -Wmissing-প্যারামিটার-টাইপ
-Wmissing-প্রোটোটাইপ -তে আবদ্ধ-এক্সটারনস -ওল্ড-স্টাইল-ঘোষণা -ওল্ড-স্টাইল-সংজ্ঞা
-Wstrict-প্রোটোটাইপ - ঐতিহ্যগত ঐতিহ্যগত-রূপান্তর
-বিবৃতি-পরবর্তী ঘোষণা -Wpointer-চিহ্ন

ডিবাগ করা অপশন সমূহ
-dঅক্ষর - ডাম্পস্পেস - ডাম্প মেশিন - ডাম্প সংস্করণ -fsanitize =শৈলী -fdbg-cnt-তালিকা
-fdbg-cnt =পাল্টা মূল্য তালিকা -ফডিসেবল-আইপি-পাস_নাম -fdisable-rtl-পাস_নাম
-fdisable-rtl-পাস-নাম=পরিসীমা তালিকা অক্ষম-গাছ-পাস_নাম অক্ষম-গাছ-পাস-
নাম=পরিসীমা তালিকা -fdump-noaddr -fdump-অসংখ্যিত -fdump-অসংখ্যিত-লিঙ্ক
-fdump-অনুবাদ-ইউনিট[-n] -fdump-শ্রেণী-শ্রেণিক্রম[-n] -fdump-ipa-সমস্ত
-fdump-আইপিএ-সিগ্রাফ -fdump-ipa-ইনলাইন -fdump-পাস -fdump-পরিসংখ্যান -fdump-বৃক্ষ-সমস্ত
-fdump-ট্রি-অরিজিনাল[-n] -fdump-ট্রি-অপ্টিমাইজ করা[-n] -ফডাম্প-ট্রি-সিএফজি -fdump-ট্রি-অরফে
-ফডাম্প-ট্রি-সিএইচ -ফডাম্প-ট্রি-এসএসএ[-n] -fdump-ট্রি-প্রি[-n] -ফডাম্প-ট্রি-সিসিপি[-n]
-ফডাম্প-ট্রি-ডিসিই[-n] -ফডাম্প-ট্রি-গিম্পল[-কাঁচা] -fdump-বৃক্ষ-মাডফ্ল্যাপ[-n]
-fdump-ট্রি-ডোম[-n] -ফডাম্প-ট্রি-ডিএসই[-n] -এফডাম্প-ট্রি-ফিপ্রপ[-n] -এফডাম্প-ট্রি-ফিওপ্ট[-n]
-ফডাম্প-ট্রি-ফোরউপ্রপ[-n] -ফডাম্প-ট্রি-কপিরেনাম[-n] -এফডাম্প-ট্রি-এনআরভি -ফডাম্প-ট্রি-ভেক্ট
-fdump-ট্রি-সিঙ্ক -ফডাম্প-ট্রি-এসআরএ[-n] -ফডাম্প-ট্রি-ফোরউপ্রপ[-n] -fdump-বৃক্ষ-মুক্ত[-n]
-এফডাম্প-ট্রি-ভিআরপি[-n] -ftree-vectorizer-verbose=n -ফডাম্প-ট্রি-স্টোরসিসিপি[-n]
-fdump-ফাইনাল-insns=ফাইল -fcompare-debug[=opts] -fcompare-ডিবাগ-সেকেন্ড
-ফিলিমিনেট-ডওয়ার্ফ 2-ডুপস -fno-বর্জন-অব্যবহৃত-ডিবাগ-টাইপস
-ফেলিমিনেট-অব্যবহৃত-ডিবাগ-প্রতীক -femit-শ্রেণী-ডিবাগ-সর্বদা -প্রমাণযোগ্য-রকম-পাস
-প্রমাণযোগ্য-রকম-পাস=পরিসীমা তালিকা -fdebug-টাইপস-বিভাগ -এফএমইএম-রিপোর্ট-ডব্লিউপিএ -এফএমইএম-রিপোর্ট
-fpre-ipa-মেম-রিপোর্ট -fpost-ipa-মেম-রিপোর্ট -এফপ্রোফাইল-আর্কস -fopt-তথ্য
-ফপ্ট-তথ্য-অপশন[=ফাইল] -ফ্রেন্ডম-বীজ=স্ট্রিং -ফসচেড-ভারবোজ =n -fsel-নির্ধারিত-ভার্বোস
-fsel-নির্ধারিত-ডাম্প-cfg -fsel-নির্ধারিত-পাইপলাইনিং-ভার্বোস -fstack-ব্যবহার -সবচেয়ে কভারেজ
-এফটাইম-রিপোর্ট -fvar-ট্র্যাকিং -fvar-ট্র্যাকিং-অ্যাসাইনমেন্ট
-fvar-ট্র্যাকিং-অ্যাসাইনমেন্ট-টগল -g -gস্তর -gtoggle -gcoff -gdwarf-সংস্করণ -ggdb
-গ্রেকর্ড-জিসিসি-সুইচ -জিনো-রেকর্ড-জিসিসি-সুইচ -gstabs -gstabs+ -gstrict-বামন
-গ্নো-কঠোর-বামন -জিভিএমএস -gxcoff -gxcoff+ -fno-মার্জ-ডিবাগ-স্ট্রিং
-FNO-DWARF2-CFI-ASM -fdebug-prefix-Map =পুরাতন=নতুন -ফেমিট-স্ট্রাক্ট-ডিবাগ-বেসিওলি
-ফেমিট-স্ট্রাক্ট-ডিবাগ-হ্রাস -femit-struct-ডিবাগ-বিশদ[=বিশেষ তালিকা] -p -পিজি
-প্রিন্ট-ফাইল-নাম=লাইব্রেরি -প্রিন্ট-লিবিজিসিসি-ফাইল-নাম -প্রিন্ট-মাল্টি-ডিরেক্টরি
-প্রিন্ট-মাল্টি-লিব -প্রিন্ট-মাল্টি-ওএস-ডিরেক্টরি -প্রিন্ট-প্রোগ-নাম=কার্যক্রম
-প্রিন্ট-সার্চ-ডিরার্স -Q -প্রিন্ট-সিসরুট -প্রিন্ট-সিসরুট-হেডার-প্রত্যয় -সেভ-টেম্পস
-স্যাভ-টেম্পস = সিডাব্লুডি -স্যাভ-টেম্পস = ওবিজে -time[=ফাইল]

অপ্টিমাইজেশান অপশন সমূহ
-ফ্যাগ্রেসিভ-লুপ-অপ্টিমাইজেশন -ফ্যালাইন-ফাংশন[=n] -ফালাইন-জাম্প[=n]
-ফ্যালাইন-লেবেল[=n] -ফ্লাইন-লুপস [=n] -fasociative-গণিত -fauto-inc-ডিসেম্বর
-fbranch-সম্ভাবনা -fbranch-টার্গেট-লোড-অপ্টিমাইজ -fbranch-টার্গেট-লোড-অপ্টিমাইজ২
-fbtr-bb-এক্সক্লুসিভ -fcaller-সংরক্ষণ -ফচেক-ডেটা-ডিপস -fcombine-স্ট্যাক-সামঞ্জস্য
-fconserve-স্ট্যাক -FCOMPARE-LIM -fcprop-রেজিস্টার -ফক্রসজাম্পিং -fcse-অনুসরণ-জাম্প
-FCSE-SKIP-BLOCKS -fcx-ফরট্রান-নিয়ম -fcx-সীমিত-পরিসর -fdata-বিভাগ -fdce
-fdelayed-শাখা -ফডিলিট-নাল-পয়েন্টার-চেকস -fdevirtualize -fdse -ভয়পূর্ণ-ইনলাইনিং
-ফিপা-স্রা ব্যয়বহুল-অপ্টিমাইজেশান -ffat-lto-বস্তু ফাস্ট-গণিত শুধুমাত্র সীমাবদ্ধ-গণিত
-ফ্লোট-স্টোর -ফেক্সেস-নির্ভুলতা=শৈলী -ফরওয়ার্ড-প্রচার করা -ffp-চুক্তি=শৈলী
-ফাংশন-বিভাগ -fgcse -fgcse-আফটার-রিলোড -fgcse-las -fgcse-lm
-fgraphite-পরিচয় -fgcse-Sm -fhoist-সংলগ্ন-লোড -fif-রূপান্তর -fif-রূপান্তর২
-ফাইনডাইরেক্ট-ইনলাইনিং -ফিনলাইন-ফাংশন -ফিনলাইন-ফাংশন-কলে-একবার -ফিনলাইন-সীমা=n
-ফিনলাইন-ছোট-ফাংশন -ফিপা-সিপি -ফিপা-সিপি-ক্লোন -ফিপা-পিটিএ -ফিপা-প্রোফাইল
-ফিপা-বিশুদ্ধ-কনস্ট -ফিপা-রেফারেন্স -ফিরা-অ্যালগরিদম=অ্যালগরিদম -ফিরা-অঞ্চল=এলাকা
-ফিরা-উত্থান-চাপ -ফিরা-লুপ-চাপ -fno-ira-শেয়ার-সেভ-স্লট
-fno-ira-শেয়ার-স্পিল-স্লট -ফিরা-ভার্বোস=n -ফাইভপ্টস -fkeep-ইনলাইন-ফাংশন
-ফকিপ-স্ট্যাটিক-কনস্টস - ফ্লপ-ব্লক -ফ্লুপ-ইন্টারচেঞ্জ -ফ্লুপ-স্ট্রিপ-খনি
-ফ্লুপ-নেস্ট-অপ্টিমাইজ -floop-সমান্তরাল-সমস্ত -ফ্লো -ফ্লো-কম্প্রেশন-লেভেল
-ফ্লো-পার্টিশন=পানা -ফ্লো-রিপোর্ট -fmerge-সমস্ত ধ্রুবক -fmerge-ধ্রুবক
-fmodulo-নির্ধারিত -fmodulo-নির্ধারিত-অনুমতি-রেগমুভস -ফমভ-লুপ-আক্রমণকারীরা fmudflap
- fmudflapir -fmudflapth -fno-শাখা-গণনা-রেজি -fno-ডিফল্ট-ইনলাইন -ফনো-ডিফার-পপ
-fno-ফাংশন-cse -fno-অনুমান-শাখা-সম্ভাব্যতা -fno-ইনলাইন -fno-math-erno
-fno-peephole -fno-peephole2 -fno-নির্ধারিত-ইন্টারব্লক -fno-sched-স্পেক -fno-স্বাক্ষরিত-শূন্য
-fno-টপলেভেল-পুনঃক্রম -fno-ট্র্যাপিং-গণিত -fno-শূন্য-শুরু-ইন-বিএসএস
-ফমিট-ফ্রেম-পয়েন্টার -ফোপ্টিমাইজ-রেজিস্টার-মুভ -ফোপ্টিমাইজ-ভাই-কল
-আংশিক-ইনলাইনিং -ফপিল-লুপস -ফপ্রেডিকটিভ-কমনিং -fprefetch-লুপ-অ্যারে
-প্রোফাইল-রিপোর্ট -প্রোফাইল-সংশোধন -ফপ্রোফাইল-ডির =পথ -প্রোফাইল-জেনারেট করুন
-ফপ্রোফাইল-জেনারেট =পথ -প্রোফাইল-ব্যবহার -ফপ্রোফাইল-ব্যবহার =পথ -প্রোফাইল-মান
-ফ্রেসিপ্রোকাল-গণিত মুক্ত -fregmove -ফ্রেনাম-রেজিস্টার -ফ্রিঅর্ডার-ব্লক
-ফ্রিঅর্ডার-ব্লক-এবং-পার্টিশন -ফ্রিঅর্ডার-ফাংশন -frerun-cse-আফটার-লুপ
-ফ্রেশডিউল-মডিউল-নির্ধারিত-লুপ -প্রাথমিক-গণিত -fsched2-ব্যবহার-সুপারব্লক
-fsched-চাপ -fsched-স্পেক-লোড -fsched-বিশেষ-লোড-বিপজ্জনক
-ফসচড-স্টলড-ইনস-ডেপ [=n] -ফসচড-স্টলড-ইনস [=n] -fsched-গ্রুপ-হিউরিস্টিক
-fsched-সমালোচনা-পাথ-হিউরিস্টিক -ফসচড-স্পেক-ইন-হিউরিস্টিক -fsched-র্যাঙ্ক-হিউরিস্টিক
-ফসচড-লাস্ট-ইন-হিউরিস্টিক -ফসড-ডেপ-কাউন্ট-হিউরিস্টিক -fschedule- inss
-fschedule-inss2 -সেকশন-অ্যাঙ্কর -fselective-শিডিউলিং -ফসেক্টিভ-স্কিডুলিং 2
-fsel-নির্ধারিত-পাইপলাইনিং -fsel-নির্ধারিত-পাইপলাইন-বাইরের-লুপ -ফ্রিংক-মোড়
-ফসিগনালিং-ন্যানস -fsingle-নির্ভুলতা-ধ্রুবক -fsplit-ivs-ইন-আনরোলার
-fsplit-ওয়াইড-টাইপস -ফস্ট্যাক-রক্ষক -fstack-রক্ষক-সমস্ত -ট্রিক্ট-এলিয়াসিং
-fstrict-ওভারফ্লো -fthread-জাম্প -ফট্রেসার -এফট্রি-বিট-সিসিপি -এফটি-বিল্টিন-কল-ডিসিই
-এফট্রি-সিসিপি -ftre-ch -Free-coalesce-inline-vars -Free-coalesce-vars -ftre-কপি-প্রপ
-ftree-কপিরনাম -free-dce -free-dominator-opts -ftre-dse -free-forwprop
-ফ্রি-ফ্রি -ftre-লুপ-যদি-রূপান্তর -এফটি-লুপ-ইফ-কনভার্ট-স্টোর -ফ্রি-লুপ-আইএম
-ফ্রি-ফিপ্রপ -ফ্রি-লুপ-ডিস্ট্রিবিউশন -এফট্রি-লুপ-ডিস্ট্রিবিউট-প্যাটার্ন
-এফট্রি-লুপ-ইভক্যানন -ফ্রি-লুপ-লিনিয়ার -এফট্রি-লুপ-অপ্টিমাইজ -ftree- parallelize-loops=n
-ফ্রি-প্রি -ফ্রি-আংশিক-প্রাক -এফটি-পিটিএ -free-reassoc -ফ্রি-সিঙ্ক -এফটি-এসএলএসআর
-ftre-sra -এফট্রি-সুইচ-রূপান্তর -free-tail-merge -free-ter -ফ্রি-ভেক্টরাইজ
-এফটি-ভিআরপি -এক সময়ে মজা করা ফানরোল-অল-লুপস -ফানরোল-লুপস
-ফানসেফ-লুপ-অপ্টিমাইজেশন -ফানসেফ-গণিত-অপ্টিমাইজেশন -ফানসুইচ-লুপস
পরিবর্তনশীল-সম্প্রসারণ-ইন-আনরোলার -fvect-কস্ট-মডেল -fvpt -ফওয়েব -পুরো-প্রোগ্রাম -fwpa
-ফিউজ-ld=linker -ফিউজ-লিঙ্কার-প্লাগইন --পরম নাম=মূল্য -O -ও0 -ও1 -ও2 -ও3 -ওএস
-অফাস্ট -ওগ

প্রিপ্রসেসর অপশন সমূহ
-Aপ্রশ্ন=উত্তর -এ-প্রশ্ন[=উত্তর] -C -ডিডি -ডি -ডিএম -dn -Dম্যাক্রো[=defn] -E -H
-ইডিরাফটার Dir -অন্তর্ভুক্ত ফাইল -ইমাক্রোস ফাইল -ইপ্রিফিক্স ফাইল - উপসর্গ সহ Dir
-আগে উপসর্গ সহ Dir -সিস্টেম Dir -ইমাল্টিলিব Dir -ইসসরুট Dir -M -এমএম -এমএফ -এমজি
-এমপি -এমকিউ -এমটি -নোস্টডিঙ্ক -P -fdebug-cpp -ftrack-ম্যাক্রো-সম্প্রসারণ -fworking-ডিরেক্টরি
-রিম্যাপ -ট্রিগ্রাফ -undef -Uম্যাক্রো -ডব্লিউপি,পছন্দ -এক্সপ্রেপ্রসেসর পছন্দ -নো-ইন্টিগ্রেটেড-সিপিপি

অ্যাসেম্বলার পছন্দ
-ওয়া,পছন্দ - Xassembler পছন্দ

linker অপশন সমূহ
অবজেক্ট-ফাইলের নাম -lলাইব্রেরি -নোস্টার্ট ফাইল -নোডফল্টলিবস -নোস্টডিলিব -পাই - গতিশীল -s
- স্থির -স্ট্যাটিক-লিবিজিসিসি -স্ট্যাটিক-libstdc ++ -স্থির-লিবাসন -স্ট্যাটিক-লিবটসান - শেয়ার করা হয়েছে
-শেয়ারড-লিবিজিসি - প্রতীকী -T লিপি -ডব্লিউএল,পছন্দ -এক্সলিংকার পছন্দ -u প্রতীক

নির্দেশিকা অপশন সমূহ
-Bউপসর্গ -IDir -iplugindir =Dir -উদ্ধৃতিDir -LDir -চশমা =ফাইল -আমি- -সাইরুট =Dir
--no-sysroot-প্রত্যয়

মেশিন নির্ভরশীল অপশন সমূহ
এআরচ 64 অপশন সমূহ -বিগ-এন্ডিয়ান - সামান্য-এন্ডিয়ান -mgeneral-regs-শুধুমাত্র -mcmodel=ক্ষুদ্র
-mcmodel=ছোট -mcmodel=বড় -mstrict-সারিবদ্ধ -মোমিট-লিফ-ফ্রেম-পয়েন্টার
-mno-বাদ-পত্র-ফ্রেম-পয়েন্টার -mtls-dialect = desc -mtls-উপভাষা = ঐতিহ্যবাহী
-mfix-cortex-a53-835769 -MNO-FIX- CORTEX-A53-835769 -মার্চ =নাম -mcpu =নাম
-mtune =নাম

অ্যাডাপ্টেভা নিকট যীশুর আবির্ভাব অপশন সমূহ -mhalf-reg-ফাইল -mprefer- শর্ট-ইনস-রেজি -মব্র্যাঞ্চ-কস্ট =NUM
-mcmove -mnops =NUM -msoft-cmpsf -msplit-lohi -পোস্ট-ইঙ্ক -পোস্ট-সংশোধন
-mstack-oftset =NUM - নিকটতম -মলং-কল -mshort-কল -msmall16 -mfp-মোড=মোড
-mvect-ডাবল -ম্যাক্স-ভেক্টর-এলাইন =NUM -msplit-vecmove-শীঘ্রই -m1reg-REG

এআরএম অপশন সমূহ -mapcs-ফ্রেম -mno-apcs-ফ্রেম -মাবি=নাম -mapcs-স্ট্যাক-চেক
-mno-apcs-স্ট্যাক-চেক -ম্যাপসিএস-ফ্লোট -mno-apcs-ালু -mapcs-পুনঃপ্রবেশকারী
-mno-apcs-পুনঃপ্রবেশকারী -msched-prolog -mno-sched-prolog - সামান্য-এন্ডিয়ান -বিগ-এন্ডিয়ান
-mwords-লিটল-এন্ডিয়ান -mfloat-abi =নাম -mfp16-ফরম্যাট=নাম -mthumb-ইন্টারওয়ার্ক
-ম্নো-থাম্ব-ইন্টারওয়ার্ক -mcpu =নাম -মার্চ =নাম -mfpu =নাম -mstructure-আকার-সীমানা=n
-মাবোর্ট-অন-নরেটার্ন -মলং-কল -mno-লং-কল -একটি-ছবি-বেস
-mno-একক-পিক-বেস -mpic-রেজিস্টার=REG -mnop-fun-dllimport -mpoke-ফাংশন-নাম
-মথম্ব -মর্ম -mtpcs-ফ্রেম -mtpcs-পাতা-ফ্রেম -mcaller-সুপার-ইন্টারওয়ার্কিং
-mcallee-সুপার-ইন্টারওয়ার্কিং -এমটিপি=নাম -mtls-উপভাষা=উপভাষা -mword-স্থানান্তর
-mfix-cortex-M3-LDRD -সাম্প্রদায়িক-প্রবেশ -64 বিটের জন্য mneon- -mrestrict-এটা

এভিআর অপশন সমূহ -mmcu =MCU - maccumulate- args -মব্র্যাঞ্চ-কস্ট =মূল্য -mcall-প্রোলোগস -পুদিনা8
-mno-বিঘ্ন -মরেলাক্স -mstrict-x -mtiny-স্ট্যাক -ওয়াদ্দার-স্পেস-কনভার্ট

ব্ল্যাকফিন অপশন সমূহ -mcpu =সিপিইউ[-সিরেভিশন] -msim -মোমিট-লিফ-ফ্রেম-পয়েন্টার
-mno-বাদ-পত্র-ফ্রেম-পয়েন্টার -mspecld-অসঙ্গতি -mno-স্পেকল্ড-অসঙ্গতি -mcsync-অসঙ্গতি
-mno-csync-অসঙ্গতি -ম্লো -64 কে -mno-Low64k -mstack-Check-l1 -মিড-শেয়ারড-লাইব্রেরি
-mno-আইডি-শেয়ারড-লাইব্রেরি -mshared-লাইব্রেরি-id=n -mleaf-id-শেয়ারড-লাইব্রেরি
-mno-লিফ-আইডি-শেয়ারড-লাইব্রেরি -msep-ডেটা -mno-সেপ-ডেটা -মলং-কল -mno-লং-কল
-mfast-fp -মিনলাইন-প্লেট - মাল্টিকোর -ম্যাকোরিয়া -mcoreb -msdram -micplb

C6X অপশন সমূহ -বিগ-এন্ডিয়ান - সামান্য-এন্ডিয়ান -মার্চ =সিপিইউ -msim -msdata =sdata-টাইপ

Cris অপশন সমূহ -mcpu =সিপিইউ -মার্চ =সিপিইউ -mtune =সিপিইউ -mmax-স্ট্যাক-ফ্রেম=n
-মেলিনাক্স-স্ট্যাকসাইজ=n - metrax4 - metrax100 -এমপিডিবাগ -mcc-init -mno-পার্শ্বপ্রতিক্রিয়া
-mstack-সারিবদ্ধ -mdata-সারিবদ্ধ -mconst- align -m32-বিট -m16-বিট -m8-বিট
-mno-প্রোলোগ-এপিলগ -mno-gotplt -মেল্ফ - maout -মেলিনাক্স -ম্লিনাক্স -সিম -সিম2
-mmul-বাগ-কাজ -mno-mul-বাগ-ওয়ার্কআরউন্ড

CR16 অপশন সমূহ -ম্ম্যাক -MCR16CPLUS -mcr16c -msim -পুদিনা32 -এমবিট-অপস -mdata-মডেল=মডেল

ডারউইন অপশন সমূহ -সব_লোড -অনুমতিযোগ্য_ক্লায়েন্ট - খিলান -আর্ক_ত্রুটি_মারাত্মক -শুধুমাত্র
-আবদ্ধ_এ_লোড -পাঁজা -বান্ডিল_লোডার -গ্রাহকের নাম -সামঞ্জস্যতা_সংস্করণ
-বর্তমান সংস্করণ -মৃত_ফালা -নির্ভরতা-ফাইল -ডিলিব_ফাইল -ডিলিঙ্কার_ইনস্টল_নাম
-গতিশীল -ডাইনামিকলিব -রপ্তানি_প্রতীক_তালিকা - ফাইললিস্ট -ফ্ল্যাট_নামস্পেস
-ফোর্স_সিপুসুবটাইপ_আল -ফোর্স_ফ্ল্যাট_নামস্পেস -হেডারপ্যাড_ম্যাক্স_ইনস্টল_নাম -ফ্রেমওয়ার্ক
-ইমেজ_বেস -এটা -ইনস্টল_নাম -কেপ_প্রাইভেট_এক্সটার্ন -মাল্টি_মডিউল
-গুণ_সংজ্ঞায়িত - multiply_defined_unused -নোল_লোড
-NO_DEAD_STRIP_INITS_AND_TERMS -নোফিক্সপ্রিবাইন্ডিং - nomultidefs -নোপ্রেবাইন্ড
-নোসগ্লিংকডিট -পেজজিরো_সাইজ -প্রিবাইন্ড -প্রিবাইন্ড_সব_টুলেভেল_মডিউল -প্রাইভেট_বান্ডেল
-শুধুমাত্র_রিলোক্স -সাম্প্রদায়িক -বিভাগের বস্তুর প্রতীক -কেন লোড -SEG1ADDR -সৃষ্টি করা
-বিভাগের বস্তুর প্রতীক -সেক্টরডার -সেগাদ্দার -SEGS_read_only_addr -SEGS_READ_WRITE_ADDR
-SEG_ADDR_TABLE -SEG_ADDR_TABLE_FILENAME -সগ্লিংকডিট -সেগপ্রোট -SEGS_read_only_addr
-SEGS_READ_WRITE_ADDR -একক_মডিউল - স্থির -সাব_লাইব্রেরি -সাব_ছাতা
-টুলেভেল_নামস্পেস - ছাতা -অনির্ধারিত -অরপ্তানিকৃত_প্রতীক_তালিকা
-দুর্বল_রেফারেন্স_অমিল -হাউডস বোঝা -F - gused -গফুল -mmacosx-সংস্করণ-মিন=সংস্করণ
-mkernel -মন-বাইট-বুল

ডিসেম্বর আরম্ভ অপশন সমূহ -mno-fp-regs -মেমসফট-ফ্লোট -মিইইই -মিইই-সহ-অনির্দিষ্ট
-mieee-সঙ্গতিপূর্ণ -mfp-ট্র্যাপ-মোড=মোড -mfp-রাউন্ডিং-মোড=মোড -mtrap-নির্ভুলতা=মোড
-নির্মাণ-ধ্রুবক -mcpu =cpu-টাইপ -mtune =cpu-টাইপ -mbwx -ম্ম্যাক্স -mfix -mcix
-mfloat-ভ্যাক্স -mfloat-ieeee -mexplicit-রিলোকস -msmall-ডেটা -mlarge-ডেটা -msmall-টেক্সট
- বড়-পাঠ্য -mmemory-lateency=সময়

FR30 অপশন সমূহ -msmall-মডেল -mno-lsim

FRV অপশন সমূহ -mgpr-32 -mgpr-64 -mfpr-32 -mfpr-64 -মহার্ড-ফ্লোট -মেমসফট-ফ্লোট
- malloc-cc -mfixed-সিসি -mdword -mno-dword - mduble -এমনো-ডবল -মিডিয়া -mno-মিডিয়া
-মুমুলাদ -মনো-মুলাদ -mfdpic -মিনলাইন-প্লেট -mgprel-ro -মাল্টিলিব-লাইব্রেরি-ছবি
-মিলিংকড-এফপি -মলং-কল - ক্ষতিকর লেবেল -মিলিব্রেরি-ছবি -এমএসিসি -4 -এমএসিসি -8 -মপ্যাক
-mno-প্যাক -mno-Eflags -mcond-চালনা -এমনো-কন্ড-মুভ -মোপ্টিমাইজ-সদস্য
-mno-অপ্টিমাইজ-মেম্বার -mscc -mno-scc -mcond- এক্সেক -mno-Cond-Exec -mvliw-শাখা
-mno-vliw-শাখা -multi-cond-exec -mno-মাল্টি-কন্ড-এক্সেক -মনেস্টেড-কন্ড-এক্সেক
-ম্নো-নেস্টেড-কন্ড-এক্সেক -mtomcat-পরিসংখ্যান -mtls -এমটিএলএস -mcpu =সিপিইউ

জিএনইউ / লিনাক্স অপশন সমূহ -mglibc - muclibc -এমবিওনিক -ম্যান্ড্রয়েড -tno-android-cc -tno-android-ld

H8 / 300 অপশন সমূহ -মরেলাক্স -এমএইচ -মাইক্রোসফট -mn -মেক্সআর -mno-exr -পুদিনা32 -ম্যালাইন-300

এইচপিপিএ অপশন সমূহ -মার্চ =আর্কিটেকচার-টাইপ -এমবিগ-সুইচ -মডিসেবল-এফপ্রেগস
-mdisable-সূচীকরণ -mfast-পরোক্ষ-কল -এমগাস -mgnu-Ld -এমএইচপি-এলডি
-mfixed- রেঞ্জ =রেজিস্টার-পরিসীমা -এমজাম্প-ইন-বিলম্ব -মিলিঙ্কার-অপ্ট -মলং-কল
-মলাং-লোড-স্টোর -mno-বিগ-সুইচ -mno-অক্ষম-fpregs -mno-অক্ষম-সূচীকরণ
-mno-দ্রুত-পরোক্ষ-কল -মনো-গ্যাস -এমনো-জাম্প-ইন-বিলম্ব -mno-লং-লোড-স্টোর
-mno-পোর্টেবল-রানটাইম -মনো-নরম-ফ্লোট -mno-স্পেস-regs -মেমসফট-ফ্লোট -এমপিএ-রিস্ক-1-0
-এমপিএ-রিস্ক-1-1 -এমপিএ-রিস্ক-2-0 পরিবহনযোগ্য-রানটাইম -mschedule =cpu-টাইপ -mspace -regs
-msio -mwsio -মিউনিক্স=ইউনিক্স-এসটিডি -নোলিবডল্ড - স্থির - থ্রেড

i386 এবং x86-64 অপশন সমূহ -mtune =cpu-টাইপ -মার্চ =cpu-টাইপ -mfpmath =একক -মমাস =উপভাষা
-মনো-ফ্যান্সি-ম্যাথ -387 -mno-Fp-ret- ইন -387 -মেমসফট-ফ্লোট -mno-ওয়াইড-গুণ -এমআরটিডি
- ম্যালিগন-ডবল -mpreferred- স্ট্যাক-সীমানা =NUM -মিনকমিং-স্ট্যাক-সীমা =NUM -এমসিএলডি
-mcx16 - msahf -মেমভবে -mcrc32 -mrecip -mrecip =মনোনীত করা -mvzeroupper -mprefer-Avx128 -এমএমএমএক্স
-এমএসই -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -msse4 -মভেক্স -mavx2 -মেস -mpclmul
-mfsgsbase -mrdrnd -mf16c -mfma -msse4a -m3dnow -mpopcnt - mabm -এমবিএমআই -এমটিবিএম -mfma4
-mxop -mlzcnt -mbmi2 -mrtm -mlwp -মথ্রেডস -ম্নো-এলাইন-স্ট্রিংপস
-মিনলাইন-অল-স্ট্রিংপস -মিনলাইন-স্ট্রিংপস-গতিশীলভাবে -mstringop-কৌশল=পানা
-mpush-আরগস -ম্যাকুমুলেট-আউটগোয়িং-আর্গস -m128bit-লং-ডাবল -m96bit-লং-ডাবল
-মলং-ডবল-64 -মলং-ডবল-80 -আমগ্রিপর্ম =NUM -msseregparm -mveclibabi =আদর্শ
-mvect8-Ret-ইন-এমইএম -mpc32 -mpc64 -mpc80 -mstackrealign -মোমিট-লিফ-ফ্রেম-পয়েন্টার
-মনো-রেড-জোন -mno-Tls- ডাইরেক্ট-সেগ-রেফস -mcmodel =কোড-মডেল -মাবি=নাম
-maddress-মোড=মোড -m32 -m64 -mx32 -mlarge-ডেটা-থ্রেশহোল্ড=NUM -msse2avx -মফেন্ট্রি
-m8bit-idiv -mavx256-বিভক্ত-অসংখ্যাযুক্ত-লোড -mavx256-বিভক্ত-অসংখ্যাযুক্ত-স্টোর

i386 এবং x86-64 উইন্ডোজ অপশন সমূহ -মকনসোল -mcygwin -ম্নো-সিগউইন -এমডিএল
-mnop-fun-dllimport -মথ্রেড -মিউনিকোড -mwin32 -মুইন্ডোস -fno-সেট-স্ট্যাক-এক্সিকিউটেবল

আইএ-64 অপশন সমূহ -বিগ-এন্ডিয়ান - সামান্য-এন্ডিয়ান -mgnu- হিসাবে -mgnu-Ld -মনো-ছবি
-mvolatile-asm-স্টপ -মরেজিস্টার-নাম -msdata -ম্নো-এসডিএটা -মকনস্ট্যান্ট-জিপি -মটো-ছবি
-মফিউজড-এমএডিডি -মিনলাইন-ফ্লোট-ডিভাইড-মিন-লেটেন্সি -মিনলাইন-ফ্লোট-ডিভাইড-ম্যাক্স-থ্রুপুট
-mno-ইনলাইন-ফ্লোট-বিভাজন -মিনলাইন-ইন-ডিভাইড-মিন-লেটেন্সি
-মিনলাইন-ইন-ডিভাইড-সর্বোচ্চ-থ্রুপুট -mno-ইনলাইন-ইন-ডিভাইড -মিনলাইন-sqrt-মিন-লেটেন্সি
-মিনলাইন-স্কার্ট-ম্যাক্স-থ্রুপুট -mno-ইনলাইন-sqrt -mdwarf2-asm -মর্লি-স্টপ-বিটস
-mfixed- রেঞ্জ =রেজিস্টার-পরিসীমা -mtls-আকার=tls-আকার -mtune =cpu-টাইপ -milp32 -mlp64
-msched-br-ডেটা-স্পেক -msched- আর-ডেটা-স্পেক -msched-নিয়ন্ত্রণ-বিশেষ -msched-Br-ইন-ডেটা-স্পেক
-msched-ar-ইন-ডেটা-স্পেক -এমএসচেড-ইন-কন্ট্রোল-স্পেক -msched-pec-Ldc
-msched-স্পেক-কন্ট্রোল-এলডিসি -msched-prefer- নন-ডেটা-স্পেক-ইনস
-msched-prefer-non- নিয়ন্ত্রণ-স্পেক-ইনসেনস -msched-স্টপ-বিট-পরে-প্রতিটি-চক্র
-msched-গণনা-বিশেষ-ইন-গুরুত্বপূর্ণ-পথ -msel-নির্ধারিত-না-চেক-কন্ট্রোল-স্পেক
-msched-fp-mem-deps-শূন্য-খরচ -msched-max- মেমরি-ইনসনস-হার্ড-সীমাবদ্ধ
-msched-max- মেমরি-ইনসএনএস =সর্বোচ্চ-ইনস

LM32 অপশন সমূহ -mbarrel-shift-সক্ষম -mdivide-সক্ষম -মিলিপ্লাই-সক্রিয়
-msign-এক্সটেন্ড-সক্ষম -মিউজার-সক্ষম

এম 32 আর/ডি অপশন সমূহ -m32r2 -m32rx -m32r -এমডিবাগ ম্যালাইন-লুপস -mno- align-loops
-মিস্যু-রেট=সংখ্যা -মব্র্যাঞ্চ-কস্ট =সংখ্যা -মডেল=কোড-আকার-মডেল-টাইপ -msdata =তথ্য-
আদর্শ -mno-flush-func -mflush-func =নাম -mno-ফ্লাশ-ট্র্যাপ -mflush- ফাঁদ =সংখ্যা -G NUM

M32C অপশন সমূহ -mcpu =সিপিইউ -msim -মেমরেগস=সংখ্যা

M680x0 অপশন সমূহ -মার্চ =খিলান -mcpu =সিপিইউ -mtune =সুর -m68000 -m68020 -M68020-40
-M68020-60 -m68030 -m68040 -m68060 -mcpu32 -m5200 -m5206e -m528x -m5307 -m5407
-mcfv4e -এমবিটফিল্ড -mno-বিটফিল্ড -mc68000 -mc68020 -মনোবিটফিল্ড -এমআরটিডি -mno-rtd
-mdiv -mno-div -mshort -mno-ছোট -মহার্ড-ফ্লোট -m68881 -মেমসফট-ফ্লোট -এমপিক্রেল
-ম্যালিগ-ইন -mstrict-সারিবদ্ধ -msep-ডেটা -mno-সেপ-ডেটা -মশার্ড-লাইব্রেরি-আইডি = এন
-মিড-শেয়ারড-লাইব্রেরি -mno-আইডি-শেয়ারড-লাইব্রেরি -mxgot -mno-xgot

এমকোর অপশন সমূহ - mhardlit -এমনো-হার্ডলিট -mdiv -mno-div -mrelax- অবিলম্বে
-এমনো-আরাম-অবিলম্বে -মওয়াইড-বিটফিল্ডস -mno-ওয়াইড-বিটফিল্ড -m4byte-ফাংশন
-mno-4byte-ফাংশন -mcallgraph-ডেটা -mno-কলগ্রাফ-ডেটা -mslow-বাইট
-mno-স্লো-বাইট -mno-lsim - সামান্য-এন্ডিয়ান -বিগ-এন্ডিয়ান -m210 -m340
-mstack-বৃদ্ধি

এমইপি অপশন সমূহ - mabsdiff -মল-অপস - ম্যাভারেজ -মবেসড =n -এমবিটপস -mc =n -mclip
-mconfig =নাম -mcop -mcop32 -mcop64 -mivc2 -এমডিসি -mdiv -মেব -মেল -মিও-অস্থির -ml
-ম্লিডজ -মিমি -মিমিনম্যাক্স -মমল্ট -মনো-অপস -মরেপেট -মাইক্রোসফট -মসাতুর -msdram -msim -msimnovec
-এমটিএফ -mtiny =n

মাইক্রোব্লেজ অপশন সমূহ -মেমসফট-ফ্লোট -মহার্ড-ফ্লোট -msmall-বিভাজন -mcpu =সিপিইউ -mmemppy
-mxl-soft-mul -mxl-soft-div -mxl-ব্যারেল-শিফট -mxl-প্যাটার্ন-তুলনা -mxl-স্ট্যাক-চেক
-mxl-gp-opt -mno-ক্লিয়ারবস -mxl-গুণ-উচ্চ -mxl-ফ্লোট-রূপান্তর -mxl-Float-sqrt
-বিগ-এন্ডিয়ান - সামান্য-এন্ডিয়ান -mxl-পুনঃক্রম -mxl-মোড-অ্যাপ-মডেল

মিপস অপশন সমূহ -ইএল -ইবি -মার্চ =খিলান -mtune =খিলান -মিপস 1 -মিপস 2 -মিপস 3 -মিপস 4
-মিপস 32 -mips32r2 -মিপস 64 -mips64r2 -মিপস 16 -mno-Mips16 -mflip-MIPS16
-মিন্টারলিঙ্ক-এমআইপিএস 16 -mno-ইন্টারলিঙ্ক-এমআইপিএস 16 -মাবি=আবী -ম্যাবিক্যালস -মনো-অবিকালস
-মশার্ড -mno-ভাগ করা -mplt -mno-plt -mxgot -mno-xgot -mgp32 -mgp64 -mfp32
-mfp64 -মহার্ড-ফ্লোট -মেমসফট-ফ্লোট -mno-ভাসা -একটি-ভাসা -mdouble-ালু -এমডিএসপি
-mno-dsp -mdspr2 -mno-dspr2 -এমএমসিইউ -mmno-mcu -mfpu =fpu-টাইপ -msmartmips
-mno-smartmips প্রতিবন্ধী-একক -mno-জোড়া-একক -mdmx -mno-mdmx -মিপস 3 ডি
-mno-Mips3d -এমএমটি -mno-Mt -mllsc -mno-llsc -মলং64 -মলং32 -msym32 -mno-sym32
-GNUM -ম্লোকাল-এসডিএটা -mno-স্থানীয়-এসডেটা -মেক্সটার্ন-এসডেটা -mno-বাহ্যিক-এসডেটা -mgpopt
-mno-gopt -মেম্বেড-ডেটা -mno-এম্বেডেড-ডেটা -মুনিনীত-কনস্ট-ইন-রোডাটা
-mno-uninit-const- ইন-রোডাটা -mcode-পাঠযোগ্য=বিন্যাস -msplit-ঠিকানা
-mno-বিভক্ত-ঠিকানা -mexplicit-রিলোকস -mno-স্পষ্ট-রিলোকস -mcheck-শূন্য-বিভাগ
-mno-চেক-শূন্য-বিভাগ -mdivide-ফাঁদ -মডিভাইড-ব্রেকস -mmemppy -mno-আমার মনে
-মলং-কল -mno-লং-কল -মমদ -মনো-পাগল -মফিউজড-এমএডিডি -মনো-ফিউজড-এমএডিডি -নোকপ্প
-mfix-24k -mno-Fix-24k -mfix-r4000 -mno-Fix-r4000 -mfix-r4400 -mno-Fix-r4400
-mfix-r10000 -mno-Fix-r10000 -mfix-vr4120 -mno-Fix-vr4120 -mfix-vr4130
-mno-Fix-vr4130 -mfix-Sb1 -mno-Fix-Sb1 -mflush-func =ফাংশন -mno-flush-func
-মব্র্যাঞ্চ-কস্ট =NUM শাখা-সম্ভাব্য -mno-শাখা-সম্ভাব্য -mfp- ব্যতিক্রম
-mno-fp-ব্যতিক্রম -mvr4130-সারিবদ্ধ -mno-vr4130-সারিবদ্ধ -msynci -ম্নো-সিঙ্কি
-ম্রেলাক্স-পিক-কলস -এমনো-আরাম-পিক-কল -mmcount-ra-ঠিকানা

এমএমআইএক্স অপশন সমূহ -mlibfuncs -mno-libfuncs -মেপসিলন - mno-epsilon -মাবি=গ্নু
-মাবি=মিক্সওয়্যার -mzero-প্রসারিত -mknuthdiv -mtoplevel-প্রতীক -মেল্ফ ব্রাঞ্চ-ভবিষ্যদ্বাণী
-mno-শাখা-ভবিষ্যদ্বাণী -mbase-ঠিকানা -mno-বেস-ঠিকানা -একটি-প্রস্থান
-mno-একক-প্রস্থান

MN10300 অপশন সমূহ -mmult-বাগ -mno-mult-বাগ -mno-am33 - mam33 -mam33-2 - mam34 -mtune =সিপিইউ-
আদর্শ -ম্রেটার্ন-পয়েন্টার-অন-ডি 0 -mno-Crt0 -মরেলাক্স -মলিও -mstelb

সাহস অপশন সমূহ -মেব -মেল -mno-Crt0

পিডিপি -11 অপশন সমূহ -এমএফপিইউ -মেমসফট-ফ্লোট -mac0 -mno-ac0 -m40 -m45 -m10 -mbcopy
-এমবিকপি-বিল্টিন -পুদিনা32 -mno-int16 -পুদিনা16 -mno-int32 -mfloat32 -mno-Float64
-mfloat64 -mno-Float32 -মাবশি -মনো-অবশি ব্রাঞ্চ-ব্যয়বহুল ব্রাঞ্চ-সস্তা
-মিউনিক্স-এএসএম -এমডিইসি-এএসএম

পিকোচিপ অপশন সমূহ -mae =ae_টাইপ -mvliw-lokahead=N -চিহ্ন-রূপে-ঠিকানা
-mno-অদক্ষ-সতর্কতা

পাওয়ারপিসি অপশন সমূহ RS/6000 এবং PowerPC অপশন দেখুন।

RL78 অপশন সমূহ -msim -mmul=কোনটি নয় -mmul = g13 -mmul = rl78

আরএস/6000 এবং পাওয়ারপিসি অপশন সমূহ -mcpu =cpu-টাইপ -mtune =cpu-টাইপ -mcmodel =কোড-মডেল
-mpowerpc64 -মালটিভিক -mno-altivec -mpowerpc-gpopt -mno-Fowerpc-gpopt
-mpowerpc-Gfxopt -mno-Fowerpc-gfxopt -mmfcrf -mno-mfcrf -mpopcntb -mno-popcntb
-mpopcntd -mno-popcntd -mfprnd -mno-fprnd -mcmpb -mno-cmpb -mmfpgpr -mno-mfpgpr
-মহার্ড-ডিএফপি -এমনো-হার্ড-ডিএফপি -মফুল-টোক -মিনিমাল-টক -mno-Fp-in-toc -ম্নো-এসএম-ইন-টোক
-m64 -m32 -mxl-কম্প্যাট -mno-xl-compat -এমপিই ক্ষতিকর শক্তি ক্ষতিকর-প্রাকৃতিক
-মেমসফট-ফ্লোট -মহার্ড-ফ্লোট - একাধিক -mno-একাধিক -একটি-ভাসা -mdouble-ালু
-msimple-fpu -মস্ট্রিং -mno-স্ট্রিং -মুপডেট -mno-আপডেট -mavoid-সূচিবদ্ধ-ঠিকানা
-mno-এড়িয়ে যাওয়া-সূচিবদ্ধ-ঠিকানা -মফিউজড-এমএডিডি -মনো-ফিউজড-এমএডিডি -mbit-সারিবদ্ধ
-mno-বিট-সারিবদ্ধ -mstrict-সারিবদ্ধ -mno-কঠোর-সারিবদ্ধ - পুনরায় স্থানান্তরযোগ্য -এমনো-রিলোকেটেবল
-ম্রেলোক্যাটেবল-লিব -mno-রিলোকেটেবল-লিব -mtoc -mno-toc - সামান্য - সামান্য-এন্ডিয়ান
-বিগ -বিগ-এন্ডিয়ান -মডিনামিক-নো-পিক -মালটিভিক -mswdiv -একটি-ছবি-বেস
-prioritize-restricted-insns=অগ্রাধিকার -msched-ব্যয়বহুল-dep=নির্ভরতা_প্রকার
-মিনসার্ট-শেড-নপস =পরিকল্পনা -mcall-sysv -mcall-netbsd -maix-struct-রিটার্ন
-msvr4-struct-রিটার্ন -মাবি=abi-টাইপ -সুরক্ষিত-plt -mbss-plt
-ব্লক-মুভ-ইনলাইন-সীমা=NUM -মিসেল -mno-isel -মিসেল = হ্যাঁ -মিসেল = না -এমএসপিই -mno-spe
-mspe=হ্যাঁ -mspe=না - প্রতিবন্ধী -এমজেন-সেল-মাইক্রোকোড -mwarn-সেল-মাইক্রোকোড -mvrsave
-mno-vrsave -mmulhw -mno-mulhw -mdlmzb -mno-dlmzb -mfloat-gprs=হ্যাঁ -mfloat-gprs = না
-mfloat-gprs=একক -mfloat-gprs=ডবল -এমপ্রোটোটাইপ -mno-প্রোটোটাইপ -msim -এমএমভিএমই
- পাগল - myellowknife -সদস্য -msdata -msdata =মনোনীত করা -এমভিএক্সওয়ার্কস -G NUM - থ্রেড -mrecip
-mrecip =মনোনীত করা -mno-রেসিপি -mrecip-নির্ভুলতা -mno-রেসিপি-নির্ভুলতা -mveclibabi =আদর্শ -mfriz
-এমনো-ফ্রিজ -পয়েন্টার-টু-নেস্টেড-ফাংশন -mno-পয়েন্টার-টু-নেস্টেড-ফাংশন
-msave-toc-পরোক্ষ -mno-সংরক্ষণ-toc-পরোক্ষ -এমপাওয়ার8-ফিউশন -mno-mpower8-ফিউশন
-এমপাওয়ার8-ভেক্টর -mno-power8-ভেক্টর -mcrypto -mno-ক্রিপ্টো -mdirect-চলন -mno-সরাসরি-সরানো
-mquad-মেমরি -mno-quad-মেমরি -mquad-মেমরি-পারমাণবিক -mno-quad-মেমরি-পারমাণবিক
-mcompat-Align-parm -mno-compat- অ্যালাইন-পারম

RX অপশন সমূহ -m64bit-ডাবলস -m32bit-ডাবলস -এফপিইউ -নোফপু -mcpu = -বিগ-এন্ডিয়ান-ডেটা
-মিলিটল-এন্ডিয়ান-ডেটা -msmall-ডেটা -msim -মনো-সিম -mas100-সিনট্যাক্স -mno-as100-সিনট্যাক্স
-মরেলাক্স -mmax-ধ্রুবক-আকার= -মিন্ট-রেজিস্টার= -mpid -mno-সতর্ক-একাধিক-দ্রুত-বিঘ্ন
-msave-acc-ইন-ইন্টারপ্রেস

S / 390 এবং zseries অপশন সমূহ -mtune =cpu-টাইপ -মার্চ =cpu-টাইপ -মহার্ড-ফ্লোট -মেমসফট-ফ্লোট
-মহার্ড-ডিএফপি -এমনো-হার্ড-ডিএফপি -মলং-ডবল-64 -মলং-ডবল-128 -এমব্যাকচেইন
-mno-ব্যাকচেইন -প্যাকড-স্ট্যাক -mno-প্যাকড-স্ট্যাক -msmall-Exec -ম্নো-স্মল-এক্সেক
-mmvcle -mno-mvcle -m64 -m31 -এমডিবাগ -mno-ডিবাগ -মেসা - mzarch -এমটিপিএফ-ট্রেস
-mno-tpf-ট্রেস -মফিউজড-এমএডিডি -মনো-ফিউজড-এমএডিডি -মওয়ার্ন-ফ্রেমসাইজ -mwarn-ডাইনামিকস্ট্যাক
-mstack-আকার -mstack গার্ড -mhotpatch =অর্ধশব্দ,অর্ধশব্দ

স্কোর অপশন সমূহ -মেব -মেল -mnhwloop -মুলস -ম্ম্যাক -mscore5 -mscore5u -mscore7 -mscore7d

SH অপশন সমূহ -m1 -m2 -m2e -m2a-nofpu -m2a-একক-শুধু -m2a-একক -m2a -m3 -m3e
-m4-nofpu -m4-একক-শুধু -m4-একক -m4 -m4a-nofpu -m4a-একক-শুধু -m4a-একক
-m4a -m4al -m5-64 মিডিয়া -M5-64Media-nofpu -m5-32 মিডিয়া -M5-32Media-nofpu -m5-কম্প্যাক্ট
-m5-কম্প্যাক্ট-নফপু -এমবি -ml -mdalign -মরেলাক্স -বিগটেবল -mfmovd -মিতাছি -মরেনেসাস
-এমনো-রেনেসাস - mnomacsave -মিইইই -mno-ieee -এমবিটপস -মিসাইজ -মিনলাইন-আইসি_ইনভ্যালিডেট
-mpadstruct -এমস্পেস -mprefergot -মিউজারের মোড -মাল্টকস্ট=সংখ্যা -mdiv =কৌশল
-mdivsi3_libfunc =নাম -mfixed- রেঞ্জ =রেজিস্টার-পরিসীমা মাইন্ডেক্সড-অ্যাড্রেসিং
-mgettrcost =সংখ্যা -mpt-স্থির -ম্যাকুমুলেট-আউটগোয়িং-আর্গস -অবাধ্য-প্রতীক
-ম্যাটমিক-মডেল=পারমাণবিক মডেল -মব্র্যাঞ্চ-কস্ট =NUM -mzdcbranch -mno-zdcbranch -mcbranchdi
-mcmpeqdi -মফিউজড-এমএডিডি -মনো-ফিউজড-এমএডিডি -mfsca -mno-fsca -mfsrra -mno-fsrra
-প্রকাশ করা -এমটাএস

সোলারিস 2 অপশন সমূহ -মিম্পুর-টেক্সট -mno-অশুদ্ধ-টেক্সট - থ্রেড - থ্রেড

SPARC অপশন সমূহ -mcpu =cpu-টাইপ -mtune =cpu-টাইপ -mcmodel =কোড-মডেল -mmemory-মডেল=মেম-
মডেল -m32 -m64 -ম্যাপ-রেজেস -mno-app -regs -মফাস্টার-স্ট্রাক্টস -mno-দ্রুত-structs
-mflat -এমনো-ফ্ল্যাট -এমএফপিইউ -mno-fpu -মহার্ড-ফ্লোট -মেমসফট-ফ্লোট -মহার্ড-কোয়াড-ফ্লোট
-মেমসফট-কোয়াড-ফ্লোট -mstack-পক্ষপাত -mno-স্ট্যাক-পক্ষপাত -সাম্প্রদায়িক-দ্বৈত
-mno-unaligned- ডাবলস -মিউজার-মোড -mno-ব্যবহারকারী-মোড -mv8plus -mno-v8plus -এমভিএস
-mno-vis -mvis2 -mno-vis2 -mvis3 -mno-vis3 -mcbcond -mno-cbcond -mfmaf -mno-fmaf
-mpopc -mno-popc -mfix-at697f -mfix-ut699

এসপিএস অপশন সমূহ -মওয়ার্ন-রিলোক -মরর-রিলোক -এমএসএফ-ডিএমএ -মুনসেফ-ডিএমএ ব্রাঞ্চ-ইঙ্গিত
-msmall-মেম -ম্লার্জ-মেম -mstdmain -mfixed- রেঞ্জ =রেজিস্টার-পরিসীমা -mea32 -mea64
-maddress-স্পেস-রূপান্তর -mno-ঠিকানা-স্পেস-রূপান্তর -mcache-size =ক্যাশে-আকার
-ম্যাটমিক-আপডেট -mno-পরমাণু-আপডেট

পদ্ধতি V অপশন সমূহ -কিউ -কিউএন -ওয়াইপি,পাথ -ইম,Dir

টাইল-জিএক্স অপশন সমূহ -mcpu =সিপিইউ -m32 -m64 -mcmodel =কোড-মডেল

টাইলপ্রো অপশন সমূহ -mcpu =সিপিইউ -m32

V850 অপশন সমূহ -মলং-কল -mno-লং-কল -এমইপি -mno-ep -mprolog-ফাংশন
-mno-prolog-ফাংশন -এমস্পেস -mtda =n -msda =n -mzda =n -ম্যাপ-রেজেস -mno-app -regs
-mdisable-calt -mno-অক্ষম-কল -MV850E2V3 -mv850e2 -mv850e1 -mv850es -mv850e
-mv850 -MV850E3V5 -ম্লুপ -মরেলাক্স -মলং-জাম্প -মেমসফট-ফ্লোট -মহার্ড-ফ্লোট -এমজিসিসি-আবি
-MRH850-ABI -এমবিগ-সুইচ

ভ্যাক্স অপশন সমূহ -এমজি -mgnu -মিউনিক্স

VMS অপশন সমূহ -mvms-রিটার্ন-কোড -mdebug-main =উপসর্গ -mmalloc64 -mpointer-size =আয়তন

ভিএক্স ওয়ার্কস অপশন সমূহ -এমআরটিপি -অ-স্থির -বস্ট্যাটিক -বিডাইনামিক -Xbind-অলস -এক্সবাইন্ড-এখন

x86-64 অপশন সমূহ i386 এবং x86-64 বিকল্পগুলি দেখুন।

Xstormy16 অপশন সমূহ -msim

এক্সটেনসা অপশন সমূহ -mconst16 -mno-const16 -মফিউজড-এমএডিডি -মনো-ফিউজড-এমএডিডি -এমফোর্স-নো-ছবি
mserialize-অস্থির -mno-সিরিয়ালাইজ-অস্থির -মটেক্সট-বিভাগ-আধ্যাত্মিক
-mno-টেক্সট-বিভাগ-আক্ষরিক -mtarget-lign -mno-টার্গেট-সারিবদ্ধ -মল্লং কল
-মনো-লং কল

zseries অপশন সমূহ S/390 এবং zSeries বিকল্পগুলি দেখুন।

কোড প্রজন্ম অপশন সমূহ
-fcal-সংরক্ষিত-REG -fcal-ব্যবহৃত-REG স্থির-REG - ব্যতিক্রম -অ-কল-ব্যতিক্রম
-ফডিলিট-ডেড-এক্সসেপশনস -ফানউইন্ড-টেবিল -ফ্যাসিঙ্ক্রোনাস-আনওয়াইন্ড-টেবিল -fno-gnu-অনন্য
-ফিনহিবিট-আকার-নির্দেশ -ফিনস্ট্রুমেন্ট-ফাংশন
-ফিনস্ট্রুমেন্ট-ফাংশন-বাদ-ফাংশন-লিস্ট=সিম,সিম...
-ফিনস্ট্রুমেন্ট-ফাংশন-বাদ-ফাইল-তালিকা=ফাইল,ফাইল... -fno-সাধারণ -ফনো-ইন্ডেন্ট
-fpcc-struct-রিটার্ন -fpic -fpic -fpie -fpie -fno-জাম্প-টেবিল -frecord-gcc-সুইচ
-freg-struct-রিটার্ন -ফশোর্ট-এনামস -fshort-ডাবল -ফশোর্ট-ডাব্লুচার -ফভারবোজ-অফল
-fpack-truct [=n] -fstack-চেক -ফস্ট্যাক-সীমা-নিবন্ধন =REG -fstack-সীমা-চিহ্ন=সিম
-fno-স্ট্যাক-সীমা -fsplit-স্ট্যাক - fleading-আন্ডারস্কোর -ftls-মডেল=মডেল
-fstack-পুনঃব্যবহার=Reuse_level -ftrapv -fwrapv -fbounds-চেক - অদৃশ্যতা
-fstrict-অস্থির-বিটফিল্ড -fsync-libcalls

অপশন সমূহ নিয়ামক দ্য রকম of আউটপুট
সংকলনে চারটি ধাপ পর্যন্ত জড়িত থাকতে পারে: প্রিপ্রসেসিং, কম্পাইলেশন প্রপার, অ্যাসেম্বলি এবং
লিঙ্ক করা, সবসময় সেই ক্রমে। GCC বেশ কিছু প্রিপ্রসেসিং এবং কম্পাইল করতে সক্ষম
ফাইলগুলি হয় একাধিক অ্যাসেম্বলার ইনপুট ফাইলে, অথবা একটি অ্যাসেম্বলার ইনপুট ফাইলে; তারপর
প্রতিটি অ্যাসেম্বলার ইনপুট ফাইল একটি অবজেক্ট ফাইল তৈরি করে এবং লিঙ্ক করা সমস্ত অবজেক্টকে একত্রিত করে
একটি এক্সিকিউটেবল ফাইলে ফাইলগুলি (যেগুলি নতুন সংকলিত, এবং ইনপুট হিসাবে নির্দিষ্ট করা হয়েছে)।

যেকোন প্রদত্ত ইনপুট ফাইলের জন্য, ফাইলের নামের প্রত্যয়টি নির্ধারণ করে কি ধরনের সংকলন
সম্পন্ন:

ফাইল.c
সি সোর্স কোড যা অবশ্যই প্রিপ্রসেসড হতে হবে।

ফাইল.i
সি সোর্স কোড যা প্রিপ্রসেস করা উচিত নয়।

ফাইল.ii
C++ সোর্স কোড যা প্রি-প্রসেস করা উচিত নয়।

ফাইল.m
অবজেক্টিভ-সি সোর্স কোড। মনে রাখবেন যে আপনাকে অবশ্যই এর সাথে লিঙ্ক করতে হবে libobjc একটি করতে লাইব্রেরি
উদ্দেশ্য-সি প্রোগ্রামের কাজ।

ফাইল.মি
অবজেক্টিভ-সি সোর্স কোড যা প্রি-প্রসেস করা উচিত নয়।

ফাইল.mm
ফাইল.M
উদ্দেশ্য-C++ সোর্স কোড। মনে রাখবেন যে আপনাকে অবশ্যই এর সাথে লিঙ্ক করতে হবে libobjc লাইব্রেরি করতে
একটি উদ্দেশ্য-সি++ প্রোগ্রামের কাজ। মনে রাখবেন যে .M একটি আক্ষরিক মূলধন বোঝায় এম.

ফাইল.mii
উদ্দেশ্য-C++ সোর্স কোড যা প্রি-প্রসেস করা উচিত নয়।

ফাইল.h
সি, সি++, অবজেক্টিভ-সি বা অবজেক্টিভ-সি++ হেডার ফাইলকে একটি প্রি-কম্পাইল করা হবে
হেডার (ডিফল্ট), বা C, C++ হেডার ফাইলকে অ্যাডা স্পেকে পরিণত করতে হবে (এর মাধ্যমে
-fdump-ada-pec সুইচ)।

ফাইল.cc
ফাইল.সিপি
ফাইল.cxx
ফাইল.সিপিপি
ফাইলসিপিপি
ফাইল.c ++
ফাইল.C
C++ সোর্স কোড যা প্রি-প্রসেস করা আবশ্যক। উল্লেখ্য যে মধ্যে .cxx, শেষ দুটি অক্ষর
উভয় আক্ষরিক হতে হবে x। একইভাবে, .C একটি আক্ষরিক মূলধন C বোঝায়।

ফাইল.mm
ফাইল.M
অবজেক্টিভ-সি++ সোর্স কোড যা প্রিপ্রসেস করা আবশ্যক।

ফাইল.mii
উদ্দেশ্য-C++ সোর্স কোড যা প্রি-প্রসেস করা উচিত নয়।

ফাইল.hh
ফাইল.H
ফাইল.এইচপি
ফাইল.hxx
ফাইল.এইচপিপি
ফাইল.এইচপিপি
ফাইল.h ++
ফাইল.tcc
C++ হেডার ফাইলকে একটি প্রি-কম্পাইলড হেডার বা অ্যাডা স্পেকে পরিণত করতে হবে।

ফাইল.f
ফাইলজন্য
ফাইল.ftn
স্থির ফর্ম ফরট্রান সোর্স কোড যা প্রিপ্রসেস করা উচিত নয়।

ফাইল.F
ফাইল.ফর
ফাইল.fpp
ফাইল.এফপিপি
ফাইল.Ftn
স্থির ফর্ম ফরট্রান সোর্স কোড যা অবশ্যই প্রিপ্রসেসড হতে হবে (প্রথাগত সাথে
প্রিপ্রসেসর)।

ফাইল.f90
ফাইল.f95
ফাইল.f03
ফাইল.f08
ফ্রি ফর্ম ফরট্রান সোর্স কোড যা প্রিপ্রসেস করা উচিত নয়।

ফাইল.F90
ফাইল.F95
ফাইল.F03
ফাইল.F08
ফ্রি ফর্ম ফরট্রান সোর্স কোড যা অবশ্যই প্রিপ্রসেসড হতে হবে (প্রথাগত সাথে
প্রিপ্রসেসর)।

ফাইল.যাওয়া
সোর্স কোড যান.

ফাইল.ad
অ্যাডা সোর্স কোড ফাইল যাতে একটি লাইব্রেরি ইউনিট ঘোষণা রয়েছে (এটির একটি ঘোষণা
প্যাকেজ, সাবপ্রোগ্রাম, বা জেনেরিক, বা একটি জেনেরিক ইনস্ট্যান্টিয়েশন), বা একটি লাইব্রেরি ইউনিট
পুনঃনামকরণ ঘোষণা (একটি প্যাকেজ, জেনেরিক, বা সাবপ্রোগ্রাম নাম পরিবর্তনের ঘোষণা)। যেমন
ফাইলও বলা হয় চশমা.

ফাইল.এডিবি
একটি লাইব্রেরি ইউনিট বডি (একটি সাবপ্রোগ্রাম বা প্যাকেজ বডি) ধারণকারী অ্যাডা সোর্স কোড ফাইল।
এই ধরনের ফাইলও বলা হয় লাশ.

ফাইল.d
ডি সোর্স কোড ফাইল।

ফাইল.di
ডি ইন্টারফেস কোড ফাইল।

ফাইলডিডি
ডি ডকুমেন্টেশন কোড ফাইল।

ফাইল.s
অ্যাসেম্বলার কোড।

ফাইল.S
ফাইল.sx
অ্যাসেম্বলার কোড যা অবশ্যই প্রিপ্রসেসড হতে হবে।

অন্যান্য
একটি বস্তু ফাইল সরাসরি লিঙ্কিং মধ্যে খাওয়ানো হবে. কোনো স্বীকৃত সঙ্গে কোনো ফাইলের নাম
প্রত্যয় এই ভাবে চিকিত্সা করা হয়.

আপনি এর সাথে স্পষ্টভাবে ইনপুট ভাষা নির্দিষ্ট করতে পারেন -x বিকল্প:

-x ভাষা
স্পষ্টভাবে উল্লেখ করুন ভাষা নিম্নলিখিত ইনপুট ফাইলগুলির জন্য (এটি না দিয়ে
কম্পাইলার ফাইল নামের প্রত্যয়ের উপর ভিত্তি করে একটি ডিফল্ট চয়ন করুন)। এই বিকল্পটি সকলের জন্য প্রযোজ্য
পরবর্তী পর্যন্ত ইনপুট ফাইল অনুসরণ করুন -x বিকল্প জন্য সম্ভাব্য মান ভাষা হয়:

c c-হেডার cpp-আউটপুট
c++ c++-হেডার c++-cpp-আউটপুট
অবজেক্টিভ-সি অবজেক্টিভ-সি-হেডার অবজেক্টিভ-সি-সিপিপি-আউটপুট
অবজেক্টিভ-সি++ অবজেক্টিভ-সি++-হেডার অবজেক্টিভ-সি++-সিপিপি-আউটপুট
অ্যাসেম্বলার অ্যাসেম্বলার-সাথে-সিপিপি
Ada
d
f77 f77-cpp-ইনপুট f95 f95-cpp-ইনপুট
go
জাভা

-x না
একটি ভাষার যেকোনো স্পেসিফিকেশন বন্ধ করুন, যাতে পরবর্তী ফাইলগুলি পরিচালনা করা হয়
তাদের ফাইলের নামের প্রত্যয় অনুসারে (যেমন তারা যদি থাকে -x মোটেও ব্যবহার করা হয়নি)।

-পাস-প্রস্থান-কোড
সাধারণত জিসিসি কম্পাইলারের কোনো ফেজ ফিরে এলে প্রোগ্রাম 1-এর কোড দিয়ে প্রস্থান করে
একটি অ-সফল রিটার্ন কোড। যদি আপনি উল্লেখ করেন -পাস-প্রস্থান-কোড, দ্য জিসিসি পরিবর্তে প্রোগ্রাম
একটি ত্রুটি ফেরত যে কোনো ফেজ দ্বারা উত্পাদিত সংখ্যাগতভাবে সর্বোচ্চ ত্রুটির সাথে রিটার্ন করে
ইঙ্গিত. অভ্যন্তরীণ কম্পাইলার ত্রুটি হলে C, C++ এবং Fortran ফ্রন্ট এন্ড 4 রিটার্ন করে
সম্মুখীন হয়

আপনি যদি সংকলনের কয়েকটি ধাপ চান তবে আপনি ব্যবহার করতে পারেন -x (বা ফাইলের নাম প্রত্যয়)
বলতে জিসিসি কোথায় শুরু করতে হবে, এবং বিকল্পগুলির মধ্যে একটি -c, -S, বা -E যেখানে বলা জিসিসি হল
থামা উল্লেখ্য যে কিছু সংমিশ্রণ (উদাহরণস্বরূপ, -x cpp-আউটপুট -E) নির্দেশ জিসিসি করতে
কিছু না.

-c সোর্স ফাইল কম্পাইল বা একত্রিত করুন, কিন্তু লিঙ্ক করবেন না। লিঙ্কিং পর্যায় সহজভাবে হয়
শেষ না. চূড়ান্ত আউটপুট প্রতিটি উৎস ফাইলের জন্য একটি অবজেক্ট ফাইল আকারে হয়.

ডিফল্টরূপে, একটি উৎস ফাইলের জন্য অবজেক্ট ফাইলের নাম প্রত্যয় প্রতিস্থাপন দ্বারা তৈরি করা হয় .c,
.i, .s, ইত্যাদি, সহ .o.

অচেনা ইনপুট ফাইল, সংকলন বা সমাবেশের প্রয়োজন নেই, উপেক্ষা করা হয়।

-S সংকলনের পর্যায় যথাযথভাবে বন্ধ করুন; জড়ো করবেন না আউটপুট আছে
নির্দিষ্ট করা প্রতিটি নন-অ্যাসেম্বলার ইনপুট ফাইলের জন্য একটি অ্যাসেম্বলার কোড ফাইলের ফর্ম।

ডিফল্টরূপে, একটি উৎস ফাইলের জন্য অ্যাসেম্বলার ফাইলের নাম প্রত্যয়টি প্রতিস্থাপন করে তৈরি করা হয়
.c, .i, ইত্যাদি, সহ .s.

যে ইনপুট ফাইলগুলির সংকলনের প্রয়োজন নেই সেগুলি উপেক্ষা করা হয়।

-E প্রিপ্রসেসিং পর্যায়ের পরে থামুন; কম্পাইলার সঠিকভাবে চালাবেন না। আউটপুট আছে
প্রিপ্রসেসড সোর্স কোডের ফর্ম, যা স্ট্যান্ডার্ড আউটপুটে পাঠানো হয়।

যে ইনপুট ফাইলগুলির জন্য প্রি-প্রসেসিং প্রয়োজন হয় না সেগুলি উপেক্ষা করা হয়।

-o ফাইল
ফাইলে আউটপুট রাখুন ফাইল. এটি যে কোন ধরণের আউটপুট উত্পাদিত হচ্ছে তার জন্য প্রযোজ্য,
এটি একটি এক্সিকিউটেবল ফাইল, একটি অবজেক্ট ফাইল, একটি অ্যাসেম্বলার ফাইল বা প্রি-প্রসেসড সি
কোড।

If -o নির্দিষ্ট করা নেই, ডিফল্ট হল একটি এক্সিকিউটেবল ফাইল রাখা a. আউট, বস্তু
জন্য ফাইল উত্স.সুফিক্স in উৎস, এর অ্যাসেম্বলার ফাইল ইন উৎস, একটি precompiled
হেডার ফাইল ইন উত্স। suffix.gch, এবং স্ট্যান্ডার্ড আউটপুটে সমস্ত প্রিপ্রসেসড সি সোর্স।

-v প্রিন্ট করুন (স্ট্যান্ডার্ড ত্রুটি আউটপুটে) এর ধাপগুলি চালানোর জন্য কার্যকর করা কমান্ডগুলি
সংকলন এছাড়াও কম্পাইলার ড্রাইভার প্রোগ্রাম এবং এর সংস্করণ নম্বর প্রিন্ট করুন
প্রিপ্রসেসর এবং কম্পাইলার সঠিক।

-###
মত -v ব্যতীত কমান্ডগুলি কার্যকর করা হয় না এবং আর্গুমেন্টগুলি উদ্ধৃত করা হয় যদি না তারা
শুধুমাত্র আলফানিউমেরিক অক্ষর বা "./-_" থাকে। এটি শেল স্ক্রিপ্টের জন্য দরকারী
ড্রাইভার দ্বারা তৈরি কমান্ড লাইন ক্যাপচার করুন।

পাইপ
এর বিভিন্ন পর্যায়ে যোগাযোগের জন্য অস্থায়ী ফাইলের পরিবর্তে পাইপ ব্যবহার করুন
সংকলন এটি এমন কিছু সিস্টেমে কাজ করতে ব্যর্থ হয় যেখানে অ্যাসেম্বলার পড়তে অক্ষম
একটি পাইপ থেকে; কিন্তু GNU অ্যাসেম্বলারের কোন সমস্যা নেই।

--help
প্রিন্ট করুন (স্ট্যান্ডার্ড আউটপুটে) কমান্ড-লাইন বিকল্পগুলির একটি বিবরণ যা দ্বারা বোঝা যায়
জিসিসি। যদি -v বিকল্প এছাড়াও তারপর নির্দিষ্ট করা হয় --help এছাড়াও বিভিন্ন উপর প্রেরণ করা হয়
দ্বারা আহ্বান করা প্রক্রিয়া জিসিসি, যাতে তারা কমান্ড-লাইন বিকল্পগুলি প্রদর্শন করতে পারে
গ্রহণ যদি -ওয়েক্সট্রা বিকল্পটিও নির্দিষ্ট করা হয়েছে (এর আগে --help বিকল্প),
তারপর কমান্ড-লাইন বিকল্পগুলি যেগুলির সাথে সম্পর্কিত কোনও ডকুমেন্টেশন নেই
প্রদর্শিত

--লক্ষ্য-সাহায্য
লক্ষ্য-নির্দিষ্ট কমান্ড-লাইন বিকল্পগুলির একটি বিবরণ মুদ্রণ করুন (স্ট্যান্ডার্ড আউটপুটে)
প্রতিটি টুলের জন্য। কিছু লক্ষ্যের জন্য অতিরিক্ত লক্ষ্য-নির্দিষ্ট তথ্যও হতে পারে
মুদ্রিত।

--সহায়তা={শ্রেণী|[^]কোয়ালিফায়ার}[...]
প্রিন্ট করুন (স্ট্যান্ডার্ড আউটপুটে) কমান্ড-লাইন বিকল্পগুলির একটি বিবরণ যা দ্বারা বোঝা যায়
কম্পাইলার যা সমস্ত নির্দিষ্ট ক্লাস এবং কোয়ালিফায়ারে ফিট করে। এগুলো হল
সমর্থিত ক্লাস:

অপ্টিমাইজার
কম্পাইলার দ্বারা সমর্থিত সমস্ত অপ্টিমাইজেশান বিকল্পগুলি প্রদর্শন করুন।

সতর্কবার্তা
কম্পাইলার দ্বারা উত্পাদিত সতর্কতা বার্তা নিয়ন্ত্রণকারী সমস্ত বিকল্প প্রদর্শন করুন।

লক্ষ্য
লক্ষ্য-নির্দিষ্ট বিকল্পগুলি প্রদর্শন করুন। অসদৃশ --লক্ষ্য-সাহায্য বিকল্প যাইহোক, লক্ষ্য-
লিঙ্কার এবং অ্যাসেম্বলারের নির্দিষ্ট বিকল্পগুলি প্রদর্শিত হয় না। এই কারণ
এই সরঞ্জামগুলি বর্তমানে বর্ধিত সমর্থন করে না --সহায়তা= বাক্য গঠন.

প্যারাম
দ্বারা স্বীকৃত মান প্রদর্শন করুন --পরম বিকল্প।

ভাষা
এর জন্য সমর্থিত বিকল্পগুলি প্রদর্শন করুন ভাষা, কোথায় ভাষা একটির নাম
GCC-এর এই সংস্করণে সমর্থিত ভাষাগুলি।

সাধারণ
সমস্ত ভাষার জন্য সাধারণ বিকল্পগুলি প্রদর্শন করুন।

এই সমর্থিত যোগ্যতা:

অনথিভুক্ত
শুধুমাত্র সেই বিকল্পগুলি প্রদর্শন করুন যা নথিভুক্ত নয়।

যোগদান
একই মধ্যে একটি সমান চিহ্নের পরে প্রদর্শিত একটি যুক্তি গ্রহণের বিকল্পগুলি প্রদর্শন করুন৷
পাঠ্যের অবিচ্ছিন্ন অংশ, যেমন: --help=লক্ষ্য.

আলাদা
ডিসপ্লে অপশন একটি আর্গুমেন্ট গ্রহণ করে যা একটি পৃথক শব্দ হিসাবে প্রদর্শিত হয়
মূল বিকল্প, যেমন: -o আউটপুট ফাইল.

এইভাবে উদাহরণের জন্য সমর্থিত সমস্ত অনথিভুক্ত লক্ষ্য-নির্দিষ্ট সুইচগুলি প্রদর্শন করার জন্য
কম্পাইলার, ব্যবহার করুন:

--help=লক্ষ্য,অনথিভুক্ত

একটি কোয়ালিফায়ার এর অর্থটি এর সাথে উপসর্গ দিয়ে উল্টানো যেতে পারে ^ চরিত্র, তাই জন্য
সমস্ত বাইনারি সতর্কীকরণ বিকল্পগুলি প্রদর্শনের উদাহরণ (যেমন, যেগুলি হয় চালু বা বন্ধ
এবং যে একটি যুক্তি গ্রহণ করে না) যার একটি বর্ণনা আছে, ব্যবহার করুন:

--help=সতর্কতা,^যোগ হয়েছে,^অনথিভুক্ত

যুক্তি --সহায়তা= শুধুমাত্র ইনভার্টেড কোয়ালিফায়ার নিয়ে গঠিত হওয়া উচিত নয়।

বেশ কয়েকটি ক্লাস একত্রিত করা সম্ভব, যদিও এটি সাধারণত আউটপুটকে সীমাবদ্ধ করে
প্রদর্শন করার মতো কিছুই নেই। একটি ক্ষেত্রে যেখানে এটি কাজ করে, তবে, যখন
ক্লাস এক লক্ষ্য. উদাহরণস্বরূপ, সমস্ত লক্ষ্য-নির্দিষ্ট প্রদর্শন করা
অপ্টিমাইজেশান বিকল্প, ব্যবহার করুন:

--help=টার্গেট,অপ্টিমাইজার

সার্জারির --সহায়তা= বিকল্পটি কমান্ড লাইনে পুনরাবৃত্তি করা যেতে পারে। প্রতিটি ধারাবাহিক ব্যবহার প্রদর্শন করে
এর অনুরোধ করা বিকল্পগুলির ক্লাস, যেগুলি ইতিমধ্যে প্রদর্শিত হয়েছে সেগুলি এড়িয়ে যাচ্ছে।

যদি -Q এর আগে কমান্ড লাইনে বিকল্পটি উপস্থিত হয় --সহায়তা= বিকল্প, তারপর
বর্ণনামূলক পাঠ্য দ্বারা প্রদর্শিত --সহায়তা= পরিবর্তিত. পরিবর্তে প্রদর্শিত বর্ণনা
বিকল্পগুলি, বিকল্পটি সক্ষম, নিষ্ক্রিয় বা সেট কিনা তা একটি ইঙ্গিত দেওয়া হয়
একটি নির্দিষ্ট মান (অনুমান করা হচ্ছে যে কম্পাইলার এই বিন্দুতে জানে যেখানে
--সহায়তা= বিকল্প ব্যবহার করা হয়)।

এখানে ARM পোর্ট থেকে একটি ছাঁটাই করা উদাহরণ জিসিসি:

% জিসিসি -কিউ -এমবিআই = 2 -হেল্প = লক্ষ্য -সি
নিম্নলিখিত বিকল্পগুলি লক্ষ্য নির্দিষ্ট:
-মাবি = 2
-মাবোর্ট-অন-নরেটার্ন [অক্ষম]
-মানচিত্র [অক্ষম]

আউটপুট পূর্ববর্তী কমান্ড-লাইন বিকল্পগুলির প্রভাবের জন্য সংবেদনশীল, তাই এর জন্য
উদাহরণে কোন অপ্টিমাইজেশানগুলি সক্রিয় করা হয়েছে তা খুঁজে বের করা সম্ভব৷ -ও2 ব্যবহার করে:

-Q -O2 --help=অপ্টিমাইজার

বিকল্পভাবে আপনি আবিষ্কার করতে পারেন কোন বাইনারি অপ্টিমাইজেশানগুলি দ্বারা সক্রিয় করা হয়েছে৷ -ও3 ব্যবহার করে:

gcc -c -Q -O3 --help=অপ্টিমাইজার > /tmp/O3-opts
gcc -c -Q -O2 --help=অপ্টিমাইজার > /tmp/O2-opts
diff /tmp/O2-opts /tmp/O3-opts | grep সক্রিয়

-নো-প্রামানিক-উপসর্গ
কোন প্রতীকী লিঙ্ক প্রসারিত করবেন না, রেফারেন্স সমাধান করুন /../ or /./, অথবা পথ তৈরি করুন
একটি আপেক্ষিক উপসর্গ তৈরি করার সময় পরম।

--সংস্করণ
আমন্ত্রিত GCC এর সংস্করণ নম্বর এবং কপিরাইট প্রদর্শন করুন।

- মোড়ক
একটি র্যাপার প্রোগ্রামের অধীনে সমস্ত সাবকমান্ড আহ্বান করুন। মোড়ক প্রোগ্রামের নাম এবং
এর পরামিতিগুলি একটি কমা পৃথক তালিকা হিসাবে পাস করা হয়।

gcc -c tc -wrapper gdb, -args

এটি সমস্ত সাবপ্রোগ্রামকে আহ্বান করে জিসিসি অধীনে জিডিবি --আর্গস, এইভাবে আমন্ত্রণ cc1 is
জিডিবি --আর্গস cc1 ....

-pplugin =নাম.so
ফাইলে প্লাগইন কোড লোড করুন নামতাই, একটি শেয়ার করা অবজেক্ট বলে ধরে নেওয়া হয়েছে
কম্পাইলার শেয়ার্ড অবজেক্ট ফাইলের বেস নাম প্লাগইন সনাক্ত করতে ব্যবহৃত হয়
যুক্তি পার্সিংয়ের উদ্দেশ্যে (দেখুন -ফ্লাগিন-আর্গ-নাম-চাবি=মূল্য নিচে). প্রতিটি
প্লাগইন এপিআই-এ নির্দিষ্ট কলব্যাক ফাংশন সংজ্ঞায়িত করা উচিত।

-ফ্লাগিন-আর্গ-নাম-চাবি=মূল্য
নামক একটি যুক্তি সংজ্ঞায়িত করুন চাবি একটি মান সঙ্গে মূল্য প্লাগইন নামক জন্য নাম.

-fdump-ada-pec[- পাতলা]
C এবং C++ সোর্স এবং ফাইলগুলি অন্তর্ভুক্ত করার জন্য, সংশ্লিষ্ট Ada চশমা তৈরি করুন।

-ফাদা-স্পেক-প্যারেন্ট=একক
সাথে -fdump-ada-pec[- পাতলা] উপরে, এর চাইল্ড ইউনিট হিসাবে Ada চশমা তৈরি করুন
মাতা একক.

-fdump- গো-স্পেক =ফাইল
যেকোনো ভাষায় ইনপুট ফাইলের জন্য, অনুরূপ Go ঘোষণা তৈরি করুন ফাইল. এই
Go "const", "type", "var" এবং "func" ঘোষণা তৈরি করে যা একটি কার্যকর উপায় হতে পারে
অন্য কোনো ভাষায় লেখা কোডে একটি গো ইন্টারফেস লেখা শুরু করতে।

@ফাইল
থেকে কমান্ড লাইন বিকল্প পড়ুন ফাইল. পঠিত বিকল্পগুলি এর জায়গায় সন্নিবেশ করা হয়েছে
আসল @ফাইল বিকল্প। যদি ফাইল বিদ্যমান নেই, বা পড়া যাবে না, তারপর বিকল্প
আক্ষরিকভাবে চিকিত্সা করা হবে, এবং অপসারণ করা হবে না।

বিকল্পগুলি ফাইল হোয়াইটস্পেস দ্বারা পৃথক করা হয়। একটি সাদা স্থান অক্ষর অন্তর্ভুক্ত করা যেতে পারে
একক বা ডবল উদ্ধৃতিতে সমগ্র বিকল্পটিকে ঘিরে একটি বিকল্পে। যে কোন
অক্ষরটি (একটি ব্যাকস্ল্যাশ সহ) অক্ষরটির উপসর্গ দিয়ে অন্তর্ভুক্ত করা যেতে পারে
ব্যাকস্ল্যাশ সহ অন্তর্ভুক্ত। দ্য ফাইল নিজেই অতিরিক্ত @ থাকতে পারেফাইল বিকল্প; যেকোনো
এই ধরনের বিকল্পগুলি পুনরাবৃত্তিমূলকভাবে প্রক্রিয়া করা হবে।

কম্পাইলিং সি ++ প্রোগ্রাম
C++ সোর্স ফাইলগুলি প্রচলিতভাবে একটি প্রত্যয় ব্যবহার করে .C, .cc, .সিপিপি, সিপিপি, .c ++, .সিপি, বা
.cxx; C++ হেডার ফাইল প্রায়ই ব্যবহার করে .hh, .এইচপিপি, .H, অথবা (ভাগ করা টেমপ্লেট কোডের জন্য) .tcc; এবং
প্রিপ্রসেসড C++ ফাইল প্রত্যয় ব্যবহার করে .ii. GCC এই নামগুলির সাথে ফাইলগুলিকে স্বীকৃতি দেয় এবং
আপনি কম্পাইলারকে কম্পাইল করার মতো একইভাবে কল করলেও সেগুলোকে C++ প্রোগ্রাম হিসেবে কম্পাইল করে
সি প্রোগ্রাম (সাধারণত নামের সাথে জিসিসি).

তবে, ব্যবহার জিসিসি C++ লাইব্রেরি যোগ করে না। g ++ একটি প্রোগ্রাম যা GCC এবং
স্বয়ংক্রিয়ভাবে C++ লাইব্রেরির বিরুদ্ধে লিঙ্কিং নির্দিষ্ট করে। এটা চিকিত্সা .c, .h এবং .i ফাইল হিসাবে
সি সোর্স ফাইলের পরিবর্তে C++ সোর্স ফাইল, যদি না -x ব্যবহৃত হয়. এই প্রোগ্রাম এছাড়াও দরকারী
একটি সি শিরোনাম ফাইল precompiling যখন a .h C++ সংকলনে ব্যবহারের জন্য এক্সটেনশন। চালু
অনেক সিস্টেম, g ++ নামের সাথেও ইনস্টল করা হয় সি ++.

আপনি যখন C++ প্রোগ্রাম কম্পাইল করেন, আপনি একই কমান্ড-লাইন বিকল্পগুলির অনেকগুলি নির্দিষ্ট করতে পারেন
আপনি যেকোনো ভাষায় প্রোগ্রাম কম্পাইল করার জন্য ব্যবহার করেন; বা কমান্ড-লাইন বিকল্পগুলি C এর জন্য অর্থপূর্ণ
এবং সম্পর্কিত ভাষা; অথবা বিকল্পগুলি যা শুধুমাত্র C++ প্রোগ্রামগুলির জন্য অর্থপূর্ণ।

অপশন সমূহ নিয়ামক C উপভাষা
নিম্নলিখিত বিকল্পগুলি C-এর উপভাষা নিয়ন্ত্রণ করে (বা C থেকে উদ্ভূত ভাষা, যেমন C++,
অবজেক্টিভ-সি এবং অবজেক্টিভ-সি++) যা কম্পাইলার গ্রহণ করে:

-আনসি
সি মোডে, এটি এর সমতুল্য -std=c90. C++ মোডে, এটি সমতুল্য
-std=c++98.

এটি GCC এর কিছু বৈশিষ্ট্য বন্ধ করে যা ISO C90 এর সাথে বেমানান (যখন
সি কোড কম্পাইল করা), অথবা স্ট্যান্ডার্ড C++ (যখন C++ কোড কম্পাইল করা হয়), যেমন "asm" এবং
"typeof" কীওয়ার্ড এবং পূর্বনির্ধারিত ম্যাক্রো যেমন "unix" এবং "vax" যা চিহ্নিত করে
আপনি যে ধরনের সিস্টেম ব্যবহার করছেন। এটি অবাঞ্ছিত এবং খুব কমই ব্যবহৃত ISO সক্ষম করে
ট্রিগ্রাফ বৈশিষ্ট্য। C কম্পাইলারের জন্য, এটি C++ শৈলীর স্বীকৃতি অক্ষম করে //
মন্তব্যের পাশাপাশি "ইনলাইন" কীওয়ার্ড।

বিকল্প কীওয়ার্ড "__asm__", "__extension__", "__inline__" এবং "__typeof__"
সত্ত্বেও কাজ চালিয়ে যান -আনসি. আপনি তাদের একটি ISO C প্রোগ্রামে ব্যবহার করতে চান না,
অবশ্যই, কিন্তু এটি অন্তর্ভুক্ত করা যেতে পারে যে হেডার ফাইলগুলিতে তাদের রাখা দরকারী
সঙ্গে সম্পন্ন সংকলন -আনসি. বিকল্প পূর্বনির্ধারিত ম্যাক্রো যেমন "__unix__" এবং
"__vax__" সহ বা ছাড়াও উপলব্ধ -আনসি.

সার্জারির -আনসি বিকল্পটি অ-আইএসও প্রোগ্রামগুলিকে নিঃস্বার্থভাবে প্রত্যাখ্যান করার কারণ করে না। জন্য
যে, -ডব্লিউডান্টিক ছাড়াও প্রয়োজন হয় -আনসি.

ম্যাক্রো "__STRICT_ANSI__" পূর্বনির্ধারিত হয় যখন -আনসি বিকল্প ব্যবহার করা হয়। কিছু হেডার
ফাইলগুলি এই ম্যাক্রোটি লক্ষ্য করতে পারে এবং নির্দিষ্ট ফাংশন ঘোষণা বা সংজ্ঞায়িত করা থেকে বিরত থাকতে পারে
কিছু ম্যাক্রো যেগুলিকে ISO স্ট্যান্ডার্ডের জন্য ডাকে না; এই হস্তক্ষেপ এড়াতে হয়
অন্য কিছুর জন্য এই নামগুলি ব্যবহার করতে পারে এমন কোনও প্রোগ্রামের সাথে।

যে ফাংশনগুলি সাধারণত তৈরি করা হয় কিন্তু ISO C দ্বারা সংজ্ঞায়িত শব্দার্থবিদ্যা নেই (যেমন
হিসাবে "alloca" এবং "ffs") যখন বিল্ট-ইন ফাংশন হয় না -আনসি ব্যবহৃত হয়.

-std=
ভাষার মান নির্ধারণ করুন। এই বিকল্পটি বর্তমানে শুধুমাত্র তখনই সমর্থিত
C বা C++ কম্পাইল করা হচ্ছে।

কম্পাইলার বিভিন্ন বেস স্ট্যান্ডার্ড গ্রহণ করতে পারে, যেমন c90 or সি ++ 98, এবং GNU উপভাষা
যারা মান, যেমন gnu90 or জিএনইউ ++ 98. যখন একটি বেস স্ট্যান্ডার্ড নির্দিষ্ট করা হয়,
কম্পাইলার সেই স্ট্যান্ডার্ড অনুসরণ করে এবং GNU এক্সটেনশন ব্যবহারকারী সমস্ত প্রোগ্রাম গ্রহণ করে
যে এটা বিরোধিতা না. উদাহরণ স্বরূপ, -std=c90 GCC এর কিছু বৈশিষ্ট্য বন্ধ করে
যেগুলি ISO C90 এর সাথে সামঞ্জস্যপূর্ণ নয়, যেমন "asm" এবং "typeof" কীওয়ার্ড, কিন্তু নয়
অন্যান্য GNU এক্সটেনশন যেগুলির ISO C90-তে কোনও অর্থ নেই, যেমন বাদ দেওয়া
একটি "?:" অভিব্যক্তির মধ্যবর্তী শব্দ। অন্যদিকে, যখন একটি মানের একটি GNU উপভাষা
নির্দিষ্ট করা আছে, কম্পাইলার দ্বারা সমর্থিত সমস্ত বৈশিষ্ট্য সক্রিয় করা হয়েছে, এমনকি যখন সেগুলিও
বৈশিষ্ট্যগুলি বেস স্ট্যান্ডার্ডের অর্থ পরিবর্তন করে। ফলস্বরূপ, কিছু কঠোর-সঙ্গতিপূর্ণ
প্রোগ্রাম প্রত্যাখ্যাত হতে পারে. বিশেষ মান দ্বারা ব্যবহৃত হয় -ডব্লিউডান্টিক সনাক্ত করতে
কোন বৈশিষ্ট্যগুলি হল GNU এক্সটেনশনগুলি স্ট্যান্ডার্ডের সেই সংস্করণে দেওয়া। উদাহরণ স্বরূপ
-STD = gnu90 -ডব্লিউডান্টিক C++ শৈলী সম্পর্কে সতর্ক করে // মন্তব্য, যখন -STD = gnu99 -ডব্লিউডান্টিক
না.

এই বিকল্পের জন্য একটি মান প্রদান করা আবশ্যক; সম্ভাব্য মান হয়

c90
c89
iso9899: 1990
সমস্ত ISO C90 প্রোগ্রাম সমর্থন করুন (কিছু নির্দিষ্ট GNU এক্সটেনশন যা ISO C90 এর সাথে বিরোধপূর্ণ
অক্ষম)। একই রকম -আনসি সি কোডের জন্য।

iso9899: 199409
সংশোধনী 90 এ পরিবর্তিত হিসাবে ISO C1।

c99
সি 9 এক্স
iso9899: 1999
ISO9899: 199x
ISO C99। মনে রাখবেন যে এই মান এখনও সম্পূর্ণরূপে সমর্থিত নয়; দেখা
<http://gcc.gnu.org/c99status.html> আরো তথ্যের জন্য। নাম গুলো সি 9 এক্স এবং
ISO9899: 199x বঞ্চিত হয়

c11
সি 1 এক্স
iso9899: 2011
ISO C11, ISO C স্ট্যান্ডার্ডের 2011 সালের সংশোধন। সমর্থন অসম্পূর্ণ এবং
পরীক্ষামূলক নাম সি 1 এক্স অবমূল্যায়ন করা হয়।

gnu90
gnu89
ISO C90 এর GNU উপভাষা (কিছু C99 বৈশিষ্ট্য সহ)। এটি সি এর জন্য ডিফল্ট
কোড।

gnu99
gnu9x
ISO C99 এর GNU উপভাষা। যখন ISO C99 সম্পূর্ণরূপে GCC-তে প্রয়োগ করা হয়, তখন এটি হবে
ডিফল্ট হয়ে নাম gnu9x অবমূল্যায়ন করা হয়।

gnu11
gnu1x
ISO C11 এর GNU উপভাষা। সমর্থন অসম্পূর্ণ এবং পরীক্ষামূলক. নাম gnu1x
অবমূল্যায়ন করা হয়।

সি ++ 98
সি ++ 03
1998 ISO C++ স্ট্যান্ডার্ড প্লাস 2003 প্রযুক্তিগত সংশোধনী এবং কিছু অতিরিক্ত
ত্রুটি রিপোর্ট। একই রকম -আনসি C++ কোডের জন্য।

জিএনইউ ++ 98
জিএনইউ ++ 03
এর GNU উপভাষা -std=c++98. এটি C++ কোডের জন্য ডিফল্ট।

সি ++ 11
সি ++ 0x
2011 ISO C++ স্ট্যান্ডার্ড প্লাস সংশোধনী। C++11 এর জন্য সমর্থন এখনও আছে
পরীক্ষামূলক, এবং ভবিষ্যতে রিলিজে বেমানান উপায়ে পরিবর্তিত হতে পারে। নাম
সি ++ 0x অবমূল্যায়ন করা হয়।

জিএনইউ ++ 11
gnu ++ 0x
এর GNU উপভাষা -std=c++11. C++11-এর জন্য সমর্থন এখনও পরীক্ষামূলক, এবং পরিবর্তন হতে পারে
ভবিষ্যত রিলিজে বেমানান উপায়ে। নাম gnu ++ 0x অবমূল্যায়ন করা হয়।

সি ++ 1y
আইএসও সি++ স্ট্যান্ডার্ডের পরবর্তী সংশোধন, 2017 সালের জন্য অস্থায়ীভাবে পরিকল্পনা করা হয়েছে। সমর্থন
অত্যন্ত পরীক্ষামূলক, এবং প্রায় অবশ্যই বেমানান উপায়ে পরিবর্তিত হবে
ভবিষ্যতের রিলিজ।

gnu ++ 1y
এর GNU উপভাষা -std=c++1y. সমর্থন অত্যন্ত পরীক্ষামূলক, এবং প্রায় হবে
ভবিষ্যতের রিলিজে অবশ্যই বেমানান উপায়ে পরিবর্তন হবে।

-fgnu89-ইনলাইন
পছন্দ -fgnu89-ইনলাইন GCC কে বলে "ইনলাইন" এর জন্য প্রথাগত GNU শব্দার্থবিদ্যা ব্যবহার করতে
C99 মোডে থাকাকালীন ফাংশন।
এই বিকল্পটি GCC সংস্করণ 4.1.3 দ্বারা গৃহীত এবং উপেক্ষা করা হয়েছে কিন্তু অন্তর্ভুক্ত নয়
4.3। GCC সংস্করণ 4.3 এবং পরবর্তীতে এটি C99 মোডে GCC-এর আচরণ পরিবর্তন করে। ব্যবহার
এই বিকল্পটি মোটামুটি "gnu_inline" ফাংশন বৈশিষ্ট্য যোগ করার সমতুল্য
ইনলাইন ফাংশন।

পছন্দ -fno-gnu89-ইনলাইন GCC-কে স্পষ্টভাবে C99 শব্দার্থবিদ্যা ব্যবহার করতে বলে
"ইনলাইন" যখন C99 বা gnu99 মোডে থাকে (অর্থাৎ, এটি ডিফল্ট আচরণ নির্দিষ্ট করে)। এই
বিকল্পটি প্রথমে GCC 4.3-এ সমর্থিত ছিল। এই বিকল্পটি সমর্থিত নয় -std=c90 or
-STD = gnu90 মোড.

প্রিপ্রসেসর ম্যাক্রো "__GNUC_GNU_INLINE__" এবং "__GNUC_STDC_INLINE__" ব্যবহার করা যেতে পারে
"ইনলাইন" ফাংশনের জন্য কোন শব্দার্থবিদ্যা কার্যকর তা পরীক্ষা করতে।

-অক্স-তথ্য ফাইলের নাম
ঘোষিত এবং/অথবা সমস্ত ফাংশনের জন্য প্রদত্ত ফাইলের নাম প্রোটোটাইপ ঘোষণার আউটপুট
হেডার ফাইল সহ একটি অনুবাদ ইউনিটে সংজ্ঞায়িত। এই বিকল্প হয়
সি ব্যতীত অন্য কোনো ভাষায় নীরবে উপেক্ষা করা হয়।

ঘোষণার পাশাপাশি, ফাইলটি নির্দেশ করে, মন্তব্যে, প্রতিটি ঘোষণার উত্স
(উৎস ফাইল এবং লাইন), ঘোষণাটি অন্তর্নিহিত ছিল কিনা, প্রোটোটাইপ করা হয়েছে বা
আনপ্রোটোটাইপড (I, N নতুন বা জন্য O পুরানো জন্য, যথাক্রমে, প্রথম অক্ষর পরে
লাইন নম্বর এবং কোলন), এবং এটি একটি ঘোষণা বা সংজ্ঞা থেকে এসেছে কিনা
(C or F, যথাক্রমে, নিম্নলিখিত অক্ষরে)। ফাংশনের ক্ষেত্রে
সংজ্ঞা, তাদের ঘোষণা অনুসরণ করে আর্গুমেন্টের একটি K&R-শৈলী তালিকাও রয়েছে
ঘোষণার পরে, ভিতরের মন্তব্য প্রদান করা হয়েছে।

-পতন-প্যারামিটারহীন-ভেরিয়েডিক-ফাংশন
নামযুক্ত পরামিতি ছাড়া বৈচিত্র্যময় ফাংশন গ্রহণ করুন।

যদিও এই ধরনের একটি ফাংশন সংজ্ঞায়িত করা সম্ভব, এটি খুব কার্যকর নয়
যুক্তি পড়া সম্ভব নয়। এটি শুধুমাত্র C এর জন্য সমর্থিত কারণ এই গঠনটি
C++ দ্বারা অনুমোদিত।

-ফনো-এএসএম
"asm", "inline" বা "typeof" কে কীওয়ার্ড হিসেবে চিনবেন না, যাতে সেই কোড এইগুলি ব্যবহার করতে পারে
শনাক্তকারী হিসাবে শব্দ। আপনি "__asm__", "__inline__" এবং কীওয়ার্ড ব্যবহার করতে পারেন
পরিবর্তে "__typeof__"। -আনসি বোঝা -ফনো-এএসএম.

C++ এ, এই সুইচটি শুধুমাত্র "typeof" কীওয়ার্ডকে প্রভাবিত করে, যেহেতু "asm" এবং "ইনলাইন"
স্ট্যান্ডার্ড কীওয়ার্ড। আপনি ব্যবহার করতে চাইতে পারেন -fno-gnu-কীওয়ার্ড পরিবর্তে পতাকা, যা আছে
একই প্রভাব। C99 মোডে (-std=c99 or -STD = gnu99), এই সুইচ শুধুমাত্র প্রভাবিত করে
"asm" এবং "typeof" কীওয়ার্ড, যেহেতু "ইনলাইন" ISO C99-এ একটি আদর্শ কীওয়ার্ড।

-এফএনও-বিল্টিন
-এফএনও-বিল্টিন-ক্রিয়া
বিল্ট-ইন ফাংশনগুলি চিনবেন না যা দিয়ে শুরু হয় না __বিল্টিন_ উপসর্গ হিসাবে

GCC সাধারণত কিছু বিল্ট-ইন ফাংশন আরও পরিচালনা করার জন্য বিশেষ কোড তৈরি করে
দক্ষতার সাথে উদাহরণস্বরূপ, "অ্যালোকা" এ কল করা একক নির্দেশে পরিণত হতে পারে
স্ট্যাক সরাসরি সামঞ্জস্য করুন, এবং "memcpy" এ কলগুলি ইনলাইন কপি লুপ হয়ে যেতে পারে। দ্য
ফলাফল কোড প্রায়ই ছোট এবং দ্রুত উভয় হয়, কিন্তু ফাংশন কল নম্বর থেকে
আর এইভাবে প্রদর্শিত হবে, আপনি সেই কলগুলিতে একটি ব্রেকপয়েন্ট সেট করতে পারবেন না বা পরিবর্তন করতে পারবেন না
একটি ভিন্ন লাইব্রেরির সাথে লিঙ্ক করে ফাংশনগুলির আচরণ। উপরন্তু, যখন
একটি ফাংশন একটি অন্তর্নির্মিত ফাংশন হিসাবে স্বীকৃত, GCC সে সম্পর্কে তথ্য ব্যবহার করতে পারে
ফাংশন সেই ফাংশনে কলের সমস্যা সম্পর্কে সতর্ক করতে, বা আরও জেনারেট করতে
কার্যকরী কোড, এমনকি যদি ফলাফল কোডটিতে এখনও সেই ফাংশনে কল থাকে। জন্য
উদাহরণ, সতর্কতা সঙ্গে দেওয়া হয় -Wformat "printf" এ খারাপ কলের জন্য যখন "printf" হয়
অন্তর্নির্মিত এবং "strlen" গ্লোবাল মেমরি পরিবর্তন না করার জন্য পরিচিত।

সঙ্গে সঙ্গে -এফএনও-বিল্টিন-ক্রিয়া বিকল্প শুধুমাত্র অন্তর্নির্মিত ফাংশন ক্রিয়া নিষ্ক্রিয় করা.
ক্রিয়া দিয়ে শুরু করা উচিত নয় __বিল্টিন_. যদি একটি ফাংশনের নাম দেওয়া হয় যা অন্তর্নির্মিত নয়
GCC-এর এই সংস্করণে, এই বিকল্পটি উপেক্ষা করা হয়েছে। কোন অনুরূপ আছে
বিল্টিন-ক্রিয়া বিকল্প; আপনি যদি বেছে বেছে বিল্ট-ইন ফাংশন সক্রিয় করতে চান
ব্যবহার -এফএনও-বিল্টিন or -ফ্রিস্ট্যান্ডিং, আপনি ম্যাক্রো সংজ্ঞায়িত করতে পারেন যেমন:

# abs(n) __builtin_abs (n)) সংজ্ঞায়িত করুন
# strcpy(d, s) __builtin_strcpy (d), (s)) সংজ্ঞায়িত করুন

-ফোস্টেড
দাবি করুন যে সংকলন একটি হোস্ট করা পরিবেশকে লক্ষ্য করে। এই থেকেই বোঝা - বিল্টিন. একটি
হোস্টেড এনভায়রনমেন্ট হল এমন একটি যেখানে সম্পূর্ণ স্ট্যান্ডার্ড লাইব্রেরি পাওয়া যায় এবং এর মধ্যে
কোনটি "প্রধান" এর রিটার্ন টাইপের "int" আছে। উদাহরণগুলি একটি ছাড়া প্রায় সবকিছু
কার্নেল এই সমতুল্য -fno-ফ্রিস্ট্যান্ডিং.

-ফ্রিস্ট্যান্ডিং
দাবি করুন যে সংকলন একটি ফ্রিস্ট্যান্ডিং পরিবেশকে লক্ষ্য করে। এই থেকেই বোঝা
-এফএনও-বিল্টিন. একটি ফ্রিস্ট্যান্ডিং পরিবেশ এমন একটি যেখানে স্ট্যান্ডার্ড লাইব্রেরি নাও থাকতে পারে
বিদ্যমান, এবং প্রোগ্রাম স্টার্টআপ অগত্যা "প্রধান" এ নাও হতে পারে। সবচেয়ে স্পষ্ট উদাহরণ
একটি OS কার্নেল। এই সমতুল্য -fno-হোস্টেড.

-ফোপেনএমপি
C/C++-এ OpenMP নির্দেশিকা "#pragma omp" এবং Fortran-এ "!$omp" পরিচালনা সক্ষম করুন৷
কখন -ফোপেনএমপি নির্দিষ্ট করা হয়েছে, কম্পাইলার অনুযায়ী সমান্তরাল কোড তৈরি করে
OpenMP অ্যাপ্লিকেশন প্রোগ্রাম ইন্টারফেস v3.0http://www.openmp.org/> এই বিকল্প
বোঝা - থ্রেড, এবং এইভাবে শুধুমাত্র সেই লক্ষ্যে সমর্থিত যেগুলির জন্য সমর্থন আছে৷
- থ্রেড.

-fgnu-tm
যখন বিকল্প -fgnu-tm নির্দিষ্ট করা হয়েছে, কম্পাইলার লিনাক্সের জন্য কোড তৈরি করে
ইন্টেলের বর্তমান লেনদেন মেমরি ABI স্পেসিফিকেশন নথির রূপ (রিভিশন
1.1, মে 6 2009)। এটি একটি পরীক্ষামূলক বৈশিষ্ট্য যার ইন্টারফেস পরিবর্তন হতে পারে
GCC এর ভবিষ্যত সংস্করণ, অফিসিয়াল স্পেসিফিকেশন পরিবর্তনের সাথে সাথে। দয়া করে নোট করুন যে না
সমস্ত আর্কিটেকচার এই বৈশিষ্ট্যের জন্য সমর্থিত।

লেনদেনের মেমরির জন্য GCC-এর সমর্থন সম্পর্কে আরও তথ্যের জন্য,

নোট করুন যে লেনদেন সংক্রান্ত মেমরি বৈশিষ্ট্যটি নন-কল ব্যতিক্রমগুলির সাথে সমর্থিত নয়
(-অ-কল-ব্যতিক্রম).

-এফএমএস-এক্সটেনশন
মাইক্রোসফ্ট হেডার ফাইলে ব্যবহৃত কিছু অ-মানক গঠন গ্রহণ করুন।

C++ কোডে, এটি স্ট্রাকচারের সদস্যদের নামগুলিকে পূর্ববর্তী প্রকারের মতো হতে দেয়
ঘোষণা

টাইপডেফ ইন্ট ইউউ;
গঠন ABC {
Uow uow;
};

কাঠামো এবং ইউনিয়নে নামহীন ক্ষেত্রের কিছু ক্ষেত্রে শুধুমাত্র এটির সাথেই গৃহীত হয়
বিকল্প।

-fplan9-এক্সটেনশন
প্ল্যান 9 কোডে ব্যবহৃত কিছু অ-মানক নির্মাণ গ্রহণ করুন।

এটি সক্ষম করে -এফএমএস-এক্সটেনশন, বেনামী সহ কাঠামোতে পয়েন্টার পাস করার অনুমতি দেয়
ক্ষেত্রগুলি ফাংশনগুলির জন্য যা ক্ষেত্রের ধরণের উপাদানগুলিতে পয়েন্টার আশা করে, এবং৷
একটি টাইপডেফ ব্যবহার করে ঘোষিত বেনামী ক্ষেত্রগুলির উল্লেখ করার অনুমতিগুলি। এই শুধুমাত্র
C এর জন্য সমর্থিত, C++ নয়।

-ট্রিগ্রাফ
আইএসও সি ট্রিগ্রাফ সমর্থন করে। দ্য -আনসি বিকল্প (এবং -স্টেড কঠোর আইএসও সি এর জন্য বিকল্প
সামঞ্জস্য) বোঝায় -ট্রিগ্রাফ.

- ঐতিহ্যগত
-প্রথাগত-cpp
পূর্বে, এই বিকল্পগুলির কারণে GCC একটি প্রাক-মানক C কম্পাইলার অনুকরণ করার চেষ্টা করত।
তারা এখন শুধুমাত্র সঙ্গে সমর্থিত -E সুইচ প্রিপ্রসেসর সমর্থন অব্যাহত
একটি প্রাক-মানক মোড। বিস্তারিত জানার জন্য GNU CPP ম্যানুয়াল দেখুন।

-fcond-অমিল
দ্বিতীয় এবং তৃতীয় আর্গুমেন্টে অমিল ধরনের সহ শর্তসাপেক্ষ অভিব্যক্তির অনুমতি দিন।
এই ধরনের অভিব্যক্তির মান অকার্যকর। এই বিকল্পটি C++ এর জন্য সমর্থিত নয়।

-ফ্ল্যাক্স-ভেক্টর-রূপান্তর
বিভিন্ন সংখ্যক উপাদান এবং/অথবা সহ ভেক্টরের মধ্যে অন্তর্নিহিত রূপান্তরের অনুমতি দিন
বেমানান উপাদান প্রকার। এই বিকল্পটি নতুন কোডের জন্য ব্যবহার করা উচিত নয়।

-ফানসাইনড-চার
"char" টাইপটিকে স্বাক্ষরবিহীন হতে দিন, যেমন "অস্বাক্ষরহীন চর"।

প্রতিটি ধরনের মেশিনের একটি ডিফল্ট আছে "চার" কি হওয়া উচিত। এটা হয় মত
ডিফল্টরূপে "স্বাক্ষরবিহীন চর" বা ডিফল্টরূপে "স্বাক্ষরিত চর" এর মতো।

আদর্শভাবে, একটি পোর্টেবল প্রোগ্রাম সর্বদা "স্বাক্ষরিত চর" বা "স্বাক্ষরবিহীন চর" ব্যবহার করা উচিত যখন এটি
একটি বস্তুর স্বাক্ষরতার উপর নির্ভর করে। কিন্তু ব্যবহার করার জন্য অনেক প্রোগ্রাম লেখা হয়েছে
প্লেইন "char" এবং এটি স্বাক্ষরিত হবে বলে আশা করে, অথবা এটির উপর নির্ভর করে স্বাক্ষরবিহীন হওয়ার প্রত্যাশা করে
যে মেশিনের জন্য তারা লেখা হয়েছিল। এই বিকল্প, এবং তার বিপরীত, আপনি যেমন একটি করতে দিন
প্রোগ্রাম বিপরীত ডিফল্ট সঙ্গে কাজ.

টাইপ "char" সবসময় প্রতিটি "স্বাক্ষরিত চর" বা "অস্বাক্ষরিত" থেকে একটি স্বতন্ত্র প্রকার
char", যদিও এর আচরণ সবসময় এই দুটির মধ্যে একটির মতো হয়।

-ফসাইনড-চার
টাইপ "char" সাইন করা যাক, যেমন "স্বাক্ষরিত চর"।

উল্লেখ্য যে এই সমতুল্য -fno-স্বাক্ষরবিহীন-চর, যা এর নেতিবাচক রূপ
-ফানসাইনড-চার. একইভাবে, বিকল্প -fno-স্বাক্ষরিত-চর সমতুল্য
-ফানসাইনড-চার.

-ফসাইনড-বিটফিল্ডস
ফানসাইনড-বিটফিল্ড
-fno-স্বাক্ষরিত-বিটফিল্ড
-fno-আনসাইন করা-বিটফিল্ড
এই বিকল্পগুলি ঘোষণার সময় একটি বিট-ক্ষেত্র স্বাক্ষরিত বা স্বাক্ষরিত কিনা তা নিয়ন্ত্রণ করে
"স্বাক্ষরিত" বা "স্বাক্ষরবিহীন" ব্যবহার করে না। ডিফল্টরূপে, যেমন একটি বিট-ক্ষেত্র স্বাক্ষরিত হয়,
কারণ এটি সামঞ্জস্যপূর্ণ: মৌলিক পূর্ণসংখ্যার ধরন যেমন "int" স্বাক্ষরিত প্রকার।

অপশন সমূহ নিয়ামক সি ++ উপভাষা
এই বিভাগে কমান্ড-লাইন বিকল্পগুলি বর্ণনা করে যা শুধুমাত্র C++ প্রোগ্রামগুলির জন্য অর্থপূর্ণ।
আপনার প্রোগ্রাম কোন ভাষাতেই থাকুক না কেন আপনি বেশিরভাগ GNU কম্পাইলার অপশন ব্যবহার করতে পারেন
আছে

g ++ -g -prepo -o -c ফার্স্টক্লাস.সি

এই উদাহরণে, শুধুমাত্র -ফ্রেপো শুধুমাত্র C++ প্রোগ্রামের জন্য একটি বিকল্প; আপনি ব্যবহার করতে পারেন
GCC দ্বারা সমর্থিত যেকোনো ভাষা সহ অন্যান্য বিকল্প।

এখানে বিকল্পগুলির একটি তালিকা রয়েছে যা কেবল C++ প্রোগ্রাম কম্পাইল করার জন্য:

-ফ্যাবি-সংস্করণ=n
সংস্করণ ব্যবহার করুন n C++ ABI-এর। ডিফল্ট সংস্করণ 2।

সংস্করণ 0 C++ ABI স্পেসিফিকেশনের সাথে সবচেয়ে ঘনিষ্ঠভাবে সঙ্গতিপূর্ণ সংস্করণকে বোঝায়।
অতএব, সংস্করণ 0 ব্যবহার করে প্রাপ্ত ABI G++ এর বিভিন্ন সংস্করণে পরিবর্তিত হবে
ABI বাগগুলি ঠিক করা হয়েছে।

সংস্করণ 1 হল C++ ABI-এর সংস্করণ যা G++ 3.2-এ প্রথম উপস্থিত হয়েছিল।

সংস্করণ 2 হল C++ ABI-এর সংস্করণ যা G++ 3.4-এ প্রথম উপস্থিত হয়েছিল।

সংস্করণ 3 একটি টেমপ্লেট যুক্তি হিসাবে একটি ধ্রুবক ঠিকানা ম্যাঙ্গলিং একটি ত্রুটি সংশোধন করে৷

সংস্করণ 4, যা প্রথম G++ 4.5-এ আবির্ভূত হয়েছে, ভেক্টরের জন্য একটি আদর্শ ম্যাঙ্গলিং প্রয়োগ করে
ধরনের।

সংস্করণ 5, যা প্রথম G++ 4.6-এ উপস্থিত হয়েছিল, অ্যাট্রিবিউটের ম্যাঙ্গলিং সংশোধন করে
ফাংশন পয়েন্টার প্রকারের উপর const/volatile, একটি প্লেইন decl এর decltype, এবং a এর ব্যবহার
অন্য প্যারামিটারের ঘোষণায় ফাংশন প্যারামিটার।

সংস্করণ 6, যা প্রথম G++ 4.7-এ উপস্থিত হয়েছিল, C++11-এর প্রচার আচরণ সংশোধন করে
স্কোপড enums এবং টেমপ্লেট আর্গুমেন্ট প্যাকগুলির ম্যাঙ্গলিং, const/static_cast, উপসর্গ ++
এবং --, এবং একটি টেমপ্লেট আর্গুমেন্ট হিসাবে ব্যবহৃত একটি ক্লাস স্কোপ ফাংশন।

আরো দেখুন -ওয়াবি.

-fno-অ্যাক্সেস-কন্ট্রোল
সমস্ত অ্যাক্সেস চেকিং বন্ধ করুন। এই সুইচটি মূলত বাগগুলির আশেপাশে কাজ করার জন্য উপযোগী
অ্যাক্সেস কন্ট্রোল কোড।

-fcheck-নতুন
চেষ্টা করার আগে পরীক্ষা করুন যে "অপারেটর নতুন" দ্বারা ফিরে আসা পয়েন্টারটি নন-নাল
বরাদ্দ স্টোরেজ পরিবর্তন করুন। এই চেকটি সাধারণত অপ্রয়োজনীয় কারণ C++
স্ট্যান্ডার্ড নির্দিষ্ট করে যে "অপারেটর নতুন" শুধুমাত্র 0 প্রদান করে যদি এটি ঘোষণা করা হয় নিক্ষেপ(), এ
যে ক্ষেত্রে কম্পাইলার সবসময় এই বিকল্পটি ছাড়াই রিটার্ন মান পরীক্ষা করে। ভিতরে
অন্য সব ক্ষেত্রে, যখন "অপারেটর নতুন" একটি অ-খালি ব্যতিক্রম স্পেসিফিকেশন, মেমরি থাকে
ক্লান্তি "std::bad_alloc" নিক্ষেপ করে সংকেত দেওয়া হয়। আরো দেখুন নতুন (পরে).

-fconstexpr-গভীরতা=n
C++11 constexpr ফাংশনের জন্য সর্বাধিক নেস্টেড মূল্যায়ন গভীরতা সেট করুন n. একটি সীমা
ধ্রুবক অভিব্যক্তি মূল্যায়নের সময় অবিরাম পুনরাবৃত্তি সনাক্ত করতে প্রয়োজন। দ্য
স্ট্যান্ডার্ড দ্বারা নির্দিষ্ট করা ন্যূনতম হল 512।

-fdeduce-init-তালিকা
একটি বন্ধনী থেকে "std::initializer_list" হিসাবে একটি টেমপ্লেট টাইপ প্যারামিটার কেটে নেওয়া সক্ষম করুন-
আবদ্ধ প্রাথমিক তালিকা, যেমন

টেমপ্লেট অটো ফরওয়ার্ড (টি টি) -> ডিক্লটাইপ (রিয়েলফন (টি))
{
রিটার্ন realfn (t);
}

অকার্যকর চ()
{
এগিয়ে ({1,2}); // এগিয়ে কল >
}

এই কর্তন মূল প্রস্তাবিত একটি সম্ভাব্য এক্সটেনশন হিসাবে বাস্তবায়িত হয়েছে
C++11 স্ট্যান্ডার্ডের জন্য শব্দার্থবিদ্যা, কিন্তু চূড়ান্ত স্ট্যান্ডার্ডের অংশ ছিল না, তাই হল
ডিফল্টরূপে নিষ্ক্রিয়। এই বিকল্পটি বন্ধ করা হয়েছে এবং ভবিষ্যতে সরানো হতে পারে৷
G++ এর সংস্করণ।

-বন্ধু-ইনজেকশন
বন্ধুর ফাংশনগুলিকে আবদ্ধ নামস্থানে প্রবেশ করান, যাতে সেগুলি বাইরে দৃশ্যমান হয়
যে শ্রেণিতে তারা ঘোষণা করা হয়েছে তার সুযোগ। বন্ধু ফাংশন নথিভুক্ত ছিল
পুরানো টীকাযুক্ত C++ রেফারেন্স ম্যানুয়াল এবং G++ এর আগে সংস্করণগুলিতে এইভাবে কাজ করতে
4.1 সর্বদা সেভাবে কাজ করেছে। যাইহোক, ISO C++ এ একটি বন্ধু ফাংশন যা নয়
একটি এনক্লোজিং স্কোপে ঘোষিত শুধুমাত্র যুক্তি নির্ভর লুকআপ ব্যবহার করে পাওয়া যাবে।
এই বিকল্পের কারণে বন্ধুদের ইনজেকশন দেওয়া হয় যেমন তারা আগের রিলিজে ছিল।

এই বিকল্পটি সামঞ্জস্যের জন্য, এবং G++ এর ভবিষ্যতের প্রকাশে সরানো হতে পারে।

-ফনো-এলাইড-নির্মাণকারী
C++ স্ট্যান্ডার্ড একটি বাস্তবায়নকে শুধুমাত্র একটি অস্থায়ী তৈরি করা বাদ দিতে দেয়
একই ধরনের অন্য বস্তু আরম্ভ করার জন্য ব্যবহৃত হয়। এই বিকল্পটি নির্দিষ্ট করা নিষ্ক্রিয় করে
যে অপ্টিমাইজেশান, এবং G++ কে সমস্ত ক্ষেত্রে কপি কনস্ট্রাক্টরকে কল করতে বাধ্য করে।

-এফএনও-এনফোর্স-এহ-স্পেক্স
রান টাইমে ব্যতিক্রম স্পেসিফিকেশন লঙ্ঘনের জন্য চেক করার জন্য কোড তৈরি করবেন না।
এই বিকল্পটি C++ স্ট্যান্ডার্ড লঙ্ঘন করে, কিন্তু কোডের আকার কমানোর জন্য উপযোগী হতে পারে
উত্পাদন তৈরি করে, অনেকটা সংজ্ঞায়িত করার মতো NDEBUG. এটি ব্যবহারকারী কোড অনুমতি দেয় না
ব্যতিক্রম স্পেসিফিকেশন লঙ্ঘন করে ব্যতিক্রম নিক্ষেপ করা; কম্পাইলার এখনও
স্পেসিফিকেশনের উপর ভিত্তি করে অপ্টিমাইজ করে, তাই একটি অপ্রত্যাশিত ব্যতিক্রম ছুঁড়ে দেয়
রান টাইমে অনির্ধারিত আচরণ।

-ফেক্সটারন-টিএলএস-ইনিট
-fno-extern- tls- init
C++11 এবং OpenMP মান অনুমোদন করে থ্রেড_স্থানীয় এবং থ্রেড ব্যক্তিগত ভেরিয়েবল আছে
গতিশীল (রানটাইম) আরম্ভ। এটি সমর্থন করার জন্য, এই ধরনের একটি ভেরিয়েবলের যেকোনো ব্যবহার চলে
একটি র‍্যাপার ফাংশনের মাধ্যমে যা কোন প্রয়োজনীয় সূচনা করে। যখন ব্যবহার
এবং ভেরিয়েবলের সংজ্ঞা একই অনুবাদ ইউনিটে রয়েছে, এই ওভারহেড হতে পারে
অপ্টিমাইজড দূরে, কিন্তু ব্যবহার যখন একটি ভিন্ন অনুবাদ ইউনিট আছে
উল্লেখযোগ্য ওভারহেড এমনকি যদি পরিবর্তনশীল আসলে গতিশীল প্রয়োজন না হয়
আরম্ভ. প্রোগ্রামার যদি নিশ্চিত হতে পারে যে কোন ভেরিয়েবলের ব্যবহার নেই
TU সংজ্ঞায়িত করার জন্য ডায়নামিক ইনিশিয়ালাইজেশন ট্রিগার করতে হবে (হয় কারণ পরিবর্তনশীল
স্ট্যাটিকভাবে আরম্ভ করা, অথবা সংজ্ঞায়িত TU-তে ভেরিয়েবলের ব্যবহার কার্যকর করা হবে
অন্য TU-তে ব্যবহার করার আগে), তারা এই ওভারহেড এড়াতে পারে
-fno-extern- tls- init বিকল্প।

যে লক্ষ্যগুলি প্রতীক উপনাম সমর্থন করে, ডিফল্ট হয় -ফেক্সটারন-টিএলএস-ইনিট. লক্ষ্যবস্তুতে
যে প্রতীক উপনাম সমর্থন করে না, ডিফল্ট হয় -fno-extern- tls- init.

- সুযোগের জন্য
-এফএনও-ফর-স্কোপ
If - সুযোগের জন্য নির্দিষ্ট করা হয়েছে, ভেরিয়েবলের সুযোগ a এ ঘোষণা করা হয়েছে for-init-বিবৃতি
সীমাবদ্ধ উন্নত লুপ নিজেই, যেমন C++ স্ট্যান্ডার্ড দ্বারা নির্দিষ্ট করা হয়েছে। যদি
-এফএনও-ফর-স্কোপ নির্দিষ্ট করা হয়েছে, ভেরিয়েবলের সুযোগ a এ ঘোষণা করা হয়েছে for-init-বিবৃতি
এনক্লোসিং স্কোপের শেষ পর্যন্ত প্রসারিত হয়, যেমনটি G++ এর পুরানো সংস্করণে ছিল, এবং
C++ এর অন্যান্য (প্রথাগত) বাস্তবায়ন।

যদি কোন পতাকা দেওয়া না হয়, ডিফল্ট মান অনুসরণ করা, কিন্তু অনুমতি দেওয়া এবং দেওয়া
পুরানো-শৈলী কোডের জন্য একটি সতর্কতা যা অন্যথায় অবৈধ হবে, বা ভিন্ন হবে
আচরণ।

-fno-gnu-কীওয়ার্ড
"typeof" কে কীওয়ার্ড হিসেবে চিনবেন না, যাতে সেই কোডটি এই শব্দটিকে একটি হিসেবে ব্যবহার করতে পারে
শনাক্তকারী আপনি পরিবর্তে "__typeof__" কীওয়ার্ড ব্যবহার করতে পারেন। -আনসি বোঝা
-fno-gnu-কীওয়ার্ড.

-fno-ইমপ্লিসিট-টেমপ্লেট
অ-ইনলাইন টেমপ্লেটগুলির জন্য কখনই কোড নির্গত করবেন না যেগুলি অন্তর্নিহিতভাবে (যেমন দ্বারা
ব্যবহার করুন); শুধুমাত্র স্পষ্ট উদাহরণের জন্য কোড নির্গত করুন।

-fno-ইমপ্লিসিট-ইনলাইন-টেমপ্লেট
ইনলাইন টেমপ্লেটের অন্তর্নিহিত ইন্সটেশনের জন্য কোড নির্গত করবেন না। ডিফল্ট
ইনলাইনগুলিকে ভিন্নভাবে পরিচালনা করা যাতে অপ্টিমাইজেশানের প্রয়োজনের সাথে এবং ছাড়াই কম্পাইল করা যায়
স্পষ্ট দৃষ্টান্তের একই সেট।

-fno-ইমপ্লিমেন্ট-ইনলাইন
স্থান বাঁচাতে, দ্বারা নিয়ন্ত্রিত ইনলাইন ফাংশনগুলির লাইনের বাইরের অনুলিপিগুলি নির্গত করবেন না৷
#প্রাগমা বাস্তবায়ন. এই ফাংশনগুলি ইনলাইন না থাকলে এটি লিঙ্কার ত্রুটির কারণ হয়
সর্বত্র তাদের ডাকা হয়।

-এফএমএস-এক্সটেনশন
এমএফসি-তে ব্যবহৃত কনস্ট্রাক্ট সম্পর্কে Wpedantic সতর্কতা অক্ষম করুন, যেমন অন্তর্নিহিত int এবং
অ-মানক সিনট্যাক্সের মাধ্যমে সদস্য ফাংশনে একটি পয়েন্টার পাওয়া।

-fno-nonansi-builtins
ANSI/ISO C দ্বারা বাধ্যতামূলক নয় এমন ফাংশনগুলির অন্তর্নির্মিত ঘোষণাগুলি অক্ষম করুন
"ffs", "alloca", "_exit", "index", "bzero", "conjf" এবং অন্যান্য সম্পর্কিত অন্তর্ভুক্ত
ফাংশন।

-fnothrow-opt
একটি "থ্রো()" ব্যতিক্রম স্পেসিফিকেশন ব্যবহার করুন যেন এটি একটি "noexcept" স্পেসিফিকেশন
কোন ব্যতিক্রম ছাড়া একটি ফাংশন আপেক্ষিক টেক্সট আকার ওভারহেড হ্রাস বা নির্মূল করুন
স্পেসিফিকেশন যদি ফাংশনে নন-তুচ্ছ সহ প্রকারের স্থানীয় ভেরিয়েবল থাকে
destructors, ব্যতিক্রম স্পেসিফিকেশন আসলে ফাংশন ছোট করে তোলে কারণ
সেই ভেরিয়েবলগুলির জন্য EH ক্লিনআপগুলিকে অপ্টিমাইজ করা যেতে পারে। শব্দার্থিক প্রভাব হল
যে একটি ব্যতিক্রম যেমন একটি ব্যতিক্রম স্পেসিফিকেশন সঙ্গে একটি ফাংশন আউট নিক্ষিপ্ত
"অপ্রত্যাশিত" না হয়ে "টার্মিনেট" করার জন্য একটি কলের ফলাফল।

-fno-অপারেটর-নাম
অপারেটর নামের কীওয়ার্ড "এবং", "বিট্যান্ড", "বিটর", "compl", "না", "বা" ব্যবহার করবেন না
এবং "xor" কিওয়ার্ড হিসাবে প্রতিশব্দ হিসাবে।

-ফনো-বিকল্প-ডায়াগস
ডায়াগনস্টিকগুলি অক্ষম করুন যা স্ট্যান্ডার্ড বলে যে একটি কম্পাইলারকে ইস্যু করার দরকার নেই।
বর্তমানে, G++ দ্বারা জারি করা এই ধরনের একমাত্র ডায়াগনস্টিক হল একটি নামের জন্য
একটি শ্রেণীর মধ্যে একাধিক অর্থ।

-অনুমতিপূর্ণ
অসঙ্গতিপূর্ণ কোড সম্পর্কে ত্রুটি থেকে সতর্কতা পর্যন্ত কিছু ডায়াগনস্টিক ডাউনগ্রেড করুন। এইভাবে,
ব্যবহার -অনুমতিপূর্ণ কিছু নন-কনফর্মিং কোড কম্পাইল করার অনুমতি দেয়।

-fno-সুন্দর-টেমপ্লেট
যখন একটি ত্রুটি বার্তা একটি ফাংশন টেমপ্লেটের একটি বিশেষীকরণ বোঝায়, কম্পাইলার
সাধারণত টেমপ্লেট আর্গুমেন্ট দ্বারা অনুসরণ করে টেমপ্লেটের স্বাক্ষর প্রিন্ট করে এবং
স্বাক্ষরে যেকোনো টাইপডেফ বা টাইপনাম (যেমন "অকার্যকর f(T) [T = int] এর সাথে" বরং
"void f(int)") এর চেয়ে যাতে এটি স্পষ্ট হয় যে কোন টেমপ্লেট জড়িত। যখন একটি ত্রুটি
বার্তাটি একটি ক্লাস টেমপ্লেটের একটি বিশেষীকরণকে বোঝায়, কম্পাইলার যেকোনোটি বাদ দেয়
টেমপ্লেট আর্গুমেন্ট যা সেই টেমপ্লেটের জন্য ডিফল্ট টেমপ্লেট আর্গুমেন্টের সাথে মেলে। যদি
এই আচরণগুলির যেকোনো একটি ত্রুটির বার্তা বোঝার পরিবর্তে কঠিন করে তোলে
সহজ, আপনি ব্যবহার করতে পারেন -fno-সুন্দর-টেমপ্লেট তাদের নিষ্ক্রিয় করতে।

-ফ্রেপো
লিঙ্কের সময় স্বয়ংক্রিয় টেমপ্লেট ইনস্ট্যান্টেশন সক্ষম করুন। এই বিকল্পটিও বোঝায়
-fno-ইমপ্লিসিট-টেমপ্লেট.

-এফএনও-আরটিটি
দ্বারা ব্যবহারের জন্য ভার্চুয়াল ফাংশন সহ প্রতিটি ক্লাস সম্পর্কে তথ্য তৈরি করা অক্ষম করুন
C++ রান-টাইম টাইপ শনাক্তকরণ বৈশিষ্ট্য (গতিশীল_কাস্ট এবং typeid) যদি আপনি না করেন
ভাষার সেই অংশগুলি ব্যবহার করুন, আপনি এই পতাকা ব্যবহার করে কিছু স্থান বাঁচাতে পারেন। বিঃদ্রঃ
যে ব্যতিক্রম হ্যান্ডলিং একই তথ্য ব্যবহার করে, কিন্তু G++ প্রয়োজন অনুযায়ী এটি তৈরি করে। দ্য
গতিশীল_কাস্ট অপারেটর এখনও কাস্টের জন্য ব্যবহার করা যেতে পারে যেগুলির জন্য রান-টাইম টাইপের প্রয়োজন হয় না
তথ্য, যেমন "অকার্যকর *" বা দ্ব্যর্থহীন বেস ক্লাসে কাস্ট করে।

-ফস্ট্যাটস
সংকলনের শেষে ফ্রন্ট-এন্ড প্রক্রিয়াকরণ সম্পর্কে পরিসংখ্যান নির্গত করুন। এই
তথ্য সাধারণত শুধুমাত্র G++ উন্নয়ন দলের জন্য উপযোগী।

-ট্রিক্ট-এনামস
কম্পাইলারকে অনুমানটি ব্যবহার করে অপ্টিমাইজ করার অনুমতি দিন যে একটি গণিত প্রকারের মান
শুধুমাত্র গণনার একটি মান হতে পারে (যেমন C++ স্ট্যান্ডার্ডে সংজ্ঞায়িত করা হয়েছে;
মূলত, একটি মান যা ন্যূনতম সংখ্যক বিটের প্রয়োজনে উপস্থাপন করা যেতে পারে
সমস্ত গণনাকারীদের প্রতিনিধিত্ব করে)। প্রোগ্রামটি ব্যবহার করলে এই অনুমানটি বৈধ নাও হতে পারে
একটি নির্বিচারে পূর্ণসংখ্যা মানকে গণনাকৃত প্রকারে রূপান্তর করার জন্য একটি কাস্ট।

-ftemplate-ব্যাকট্রেস-সীমা=n
একটি সতর্কতা বা ত্রুটির জন্য সর্বাধিক সংখ্যক টেমপ্লেট ইনস্ট্যান্টিয়েশন নোট সেট করুন
থেকে n. ডিফল্ট মান হল 10।

-ftemplate-গভীরতা=n
টেমপ্লেট ক্লাসের জন্য সর্বাধিক ইনস্ট্যান্টিয়েশন গভীরতা সেট করুন n. উপর একটি সীমা
টেমপ্লেটের সময় অবিরাম পুনরাবৃত্তি সনাক্ত করতে টেমপ্লেট ইনস্ট্যান্টিয়েশন গভীরতা প্রয়োজন
ক্লাস ইনস্ট্যান্টেশন ANSI/ISO C++ কনফর্মিং প্রোগ্রামগুলিকে সর্বোচ্চ নির্ভর করা উচিত নয়
17-এর বেশি গভীরতা (C++1024-এ 11-এ পরিবর্তিত হয়েছে)। ডিফল্ট মান হল 900, হিসাবে
কম্পাইলার কিছু পরিস্থিতিতে 1024 আঘাত করার আগে স্ট্যাক স্পেস ফুরিয়ে যেতে পারে।

-fno-থ্রেডসেফ-স্ট্যাটিক্স
থ্রেডের জন্য C++ ABI-তে নির্দিষ্ট রুটিন ব্যবহার করতে অতিরিক্ত কোড নির্গত করবেন না-
স্থানীয় পরিসংখ্যানের নিরাপদ সূচনা। আপনি কোড আকার কমাতে এই বিকল্প ব্যবহার করতে পারেন
কোডে সামান্য যা থ্রেড-নিরাপদ হতে হবে না।

-ফিউজ-সিএক্সএ-এটেক্সিট
"__cxa_atexit" এর সাথে স্ট্যাটিক স্টোরেজ সময়কাল সহ বস্তুর জন্য ধ্বংসকারী নিবন্ধন করুন
"atexit" ফাংশনের পরিবর্তে ফাংশন। এই বিকল্পটি সম্পূর্ণরূপে জন্য প্রয়োজন
স্ট্যাটিক ডেস্ট্রাক্টরের মান-সম্মত হ্যান্ডলিং, কিন্তু শুধুমাত্র যদি আপনার সি লাইব্রেরি কাজ করে
"__cxa_atexit" সমর্থন করে।

-FNO-USE-CXA-exception-Ptr
"__cxa_get_exception_ptr" রানটাইম রুটিন ব্যবহার করবেন না। এই জন্য
"std::uncaught_exception" ভুল হবে, কিন্তু রানটাইম রুটিন হলে এটি প্রয়োজনীয়
পাওয়া যায় না.

-fvisibility-ইনলাইন-লুকানো
এই সুইচটি ঘোষণা করে যে ব্যবহারকারী ইনলাইনের সাথে পয়েন্টার তুলনা করার চেষ্টা করেন না
ফাংশন বা পদ্ধতি যেখানে দুটি ফাংশনের ঠিকানা ভিন্নভাবে নেওয়া হয়
ভাগ করা বস্তু।

এর প্রভাব হল যে GCC কার্যকরভাবে, ইনলাইন পদ্ধতিগুলিকে চিহ্নিত করতে পারে
"__অ্যাট্রিবিউট__ ((দৃশ্যমানতা ("লুকানো")))" যাতে তারা রপ্তানিতে উপস্থিত না হয়
একটি DSO এর টেবিল এবং DSO-এর মধ্যে ব্যবহার করার সময় PLT নির্দেশের প্রয়োজন হয় না।
এই বিকল্পটি সক্রিয় করা একটি DSO এর লোড এবং লিঙ্কের সময়গুলির উপর নাটকীয় প্রভাব ফেলতে পারে
লাইব্রেরি ভারী হয়ে গেলে ডায়নামিক এক্সপোর্ট টেবিলের আকার ব্যাপকভাবে হ্রাস করে
টেমপ্লেট ব্যবহার।

এই সুইচের আচরণ লুকানো হিসাবে চিহ্নিত করার পদ্ধতির মতো নয়
সরাসরি, কারণ এটি ফাংশন বা কারণের স্থানীয় ভেরিয়েবলকে প্রভাবিত করে না
কম্পাইলারটি অনুমান করার জন্য যে ফাংশনটি শুধুমাত্র একটি ভাগ করা বস্তুতে সংজ্ঞায়িত করা হয়েছে।

আপনি একটি পদ্ধতির প্রভাবকে প্রত্যাখ্যান করতে স্পষ্টভাবে দৃশ্যমানতা হিসেবে চিহ্নিত করতে পারেন
যে পদ্ধতির জন্য সুইচ. উদাহরণস্বরূপ, যদি আপনি একটি পয়েন্টার তুলনা করতে চান
বিশেষ ইনলাইন পদ্ধতি, আপনি এটিকে ডিফল্ট দৃশ্যমানতা হিসাবে চিহ্নিত করতে পারেন। চিহ্নিত করা
সুস্পষ্ট দৃশ্যমানতার সাথে ক্লাস বন্ধ করার কোন প্রভাব নেই।

স্পষ্টভাবে তাত্ক্ষণিক ইনলাইন পদ্ধতিগুলি তাদের সংযোগ হিসাবে এই বিকল্প দ্বারা প্রভাবিত হয় না
অন্যথায় একটি শেয়ার্ড লাইব্রেরি সীমানা অতিক্রম করতে পারে।

-ফিসিবিলিটি-এমএস-কমপ্যাট
এই পতাকাটি GCC-এর C++ লিঙ্কেজ মডেল তৈরি করতে দৃশ্যমানতা সেটিংস ব্যবহার করার চেষ্টা করে
মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিওর সাথে সামঞ্জস্যপূর্ণ।

পতাকা GCC এর লিঙ্কেজ মডেলে এই পরিবর্তনগুলি করে:

1. এটি ডিফল্ট দৃশ্যমানতাকে "লুকানো" তে সেট করে, যেমন -fvisibility= লুকানো.

2. প্রকারগুলি, কিন্তু তাদের সদস্য নয়, ডিফল্টরূপে লুকানো হয় না৷

3. স্পষ্ট দৃশ্যমানতা ছাড়াই প্রকারের জন্য এক সংজ্ঞা নিয়ম শিথিল
স্পেসিফিকেশন যা একাধিক ভাগ করা বস্তুতে সংজ্ঞায়িত করা হয়েছে: সেই ঘোষণাগুলি
যদি এই বিকল্পটি ব্যবহার না করা হয় তখন অনুমতি দেওয়া হয়।

নতুন কোডে এটি ব্যবহার করা ভাল -fvisibility= লুকানো এবং রপ্তানি করা হয় যে ক্লাস
বাহ্যিকভাবে দৃশ্যমান হওয়ার উদ্দেশ্যে। দুর্ভাগ্যবশত কোডের উপর নির্ভর করা সম্ভব,
সম্ভবত ঘটনাক্রমে, ভিজ্যুয়াল স্টুডিও আচরণের উপর।

এই পরিবর্তনের পরিণতিগুলির মধ্যে একই ধরণের স্ট্যাটিক ডেটা সদস্য
একই নামের সাথে কিন্তু বিভিন্ন ভাগ করা বস্তুতে সংজ্ঞায়িত করা হয়, তাই পরিবর্তন হয়
একটি অন্যটি পরিবর্তন করে না; এবং যে নির্দেশক ফাংশন সদস্যদের মধ্যে সংজ্ঞায়িত
বিভিন্ন ভাগ করা বস্তু সমান তুলনা নাও হতে পারে. এই পতাকা দেওয়া হলে, এটি একটি
ভিন্নভাবে একই নামের সাথে প্রকারগুলিকে সংজ্ঞায়িত করার জন্য ODR-এর লঙ্ঘন।

-fno-দুর্বল
দুর্বল প্রতীক সমর্থন ব্যবহার করবেন না, এমনকি যদি এটি লিঙ্কার দ্বারা সরবরাহ করা হয়। ডিফল্টরূপে, G++
দুর্বল প্রতীক ব্যবহার করে যদি তারা উপলব্ধ থাকে। এই বিকল্পটি শুধুমাত্র পরীক্ষার জন্য বিদ্যমান, এবং
শেষ ব্যবহারকারীদের দ্বারা ব্যবহার করা উচিত নয়; এটি নিকৃষ্ট কোডের ফলাফল এবং কোন সুবিধা নেই।
এই বিকল্পটি G++ এর ভবিষ্যতের রিলিজে সরানো হতে পারে।

-নোস্টডিঙ্ক++
C++ এর জন্য নির্দিষ্ট স্ট্যান্ডার্ড ডিরেক্টরিগুলিতে হেডার ফাইলগুলি অনুসন্ধান করবেন না, তবে করুন
এখনও অন্যান্য স্ট্যান্ডার্ড ডিরেক্টরি অনুসন্ধান করুন। (এই বিকল্পটি নির্মাণ করার সময় ব্যবহার করা হয়
C++ লাইব্রেরি।)

উপরন্তু, এই অপ্টিমাইজেশান, সতর্কতা, এবং কোড জেনারেশন বিকল্পগুলির শুধুমাত্র অর্থ আছে
C++ প্রোগ্রামের জন্য:

-fno-ডিফল্ট-ইনলাইন
অনুমান করো না সঙ্গতিপূর্ণভাবে একটি শ্রেণীর সুযোগের ভিতরে সংজ্ঞায়িত ফাংশনের জন্য।
মনে রাখবেন যে এই ফাংশনগুলির ইনলাইন ফাংশনের মতো লিঙ্কেজ রয়েছে; তারা শুধু না
ডিফল্টরূপে ইনলাইন

-ওয়াবি (সি, অবজেক্টিভ-সি, সি++ এবং অবজেক্টিভ-সি++ শুধুমাত্র)
সতর্ক করুন যখন G++ এমন কোড তৈরি করে যা সম্ভবত ভেন্ডর-নিরপেক্ষের সাথে সামঞ্জস্যপূর্ণ নয়
C++ ABI। যদিও এ ধরনের সব ক্ষেত্রে সতর্ক করার চেষ্টা করা হয়েছে, আছে
সম্ভবত এমন কিছু ক্ষেত্রে যা সম্পর্কে সতর্ক করা হয়নি, যদিও G++ তৈরি হচ্ছে
বেমানান কোড। এমন কিছু ক্ষেত্রেও হতে পারে যেখানে সতর্কতা নির্গত হয় যদিও
যে কোড তৈরি করা হয় তা সামঞ্জস্যপূর্ণ।

আপনি যদি উদ্বিগ্ন হন তবে এই সতর্কতাগুলি এড়াতে আপনার কোডটি পুনরায় লিখতে হবে
সত্য যে G++ দ্বারা উত্পন্ন কোড বাইনারি দ্বারা উত্পন্ন কোডের সাথে সামঞ্জস্যপূর্ণ নাও হতে পারে
অন্যান্য কম্পাইলার।

পরিচিত অসঙ্গতি মধ্যে -ফ্যাবি-সংস্করণ=2 (ডিফল্ট) অন্তর্ভুক্ত:

· রেফারেন্স টাইপের একটি নন-টাইপ টেমপ্লেট প্যারামিটার সহ একটি টেমপ্লেট ম্যাঙ্গল করা হয়
ভুলভাবে:

বাহ্যিক int n;
টেমপ্লেট struct S {};
void n (S ) {2}

এই স্থির করা হয় -ফ্যাবি-সংস্করণ=3.

· "__অ্যাট্রিবিউট ((ভেক্টর_সাইজ))" ব্যবহার করে ঘোষিত SIMD ভেক্টরের প্রকারগুলিকে একটিতে বিভক্ত করা হয়
অ-মানক উপায় যা ভেক্টর গ্রহণকারী ফাংশনগুলির ওভারলোডিংয়ের অনুমতি দেয় না
বিভিন্ন আকারের।

ম্যাঙ্গলিং পরিবর্তন করা হয় -ফ্যাবি-সংস্করণ=4.

পরিচিত অসঙ্গতি মধ্যে -ফ্যাবি-সংস্করণ=1 অন্তর্ভুক্ত:

· বিট-ক্ষেত্রের জন্য টেল-প্যাডিংয়ের ভুল হ্যান্ডলিং। G++ ডেটা প্যাক করার চেষ্টা করতে পারে
একটি বেস ক্লাস হিসাবে একই বাইট মধ্যে. উদাহরণ স্বরূপ:

struct A { ভার্চুয়াল শূন্যতা f(); int f1 : 1; };
struct B : পাবলিক A { int f2 : 1; };

এই ক্ষেত্রে, G++ "B::f2" কে "A::f1" এর মতো একই বাইটে রাখে; অন্যান্য কম্পাইলার করে
না. আপনি স্পষ্টভাবে "A" প্যাডিং করে এই সমস্যাটি এড়াতে পারেন যাতে এর আকার a হয়
আপনার প্ল্যাটফর্মে বাইট আকারের একাধিক; যা G++ এবং অন্যান্য কম্পাইলারকে ঘটায়
একইভাবে "B" লেখেন।

· ভার্চুয়াল বেসের জন্য টেল-প্যাডিংয়ের ভুল হ্যান্ডলিং। G++ লেজ ব্যবহার করে না
ভার্চুয়াল ঘাঁটি স্থাপন করার সময় প্যাডিং। উদাহরণ স্বরূপ:

struct A { ভার্চুয়াল শূন্যতা f(); char c1; };
struct B { B(); char c2; };
struct C : পাবলিক A, পাবলিক ভার্চুয়াল B {};

এই ক্ষেত্রে, G++ "A" এর টেল-প্যাডিং-এ "B" রাখে না; অন্যান্য
কম্পাইলার করে। আপনি স্পষ্টভাবে "A" প্যাডিং করে এই সমস্যাটি এড়াতে পারেন যাতে এটি
আকার হল এর সারিবদ্ধতার একাধিক (ভার্চুয়াল বেস ক্লাস উপেক্ষা করে); যে কারণ
G++ এবং অন্যান্য কম্পাইলাররা একইভাবে "C" লেখেন।

· বিট-ক্ষেত্রগুলির ভুল হ্যান্ডলিং তাদের চেয়ে বেশি ঘোষিত প্রস্থ সহ
অন্তর্নিহিত প্রকার, যখন বিট-ক্ষেত্রগুলি একটি ইউনিয়নে উপস্থিত হয়। উদাহরণ স্বরূপ:

ইউনিয়ন U { int i : 4096; };

ধরে নিচ্ছি যে একটি "int" এর 4096 বিট নেই, G++ এর দ্বারা ইউনিয়নটিকে খুব ছোট করে তোলে
একটি "int" এ বিটের সংখ্যা।

· খালি ক্লাস ভুল অফসেটে স্থাপন করা যেতে পারে। উদাহরণ স্বরূপ:

struct A {};

গঠন বি {
ক ক;
ভার্চুয়াল শূন্যতা f ();
};

struct C : পাবলিক B, পাবলিক A {};

G++ একটি অশূন্য অফসেটে "C" এর "A" বেস ক্লাস রাখে; এটা স্থাপন করা উচিত
অফসেট শূন্য। G++ ভুলভাবে বিশ্বাস করে যে "B" এর "A" ডেটা সদস্য ইতিমধ্যেই রয়েছে৷
অফসেট শূন্য এ

· টেমপ্লেট ফাংশনগুলির নাম যার প্রকারে "টাইপনাম" বা টেমপ্লেট টেমপ্লেট জড়িত
পরামিতি ভুলভাবে ম্যাঙ্গল করা যেতে পারে।

টেমপ্লেট
void f(টাইপনাম Q::X) {}

টেমপ্লেট ক্লাস Q>
void f(টাইপনাম Q ::এক্স) {}

এই টেমপ্লেটগুলির ইনস্ট্যান্টেশনগুলি ভুলভাবে ম্যাংগল করা হতে পারে৷

এটি psABI-সম্পর্কিত পরিবর্তন সম্পর্কেও সতর্ক করে। পরিচিত psABI এই সময়ে পরিবর্তিত হয়
অন্তর্ভুক্ত:

· SysV/x86-64-এর জন্য, "লং ডবল" সদস্য সহ ইউনিয়নগুলি মেমরি হিসাবে পাস করা হয়
psABI-তে নির্দিষ্ট করা হয়েছে। উদাহরণ স্বরূপ:

ইউনিয়ন ইউ {
দীর্ঘ ডবল ld;
int i;
};

"ইউনিয়ন ইউ" সবসময় স্মৃতিতে পাস করা হয়।

-Wctor-dtor-গোপনীয়তা (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
যখন একটি ক্লাস অব্যবহারযোগ্য মনে হয় তখন সতর্ক করুন কারণ এতে সমস্ত কনস্ট্রাক্টর বা ধ্বংসকারী
ক্লাসটি ব্যক্তিগত, এবং এতে বন্ধু বা পাবলিক স্ট্যাটিক সদস্য ফাংশন নেই।
এছাড়াও সতর্ক করুন যদি কোনো অ-ব্যক্তিগত পদ্ধতি না থাকে এবং অন্তত একজন ব্যক্তিগত সদস্য থাকে
ফাংশন যা একটি কনস্ট্রাক্টর বা ধ্বংসকারী নয়।

-Wdelete-non-ভার্চুয়াল-ডোর (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
সতর্ক করুন যখন মুছে ফেলা ভার্চুয়াল ফাংশন আছে এমন একটি ক্লাসের একটি উদাহরণ ধ্বংস করতে ব্যবহৃত হয়
এবং অ-ভার্চুয়াল ধ্বংসকারী। একটি প্রাপ্ত ক্লাসের একটি উদাহরণ মুছে ফেলা অনিরাপদ
যদি বেস ক্লাসের ভার্চুয়াল না থাকে তবে একটি বেস ক্লাসে একটি পয়েন্টারের মাধ্যমে
ধ্বংসকারী এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

-লিটারাল-প্রত্যয় (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
সতর্ক করুন যখন একটি স্ট্রিং বা অক্ষর আক্ষরিক একটি ud-প্রত্যয় দ্বারা অনুসরণ করা হয় যা না
একটি আন্ডারস্কোর দিয়ে শুরু করুন। একটি কনফর্মিং এক্সটেনশন হিসাবে, GCC এই ধরনের প্রত্যয়গুলিকে বিবেচনা করে
কোডের সাথে পিছনের সামঞ্জস্য বজায় রাখার জন্য পৃথক প্রিপ্রসেসিং টোকেন
যেটি " থেকে ফরম্যাটিং ম্যাক্রো ব্যবহার করে ". উদাহরণ স্বরূপ:

# __STDC_FORMAT_MACROS সংজ্ঞায়িত করুন
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত

int প্রধান () {
int64_t i64 = 123;
printf("My int64: %"PRId64"\n", i64);
}

এই ক্ষেত্রে, "PRId64" একটি পৃথক প্রিপ্রসেসিং টোকেন হিসাবে বিবেচিত হয়৷

এই সতর্কতা ডিফল্টরূপে সক্রিয় করা হয়.

- সংকীর্ণ (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
সতর্ক করুন যখন C++11 দ্বারা নিষিদ্ধ একটি সংকীর্ণ রূপান্তর এর মধ্যে ঘটে { }, উদাহরণস্বরূপ

int i = { 2.2 }; // ত্রুটি: দ্বিগুণ থেকে int পর্যন্ত সংকীর্ণ

এই পতাকা অন্তর্ভুক্ত করা হয় -ওয়াল এবং -Wc++11-কম্প্যাট.

সঙ্গে -std=c++11, -Wno-সংকীর্ণ মান দ্বারা প্রয়োজনীয় ডায়গনিস্টিক দমন করে।
মনে রাখবেন যে এটি সুগঠিত কোডের অর্থকে প্রভাবিত করে না; সংকীর্ণ রূপান্তর
SFINAE প্রসঙ্গে এখনও অসুস্থ বলে বিবেচিত হয়।

- ব্যতীত (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
একটি ফাংশনে কল করার কারণে যখন একটি noexcept-এক্সপ্রেশন মিথ্যা মূল্যায়ন করে তখন সতর্ক করুন৷
যার একটি নন-থ্রোয়িং এক্সেপশন স্পেসিফিকেশন নেই (যেমন নিক্ষেপ() or ছাড়া)
কিন্তু কম্পাইলার দ্বারা পরিচিত একটি ব্যতিক্রম নিক্ষেপ না.

-নোন-ভার্চুয়াল-ডোর (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
যখন একটি ক্লাসে ভার্চুয়াল ফাংশন এবং একটি অ্যাক্সেসযোগ্য নন-ভার্চুয়াল ধ্বংসকারী থাকে তখন সতর্ক করুন
কোন ক্ষেত্রে এটি সম্ভব কিন্তু অনিরাপদ একটি প্রাপ্ত ক্লাসের একটি উদাহরণ মুছে ফেলা
বেস ক্লাস একটি পয়েন্টার. এই সতর্কতা এছাড়াও সক্রিয় যদি -Weffc ++ উল্লিখিত আছে.

-নিয়ন্ত্রণ (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
কোডে প্রদত্ত সদস্য ইনিশিয়ালাইজারদের অর্ডারের সাথে মেলে না হলে সতর্ক করুন
যেখানে তাদের মৃত্যুদন্ড কার্যকর করতে হবে। এই ক্ষেত্রে:

কাঠামো a {
int i;
int j;
A (): j (0), i (1) {}
};

কম্পাইলার সদস্য ইনিশিয়ালাইজারের জন্য পুনর্বিন্যাস করে i এবং j ঘোষণার সাথে মেলে
সদস্যদের আদেশ, যে প্রভাব একটি সতর্কতা নির্গত. এই সতর্কতা দ্বারা সক্রিয় করা হয়
-ওয়াল.

-সাংখ্যিক-আক্ষরিক (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
কাল্পনিক, স্থির-বিন্দু, বা মেশিন-সংজ্ঞায়িত আক্ষরিক সংখ্যা প্রত্যয়গুলিকে GNU হিসাবে গ্রহণ করুন
এক্সটেনশন যখন এই বিকল্পটি বন্ধ করা হয় তখন এই প্রত্যয়গুলিকে C++11 ব্যবহারকারী হিসাবে বিবেচনা করা হয়-
সংজ্ঞায়িত আক্ষরিক সংখ্যাসূচক প্রত্যয়। এটি সমস্ত প্রাক-C++11 উপভাষার জন্য ডিফল্টরূপে চালু থাকে
এবং সমস্ত GNU উপভাষা: -std=c++98, -std = gnu ++ 98, -std = gnu ++ 11, -std=gnu++1y. এই
বিকল্প ISO C++11 এর জন্য ডিফল্টরূপে বন্ধ থাকে (-std=c++11, ...)।

অনুসরণ -ডব্লিউ... বিকল্প দ্বারা প্রভাবিত হয় না -ওয়াল.

-Weffc ++ (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
স্কট মেয়ার্সের নিম্নলিখিত শৈলী নির্দেশিকা লঙ্ঘন সম্পর্কে সতর্ক করুন কার্যকর
C++, দ্বিতীয় সংস্করণ বই:

· আইটেম 11: ক্লাসের জন্য একটি কপি কনস্ট্রাক্টর এবং একটি অ্যাসাইনমেন্ট অপারেটর সংজ্ঞায়িত করুন
গতিশীলভাবে বরাদ্দ মেমরি।

· আইটেম 12: কনস্ট্রাক্টরগুলিতে অ্যাসাইনমেন্টের জন্য প্রারম্ভিকতা পছন্দ করুন।

· আইটেম 14: বেস ক্লাসে ধ্বংসকারীকে ভার্চুয়াল করুন।

· আইটেম 15: "অপারেটর=" কে *এর একটি রেফারেন্স ফেরত দিন।

আইটেম 23: যখন আপনাকে একটি বস্তু ফেরত দিতে হবে তখন একটি রেফারেন্স ফেরত দেওয়ার চেষ্টা করবেন না।

এছাড়াও স্কট মেয়ার্সের নিম্নলিখিত শৈলী নির্দেশিকা লঙ্ঘন সম্পর্কে সতর্ক করুন অধিক
কার্যকর সি ++ বই:

· আইটেম 6: বৃদ্ধি এবং হ্রাসের উপসর্গ এবং পোস্টফিক্স ফর্মের মধ্যে পার্থক্য করুন
অপারেটর।

আইটেম 7: কখনই "&&", "||", বা "," ওভারলোড করবেন না।

এই বিকল্পটি নির্বাচন করার সময়, সচেতন থাকুন যে স্ট্যান্ডার্ড লাইব্রেরি শিরোনামগুলি সব মেনে চলে না
এই নির্দেশিকাগুলির; ব্যবহার , grep -v সেই সতর্কতাগুলি ফিল্টার করতে।

-Wstrict-null-sentinel (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
সেন্টিনেল হিসাবে একটি অকাস্টেড "NULL" ব্যবহার সম্পর্কে সতর্ক করুন৷ শুধুমাত্র GCC দিয়ে কম্পাইল করার সময়
এটি একটি বৈধ সেন্টিনেল, কারণ "NULL" কে "__null" দ্বারা সংজ্ঞায়িত করা হয়েছে। যদিও এটি একটি শূন্য
একটি নাল পয়েন্টারের পরিবর্তে পয়েন্টার ধ্রুবক, এটি একই আকারের নিশ্চিত
একটি নির্দেশক হিসাবে। কিন্তু এই ব্যবহার বিভিন্ন কম্পাইলার জুড়ে বহনযোগ্য নয়।

-Wno-নন-টেমপ্লেট-বন্ধু (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
টেমপ্লেটের মধ্যে নন-টেমপ্লেটাইজড ফ্রেন্ড ফাংশন ঘোষণা করা হলে সতর্কতা অক্ষম করুন।
G++ এ স্পষ্ট টেমপ্লেট স্পেসিফিকেশন সমর্থনের আবির্ভাবের পর থেকে, যদি এর নাম
বন্ধু একটি অযোগ্য-আইডি (যেমন, বন্ধু foo (int)), C++ ভাষার স্পেসিফিকেশন
দাবি করে যে বন্ধু একটি সাধারণ, ননটেমপ্লেট ফাংশন ঘোষণা বা সংজ্ঞায়িত করে। (অধ্যায়
14.5.3)। G++ স্পষ্ট স্পেসিফিকেশন প্রয়োগ করার আগে, অযোগ্য-আইডি হতে পারে
একটি টেমপ্লেটাইজড ফাংশনের একটি বিশেষ বিশেষীকরণ হিসাবে ব্যাখ্যা করা হয়। কারণ এই
নন-কনফর্মিং আচরণ G++ এর জন্য আর ডিফল্ট আচরণ নয়,
-নন-টেমপ্লেট-বন্ধু কম্পাইলারকে সম্ভাব্য সমস্যার জন্য বিদ্যমান কোড পরীক্ষা করার অনুমতি দেয়
দাগ এবং ডিফল্টরূপে চালু আছে। এই নতুন কম্পাইলার আচরণ বন্ধ করা যেতে পারে সঙ্গে
-Wno-নন-টেমপ্লেট-বন্ধু, যা কনফরম্যান্ট কম্পাইলার কোড রাখে কিন্তু নিষ্ক্রিয় করে
সহায়ক সতর্কতা।

-ওল্ড-স্টাইল-কাস্ট (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
যদি একটি C++ প্রোগ্রামের মধ্যে একটি পুরানো-শৈলী (সি-স্টাইল) অ-অকার্যকর টাইপের কাস্ট ব্যবহার করা হয় তবে সতর্ক করুন।
নতুন শৈলীর কাস্টগুলি (গতিশীল_কাস্ট, স্ট্যাটিক_কাস্ট, পুনরায় ব্যাখ্যা_কাস্ট, এবং কনস্ট_কাস্ট) হয়
অনিচ্ছাকৃত প্রভাবের জন্য কম ঝুঁকিপূর্ণ এবং অনুসন্ধান করা অনেক সহজ।

-ওভারলোডেড-ভার্চুয়াল (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
সতর্ক করুন যখন একটি ফাংশন ঘোষণা একটি বেস ক্লাস থেকে ভার্চুয়াল ফাংশন লুকিয়ে রাখে। জন্য
উদাহরণ, মধ্যে:

কাঠামো a {
ভার্চুয়াল অকার্যকর f();
};

struct B: পাবলিক A {
অকার্যকর f (int);
};

"f" এর "A" শ্রেণীর সংস্করণ "B" তে লুকানো আছে, এবং কোড যেমন:

B*b;
b->f();

কম্পাইল করতে ব্যর্থ হয়।

-Wno-pmf-রূপান্তর (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
একটি আবদ্ধ পয়েন্টারকে সদস্য ফাংশনে একটি প্লেনে রূপান্তর করার জন্য ডায়াগনস্টিক অক্ষম করুন৷
পয়েন্টার

-Wsign-promo (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
ওভারলোড রেজোলিউশন যখন স্বাক্ষরবিহীন বা গণনাকৃত প্রকার থেকে একটি প্রচার বেছে নেয় তখন সতর্ক করুন৷
একটি স্বাক্ষরিত প্রকার, একই আকারের একটি স্বাক্ষরবিহীন প্রকারে রূপান্তরের উপর। আগে
G++ এর সংস্করণগুলি স্বাক্ষরবিহীনতা রক্ষা করার চেষ্টা করেছে, কিন্তু মান বর্তমানকে বাধ্যতামূলক করে
আচরণ।

অপশন সমূহ নিয়ামক উদ্দেশ্য গ এবং উদ্দেশ্য-C++ উপভাষা
(দ্রষ্টব্য: এই ম্যানুয়ালটি উদ্দেশ্য-সি এবং উদ্দেশ্য-সি++ ভাষাগুলি বর্ণনা করে না
নিজেদের.

এই বিভাগে কমান্ড-লাইন বিকল্পগুলি বর্ণনা করে যা শুধুমাত্র উদ্দেশ্য-সি-এর জন্য অর্থপূর্ণ
এবং উদ্দেশ্য-C++ প্রোগ্রাম। এছাড়াও আপনি বেশিরভাগ ভাষা-স্বাধীন GNU ব্যবহার করতে পারেন
কম্পাইলার অপশন। উদাহরণস্বরূপ, আপনি এইরকম একটি ফাইল "some_class.m" কম্পাইল করতে পারেন:

gcc -g -fgnu-রানটাইম -O -c some_class.m

এই উদাহরণে, -fgnu-রানটাইম একটি বিকল্প শুধুমাত্র উদ্দেশ্য-C এবং উদ্দেশ্য-C++ এর জন্য
প্রোগ্রাম; আপনি GCC দ্বারা সমর্থিত যেকোনো ভাষার সাথে অন্যান্য বিকল্পগুলি ব্যবহার করতে পারেন।

লক্ষ্য করুন যেহেতু অবজেক্টিভ-সি হল সি ভাষার একটি এক্সটেনশন, অবজেক্টিভ-সি সংকলন
সি ফ্রন্ট-এন্ডের জন্য নির্দিষ্ট বিকল্পগুলিও ব্যবহার করতে পারে (যেমন, - ঐতিহ্যগত)। একইভাবে,
উদ্দেশ্য-C++ সংকলন C++-নির্দিষ্ট বিকল্প ব্যবহার করতে পারে (যেমন, -ওয়াবি).

এখানে বিকল্পগুলির একটি তালিকা রয়েছে যা কেবল অবজেক্টিভ-সি এবং অবজেক্টিভ-সি++ কম্পাইল করার জন্য
প্রোগ্রাম:

-fconstant-স্ট্রিং-শ্রেণী=শ্রেণির নাম
ব্যবহার শ্রেণির নাম প্রতিটি আক্ষরিক স্ট্রিং জন্য তাত্ক্ষণিক ক্লাসের নাম হিসাবে
সিনট্যাক্স "@"..."" দিয়ে নির্দিষ্ট করা হয়েছে। ডিফল্ট ক্লাসের নাম "NXConstantString" যদি
GNU রানটাইম ব্যবহার করা হচ্ছে, এবং "NSConstantString" যদি পরবর্তী রানটাইম হচ্ছে
ব্যবহৃত (নীচে দেখুন)। দ্য -fconstant-ctrings বিকল্প, যদি উপস্থিতও থাকে, ওভাররাইড করে
-fconstant-স্ট্রিং-শ্রেণী "@"..."" আক্ষরিকগুলিকে ধ্রুবক হিসাবে সেট করুন এবং কারণ করুন৷
কোরফাউন্ডেশন স্ট্রিং।

-fgnu-রানটাইম
স্ট্যান্ডার্ড GNU অবজেক্টিভ-সি রানটাইমের সাথে সামঞ্জস্যপূর্ণ অবজেক্ট কোড তৈরি করুন। এই
অধিকাংশ ধরনের সিস্টেমের জন্য ডিফল্ট।

-পরবর্তী-রানটাইম
নেক্সট রানটাইমের সাথে সামঞ্জস্যপূর্ণ আউটপুট তৈরি করুন। এটি NeXT-ভিত্তিক ডিফল্ট
ডারউইন এবং ম্যাক ওএস এক্স সহ সিস্টেম। ম্যাক্রো "__NEXT_RUNTIME__" পূর্বনির্ধারিত যদি
(এবং শুধুমাত্র যদি) এই বিকল্পটি ব্যবহার করা হয়।

-fno-nil-রিসিভার
অনুমান করুন যে এতে সমস্ত উদ্দেশ্য-সি বার্তা প্রেরণ ("[রিসিভার বার্তা:আর্গ]")
অনুবাদ ইউনিট নিশ্চিত করুন যে রিসিভার "শূন্য" নয়। এই আরো জন্য অনুমতি দেয়
রানটাইমে দক্ষ এন্ট্রি পয়েন্ট ব্যবহার করা হবে। এই বিকল্প শুধুমাত্র উপলব্ধ
নেক্সট রানটাইম এবং এবিআই সংস্করণ 0 বা 1 এর সাথে সংযুক্ত।

-ফবজেসি-এবি-সংস্করণ=n
সংস্করণ ব্যবহার করুন n নির্বাচিত রানটাইমের জন্য উদ্দেশ্য-সি ABI-এর। এই বিকল্প হয়
বর্তমানে শুধুমাত্র পরবর্তী রানটাইমের জন্য সমর্থিত। সেক্ষেত্রে ভার্সন 0 হল
ঐতিহ্যগত (32-বিট) ABI বৈশিষ্ট্য এবং অন্যান্য উদ্দেশ্য-C 2.0 এর জন্য সমর্থন ছাড়াই
সংযোজন সংস্করণ 1 হল ঐতিহ্যগত (32-বিট) ABI যা বৈশিষ্ট্যগুলির জন্য সমর্থন এবং
অন্যান্য উদ্দেশ্য-সি 2.0 সংযোজন। সংস্করণ 2 হল আধুনিক (64-বিট) ABI। যদি কিছুই না হয়
নির্দিষ্ট করা হয়েছে, 0-বিট টার্গেট মেশিনে ডিফল্ট সংস্করণ 32 এবং 2-বিটের সংস্করণ 64
লক্ষ্য মেশিন।

-fobjc-কল-cxx-cdtors
প্রতিটি অবজেক্টিভ-সি ক্লাসের জন্য, এর কোনো ইনস্ট্যান্স ভেরিয়েবল একটি C++ অবজেক্ট কিনা তা পরীক্ষা করে দেখুন
একটি নন-তুচ্ছ ডিফল্ট কনস্ট্রাক্টর সহ। যদি তাই হয়, একটি বিশেষ "- (আইডি) সংশ্লেষণ করুন
.cxx_construct" ইনস্ট্যান্স পদ্ধতি যা যেকোনও নন-তুচ্ছ ডিফল্ট কনস্ট্রাক্টর চালায়
যেমন উদাহরণ ভেরিয়েবল, ক্রমানুসারে, এবং তারপর "self" ফেরত দিন। একইভাবে, আছে কিনা তা পরীক্ষা করুন
ইনস্ট্যান্স ভেরিয়েবল হল একটি C++ অবজেক্ট যার একটি নন-তুচ্ছ ধ্বংসকারী, এবং যদি তাই হয়, সংশ্লেষিত করুন
একটি বিশেষ "- (অকার্যকর) .cxx_destruct" পদ্ধতি যা এই জাতীয় সমস্ত ডিফল্ট ধ্বংসকারী চালায়,
বিপরীত ক্রম.

"- (id) .cxx_construct" এবং "- (void) .cxx_destruct" পদ্ধতিগুলি শুধুমাত্র এইভাবে তৈরি করা হয়েছে
বর্তমান অবজেক্টিভ-সি ক্লাসে ঘোষিত ইনস্ট্যান্স ভেরিয়েবলের উপর কাজ করে, এবং সেগুলি নয়
সুপারক্লাস থেকে উত্তরাধিকারসূত্রে প্রাপ্ত। এটি অবজেক্টিভ-সি রানটাইমের দায়িত্ব
একটি বস্তুর উত্তরাধিকার অনুক্রমের মধ্যে এই ধরনের সমস্ত পদ্ধতি আহ্বান করুন। "- (আইডি)
.cxx_construct" পদ্ধতিগুলি একটি নতুন অবজেক্টের পরপরই রানটাইম দ্বারা আহ্বান করা হয়
উদাহরণ বরাদ্দ করা হয়; "- (অকার্যকর) .cxx_destruct" পদ্ধতিগুলি অবিলম্বে চালু করা হয়৷
রানটাইম একটি অবজেক্ট ইনস্ট্যান্স ডিলোকেট করার আগে।

এই লেখা পর্যন্ত, Mac OS X 10.4 এবং পরবর্তীতে শুধুমাত্র NeXT রানটাইমের জন্য সমর্থন রয়েছে
"- (id) .cxx_construct" এবং "- (void) .cxx_destruct" পদ্ধতি ব্যবহার করা হচ্ছে।

-fobjc-সরাসরি-প্রেরণ
বার্তা প্রেরণকারীতে দ্রুত লাফ দেওয়ার অনুমতি দিন। ডারউইনের উপর এই মাধ্যমে সম্পন্ন করা হয়
com পৃষ্ঠা।

-fobjc- ব্যতিক্রম
অবজেক্টিভ-সি-তে কাঠামোগত ব্যতিক্রম পরিচালনার জন্য সিনট্যাকটিক সমর্থন সক্ষম করুন, এর মতো
C++ এবং জাভা কি অফার করে। উদ্দেশ্য-সি ব্যবহার করার জন্য এই বিকল্পটি প্রয়োজন
@try, @throw, @catch, @finally এবং @synchronized কীওয়ার্ড। এই বিকল্প উপলব্ধ
GNU রানটাইম এবং পরবর্তী রানটাইম উভয়ের সাথে (কিন্তু এর সাথে একত্রে উপলব্ধ নয়
Mac OS X 10.2 এবং পূর্ববর্তীতে পরবর্তী রানটাইম)।

-ফবজেসি-জিসি
অবজেক্টিভ-সি এবং অবজেক্টিভ-সি++ প্রোগ্রামে আবর্জনা সংগ্রহ (জিসি) সক্ষম করুন। এই বিকল্প
শুধুমাত্র পরবর্তী রানটাইমের সাথে উপলব্ধ; GNU রানটাইমে আলাদা আবর্জনা রয়েছে
সংগ্রহ বাস্তবায়ন যে বিশেষ কম্পাইলার পতাকা প্রয়োজন হয় না।

-ফবজেসি-নিলচেক
ABI-এর সংস্করণ 2 সহ পরবর্তী রানটাইমের জন্য, পদ্ধতিতে একটি শূন্য রিসিভারের জন্য পরীক্ষা করুন
প্রকৃত পদ্ধতি কল করার আগে invocations. এটি ডিফল্ট এবং হতে পারে
ব্যবহার করে অক্ষম -fno-objc-nilcheck. ক্লাস পদ্ধতি এবং সুপার কল চেক করা হয় না
এইভাবে শূন্যের জন্য এই পতাকাটি সেট করা যাই হোক না কেন। বর্তমানে এই পতাকা আছে
যখন GNU রানটাইম, বা নেক্সট রানটাইম ABI-এর একটি পুরানো সংস্করণ ব্যবহার করা হয় তখন কিছুই নেই।

-FOBJC-STD = OBJC1
জিসিসি 1.0 দ্বারা স্বীকৃত ভাষা অবজেক্টিভ-সি 4.0 এর ভাষা সিনট্যাক্সের সাথে সঙ্গতিপূর্ণ।
এটি শুধুমাত্র C/C++ ভাষায় উদ্দেশ্য-C সংযোজনকে প্রভাবিত করে; এটা প্রভাবিত করে না
C/C++ মানগুলির সাথে সামঞ্জস্য, যা পৃথক C/C++ উপভাষা দ্বারা নিয়ন্ত্রিত হয়
বিকল্প পতাকা। যখন এই বিকল্পটি অবজেক্টিভ-সি বা অবজেক্টিভ-সি++ ব্যবহার করা হয়
কম্পাইলার, জিসিসি 4.0 দ্বারা স্বীকৃত নয় এমন যেকোন অবজেক্টিভ-সি সিনট্যাক্স প্রত্যাখ্যান করা হয়। এই
আপনার অবজেক্টিভ-সি কোডের সাথে কম্পাইল করা যায় কিনা তা নিশ্চিত করতে হলে এটি কার্যকর
GCC এর পুরানো সংস্করণ।

-freplace-objc-ক্লাস
একটি বিশেষ মার্কার নির্দেশ নির্গত করুন ld(1) ফলে অবজেক্টে স্থিরভাবে লিঙ্ক না করা
ফাইল, এবং অনুমতি দিন ডাইল্ড(1) পরিবর্তে রান টাইমে এটি লোড করতে। এই ব্যবহার করা হয়
ফিক্স-এন্ড-কন্টিনিউ ডিবাগিং মোডের সাথে একযোগে, যেখানে অবজেক্ট ফাইল ইন
প্রশ্নটি পুনরায় সংকলিত এবং গতিশীলভাবে প্রোগ্রামের মধ্যে পুনরায় লোড করা যেতে পারে
সঞ্চালন, প্রোগ্রাম নিজেই পুনরায় আরম্ভ করার প্রয়োজন ছাড়া। বর্তমানে, ফিক্স এবং-
Continue কার্যকারিতা শুধুমাত্র Mac এ NeXT রানটাইমের সাথে একযোগে উপলব্ধ
OS X 10.3 এবং পরবর্তী।

-fzero-লিংক
NeXT রানটাইমের জন্য কম্পাইল করার সময়, কম্পাইলার সাধারণত কল প্রতিস্থাপন করে
"objc_getClass("...")" (যখন কম্পাইলের সময় ক্লাসের নাম জানা যায়) সাথে
স্ট্যাটিক ক্লাস রেফারেন্স যা লোডের সময় শুরু হয়, যা রান-টাইম উন্নত করে
কর্মক্ষমতা. উল্লেখ করা -fzero-লিংক পতাকা এই আচরণ এবং কারণ দমন
ধরে রাখার জন্য "objc_getClass("...")" এ কল করে। এটি জিরো-লিঙ্কে দরকারী
ডিবাগিং মোড, যেহেতু এটি পৃথক শ্রেণী বাস্তবায়নের জন্য সংশোধন করার অনুমতি দেয়
প্রোগ্রাম সম্পাদনের সময়। GNU রানটাইম বর্তমানে সবসময় কল ধরে রাখে
"objc_get_class("...")" কমান্ড-লাইন বিকল্প নির্বিশেষে।

-জেন-ডিক্লেস
সোর্স ফাইলে দেখা সমস্ত ক্লাসের ইন্টারফেস ডিক্লেয়ারেশন নামের একটি ফাইলে ডাম্প করুন
surcename.decl.

-Wassign-Intercept (শুধুমাত্র উদ্দেশ্য-সি এবং উদ্দেশ্য-সি++)
যখনই কোনো অবজেক্টিভ-সি অ্যাসাইনমেন্ট আবর্জনা সংগ্রহকারীর দ্বারা বাধাপ্রাপ্ত হয় তখন সতর্ক করুন।

-উনো-প্রটোকল (শুধুমাত্র উদ্দেশ্য-সি এবং উদ্দেশ্য-সি++)
যদি একটি ক্লাস একটি প্রোটোকল বাস্তবায়নের জন্য ঘোষণা করা হয়, প্রতিটি পদ্ধতির জন্য একটি সতর্কতা জারি করা হয়
প্রোটোকলের মধ্যে যা ক্লাস দ্বারা বাস্তবায়িত হয় না। ডিফল্ট আচরণ করা হয়
ক্লাসে স্পষ্টভাবে প্রয়োগ করা হয়নি এমন প্রতিটি পদ্ধতির জন্য একটি সতর্কতা জারি করুন, এমনকি যদি a
পদ্ধতি বাস্তবায়ন সুপারক্লাস থেকে উত্তরাধিকারসূত্রে প্রাপ্ত। আপনি যদি ব্যবহার করেন -উনো-প্রটোকল
বিকল্প, তারপর সুপারক্লাস থেকে উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতিগুলিকে বাস্তবায়িত বলে মনে করা হয়,
এবং তাদের জন্য কোন সতর্কতা জারি করা হয় না।

-সেলেক্টর (শুধুমাত্র উদ্দেশ্য-সি এবং উদ্দেশ্য-সি++)
একই নির্বাচকের জন্য বিভিন্ন ধরণের একাধিক পদ্ধতির সময় পাওয়া গেলে সতর্ক করুন৷
সংকলন চেক শেষ পর্যায়ে পদ্ধতি তালিকা সঞ্চালিত হয়
সংকলন অতিরিক্তভাবে, a তে উপস্থিত প্রতিটি নির্বাচকের জন্য একটি চেক করা হয়
"@নির্বাচক(...)" অভিব্যক্তি, এবং সেই নির্বাচকের জন্য একটি সংশ্লিষ্ট পদ্ধতি হয়েছে
সংকলনের সময় পাওয়া যায়। কারণ এই চেকগুলি শুধুমাত্র শেষে মেথড টেবিল স্ক্যান করে
সংকলনের, এই সতর্কতাগুলি উত্পাদিত হয় না যদি সংকলনের চূড়ান্ত পর্যায়ে থাকে
পৌঁছানো হয়নি, উদাহরণস্বরূপ কারণ সংকলনের সময় একটি ত্রুটি পাওয়া যায়, বা কারণ
-fsyntax-শুধুমাত্র বিকল্প ব্যবহার করা হচ্ছে।

- কঠোর-নির্বাচক-ম্যাচ (শুধুমাত্র উদ্দেশ্য-সি এবং উদ্দেশ্য-সি++)
সতর্ক করুন যদি বিভিন্ন যুক্তি সহ একাধিক পদ্ধতি এবং/অথবা রিটার্নের ধরন পাওয়া যায় a এর জন্য
প্রদত্ত নির্বাচক যখন একটি রিসিভার এই নির্বাচক ব্যবহার করে একটি বার্তা পাঠানোর চেষ্টা
"আইডি" বা "ক্লাস" টাইপ করুন। যখন এই পতাকা বন্ধ থাকে (যা ডিফল্ট আচরণ),
কম্পাইলার এই ধরনের সতর্কতা বাদ দেয় যদি কোনো পার্থক্য পাওয়া যায় সেগুলি ভাগ করে নেওয়ার মধ্যে সীমাবদ্ধ থাকে
একই আকার এবং প্রান্তিককরণ।

-উন্ড ঘোষিত-নির্বাচক (শুধুমাত্র উদ্দেশ্য-সি এবং উদ্দেশ্য-সি++)
একটি অঘোষিত নির্বাচককে উল্লেখ করে একটি "@নির্বাচক(...)" অভিব্যক্তি পাওয়া গেলে সতর্ক করুন৷ ক
নির্বাচক অঘোষিত বলে বিবেচিত হয় যদি সেই নামের কোনো পদ্ধতি আগে ঘোষণা করা না হয়
"@নির্বাচক(...)" অভিব্যক্তি, হয় স্পষ্টভাবে একটি @ইন্টারফেসে বা @প্রোটোকলে
ঘোষণা, বা পরোক্ষভাবে একটি @ বাস্তবায়ন বিভাগে। এই বিকল্পটি সর্বদা সঞ্চালিত হয়
একটি "@নির্বাচক(...)" অভিব্যক্তি পাওয়া গেলেই এটি পরীক্ষা করে -সেলেক্টর কেবল
সংকলনের চূড়ান্ত পর্যায়ে তার চেকগুলি সম্পাদন করে। এটি কোডিংকেও কার্যকর করে
স্টাইল কনভেনশন যে পদ্ধতি এবং নির্বাচকদের ব্যবহার করার আগে ঘোষণা করা আবশ্যক।

-প্রিন্ট-objc-রানটাইম-তথ্য
C শিরোনাম তৈরি করুন যেটি সবচেয়ে বড় কাঠামোর বর্ণনা করে যা মান দ্বারা পাস করা হয়, যদি থাকে।

অপশন সমূহ থেকে নিয়ন্ত্রণ লক্ষণ বার্তা বিন্যাস
ঐতিহ্যগতভাবে, আউটপুট ডিভাইস নির্বিশেষে ডায়াগনস্টিক বার্তাগুলি ফর্ম্যাট করা হয়েছে
দিক (যেমন এর প্রস্থ, ...)। আপনি নিয়ন্ত্রণ করতে নীচে বর্ণিত বিকল্পগুলি ব্যবহার করতে পারেন
ডায়াগনস্টিক বার্তাগুলির জন্য বিন্যাসকরণ অ্যালগরিদম, যেমন প্রতি লাইনে কতগুলি অক্ষর, কতবার
উত্স অবস্থান তথ্য রিপোর্ট করা উচিত. উল্লেখ্য যে কিছু ভাষা সামনে শেষ হতে পারে
এই অপশন সম্মান না.

-fmessage-দৈর্ঘ্য=n
ত্রুটি বার্তাগুলি বিন্যাস করার চেষ্টা করুন যাতে তারা প্রায় লাইনে ফিট করে n চরিত্র. দ্য
ডিফল্ট এর জন্য 72টি অক্ষর g ++ এবং সামনের প্রান্তের বাকি অংশগুলির জন্য 0 দ্বারা সমর্থিত
জিসিসি। যদি n শূন্য, তারপর কোন লাইন-র্যাপিং করা হয় না; প্রতিটি ত্রুটি বার্তা a এ প্রদর্শিত হবে
সপ্তাহের দিন.

-fdiagnostics-show-location= একবার
শুধুমাত্র লাইন-র্যাপিং মোডে অর্থপূর্ণ। ডায়াগনস্টিক বার্তা রিপোর্টারকে নির্দেশ দেয়
উৎস অবস্থান তথ্য নির্গত একদা; অর্থাৎ, বার্তাটি মানানসই হওয়ার জন্য খুব দীর্ঘ হলে
একটি একক ভৌত লাইনে এবং আবৃত করতে হবে, উত্স অবস্থান নির্গত হবে না
(উপসর্গ হিসাবে) আবার, বারবার, পরবর্তী ধারাবাহিকতা লাইনে। এই হল
ডিফল্ট আচরণ।

-fdiagnostics-show-location=প্রতিটি লাইন
শুধুমাত্র লাইন-র্যাপিং মোডে অর্থপূর্ণ। ডায়াগনস্টিক বার্তা রিপোর্টারকে নির্দেশ দেয়
ফলাফলের ভৌত রেখার জন্য একই উৎস অবস্থানের তথ্য (উপসর্গ হিসাবে) নির্গত করুন
একটি বার্তা ভাঙ্গার প্রক্রিয়া থেকে যা একটি একক লাইনে মাপসই করা খুব দীর্ঘ।

-fno-ডায়াগনস্টিকস-শো-বিকল্প
ডিফল্টরূপে, নির্গত প্রতিটি ডায়াগনস্টিক কমান্ড-লাইন বিকল্প নির্দেশ করে পাঠ্য অন্তর্ভুক্ত করে
যেটি সরাসরি ডায়াগনস্টিক নিয়ন্ত্রণ করে (যদি এই ধরনের একটি বিকল্প ডায়াগনস্টিক জানে
যন্ত্রপাতি)। উল্লেখ করা -fno-ডায়াগনস্টিকস-শো-বিকল্প পতাকা যে দমন করে
আচরণ।

-fno-ডায়াগনস্টিকস-শো-ক্যারেট
ডিফল্টরূপে, নির্গত প্রতিটি ডায়াগনস্টিক মূল উৎস লাইন এবং একটি ক্যারেট '^' অন্তর্ভুক্ত করে
কলাম নির্দেশ করে। এই বিকল্পটি এই তথ্য দমন করে।

অপশন সমূহ থেকে অনুরোধ or দমন করা সতর্কবাণী
সতর্কতা হল ডায়াগনস্টিক বার্তা যা এমন নির্মাণের রিপোর্ট করে যা অন্তর্নিহিত নয়
ভুল কিন্তু এটি ঝুঁকিপূর্ণ বা একটি ত্রুটি হতে পারে বলে পরামর্শ দেয়৷

নিম্নলিখিত ভাষা-স্বাধীন বিকল্পগুলি নির্দিষ্ট সতর্কতা সক্রিয় করে না কিন্তু নিয়ন্ত্রণ করে
GCC দ্বারা উত্পাদিত ডায়গনিস্টিক ধরনের.

-fsyntax-শুধুমাত্র
সিনট্যাক্স ত্রুটির জন্য কোড পরীক্ষা করুন, কিন্তু এর বাইরে কিছু করবেন না।

-fmax-ত্রুটি=n
সর্বোচ্চ সংখ্যক ত্রুটি বার্তা সীমিত করে n, যে সময়ে জিসিসি বরং জামিন দেয়
সোর্স কোড প্রক্রিয়াকরণ চালিয়ে যাওয়ার চেষ্টা করার চেয়ে। যদি n হল 0 (ডিফল্ট),
উত্পাদিত ত্রুটি বার্তা সংখ্যার কোন সীমা নেই. যদি মারাত্মক-ত্রুটি এছাড়াও
নির্দিষ্ট, তারপর মারাত্মক-ত্রুটি এই বিকল্পের উপর অগ্রাধিকার নেয়।

-w সমস্ত সতর্কতা বার্তা বাধা দিন।

-ভুল
সমস্ত সতর্কতাকে ভুল করে ফেলুন।

-ভুল=
নির্দিষ্ট সতর্কতাটিকে একটি ত্রুটিতে পরিণত করুন। একটি সতর্কতার জন্য নির্দিষ্টকারী যুক্ত করা হয়েছে;
উদাহরণ স্বরূপ -Werror=সুইচ দ্বারা নিয়ন্ত্রিত সতর্কতা চালু করে -উউইচ ত্রুটির মধ্যে
এই সুইচটি নেতিবাচক রূপ নেয়, যা নেগেট করতে ব্যবহার করা হবে -ভুল নির্দিষ্ট সতর্কতার জন্য;
উদাহরণ স্বরূপ -Wno-error=সুইচ তোলে -উউইচ সতর্কতা ভুল না, এমনকি যখন -ভুল
কার্যকর হয়

প্রতিটি নিয়ন্ত্রণযোগ্য সতর্কতার জন্য সতর্কীকরণ বার্তাটি নিয়ন্ত্রণ করে এমন বিকল্প অন্তর্ভুক্ত করে
সতর্কবার্তা. যে বিকল্প তারপর ব্যবহার করা যেতে পারে -ভুল= এবং -Wno-eror = বর্ণনানুসারে
উপরে (সতর্কতা বার্তার বিকল্পটির মুদ্রণ ব্যবহার করে নিষ্ক্রিয় করা যেতে পারে
-fno-ডায়াগনস্টিকস-শো-বিকল্প পতাকা।)

উল্লেখ্য যে নির্দিষ্ট -ভুল=foo বিন্যাস স্বয়ংক্রিয়ভাবে বোঝায় -Wfoo বিন্যাস। যাহোক, -Wno-eror =foo বিন্যাস
কিছু বোঝায় না।

মারাত্মক-ত্রুটি
এই বিকল্পটি কম্পাইলারকে প্রথম ত্রুটির কারণে কম্পাইলেশন বাতিল করে দেয়
চালিয়ে যাওয়ার এবং আরও ত্রুটি বার্তা প্রিন্ট করার চেষ্টা করার পরিবর্তে।

আপনি শুরুতে বিকল্পগুলির সাথে অনেকগুলি নির্দিষ্ট সতর্কতার অনুরোধ করতে পারেন৷ -W, উদাহরণ স্বরূপ
-উইমপ্লিসিট অন্তর্নিহিত ঘোষণার উপর সতর্কতা অনুরোধ করার জন্য। এই নির্দিষ্ট সতর্কতা প্রতিটি
বিকল্পগুলিরও একটি নেতিবাচক ফর্ম শুরু আছে -ওনো- সতর্কতা বন্ধ করতে; উদাহরণ স্বরূপ,
-উনো-অন্তর্ভুক্ত. এই ম্যানুয়াল দুটি ফর্মের মধ্যে শুধুমাত্র একটি তালিকাভুক্ত করে, যেটি ডিফল্ট নয়।
আরও ভাষা-নির্দিষ্ট বিকল্পের জন্য এছাড়াও পড়ুন সি ++ উপভাষা অপশন সমূহ এবং উদ্দেশ্য গ
এবং উদ্দেশ্য-C++ উপভাষা অপশন সমূহ.

যখন একটি অচেনা সতর্কতা বিকল্প অনুরোধ করা হয় (যেমন, -অজানা-সতর্কতা), GCC নির্গত ক
ডায়গনিস্টিক বলে যে বিকল্পটি স্বীকৃত নয়। যাইহোক, যদি -ওনো- ফর্ম ব্যবহার করা হয়,
আচরণ সামান্য ভিন্ন: জন্য কোন ডায়গনিস্টিক উত্পাদিত হয় না -অজানা-সতর্কতা
অন্যান্য ডায়াগনস্টিক উত্পাদিত হচ্ছে না হলে. এটি নতুন ব্যবহার করার অনুমতি দেয় -ওনো- অপশন
পুরানো কম্পাইলারগুলির সাথে, কিন্তু কিছু ভুল হলে, কম্পাইলার সতর্ক করে যে একটি অচেনা
বিকল্প বিদ্যমান।

-ডব্লিউডান্টিক
-শিক্ষার্থী
কঠোর ISO C এবং ISO C++ দ্বারা দাবিকৃত সমস্ত সতর্কতা জারি করুন; যে সমস্ত প্রোগ্রাম প্রত্যাখ্যান
নিষিদ্ধ এক্সটেনশন ব্যবহার করুন, এবং কিছু অন্যান্য প্রোগ্রাম যা ISO C এবং ISO অনুসরণ করে না
সি++। ISO C-এর জন্য, যে কোনো দ্বারা নির্দিষ্ট ISO C স্ট্যান্ডার্ডের সংস্করণ অনুসরণ করে -স্টেড
বিকল্প ব্যবহার করা হয়।

বৈধ ISO C এবং ISO C++ প্রোগ্রামগুলি এই বিকল্পের সাথে বা ছাড়াই সঠিকভাবে কম্পাইল করা উচিত
(যদিও খুব কমই প্রয়োজন -আনসি বা একটি -স্টেড এর প্রয়োজনীয় সংস্করণ উল্লেখ করার বিকল্প
আইএসও সি)। যাইহোক, এই বিকল্প ছাড়া, নির্দিষ্ট GNU এক্সটেনশন এবং ঐতিহ্যগত C এবং
C++ বৈশিষ্ট্যগুলিও সমর্থিত। এই বিকল্প দিয়ে, তারা প্রত্যাখ্যাত হয়.

-ডব্লিউডান্টিক যার বিকল্প কীওয়ার্ড ব্যবহারের জন্য সতর্কতা বার্তা সৃষ্টি করে না
নাম শুরু হয় এবং শেষ হয় __. পেডেন্টিক সতর্কতাও অভিব্যক্তিতে অক্ষম করা হয়েছে
যেটি "__extension__" অনুসরণ করে। যাইহোক, শুধুমাত্র সিস্টেম হেডার ফাইল এই ব্যবহার করা উচিত
পালানোর রাস্তা; অ্যাপ্লিকেশন প্রোগ্রাম তাদের এড়ানো উচিত.

কিছু ব্যবহারকারী ব্যবহার করার চেষ্টা করুন -ডব্লিউডান্টিক কঠোর ISO C কনফার্মেন্সের জন্য প্রোগ্রামগুলি পরীক্ষা করতে। তারা
শীঘ্রই দেখতে পান যে এটি তারা যা চায় তা করে না: এটি কিছু অ-আইএসও অনুশীলন খুঁজে পায়,
কিন্তু সব নয়---শুধুমাত্র যাদের জন্য ISO C প্রয়োজন একটি ডায়গনিস্টিক, এবং কিছু অন্যদের জন্য
যা ডায়াগনস্টিক যোগ করা হয়েছে।

ISO C মেনে চলতে ব্যর্থতার রিপোর্ট করার একটি বৈশিষ্ট্য কিছু ক্ষেত্রে কার্যকর হতে পারে,
কিন্তু যথেষ্ট অতিরিক্ত কাজের প্রয়োজন হবে এবং এর থেকে বেশ আলাদা হবে
-ডব্লিউডান্টিক. আমরা নিকট ভবিষ্যতে এই ধরনের একটি বৈশিষ্ট্য সমর্থন করার পরিকল্পনা নেই.

যেখানে স্ট্যান্ডার্ড দিয়ে উল্লেখ করা হয়েছে -স্টেড C এর একটি GNU বর্ধিত উপভাষা উপস্থাপন করে, যেমন
gnu90 or gnu99, একটি অনুরূপ আছে ভিত্তি মান, ISO C এর সংস্করণ যার উপর
GNU বর্ধিত উপভাষা ভিত্তিক। থেকে সতর্কবার্তা -ডব্লিউডান্টিক তারা যেখানে আছে দেওয়া হয়
বেস স্ট্যান্ডার্ড দ্বারা প্রয়োজনীয়। (এ ধরনের সতর্কতা দেওয়ার কোনো মানে হয় না
শুধুমাত্র নির্দিষ্ট GNU C উপভাষায় নয় এমন বৈশিষ্ট্যগুলির জন্য, যেহেতু সংজ্ঞা অনুসারে GNU
C-এর উপভাষায় সমস্ত বৈশিষ্ট্য অন্তর্ভুক্ত রয়েছে যা কম্পাইলার প্রদত্ত বিকল্পের সাথে সমর্থন করে এবং
সতর্ক করার কিছু থাকবে না।)

-শিক্ষা সংক্রান্ত-ত্রুটি
মত -ডব্লিউডান্টিক, যে ত্রুটিগুলি সতর্কতার পরিবর্তে উত্পাদিত হয়.

-ওয়াল
এটি নির্মাণ সম্পর্কে সমস্ত সতর্কতা সক্ষম করে যা কিছু ব্যবহারকারী বিবেচনা করে
সন্দেহজনক, এবং যেগুলি এড়ানো সহজ (অথবা সতর্কতা প্রতিরোধ করার জন্য পরিবর্তন), এমনকি এর মধ্যেও
ম্যাক্রোর সাথে সংযোগ। এটি বর্ণনা করা কিছু ভাষা-নির্দিষ্ট সতর্কতাও সক্ষম করে
in সি ++ উপভাষা অপশন সমূহ এবং উদ্দেশ্য গ এবং উদ্দেশ্য-C++ উপভাষা অপশন সমূহ.

-ওয়াল নিম্নলিখিত সতর্কতা পতাকা চালু করে:

-ওয়াডড্রেস -ওয়ারে-সীমা (শুধুমাত্র সঙ্গে -ও2) -Wc++11-কম্প্যাট -Wchar-সাবস্ক্রিপ্ট
-ভেনাম-তুলনা (C/ObjC-তে; এটি ডিফল্টরূপে C++ এ চালু থাকে) - Wimplicit-int (সি এবং
উদ্দেশ্য-সি শুধুমাত্র) - Wimplicit-ফাংশন-ঘোষণা (শুধুমাত্র C এবং উদ্দেশ্য-C) -Wcomment
-Wformat -উমাইন (শুধুমাত্র C/ObjC এর জন্য এবং যদি না -ফ্রিস্ট্যান্ডিং) -Wmaybe-uninitialized
-উইমিসিং-বন্ধনী (শুধুমাত্র C/ObjC এর জন্য) -উনোনুল - বন্ধনী -Wpointer-চিহ্ন -নিয়ন্ত্রণ
-Wreturn-টাইপ -ডেনসেন্স-পয়েন্ট -সাইন-তুলনা (শুধুমাত্র C++ এ) -WSTRICT-LIASING
-WSTRICT-overflow = 1 -উউইচ -Wtrigraphs -উনিনিটিয়ালাইজড -অজানা-প্রাগমাস
-Wunused-ফাংশন -Wunused-লেবেল -উইনজড-মান - Wunused- পরিবর্তনশীল
-Wvolatile-register-var

নোট করুন যে কিছু সতর্কতা পতাকা দ্বারা উহ্য নয় -ওয়াল. তাদের কেউ কেউ সতর্ক করে
নির্মাণ যা ব্যবহারকারীরা সাধারণত সন্দেহজনক বিবেচনা করে না, কিন্তু যা
মাঝে মাঝে আপনি চেক করতে চাইতে পারেন; অন্যরা যে নির্মাণ সম্পর্কে সতর্ক
প্রয়োজনীয় বা কিছু ক্ষেত্রে এড়ানো কঠিন, এবং পরিবর্তন করার কোন সহজ উপায় নেই
সতর্কতা দমন করার জন্য কোড। তাদের কিছু দ্বারা সক্রিয় করা হয় -ওয়েক্সট্রা কিন্তু তাদের অনেক
স্বতন্ত্রভাবে সক্রিয় করা আবশ্যক।

-ওয়েক্সট্রা
এটি কিছু অতিরিক্ত সতর্কতা ফ্ল্যাগ সক্ষম করে যা দ্বারা সক্রিয় করা হয়নি -ওয়াল. (এই বিকল্পটি ব্যবহার করা হয়েছে
ডাকা হবে -W. পুরোনো নামটি এখনও সমর্থিত, তবে নতুন নামটি আরও বেশি
বর্ণনামূলক.)

-Wclobbered -শরীর ভেজা -অজ্ঞান-কোয়ালিফায়ার মিসিং-ফিল্ড-ইনিশিয়ালাইজার
-Wmissing-প্যারামিটার-টাইপ (শুধুমাত্র গ) -ওল্ড-স্টাইল-ঘোষণা (শুধুমাত্র গ) -ওভাররাইড-ইনিট
-সাইন-তুলনা -Wtype-সীমা -উনিনিটিয়ালাইজড -Wunused-পরামিটার (শুধুমাত্র সঙ্গে -ওয়ান ব্যবহার করা হয়েছে or
-ওয়াল) -Wunused-কিন্তু-সেট-প্যারামিটার (শুধুমাত্র সঙ্গে -ওয়ান ব্যবহার করা হয়েছে or -ওয়াল)

পছন্দ -ওয়েক্সট্রা এছাড়াও নিম্নলিখিত ক্ষেত্রে সতর্কতা বার্তা প্রিন্ট করে:

একটি পয়েন্টারকে পূর্ণসংখ্যা শূন্যের সাথে তুলনা করা হয় <, <=, >, বা >=.

· (শুধুমাত্র C++) একটি গণনাকারী এবং একটি নন-গণনাকারী উভয়ই শর্তসাপেক্ষে উপস্থিত হয়
অভিব্যক্তি।

· (শুধুমাত্র C++) অস্পষ্ট ভার্চুয়াল বেস।

· (শুধুমাত্র C++) ঘোষণা করা হয়েছে এমন একটি অ্যারের সদস্যতা খাতা.

· (শুধুমাত্র C++) ঘোষণা করা হয়েছে এমন একটি ভেরিয়েবলের ঠিকানা নেওয়া খাতা.

· (শুধুমাত্র C++) একটি বেস ক্লাস একটি প্রাপ্ত ক্লাসের কপি কনস্ট্রাক্টরে আরম্ভ করা হয় না।

-Wchar-সাবস্ক্রিপ্ট
অ্যারে সাবস্ক্রিপ্টে "char" টাইপ থাকলে সতর্ক করুন। এটি ত্রুটির একটি সাধারণ কারণ, যেমন
প্রোগ্রামাররা প্রায়ই ভুলে যায় যে কিছু মেশিনে এই ধরনের সাইন করা আছে। এই সতর্কতা
দ্বারা সক্রিয় -ওয়াল.

-Wcomment
যখনই একটি মন্তব্য শুরু ক্রম সতর্ক /* একটি মধ্যে প্রদর্শিত হয় /* মন্তব্য, অথবা যখনই একটি
ব্যাকস্ল্যাশ-নিউলাইন a তে উপস্থিত হয় // মন্তব্য এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

-Wno-কভারেজ-অমিল
ব্যবহার করার সময় প্রতিক্রিয়া প্রোফাইল মেলে না হলে সতর্ক করুন -প্রোফাইল-ব্যবহার বিকল্প যদি একটি
এর সাথে কম্পাইল করার মধ্যে সোর্স ফাইল পরিবর্তন করা হয় -ফপ্রোফাইল-জেনারেল এবং সাথে -প্রোফাইল-ব্যবহার,
প্রোফাইল ফিডব্যাক সহ ফাইলগুলি সোর্স ফাইলের সাথে মেলাতে ব্যর্থ হতে পারে এবং GCC পারে না
প্রোফাইল প্রতিক্রিয়া তথ্য ব্যবহার করুন. ডিফল্টরূপে, এই সতর্কতা সক্রিয় করা হয় এবং হয়৷
একটি ত্রুটি হিসাবে বিবেচিত। -Wno-কভারেজ-অমিল সতর্কতা নিষ্ক্রিয় করতে ব্যবহার করা যেতে পারে বা
-Wno-error=কভারেজ-অমিল ত্রুটি নিষ্ক্রিয় করতে ব্যবহার করা যেতে পারে। ত্রুটি নিষ্ক্রিয় করা হচ্ছে
এই সতর্কতার কারণে খারাপভাবে অপ্টিমাইজ করা কোড হতে পারে এবং শুধুমাত্র এর ক্ষেত্রেই উপযোগী
খুব ছোটখাটো পরিবর্তন যেমন একটি বিদ্যমান কোড-বেসে বাগ ফিক্স। সম্পূর্ণরূপে নিষ্ক্রিয়
সতর্কতা সুপারিশ করা হয় না.

-WNO-CPP
(C, Objective-C, C++, Objective-C++ এবং Fortran শুধুমাত্র)

"#সতর্কতা" নির্দেশাবলী দ্বারা নির্গত সতর্কীকরণ বার্তাগুলিকে দমন করুন৷

-ডাবল-প্রমোশন (সি, সি++, অবজেক্টিভ-সি এবং অবজেক্টিভ-সি++ শুধুমাত্র)
একটি সতর্কতা দিন যখন "ফ্লোট" টাইপের একটি মান স্পষ্টভাবে "ডবল"-এ উন্নীত হয়। সিপিইউ
একটি 32-বিট "একক-নির্ভুলতা" ফ্লোটিং-পয়েন্ট ইউনিট হার্ডওয়্যারে "ফ্লোট" প্রয়োগ করে,
কিন্তু সফটওয়্যারে "ডাবল" অনুকরণ করুন। যেমন একটি মেশিনে, ব্যবহার করে গণনা করছেন
সফ্টওয়্যারের জন্য প্রয়োজনীয় ওভারহেডের কারণে "ডাবল" মান অনেক বেশি ব্যয়বহুল
অনুকরণ

ঘটনাক্রমে "ডাবল" দিয়ে গণনা করা সহজ কারণ ফ্লোটিং-পয়েন্ট
আক্ষরিক অর্থ হল "ডবল" টাইপ। উদাহরণস্বরূপ, এর মধ্যে:

ভাসমান এলাকা (ফ্লোট ব্যাসার্ধ)
{
রিটার্ন 3.14159 * ব্যাসার্ধ * ব্যাসার্ধ;
}

কম্পাইলার "ডবল" দিয়ে সম্পূর্ণ গণনা করে কারণ ফ্লোটিং-পয়েন্ট
আক্ষরিক একটি "দ্বৈত"।

-Wformat
-Wformat =n
আর্গুমেন্ট সরবরাহ করা হয়েছে তা নিশ্চিত করতে "printf" এবং "scanf" ইত্যাদি কলগুলি পরীক্ষা করুন
ফর্ম্যাট স্ট্রিং নির্দিষ্ট করা উপযুক্ত ধরনের আছে, এবং যে রূপান্তর
বিন্যাসে নির্দিষ্ট স্ট্রিং অর্থপূর্ণ. এর মধ্যে স্ট্যান্ডার্ড ফাংশন এবং
অন্যান্য ফরম্যাট বৈশিষ্ট্য দ্বারা নির্দিষ্ট করা হয়েছে, "printf", "scanf", "strftime" এবং
"strfmon" (একটি এক্স/ওপেন এক্সটেনশন, সি স্ট্যান্ডার্ডে নয়) পরিবার (বা অন্যান্য লক্ষ্য-
নির্দিষ্ট পরিবার)। কোন ফাংশন হয়েছে বিন্যাস বৈশিষ্ট্য ছাড়া চেক করা হয়
নির্দিষ্ট করা নির্বাচিত স্ট্যান্ডার্ড সংস্করণ এবং ফাংশন যেমন চেক উপর নির্ভর করে
উল্লেখিত বৈশিষ্ট্য ছাড়া দ্বারা নিষ্ক্রিয় করা হয় -ফ্রিস্ট্যান্ডিং or -এফএনও-বিল্টিন.

GNU libc সংস্করণ 2.2 দ্বারা সমর্থিত বিন্যাস বৈশিষ্ট্যগুলির বিপরীতে বিন্যাসগুলি পরীক্ষা করা হয়।
এর মধ্যে রয়েছে সমস্ত ISO C90 এবং C99 বৈশিষ্ট্য, পাশাপাশি একক ইউনিক্সের বৈশিষ্ট্যগুলি
স্পেসিফিকেশন এবং কিছু BSD এবং GNU এক্সটেনশন। অন্যান্য লাইব্রেরি বাস্তবায়ন নাও হতে পারে
এই সমস্ত বৈশিষ্ট্য সমর্থন করে; GCC এর বাইরে যাওয়া বৈশিষ্ট্য সম্পর্কে সতর্কতা সমর্থন করে না
একটি নির্দিষ্ট গ্রন্থাগারের সীমাবদ্ধতা। যাইহোক, যদি -ডব্লিউডান্টিক সঙ্গে ব্যবহৃত হয় -Wformat,
নির্বাচিত স্ট্যান্ডার্ড সংস্করণে নয় এমন বিন্যাস বৈশিষ্ট্য সম্পর্কে সতর্কতা দেওয়া হয়েছে (কিন্তু নয়
"strfmon" ফরম্যাটের জন্য, যেহেতু সেগুলি সি স্ট্যান্ডার্ডের কোনো সংস্করণে নেই)।

-Wformat = 1
-Wformat
পছন্দ -Wformat সমতুল্য -Wformat = 1, এবং -উনো-ফরম্যাট সমতুল্য
-Wformat = 0। থেকে -Wformat এছাড়াও বেশ কয়েকটির জন্য নাল ফরম্যাট আর্গুমেন্ট পরীক্ষা করে
ফাংশন, -Wformat এছাড়াও বোঝায় -উনোনুল. এই স্তরের বিন্যাসের কিছু দিক
চেকিং বিকল্প দ্বারা নিষ্ক্রিয় করা যেতে পারে: -Wno-ফর্ম্যাটে-ধারণ করে-nul,
-Wno-ফর্ম্যাট-অতিরিক্ত-আর্গস, এবং -Wno-ফর্ম্যাট-শূন্য-দৈর্ঘ্য. -Wformat দ্বারা সক্রিয় করা হয়
-ওয়াল.

-Wno-ফর্ম্যাটে-ধারণ করে-nul
If -Wformat নির্দিষ্ট করা আছে, NUL বাইট ধারণকারী বিন্যাস স্ট্রিং সম্পর্কে সতর্ক করবেন না।

-Wno-ফর্ম্যাট-অতিরিক্ত-আর্গস
If -Wformat নির্দিষ্ট করা হয়েছে, একটি "printf" বা অতিরিক্ত আর্গুমেন্ট সম্পর্কে সতর্ক করবেন না
"scanf" ফরম্যাট ফাংশন। সি মান উল্লেখ করে যে এই ধরনের আর্গুমেন্ট
উপেক্ষা করা

যেখানে অব্যবহৃত আর্গুমেন্টগুলি ব্যবহৃত আর্গুমেন্টগুলির মধ্যে থাকে যা দিয়ে নির্দিষ্ট করা হয় $
অপারেন্ড নম্বর স্পেসিফিকেশন, সাধারণত সতর্কতা এখনও দেওয়া হয়, যেহেতু
অব্যবহৃত বাদ দিতে "va_arg"-এ কোন ধরনের পাস করতে হবে তা বাস্তবায়ন জানতে পারেনি
যুক্তি. যাইহোক, "scanf" ফরম্যাটের ক্ষেত্রে, এই বিকল্পটি দমন করে
একক ইউনিক্স থেকে অব্যবহৃত আর্গুমেন্ট সব পয়েন্টার হলে সতর্ক করা
স্পেসিফিকেশন বলে যে এই ধরনের অব্যবহৃত আর্গুমেন্ট অনুমোদিত।

-Wno-ফর্ম্যাট-শূন্য-দৈর্ঘ্য
If -Wformat নির্দিষ্ট করা হয়েছে, শূন্য-দৈর্ঘ্য বিন্যাস সম্পর্কে সতর্ক করবেন না। সি স্ট্যান্ডার্ড
উল্লেখ করে যে শূন্য-দৈর্ঘ্য বিন্যাস অনুমোদিত।

-Wformat = 2
সক্ষম করা -Wformat প্লাস অতিরিক্ত বিন্যাস চেক. বর্তমানে এর সমতুল্য -Wformat
-Wformat-nonliteral -Wformat-নিরাপত্তা -Wformat-y2k.

-Wformat-nonliteral
If -Wformat নির্দিষ্ট করা হয়েছে, এছাড়াও সতর্ক করুন যদি বিন্যাস স্ট্রিং একটি স্ট্রিং আক্ষরিক না হয়
এবং তাই চেক করা যাবে না, যদি না ফরম্যাট ফাংশন তার ফরম্যাট আর্গুমেন্টকে হিসাবে নেয়
একটি "va_list"।

-Wformat-নিরাপত্তা
If -Wformat নির্দিষ্ট করা হয়েছে, এছাড়াও প্রতিনিধিত্বকারী ফর্ম্যাট ফাংশনগুলির ব্যবহার সম্পর্কে সতর্ক করে
সম্ভাব্য নিরাপত্তা সমস্যা। বর্তমানে, এটি "printf" এবং কল সম্পর্কে সতর্ক করে
"scanf" ফাংশন যেখানে ফর্ম্যাট স্ট্রিং একটি স্ট্রিং আক্ষরিক নয় এবং সেখানে নেই
ফরম্যাট আর্গুমেন্ট, যেমন "printf (foo);"। এটি একটি নিরাপত্তা গর্ত হতে পারে যদি
বিন্যাস স্ট্রিং অবিশ্বস্ত ইনপুট থেকে এসেছে এবং এতে রয়েছে %n. (এটি বর্তমানে একটি
কিসের উপসেট -Wformat-nonliteral সম্পর্কে সতর্ক করে, কিন্তু ভবিষ্যতে সতর্কতা হতে পারে
যোগ করো -Wformat-নিরাপত্তা যে অন্তর্ভুক্ত করা হয় না -Wformat-nonliteral.)

দ্রষ্টব্য: উবুন্টু 8.10 এবং পরবর্তী সংস্করণগুলিতে এই বিকল্পটি ডিফল্টরূপে C এর জন্য সক্রিয় করা হয়েছে,
C++, ObjC, ObjC++। নিষ্ক্রিয় করতে, ব্যবহার করুন -Wno-ফর্ম্যাট-নিরাপত্তা, অথবা সমস্ত বিন্যাস অক্ষম করুন
সঙ্গে সতর্কবার্তা -Wformat = 0. বিন্যাস নিরাপত্তা সতর্কতা মারাত্মক করতে, নির্দিষ্ট করুন
-Werror=ফরম্যাট-নিরাপত্তা.

-Wformat-y2k
If -Wformat নির্দিষ্ট করা হয়েছে, এছাড়াও "strftime" ফরম্যাট সম্পর্কে সতর্ক করুন যা শুধুমাত্র একটি ফল দিতে পারে
দুই অঙ্কের বছর।

-উনোনুল
একটি নন-নাল মান প্রয়োজন হিসাবে চিহ্নিত আর্গুমেন্টের জন্য একটি নাল পয়েন্টার পাস করার বিষয়ে সতর্ক করুন
"nonnull" ফাংশন বৈশিষ্ট্য দ্বারা।

-উনোনুল অন্তর্ভুক্ত করা হয় -ওয়াল এবং -Wformat. এটি দিয়ে নিষ্ক্রিয় করা যেতে পারে -উনো-অনুল
বিকল্প।

-ভিনিত-স্বয়ং (সি, সি++, অবজেক্টিভ-সি এবং অবজেক্টিভ-সি++ শুধুমাত্র)
অপ্রচলিত ভেরিয়েবল সম্পর্কে সতর্ক করুন যেগুলি নিজেদের সাথে শুরু করা হয়। এই নোট করুন
বিকল্প শুধুমাত্র সঙ্গে ব্যবহার করা যেতে পারে -উনিনিটিয়ালাইজড বিকল্প।

উদাহরণ স্বরূপ, GCC শুধুমাত্র নিম্নলিখিত স্নিপেটে "i" চালু না হওয়ার বিষয়ে সতর্ক করে৷
কখন -ভিনিত-স্বয়ং নির্দিষ্ট করা হয়েছে:

int f ()
{
int i = i;
প্রত্যাবর্তন i;
}

এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল C++ এ।

- Wimplicit-int (শুধুমাত্র C এবং উদ্দেশ্য-C)
যখন একটি ঘোষণা একটি প্রকার নির্দিষ্ট করে না তখন সতর্ক করুন৷ এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

- Wimplicit-ফাংশন-ঘোষণা (শুধুমাত্র C এবং উদ্দেশ্য-C)
ঘোষণা করার আগে যখনই একটি ফাংশন ব্যবহার করা হয় তখন একটি সতর্কতা দিন। C99 মোডে
(-std=c99 or -STD = gnu99), এই সতর্কতাটি ডিফল্টরূপে সক্রিয় থাকে এবং এটি একটিতে তৈরি হয়
দ্বারা ত্রুটি -শিক্ষা সংক্রান্ত-ত্রুটি. এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

-উইমপ্লিসিট (শুধুমাত্র C এবং উদ্দেশ্য-C)
একই রকম - Wimplicit-int এবং - Wimplicit-ফাংশন-ঘোষণা. এই সতর্কতা সক্রিয় করা হয়েছে
by -ওয়াল.

-অজ্ঞান-কোয়ালিফায়ার (শুধুমাত্র C এবং C++)
কোনো ফাংশনের রিটার্ন টাইপের যদি "const" এর মতো টাইপ কোয়ালিফায়ার থাকে তাহলে সতর্ক করুন। আইএসও সি এর জন্য
এই ধরনের কোয়ালিফায়ারের কোন প্রভাব নেই, যেহেতু একটি ফাংশন দ্বারা প্রত্যাবর্তিত মান একটি নয়
মূল্য C++ এর জন্য, সতর্কতা শুধুমাত্র স্কেলার প্রকার বা "অকার্যকর" এর জন্য নির্গত হয়। আইএসও সি
ফাংশন সংজ্ঞায় যোগ্য "অকার্যকর" রিটার্ন প্রকার নিষিদ্ধ করে, তাই এই ধরনের রিটার্নের ধরন
এই বিকল্পটি ছাড়াই সর্বদা একটি সতর্কতা গ্রহণ করুন।

এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়েক্সট্রা.

-উমাইন
টাইপ হলে সতর্ক করুন প্রধান সন্দেহজনক প্রধান বহিরাগত সঙ্গে একটি ফাংশন হতে হবে
লিঙ্কেজ, int রিটার্নিং, হয় শূন্য আর্গুমেন্ট গ্রহণ, দুই, বা তিনটি আর্গুমেন্ট
উপযুক্ত প্রকার। এই সতর্কতাটি ডিফল্টরূপে C++ এ সক্ষম করা হয় এবং যে কোনো একটি দ্বারা সক্ষম হয়
-ওয়াল or -ডব্লিউডান্টিক.

-উইমিসিং-বন্ধনী
একটি সমষ্টি বা ইউনিয়ন ইনিশিয়ালাইজার সম্পূর্ণরূপে বন্ধনী না থাকলে সতর্ক করুন৷ নিম্নলিখিত
উদাহরণ, এর জন্য ইনিশিয়ালাইজার a সম্পূর্ণরূপে বন্ধনী করা হয় না, কিন্তু যে জন্য b পুরোপুরি
বন্ধনী এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল সি তে

int a[2][2] = { 0, 1, 2, 3};
int b [2] [2] = {{0, 1}, {2, 3}};

এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

মিসিং-ইনক্লুড-ডিরস (সি, সি++, অবজেক্টিভ-সি এবং অবজেক্টিভ-সি++ শুধুমাত্র)
ব্যবহারকারীর দ্বারা সরবরাহ করা অন্তর্ভুক্ত ডিরেক্টরি বিদ্যমান না থাকলে সতর্ক করুন৷

- বন্ধনী
সতর্ক করুন যদি কিছু নির্দিষ্ট প্রসঙ্গে বন্ধনী বাদ দেওয়া হয়, যেমন যখন একটি থাকে
একটি প্রেক্ষাপটে অ্যাসাইনমেন্ট যেখানে একটি সত্য মান প্রত্যাশিত, বা যখন অপারেটর নেস্ট করা হয়
যার অগ্রাধিকার সম্পর্কে মানুষ প্রায়ই বিভ্রান্ত হয়।

একটি তুলনা পছন্দ হলে সতর্ক করুন x<=y<=z প্রদর্শিত; এই সমতুল্য (x<=y ? 1 : 0)
<= z, যা সাধারণ গাণিতিক স্বরলিপি থেকে একটি ভিন্ন ব্যাখ্যা।

এছাড়াও নির্মাণ সম্পর্কে সতর্ক করুন যেখানে বিভ্রান্তি থাকতে পারে যার "if" বিবৃতি একটি
"অন্য" শাখার অন্তর্গত। এখানে যেমন একটি ক্ষেত্রে একটি উদাহরণ:

{
যদি একটি)
যদি (খ)
ফু ();
আর
বার ();
}

C/C++-এ, প্রতিটি "অন্য" শাখা অন্তর্নিহিত সম্ভাব্য "যদি" বিবৃতির অন্তর্গত, যা
এই উদাহরণে "যদি (বি)"। এটি প্রায়শই প্রোগ্রামার যা আশা করে তা নয়
প্রোগ্রামার বেছে নেওয়া ইন্ডেন্টেশন দ্বারা উপরের উদাহরণে চিত্রিত। যখন সেখানে
এই বিভ্রান্তির সম্ভাবনা, এই পতাকা নির্দিষ্ট করা হলে GCC একটি সতর্কতা জারি করে।
সতর্কতা দূর করতে, সবচেয়ে ভিতরের "যদি" বিবৃতিটির চারপাশে স্পষ্ট বন্ধনী যুক্ত করুন
"অন্য" এনক্লোডিং "যদি" এর অন্তর্গত হতে পারে এমন কোন উপায় নেই। ফলাফল কোড দেখায়
এটার মত:

{
যদি একটি)
{
যদি (খ)
ফু ();
আর
বার ();
}
}

এছাড়াও বাদ দেওয়া মধ্যম অপারেন্ড সহ "?:" তে GNU এক্সটেনশনের বিপজ্জনক ব্যবহারের জন্য সতর্ক করুন৷
যখন "?": অপারেটর একটি বুলিয়ান এক্সপ্রেশনের শর্ত, বাদ দেওয়া মান
সর্বদা 1. প্রায়শই প্রোগ্রামাররা আশা করে যে এটি শর্তসাপেক্ষের ভিতরে গণনা করা একটি মান হবে
পরিবর্তে অভিব্যক্তি।

এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

-ডেনসেন্স-পয়েন্ট
ক্রম লঙ্ঘনের কারণে অনির্ধারিত শব্দার্থবিদ্যা থাকতে পারে এমন কোড সম্পর্কে সতর্ক করুন
C এবং C++ স্ট্যান্ডার্ডে পয়েন্ট নিয়ম।

C এবং C++ স্ট্যান্ডার্ডগুলি একটি C/C++ প্রোগ্রামের অভিব্যক্তির ক্রম নির্ধারণ করে
পরিপ্রেক্ষিতে মূল্যায়ন করা হয় ক্রম পয়েন্ট, যা এর মধ্যে একটি আংশিক ক্রম উপস্থাপন করে
প্রোগ্রামের অংশগুলির সঞ্চালন: যেগুলি সিকোয়েন্স পয়েন্টের আগে কার্যকর করা হয়েছিল এবং সেগুলি৷
এর পরে মৃত্যুদন্ড কার্যকর করা হয়। এগুলি একটি পূর্ণ অভিব্যক্তির মূল্যায়নের পরে ঘটে (যা
একটি বৃহত্তর অভিব্যক্তির অংশ নয়), a এর প্রথম অপারেন্ডের মূল্যায়নের পরে
"&&", "||", "? :" বা "," (কমা) অপারেটর, একটি ফাংশন কল করার আগে (কিন্তু পরে
এর আর্গুমেন্টের মূল্যায়ন এবং কথিত ফাংশন নির্দেশ করে অভিব্যক্তি), এবং ইন
কিছু অন্যান্য জায়গা। ক্রম বিন্দু নিয়ম দ্বারা প্রকাশ করা ছাড়া অন্য, আদেশ
একটি অভিব্যক্তির subexpressions মূল্যায়ন নির্দিষ্ট করা হয় না. এই সব নিয়ম
মোট আদেশের পরিবর্তে শুধুমাত্র একটি আংশিক আদেশ বর্ণনা করুন, যেহেতু, উদাহরণস্বরূপ, যদি দুটি
ফাংশনগুলিকে একটি অভিব্যক্তির মধ্যে বলা হয় যার মধ্যে কোন ক্রম বিন্দু নেই,
ফাংশন কল করা হয় যে ক্রম নির্দিষ্ট করা হয় না. যাইহোক, মান
কমিটি ফাংশন কল ওভারল্যাপ না যে রায় দিয়েছে.

এটি নির্দিষ্ট করা হয় না যখন সিকোয়েন্স পয়েন্টের মধ্যে এর মান পরিবর্তন করে
বস্তু কার্যকর হয়। যে প্রোগ্রামগুলির আচরণ এর উপর নির্ভর করে তাদের অনির্ধারিত আচরণ রয়েছে;
C এবং C++ মানগুলি নির্দিষ্ট করে যে "পূর্ববর্তী এবং পরবর্তী ক্রম বিন্দুর মধ্যে একটি
বস্তুর একটি মূল্যায়ন দ্বারা সর্বাধিক একবারে তার সঞ্চিত মান পরিবর্তন করা হবে
অভিব্যক্তি তদ্ব্যতীত, পূর্বের মানটি শুধুমাত্র মান নির্ধারণের জন্য পড়া হবে
সংরক্ষণ করা হবে।"। যদি কোন প্রোগ্রাম এই নিয়মগুলি ভঙ্গ করে, তবে ফলাফলগুলি বিশেষ করে
বাস্তবায়ন সম্পূর্ণরূপে অপ্রত্যাশিত.

অনির্ধারিত আচরণ সহ কোডের উদাহরণ হল "a = a++;", "a[n] = b[n++]" এবং "a[i++] =
i;।" আরো কিছু জটিল ক্ষেত্রে এই বিকল্প দ্বারা নির্ণয় করা হয় না, এবং এটি একটি দিতে পারে
মাঝে মাঝে মিথ্যা ইতিবাচক ফলাফল, কিন্তু সাধারণভাবে এটি মোটামুটি কার্যকর পাওয়া গেছে
প্রোগ্রামগুলিতে এই ধরণের সমস্যা সনাক্ত করা।

মানটি বিভ্রান্তিকরভাবে শব্দ করা হয়েছে, তাই সুনির্দিষ্ট নিয়ে কিছু বিতর্ক রয়েছে
সূক্ষ্ম ক্ষেত্রে ক্রম বিন্দু নিয়মের অর্থ। আলোচনার লিঙ্ক
প্রস্তাবিত আনুষ্ঠানিক সংজ্ঞা সহ সমস্যা, জিসিসি রিডিং পৃষ্ঠায় পাওয়া যেতে পারে,
athttp://gcc.gnu.org/readings.html>.

এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল C এবং C++ এর জন্য।

-Wno-রিটার্ন-স্থানীয়-addr
একটি ভেরিয়েবলে একটি পয়েন্টার (বা C++, একটি রেফারেন্স) ফেরত দেওয়ার বিষয়ে সতর্ক করবেন না
ফাংশন ফিরে আসার পরে সুযোগের বাইরে।

-Wreturn-টাইপ
যখনই একটি ফাংশনকে রিটার্ন টাইপ দিয়ে সংজ্ঞায়িত করা হয় যা "int" তে ডিফল্ট হয় তখন সতর্ক করুন। এছাড়াও
কোনো "রিটার্ন" স্টেটমেন্ট সম্পর্কে সতর্ক করুন যার রিটার্ন টাইপ ফাংশনে কোনো রিটার্ন মান নেই
"অকার্যকর" নয় (ফাংশন বডির শেষ অংশে পড়ে যাওয়াকে প্রত্যাবর্তন বলে মনে করা হয়
একটি মান ছাড়াই), এবং একটি ফাংশনে একটি অভিব্যক্তি সহ একটি "রিটার্ন" বিবৃতি সম্পর্কে
যার প্রত্যাবর্তনের ধরন "অকার্যকর"।

C++ এর জন্য, রিটার্ন টাইপ ছাড়া একটি ফাংশন সর্বদা একটি ডায়াগনস্টিক বার্তা তৈরি করে, এমনকি
কখন -Wno-রিটার্ন-টাইপ উল্লিখিত আছে. শুধুমাত্র ব্যতিক্রম হয় প্রধান এবং ফাংশন
সিস্টেম হেডারে সংজ্ঞায়িত।

এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

-উউইচ
যখনই একটি "সুইচ" বিবৃতিতে গণনাকৃত ধরণের সূচক থাকে এবং "কেস" এর অভাব থাকে তখন সতর্ক করুন
সেই গণনার এক বা একাধিক নামকৃত কোডের জন্য। (একটি "ডিফল্ট" এর উপস্থিতি
লেবেল এই সতর্কতাকে বাধা দেয়।) "কেস" লেবেলও গণনার পরিসরের বাইরে
যখন এই বিকল্পটি ব্যবহার করা হয় তখন সতর্কতা উস্কে দেয় (এমনকি যদি একটি "ডিফল্ট" লেবেল থাকে)। এই
সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

-Wswitch-ডিফল্ট
যখনই একটি "সুইচ" বিবৃতিতে "ডিফল্ট" কেস না থাকে তখন সতর্ক করুন৷

-উইউইচ-এনাম
যখনই একটি "সুইচ" বিবৃতিতে গণনাকৃত ধরণের সূচক থাকে এবং "কেস" এর অভাব থাকে তখন সতর্ক করুন
সেই গণনার এক বা একাধিক নামকৃত কোডের জন্য। এর বাইরে "কেস" লেবেল
যখন এই বিকল্পটি ব্যবহার করা হয় তখন গণনা পরিসীমা সতর্কতাও উস্কে দেয়। পার্থক্য শুধু
মধ্যে -উউইচ এবং এই বিকল্পটি হল এই বিকল্পটি একটি বাদ দেওয়া সম্পর্কে একটি সতর্কতা দেয়
একটি "ডিফল্ট" লেবেল থাকলেও গণনা কোড।

-Wsync-nand (শুধুমাত্র C এবং C++)
"__sync_fetch_and_nand" এবং "__sync_nand_and_fetch" বিল্ট-ইন ফাংশন হলে সতর্ক করুন
ব্যবহৃত এই ফাংশনগুলি GCC 4.4-এ শব্দার্থবিদ্যা পরিবর্তন করেছে।

-Wtrigraphs
প্রোগ্রামের অর্থ পরিবর্তন করতে পারে এমন কোনো ট্রিগ্রাফ সম্মুখীন হলে সতর্ক করুন
(মন্তব্যের মধ্যে ট্রিগ্রাফ সম্পর্কে সতর্ক করা হয় না)। এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

-Wunused-কিন্তু-সেট-প্যারামিটার
যখনই একটি ফাংশন প্যারামিটার বরাদ্দ করা হয়, তবে অন্যথায় অব্যবহৃত হয় (এর বাইরে
এর ঘোষণা)।

এই সতর্কতা দমন করতে ব্যবহার করুন অব্যবহৃত বৈশিষ্ট্যাবলী।

এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়ান ব্যবহার করা হয়েছে এক্সাথে -ওয়েক্সট্রা.

-উইনজুসেড-তবে-সেট-পরিবর্তনশীল
যখনই একটি স্থানীয় ভেরিয়েবলকে বরাদ্দ করা হয়, তবে অন্যথায় অব্যবহৃত (এটি বাদ দিয়ে) সতর্ক করুন
ঘোষণা)। এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

এই সতর্কতা দমন করতে ব্যবহার করুন অব্যবহৃত বৈশিষ্ট্যাবলী।

এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়ান ব্যবহার করা হয়েছে, যা দ্বারা সক্রিয় করা হয়েছে -ওয়াল.

-Wunused-ফাংশন
যখনই একটি স্ট্যাটিক ফাংশন ঘোষণা করা হয় কিন্তু সংজ্ঞায়িত করা হয় না বা একটি নন-ইনলাইন স্ট্যাটিক হয় তখন সতর্ক করুন
ফাংশন অব্যবহৃত। এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

-Wunused-লেবেল
যখনই একটি লেবেল ঘোষণা করা হয় কিন্তু ব্যবহার করা হয় না তখন সতর্ক করুন৷ এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

এই সতর্কতা দমন করতে ব্যবহার করুন অব্যবহৃত বৈশিষ্ট্যাবলী।

-Wunused-স্থানীয়-টাইপডেফ (সি, অবজেক্টিভ-সি, সি++ এবং অবজেক্টিভ-সি++ শুধুমাত্র)
একটি ফাংশনে স্থানীয়ভাবে সংজ্ঞায়িত টাইপডেফ ব্যবহার না হলে সতর্ক করুন। এই সতর্কতা
দ্বারা সক্রিয় -ওয়াল.

-Wunused-পরামিটার
যখনই একটি ফাংশন প্যারামিটার তার ঘোষণা বাদ দিয়ে অব্যবহৃত হয় তখন সতর্ক করুন।

এই সতর্কতা দমন করতে ব্যবহার করুন অব্যবহৃত বৈশিষ্ট্যাবলী।

-উনো-অব্যবহৃত-ফলাফল
"warn_unused_result" এট্রিবিউট দিয়ে চিহ্নিত কোনো ফাংশনের কলার হলে সতর্ক করবেন না
এর রিটার্ন মান ব্যবহার করবেন না। ডিফল্ট হয় -অব্যবহৃত-ফলাফল.

- Wunused- পরিবর্তনশীল
সতর্ক করুন যখনই একটি স্থানীয় ভেরিয়েবল বা অ ধ্রুবক স্ট্যাটিক ভেরিয়েবল অব্যবহৃত হয়
এর ঘোষণা। এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

এই সতর্কতা দমন করতে ব্যবহার করুন অব্যবহৃত বৈশিষ্ট্যাবলী।

-উইনজড-মান
যখনই একটি বিবৃতি স্পষ্টভাবে ব্যবহৃত হয় না এমন একটি ফলাফল গণনা করে সতর্ক করুন৷ দমন করতে
এই সতর্কবার্তাটি অব্যবহৃত অভিব্যক্তিকে নিক্ষেপ করেছে৷ অকার্যকর. এটি একটি অভিব্যক্তি-বিবৃতি অন্তর্ভুক্ত
বা একটি কমা অভিব্যক্তির বাম-পাশে যার কোনো পার্শ্বপ্রতিক্রিয়া নেই। জন্য
উদাহরণ, একটি অভিব্যক্তি যেমন x[i,j] একটি সতর্কতা কারণ, যখন x[(অকার্যকর)i,j] না.

এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

-ওয়ান ব্যবহার করা হয়েছে
সবার উপরে -ওয়ান ব্যবহার করা হয়েছে একত্রিত বিকল্প।

একটি অব্যবহৃত ফাংশন প্যারামিটার সম্পর্কে একটি সতর্কতা পেতে, আপনাকে অবশ্যই নির্দিষ্ট করতে হবে
-ওয়েক্সট্রা -ওয়ান ব্যবহার করা হয়েছে (মনে রাখবেন যে -ওয়াল বোঝা -ওয়ান ব্যবহার করা হয়েছে), অথবা আলাদাভাবে উল্লেখ করুন
-Wunused-পরামিটার.

-উনিনিটিয়ালাইজড
সতর্ক করুন যদি একটি স্বয়ংক্রিয় ভেরিয়েবল প্রথম শুরু না করে ব্যবহার করা হয় বা যদি একটি পরিবর্তনশীল হয়
একটি "setjmp" কল দ্বারা clobbered হতে পারে. C++ তে, সতর্ক করুন যদি একটি নন-স্ট্যাটিক রেফারেন্স বা অ-
স্থির const সদস্য কনস্ট্রাক্টর ছাড়া একটি ক্লাসে উপস্থিত হয়।

আপনি যদি কোড সম্পর্কে সতর্ক করতে চান যা ভেরিয়েবলের অপ্রবর্তিত মান ব্যবহার করে
এর নিজস্ব ইনিশিয়ালাইজার, ব্যবহার করুন -ভিনিত-স্বয়ং বিকল্প।

এই সতর্কতাগুলি কাঠামোর পৃথক অপ্রচলিত বা ক্লোবারযুক্ত উপাদানগুলির জন্য ঘটে,
ইউনিয়ন বা অ্যারে ভেরিয়েবল এবং সেইসাথে অপ্রবর্তিত বা ক্লোবার করা ভেরিয়েবলগুলির জন্য
সার্বিকভাবে. এগুলি "অস্থির" ঘোষিত ভেরিয়েবল বা উপাদানগুলির জন্য ঘটে না। কারণ
এই সতর্কতাগুলি অপ্টিমাইজেশান, সঠিক ভেরিয়েবল বা উপাদানগুলির উপর নির্ভর করে যার জন্য সেখানে৷
সতর্কতাগুলি সুনির্দিষ্ট অপ্টিমাইজেশান বিকল্প এবং ব্যবহৃত GCC সংস্করণের উপর নির্ভর করে।

মনে রাখবেন যে একটি ভেরিয়েবল সম্পর্কে কোন সতর্কতা নাও থাকতে পারে যা শুধুমাত্র a গণনা করতে ব্যবহৃত হয়
মান যেটি নিজে ব্যবহার করা হয় না, কারণ এই ধরনের গণনা ডেটা প্রবাহ দ্বারা মুছে ফেলা হতে পারে
সতর্কতা মুদ্রিত হওয়ার আগে বিশ্লেষণ।

-Wmaybe-uninitialized
একটি স্বয়ংক্রিয় ভেরিয়েবলের জন্য, যদি ফাংশন এন্ট্রি থেকে একটি ব্যবহারের জন্য একটি পথ বিদ্যমান থাকে
ভেরিয়েবল যেটি আরম্ভ করা হয়েছে, কিন্তু কিছু অন্যান্য পাথ আছে যার জন্য
পরিবর্তনশীল আরম্ভ করা হয় না, কম্পাইলার একটি সতর্কতা নির্গত করে যদি এটি প্রমাণ করতে না পারে
অপ্রবর্তিত পাথ রান টাইমে কার্যকর করা হয় না। এই সতর্কতা ঐচ্ছিক করা হয়
কারণ কোডটি সঠিক হওয়ার কারণগুলি দেখার জন্য GCC যথেষ্ট স্মার্ট নয়৷
একটি ত্রুটি আছে প্রদর্শিত হওয়া সত্ত্বেও. এটি কীভাবে ঘটতে পারে তার একটি উদাহরণ এখানে:

{
ইন্ট এক্স;
সুইচ (y)
{
কেস 1: x = 1;
বিরতি;
কেস 2: x = 4;
বিরতি;
কেস 3: x = 5;
}
foo (x);
}

যদি "y" এর মান সর্বদা 1, 2 বা 3 হয়, তাহলে "x" সর্বদা আরম্ভ করা হয়, কিন্তু GCC
এটা জানে না। সতর্কতা দমন করার জন্য, আপনাকে একটি ডিফল্ট কেস প্রদান করতে হবে
জাহির করা(0) বা অনুরূপ কোড।

এই বিকল্পটি সতর্ক করে যখন একটি অ-উদ্বায়ী স্বয়ংক্রিয় ভেরিয়েবল a দ্বারা পরিবর্তিত হতে পারে
"লংজেএমপি" এ কল করুন। এই সতর্কতাগুলিও শুধুমাত্র অপ্টিমাইজ করার ক্ষেত্রেই সম্ভব৷
সংকলন

কম্পাইলার শুধুমাত্র "setjmp" কলগুলি দেখে। "লংজেএমপি" কোথায় হবে তা জানা যায় না
ডাকা আসলে, একটি সংকেত হ্যান্ডলার কোডের যেকোনো সময়ে এটিকে কল করতে পারে। হিসেবে
ফলস্বরূপ, আপনি একটি সতর্কতা পেতে পারেন এমনকি যখন আসলে কোন সমস্যা নেই কারণ "লংজেএমপি"
আসলে এমন জায়গায় ডাকা যাবে না যা সমস্যা সৃষ্টি করবে।

আপনি যে সমস্ত ফাংশন ব্যবহার করেন তা ঘোষণা করলে কিছু মিথ্যা সতর্কতা এড়ানো যেতে পারে
কখনই "নরেটার্ন" হিসাবে ফিরে আসবেন না।

এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল or -ওয়েক্সট্রা.

-অজানা-প্রাগমাস
সতর্ক করুন যখন একটি "#pragma" নির্দেশের সম্মুখীন হয় যা GCC দ্বারা বোঝা যায় না। এই যদি
কমান্ড-লাইন বিকল্প ব্যবহার করা হয়, এমনকি সিস্টেমে অজানা প্র্যাগমাসের জন্য সতর্কতা জারি করা হয়
হেডার ফাইল। সতর্কবাণী শুধুমাত্র দ্বারা সক্রিয় করা হলে এই ক্ষেত্রে নয় -ওয়াল
কমান্ড লাইন বিকল্প।

-নো-প্রাগমাস
pragmas এর অপব্যবহার সম্পর্কে সতর্ক করবেন না, যেমন ভুল প্যারামিটার, অবৈধ সিনট্যাক্স বা
pragmas মধ্যে দ্বন্দ্ব. আরো দেখুন -অজানা-প্রাগমাস.

-WSTRICT-LIASING
এই বিকল্প শুধুমাত্র সক্রিয় যখন -ট্রিক্ট-এলিয়াসিং সক্রিয়. এটা কোড সম্পর্কে সতর্ক করে যে
কম্পাইলার অপ্টিমাইজেশনের জন্য ব্যবহার করছে এমন কঠোর অ্যালিয়াসিং নিয়ম ভঙ্গ করতে পারে।
সতর্কতা সব ক্ষেত্রে ধরা পড়ে না, কিন্তু আরো সাধারণ ধরার চেষ্টা করে
ক্ষতি এটা অন্তর্ভুক্ত করা হয় -ওয়াল। এটি সমান -WSTRICT-LIASING = 3

-WSTRICT-LIASING = n
এই বিকল্প শুধুমাত্র সক্রিয় যখন -ট্রিক্ট-এলিয়াসিং সক্রিয়. এটা কোড সম্পর্কে সতর্ক করে যে
কম্পাইলার অপ্টিমাইজেশনের জন্য ব্যবহার করছে এমন কঠোর অ্যালিয়াসিং নিয়ম ভঙ্গ করতে পারে।
উচ্চ স্তরগুলি উচ্চ নির্ভুলতার সাথে মিলে যায় (কম মিথ্যা ইতিবাচক)। উচ্চতর স্তর
এছাড়াও আরো প্রচেষ্টা অনুরূপ, উপায় অনুরূপ -O কাজ করে। -WSTRICT-LIASING is
সমতুল্য -WSTRICT-LIASING = 3.

লেভেল 1: সবচেয়ে আক্রমনাত্মক, দ্রুত, কম সঠিক। উচ্চ স্তরের হলে সম্ভবত দরকারী
সতর্ক করবেন না কিন্তু -ট্রিক্ট-এলিয়াসিং এখনও কোডটি ভঙ্গ করে, কারণ এতে খুব কম মিথ্যা রয়েছে
নেতিবাচক যাইহোক, এটা অনেক মিথ্যা ইতিবাচক আছে. সমস্ত পয়েন্টার রূপান্তরের জন্য সতর্ক করে
সম্ভাব্য বেমানান প্রকারের মধ্যে, এমনকি যদি কখনো ডিরেফারেন্স না করা হয়। সামনে দৌড়ায়
শুধুমাত্র শেষ।

লেভেল 2: আক্রমনাত্মক, দ্রুত, খুব সুনির্দিষ্ট নয়। এখনও অনেক মিথ্যা ইতিবাচক থাকতে পারে (না
যদিও লেভেল 1 যত বেশি), এবং কিছু মিথ্যা নেতিবাচক (কিন্তু সম্ভবত লেভেল 1 এর চেয়ে বেশি)।
লেভেল 1 এর বিপরীতে, এটি শুধুমাত্র সতর্ক করে দেয় যখন একটি ঠিকানা নেওয়া হয়। অসম্পূর্ণ প্রকার সম্পর্কে সতর্ক করে।
শুধুমাত্র সামনের প্রান্তে চলে।

লেভেল 3 (এর জন্য ডিফল্ট -WSTRICT-LIASING): খুব কম মিথ্যা ইতিবাচক এবং কিছু থাকা উচিত
মিথ্যা নেতিবাচক যখন অপ্টিমাইজেশান সক্ষম করা থাকে তখন 1 বা 2 স্তরের তুলনায় কিছুটা ধীর।
সামনের প্রান্তে সাধারণ শ্লেষ + ডিরেফারেন্স প্যাটার্নের যত্ন নেয়:
"*(int*)&some_float"। অপ্টিমাইজেশান সক্ষম হলে, এটি পিছনের প্রান্তেও চলে, যেখানে
এটি প্রবাহ-সংবেদনশীল পয়েন্ট-টু তথ্য ব্যবহার করে একাধিক স্টেটমেন্ট কেস নিয়ে কাজ করে।
রূপান্তরিত পয়েন্টার ডিরেফারেন্স করা হলে শুধুমাত্র সতর্ক করে। অসম্পূর্ণ সম্পর্কে সতর্ক করে না
ধরনের।

-Wstrict-ওভারফ্লো
-WSTRICT-overflow =n
এই বিকল্প শুধুমাত্র সক্রিয় যখন -fstrict-ওভারফ্লো সক্রিয়. এটি মামলা সম্পর্কে সতর্ক করে
যেখানে কম্পাইলার অনুমানের উপর ভিত্তি করে অপ্টিমাইজ করে যে স্বাক্ষরিত ওভারফ্লো হয় না
ঘটবে নোট করুন যে এটি সমস্ত ক্ষেত্রে সতর্ক করে না যেখানে কোডটি ওভারফ্লো হতে পারে: এটি
শুধুমাত্র এমন ক্ষেত্রে সতর্ক করে যেখানে কম্পাইলার কিছু অপ্টিমাইজেশান প্রয়োগ করে। এইভাবে এই
সতর্কতা অপ্টিমাইজেশান স্তরের উপর নির্ভর করে।

একটি অপ্টিমাইজেশান যা অনুমান করে যে স্বাক্ষরিত ওভারফ্লো ঘটবে না তা পুরোপুরি নিরাপদ
জড়িত ভেরিয়েবলের মানগুলি এমন যে ওভারফ্লো কখনই হয় না, আসলে,
ঘটবে তাই এই সতর্কতা সহজেই একটি মিথ্যা ইতিবাচক দিতে পারে: কোড সম্পর্কে একটি সতর্কতা
যে আসলে একটি সমস্যা না. গুরুত্বপূর্ণ বিষয়গুলিতে ফোকাস করতে সাহায্য করার জন্য, বেশ কয়েকটি সতর্কতা
স্তর সংজ্ঞায়িত করা হয়। অনির্ধারিত স্বাক্ষরিত ওভারফ্লো ব্যবহারের জন্য কোন সতর্কতা জারি করা হয় না
একটি লুপের কতগুলি পুনরাবৃত্তির প্রয়োজন তা অনুমান করার সময়, বিশেষ করে নির্ধারণ করার সময়
একটি লুপ আদৌ কার্যকর করা হবে কিনা।

-WSTRICT-overflow = 1
সন্দেহজনক এবং এড়ানো সহজ উভয় ক্ষেত্রেই সতর্ক করুন। উদাহরণস্বরূপ, সঙ্গে
-fstrict-ওভারফ্লো, কম্পাইলার "x + 1 > x" থেকে 1 সরল করে। এই স্তরের
-Wstrict-ওভারফ্লো দ্বারা সক্রিয় করা হয় -ওয়াল; উচ্চ স্তরের হয় না, এবং হতে হবে
স্পষ্টভাবে অনুরোধ করা হয়েছে।

-WSTRICT-overflow = 2
এছাড়াও অন্যান্য ক্ষেত্রে সতর্ক করুন যেখানে একটি তুলনা একটি ধ্রুবকের সাথে সরলীকৃত হয়। জন্য
উদাহরণ: "abs (x) >= 0"। এই শুধুমাত্র যখন সরলীকৃত করা যেতে পারে -fstrict-ওভারফ্লো হয়
প্রভাব, কারণ "abs (INT_MIN)" "INT_MIN" এ ওভারফ্লো হয়, যা শূন্যেরও কম।
-Wstrict-ওভারফ্লো (কোন স্তর ছাড়া) একই -WSTRICT-overflow = 2.

-WSTRICT-overflow = 3
এছাড়াও অন্যান্য ক্ষেত্রে সতর্ক করুন যেখানে তুলনা সরলীকৃত হয়। যেমন: "x + 1
> 1" সরলীকৃত করা হয়েছে "x > 0"।

-WSTRICT-overflow = 4
উপরের ক্ষেত্রে অন্তর্ভুক্ত নয় এমন অন্যান্য সরলীকরণ সম্পর্কেও সতর্ক করুন। জন্য
উদাহরণ: "(x * 10) / 5" কে "x * 2" এ সরলীকৃত করা হয়েছে।

-WSTRICT-overflow = 5
এছাড়াও এমন ক্ষেত্রে সতর্ক করুন যেখানে কম্পাইলার একটি ধ্রুবকের মাত্রা হ্রাস করে
একটি তুলনা জড়িত. উদাহরণস্বরূপ: "x + 2 > y" কে সরলীকৃত করা হয়েছে "x + 1 >= y"।
এটি শুধুমাত্র সর্বোচ্চ সতর্কতা স্তরে রিপোর্ট করা হয়েছে কারণ এই সরলীকরণ
অনেক তুলনার ক্ষেত্রে প্রযোজ্য, তাই এই সতর্কতা স্তরটি একটি খুব বড় সংখ্যা দেয়
মিথ্যা ইতিবাচক.

-Wsuggest-rtribute =[বিশুদ্ধ|const|ফেরত নেই|বিন্যাস]
এমন ক্ষেত্রে সতর্ক করুন যেখানে একটি বৈশিষ্ট্য যোগ করা উপকারী হতে পারে। বর্তমানে গুণাবলী
সমর্থিত নীচে তালিকাভুক্ত করা হয়.

-Wsuggest-attribute=শুদ্ধ
-Wsuggest- অ্যাট্রিবিউট = কনস্ট
-Wsuggest-rtribute = Noreturn
ফাংশন সম্পর্কে সতর্ক করুন যা "বিশুদ্ধ", "কনস্ট" বা বৈশিষ্ট্যগুলির জন্য প্রার্থী হতে পারে
"ফেরত নেই". কম্পাইলার শুধুমাত্র অন্যান্য কম্পাইলেশনে দৃশ্যমান ফাংশনগুলির জন্য সতর্ক করে
ইউনিট বা ("বিশুদ্ধ" এবং "কনস্ট" এর ক্ষেত্রে) যদি এটি প্রমাণ করতে না পারে যে ফাংশন
স্বাভাবিকভাবে ফিরে আসে। একটি ফাংশন সাধারণত রিটার্ন করে যদি এতে অসীম না থাকে
লুপ বা অস্বাভাবিকভাবে প্রত্যাবর্তন ছুঁড়ে, "abort()" কল করে বা ফাঁদে ফেলে। এই
বিশ্লেষণ বিকল্প প্রয়োজন -ফিপা-বিশুদ্ধ-কনস্ট, যা ডিফল্টরূপে সক্রিয় করা হয় -O এবং
ঊর্ধ্বতন. উচ্চতর অপ্টিমাইজেশান স্তর বিশ্লেষণের সঠিকতা উন্নত করে।

-Wsuggest-rtribute = ফর্ম্যাট
-উমিসিং-ফর্ম্যাট-অ্যাট্রিবিউট
ফাংশন পয়েন্টার সম্পর্কে সতর্ক করুন যা "ফরম্যাট" বৈশিষ্ট্যগুলির জন্য প্রার্থী হতে পারে।
মনে রাখবেন এগুলি শুধুমাত্র সম্ভাব্য প্রার্থী, সম্পূর্ণ নয়। GCC অনুমান করে যে
"ফরম্যাট" বৈশিষ্ট্য সহ ফাংশন পয়েন্টার যা অ্যাসাইনমেন্টে ব্যবহৃত হয়,
প্রারম্ভিকতা, প্যারামিটার পাসিং বা রিটার্ন বিবৃতি একটি সংশ্লিষ্ট থাকা উচিত
"ফরম্যাট" অ্যাট্রিবিউটের ফলে টাইপ। অর্থাৎ বাম-পাশে
অ্যাসাইনমেন্ট বা ইনিশিয়ালাইজেশন, প্যারামিটার ভেরিয়েবলের ধরন বা রিটার্ন
যথাক্রমে ধারণকারী ফাংশনের প্রকারেরও একটি "ফরম্যাট" বৈশিষ্ট্য থাকা উচিত
সতর্কতা এড়াতে।

GCC ফাংশন সংজ্ঞা সম্পর্কে সতর্ক করে যা "ফরম্যাট" এর প্রার্থী হতে পারে
গুণাবলী আবার, এই শুধুমাত্র সম্ভাব্য প্রার্থী. GCC অনুমান করে যে "ফরম্যাট"
বৈশিষ্ট্যগুলি যে কোনও ফাংশনের জন্য উপযুক্ত হতে পারে যা একটি ফাংশনকে কল করে
"vprintf" বা "vscanf", কিন্তু এটি সবসময় নাও হতে পারে, এবং কিছু ফাংশন
যার জন্য "ফরম্যাট" বৈশিষ্ট্যগুলি উপযুক্ত তা সনাক্ত করা যাবে না।

-ওয়ারে-সীমা
এই বিকল্প শুধুমাত্র সক্রিয় যখন -এফটি-ভিআরপি সক্রিয় (এর জন্য ডিফল্ট -ও2 এবং উপরে). এটা
অ্যারের সাবস্ক্রিপ্ট সম্পর্কে সতর্ক করে যা সবসময় সীমার বাইরে থাকে। এই সতর্কতা
দ্বারা সক্রিয় -ওয়াল.

-নো-ডিআইভি-বাই-জিরো
শূন্য দ্বারা কম্পাইল-টাইম পূর্ণসংখ্যা বিভাজন সম্পর্কে সতর্ক করবেন না। দ্বারা ভাসমান-বিন্দু বিভাজন
শূন্য সম্পর্কে সতর্ক করা হয় না, কারণ এটি অসীমতা এবং প্রাপ্তির একটি বৈধ উপায় হতে পারে
NaNs

-Wsystem-headers
সিস্টেম হেডার ফাইলে পাওয়া গঠনের জন্য সতর্কতা বার্তা প্রিন্ট করুন। থেকে সতর্কবার্তা
সিস্টেম শিরোনামগুলি সাধারণত দমন করা হয়, অনুমান করে যে তারা সাধারণত করে না
বাস্তব সমস্যা নির্দেশ করে এবং শুধুমাত্র কম্পাইলার আউটপুট পড়তে কঠিন করে তুলবে। ব্যবহার
এই কমান্ড-লাইন বিকল্পটি জিসিসিকে সিস্টেম হেডার থেকে সতর্কতা নির্গত করতে বলে যেন তারা
ব্যবহারকারী কোড ঘটেছে. যাইহোক, নোট করুন যে ব্যবহার -ওয়াল এই বিকল্পের সাথে একযোগে
না না সিস্টেম হেডারে অজানা pragmas সম্পর্কে সতর্ক করুন---তার জন্য, -অজানা-প্রাগমাস
অবশ্যই ব্যবহার করা উচিত।

-WTRAMPOLINES
নেস্টেড ফাংশন পয়েন্টার জন্য উত্পন্ন trampolines সম্পর্কে সতর্ক করুন.

একটি ট্রামপোলিন হল ডেটা বা কোডের একটি ছোট অংশ যা চালানোর সময় তৈরি হয়
স্ট্যাকের সময় যখন একটি নেস্টেড ফাংশনের ঠিকানা নেওয়া হয়, এবং
নেস্টেড ফাংশনকে পরোক্ষভাবে কল করতে ব্যবহৃত হয়। কিছু লক্ষ্যের জন্য, এটা
শুধুমাত্র তথ্য দ্বারা গঠিত এবং এইভাবে কোন বিশেষ চিকিত্সার প্রয়োজন হয় না। কিন্তু,
বেশিরভাগ লক্ষ্যের জন্য, এটি কোড দ্বারা গঠিত এবং এইভাবে স্ট্যাকের প্রয়োজন হয়
প্রোগ্রামটি সঠিকভাবে কাজ করার জন্য এক্সিকিউটেবল করতে হবে।

-Wfloat-সমান
সমতা তুলনাতে ভাসমান-বিন্দু মান ব্যবহার করা হলে সতর্ক করুন।

এর পিছনে ধারণাটি হল যে কখনও কখনও এটি (প্রোগ্রামারের জন্য) সুবিধাজনক
ফ্লোটিং-পয়েন্ট মানগুলিকে অসীম সুনির্দিষ্ট বাস্তব সংখ্যার অনুমান হিসাবে বিবেচনা করুন।
আপনি যদি এটি করছেন, তাহলে আপনাকে গণনা করতে হবে (কোড বিশ্লেষণ করে, বা কিছুতে
অন্য উপায়) গণনা প্রবর্তিত সর্বাধিক বা সম্ভাব্য সর্বাধিক ত্রুটি, এবং
তুলনা করার সময় এটির অনুমতি দিন (এবং আউটপুট তৈরি করার সময়, কিন্তু এটি একটি
ভিন্ন সমস্যা)। বিশেষ করে, সমতার জন্য পরীক্ষার পরিবর্তে, আপনার পরীক্ষা করা উচিত
দুটি মান ওভারল্যাপ রেঞ্জ আছে কিনা তা দেখতে; এবং এই সঙ্গে করা হয়
রিলেশনাল অপারেটর, তাই সমতা তুলনা সম্ভবত ভুল।

- ঐতিহ্যগত (শুধুমাত্র C এবং উদ্দেশ্য-C)
প্রথাগত এবং ISO C-তে ভিন্নভাবে আচরণ করে এমন কিছু নির্মাণ সম্পর্কে সতর্ক করুন
আইএসও সি কনস্ট্রাক্ট সম্পর্কে সতর্ক করুন যার কোন প্রথাগত সি সমতুল্য নেই, এবং/অথবা সমস্যাযুক্ত
নির্মাণ যে এড়ানো উচিত.

· ম্যাক্রো প্যারামিটার যা ম্যাক্রো বডিতে স্ট্রিং লিটারেলের মধ্যে উপস্থিত হয়। ভিতরে
প্রথাগত C ম্যাক্রো প্রতিস্থাপন স্ট্রিং লিটারালের মধ্যে হয়, কিন্তু ISO C-তে
এটা না.

প্রথাগত সি-তে, কিছু প্রিপ্রসেসর নির্দেশাবলী বিদ্যমান ছিল না। প্রথাগত
প্রিপ্রসেসররা শুধুমাত্র একটি লাইনকে একটি নির্দেশ হিসাবে বিবেচনা করে যদি # কলামে হাজির
লাইনে 1. অতএব - ঐতিহ্যগত নির্দেশাবলী সম্পর্কে সতর্ক করে যে ঐতিহ্যগত সি
বোঝে কিন্তু উপেক্ষা করে কারণ # প্রথম অক্ষর হিসাবে প্রদর্শিত হবে না
লাইন. এটি আপনাকে নির্দেশাবলী লুকানোর পরামর্শ দেয় #প্রাগমা দ্বারা বোঝা যায় না
তাদের ইন্ডেন্ট করে ঐতিহ্যগত C. কিছু ঐতিহ্যগত বাস্তবায়ন করে না
চেনা #এলিফ, তাই এই বিকল্পটি সম্পূর্ণরূপে এড়ানোর পরামর্শ দেয়।

একটি ফাংশনের মতো ম্যাক্রো যা আর্গুমেন্ট ছাড়াই দেখা যায়।

· ইউনারি প্লাস অপারেটর।

· দ্য U পূর্ণসংখ্যা ধ্রুবক প্রত্যয়, বা F or L floating-point ধ্রুবক প্রত্যয়.
(প্রথাগত সি সমর্থন করে L পূর্ণসংখ্যা ধ্রুবকের উপর প্রত্যয়।) নোট করুন, এগুলো
প্রত্যয়গুলি বেশিরভাগ আধুনিক সিস্টেমের সিস্টেম হেডারে সংজ্ঞায়িত ম্যাক্রোগুলিতে উপস্থিত হয়,
যেমন _মিন/_ম্যাক্স "এ ম্যাক্রো ইউজার কোডে এই ম্যাক্রোর ব্যবহার হতে পারে
সাধারণত জাল সতর্কবার্তার দিকে নিয়ে যায়, তবে GCC এর ইন্টিগ্রেটেড প্রিপ্রসেসরে রয়েছে
এই ক্ষেত্রে সতর্কতা এড়াতে যথেষ্ট প্রেক্ষাপট।

· একটি ফাংশন একটি ব্লকে বাহ্যিক ঘোষণা করে এবং তারপর শেষ হওয়ার পরে ব্যবহৃত হয়
ব্লক।

একটি "সুইচ" স্টেটমেন্ট "লং" টাইপের একটি অপারেন্ড আছে।

· একটি নন-"স্ট্যাটিক" ফাংশন ঘোষণা একটি "স্ট্যাটিক" এককে অনুসরণ করে। এই গঠন না
কিছু ঐতিহ্যগত সি কম্পাইলার দ্বারা গৃহীত।

· একটি পূর্ণসংখ্যা ধ্রুবকের ISO প্রকারের তার থেকে আলাদা প্রস্থ বা স্বাক্ষর থাকে
ঐতিহ্যগত প্রকার। ধ্রুবকের ভিত্তি দশ হলেই এই সতর্কতা জারি করা হয়।
অর্থাৎ হেক্সাডেসিমেল বা অক্টাল মান, যা সাধারণত বিট প্যাটার্নের প্রতিনিধিত্ব করে, তা নয়
সম্পর্কে সতর্ক করেছেন।

· ISO স্ট্রিং কনক্যাটেনেশনের ব্যবহার সনাক্ত করা হয়েছে।

স্বয়ংক্রিয় সমষ্টির সূচনা।

· লেবেলের সাথে শনাক্তকারীর দ্বন্দ্ব। ঐতিহ্যগত C-এর জন্য আলাদা নামস্থানের অভাব রয়েছে
লেবেল.

· ইউনিয়নের সূচনা। আরম্ভকারী শূন্য হলে, সতর্কতা বাদ দেওয়া হয়।
ব্যবহারকারী কোডে শূন্য ইনিশিয়ালাইজার প্রদর্শিত হয় এমন ধারণার অধীনে এটি করা হয়
অনুপস্থিত ইনিশিয়ালাইজার সতর্কতা এড়াতে যেমন "__STDC__" এর উপর শর্তযুক্ত এবং নির্ভর করে
প্রথাগত C ক্ষেত্রে ডিফল্ট সূচনাকে শূন্য করা হয়।

· স্থির/ফ্লোটিং-পয়েন্ট মান এবং তদ্বিপরীত মধ্যে প্রোটোটাইপ দ্বারা রূপান্তর। দ্য
প্রথাগত সি এর সাথে কম্পাইল করার সময় এই প্রোটোটাইপের অনুপস্থিতি গুরুতর কারণ
সমস্যা এটি সম্ভাব্য রূপান্তর সতর্কতার একটি উপসেট; সম্পূর্ণ সেটের জন্য
ব্যবহার ঐতিহ্যগত-রূপান্তর.

· ISO C শৈলী ফাংশন সংজ্ঞা ব্যবহার। ইচ্ছাকৃতভাবে এই সতর্কতা না জারি
প্রোটোটাইপ ঘোষণা বা বৈচিত্র্যময় ফাংশনের জন্য কারণ এই ISO C বৈশিষ্ট্যগুলি
Libiberty এর ঐতিহ্যগত C সামঞ্জস্যতা ম্যাক্রো ব্যবহার করার সময় আপনার কোডে উপস্থিত হয়,
"PARAMS" এবং "VPARAMS"। নেস্টেড ফাংশনগুলির জন্য এই সতর্কতাটিও বাইপাস করা হয়৷
কারণ সেই বৈশিষ্ট্যটি ইতিমধ্যেই একটি GCC এক্সটেনশন এবং তাই প্রাসঙ্গিক নয়৷
ঐতিহ্যগত সি সামঞ্জস্য।

ঐতিহ্যগত-রূপান্তর (শুধুমাত্র C এবং উদ্দেশ্য-C)
সতর্ক করুন যদি একটি প্রোটোটাইপ একটি প্রকার রূপান্তর ঘটায় যা ঘটবে তার থেকে ভিন্ন৷
একটি প্রোটোটাইপের অনুপস্থিতিতে একই যুক্তিতে। এর মধ্যে রূপান্তর অন্তর্ভুক্ত
স্থির বিন্দু ভাসমান এবং তদ্বিপরীত, এবং রূপান্তর প্রস্থ পরিবর্তন বা
একটি নির্দিষ্ট-পয়েন্ট আর্গুমেন্টের স্বাক্ষরতা যখন ডিফল্ট প্রচারের মতো একই।

-বিবৃতি-পরবর্তী ঘোষণা (শুধুমাত্র C এবং উদ্দেশ্য-C)
একটি ব্লকে একটি বিবৃতির পরে একটি ঘোষণা পাওয়া গেলে সতর্ক করুন৷ এই নির্মাণ, পরিচিত
C++ থেকে, ISO C99 এর সাথে চালু করা হয়েছিল এবং ডিফল্টভাবে GCC-তে অনুমোদিত। এইটা না
ISO C90 দ্বারা সমর্থিত এবং GCC 3.0 এর আগে GCC সংস্করণ দ্বারা সমর্থিত ছিল না।

-উন্ডেফ
একটি অনির্ধারিত শনাক্তকারীর মূল্যায়ন করা হলে সতর্ক করুন৷ #যদি নির্দেশ

-Wno-endif-লেবেল
সতর্ক করবেন না যখনই একটি # আরও বা একটি #endif টেক্সট দ্বারা অনুসরণ করা হয়.

-ছায়া
যখনই একটি স্থানীয় ভেরিয়েবল বা টাইপ ডিক্লারেশন অন্য ভেরিয়েবলকে ছায়া দেয় তখন সতর্ক করুন,
প্যারামিটার, টাইপ, বা ক্লাস মেম্বার (C++ এ), অথবা যখনই একটি বিল্ট-ইন ফাংশন থাকে
ছায়াযুক্ত মনে রাখবেন যে C++ এ, কম্পাইলার সতর্ক করে যদি কোনো স্থানীয় ভেরিয়েবল কোনো স্পষ্ট ছায়া দেয়
typedef, কিন্তু না যদি এটি একটি struct/class/enum ছায়া দেয়।

-Wlarger-এর চেয়ে =লেন
যখনই কোন বস্তুর থেকে বড় হয় তখন সতর্ক করুন লেন বাইট সংজ্ঞায়িত করা হয়।

-Wframe-এর চেয়ে বড়-=লেন
একটি ফাংশন ফ্রেমের আকার এর থেকে বড় হলে সতর্ক করুন৷ লেন বাইট গণনা সম্পন্ন
স্ট্যাক ফ্রেমের আকার নির্ধারণ করতে আনুমানিক এবং রক্ষণশীল নয়। আসল
প্রয়োজনীয়তা এর চেয়ে কিছুটা বেশি হতে পারে লেন এমনকি যদি আপনি একটি সতর্কতা না পান। ভিতরে
উপরন্তু, "অ্যালোকা", পরিবর্তনশীল-দৈর্ঘ্যের অ্যারে, বা সম্পর্কিত মাধ্যমে বরাদ্দ করা যেকোনো স্থান
a ইস্যু করা হবে কিনা তা নির্ধারণ করার সময় কম্পাইলার দ্বারা constructs অন্তর্ভুক্ত করা হয় না
সাবধানবাণী।

-Wno-মুক্ত-ননহেপ-বস্তু
স্তূপে বরাদ্দ করা হয়নি এমন একটি বস্তুকে মুক্ত করার চেষ্টা করার সময় সতর্ক করবেন না।

-Wstack- ব্যবহার =লেন
একটি ফাংশনের স্ট্যাক ব্যবহার এর থেকে বড় হলে সতর্ক করুন৷ লেন বাইট গণনা
স্ট্যাক ব্যবহার রক্ষণশীল নির্ধারণ করতে সম্পন্ন করা হয়. "অ্যালোকা" এর মাধ্যমে বরাদ্দ করা যেকোনো স্থান
পরিবর্তনশীল-দৈর্ঘ্য অ্যারে, বা সম্পর্কিত নির্মাণ কম্পাইলার দ্বারা অন্তর্ভুক্ত করা হয় যখন
সতর্কতা জারি করা হবে কিনা তা নির্ধারণ করা।

বার্তাটি আউটপুটের সাথে সামঞ্জস্য রেখে -fstack-ব্যবহার.

· যদি স্ট্যাকের ব্যবহার সম্পূর্ণরূপে স্থির হয় কিন্তু নির্দিষ্ট পরিমাণ অতিক্রম করে, তাহলে তা হল:

সতর্কতা: স্ট্যাক ব্যবহার 1120 বাইট

· যদি স্ট্যাকের ব্যবহার (আংশিকভাবে) গতিশীল কিন্তু আবদ্ধ হয়, তাহলে তা হল:

সতর্কতা: স্ট্যাক ব্যবহার 1648 বাইট হতে পারে

· যদি স্ট্যাকের ব্যবহার (আংশিকভাবে) গতিশীল হয় এবং আবদ্ধ না হয়, তাহলে তা হল:

সতর্কতা: স্ট্যাক ব্যবহার সীমাহীন হতে পারে

-উনসেফ-লুপ-অপ্টিমাইজেশন
সতর্ক করুন যদি লুপটি অপ্টিমাইজ করা না যায় কারণ কম্পাইলার কিছু ধরে নিতে পারে না
লুপ সূচকের সীমানা। সঙ্গে -ফানসেফ-লুপ-অপ্টিমাইজেশন কম্পাইলার হলে সতর্ক করুন
এই ধরনের অনুমান করে।

-নো-পেডান্টিক-এমএস-ফর্ম্যাট (শুধুমাত্র MinGW লক্ষ্যমাত্রা)
সঙ্গে সংমিশ্রণে ব্যবহার করা হলে -Wformat এবং -শিক্ষার্থী GNU এক্সটেনশন ছাড়া, এটি
বিকল্পটি অ-আইএসও "প্রিন্টএফ" / "স্ক্যানএফ" বিন্যাস প্রস্থ নির্দিষ্টকরণের বিষয়ে সতর্কতা নিষ্ক্রিয় করে
"I32", "I64", এবং "I" উইন্ডোজ টার্গেটে ব্যবহৃত হয়, যা MS রানটাইমের উপর নির্ভর করে।

-Wpointer-rith
যেকোন কিছু সম্পর্কে সতর্ক করুন যা একটি ফাংশনের প্রকারের "আকার" বা "অকার্যকর" এর উপর নির্ভর করে। GNU C
"অকার্যকর *" এর সাথে গণনার সুবিধার জন্য এই ধরনের 1 এর আকার নির্ধারণ করে
পয়েন্টার এবং ফাংশন পয়েন্টার. C++ এ, একটি পাটিগণিত অপারেশনের সময়ও সতর্ক করুন
"NULL" জড়িত। এই সতর্কতা দ্বারা সক্রিয় করা হয় -ডব্লিউডান্টিক.

-Wtype-সীমা
সীমিত পরিসরের কারণে একটি তুলনা সর্বদা সত্য বা সর্বদা মিথ্যা হলে সতর্ক করুন
ডেটা টাইপ, কিন্তু ধ্রুবক অভিব্যক্তির জন্য সতর্ক করবেন না। উদাহরণস্বরূপ, যদি স্বাক্ষর না করা হয় তবে সতর্ক করুন
ভেরিয়েবলকে শূন্যের সাথে তুলনা করা হয় < or >=. এই সতর্কতা দ্বারা সক্রিয় করা হয়
-ওয়েক্সট্রা.

-Wbad-ফাংশন-কাস্ট (শুধুমাত্র C এবং উদ্দেশ্য-C)
যখনই একটি ফাংশন কল একটি অ-ম্যাচিং ধরনের কাস্ট করা হয় তখন সতর্ক করুন৷ উদাহরণস্বরূপ, সতর্ক করুন যদি
"int malloc()" কে "anything *" তে কাস্ট করা হয়।

-Wc++-কম্প্যাট (শুধুমাত্র C এবং উদ্দেশ্য-C)
ISO C গঠন সম্পর্কে সতর্ক করুন যেগুলি ISO C এবং ISO-এর সাধারণ উপসেটের বাইরে
C++, যেমন "void *" থেকে একটি পয়েন্টার থেকে নন-"void"-এ অন্তর্নিহিত রূপান্তরের অনুরোধ
টাইপ করুন।

-Wc++11-কম্প্যাট (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
C++ নির্মাণ সম্পর্কে সতর্ক করুন যার অর্থ ISO C++ 1998 এবং ISO C++ 2011-এর মধ্যে আলাদা,
যেমন, ISO C++ 1998-এর শনাক্তকারী যা ISO C++ 2011-এর কীওয়ার্ড। এই সতর্কতা
সক্রিয় - সংকীর্ণ এবং দ্বারা সক্রিয় করা হয় -ওয়াল.

-Wcast-গুণ
লক্ষ্য টাইপ থেকে একটি টাইপ কোয়ালিফায়ার অপসারণ করার জন্য যখনই একটি পয়েন্টার কাস্ট করা হয় তখন সতর্ক করুন।
উদাহরণস্বরূপ, সতর্ক করুন যদি একটি "const char *" একটি সাধারণ "char *" এ কাস্ট করা হয়।

একটি অনিরাপদ উপায়ে একটি টাইপ কোয়ালিফায়ার প্রবর্তন করে এমন একটি কাস্ট তৈরি করার সময়ও সতর্ক করুন৷ জন্য
উদাহরণ, "char **" থেকে "const char **" কাস্ট করা অনিরাপদ, যেমন এই উদাহরণে:

/* p হল char ** মান। */
কনস্ট চর ** কিউ = (কনস্ট চর **) পি;
/* const char * এ শুধুমাত্র পঠনযোগ্য স্ট্রিং এর বরাদ্দ ঠিক আছে। */
*q = "স্ট্রিং";
/* এখন char** পয়েন্টার পয়েন্ট শুধুমাত্র-পঠন মেমরিতে। */
**p = 'b';

-Wcast-সারিবদ্ধ
যখনই একটি পয়েন্টার নিক্ষেপ করা হয় যাতে লক্ষ্যের প্রয়োজনীয় প্রান্তিককরণ হয় সতর্ক করুন
বৃদ্ধি উদাহরণস্বরূপ, সতর্ক করুন যদি একটি "char *" একটি "int *" এ কাস্ট করা হয় যেখানে মেশিনে
পূর্ণসংখ্যাগুলি কেবলমাত্র দুই বা চার-বাইটের সীমানায় অ্যাক্সেস করা যেতে পারে।

লিখুন-স্ট্রিং
সি কম্পাইল করার সময়, স্ট্রিং ধ্রুবকগুলি টাইপ করুন "const char[দৈর্ঘ্য]" যাতে অনুলিপি করা হয়
একটি নন-"const" "char *" পয়েন্টারে একজনের ঠিকানা একটি সতর্কতা তৈরি করে। এইগুলো
সতর্কতা আপনাকে কম্পাইল টাইম কোড খুঁজে পেতে সাহায্য করে যা একটি স্ট্রিং এ লেখার চেষ্টা করতে পারে
ধ্রুবক, কিন্তু শুধুমাত্র যদি আপনি ঘোষণায় "const" ব্যবহার করার বিষয়ে খুব সতর্ক থাকেন
এবং প্রোটোটাইপ। অন্যথায়, এটি একটি উপদ্রব মাত্র। এই কারণে আমরা বানাইনি -ওয়াল
এই সতর্কতা অনুরোধ.

C++ কম্পাইল করার সময়, স্ট্রিং লিটারাল থেকে "char"-এ অবচিত রূপান্তর সম্পর্কে সতর্ক করুন
*"। এই সতর্কতাটি সি++ প্রোগ্রামের জন্য ডিফল্টরূপে সক্রিয় থাকে।

-Wclobbered
ভেরিয়েবলের জন্য সতর্ক করুন যা দ্বারা পরিবর্তিত হতে পারে longjmp or vfork. এই সতর্কতাও
দ্বারা সক্রিয় -ওয়েক্সট্রা.

-Wconversion
অন্তর্নিহিত রূপান্তরগুলির জন্য সতর্ক করুন যা একটি মান পরিবর্তন করতে পারে। এই রূপান্তর অন্তর্ভুক্ত
বাস্তব এবং পূর্ণসংখ্যার মধ্যে, যেমন "abs (x)" যখন "x" হয় "দ্বৈত"; মধ্যে রূপান্তর
স্বাক্ষরিত এবং স্বাক্ষরবিহীন, যেমন "স্বাক্ষরবিহীন ui = -1"; এবং ছোট ধরনের রূপান্তর, যেমন
"sqrtf (M_PI)"। "abs(int) x)" এবং "ui = এর মতো স্পষ্ট কাস্টের জন্য সতর্ক করবেন না৷
(অস্বাক্ষরিত) -1", অথবা যদি "abs (2.0)" এর মত রূপান্তর দ্বারা মান পরিবর্তন না হয়।
স্বাক্ষরিত এবং স্বাক্ষরবিহীন পূর্ণসংখ্যার মধ্যে রূপান্তর সম্পর্কে সতর্কতা দ্বারা অক্ষম করা যেতে পারে
ব্যবহার -Wno-চিহ্ন-রূপান্তর.

C++ এর জন্য, ব্যবহারকারী-সংজ্ঞায়িত রূপান্তরগুলির জন্য বিভ্রান্তিকর ওভারলোড রেজোলিউশনের জন্যও সতর্ক করুন; এবং
রূপান্তরগুলি যেগুলি কখনই একটি টাইপ রূপান্তর অপারেটর ব্যবহার করে না: "অকার্যকর" তে রূপান্তর, একই৷
টাইপ, একটি বেস ক্লাস বা তাদের একটি রেফারেন্স। স্বাক্ষরিত মধ্যে রূপান্তর সম্পর্কে সতর্কতা
এবং স্বাক্ষরবিহীন পূর্ণসংখ্যা ডিফল্টরূপে C++ এ নিষ্ক্রিয় করা হয় যদি না -Wsign-রূপান্তর is
স্পষ্টভাবে সক্রিয়।

-Wno-রূপান্তর-শূন্য (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
"NULL" এবং নন-পয়েন্টার প্রকারের মধ্যে রূপান্তরের জন্য সতর্ক করবেন না। -Wconversion-null is
ডিফল্টরূপে সক্ষম।

-Wzero-as-নাল-পয়েন্টার-কনস্ট্যান্ট (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
যখন একটি আক্ষরিক '0' নাল পয়েন্টার ধ্রুবক হিসাবে ব্যবহৃত হয় তখন সতর্ক করুন। এই জন্য দরকারী হতে পারে
C++11-এ "nullptr"-এ রূপান্তর সহজতর করুন।

-উইসলেস-কাস্ট (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
সতর্ক করুন যখন একটি অভিব্যক্তি তার নিজস্ব ধরনের কাস্ট করা হয়।

-শরীর ভেজা
একটি খালি শরীর একটি ঘটলে সতর্ক করুন if, আর or do যখন বিবৃতি এই সতর্কতা
এছাড়াও দ্বারা সক্রিয় -ওয়েক্সট্রা.

-ভেনাম-তুলনা
বিভিন্ন গণনা করা মানের মধ্যে তুলনা সম্পর্কে সতর্ক করুন। C++ সংখ্যায়
শর্তসাপেক্ষ অভিব্যক্তিতে অমিলগুলিও নির্ণয় করা হয় এবং সতর্কতা সক্রিয় করা হয়
ডিফল্ট. সি-তে এই সতর্কতা সক্রিয় করা হয়েছে -ওয়াল.

-Wjump-মিস-ইনিট (সি, উদ্দেশ্য-সি শুধুমাত্র)
সতর্ক করুন যদি একটি "গোটো" বিবৃতি বা একটি "সুইচ" বিবৃতি পুরো জুড়ে এগিয়ে যায়
একটি ভেরিয়েবলের সূচনা, বা পরিবর্তনশীল হওয়ার পরে একটি লেবেলে পিছনের দিকে ঝাঁপিয়ে পড়ে
আরম্ভ এটি শুধুমাত্র ভেরিয়েবল সম্পর্কে সতর্ক করে যেগুলি যখন শুরু হয় তখন
ঘোষিত. এই সতর্কতা শুধুমাত্র C এবং Objective-C এর জন্য সমর্থিত; C++ এ এই ধরনের
শাখা কোনো ক্ষেত্রে একটি ত্রুটি.

-Wjump-মিস-ইনিট অন্তর্ভুক্ত করা হয় -Wc++-কম্প্যাট. এটি দিয়ে নিষ্ক্রিয় করা যেতে পারে
-উনো-জাম্প-মিস-ইনিট বিকল্প।

-সাইন-তুলনা
যখন স্বাক্ষরিত এবং স্বাক্ষরবিহীন মানগুলির মধ্যে তুলনা একটি ভুল তৈরি করতে পারে তখন সতর্ক করুন৷
ফলাফল যখন স্বাক্ষরিত মান আনসাইন্ডে রূপান্তরিত হয়। এই সতর্কতাও সক্রিয় করা হয়েছে৷
by -ওয়েক্সট্রা; অন্যান্য সতর্কবার্তা পেতে -ওয়েক্সট্রা এই সতর্কতা ছাড়া, ব্যবহার করুন -ওয়েক্সট্রা
-উনো-সাইন-তুলনা.

-Wsign-রূপান্তর
অন্তর্নিহিত রূপান্তরগুলির জন্য সতর্ক করুন যা একটি পূর্ণসংখ্যা মানের চিহ্ন পরিবর্তন করতে পারে, যেমন
একটি স্বাক্ষরবিহীন পূর্ণসংখ্যা ভেরিয়েবলে একটি স্বাক্ষরিত পূর্ণসংখ্যা অভিব্যক্তি বরাদ্দ করা। একটি সুস্পষ্ট
ঢালাই সতর্কতা নীরব করে। C-তে, এই বিকল্পটি দ্বারাও সক্রিয় করা হয়েছে -Wconversion.

-পয়েন্টার-মেমাক্সেসের আকার
নির্দিষ্ট স্ট্রিং এবং মেমরি অন্তর্নির্মিত ফাংশন সন্দেহজনক দৈর্ঘ্য পরামিতি জন্য সতর্ক করুন
যদি যুক্তি "sizeof" ব্যবহার করে। এই সতর্কবার্তাটি যেমন "মেমসেট (ptr, 0, sizeof
(ptr));" যদি "ptr" একটি অ্যারে না হয়, কিন্তু একটি পয়েন্টার হয়, এবং একটি সম্ভাব্য সমাধানের পরামর্শ দেয়, অথবা
সম্পর্কে "memcpy (&foo, ptr, sizeof (&foo));"। এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

-ওয়াডড্রেস
মেমরি ঠিকানার সন্দেহজনক ব্যবহার সম্পর্কে সতর্ক করুন। এর মধ্যে একটি ঠিকানা ব্যবহার করা অন্তর্ভুক্ত
একটি শর্তসাপেক্ষ অভিব্যক্তিতে ফাংশন, যেমন "void func(void); if (func)", এবং
একটি স্ট্রিং আক্ষরিক মেমরি ঠিকানার সাথে তুলনা, যেমন "if (x == "abc")"।
এই ধরনের ব্যবহারগুলি সাধারণত একটি প্রোগ্রামার ত্রুটি নির্দেশ করে: একটি ফাংশনের ঠিকানা সর্বদা
সত্যে মূল্যায়ন করে, তাই শর্তসাপেক্ষে তাদের ব্যবহার সাধারণত নির্দেশ করে যে প্রোগ্রামার
একটি ফাংশন কলে বন্ধনী ভুলে গেছি; এবং স্ট্রিং লিটারেলের সাথে তুলনা
অনির্দিষ্ট আচরণের ফলে এবং সি তে বহনযোগ্য নয়, তাই তারা সাধারণত নির্দেশ করে
যে প্রোগ্রামার "strcmp" ব্যবহার করতে চেয়েছিলেন। এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

-ব্লোগিকাল-ওপ
অভিব্যক্তিতে লজিক্যাল অপারেটরদের সন্দেহজনক ব্যবহার সম্পর্কে সতর্ক করুন। এই ব্যবহার অন্তর্ভুক্ত
প্রেক্ষাপটে যৌক্তিক অপারেটর যেখানে একটি বিট-ওয়াইজ অপারেটর প্রত্যাশিত।

-ওয়াগ্রিগেট-রিটার্ন
স্ট্রাকচার বা ইউনিয়ন প্রদানকারী কোনো ফাংশন সংজ্ঞায়িত বা বলা হলে সতর্ক করুন। (ভিতরে
ভাষা যেখানে আপনি একটি অ্যারে ফেরত দিতে পারেন, এটি একটি সতর্কতাও প্রকাশ করে।)

-Wno-আক্রমনাত্মক-লুপ-অপ্টিমাইজেশান
ক্রমাগত পুনরাবৃত্তির সংখ্যা সহ একটি লুপে সতর্ক করুন যদি কম্পাইলার অনির্ধারিত সনাক্ত করে
এক বা একাধিক পুনরাবৃত্তির সময় কিছু বিবৃতিতে আচরণ।

-Wno- বৈশিষ্ট্য
যদি একটি অপ্রত্যাশিত "__অ্যাট্রিবিউট__" ব্যবহার করা হয়, যেমন অচেনা গুণাবলী, সতর্ক করবেন না,
ভেরিয়েবল, ইত্যাদিতে প্রয়োগ করা ফাংশন বৈশিষ্ট্য। এটি এর জন্য ত্রুটি বন্ধ করে না
সমর্থিত গুণাবলীর ভুল ব্যবহার।

-Wno-বিল্টিন-ম্যাক্রো-পুনরায় সংজ্ঞায়িত
কিছু বিল্ট-ইন ম্যাক্রো পুনরায় সংজ্ঞায়িত করা হলে সতর্ক করবেন না। এই জন্য সতর্কতা দমন
"__TIMESTAMP__", "__TIME__", "__DATE__", "__FILE__", এবং এর পুনরায় সংজ্ঞা
"__BASE_FILE__"।

-Wstrict-প্রোটোটাইপ (শুধুমাত্র C এবং উদ্দেশ্য-C)
আর্গুমেন্টের ধরন উল্লেখ না করে কোনো ফাংশন ঘোষণা বা সংজ্ঞায়িত করা হলে সতর্ক করুন। (একটি
পুরানো-শৈলী ফাংশন সংজ্ঞা একটি সতর্কতা ছাড়া অনুমোদিত হয় যদি একটি দ্বারা পূর্বে হয়
ঘোষণা যা যুক্তি প্রকারগুলি নির্দিষ্ট করে।)

-ওল্ড-স্টাইল-ঘোষণা (শুধুমাত্র C এবং উদ্দেশ্য-C)
একটি ঘোষণায় সি স্ট্যান্ডার্ড অনুযায়ী অপ্রচলিত ব্যবহারের জন্য সতর্ক করুন। জন্য
উদাহরণ, সতর্ক করুন যদি স্টোরেজ-ক্লাস স্পেসিফায়ার যেমন "স্ট্যাটিক" এ প্রথম জিনিস না হয়
ঘোষণা এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়েক্সট্রা.

-ওল্ড-স্টাইল-সংজ্ঞা (শুধুমাত্র C এবং উদ্দেশ্য-C)
একটি পুরানো-শৈলী ফাংশন সংজ্ঞা ব্যবহার করা হলে সতর্ক করুন। থাকলেও সতর্কতা দেওয়া হয়
একটি পূর্ববর্তী প্রোটোটাইপ।

-Wmissing-প্যারামিটার-টাইপ (শুধুমাত্র C এবং উদ্দেশ্য-C)
K&R-শৈলী ফাংশনে টাইপ স্পেসিফায়ার ছাড়াই একটি ফাংশন প্যারামিটার ঘোষণা করা হয়:

void foo(বার) { }

এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়েক্সট্রা.

-Wmissing-প্রোটোটাইপ (শুধুমাত্র C এবং উদ্দেশ্য-C)
পূর্ববর্তী প্রোটোটাইপ ঘোষণা ছাড়া একটি বিশ্বব্যাপী ফাংশন সংজ্ঞায়িত করা হলে সতর্ক করুন। এই
সতর্কতা জারি করা হয় এমনকি যদি সংজ্ঞা নিজেই একটি প্রোটোটাইপ প্রদান করে। এই বিকল্পটি ব্যবহার করুন
বৈশ্বিক ফাংশন সনাক্ত করতে যেগুলির মধ্যে একটি মিলিত প্রোটোটাইপ ঘোষণা নেই
হেডার ফাইল। এই বিকল্পটি C++ এর জন্য বৈধ নয় কারণ সমস্ত ফাংশন ঘোষণা
প্রোটোটাইপ প্রদান করুন এবং একটি অ-মেলা ঘোষণা পরিবর্তে একটি ওভারলোড ঘোষণা করবে
পূর্ব ঘোষণার সাথে দ্বন্দ্ব। ব্যবহার করুন মিসিং-ঘোষণা অনুপস্থিত সনাক্ত করতে
C++ এ ঘোষণা।

মিসিং-ঘোষণা
পূর্ববর্তী ঘোষণা ছাড়া একটি বিশ্বব্যাপী ফাংশন সংজ্ঞায়িত করা হলে সতর্ক করুন। এমনকি যদি তাই না
সংজ্ঞা নিজেই একটি প্রোটোটাইপ প্রদান করে। বিশ্বব্যাপী সনাক্ত করতে এই বিকল্পটি ব্যবহার করুন
যে ফাংশন হেডার ফাইলে ঘোষণা করা হয় না। সি-তে, কোন সতর্কতা জারি করা হয় না
পূর্ববর্তী নন-প্রোটোটাইপ ঘোষণা সহ ফাংশন; ব্যবহার -Wmissing-প্রোটোটাইপ সনাক্ত
অনুপস্থিত প্রোটোটাইপ C++ এ, ফাংশন টেমপ্লেট বা এর জন্য কোনো সতর্কতা জারি করা হয় না
ইনলাইন ফাংশন, বা বেনামী নামস্থানে ফাংশনের জন্য।

মিসিং-ফিল্ড-ইনিশিয়ালাইজার
স্ট্রাকচারের ইনিশিয়ালাইজারের কিছু ক্ষেত্র অনুপস্থিত থাকলে সতর্ক করুন। উদাহরণস্বরূপ, নিম্নলিখিত
কোড এই ধরনের সতর্কতা সৃষ্টি করে, কারণ "xh" অন্তর্নিহিতভাবে শূন্য:

স্ট্রাক্ট এস {ইন্ট এফ, জি, এইচ; };
struct sx = { 3, 4 };

এই বিকল্পটি মনোনীত ইনিশিয়ালাইজার সম্পর্কে সতর্ক করে না, তাই নিম্নলিখিত পরিবর্তন
একটি সতর্কতা ট্রিগার করে না:

স্ট্রাক্ট এস {ইন্ট এফ, জি, এইচ; };
struct sx = { .f = 3, .g = 4 };

এই সতর্কতা অন্তর্ভুক্ত করা হয়েছে -ওয়েক্সট্রা. অন্য পেতে -ওয়েক্সট্রা এটি ছাড়া সতর্কতা,
ব্যবহার -ওয়েক্সট্রা -Wno-অনুপস্থিত-ক্ষেত্র-সূচনাকারী.

-উনো-মাল্টিচার
একটি মাল্টি অক্ষর ধ্রুবক থাকলে সতর্ক করবেন না ('ফুফ') ব্যবহৃত হয়. সাধারণত তারা একটি নির্দেশ করে
ব্যবহারকারীর কোডে টাইপো, কারণ তাদের বাস্তবায়ন-সংজ্ঞায়িত মান রয়েছে এবং হওয়া উচিত নয়
পোর্টেবল কোড ব্যবহার করা হয়।

-সাধারণকৃত=
ISO C এবং ISO C++-এ, দুটি শনাক্তকারী আলাদা হয় যদি তারা এর ক্রম ভিন্ন হয়
চরিত্র. যাইহোক, কখনও কখনও যখন মৌলিক ASCII অক্ষর সেট বাইরে অক্ষর
ব্যবহার করা হয়, আপনার কাছে একই রকম দেখতে দুটি ভিন্ন অক্ষর ক্রম থাকতে পারে। এড়ানোর জন্য
বিভ্রান্তি, ISO 10646 মান কিছু সেট করে নিয়মমাফিককরণ নিয়ম যা প্রয়োগ করার সময়
নিশ্চিত করুন যে দুটি সিকোয়েন্স যা একই রকম দেখায় সেগুলি একই ক্রমে পরিণত হয়েছে৷ জিসিসি
আপনি যদি এমন শনাক্তকারী ব্যবহার করেন যা স্বাভাবিক করা হয়নি, তাহলে আপনাকে সতর্ক করতে পারে; এই বিকল্প
সেই সতর্কতা নিয়ন্ত্রণ করে।

GCC দ্বারা সমর্থিত সতর্কতার চারটি স্তর রয়েছে৷ ডিফল্ট হয় -সাধারণকৃত=nfc,
যা ISO 10646 "C" স্বাভাবিকীকৃত ফর্মে নেই এমন কোনো শনাক্তকারী সম্পর্কে সতর্ক করে,
NFC এর. NFC হল বেশিরভাগ ব্যবহারের জন্য প্রস্তাবিত ফর্ম।

দুর্ভাগ্যবশত, ISO C এবং ISO C++ দ্বারা শনাক্তকারীতে কিছু অক্ষর অনুমোদিত
যেটি, যখন NFC-তে পরিণত হয়, শনাক্তকারীতে অনুমোদিত নয়৷ অর্থাৎ কোন উপায় নেই
পোর্টেবল ISO C বা C++-এ এই চিহ্নগুলি ব্যবহার করতে এবং NFC-তে আপনার সমস্ত শনাক্তকারী থাকতে হবে।
-সাধারণকৃত=আইডি এই অক্ষরের জন্য সতর্কতা দমন করে। ভবিষ্যৎ আশা করা যায়
জড়িত মানগুলির সংস্করণগুলি এটিকে সংশোধন করবে, তাই এই বিকল্পটি নয়
ডিফল্ট.

আপনি লেখার মাধ্যমে সমস্ত অক্ষরের জন্য সতর্কতা বন্ধ করতে পারেন -সাধারণকৃত=কোনটি নয়। আপনি
আপনি যদি অন্য কিছু স্বাভাবিককরণ স্কিম ব্যবহার করেন (যেমন "D") তবেই এটি করা উচিত,
কারণ অন্যথায় আপনি সহজেই বাগ তৈরি করতে পারেন যা দেখতে আক্ষরিকভাবে অসম্ভব।

ISO 10646-এর কিছু অক্ষরের আলাদা অর্থ আছে কিন্তু কিছু ফন্টে একই রকম দেখায়
অথবা প্রদর্শন পদ্ধতি, বিশেষ করে একবার ফরম্যাটিং প্রয়োগ করা হয়েছে। এই ক্ষেত্রে
"\u207F", "সুপারস্ক্রিপ্ট ল্যাটিন ছোট অক্ষর N", ঠিক একটি নিয়মিত "n" এর মতোই প্রদর্শিত হয় যা
একটি সুপারস্ক্রিপ্টে স্থাপন করা হয়েছে। ISO 10646 সংজ্ঞায়িত করে এনএফকেসি স্বাভাবিকীকরণ স্কিম থেকে
এগুলিকেও একটি স্ট্যান্ডার্ড ফর্মে রূপান্তর করুন এবং আপনার কোড না থাকলে GCC সতর্ক করে
আপনি যদি NFKC ব্যবহার করেন -সাধারণকৃত=nfkc. এই সতর্কতা প্রতিটি সম্পর্কে সতর্কতা তুলনীয়
শনাক্তকারী যেটিতে O অক্ষর রয়েছে কারণ এটি 0 সংখ্যার সাথে বিভ্রান্ত হতে পারে,
এবং তাই ডিফল্ট নয়, তবে স্থানীয় কোডিং কনভেনশন হিসাবে উপযোগী হতে পারে যদি
এই অক্ষরগুলিকে স্বতন্ত্রভাবে প্রদর্শন করার জন্য প্রোগ্রামিং পরিবেশ স্থির করা যায় না।

-উনো-বঞ্চিত
অবহেলিত বৈশিষ্ট্য ব্যবহার সম্পর্কে সতর্ক করবেন না.

-Wno-বঞ্চিত-ঘোষণা
ফাংশন ব্যবহার সম্পর্কে সতর্ক করবেন না, ভেরিয়েবল, এবং অবচয় হিসাবে চিহ্নিত টাইপ
"বঞ্চিত" বৈশিষ্ট্য ব্যবহার করে।

-উনো-ওভারফ্লো
ধ্রুবক অভিব্যক্তিতে কম্পাইল-টাইম ওভারফ্লো সম্পর্কে সতর্ক করবেন না।

-ওভাররাইড-ইনিট (শুধুমাত্র C এবং উদ্দেশ্য-C)
মনোনীত ব্যবহার করার সময় পার্শ্ব প্রতিক্রিয়া ছাড়াই একটি প্রাথমিক ক্ষেত্র ওভাররাইড করা হলে সতর্ক করুন
ইনিশিয়ালাইজার

এই সতর্কতা অন্তর্ভুক্ত করা হয়েছে -ওয়েক্সট্রা. অন্য পেতে -ওয়েক্সট্রা এটি ছাড়া সতর্কতা,
ব্যবহার -ওয়েক্সট্রা -Wno-ওভাররাইড-init.

-Wpacked
যদি একটি কাঠামোকে প্যাকড অ্যাট্রিবিউট দেওয়া হয় তবে সতর্ক করুন, কিন্তু প্যাকড অ্যাট্রিবিউটের নেই
কাঠামোর বিন্যাস বা আকারের উপর প্রভাব। এই ধরনের কাঠামোর জন্য ভুল-সারিবদ্ধ হতে পারে
সামান্য সুবিধা। উদাহরণ স্বরূপ, এই কোডে, "struct bar"-এ "fx" পরিবর্তনশীল
ভুলভাবে সংযোজন করা হয়েছে যদিও "struct bar"-এর নিজেই প্যাকড অ্যাট্রিবিউট নেই:

স্ট্রাক্ট ফু {
ইন্ট এক্স;
চর এ, বি, সি, ডি;
__ ribribute __ ((প্যাকড));
struct বার {
চর জেড;
স্ট্রাক্ট ফু এফ;
};

-ডব্লিউপ্যাকড-বিটফিল্ড-কমপ্যাট
GCC-এর 4.1, 4.2 এবং 4.3 সিরিজ টাইপের বিট-ক্ষেত্রগুলিতে "প্যাকড" বৈশিষ্ট্যকে উপেক্ষা করে
"চর"। এটি GCC 4.4 এ স্থির করা হয়েছে কিন্তু পরিবর্তনের ফলে পার্থক্য হতে পারে
কাঠামো বিন্যাস। GCC আপনাকে জানায় যখন এই ধরনের একটি ক্ষেত্রের অফসেট GCC-তে পরিবর্তিত হয়
4.4 উদাহরণস্বরূপ এটিতে "a" এবং "b" ক্ষেত্রের মধ্যে আর একটি 4-বিট প্যাডিং নেই
গঠন:

স্ট্রাক্ট ফু
{
চর এ: 4;
চর বি: 8;
} __attribute__ ((প্যাকড));

এই সতর্কতা ডিফল্টরূপে সক্রিয় করা হয়. ব্যবহার করুন -Wno-প্যাকড-বিটফিল্ড-কম্প্যাট এটি নিষ্ক্রিয় করতে
সাবধানবাণী।

-Wpadded
প্যাডিং একটি কাঠামোর মধ্যে অন্তর্ভুক্ত করা হলে সতর্ক করুন, হয় এর একটি উপাদান সারিবদ্ধ করতে
গঠন বা পুরো কাঠামো সারিবদ্ধ করা। কখনও কখনও যখন এটি ঘটে তখন এটি সম্ভব
প্যাডিং কমাতে কাঠামোর ক্ষেত্রগুলিকে পুনর্বিন্যাস করতে এবং তাই তৈরি করুন
গঠন ছোট।

-অপ্রয়োজনীয়- ঘোষণা
সতর্ক করুন যদি একই সুযোগে একাধিকবার ঘোষণা করা হয়, এমনকী এমন ক্ষেত্রেও
একাধিক ঘোষণা বৈধ এবং কিছুই পরিবর্তন করে না।

-তে আবদ্ধ-এক্সটারনস (শুধুমাত্র C এবং উদ্দেশ্য-C)
একটি ফাংশনের মধ্যে একটি "বহিরাগত" ঘোষণার সম্মুখীন হলে সতর্ক করুন৷

-Wno-উত্তরাধিকারী-ভেরিয়েডিক-ক্টর
বেস ক্লাসের সময় C++11 উত্তরাধিকারী কনস্ট্রাক্টর ব্যবহার সম্পর্কে সতর্কতা দমন করুন
উত্তরাধিকারসূত্রে প্রাপ্ত একটি সি বৈচিত্র্যময় কনস্ট্রাক্টর আছে; সতর্কতাটি ডিফল্টরূপে চালু থাকে কারণ
উপবৃত্ত উত্তরাধিকারসূত্রে পাওয়া যায় না।

-উইনলাইন
ইনলাইন হিসাবে ঘোষিত একটি ফাংশন ইনলাইন করা না গেলে সতর্ক করুন৷ এমনকি এই সঙ্গে
বিকল্প, কম্পাইলার ঘোষিত ইনলাইন ফাংশনগুলির ব্যর্থতা সম্পর্কে সতর্ক করে না
সিস্টেম হেডার।

কম্পাইলার একটি ইনলাইন কি না তা নির্ধারণ করতে বিভিন্ন হিউরিস্টিক ব্যবহার করে
ফাংশন উদাহরণস্বরূপ, কম্পাইলার ফাংশনের আকার বিবেচনা করে
ইনলাইন্ড এবং ইনলাইন করার পরিমাণ যা ইতিমধ্যে বর্তমান ফাংশনে করা হয়েছে।
অতএব, উত্স প্রোগ্রামে আপাতদৃষ্টিতে তুচ্ছ পরিবর্তন হতে পারে
দ্বারা উত্পাদিত সতর্কতা -উইনলাইন প্রদর্শিত বা অদৃশ্য হতে

-Wno-অবৈধ-অফসেটফ (শুধুমাত্র C++ এবং উদ্দেশ্য-C++)
প্রয়োগ থেকে সতর্কতা দমন করুন অফসেট একটি নন-পিওডি টাইপের ম্যাক্রো। অনুসারে
1998 ISO C++ মান, প্রয়োগ করা হচ্ছে অফসেট একটি নন-পিওডি টাইপ অনির্ধারিত। ভিতরে
বিদ্যমান C++ বাস্তবায়ন, তবে, অফসেট সাধারণত অর্থপূর্ণ ফলাফল দেয়
এমনকি যখন নির্দিষ্ট ধরণের নন-পিওডি ধরনের প্রয়োগ করা হয় (যেমন একটি সাধারণ struct হয় যে
শুধুমাত্র একজন কনস্ট্রাক্টর থাকার কারণে POD টাইপ হতে ব্যর্থ হয়)। এই পতাকা জন্য
ব্যবহারকারী যারা সচেতন যে তারা ননপোর্টেবল কোড লিখছে এবং যারা ইচ্ছাকৃতভাবে লিখেছে
এটি সম্পর্কে সতর্কতা উপেক্ষা করার জন্য বেছে নেওয়া হয়েছে।

উপর নিষেধাজ্ঞা অফসেট C++ স্ট্যান্ডার্ডের ভবিষ্যতের সংস্করণে শিথিল হতে পারে।

-নো-ইন-ইন-টু-পয়েন্টার-কাস্ট
একটি ভিন্ন আকারের একটি পূর্ণসংখ্যার casts থেকে পয়েন্টার প্রকারের সতর্কতা দমন করুন৷ ভিতরে
C++, ছোট আকারের একটি পয়েন্টার টাইপ কাস্ট করা একটি ত্রুটি। উইন্ট-টু-পয়েন্টার-কাস্ট is
ডিফল্টরূপে সক্ষম।

-Wno-পয়েন্টার থেকে int-কাস্ট (শুধুমাত্র C এবং উদ্দেশ্য-C)
একটি পয়েন্টার থেকে একটি ভিন্ন আকারের একটি পূর্ণসংখ্যা ধরনের কাস্ট থেকে সতর্কতা দমন করুন।

-উইনভালিড-পিএইচ
সতর্ক করুন যদি অনুসন্ধানের পথে একটি প্রি-কম্পাইল করা হেডার পাওয়া যায় কিন্তু ব্যবহার করা যাবে না।

-লং-লং
হলে সতর্ক করুন দীর্ঘ দীর্ঘ টাইপ ব্যবহার করা হয়। এই উভয় দ্বারা সক্রিয় করা হয় -ডব্লিউডান্টিক or - ঐতিহ্যগত
ISO C90 এবং C++98 মোডে। সতর্কতা বার্তাগুলিকে বাধা দিতে, ব্যবহার করুন -উনো-লং-লং.

-Wvariadic-ম্যাক্রো
প্যাডেন্টিক ISO C90 মোডে বা GNU বিকল্প সিনট্যাক্সে বৈচিত্র্যময় ম্যাক্রো ব্যবহার করা হলে সতর্ক করুন
যখন পেডেন্টিক ISO C99 মোডে। এটি ডিফল্ট। সতর্কতা বার্তাগুলিকে বাধা দিতে, ব্যবহার করুন
-Wno-variadic-macros.

-ভারার্গস
পরিবর্তনশীল আর্গুমেন্ট পরিচালনা করতে ব্যবহৃত ম্যাক্রোর সন্দেহজনক ব্যবহারের বিষয়ে সতর্ক করুন
va_start. এটি ডিফল্ট। সতর্কতা বার্তাগুলিকে বাধা দিতে, ব্যবহার করুন -উনো-ভারর্গস.

-Wvector-অপারেশন-পারফরম্যান্স
আর্কিটেকচারের SIMD ক্ষমতার মাধ্যমে ভেক্টর অপারেশন বাস্তবায়িত না হলে সতর্ক করুন।
কর্মক্ষমতা টিউনিং জন্য প্রধানত দরকারী. ভেক্টর অপারেশন বাস্তবায়ন করা যেতে পারে
"পিসওয়াইজ", যার মানে প্রতিটি ভেক্টরে স্কেলার অপারেশন করা হয়
উপাদান "সমান্তরালে", যার মানে ভেক্টর অপারেশন ব্যবহার করে প্রয়োগ করা হয়
বৃহত্তর ধরণের স্কেলার, যা সাধারণত বেশি কর্মক্ষমতা দক্ষ; এবং "একক হিসাবে
স্কেলার", যার মানে ভেক্টর একটি স্কেলার টাইপের মধ্যে ফিট করে।

-Wno-ভার্চুয়াল-সরানো-অর্পণ
একটি অ-তুচ্ছ C++11 পদক্ষেপের সাথে একটি ভার্চুয়াল বেস থেকে উত্তরাধিকার সম্পর্কে সতর্কতা দমন করুন
নিয়োগ অপারেটর. এটি বিপজ্জনক কারণ যদি ভার্চুয়াল বেস বরাবর পৌঁছানো যায়
একাধিক পথ, এটি একাধিকবার সরানো হবে, যার অর্থ উভয় বস্তুর শেষ হতে পারে
স্থানান্তরিত অবস্থায় যদি মুভ অ্যাসাইনমেন্ট অপারেটর এড়াতে লেখা থাকে
একটি সরানো বস্তু থেকে সরানো, এই সতর্কতা নিষ্ক্রিয় করা যেতে পারে.

-Wvla
কোডে পরিবর্তনশীল দৈর্ঘ্য অ্যারে ব্যবহার করা হলে সতর্ক করুন। -উনো-ভলা বাধা দেয় -ডব্লিউডান্টিক
পরিবর্তনশীল দৈর্ঘ্য অ্যারের সতর্কতা।

-Wvolatile-register-var
একটি রেজিস্টার ভেরিয়েবল উদ্বায়ী ঘোষণা করা হলে সতর্ক করুন. উদ্বায়ী পরিবর্তনকারী না
সমস্ত অপ্টিমাইজেশানকে বাধা দেয় যা নিবন্ধনের জন্য পড়া এবং/অথবা লেখাগুলিকে বাদ দিতে পারে
ভেরিয়েবল এই সতর্কতা দ্বারা সক্রিয় করা হয় -ওয়াল.

-Wdisabled-অপ্টিমাইজেশান
অনুরোধ করা অপ্টিমাইজেশান পাস অক্ষম করা হলে সতর্ক করুন৷ এই সতর্কতা সাধারণত হয় না
ইঙ্গিত করুন যে আপনার কোডে কিছু ভুল আছে; এটা শুধুমাত্র GCC এর নির্দেশ করে
অপ্টিমাইজাররা কোডটি কার্যকরভাবে পরিচালনা করতে অক্ষম। প্রায়ই, সমস্যা যে আপনার
কোড খুব বড় বা খুব জটিল; GCC অপ্টিমাইজেশন যখন প্রোগ্রাম অপ্টিমাইজ করতে অস্বীকার করে
নিজেই সময় অত্যধিক পরিমাণ নিতে পারে.

-Wpointer-চিহ্ন (শুধুমাত্র C এবং উদ্দেশ্য-C)
বিভিন্ন স্বাক্ষর সহ পয়েন্টার আর্গুমেন্ট পাসিং বা অ্যাসাইনমেন্টের জন্য সতর্ক করুন। এই
বিকল্প শুধুমাত্র C এবং Objective-C এর জন্য সমর্থিত। এটা দ্বারা উহ্য হয় -ওয়াল এবং দ্বারা
-ডব্লিউডান্টিক, যা দিয়ে নিষ্ক্রিয় করা যেতে পারে -Wno-পয়েন্টার-চিহ্ন.

-Wstack-রক্ষক
এই বিকল্প শুধুমাত্র সক্রিয় যখন -ফস্ট্যাক-রক্ষক সক্রিয়. এটি ফাংশন সম্পর্কে সতর্ক করে
যেগুলো স্ট্যাক স্ম্যাশিং থেকে সুরক্ষিত নয়।

-উনো-মাডফ্ল্যাপ
যে নির্মাণগুলি দ্বারা যন্ত্র করা যাবে না সেগুলি সম্পর্কে সতর্কতাগুলি দমন করুন৷ -fmudflap.

-ওভারলেন্থ-স্ট্রিং
"সর্বাধিক সর্বনিম্ন" দৈর্ঘ্যের চেয়ে দীর্ঘ স্ট্রিং ধ্রুবক সম্পর্কে সতর্ক করুন
সি স্ট্যান্ডার্ডে উল্লেখ করা হয়েছে। আধুনিক কম্পাইলাররা সাধারণত স্ট্রিং ধ্রুবককে অনুমতি দেয়
স্ট্যান্ডার্ডের ন্যূনতম সীমার চেয়ে অনেক বেশি দীর্ঘ, কিন্তু খুব পোর্টেবল প্রোগ্রাম করা উচিত
দীর্ঘ স্ট্রিং ব্যবহার এড়িয়ে চলুন.

সীমা প্রযোজ্য পরে স্ট্রিং ধ্রুবক সংযুক্তি, এবং ট্রেলিং গণনা করে না
NUL C90-এ, সীমা ছিল 509 অক্ষর; C99-এ এটিকে 4095-এ উন্নীত করা হয়েছিল। C++98 করে
একটি আদর্শ ন্যূনতম সর্বোচ্চ নির্দিষ্ট করে না, তাই আমরা এর মধ্যে ওভারলেন্থ স্ট্রিং নির্ণয় করি না
সি++।

এই বিকল্প দ্বারা উহ্য হয় -ডব্লিউডান্টিক, এবং এর সাথে অক্ষম করা যেতে পারে
-Wno-ওভারলেন্থ-স্ট্রিং.

-Wunsufixed-float-constants (শুধুমাত্র C এবং উদ্দেশ্য-C)
প্রত্যয় নেই এমন যেকোনো ভাসমান ধ্রুবকের জন্য একটি সতর্কতা জারি করুন। যখন ব্যবহার করা হয়
এক্সাথে -Wsystem-headers এটি সিস্টেম হেডার ফাইলে এই ধরনের ধ্রুবক সম্পর্কে সতর্ক করে।
"FLOAT_CONST_DECIMAL64" pragma ব্যবহার করার জন্য কোড প্রস্তুত করার সময় এটি কার্যকর হতে পারে
দশমিক ফ্লোটিং-পয়েন্ট এক্সটেনশন থেকে C99 পর্যন্ত।

অপশন সমূহ উন্নত ডিবাগ করা আপনার কার্যক্রম or জিসিসি
GCC এর বিভিন্ন বিশেষ বিকল্প রয়েছে যা আপনার প্রোগ্রাম বা GCC ডিবাগ করার জন্য ব্যবহৃত হয়:

-g অপারেটিং সিস্টেমের নেটিভ ফরম্যাটে ডিবাগিং তথ্য তৈরি করুন (স্টাবস, সিওএফএফ,
XCOFF, বা DWARF 2)। GDB এই ডিবাগিং তথ্যের সাথে কাজ করতে পারে।

বেশিরভাগ সিস্টেমে যেগুলি স্ট্যাব ফর্ম্যাট ব্যবহার করে, -g অতিরিক্ত ডিবাগিং তথ্য ব্যবহার করতে সক্ষম করে
যে শুধুমাত্র GDB ব্যবহার করতে পারে; এই অতিরিক্ত তথ্য জিডিবিতে ডিবাগিং কাজকে আরও ভাল করে তোলে কিন্তু
সম্ভবত অন্যান্য ডিবাগার ক্র্যাশ করে বা প্রোগ্রাম পড়তে অস্বীকার করে। যদি তুমি চাও
অতিরিক্ত তথ্য উত্পন্ন কিনা তা নিশ্চিত করার জন্য নিয়ন্ত্রণ, ব্যবহার করুন -gstabs+, -gstabs,
-gxcoff+, -gxcoff, বা -জিভিএমএস (নিচে দেখ).

GCC আপনাকে ব্যবহার করতে দেয় -g সঙ্গে -O. অপ্টিমাইজড কোড দ্বারা নেওয়া শর্টকাট হতে পারে
মাঝে মাঝে আশ্চর্যজনক ফলাফল তৈরি করে: আপনি ঘোষিত কিছু ভেরিয়েবলে উপস্থিত নাও থাকতে পারে
সব নিয়ন্ত্রণের প্রবাহ সংক্ষিপ্তভাবে যেখানে আপনি এটি আশা করেননি সেখানে যেতে পারে; কিছু বিবৃতি হতে পারে
কার্যকর করা হবে না কারণ তারা ধ্রুবক ফলাফল গণনা করে বা তাদের মান ইতিমধ্যেই রয়েছে
হাত; কিছু বিবৃতি বিভিন্ন জায়গায় কার্যকর হতে পারে কারণ সেগুলি সরানো হয়েছে৷
loops

তবুও এটি অপ্টিমাইজড আউটপুট ডিবাগ করা সম্ভব প্রমাণ করে। এটি যুক্তিসঙ্গত করে তোলে
বাগ থাকতে পারে এমন প্রোগ্রামগুলির জন্য অপ্টিমাইজার ব্যবহার করতে।

নিম্নলিখিত বিকল্পগুলি উপযোগী হয় যখন GCC আরও কিছুর জন্য সক্ষমতার সাথে তৈরি করা হয়
একাধিক ডিবাগিং বিন্যাস।

-gsplit-বামন
একটি পৃথক আউটপুট ফাইলে যতটা সম্ভব বামন ডিবাগিং তথ্য আলাদা করুন
এক্সটেনশন .dwo সঙ্গে. এই বিকল্পটি বিল্ড সিস্টেমকে ফাইল লিঙ্ক করা এড়াতে অনুমতি দেয়
ডিবাগ তথ্য সহ। উপযোগী হতে, এই বিকল্পটির জন্য সক্ষম একটি ডিবাগার প্রয়োজন
.dwo ফাইল পড়া।

-ggdb
GDB দ্বারা ব্যবহারের জন্য ডিবাগিং তথ্য তৈরি করুন। এর মানে সবচেয়ে অভিব্যক্তিপূর্ণ ব্যবহার করা
বিন্যাস উপলব্ধ (DWARF 2, স্টাবস, বা নেটিভ ফরম্যাট যদি এর কোনটিই না হয়
সমর্থিত), সম্ভব হলে GDB এক্সটেনশন সহ।

-gpubnames
বামন .debug_pubnames এবং .debug_pubtypes বিভাগ তৈরি করুন।

-gstabs
জিডিবি ছাড়াই স্ট্যাব ফরম্যাটে (যদি এটি সমর্থিত হয়) ডিবাগিং তথ্য তৈরি করুন
এক্সটেনশন এটি বেশিরভাগ BSD সিস্টেমে DBX দ্বারা ব্যবহৃত ফর্ম্যাট। MIPS, আলফা এবং
সিস্টেম V রিলিজ 4 সিস্টেম এই বিকল্পটি স্ট্যাব ডিবাগিং আউটপুট তৈরি করে যা নয়
DBX বা SDB দ্বারা বোঝা যায়। সিস্টেম V রিলিজ 4 সিস্টেমে এই বিকল্পটির জন্য GNU প্রয়োজন
সমবেত হও.

-ফেলিমিনেট-অব্যবহৃত-ডিবাগ-প্রতীক
শুধুমাত্র প্রতীকের জন্য স্ট্যাব ফরম্যাটে (যদি এটি সমর্থিত হয়) ডিবাগিং তথ্য তৈরি করুন
যে আসলে ব্যবহার করা হয়.

-femit-শ্রেণী-ডিবাগ-সর্বদা
শুধুমাত্র একটি অবজেক্ট ফাইলে একটি C++ ক্লাসের জন্য ডিবাগিং তথ্য নির্গত করার পরিবর্তে,
ক্লাস ব্যবহার করে সমস্ত অবজেক্ট ফাইলে এটি নির্গত করুন। এই বিকল্পটি শুধুমাত্র সঙ্গে ব্যবহার করা উচিত
ডিবাগার যারা GCC সাধারণত ডিবাগিং তথ্য নির্গত করে তা পরিচালনা করতে অক্ষম
ক্লাসের জন্য কারণ এই বিকল্পটি ব্যবহার করলে ডিবাগিং তথ্যের আকার বৃদ্ধি পায়
দুই একটি গুণনীয়ক হিসাবে অনেক.

-fdebug-টাইপস-বিভাগ
DWARF ভার্সন 4 বা উচ্চতর ব্যবহার করার সময়, DIE গুলিকে তাদের নিজস্ব টাইপ করা যেতে পারে
".debug_types" বিভাগকে ".debug_info" বিভাগের অংশ করার পরিবর্তে। এটা
লিঙ্কার তখন থেকে এগুলিকে আলাদা কমড্যাট বিভাগে রাখা আরও দক্ষ
সদৃশ অপসারণ. কিন্তু সমস্ত DWARF গ্রাহকরা এখনও ".debug_types" বিভাগ সমর্থন করে না
এবং কিছু বস্তুর উপর ".debug_types" ছোট ডিবাগিংয়ের পরিবর্তে বড় উৎপন্ন করে
তথ্য।

-gstabs+
GNU ব্যবহার করে স্ট্যাব ফরম্যাটে (যদি এটি সমর্থিত হয়) ডিবাগিং তথ্য তৈরি করুন
এক্সটেনশনগুলি শুধুমাত্র GNU ডিবাগার (GDB) দ্বারা বোঝা যায়। এই এক্সটেনশন ব্যবহার করা হয়
অন্যান্য ডিবাগার ক্র্যাশ করতে পারে বা প্রোগ্রাম পড়তে অস্বীকার করতে পারে।

-gcoff
COFF ফর্ম্যাটে ডিবাগিং তথ্য তৈরি করুন (যদি এটি সমর্থিত হয়)। এই হল
সিস্টেম ভি রিলিজ 4 এর আগে বেশিরভাগ সিস্টেম ভি সিস্টেমে SDB দ্বারা ব্যবহৃত ফর্ম্যাট।

-gxcoff
XCOFF ফর্ম্যাটে ডিবাগিং তথ্য তৈরি করুন (যদি এটি সমর্থিত হয়)। এই হল
IBM RS/6000 সিস্টেমে DBX ডিবাগার দ্বারা ব্যবহৃত বিন্যাস।

-gxcoff+
GNU ব্যবহার করে XCOFF ফর্ম্যাটে (যদি এটি সমর্থিত হয়) ডিবাগিং তথ্য তৈরি করুন
এক্সটেনশনগুলি শুধুমাত্র GNU ডিবাগার (GDB) দ্বারা বোঝা যায়। এই এক্সটেনশন ব্যবহার করা হয়
অন্যান্য ডিবাগার ক্র্যাশ করতে পারে বা প্রোগ্রাম পড়তে অস্বীকার করতে পারে, এবং হতে পারে
GNU অ্যাসেম্বলার (GAS) ব্যতীত অন্য অ্যাসেম্বলার একটি ত্রুটির সাথে ব্যর্থ হয়।

-gdwarf-সংস্করণ
DWARF ফরম্যাটে ডিবাগিং তথ্য তৈরি করুন (যদি এটি সমর্থিত হয়)। মুল্য
সংস্করণ 2, 3 বা 4 হতে পারে; বেশিরভাগ লক্ষ্যের জন্য ডিফল্ট সংস্করণ হল 4।

মনে রাখবেন DWARF সংস্করণ 2 এর সাথে, কিছু পোর্টের প্রয়োজন হয় এবং সর্বদা কিছু অ-বিরোধী ব্যবহার করে
আনওয়াইন্ড টেবিলে DWARF 3 এক্সটেনশন।

সংস্করণ 4-এর জন্য GDB 7.0 এবং প্রয়োজন হতে পারে -fvar-ট্র্যাকিং-অ্যাসাইনমেন্ট সর্বোচ্চ সুবিধার জন্য।

-গ্রেকর্ড-জিসিসি-সুইচ
এই সুইচের ফলে কম্পাইলারকে আহ্বান করতে ব্যবহৃত কমান্ড-লাইন বিকল্পগুলি হতে পারে
DWARF-এ DW_AT_producer অ্যাট্রিবিউটে যুক্ত করার জন্য কোড জেনারেশনকে প্রভাবিত করে
ডিবাগিং তথ্য। বিকল্পগুলি তাদের থেকে আলাদা করে স্পেস দিয়ে সংযুক্ত করা হয়েছে
একে অপরের এবং কম্পাইলার সংস্করণ থেকে। আরো দেখুন -frecord-gcc-সুইচ অন্য জন্য
অবজেক্ট ফাইলে কম্পাইলার অপশন সংরক্ষণ করার উপায়। এটি ডিফল্ট।

-জিনো-রেকর্ড-জিসিসি-সুইচ
DWARF-এ DW_AT_producer অ্যাট্রিবিউটে কমান্ড-লাইন বিকল্পগুলি যুক্ত করার অনুমতি দিন
ডিবাগিং তথ্য।

-gstrict-বামন
এর সাথে নির্বাচিত হওয়ার চেয়ে পরবর্তী DWARF স্ট্যান্ডার্ড সংস্করণের এক্সটেনশনগুলি ব্যবহার করার অনুমতি দিন৷
-gdwarf-সংস্করণ. পরে থেকে অ-বিরোধী DWARF এক্সটেনশন ব্যবহার করে বেশিরভাগ লক্ষ্যে
স্ট্যান্ডার্ড সংস্করণ অনুমোদিত।

-গ্নো-কঠোর-বামন
এর সাথে নির্বাচিত হওয়ার চেয়ে পরবর্তী DWARF স্ট্যান্ডার্ড সংস্করণের এক্সটেনশনগুলি ব্যবহার করার অনুমতি দিন
-gdwarf-সংস্করণ.

-জিভিএমএস
আলফা/ভিএমএস ডিবাগ ফরম্যাটে ডিবাগিং তথ্য তৈরি করুন (যদি এটি সমর্থিত হয়)। এই
আলফা/ভিএমএস সিস্টেমে DEBUG দ্বারা ব্যবহৃত বিন্যাস।

-gস্তর
-ggdbস্তর
-gstabsস্তর
-gcoffস্তর
-gxcoffস্তর
-জিভিএমএসস্তর
ডিবাগিং তথ্যের জন্য অনুরোধ করুন এবং ব্যবহার করুন স্তর কত তথ্য নির্দিষ্ট করতে. দ্য
ডিফল্ট স্তর হল 2।

লেভেল 0 কোনো ডিবাগ তথ্য তৈরি করে না। এইভাবে, -g0 অস্বীকার করে -g.

লেভেল 1 ন্যূনতম তথ্য তৈরি করে, এর কিছু অংশে ব্যাকট্রেস তৈরি করার জন্য যথেষ্ট
প্রোগ্রাম যা আপনি ডিবাগ করার পরিকল্পনা করেন না। এর মধ্যে ফাংশনের বর্ণনা এবং
বহিরাগত ভেরিয়েবল, কিন্তু স্থানীয় ভেরিয়েবল সম্পর্কে কোন তথ্য এবং কোন লাইন সংখ্যা নেই।

লেভেল 3 অতিরিক্ত তথ্য অন্তর্ভুক্ত করে, যেমন-তে উপস্থিত সমস্ত ম্যাক্রো সংজ্ঞা
কার্যক্রম. আপনি যখন ব্যবহার করেন তখন কিছু ডিবাগার ম্যাক্রো সম্প্রসারণ সমর্থন করে -g3.

-gdwarf-2 একটি সংযুক্ত ডিবাগ স্তর গ্রহণ করে না, কারণ GCC একটি সমর্থন করত
পছন্দ -gdwarf যার অর্থ DWARF এর সংস্করণ 1-এ ডিবাগ তথ্য তৈরি করা
বিন্যাস (যা সংস্করণ 2 থেকে খুব আলাদা), এবং এটি খুব বিভ্রান্তিকর হবে।
সেই ডিবাগ বিন্যাসটি দীর্ঘ অপ্রচলিত, কিন্তু বিকল্পটি এখন পরিবর্তন করা যাবে না। পরিবর্তে ব্যবহার করুন
একটি অতিরিক্ত -gস্তর DWARF এর জন্য ডিবাগ স্তর পরিবর্তন করার বিকল্প।

-gtoggle
ডিবাগ তথ্যের জেনারেশন বন্ধ করুন, যদি এই বিকল্পটি ছেড়ে দিলে এটি তৈরি হয়, বা এটি চালু করুন
অন্যথায় লেভেল 2 এ। কমান্ড লাইনে এই আর্গুমেন্টের অবস্থান নেই
ব্যাপার অন্যান্য সমস্ত বিকল্প প্রক্রিয়া করার পরে এটি কার্যকর হয়, এবং এটি শুধুমাত্র তাই করে
একবার, কতবার দেওয়া হোক না কেন। এই প্রধানত সঙ্গে ব্যবহার করার উদ্দেশ্যে করা হয়
-fcompare-debug.

-fsanitize=ঠিকানা
অ্যাড্রেস স্যানিটাইজার সক্ষম করুন, একটি দ্রুত মেমরি ত্রুটি সনাক্তকারী। মেমরি অ্যাক্সেস নির্দেশাবলী
সীমার বাইরে এবং ব্যবহার-পর-মুক্ত বাগ সনাক্ত করতে উপকরণ করা হবে। দেখা
<http://code.google.com/p/address-sanitizer/> আরো বিস্তারিত জানার জন্য।

-fsanitize=থ্রেড
থ্রেড স্যানিটাইজার সক্ষম করুন, একটি দ্রুত ডেটা রেস ডিটেক্টর। মেমরি অ্যাক্সেস নির্দেশাবলী হবে
ডেটা রেস বাগ সনাক্ত করতে যন্ত্রযুক্ত। দেখা
<http://code.google.com/p/data-race-test/wiki/ThreadSanitizer> আরো বিস্তারিত জানার জন্য।

-fdump-ফাইনাল-insns[=ফাইল]
চূড়ান্ত অভ্যন্তরীণ প্রতিনিধিত্ব (RTL) ডাম্প করুন ফাইল. যদি ঐচ্ছিক যুক্তি হয়
বাদ দেওয়া হয়েছে (বা যদি ফাইল হল "."), ডাম্প ফাইলের নাম সংযোজন দ্বারা নির্ধারিত হয়
কম্পাইলেশন আউটপুট ফাইলের নাম ".gkd"।

-fcompare-debug[=opts]
যদি কম্পাইলেশনের সময় কোনো ত্রুটি না ঘটে, তাহলে কম্পাইলারটি দ্বিতীয়বার চালান, যোগ করুন opts এবং
-fcompare-ডিবাগ-সেকেন্ড দ্বিতীয় সংকলন পাস আর্গুমেন্ট. ডাম্প
উভয় সংকলনে চূড়ান্ত অভ্যন্তরীণ উপস্থাপনা, এবং যদি তারা ভিন্ন হয় তবে একটি ত্রুটি মুদ্রণ করুন।

যদি সমান চিহ্ন বাদ দেওয়া হয়, ডিফল্ট -gtoggle ব্যবহৃত হয়.

পরিবেশ পরিবর্তনশীল Gcc_compare_debug, যদি সংজ্ঞায়িত করা হয়, অ-খালি এবং অশূন্য,
অন্তর্নিহিতভাবে সক্ষম করে -fcompare-debug। যদি Gcc_compare_debug একটি স্ট্রিং সংজ্ঞায়িত করা হয়
একটি ড্যাশ দিয়ে শুরু করে, তারপর এটি ব্যবহার করা হয় opts, অন্যথায় ডিফল্ট -gtoggle is
ব্যবহার করা হয়েছে।

-FCOMPARE-DEBUG =, সমান চিহ্ন সহ কিন্তু ছাড়া opts, এর সমতুল্য
-fno-তুলনা-ডিবাগ, যা চূড়ান্ত প্রতিনিধিত্বের ডাম্পিং নিষ্ক্রিয় করে এবং
দ্বিতীয় সংকলন, এমনকি প্রতিরোধ Gcc_compare_debug কার্যকর হওয়া থেকে।

সময় সম্পূর্ণ কভারেজ যাচাই করতে -fcompare-debug পরীক্ষা, সেট Gcc_compare_debug বলতে
-fcompare-debug-not-overred, যা GCC যেকোন বাস্তবে একটি অবৈধ বিকল্প হিসাবে প্রত্যাখ্যান করে
সংকলন (প্রিপ্রসেসিং, সমাবেশ বা লিঙ্ক করার পরিবর্তে)। শুধু একটি সতর্কতা পেতে,
বিন্যাস Gcc_compare_debug থেকে -w%n-fcompare-ডিবাগ না ওভাররাইড করা করব.

-fcompare-ডিবাগ-সেকেন্ড
অনুরোধ করা দ্বিতীয় কম্পাইলেশনের জন্য এই বিকল্পটি কম্পাইলারকে নিহিতভাবে পাঠানো হয়েছে
by -fcompare-debug, সতর্কতা নীরব করার বিকল্প সহ, এবং অন্যান্য বিকল্পগুলি বাদ দেওয়া
এটি ফাইল বা স্ট্যান্ডার্ড আউটপুটে পার্শ্ব-প্রতিক্রিয়া কম্পাইলার আউটপুট সৃষ্টি করবে।
ডাম্প ফাইল এবং সংরক্ষিত অস্থায়ী ফাইলের নাম পরিবর্তন করা হয়েছে যাতে ".gk" থাকে
দ্বিতীয় সংকলনের সময় অতিরিক্ত এক্সটেনশন, সেগুলি ওভাররাইট করা এড়াতে
প্রথম দ্বারা উত্পন্ন.

যখন এই বিকল্পটি কম্পাইলার ড্রাইভারের কাছে প্রেরণ করা হয়, তখন এটি ঘটায় প্রথম থেকে সংকলন
বাদ দিন, যা কম্পাইলারটিকে সঠিকভাবে ডিবাগ করা ছাড়া অন্য কিছুর জন্য এটিকে উপযোগী করে তোলে।

-ফিলিমিনেট-ডওয়ার্ফ 2-ডুপস
ডুপ্লিকেট করা তথ্য মুছে দিয়ে DWARF 2 ডিবাগিং তথ্য সংকুচিত করুন
প্রতিটি প্রতীক। DWARF 2 ডিবাগিং তৈরি করার সময় এই বিকল্পটি শুধুমাত্র অর্থপূর্ণ হয়
সঙ্গে তথ্য -gdwarf-2.

-ফেমিট-স্ট্রাক্ট-ডিবাগ-বেসিওলি
struct-এর মত ধরনের জন্য ডিবাগ তথ্য নির্গত শুধুমাত্র যখন বেস নাম
কম্পাইলেশন সোর্স ফাইল ফাইলের বেস নামের সাথে মেলে যেখানে স্ট্রাকটটি সংজ্ঞায়িত করা হয়েছে।

এই বিকল্পটি যথেষ্ট পরিমাণে ডিবাগিং তথ্যের আকার হ্রাস করে, কিন্তু এ
ডিবাগারের টাইপ তথ্যের উল্লেখযোগ্য সম্ভাব্য ক্ষতি। দেখা
-ফেমিট-স্ট্রাক্ট-ডিবাগ-হ্রাস কম আক্রমনাত্মক বিকল্পের জন্য। দেখা
-femit-struct-ডিবাগ-বিশদ আরো বিস্তারিত নিয়ন্ত্রণের জন্য।

এই বিকল্পটি শুধুমাত্র DWARF 2 এর সাথে কাজ করে।

-ফেমিট-স্ট্রাক্ট-ডিবাগ-হ্রাস
struct-এর মত ধরনের জন্য ডিবাগ তথ্য নির্গত শুধুমাত্র যখন বেস নাম
কম্পাইলেশন সোর্স ফাইলটি ফাইলের বেস নামের সাথে মেলে যেখানে টাইপটি সংজ্ঞায়িত করা হয়েছে,
যদি না struct একটি টেমপ্লেট বা একটি সিস্টেম হেডারে সংজ্ঞায়িত করা হয়।

এই বিকল্পটি উল্লেখযোগ্যভাবে ডিবাগিং তথ্যের আকার হ্রাস করে, কিছু সহ
ডিবাগারের টাইপ তথ্যের সম্ভাব্য ক্ষতি। দেখা -ফেমিট-স্ট্রাক্ট-ডিবাগ-বেসিওলি
আরও আক্রমণাত্মক বিকল্পের জন্য। দেখা -femit-struct-ডিবাগ-বিশদ আরও বিশদ জন্য
নিয়ন্ত্রণ।

এই বিকল্পটি শুধুমাত্র DWARF 2 এর সাথে কাজ করে।

-femit-struct-ডিবাগ-বিশদ[=বিশেষ তালিকা]
স্ট্রাকট-এর মতো প্রকারগুলি নির্দিষ্ট করুন যার জন্য কম্পাইলার ডিবাগ তথ্য তৈরি করে। দ্য
উদ্দেশ্য হল বিভিন্ন অবজেক্ট ফাইলের মধ্যে ডুপ্লিকেট স্ট্রাকট ডিবাগ তথ্য কমানো
একই প্রোগ্রামের মধ্যে।

এই বিকল্পটি একটি বিস্তারিত সংস্করণ -ফেমিট-স্ট্রাক্ট-ডিবাগ-হ্রাস এবং
-ফেমিট-স্ট্রাক্ট-ডিবাগ-বেসিওলি, যা বেশিরভাগ প্রয়োজনের জন্য পরিবেশন করে।

একটি স্পেসিফিকেশনের সিনট্যাক্স আছে[হল:|ইন্ড:][আদেশ:|বংশ:](কোন|sys|ভিত্তি|না)

ঐচ্ছিক প্রথম শব্দটি স্পেসিফিকেশনকে স্ট্রাকটে সীমাবদ্ধ করে যা সরাসরি ব্যবহার করা হয়
(হল:) বা পরোক্ষভাবে ব্যবহার করা হয় (ইন্ড:) একটি struct টাইপ সরাসরি ব্যবহার করা হয় যখন এটি টাইপ হয়
একটি পরিবর্তনশীল, সদস্য. অপ্রত্যক্ষ ব্যবহারগুলি নির্দেশকের মাধ্যমে স্ট্রাকটগুলির জন্য উদ্ভূত হয়। এটাই,
যখন একটি অসম্পূর্ণ কাঠামোর ব্যবহার বৈধ হয়, তখন ব্যবহারটি পরোক্ষ। একটি উদাহরণ হল struct হয়
এক সরাসরি struct হয় দুই * পরোক্ষ.

ঐচ্ছিক দ্বিতীয় শব্দটি সাধারণ কাঠামোর স্পেসিফিকেশনকে সীমাবদ্ধ করে (আদেশ:) বা
সাধারণ কাঠামো (বংশ:) জেনেরিক স্ট্রাকটগুলি ব্যাখ্যা করার জন্য কিছুটা জটিল। C++ এর জন্য,
এগুলি হল টেমপ্লেট ক্লাসের অ-স্পষ্ট বিশেষীকরণ, বা নন-টেমপ্লেট ক্লাস
উপরের মধ্যে। অন্যান্য প্রোগ্রামিং ভাষার জেনেরিক আছে, কিন্তু
-femit-struct-ডিবাগ-বিশদ এখনও তাদের বাস্তবায়ন করে না।

তৃতীয় শব্দটি সেই স্ট্রাকটের জন্য সোর্স ফাইলগুলি নির্দিষ্ট করে যার জন্য কম্পাইলার
ডিবাগ তথ্য নির্গত করা উচিত। মান না এবং কোন স্বাভাবিক অর্থ আছে। দ্য
মূল্য ভিত্তি মানে ফাইলের নামের ভিত্তি যেখানে টাইপ ডিক্লারেশন
প্রদর্শিত প্রধান সংকলন ফাইলের নামের বেসের সাথে মেলে। প্রস্তুতিতে,
এর মানে হল যে কম্পাইল করার সময় foo.c, প্রকারের জন্য ডিবাগ তথ্য তৈরি করা হয়
সেই ফাইলে ঘোষণা করা হয়েছে এবং foo.h, কিন্তু অন্য হেডার ফাইল নয়। মূল্য sys মানে
এই ধরনের সন্তোষজনক ভিত্তি অথবা সিস্টেম বা কম্পাইলার হেডারে ঘোষিত।

আপনার অ্যাপ্লিকেশনের জন্য সেরা সেটিংস নির্ধারণ করতে আপনাকে পরীক্ষা করার প্রয়োজন হতে পারে।

ডিফল্ট হয় -ফেমিট-স্ট্রাক্ট-ডিবাগ-ডিটেলড = সমস্ত.

এই বিকল্পটি শুধুমাত্র DWARF 2 এর সাথে কাজ করে।

-fno-মার্জ-ডিবাগ-স্ট্রিং
লিঙ্কারকে ডিবাগিং তথ্যে স্ট্রিংগুলিকে একত্রিত না করার জন্য নির্দেশ করুন
বিভিন্ন অবজেক্ট ফাইলে অভিন্ন। একত্রীকরণ সমস্ত অ্যাসেম্বলার দ্বারা সমর্থিত নয় বা
লিঙ্কার মার্জ করা আউটপুট ফাইলে ডিবাগ তথ্যের আকার হ্রাস করে
লিঙ্ক প্রক্রিয়াকরণের সময় বৃদ্ধির খরচ। একত্রীকরণ ডিফল্টরূপে সক্রিয় করা হয়৷

-fdebug-prefix-Map =পুরাতন=নতুন
ডিরেক্টরিতে ফাইল কম্পাইল করার সময় পুরাতন, রেকর্ড ডিবাগিং তথ্য হিসাবে তাদের বর্ণনা
in নতুন পরিবর্তে.

-FNO-DWARF2-CFI-ASM
Emit DWARF 2 unwind info যেহেতু কম্পাইলার জেনারেট করা ".eh_frame" সেকশন ব্যবহার না করে
GAS ".cfi_*" নির্দেশাবলী।

-p বিশ্লেষণ প্রোগ্রামের জন্য উপযুক্ত প্রোফাইল তথ্য লিখতে অতিরিক্ত কোড তৈরি করুন
অধ্যাপক. আপনি যে সোর্স ফাইলগুলি সম্পর্কে ডেটা চান তা কম্পাইল করার সময় আপনাকে অবশ্যই এই বিকল্পটি ব্যবহার করতে হবে,
এবং লিঙ্ক করার সময় আপনাকে অবশ্যই এটি ব্যবহার করতে হবে।

-পিজি বিশ্লেষণ প্রোগ্রামের জন্য উপযুক্ত প্রোফাইল তথ্য লিখতে অতিরিক্ত কোড তৈরি করুন
জিপিআরএফ. আপনি যে সোর্স ফাইলগুলি সম্পর্কে ডেটা চান তা কম্পাইল করার সময় আপনাকে অবশ্যই এই বিকল্পটি ব্যবহার করতে হবে,
এবং লিঙ্ক করার সময় আপনাকে অবশ্যই এটি ব্যবহার করতে হবে।

-Q কম্পাইলারকে প্রতিটি ফাংশনের নাম প্রিন্ট আউট করে যেমন এটি কম্পাইল করা হয় এবং কিছু মুদ্রণ করে
প্রতিটি পাসের পরিসংখ্যান যখন এটি শেষ হয়।

-এফটাইম-রিপোর্ট
কম্পাইলার প্রতিটি পাস দ্বারা গ্রাস সময় সম্পর্কে কিছু পরিসংখ্যান মুদ্রণ করে তোলে যখন এটি
শেষ।

-এফএমইএম-রিপোর্ট
কম্পাইলারকে স্থায়ী মেমরি বরাদ্দ সম্পর্কে কিছু পরিসংখ্যান মুদ্রণ করে যখন এটি
শেষ।

-এফএমইএম-রিপোর্ট-ডব্লিউপিএ
কম্পাইলারকে WPA-এর জন্য স্থায়ী মেমরি বরাদ্দ সম্পর্কে কিছু পরিসংখ্যান মুদ্রণ করে
শুধুমাত্র ফেজ।

-fpre-ipa-মেম-রিপোর্ট
-fpost-ipa-মেম-রিপোর্ট
কম্পাইলারকে স্থায়ী মেমরি বরাদ্দের আগে বা আগে কিছু পরিসংখ্যান মুদ্রণ করে
আন্তঃপ্রক্রিয়াগত অপ্টিমাইজেশনের পরে।

-প্রোফাইল-রিপোর্ট
কম্পাইলারকে (আনুমানিক) প্রোফাইলের ধারাবাহিকতা সম্পর্কে কিছু পরিসংখ্যান মুদ্রণ করে
এবং পৃথক পাসের প্রভাব।

-fstack-ব্যবহার
প্রতি-ফাংশনে প্রোগ্রামের জন্য কম্পাইলার আউটপুট স্ট্যাক ব্যবহারের তথ্য তৈরি করে
ভিত্তি ডাম্পের জন্য ফাইলের নাম যোগ করে তৈরি করা হয় .su থেকে অক্সনাম. অক্সনাম is
আউটপুট ফাইলের নাম থেকে উত্পন্ন, যদি স্পষ্টভাবে উল্লেখ করা হয় এবং এটি একটি নয়
এক্সিকিউটেবল, অন্যথায় এটি সোর্স ফাইলের বেসনেম। একটি এন্ট্রি গঠিত হয়
তিনটি ক্ষেত্র:

· ফাংশনের নাম।

· বাইট সংখ্যা.

· এক বা একাধিক কোয়ালিফায়ার: "স্ট্যাটিক", "ডাইনামিক", "বাউন্ডেড"।

কোয়ালিফায়ার "স্ট্যাটিক" এর অর্থ হল যে ফাংশনটি স্ট্যাকটিকে স্ট্যাকভাবে ম্যানিপুলেট করে: ক
ফাংশন এন্ট্রিতে ফ্রেমের জন্য নির্দিষ্ট সংখ্যক বাইট বরাদ্দ করা হয় এবং রিলিজ করা হয়
ফাংশন প্রস্থান; অন্যথায় ফাংশনে কোন স্ট্যাক সমন্বয় করা হয় না। দ্বিতীয়
ক্ষেত্র হল এই নির্দিষ্ট সংখ্যক বাইট।

কোয়ালিফায়ার "ডাইনামিক" এর মানে হল যে ফাংশনটি স্ট্যাককে গতিশীলভাবে ম্যানিপুলেট করে: ইন
উপরে বর্ণিত স্ট্যাটিক বরাদ্দ ছাড়াও, স্ট্যাক সমন্বয় করা হয়
ফাংশনের বডি, উদাহরণস্বরূপ ফাংশন কলের চারপাশে আর্গুমেন্ট পুশ/পপ করা। যদি
কোয়ালিফায়ার "বাউন্ডেড"ও উপস্থিত, এই সামঞ্জস্যের পরিমাণ সীমাবদ্ধ
কম্পাইল সময় এবং দ্বিতীয় ক্ষেত্রটি ব্যবহৃত স্ট্যাকের মোট পরিমাণের একটি উপরের সীমা
ফাংশন দ্বারা এটি উপস্থিত না থাকলে, এই সমন্বয়ের পরিমাণ সীমাবদ্ধ নয়
কম্পাইল সময়ে এবং দ্বিতীয় ক্ষেত্র শুধুমাত্র আবদ্ধ অংশ প্রতিনিধিত্ব করে।

-এফপ্রোফাইল-আর্কস
কোড যোগ করুন যাতে প্রোগ্রাম প্রবাহ পরিধির মধ্যে instrumented হয় কর্মসূচী সম্পাদনের সময়
প্রতিটি শাখা এবং কল কতবার কার্যকর করা হয়েছে এবং কতবার নেওয়া হয়েছে তা রেকর্ড করে
অথবা ফিরে আসে। যখন কম্পাইল করা প্রোগ্রামটি প্রস্থান করে তখন এটি একটি ফাইলে এই ডেটা সংরক্ষণ করে
Auxname.gcda প্রতিটি উৎস ফাইলের জন্য। ডেটা প্রোফাইল-নির্দেশিত জন্য ব্যবহার করা যেতে পারে
অপ্টিমাইজেশান (-fbranch-সম্ভাবনা), অথবা পরীক্ষার কভারেজ বিশ্লেষণের জন্য
(-সবচেয়ে কভারেজ) প্রতিটি বস্তু ফাইল এর অক্সনাম এর নাম থেকে উৎপন্ন হয়
আউটপুট ফাইল, যদি স্পষ্টভাবে নির্দিষ্ট করা থাকে এবং এটি চূড়ান্ত নির্বাহযোগ্য নয়, অন্যথায় এটি
উৎস ফাইলের মূল নাম। উভয় ক্ষেত্রেই কোনো প্রত্যয় সরানো হয় (যেমন
foo.gcda ইনপুট ফাইলের জন্য দির/foo.c, বা Dir/foo.gcda হিসাবে নির্দিষ্ট আউটপুট ফাইলের জন্য -o
দির/foo.o).

--কভারেজ
এই বিকল্পটি কভারেজ বিশ্লেষণের জন্য যন্ত্রযুক্ত কোড কম্পাইল এবং লিঙ্ক করতে ব্যবহৃত হয়। দ্য
অপশন এর প্রতিশব্দ -এফপ্রোফাইল-আর্কস -সবচেয়ে কভারেজ (সংকলন করার সময়) এবং -lgcov
(লিঙ্ক করার সময়)। আরও বিশদ বিবরণের জন্য সেই বিকল্পগুলির জন্য ডকুমেন্টেশন দেখুন।

এর সাথে সোর্স ফাইল কম্পাইল করুন -এফপ্রোফাইল-আর্কস প্লাস অপ্টিমাইজেশান এবং কোড জেনারেশন
বিকল্প পরীক্ষার কভারেজ বিশ্লেষণের জন্য, অতিরিক্ত ব্যবহার করুন -সবচেয়ে কভারেজ বিকল্প।
আপনাকে একটি প্রোগ্রামে প্রতিটি উত্স ফাইল প্রোফাইল করতে হবে না।

আপনার অবজেক্ট ফাইলের সাথে লিঙ্ক করুন -lgcov or -এফপ্রোফাইল-আর্কস (পরবর্তীটি বোঝায়
সাবেক)।

· আর্ক প্রোফাইল তৈরি করতে একটি প্রতিনিধি কাজের চাপে প্রোগ্রামটি চালান
তথ্য এটি যে কোনো সংখ্যক বার পুনরাবৃত্তি হতে পারে। আপনি একযোগে চালাতে পারেন
আপনার প্রোগ্রামের দৃষ্টান্ত, এবং প্রদান করে যে ফাইল সিস্টেম লকিং সমর্থন করে,
ডেটা ফাইল সঠিকভাবে আপডেট করা হবে। এছাড়াও "ফর্ক" কল সনাক্ত করা হয় এবং
সঠিকভাবে পরিচালিত (ডবল গণনা ঘটবে না)।

প্রোফাইল-নির্দেশিত অপ্টিমাইজেশানের জন্য, একই সাথে আবার সোর্স ফাইল কম্পাইল করুন
অপ্টিমাইজেশান এবং কোড জেনারেশন অপশন প্লাস -fbranch-সম্ভাবনা.

· পরীক্ষার কভারেজ বিশ্লেষণের জন্য, ব্যবহার করুন gcov থেকে মানুষের পঠনযোগ্য তথ্য তৈরি করতে
দ্য .gcno এবং .gcda নথি পত্র. পড়ুন gcov আরও জন্য ডকুমেন্টেশন
তথ্য।

সঙ্গে -এফপ্রোফাইল-আর্কস, আপনার প্রোগ্রামের প্রতিটি ফাংশনের জন্য GCC একটি প্রোগ্রাম প্রবাহ তৈরি করে
গ্রাফ, তারপর গ্রাফের জন্য একটি বিস্তৃত গাছ খুঁজে পায়। শুধুমাত্র arcs যে উপর নেই
স্প্যানিং ট্রিকে ইনস্ট্রুমেন্ট করতে হবে: কম্পাইলার সংখ্যা গণনা করতে কোড যোগ করে
এই arcs মৃত্যুদন্ড কার্যকর করা হয় যে বার. যখন একটি চাপ হল একমাত্র প্রস্থান বা প্রবেশ পথ
একটি ব্লক, ইন্সট্রুমেন্টেশন কোড ব্লকে যোগ করা যেতে পারে; অন্যথায়, একটি নতুন মৌলিক
ইন্সট্রুমেন্টেশন কোড ধরে রাখতে ব্লক তৈরি করতে হবে।

-সবচেয়ে কভারেজ
একটি নোট ফাইল তৈরি করুন যে gcov কোড-কভারেজ ইউটিলিটি প্রোগ্রাম দেখানোর জন্য ব্যবহার করতে পারে
কভারেজ প্রতিটি উৎস ফাইলের নোট ফাইল বলা হয় Auxname.gcno। পড়ুন
-এফপ্রোফাইল-আর্কস একটি বর্ণনার জন্য উপরে বিকল্প অক্সনাম এবং কিভাবে করতে হবে তার নির্দেশাবলী
পরীক্ষার কভারেজ ডেটা তৈরি করুন। কভারেজ ডেটা সোর্স ফাইলের সাথে আরও ঘনিষ্ঠভাবে মেলে যদি
আপনি অপ্টিমাইজ করবেন না।

-fdbg-cnt-তালিকা
সমস্ত ডিবাগ কাউন্টারের জন্য নাম এবং কাউন্টার উপরের বাউন্ড প্রিন্ট করুন।

-fdbg-cnt =পাল্টা মূল্য তালিকা
অভ্যন্তরীণ ডিবাগ কাউন্টার উপরের বাউন্ড সেট করুন। পাল্টা মূল্য তালিকা একটি কমা দ্বারা পৃথক করা হয়
তালিকা নাম:মূল্য জোড়া যা প্রতিটি ডিবাগ কাউন্টারের উপরের সীমানা সেট করে নাম থেকে
মূল্য. সমস্ত ডিবাগ কাউন্টারে "UINT_MAX" এর প্রাথমিক উপরের সীমা থাকে; এইভাবে
"dbg_cnt()" সর্বদা সত্য প্রদান করে যদি না উপরের সীমাটি এই বিকল্প দ্বারা সেট করা হয়। জন্য
উদাহরণ, সঙ্গে -fdbg-cnt = dce: 10, টেল_ক্যাল: 0, "dbg_cnt(dce)" শুধুমাত্র প্রথমের জন্য সত্য প্রদান করে
10টি আহ্বান

-প্রমাণযোগ্য-রকম-পাস
-ফডিসেবল-রকম-পাস=পরিসীমা তালিকা
এটি বিকল্পগুলির একটি সেট যা স্পষ্টভাবে অপ্টিমাইজেশন নিষ্ক্রিয়/সক্ষম করতে ব্যবহৃত হয়
পাস এই বিকল্পগুলি GCC ডিবাগ করার জন্য ব্যবহারের উদ্দেশ্যে। কম্পাইলার ব্যবহারকারীদের উচিত
পরিবর্তে পাস সক্রিয়/অক্ষম করার জন্য নিয়মিত বিকল্প ব্যবহার করুন।

-ফডিসেবল-আইপি-পাস
IPA পাস নিষ্ক্রিয় করুন পাস. পাস পাসের নাম। একই পাস স্ট্যাটিক হলে
কম্পাইলারে একাধিকবার আহ্বান করা হলে, পাসের নাম a এর সাথে যুক্ত করতে হবে
অনুক্রমিক সংখ্যা 1 থেকে শুরু।

-fdisable-rtl-পাস
-fdisable-rtl-পাস=পরিসীমা তালিকা
RTL পাস নিষ্ক্রিয় করুন পাস. পাস পাসের নাম। একই পাস স্ট্যাটিক হলে
কম্পাইলারে একাধিকবার আহ্বান করা হলে, পাসের নাম a এর সাথে যুক্ত করতে হবে
অনুক্রমিক সংখ্যা 1 থেকে শুরু। পরিসীমা তালিকা একটি কমা দ্বারা পৃথক করা তালিকা
ফাংশন রেঞ্জ বা অ্যাসেম্বলারের নাম। প্রতিটি ব্যাপ্তি a দ্বারা পৃথক করা একটি সংখ্যা জোড়া
কোলন পরিসীমা উভয় প্রান্তে অন্তর্ভুক্ত। পরিসীমা তুচ্ছ হলে, সংখ্যা
জোড়া একটি একক সংখ্যা হিসাবে সরলীকৃত করা যেতে পারে। যদি ফাংশন কল গ্রাফ নোড এর
ইউআইডি একটি নির্দিষ্ট রেঞ্জের মধ্যে পড়ে, পাস এর জন্য অক্ষম
ফাংশন দ্য ইউআইডি একটি ডাম্প ফাইলের ফাংশন হেডার এবং পাসে দেখানো হয়
নাম অপশন ব্যবহার করে ডাম্প করা যেতে পারে -fdump-পাস.

অক্ষম-গাছ-পাস
অক্ষম-গাছ-পাস=পরিসীমা তালিকা
ট্রি পাস অক্ষম করুন পাস। দেখ -fdisable-rtl বিকল্পের বর্ণনার জন্য
আর্গুমেন্ট।

-ফেনেবল-আইপিএ-পাস
IPA পাস সক্ষম করুন পাস. পাস পাসের নাম। একই পাস স্ট্যাটিক হলে
কম্পাইলারে একাধিকবার আহ্বান করা হলে, পাসের নাম a এর সাথে যুক্ত করতে হবে
অনুক্রমিক সংখ্যা 1 থেকে শুরু।

-ফেনেবল-আরটিএল-পাস
-ফেনেবল-আরটিএল-পাস=পরিসীমা তালিকা
RTL পাস সক্ষম করুন পাস। দেখ -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-ipa-ইনলাইন
# গাছ সম্পূর্ণ আনরোল সক্ষম করুন
-ফেনেবল-ট্রি-অনরোল

-dঅক্ষর
-fdump-rtl-পাস
-fdump-rtl-পাস=ফাইলের নাম
দ্বারা নির্দিষ্ট সময়ে সংকলনের সময় ডিবাগিং ডাম্প করতে বলে অক্ষর. এই
কম্পাইলারের RTL-ভিত্তিক পাস ডিবাগ করার জন্য ব্যবহৃত হয়। বেশিরভাগের জন্য ফাইলের নাম
ডাম্পগুলির একটি পাস নম্বর এবং একটি শব্দ যোগ করে তৈরি করা হয় ডাম্পনাম, এবং
ফাইলগুলি আউটপুট ফাইলের ডিরেক্টরিতে তৈরি করা হয়। জন্য =ফাইলের নাম বিকল্প,
পাস নম্বরযুক্ত ডাম্প ফাইলের পরিবর্তে প্রদত্ত ফাইলে ডাম্প আউটপুট হয়। বিঃদ্রঃ
যে পাস নম্বরটি স্ট্যাটিকভাবে গণনা করা হয় যখন পাসগুলি পাসে নিবন্ধিত হয়
ম্যানেজার এইভাবে সংখ্যায়নটি কার্যকর করার গতিশীল আদেশের সাথে সম্পর্কিত নয়
পাস বিশেষ করে, একটি প্লাগইন দ্বারা ইনস্টল করা একটি পাসের সংখ্যা 200 এর বেশি হতে পারে
যদি এটি বেশ তাড়াতাড়ি কার্যকর করা হয়। ডাম্পনাম আউটপুট ফাইলের নাম থেকে তৈরি হয়,
যদি স্পষ্টভাবে উল্লেখ করা হয় এবং এটি একটি এক্সিকিউটেবল নয়, অন্যথায় এটি এর বেসনেম
উৎস ফাইল। এই সুইচগুলির বিভিন্ন প্রভাব থাকতে পারে যখন -E জন্য ব্যবহৃত হয়
প্রিপ্রসেসিং

ডিবাগ ডাম্প একটি দিয়ে সক্ষম করা যেতে পারে -ফডাম্প-আরটিএল সুইচ বা কিছু -d পছন্দ অক্ষর। এখানে
ব্যবহার করার জন্য সম্ভাব্য অক্ষর হয় পাস এবং অক্ষর, এবং তাদের অর্থ:

-fdump-rtl-সারিবদ্ধকরণ
শাখা প্রান্তিককরণের পরে ডাম্প গণনা করা হয়েছে।

-fdump-rtl-amamcons
rtl স্টেটমেন্ট ঠিক করার পরে ডাম্প করুন যেগুলির মধ্যে/আউট সীমাবদ্ধতাগুলি অসন্তুষ্ট।

-fdump-rtl-uto_inc_dec
অটো-ইনক-ডিসেম্বর আবিষ্কারের পরে ডাম্প। এই পাস শুধুমাত্র স্থাপত্য চালানো হয় যে
স্বয়ংক্রিয় inc বা স্বয়ংক্রিয় ডিসেম্বর নির্দেশাবলী আছে.

-fdump-rtl- বাধা
বাধা নির্দেশাবলী পরিষ্কার করার পরে ডাম্প.

-ফডাম্প-আরটিএল-বিবিপার্ট
গরম এবং ঠান্ডা মৌলিক ব্লক পার্টিশন করার পরে ডাম্প.

-ফডাম্প-আরটিএল-বিবিআরও
ব্লক পুনর্বিন্যাস পরে ডাম্প.

-fdump-rtl-btl1
-fdump-rtl-btl2
-fdump-rtl-btl1 এবং -fdump-rtl-btl2 দুটি শাখা লক্ষ্যের পরে ডাম্পিং সক্ষম করুন
লোড অপ্টিমাইজেশান পাস।

-fdump-rtl-বাইপাস
জাম্প বাইপাস এবং নিয়ন্ত্রণ প্রবাহ অপ্টিমাইজেশান পরে ডাম্প.

-fdump-rtl-কম্বাইন
RTL নির্দেশের সমন্বয় পাসের পরে ডাম্প করুন।

-fdump-rtl-compgotos
কম্পিউটেড গোটো ডুপ্লিকেট করার পর ডাম্প করুন।

-fdump-rtl-c1
-fdump-rtl-c2
-fdump-rtl-c3
-fdump-rtl-c1, -fdump-rtl-c2, এবং -fdump-rtl-c3 তিনটির পরে ডাম্পিং সক্ষম করুন
যদি রূপান্তর পাস হয়।

-fdump-rtl-cprop_hardreg
হার্ড রেজিস্টার কপি প্রচারের পরে ডাম্প করুন।

-fdump-rtl-csa
স্ট্যাক সমন্বয় সমন্বয় পরে ডাম্প.

-FDUMP-RTL-CSE1
-FDUMP-RTL-CSE2
-FDUMP-RTL-CSE1 এবং -FDUMP-RTL-CSE2 দুটি সাধারণের পরে ডাম্পিং সক্ষম করুন
subexpression নির্মূল পাস.

-ফডাম্প-আরটিএল-ডিসিই
স্বতন্ত্র ডেড কোড নির্মূল পাসের পরে ডাম্প করুন।

-ফডাম্প-আরটিএল-ডিবিআর
বিলম্বিত শাখা সময়সূচী পরে ডাম্প.

-fdump-RTL-DCE1
-fdump-RTL-DCE2
-fdump-RTL-DCE1 এবং -fdump-RTL-DCE2 দুটি মৃত দোকান পরে ডাম্পিং সক্ষম করুন
নির্মূল পাস

-fdump-rtl-eh
EH হ্যান্ডলিং কোড চূড়ান্ত করার পরে ডাম্প।

-fdump-rtl-Eh_ranges
EH হ্যান্ডলিং পরিসীমা অঞ্চলের রূপান্তরের পরে ডাম্প।

-fdump-rtl-প্রসারিত
RTL প্রজন্মের পরে ডাম্প।

-fdump-rtl-fwprop1
-fdump-rtl-fwprop2
-fdump-rtl-fwprop1 এবং -fdump-rtl-fwprop2 দুই ফরোয়ার্ডের পরে ডাম্পিং সক্ষম করুন
বংশবিস্তার পাস।

-FDUMP-RTL-GCSE1
-FDUMP-RTL-GCSE2
-FDUMP-RTL-GCSE1 এবং -FDUMP-RTL-GCSE2 বিশ্বব্যাপী সাধারণের পরে ডাম্পিং সক্ষম করুন
সাব এক্সপ্রেশন নির্মূল।

-fdump-rtl-init-regs
রেজিস্টার শুরু করার পরে ডাম্প.

-fdump-rtl-intivals
প্রাথমিক মান সেটের গণনার পরে ডাম্প করুন।

-fdump-rtl-into_cfglayout
cfglayout মোডে রূপান্তর করার পরে ডাম্প করুন।

-ফডাম্প-আরটিএল-আইআরএ
পুনরাবৃত্ত রেজিস্টার বরাদ্দ পরে ডাম্প.

-fdump-rtl-জাম্প
দ্বিতীয় জাম্প অপ্টিমাইজেশান পরে ডাম্প.

-fdump-rtl-loop2
-fdump-rtl-loop2 rtl লুপ অপ্টিমাইজেশান পাস করার পরে ডাম্পিং সক্ষম করে।

-fdump-rtl-mach
মেশিন নির্ভর পুনর্গঠন পাস সম্পাদন করার পরে ডাম্প, যদি পাস
বিদ্যমান।

-fdump-rtl-Mode_sw
অপ্রয়োজনীয় মোড সুইচগুলি সরানোর পরে ডাম্প করুন।

-fdump-rtl-rnreg
রেজিস্টার renumbering পরে ডাম্প.

-fdump-rtl-outof_cfglayout
cfglayout মোড থেকে রূপান্তর করার পরে ডাম্প করুন।

-fdump-rtl-peephole2
peephole পাস পরে ডাম্প.

-fdump-rtl-Postreload
পোস্ট-রিলোড অপ্টিমাইজেশান পরে ডাম্প.

-fdump-rtl-pro_ এবং_পিলোগ
ফাংশন prologues এবং epilogues তৈরি করার পরে ডাম্প.

-fdump-rtl-regmove
রেজিস্টার সরানোর পাস পরে ডাম্প.

-fdump-rtl-sched1
-fdump-rtl-sched2
-fdump-rtl-sched1 এবং -fdump-rtl-sched2 মৌলিক ব্লকের পরে ডাম্পিং সক্ষম করুন
সময়সূচী পাস

-fdump-rtl-দেখুন
সাইন এক্সটেনশন নির্মূল পরে ডাম্প.

-fdump-rtl-seqabstr
সাধারণ ক্রম আবিষ্কারের পরে ডাম্প।

-fdump-rtl-সংক্ষিপ্ত
শাখা ছোট করার পর ডাম্প করুন।

-fdump-rtl-ভাইবোন
ভাইবোন কল অপ্টিমাইজেশান পরে ডাম্প.

-fdump-rtl-split1
-fdump-rtl-split2
-fdump-rtl-split3
-fdump-rtl-split4
-fdump-rtl-split5
-fdump-rtl-split1, -fdump-rtl-split2, -fdump-rtl-split3, -fdump-rtl-split4 এবং
-fdump-rtl-split5 নির্দেশ বিভাজনের পাঁচ রাউন্ড পরে ডাম্পিং সক্ষম করুন।

-fdump-rtl-sms
মডিউল সময়সূচী পরে ডাম্প. এই পাস শুধুমাত্র কিছু আর্কিটেকচারে চালানো হয়।

-fdump-rtl-স্ট্যাক
GCC এর "ফ্ল্যাট রেজিস্টার ফাইল" থেকে x87 এর রেজিস্টারে রূপান্তরের পরে ডাম্প করুন
স্ট্যাকের মতো রেজিস্টার। এই পাস শুধুমাত্র x86 ভেরিয়েন্টে চালানো হয়।

-fdump-rtl-subreg1
-fdump-rtl-subreg2
-fdump-rtl-subreg1 এবং -fdump-rtl-subreg2 দুটি উপরেগের পরে ডাম্পিং সক্ষম করুন
সম্প্রসারণ পাস

-fdump-rtl-আনশেয়ার
সমস্ত rtl শেয়ার না করা হয়েছে পরে ডাম্প.

-fdump-rtl-vartrack
পরিবর্তনশীল ট্র্যাকিং পরে ডাম্প.

-fdump-rtl-vregs
ভার্চুয়াল রেজিস্টারগুলিকে হার্ড রেজিস্টারে রূপান্তর করার পরে ডাম্প করুন।

-এফডাম্প-আরটিএল-ওয়েব
লাইভ পরিসীমা বিভাজন পরে ডাম্প.

-fdump-rtl-reglass
-fdump-rtl-subregs_of_mode_init
-fdump-rtl-subregs_of_mode_finish
-fdump-rtl-dfinit
-fdump-rtl-dfinish
এই ডাম্পগুলি সংজ্ঞায়িত করা হয় তবে সর্বদা খালি ফাইল তৈরি করে।

ইন
-fdump-rtl-সমস্ত
উপরে তালিকাভুক্ত সমস্ত ডাম্প উত্পাদন.

-da বিবিধ ডিবাগিং তথ্য সহ অ্যাসেম্বলার আউটপুট টীকা করুন।

-ডিডি সমস্ত ম্যাক্রো সংজ্ঞা ডাম্প করুন, প্রিপ্রসেসিং শেষে, স্বাভাবিক ছাড়াও
আউটপুট।

-ডিএইচ যখনই একটি ত্রুটি ঘটে তখন একটি কোর ডাম্প তৈরি করুন।

-ডিপি কোন প্যাটার্ন এবং নির্দেশ করে একটি মন্তব্য সহ অ্যাসেম্বলার আউটপুট টীকা করুন
বিকল্প ব্যবহার করা হয়। প্রতিটি নির্দেশের দৈর্ঘ্যও মুদ্রিত হয়।

-ডিপি প্রতিটি নির্দেশের আগে একটি মন্তব্য হিসাবে অ্যাসেম্বলার আউটপুটে RTL ডাম্প করুন। এছাড়াও
সক্রিয় -ডিপি টীকা।

-ডেক্স এটি কম্পাইল করার পরিবর্তে শুধুমাত্র একটি ফাংশনের জন্য RTL তৈরি করুন। সাধারণত এর সাথে ব্যবহার করা হয়
-fdump-rtl-প্রসারিত.

-fdump-noaddr
ডিবাগিং ডাম্প করার সময়, ঠিকানা আউটপুট দমন করুন। এই এটা আরো বাস্তবসম্মত করে তোলে
বিভিন্ন কম্পাইলার বাইনারি সহ কম্পাইলার আহ্বানের জন্য ডিবাগিং ডাম্পে ডিফ ব্যবহার করুন
এবং/অথবা বিভিন্ন টেক্সট/বিএসএস/ডেটা/হিপ/স্ট্যাক/ডিএসও স্টার্ট লোকেশন।

-fdump-অসংখ্যিত
ডিবাগিং ডাম্প করার সময়, নির্দেশ সংখ্যা এবং ঠিকানা আউটপুট দমন করুন। এই
এর সাথে কম্পাইলার ইনভোকেশনের জন্য ডিবাগিং ডাম্পে ডিফ ব্যবহার করা আরও সম্ভাব্য করে তোলে
বিভিন্ন বিকল্প, বিশেষ করে সহ এবং ছাড়া -g.

-fdump-অসংখ্যিত-লিঙ্ক
ডিবাগিং ডাম্প করার সময় (দেখুন -d উপরের বিকল্প), এর জন্য নির্দেশ সংখ্যা দমন করুন
একটি অনুক্রম পূর্ববর্তী এবং পরবর্তী নির্দেশাবলী লিঙ্ক.

-fdump-অনুবাদ-ইউনিট (শুধুমাত্র C++)
-fdump-অনুবাদ-ইউনিট-অপশন (শুধুমাত্র C++)
একটি ফাইলে সম্পূর্ণ অনুবাদ ইউনিটের জন্য গাছের কাঠামোর একটি উপস্থাপনা ডাম্প করুন।
ফাইলের নাম যোগ করে তৈরি করা হয় .তু উৎস ফাইলের নাম, এবং ফাইল হয়
আউটপুট ফাইলের মতো একই ডিরেক্টরিতে তৈরি করা হয়েছে। যদি -অপশন ফর্ম ব্যবহার করা হয়,
অপশন ডাম্পের বিবরণ নিয়ন্ত্রণ করে যেমন বর্ণনা করা হয়েছে -fdump-বৃক্ষ অপশন।

-fdump-শ্রেণী-শ্রেণিক্রম (শুধুমাত্র C++)
-fdump-শ্রেণী-শ্রেণিক্রম-অপশন (শুধুমাত্র C++)
প্রতিটি শ্রেণীর শ্রেণিবিন্যাসের একটি উপস্থাপনা এবং ভার্চুয়াল ফাংশন টেবিল বিন্যাস a এ ডাম্প করুন
ফাইল ফাইলের নাম যোগ করে তৈরি করা হয় .শ্রেণী উৎস ফাইলের নাম এবং ফাইলে
আউটপুট ফাইলের মতো একই ডিরেক্টরিতে তৈরি করা হয়। যদি -অপশন ফর্ম ব্যবহার করা হয়,
অপশন ডাম্পের বিবরণ নিয়ন্ত্রণ করে যেমন বর্ণনা করা হয়েছে -fdump-বৃক্ষ অপশন।

-fdump-ipa-সুইচ
আন্তঃপ্রক্রিয়াগত বিশ্লেষণ ভাষার গাছের বিভিন্ন পর্যায়ে ডাম্পিং নিয়ন্ত্রণ করুন
ফাইল ফাইলের নাম উৎসে একটি সুইচ নির্দিষ্ট প্রত্যয় যুক্ত করে তৈরি করা হয়
ফাইলের নাম, এবং ফাইলটি আউটপুট ফাইলের মতো একই ডিরেক্টরিতে তৈরি করা হয়। দ্য
নিম্নলিখিত ডাম্প সম্ভব:

সব সমস্ত আন্তঃপ্রক্রিয়াগত বিশ্লেষণ ডাম্প সক্ষম করে।

সিগ্রাফ
কল-গ্রাফ অপ্টিমাইজেশান, অব্যবহৃত ফাংশন অপসারণ, এবং সম্পর্কে তথ্য ডাম্প করে
ইনলাইনিং সিদ্ধান্ত।

সঙ্গতিপূর্ণভাবে
ফাংশন ইনলাইনিং পরে ডাম্প.

-fdump-পাস
অপ্টিমাইজেশান পাসের তালিকা ডাম্প করুন যা কারেন্ট দ্বারা চালু এবং বন্ধ করা হয়
কমান্ড লাইন বিকল্প।

-fdump-পরিসংখ্যান-পছন্দ
একটি পৃথক ফাইলে পাস পরিসংখ্যানের ডাম্পিং সক্ষম এবং নিয়ন্ত্রণ করুন। ফাইলের নাম হল
শেষ হওয়া একটি প্রত্যয় যুক্ত করে তৈরি করা হয় পরিসংখ্যান উৎস ফাইলের নাম, এবং
ফাইলটি আউটপুট ফাইলের মতো একই ডিরেক্টরিতে তৈরি করা হয়। যদি -পছন্দ ফর্ম হল
ব্যবহৃত, -পরিসংখ্যান কাউন্টারগুলিকে সমগ্র সংকলন ইউনিটের উপর সংক্ষিপ্ত করার কারণ করে
- বিস্তারিত প্রতিটি ইভেন্টকে ডাম্প করে দেয় যেহেতু পাসগুলি তাদের তৈরি করে। কোন বিকল্প সঙ্গে ডিফল্ট হয়
কম্পাইল করা প্রতিটি ফাংশনের জন্য কাউন্টার যোগ করুন।

-fdump-ট্রি-সুইচ
-fdump-ট্রি-সুইচ-অপশন
-fdump-ট্রি-সুইচ-অপশন=ফাইলের নাম
মধ্যবর্তী ভাষা গাছ প্রক্রিয়াকরণের বিভিন্ন পর্যায়ে ডাম্পিং নিয়ন্ত্রণ করুন
একটি নথি. ফাইলের নামটিতে একটি সুইচ-নির্দিষ্ট প্রত্যয় যুক্ত করে তৈরি করা হয়
উৎস ফাইলের নাম, এবং ফাইলটি আউটপুট ফাইলের মতো একই ডিরেক্টরিতে তৈরি করা হয়। ভিতরে
কেস =ফাইলের নাম বিকল্প, ডাম্পটি স্বয়ংক্রিয় পরিবর্তে প্রদত্ত ফাইলে আউটপুট
নাম দেওয়া ডাম্প ফাইল। যদি -অপশন ফর্ম ব্যবহার করা হয়, অপশন এর একটি তালিকা - বিভক্ত
অপশন যা ডাম্পের বিবরণ নিয়ন্ত্রণ করে। সব অপশন সবার জন্য প্রযোজ্য নয়
ডাম্প যেগুলো অর্থপূর্ণ নয় সেগুলো উপেক্ষা করা হয়। নিম্নলিখিত বিকল্পগুলি উপলব্ধ

ঠিকানা
প্রতিটি নোডের ঠিকানা প্রিন্ট করুন। সাধারণত এটি পরিবর্তিত হওয়ায় এটি অর্থপূর্ণ নয়
পরিবেশ এবং উৎস ফাইল অনুযায়ী। এর প্রাথমিক ব্যবহার হল বাঁধার জন্য
একটি ডিবাগ পরিবেশ সহ ডাম্প ফাইল।

asmname
যদি একটি প্রদত্ত ঘোষণার জন্য "DECL_ASSEMBLER_NAME" সেট করা থাকে, তাহলে সেটি ডাম্পে ব্যবহার করুন
"DECL_NAME" এর পরিবর্তে। এটির প্রাথমিক ব্যবহার হল ব্যবহারের সহজতা থেকে পিছিয়ে কাজ করা
অ্যাসেম্বলি ফাইলে ম্যাঙ্গলড নাম।

পাতলা
ফ্রন্ট-এন্ড মধ্যবর্তী উপস্থাপনা ডাম্পিং করার সময়, এর সদস্যদের ডাম্পিং বাধা দেয়
একটি স্কোপ বা একটি ফাংশনের বডি শুধুমাত্র কারণ সেই সুযোগটি পৌঁছে গেছে। কেবল
এই ধরনের আইটেম ডাম্প যখন তারা অন্য কোনো পথ দ্বারা সরাসরি পৌঁছানো যায়.

সুন্দর-মুদ্রিত গাছ ডাম্পিং করার সময়, এই বিকল্পের মৃতদেহ ডাম্পিং বাধা দেয়
নিয়ন্ত্রণ কাঠামো।

RTL ডাম্প করার সময়, ডিফল্টের পরিবর্তে RTL স্লিম (কনডেন্সড) আকারে প্রিন্ট করুন
LISP-এর মতো উপস্থাপনা।

কাঁচা গাছের একটি কাঁচা উপস্থাপনা মুদ্রণ করুন। ডিফল্টরূপে, গাছগুলি সুন্দরভাবে মুদ্রিত হয়৷
একটি সি-এর মতো উপস্থাপনা।

বিস্তারিত
আরও বিস্তারিত ডাম্প সক্ষম করুন (প্রতিটি ডাম্প বিকল্প দ্বারা সম্মানিত নয়)। এছাড়াও অন্তর্ভুক্ত
অপ্টিমাইজেশান পাস থেকে তথ্য.

পরিসংখ্যান
পাস সম্পর্কে বিভিন্ন পরিসংখ্যান ডাম্পিং সক্ষম করুন (প্রতিটি ডাম্প দ্বারা সম্মানিত হয় না
বিকল্প)।

ব্লক
মৌলিক ব্লক সীমানা দেখানো সক্ষম করুন (কাঁচা ডাম্পে অক্ষম)।

চিত্রলেখ
প্রতিটি নির্দেশিত ডাম্প ফাইলের জন্য (-fdump-rtl-পাস), ডাম্প a
GraphViz-এর সাথে দেখার জন্য উপযুক্ত নিয়ন্ত্রণ প্রবাহ গ্রাফের উপস্থাপনা
file.passid.pass.dot. ফাইলের প্রতিটি ফাংশন একটি সাবগ্রাফ হিসাবে সুন্দর-মুদ্রিত হয়,
যাতে গ্রাফভিজ সেগুলিকে একক প্লটে রেন্ডার করতে পারে।

এই বিকল্পটি বর্তমানে শুধুমাত্র RTL ডাম্পের জন্য কাজ করে এবং RTL সর্বদা ডাম্প করা হয়
পাতলা ফর্ম।

vops
প্রতিটি বিবৃতির জন্য ভার্চুয়াল অপারেন্ড দেখানো সক্ষম করুন।

লাইননো
বিবৃতিগুলির জন্য লাইন নম্বর দেখানো সক্ষম করুন৷

ইউআইডি প্রতিটি ভেরিয়েবলের জন্য অনন্য ID ("DECL_UID") দেখানো সক্ষম করুন৷

ভার্বোস
প্রতিটি স্টেটমেন্টের জন্য ট্রি ডাম্প দেখানো সক্ষম করুন।

eh প্রতিটি বিবৃতি ধারণ করে EH অঞ্চলের নম্বর দেখানো সক্ষম করুন৷

SCEV
স্কেলার বিবর্তন বিশ্লেষণের বিবরণ দেখানো সক্ষম করুন।

অপ্টিমাইজ
অপ্টিমাইজেশান তথ্য দেখানো সক্ষম করুন (শুধুমাত্র নির্দিষ্ট পাসগুলিতে উপলব্ধ)।

মিস
মিস করা অপ্টিমাইজেশান তথ্য দেখানো সক্ষম করুন (শুধুমাত্র নির্দিষ্ট পাসগুলিতে উপলব্ধ)।

নোট
অন্যান্য বিস্তারিত অপ্টিমাইজেশান তথ্য সক্ষম করুন (শুধুমাত্র নির্দিষ্ট পাসগুলিতে উপলব্ধ)।

=ফাইলের নাম
একটি অটো নামের ডাম্প ফাইলের পরিবর্তে, প্রদত্ত ফাইলের নামে আউটপুট করুন। ফাইল
নাম stdout এবং stderr বিশেষভাবে চিকিত্সা করা হয় এবং ইতিমধ্যে খোলা বলে মনে করা হয়
স্ট্যান্ডার্ড স্ট্রীম উদাহরণ স্বরূপ,

gcc -o2 -ftree-vectorize -fdump- ট্রি-ভেক্টর-ব্লকস = foo.dump
-fdump- ট্রি-প্রি = স্টেরার ফাইল.সি

আউটপুট ভেক্টরাইজার ডাম্প মধ্যে foo.ডাম্প, যখন PRE ডাম্প আউটপুট চালু হয় stderr.
যদি একই পাসের জন্য দুটি বিরোধপূর্ণ ডাম্প ফাইলের নাম দেওয়া হয়, তাহলে পরবর্তীটি
বিকল্পটি আগেরটিকে ওভাররাইড করে।

সব বাদে সব অপশন চালু করুন কাঁচা, পাতলা, ভার্বোস এবং লাইননো.

অপটাল
সমস্ত অপ্টিমাইজেশান বিকল্পগুলি চালু করুন, যেমন, অপ্টিমাইজ, মিস, এবং বিঃদ্রঃ.

নিম্নলিখিত গাছের ডাম্প সম্ভব:

মূল
কোন গাছ ভিত্তিক অপ্টিমাইজেশান আগে ডাম্প, থেকে ফাইল.রিজিনাল.

অপ্টিমাইজ
সব গাছ ভিত্তিক অপ্টিমাইজেশান পরে ডাম্প, থেকে ফাইল.অপটিমাইজড.

জিম্পল
একটি ফাইলে জিমপ্লিফিকেশন পাসের আগে এবং পরে প্রতিটি ফাংশন ডাম্প করুন। ফাইল
নাম যোগ করে তৈরি করা হয় .গিম্পল উৎস ফাইলের নামে।

cfg প্রতিটি ফাংশনের কন্ট্রোল ফ্লো গ্রাফ একটি ফাইলে ডাম্প করুন। ফাইলের নাম দ্বারা তৈরি করা হয়
সংযোজন .cfg উৎস ফাইলের নামে।

ch লুপ হেডার কপি করার পর প্রতিটি ফাংশন ডাম্প করুন। ফাইলের নাম যোগ করে তৈরি করা হয়
.ch উৎস ফাইলের নামে।

SSA একটি ফাইলে SSA সম্পর্কিত তথ্য ডাম্প করুন। ফাইলের নাম যোগ করে তৈরি করা হয় .সা
উৎস ফাইলের নামে।

উপনাম
প্রতিটি ফাংশনের জন্য অ্যালিয়াসিং তথ্য ডাম্প করুন। ফাইলের নাম যোগ করে তৈরি করা হয়
.আলিয়াস উৎস ফাইলের নামে।

CCP CCP এর পরে প্রতিটি ফাংশন ডাম্প করুন। ফাইলের নাম যোগ করে তৈরি করা হয় .সিসিপি থেকে
উৎস ফাইলের নাম।

স্টোরেকসিপি
STORE-CCP এর পরে প্রতিটি ফাংশন ডাম্প করুন। ফাইলের নাম যোগ করে তৈরি করা হয় .storeccp
উৎস ফাইলের নামে।

প্রাক আংশিক অপ্রয়োজনীয়তা দূর করার পরে গাছ ডাম্প করুন। ফাইলের নাম দ্বারা তৈরি করা হয়
সংযোজন .প্রে উৎস ফাইলের নামে।

fre সম্পূর্ণ অপ্রয়োজনীয়তা দূর করার পরে গাছ ডাম্প করুন। ফাইলের নাম যোগ করে তৈরি করা হয়
.ফ্রে উৎস ফাইলের নামে।

কপিপ্রপ
অনুলিপি প্রচারের পরে গাছ ডাম্প করুন। ফাইলের নাম যোগ করে তৈরি করা হয় .কোপাইপ্রপ
উৎস ফাইলের নামে।

স্টোর_কোপাইপ্রপ
দোকান কপি-প্রচারের পরে গাছ ডাম্প. ফাইলের নাম যোগ করে তৈরি করা হয়
.আস্টোর_কোপাইপ্রপ উৎস ফাইলের নামে।

ডিসিই ডেড কোড নির্মূলের পর প্রতিটি ফাংশন ডাম্প করুন। ফাইলের নাম দ্বারা তৈরি করা হয়
সংযোজন .ডিসিই উৎস ফাইলের নামে।

কাদার ঝাপটা
মাডফ্ল্যাপ ইনস্ট্রুমেন্টেশন যোগ করার পর প্রতিটি ফাংশন ডাম্প করুন। ফাইলের নাম দ্বারা তৈরি করা হয়
সংযোজন .কাদার ঝাপটা উৎস ফাইলের নামে।

মাইক্রোসফট সমষ্টির স্কেলার প্রতিস্থাপন সম্পাদন করার পরে প্রতিটি ফাংশন ডাম্প করুন। ফাইল
নাম যোগ করে তৈরি করা হয় .স্রা উৎস ফাইলের নামে।

ডুবা
কোড সিঙ্কিং করার পরে প্রতিটি ফাংশন ডাম্প করুন। ফাইলের নাম দ্বারা তৈরি করা হয়
সংযোজন ডুব উৎস ফাইলের নামে।

ডোম ডমিনেটর ট্রি অপ্টিমাইজেশান প্রয়োগ করার পরে প্রতিটি ফাংশন ডাম্প করুন। ফাইলের নাম হল
সংযোজন দ্বারা তৈরি । ডম উৎস ফাইলের নামে।

ডিএসই মৃত দোকান নির্মূল প্রয়োগ করার পরে প্রতিটি ফাংশন ডাম্প. ফাইলের নাম তৈরি করা হয়
যোগ করে .dse উৎস ফাইলের নামে।

Phiopt
PHI নোডগুলিকে স্ট্রেইটলাইন কোডে অপ্টিমাইজ করার পরে প্রতিটি ফাংশন ডাম্প করুন। ফাইল
নাম যোগ করে তৈরি করা হয় .ফিয়োপ্ট উৎস ফাইলের নামে।

ফোর্প্রপ
একক ব্যবহারের ভেরিয়েবলগুলিকে এগিয়ে প্রচার করার পরে প্রতিটি ফাংশন ডাম্প করুন। ফাইলের নাম
যোগ করে তৈরি করা হয় .Forwprop উৎস ফাইলের নামে।

কপিরিনেম
কপি রিনেম অপটিমাইজেশন প্রয়োগ করার পরে প্রতিটি ফাংশন ডাম্প করুন। ফাইলের নাম হল
সংযোজন দ্বারা তৈরি .কোপিরেনাম উৎস ফাইলের নামে।

এনআরভি জেনেরিকের উপর নামযুক্ত রিটার্ন মান অপ্টিমাইজেশান প্রয়োগ করার পরে প্রতিটি ফাংশন ডাম্প করুন
গাছ ফাইলের নাম যোগ করে তৈরি করা হয় .nrv উৎস ফাইলের নামে।

ভেক্ট
লুপগুলির ভেক্টরাইজেশন প্রয়োগ করার পরে প্রতিটি ফাংশন ডাম্প করুন। ফাইলের নাম তৈরি করা হয়
যোগ করে .vect উৎস ফাইলের নামে।

এসএলপি মৌলিক ব্লকের ভেক্টরাইজেশন প্রয়োগ করার পরে প্রতিটি ফাংশন ডাম্প করুন। ফাইলের নাম হল
সংযোজন দ্বারা তৈরি .এসএলপি উৎস ফাইলের নামে।

ভিআরপি ভ্যালু রেঞ্জ প্রোপাগেশন (VRP) এর পরে প্রতিটি ফাংশন ডাম্প করুন। ফাইলের নাম দ্বারা তৈরি করা হয়
সংযোজন .vrp উৎস ফাইলের নামে।

সব এই বিকল্পে প্রদত্ত পতাকা সহ সমস্ত উপলব্ধ ট্রি ডাম্প সক্রিয় করুন।

-fopt-তথ্য
-ফপ্ট-তথ্য-অপশন
-ফপ্ট-তথ্য-অপশন=ফাইলের নাম
বিভিন্ন অপ্টিমাইজেশন পাস থেকে অপ্টিমাইজেশান ডাম্প নিয়ন্ত্রণ করে। যদি -অপশন ফর্ম হল
ব্যবহৃত, অপশন এর একটি তালিকা - ডাম্প বিশদ নির্বাচন করতে পৃথক বিকল্প এবং
অপ্টিমাইজেশান যদি অপশন নির্দিষ্ট করা নেই, এটি ডিফল্ট সব বিস্তারিত জানার জন্য এবং অপটাল
অপ্টিমাইজেশান গ্রুপের জন্য। যদি ফাইলের নাম নির্দিষ্ট করা নেই, এটি ডিফল্ট stderr। বিঃদ্রঃ
যে আউটপুট ফাইলের নাম একাধিক অনুবাদ ইউনিটের ক্ষেত্রে ওভাররাইট করা হবে। যদি
একাধিক অনুবাদ ইউনিট থেকে একটি সম্মিলিত আউটপুট কাঙ্ক্ষিত, stderr ব্যবহার করা উচিত
পরিবর্তে.

বিকল্পগুলি দুটি গ্রুপে বিভক্ত করা যেতে পারে, 1) বিকল্পগুলির শব্দার্থ বর্ণনা করে
ডাম্প, এবং 2) কোন অপটিমাইজেশন অন্তর্ভুক্ত করা উচিত তা বর্ণনা করে। অপশন
উভয় গ্রুপ থেকে অবাধে মিশ্রিত করা যেতে পারে কারণ তারা নন-ওভারল্যাপিং। যাইহোক, ক্ষেত্রে
যেকোনো দ্বন্দ্বের ক্ষেত্রে, পরবর্তী বিকল্পগুলি কমান্ড লাইনের আগের বিকল্পগুলিকে ওভাররাইড করে।
যদিও একাধিক -fopt-তথ্য বিকল্প গ্রহণ করা হয়, তবে তাদের মধ্যে শুধুমাত্র একটি থাকতে পারে = ফাইলের নাম.
যদি অন্যান্য ফাইলের নাম দেওয়া হয় তবে প্রথমটি ছাড়া সবগুলি উপেক্ষা করা হয়।

ডাম্প ভার্বোসিটিতে নিম্নলিখিত বিকল্প রয়েছে

অপ্টিমাইজ
একটি অপ্টিমাইজেশান সফলভাবে প্রয়োগ করা হলে তথ্য মুদ্রণ করুন। এটি একটি পাস পর্যন্ত
কোন তথ্য প্রাসঙ্গিক তা সিদ্ধান্ত নিতে। উদাহরণস্বরূপ, ভেক্টরাইজার প্রিন্ট পাস করে
লুপের উৎস অবস্থান যা সফলভাবে ভেক্টরাইজড হয়েছে।

মিস
মিস করা অপ্টিমাইজেশন সম্পর্কে তথ্য মুদ্রণ করুন। ব্যক্তিগত পাস নিয়ন্ত্রণ যা
আউটপুটে অন্তর্ভুক্ত করার জন্য তথ্য। উদাহরণ স্বরূপ,

gcc -O2 -ftree-vectorize -fopt-info-vec-মিস

ভেক্টরাইজেশন থেকে মিস অপ্টিমাইজেশন সুযোগ সম্পর্কে তথ্য মুদ্রণ করবে
stderr পাস

বিঃদ্রঃ
অপ্টিমাইজেশান সম্পর্কে ভার্বোস তথ্য মুদ্রণ করুন, যেমন নির্দিষ্ট রূপান্তর,
সিদ্ধান্ত ইত্যাদি সম্পর্কে আরো বিস্তারিত বার্তা

সব বিস্তারিত অপ্টিমাইজেশান তথ্য মুদ্রণ করুন। এটা অন্তর্ভুক্ত অপ্টিমাইজ, মিস, এবং
বিঃদ্রঃ.

বিকল্পগুলির দ্বিতীয় সেটটি অপ্টিমাইজেশনের একটি গ্রুপকে বর্ণনা করে এবং একটি বা অন্তর্ভুক্ত করতে পারে
নিম্নলিখিত আরো.

IPA সমস্ত আন্তঃপ্রক্রিয়াগত অপ্টিমাইজেশান থেকে ডাম্প সক্ষম করুন৷

লুপ
সমস্ত লুপ অপ্টিমাইজেশান থেকে ডাম্প সক্ষম করুন৷

সঙ্গতিপূর্ণভাবে
সমস্ত ইনলাইনিং অপ্টিমাইজেশান থেকে ডাম্প সক্ষম করুন৷

ভেক সমস্ত ভেক্টরাইজেশন অপ্টিমাইজেশান থেকে ডাম্প সক্ষম করুন৷

উদাহরণ স্বরূপ,

gcc -o3 -fopt -info -missed = মিস। সমস্ত

আউটপুট সব পাস থেকে অপ্টিমাইজেশান রিপোর্ট মিস মিস। সমস্ত.

আরেকটি উদাহরণ হিসেবে,

gcc -o3 -fopt-info-inline- optimized-missed = inline.txt

মিস করা অপ্টিমাইজেশান এবং সেইসাথে অপ্টিমাইজ করা অবস্থান সম্পর্কে তথ্য আউটপুট করবে
সমস্ত ইনলাইনিং মধ্যে পাস inline.txt.

যদি ফাইলের নাম প্রদান করা হয়, তারপর সব প্রযোজ্য অপ্টিমাইজেশন থেকে ডাম্প হয়
মধ্যে সংযুক্ত ফাইলের নাম. অন্যথায় ডাম্প আউটপুট সম্মুখের হয় stderr। যদি অপশন
বাদ দেওয়া হয়, এটি ডিফল্ট সর্বোত্তম, যার অর্থ সমস্ত উপলব্ধ অপ্টিমাইজেশান ডাম্প করুন
সমস্ত পাস থেকে তথ্য। নিম্নলিখিত উদাহরণে, সমস্ত অপ্টিমাইজেশান তথ্য আউটপুট চালু আছে
থেকে stderr.

gcc -O3 -fopt-তথ্য

মনে রাখবেন যে -ফোপ্ট-তথ্য-ভিসি-মিস হিসাবে একই আচরণ করে -fopt-তথ্য-মিসড-ভিইসি.

আরেকটি উদাহরণ হিসেবে বিবেচনা করুন

gcc -fopt-info-vec-missed = vec.miss -fopt- ইনফো-লুপ-অনুকূলিত = লুপ.ওপ্ট

এখানে দুটি আউটপুট ফাইলের নাম vec.miss এবং Loop.opt শুধুমাত্র একটি থেকে দ্বন্দ্ব আছে
আউটপুট ফাইল অনুমোদিত। এই ক্ষেত্রে, শুধুমাত্র প্রথম বিকল্প কার্যকর হয় এবং
পরবর্তী বিকল্প উপেক্ষা করা হয়. এইভাবে শুধুমাত্র vec.miss উত্পাদিত হয় যা cotaints
মিস সুযোগ সম্পর্কে ভেক্টরাইজার থেকে ডাম্প.

-ftree-vectorizer-verbose=n
এই বিকল্পটি অবমূল্যায়ন করা হয়েছে এবং এর পরিপ্রেক্ষিতে প্রয়োগ করা হয়েছে -fopt-তথ্য। ব্যবহার করুন
-ফপ্ট-তথ্য-রকম পরিবর্তে ফর্ম, যেখানে রকম বৈধ অপট-তথ্য বিকল্পগুলির মধ্যে একটি। এটা
অতিরিক্ত অপ্টিমাইজেশান তথ্য প্রিন্ট করে। জন্য n=0 কোন ডায়াগনস্টিক তথ্য নেই
রিপোর্ট যদি n=1 ভেক্টরাইজার ভেক্টরাইজ করা প্রতিটি লুপ এবং মোটের রিপোর্ট করে
ভেক্টরাইজড হওয়া লুপের সংখ্যা। যদি n=2 ভেক্টরাইজার অবস্থানের রিপোর্ট করে যা
ভেক্টরাইজ করা যায়নি এবং এর কারণগুলি। যে কোনো উচ্চ শব্দের মাত্রা সব জন্য
ভেক্টরাইজার থেকে বিশ্লেষণ এবং রূপান্তর তথ্য রিপোর্ট করা হয়.

উল্লেখ্য যে তথ্য আউটপুট দ্বারা -ftre-vectorizer-verbose অপশনে পাঠানো হয়
stderr. যদি সমতুল্য রূপ -ফপ্ট-তথ্য-অপশন=ফাইলের নাম ব্যবহার করা হয় তারপর আউটপুট হয়
ভিতরে প্রেরণ ফাইলের নাম পরিবর্তে.

-ফ্রেন্ডম-বীজ=স্ট্রিং
এই বিকল্পটি একটি বীজ প্রদান করে যা GCC উৎপন্ন করার সময় এলোমেলো সংখ্যার জায়গায় ব্যবহার করে
নির্দিষ্ট প্রতীকের নাম যা প্রতিটি সংকলিত ফাইলে আলাদা হতে হবে। ইহা ও
কভারেজ ডেটা ফাইলে অনন্য স্ট্যাম্প স্থাপন করতে ব্যবহৃত হয় এবং যে বস্তুর ফাইলগুলি তৈরি করে
তাদের আপনি ব্যবহার করতে পারেন - অবাধ-বীজ প্রজননযোগ্য অভিন্ন বস্তু উত্পাদন করার বিকল্প
ফাইল।

সার্জারির স্ট্রিং আপনার কম্পাইল করা প্রতিটি ফাইলের জন্য আলাদা হওয়া উচিত।

-ফসচেড-ভারবোজ =n
নির্দেশের সময়সূচী ব্যবহার করে এমন লক্ষ্যগুলিতে, এই বিকল্পটি পরিমাণ নিয়ন্ত্রণ করে
ডিবাগিং আউটপুট শিডিউলার প্রিন্ট। এই তথ্যটি স্ট্যান্ডার্ড ত্রুটিতে লেখা হয়েছে,
যদি না -fdump-rtl-sched1 or -fdump-rtl-sched2 নির্দিষ্ট করা হয়, যে ক্ষেত্রে এটি আউটপুট
সাধারণ ডাম্প তালিকা ফাইলে, .চেড 1 or .চেড 2 যথাক্রমে তবে এর জন্য n
নয়টির বেশি, আউটপুট সর্বদা স্ট্যান্ডার্ড ত্রুটিতে মুদ্রিত হয়।

জন্য n শূন্যের চেয়ে বড়, -ফসড-ভারবোজ হিসাবে একই তথ্য আউটপুট
-fdump-rtl-sched1 এবং -fdump-rtl-sched2। জন্য n একের বেশি, এটি মৌলিক আউটপুট
ব্লক সম্ভাবনা, বিস্তারিত প্রস্তুত তালিকা তথ্য এবং ইউনিট/insn তথ্য। জন্য n
দুইটির বেশি, এতে অ্যাবরট পয়েন্টে RTL, নিয়ন্ত্রণ-প্রবাহ এবং অঞ্চলের তথ্য অন্তর্ভুক্ত রয়েছে। এবং
উন্নত n চারের বেশি, -ফসড-ভারবোজ এছাড়াও নির্ভরতা তথ্য অন্তর্ভুক্ত.

-সেভ-টেম্পস
-স্যাভ-টেম্পস = সিডাব্লুডি
স্থায়ীভাবে স্বাভাবিক "অস্থায়ী" মধ্যবর্তী ফাইল সংরক্ষণ করুন; তাদের স্রোতে রাখুন
ডিরেক্টরি এবং উৎস ফাইলের উপর ভিত্তি করে তাদের নাম দিন। এইভাবে, কম্পাইলিং foo.c সঙ্গে -c
-সেভ-টেম্পস ফাইল তৈরি করে foo.i এবং foo.s, পাশাপাশি হিসাবে foo.o. এটি একটি তৈরি করে
প্রিপ্রসেসড foo.i আউটপুট ফাইল যদিও কম্পাইলার এখন সাধারণত একটি ব্যবহার করে
ইন্টিগ্রেটেড প্রিপ্রসেসর।

এর সাথে একত্রে ব্যবহার করা হলে -x কমান্ড লাইন বিকল্প, -সেভ-টেম্পস বুদ্ধিমান হয়
একটি ইনপুট সোর্স ফাইলের মতো একই এক্সটেনশন সহ লেখার উপর এড়াতে যথেষ্ট
মধ্যবর্তী ফাইল। সংশ্লিষ্ট মধ্যবর্তী ফাইল নাম পরিবর্তন করে প্রাপ্ত করা যেতে পারে
সোর্স ফাইল ব্যবহার করার আগে -সেভ-টেম্পস.

আপনি যদি জিসিসিকে সমান্তরালভাবে আমন্ত্রণ জানান, কয়েকটি বিভিন্ন উত্স ফাইল কম্পাইল করে যা ভাগ করে
বিভিন্ন সাবডিরেক্টরিতে সাধারণ বেস নাম বা একই সোর্স ফাইলের জন্য সংকলিত
একাধিক আউটপুট গন্তব্য, এটা সম্ভবত বিভিন্ন সমান্তরাল কম্পাইলার হবে
একে অপরের সাথে হস্তক্ষেপ করে, এবং অস্থায়ী ফাইলগুলি ওভাররাইট করে। এই ক্ষেত্রে:

gcc -save-temps -o outdir1/foo.o indir1/foo.c&
gcc -save-temps -o outdir2/foo.o indir2/foo.c&

ফলাফল হতে পারে foo.i এবং foo.o উভয় কম্পাইলার দ্বারা একযোগে লেখা হচ্ছে।

-স্যাভ-টেম্পস = ওবিজে
সাধারণ "অস্থায়ী" মধ্যবর্তী ফাইলগুলি স্থায়ীভাবে সংরক্ষণ করুন। যদি -o বিকল্প ব্যবহার করা হয়,
অস্থায়ী ফাইলগুলি অবজেক্ট ফাইলের উপর ভিত্তি করে। যদি -o বিকল্প ব্যবহার করা হয় না,
-স্যাভ-টেম্পস = ওবিজে সুইচ মত আচরণ করে -সেভ-টেম্পস.

উদাহরণ স্বরূপ:

জিসিসি -সেভ -টেম্পস = ওবিজে -সি foo.c
জিসিসি -সেভ -টেম্পস = ওবিজে -সি বার.সি -ও দির/এক্সবার.ও
জিসিসি -সেভ -টেম্পস = ওবিজে ফোবার.সি -ও ডির 2/ওয়াইফুবার

সৃষ্টি foo.i, foo.s, দির/এক্সবার.আই, দির/এক্সবার.এস, Dir2/yfoobar.i, Dir2/yfoobar.s, এবং
Dir2/yfoobar.o.

-time[=ফাইল]
কম্পাইলেশন সিকোয়েন্সে প্রতিটি সাবপ্রসেস দ্বারা নেওয়া CPU সময় রিপোর্ট করুন। সি এর জন্য
সোর্স ফাইল, এটি কম্পাইলার সঠিক এবং অ্যাসেম্বলার (প্লাস লিঙ্কার যদি লিঙ্ক করা হয়
সম্পন্ন).

একটি আউটপুট ফাইলের স্পেসিফিকেশন ছাড়া, আউটপুট এই মত দেখায়:

# সিসি 1 0.12 0.01
# হিসাবে 0.00 0.01

প্রতিটি লাইনের প্রথম সংখ্যাটি হল "ব্যবহারকারীর সময়", এটি কার্যকর করার জন্য ব্যয় করা সময়
প্রোগ্রাম নিজেই। দ্বিতীয় সংখ্যাটি হল "সিস্টেম টাইম", অপারেটিং নির্বাহে ব্যয় করা সময়
প্রোগ্রামের পক্ষে সিস্টেম রুটিন। উভয় সংখ্যাই সেকেন্ডে।

একটি আউটপুট ফাইলের স্পেসিফিকেশনের সাথে, আউটপুটটি নামযুক্ত ফাইলে যুক্ত করা হয়,
এবং এটি এই মত দেখায়:

0.12 0.01 cc1
0.00 0.01 হিসাবে

"ব্যবহারকারীর সময়" এবং "সিস্টেম সময়" প্রোগ্রামের নামের আগে সরানো হয়, এবং
প্রোগ্রামে পাস করা বিকল্পগুলি প্রদর্শিত হয়, যাতে কেউ পরে বলতে পারে কী ফাইল ছিল
কম্পাইল করা হচ্ছে, এবং কোন অপশন সহ।

-fvar-ট্র্যাকিং
পরিবর্তনশীল ট্র্যাকিং পাস চালান। এটি গণনা করে যেখানে প্রতিটি অবস্থানে ভেরিয়েবল সংরক্ষণ করা হয়
কোডে আরও ভাল ডিবাগিং তথ্য তারপর তৈরি করা হয় (যদি ডিবাগিং তথ্য
বিন্যাস এই তথ্য সমর্থন করে)।

অপ্টিমাইজেশানের সাথে কম্পাইল করার সময় এটি ডিফল্টরূপে সক্রিয় থাকে (-ওএস, -O, -ও2, ...),
ডিবাগিং তথ্য (-g) এবং ডিবাগ তথ্য বিন্যাস এটি সমর্থন করে।

-fvar-ট্র্যাকিং-অ্যাসাইনমেন্ট
সংকলনের প্রথম দিকে ব্যবহারকারীর ভেরিয়েবলে অ্যাসাইনমেন্টগুলিকে টীকা করুন এবং বহন করার চেষ্টা করুন৷
সম্পূর্ণ সংকলন জুড়ে টীকাগুলি শেষ পর্যন্ত, একটি প্রচেষ্টায়
অপ্টিমাইজ করার সময় ডিবাগ তথ্য উন্নত করতে। ব্যাবহার -gdwarf-4 বরাবর সুপারিশ করা হয়
এর সাথে.

var-ট্র্যাকিং অক্ষম থাকলেও এটি সক্ষম করা যেতে পারে, যে ক্ষেত্রে টীকাগুলি
তৈরি এবং রক্ষণাবেক্ষণ করা হয়েছে, কিন্তু শেষে বাতিল করা হয়েছে।

-fvar-ট্র্যাকিং-অ্যাসাইনমেন্ট-টগল
টগ্ল -fvar-ট্র্যাকিং-অ্যাসাইনমেন্ট, একইভাবে যে -gtoggle টগল -g.

-প্রিন্ট-ফাইল-নাম=লাইব্রেরি
লাইব্রেরি ফাইলের সম্পূর্ণ পরম নাম প্রিন্ট করুন লাইব্রেরি যে যখন ব্যবহার করা হবে
লিঙ্ক করা --- এবং অন্য কিছু করবেন না। এই বিকল্পের সাথে, GCC কম্পাইল বা লিঙ্ক করে না
কিছু; এটি শুধু ফাইলের নাম প্রিন্ট করে।

-প্রিন্ট-মাল্টি-ডিরেক্টরি
অন্য কোনো সুইচ দ্বারা নির্বাচিত মাল্টিলিবের সাথে সংশ্লিষ্ট ডিরেক্টরির নাম প্রিন্ট করুন
কমান্ড লাইনে উপস্থিত। এই ডিরেক্টরির মধ্যে বিদ্যমান অনুমিত হয় Gcc_exec_prefix.

-প্রিন্ট-মাল্টি-লিব
মাল্টিলিব ডিরেক্টরির নাম থেকে কম্পাইলার সুইচগুলিতে ম্যাপিং প্রিন্ট করুন যা তাদের সক্ষম করে।
ডিরেক্টরির নাম সুইচ দ্বারা পৃথক করা হয় ;, এবং প্রতিটি সুইচ একটি দিয়ে শুরু হয়
@ পরিবর্তে -, একাধিক সুইচের মধ্যে শূন্যস্থান ছাড়াই। এই অনুমিত হয়
সহজ শেল প্রক্রিয়াকরণ.

-প্রিন্ট-মাল্টি-ওএস-ডিরেক্টরি
নির্বাচিত মাল্টিলিবের জন্য ওএস লাইব্রেরির পাথ প্রিন্ট করুন, কিছুর তুলনায় liberal এর সংক্ষিপ্ত রূপ
সাবডিরেক্টরি OS লাইব্রেরি উপস্থিত থাকলে liberal এর সংক্ষিপ্ত রূপ সাবডিরেক্টরি এবং কোনো মাল্টিলিব নেই
ব্যবহার করা হয়, এই সাধারণত শুধু ., যদি OS লাইব্রেরিগুলিতে উপস্থিত থাকে libsuffix সহোদর
এই মুদ্রিত ডিরেক্টরি যেমন ../lib64, ../ lib or ../lib32, অথবা যদি OS লাইব্রেরি হয়
উপস্থাপন lib/subdir সাবডিরেক্টরি এটি প্রিন্ট করে যেমন amd64, স্পার্কভি 9 or ev6.

-প্রিন্ট-মাল্টিয়ার্ক
নির্বাচিত মাল্টিআর্কের জন্য OS লাইব্রেরির পাথ প্রিন্ট করুন, কিছুর তুলনায় liberal এর সংক্ষিপ্ত রূপ
উপ-ডিরেক্টরি

-প্রিন্ট-প্রোগ-নাম=কার্যক্রম
মত -প্রিন্ট-ফাইল-নাম, কিন্তু একটি প্রোগ্রামের জন্য অনুসন্ধান যেমন CPP.

-প্রিন্ট-লিবিজিসিসি-ফাইল-নাম
একই রকম -প্রিন্ট-ফাইল-নাম=libgcc.a.

আপনি ব্যবহার করার সময় এটি দরকারী -নোস্টডিলিব or -নোডফল্টলিবস কিন্তু আপনি লিঙ্ক করতে চান
libgcc.a. আপনি করতে পারেন:

gcc -nostdlib ... `gcc -print-libgcc-file-name`

-প্রিন্ট-সার্চ-ডিরার্স
কনফিগার করা ইনস্টলেশন ডিরেক্টরির নাম এবং প্রোগ্রামের একটি তালিকা এবং প্রিন্ট করুন
লাইব্রেরি ডিরেক্টরি জিসিসি অনুসন্ধান --- এবং অন্য কিছু করবেন না।

এই যখন দরকারী জিসিসি ত্রুটি বার্তা প্রিন্ট করে স্থাপন সমস্যা না পারেন Exec
সিপিপি 0: না এমন ফাইল or ডিরেক্টরি. এটি সমাধান করার জন্য আপনাকে হয় লাগাতে হবে সিপিপি 0 এবং
অন্যান্য কম্পাইলার উপাদান যেখানে জিসিসি তাদের খুঁজে পেতে আশা, অথবা আপনি সেট করতে পারেন
পরিবেশ সূচক Gcc_exec_prefix ডিরেক্টরিতে যেখানে আপনি তাদের ইনস্টল করেছেন। করবেন না
পিছিয়ে থাকা ভুলে যাও /.

-প্রিন্ট-সিসরুট
সংকলনের সময় ব্যবহৃত টার্গেট sysroot ডিরেক্টরি প্রিন্ট করুন। এই হল
লক্ষ্য sysroot নির্দিষ্ট করা হয় কনফিগার করার সময় বা ব্যবহার করে --sysroot বিকল্প,
সম্ভবত একটি অতিরিক্ত প্রত্যয় সহ যা সংকলন বিকল্পগুলির উপর নির্ভর করে। টার্গেট না থাকলে
sysroot নির্দিষ্ট করা হয়েছে, বিকল্পটি কিছুই প্রিন্ট করে না।

-প্রিন্ট-সিসরুট-হেডার-প্রত্যয়
হেডার অনুসন্ধান করার সময় টার্গেট sysroot-এ যোগ করা প্রত্যয়টি প্রিন্ট করুন, অথবা একটি দিন
কম্পাইলার যদি এই জাতীয় প্রত্যয়ের সাথে কনফিগার করা না থাকে তবে ত্রুটি --- এবং কিছু করবেন না
অন্য।

- ডাম্প মেশিন
কম্পাইলারের লক্ষ্য মেশিন প্রিন্ট করুন (উদাহরণস্বরূপ, আই 686-পিসি-লিনাক্স-জিএনইউ)---আর করবেন না
আর কিছু.

- ডাম্প সংস্করণ
কম্পাইলার সংস্করণ মুদ্রণ করুন (উদাহরণস্বরূপ, 3.0)---আর কিছু করবেন না।

- ডাম্পস্পেস
কম্পাইলারের অন্তর্নির্মিত চশমাগুলি মুদ্রণ করুন --- এবং অন্য কিছু করবেন না। (এটি ব্যবহার করা হয় যখন
GCC নিজেই নির্মিত হচ্ছে।)

-fno-বর্জন-অব্যবহৃত-ডিবাগ-টাইপস
সাধারণত, DWARF 2 আউটপুট তৈরি করার সময়, GCC এর জন্য ডিবাগ প্রতীক আউটপুট তৈরি করা এড়িয়ে যায়
কম্পাইল করা সোর্স ফাইলে কোথাও ব্যবহার করা হয় না। কখনও কখনও এটি দরকারী
একটি সংকলন ইউনিটে ঘোষিত সমস্ত ধরণের জন্য GCC নির্গত ডিবাগিং তথ্য থাকতে,
নির্বিশেষে তারা আসলে সেই সংকলন ইউনিটে ব্যবহৃত হয় কিনা, এর জন্য
উদাহরণ যদি, ডিবাগারে, আপনি এমন একটি মান দিতে চান যা আসলে নয়
আপনার প্রোগ্রামে ব্যবহৃত (কিন্তু ঘোষিত)। আরো প্রায়ই, যাইহোক, এটি একটি ফলাফল
উল্লেখযোগ্য পরিমাণ নষ্ট স্থান।

অপশন সমূহ যে নিয়ন্ত্রণ অপ্টিমাইজেশান
এই বিকল্পগুলি বিভিন্ন ধরণের অপ্টিমাইজেশন নিয়ন্ত্রণ করে।

কোন অপটিমাইজেশন বিকল্প ছাড়াই, কম্পাইলারের লক্ষ্য হল সংকলনের খরচ কমানো
এবং ডিবাগিং প্রত্যাশিত ফলাফল উত্পাদন করতে. বিবৃতি স্বাধীন: যদি আপনি
বিবৃতিগুলির মধ্যে একটি ব্রেকপয়েন্ট সহ প্রোগ্রামটি বন্ধ করুন, তারপরে আপনি একটি নতুন মান নির্ধারণ করতে পারেন
যে কোন ভেরিয়েবল বা প্রোগ্রাম কাউন্টার পরিবর্তন করে অন্য কোন স্টেটমেন্টে ফাংশন এবং পান
আপনি উৎস কোড থেকে ঠিক ফলাফল আশা.

অপ্টিমাইজেশান ফ্ল্যাগ চালু করার ফলে কম্পাইলার কর্মক্ষমতা এবং/অথবা উন্নত করার চেষ্টা করে
সংকলনের সময় এবং সম্ভবত ডিবাগ করার ক্ষমতার ব্যয়ে কোডের আকার
প্রোগ্রাম.

কম্পাইলার প্রোগ্রামের জ্ঞানের উপর ভিত্তি করে অপ্টিমাইজেশান করে।
একক আউটপুট ফাইল মোডে একাধিক ফাইল একসাথে কম্পাইল করা কম্পাইলারকে ব্যবহার করার অনুমতি দেয়
তাদের প্রতিটি কম্পাইল করার সময় সমস্ত ফাইল থেকে প্রাপ্ত তথ্য।

সমস্ত অপ্টিমাইজেশান সরাসরি একটি পতাকা দ্বারা নিয়ন্ত্রিত হয় না। শুধুমাত্র অপ্টিমাইজেশান যে a আছে
পতাকা এই বিভাগে তালিকাভুক্ত করা হয়.

অধিকাংশ অপ্টিমাইজেশান শুধুমাত্র সক্রিয় করা হয় যদি একটি -O লেভেল কমান্ড লাইনে সেট করা আছে। অন্যথায়
পৃথক অপ্টিমাইজেশান ফ্ল্যাগ নির্দিষ্ট করা থাকলেও সেগুলি অক্ষম করা হয়েছে।

লক্ষ্য এবং কিভাবে GCC কনফিগার করা হয়েছে তার উপর নির্ভর করে, কিছুটা ভিন্ন সেট
প্রতিটিতে অপ্টিমাইজেশন সক্ষম করা যেতে পারে -O এখানে তালিকাভুক্ত তুলনায় স্তর. আপনি GCC আহ্বান করতে পারেন
সঙ্গে -Q --help=অপ্টিমাইজার এ সক্ষম হওয়া অপ্টিমাইজেশনের সঠিক সেট খুঁজে বের করতে
প্রতিটি স্তর।

-O
-ও1 অপ্টিমাইজ করুন। সংকলন অপ্টিমাইজ করার জন্য কিছুটা বেশি সময় লাগে, এবং অনেক বেশি মেমরি
একটি বড় ফাংশন।

সঙ্গে -O, কম্পাইলার পারফর্ম না করে কোডের আকার এবং এক্সিকিউশন সময় কমানোর চেষ্টা করে
যেকোন অপ্টিমাইজেশান যা কম্পাইলেশনের জন্য প্রচুর সময় নেয়।

-O নিম্নলিখিত অপ্টিমাইজেশান পতাকা চালু করে:

-fauto-inc-ডিসেম্বর -FCOMPARE-LIM -fcprop-রেজিস্টার -fdce -ফডিফার-পপ -fdelayed-শাখা
-fdse -fguess-শাখা-সম্ভাব্যতা -fif-রূপান্তর২ -fif-রূপান্তর -ফিপা-বিশুদ্ধ-কনস্ট
-ফিপা-প্রোফাইল -ফিপা-রেফারেন্স -fmerge-ধ্রুবক -fsplit-ওয়াইড-টাইপস -এফট্রি-বিট-সিসিপি
-এফটি-বিল্টিন-কল-ডিসিই -এফট্রি-সিসিপি -ftre-ch -ftree-কপিরনাম -free-dce
-free-dominator-opts -ftre-dse -free-forwprop -ফ্রি-ফ্রি -ফ্রি-ফিপ্রপ -এফটি-এসএলএসআর
-ftre-sra -এফটি-পিটিএ -free-ter -এক সময়ে মজা করা

-O এছাড়াও চালু হয় -ফমিট-ফ্রেম-পয়েন্টার মেশিনে যেখানে এটি করা হস্তক্ষেপ করে না
ডিবাগিং সহ।

-ও2 আরও অপ্টিমাইজ করুন। GCC প্রায় সমস্ত সমর্থিত অপ্টিমাইজেশান সঞ্চালন করে যা করে না
একটি স্থান-গতি ট্রেডঅফ জড়িত. তুলনামুলকভাবে -O, এই বিকল্প উভয় বৃদ্ধি
সংকলন সময় এবং উত্পন্ন কোড কর্মক্ষমতা.

-ও2 দ্বারা নির্দিষ্ট করা সমস্ত অপ্টিমাইজেশান পতাকা চালু করে -O. এটি নিম্নলিখিতগুলিও চালু করে
অপ্টিমাইজেশান পতাকা: -fthread-জাম্প -ফ্যালাইন-ফাংশন -ফালাইন-জাম্প ফ্যালাইন-লুপস
-ফ্যালাইন-লেবেল -fcaller-সংরক্ষণ -ফক্রসজাম্পিং -fcse-অনুসরণ-জাম্প -FCSE-SKIP-BLOCKS
-ফডিলিট-নাল-পয়েন্টার-চেকস -fdevirtualize ব্যয়বহুল-অপ্টিমাইজেশান -fgcse
-fgcse-lm -fhoist-সংলগ্ন-লোড -ফিনলাইন-ছোট-ফাংশন -ফাইনডাইরেক্ট-ইনলাইনিং
-ফিপা-স্রা -ফোপ্টিমাইজ-ভাই-কল -আংশিক-ইনলাইনিং -fpephole2 -fregmove
-ফ্রিঅর্ডার-ব্লক -ফ্রিঅর্ডার-ফাংশন -frerun-cse-আফটার-লুপ -fsched-ইন্টারব্লক
-fsched-বিশেষ -fschedule- inss -fschedule-inss2 -ট্রিক্ট-এলিয়াসিং -fstrict-ওভারফ্লো
-এফট্রি-সুইচ-রূপান্তর -free-tail-merge -ফ্রি-প্রি -এফটি-ভিআরপি

নীচে সতর্কতা নোট করুন -fgcse আহ্বান সম্পর্কে -ও2 কম্পিউটেড ব্যবহার করে এমন প্রোগ্রামগুলিতে
গোটোস

দ্রষ্টব্য: উবুন্টু 8.10 এবং পরবর্তী সংস্করণগুলিতে, -D_fortify_source = 2 ডিফল্টরূপে সেট করা হয়, এবং হয়
সক্রিয় যখন -O 2 বা উচ্চতর সেট করা হয়েছে। এটি অতিরিক্ত কম্পাইল-টাইম সক্ষম করে এবং
বেশ কয়েকটি libc ফাংশনের জন্য রান-টাইম পরীক্ষা করে। নিষ্ক্রিয় করতে, যে কোনো একটি নির্দিষ্ট করুন
-U_fortify_source or -D_fortify_source = 0.

-ও3 আরো অপ্টিমাইজ করুন. -ও3 দ্বারা নির্দিষ্ট করা সমস্ত অপ্টিমাইজেশান চালু করে -ও2 এবং চালু হয়
দ্য -ফিনলাইন-ফাংশন, -ফানসুইচ-লুপস, -ফপ্রেডিকটিভ-কমনিং, -fgcse-আফটার-রিলোড,
-ফ্রি-ভেক্টরাইজ, -fvect-কস্ট-মডেল, -ফ্রি-আংশিক-প্রাক এবং -ফিপা-সিপি-ক্লোন অপশন।

-ও0 কম্পাইলেশনের সময় হ্রাস করুন এবং ডিবাগিং প্রত্যাশিত ফলাফল তৈরি করুন। এই হল
ডিফল্ট.

-ওএস আকারের জন্য অপ্টিমাইজ করুন। -ওএস সব সক্ষম করে -ও2 অপ্টিমাইজেশান যা সাধারণত বৃদ্ধি পায় না
কোড আকার। এটি কোডের আকার কমাতে ডিজাইন করা আরও অপ্টিমাইজেশানও সঞ্চালন করে।

-ওএস নিম্নলিখিত অপ্টিমাইজেশান পতাকা নিষ্ক্রিয় করে: -ফ্যালাইন-ফাংশন -ফালাইন-জাম্প
ফ্যালাইন-লুপস -ফ্যালাইন-লেবেল -ফ্রিঅর্ডার-ব্লক -ফ্রিঅর্ডার-ব্লক-এবং-পার্টিশন
-fprefetch-লুপ-অ্যারে

-অফাস্ট
কঠোর মান সম্মতি উপেক্ষা. -অফাস্ট সব সক্ষম করে -ও3 অপ্টিমাইজেশান এটাও
অপ্টিমাইজেশান সক্ষম করে যা সমস্ত মান-সম্মত প্রোগ্রামের জন্য বৈধ নয়। এটা
সক্রিয় ফাস্ট-গণিত এবং ফোর্টরান-নির্দিষ্ট -ফনো-প্রোটেক্ট-প্যারেনস এবং -fstack-অ্যারে.

-ওগ ডিবাগিং অভিজ্ঞতা অপ্টিমাইজ করুন। -ওগ অপ্টিমাইজেশান সক্ষম করে যা হস্তক্ষেপ করে না
ডিবাগিং এটি আদর্শ সম্পাদনার জন্য পছন্দের অপ্টিমাইজেশান স্তর হওয়া উচিত-
কম্পাইল-ডিবাগ চক্র, রক্ষণাবেক্ষণের সময় একটি যুক্তিসঙ্গত স্তরের অপ্টিমাইজেশান প্রদান করে
দ্রুত সংকলন এবং একটি ভাল ডিবাগিং অভিজ্ঞতা।

আপনি যদি একাধিক ব্যবহার করেন -O বিকল্প, লেভেল নম্বর সহ বা ছাড়া, শেষ এই ধরনের বিকল্প
কার্যকর যে এক.

ফর্মের বিকল্প -fপতাকা মেশিন-স্বাধীন পতাকা নির্দিষ্ট করুন। অধিকাংশ পতাকা দুটিই আছে
ইতিবাচক এবং নেতিবাচক ফর্ম; এর নেতিবাচক রূপ -ফু is -fno-foo. নীচের টেবিলে,
শুধুমাত্র একটি ফর্ম তালিকাভুক্ত করা হয়েছে---যেটি আপনি সাধারণত ব্যবহার করেন। আপনি অন্য চিন্তা করতে পারেন
হয় অপসারণ দ্বারা ফর্ম না- বা এটি যোগ করা।

নিম্নলিখিত বিকল্পগুলি নির্দিষ্ট অপ্টিমাইজেশন নিয়ন্ত্রণ করে। তারা হয় দ্বারা সক্রিয় করা হয় -O
অপশন বা যেগুলির সাথে সম্পর্কিত। আপনি বিরল মধ্যে নিম্নলিখিত পতাকা ব্যবহার করতে পারেন
ক্ষেত্রে যখন অপ্টিমাইজেশানের "ফাইন-টিউনিং" করা উচিত।

-fno-ডিফল্ট-ইনলাইন
সদস্য ফাংশনগুলিকে ডিফল্টরূপে ইনলাইন করবেন না কারণ সেগুলি ভিতরে সংজ্ঞায়িত করা হয়েছে
ক্লাসের সুযোগ (শুধুমাত্র C++)। অন্যথায়, আপনি যখন নির্দিষ্ট করুন -O, সদস্য ফাংশন সংজ্ঞায়িত
ভিতরে ক্লাস স্কোপ ডিফল্টরূপে ইনলাইনে সংকলিত হয়; অর্থাৎ, আপনাকে যোগ করার দরকার নেই সঙ্গতিপূর্ণভাবে
সদস্য ফাংশন নামের সামনে।

-ফনো-ডিফার-পপ
ফাংশন রিটার্ন করার সাথে সাথে সর্বদা প্রতিটি ফাংশন কলে আর্গুমেন্টগুলি পপ করুন। জন্য
যে মেশিনে একটি ফাংশন কলের পরে আর্গুমেন্ট পপ করতে হবে, কম্পাইলার সাধারণত অনুমতি দেয়
বেশ কয়েকটি ফাংশন কলের জন্য স্ট্যাকে আর্গুমেন্ট জমা হয় এবং সেগুলিকে পপ করে
একদা.

স্তরে অক্ষম -O, -ও2, -ও3, -ওএস.

-ফরওয়ার্ড-প্রচার করা
RTL এ একটি ফরোয়ার্ড প্রচার পাস সম্পাদন করুন। পাস দুটি নির্দেশ একত্রিত করার চেষ্টা করে
এবং ফলাফল সরলীকৃত করা যেতে পারে কিনা তা পরীক্ষা করে। লুপ আনরোলিং সক্রিয় থাকলে, দুটি পাস
সঞ্চালিত হয় এবং দ্বিতীয়টি লুপ আনরোল করার পরে নির্ধারিত হয়।

এই বিকল্পটি অপ্টিমাইজেশান স্তরে ডিফল্টরূপে সক্রিয় থাকে৷ -O, -ও2, -ও3, -ওএস.

-ffp-চুক্তি=শৈলী
-ffp-চুক্তি=বন্ধ ফ্লোটিং-পয়েন্ট এক্সপ্রেশন সংকোচন নিষ্ক্রিয় করে। -ffp-চুক্তি=দ্রুত
ফ্লোটিং-পয়েন্ট এক্সপ্রেশন সংকোচনকে সক্ষম করে যেমন ফিউজড মাল্টিপ্লাই-অ্যাড গঠন করা
লক্ষ্য তাদের জন্য স্থানীয় সমর্থন আছে যদি অপারেশন. -ffp-চুক্তি=অন সম্ভব
ভাসমান-বিন্দু অভিব্যক্তি সংকোচন যদি ভাষার মান দ্বারা অনুমোদিত হয়। এই
বর্তমানে বাস্তবায়িত হয় না এবং এর সমান আচরণ করা হয় -ffp-চুক্তি=বন্ধ.

ডিফল্ট হয় -ffp-চুক্তি=দ্রুত.

-ফমিট-ফ্রেম-পয়েন্টার
যে ফাংশনগুলির প্রয়োজন নেই তার জন্য ফ্রেম পয়েন্টারটিকে একটি রেজিস্টারে রাখবেন না। এই
ফ্রেম পয়েন্টার সংরক্ষণ, সেট আপ এবং পুনরুদ্ধার করার নির্দেশাবলী এড়িয়ে যায়; এটা তোলে একটি
অতিরিক্ত রেজিস্টার অনেক ফাংশনে উপলব্ধ। It এছাড়াও তোলে ডিবাগিং অসম্ভব on
কিছু মেশিন।

কিছু মেশিনে, যেমন VAX, এই পতাকার কোন প্রভাব নেই, কারণ মান
কলিং সিকোয়েন্স স্বয়ংক্রিয়ভাবে ফ্রেম পয়েন্টার পরিচালনা করে এবং কিছুই সংরক্ষিত হয় না
এটা বিদ্যমান নেই ভান. মেশিন-বিবরণ ম্যাক্রো "FRAME_POINTER_REQUIRED"
একটি লক্ষ্য মেশিন এই পতাকা সমর্থন করে কিনা তা নিয়ন্ত্রণ করে।

GCC সংস্করণ 4.6 দিয়ে শুরু করে, ডিফল্ট সেটিং (যখন আকারের জন্য অপ্টিমাইজ করা হয় না)
32-বিট GNU/Linux x86 এবং 32-বিট ডারউইন x86 টার্গেটে পরিবর্তন করা হয়েছে
-ফমিট-ফ্রেম-পয়েন্টার. ডিফল্টে প্রত্যাবর্তন করা যেতে পারে -fno-বাদ-ফ্রেম-পয়েন্টার by
এর সাথে GCC কনফিগার করা হচ্ছে --সক্ষম-ফ্রেম-পয়েন্টার কনফিগার বিকল্প।

স্তরে সক্রিয় -O, -ও2, -ও3, -ওএস.

-ফোপ্টিমাইজ-ভাই-কল
ভাইবোন এবং পুনরাবৃত্ত কল অপ্টিমাইজ করুন।

স্তরে সক্রিয় -ও2, -ও3, -ওএস.

-fno-ইনলাইন
"সর্বদা_ইনলাইন" দিয়ে চিহ্নিত ফাংশনগুলি ছাড়া অন্য কোনো ফাংশন ইনলাইনে প্রসারিত করবেন না
বৈশিষ্ট্য অপ্টিমাইজ না করার সময় এটি ডিফল্ট।

একক ফাংশনকে "নোইনলাইন" দিয়ে চিহ্নিত করে ইনলাইন থেকে ছাড় দেওয়া যেতে পারে
বৈশিষ্ট্যাবলী।

-ফিনলাইন-ছোট-ফাংশন
যখন তাদের শরীর প্রত্যাশার চেয়ে ছোট হয় তখন তাদের কলারের সাথে ফাংশনগুলিকে একীভূত করুন৷
ফাংশন কল কোড (তাই প্রোগ্রামের সামগ্রিক আকার ছোট হয়ে যায়)। কম্পাইলার
হিউরিস্টিকভাবে সিদ্ধান্ত নেয় কোন ফাংশনগুলিকে একীভূত করার জন্য যথেষ্ট সহজ
এই পথে. এই ইনলাইনিং সমস্ত ফাংশনের ক্ষেত্রে প্রযোজ্য, এমনকি যেগুলি ইনলাইন ঘোষণা করা হয়নি।

স্তরে সক্রিয় -ও2.

-ফাইনডাইরেক্ট-ইনলাইনিং
ইনলাইন এছাড়াও পরোক্ষ কল যে কম্পাইল সময় পরিচিত হতে আবিষ্কৃত হয় ধন্যবাদ
পূর্ববর্তী ইনলাইনিং। ইনলাইনিং চালু হলেই এই বিকল্পটির কোনো প্রভাব থাকে
দ্বারা -ফিনলাইন-ফাংশন or -ফিনলাইন-ছোট-ফাংশন অপশন।

স্তরে সক্রিয় -ও2.

-ফিনলাইন-ফাংশন
ইনলাইন করার জন্য সমস্ত ফাংশন বিবেচনা করুন, এমনকি যদি সেগুলি ইনলাইন ঘোষণা না করা হয়। দ্য
কম্পাইলার হিউরিস্টিকভাবে সিদ্ধান্ত নেয় যে কোন ফাংশনগুলি এইভাবে একত্রিত করা মূল্যবান।

যদি একটি প্রদত্ত ফাংশনের সমস্ত কল একত্রিত করা হয়, এবং ফাংশন ঘোষণা করা হয়
"স্ট্যাটিক", তাহলে ফাংশনটি সাধারণত অ্যাসেম্বলার কোড হিসাবে তার নিজের অধিকারে আউটপুট হয় না।

স্তরে সক্রিয় -ও3.

-ফিনলাইন-ফাংশন-কলে-একবার
এমনকি যদি তাদের কলার ইনলাইন করার জন্য একবার কল করা সমস্ত "স্ট্যাটিক" ফাংশন বিবেচনা করুন
তারা "ইনলাইন" হিসাবে চিহ্নিত করা হয় না। যদি একটি প্রদত্ত ফাংশন একটি কল একত্রিত করা হয়, তারপর
ফাংশন তার নিজের অধিকারে অ্যাসেম্বলার কোড হিসাবে আউটপুট নয়।

স্তরে সক্রিয় -ও1, -ও2, -ও3 এবং -ওএস.

-ভয়পূর্ণ-ইনলাইনিং
"সর্বদা_ইনলাইন" দ্বারা চিহ্নিত ইনলাইন ফাংশন এবং যে ফাংশনগুলির বডি এর থেকে ছোট বলে মনে হয়৷
ফাংশন কল ওভারহেড তাড়াতাড়ি করার আগে -প্রোফাইল-জেনারেট করুন ইন্সট্রুমেন্টেশন এবং
আসল ইনলাইনিং পাস। এটি করার ফলে প্রোফাইলিং উল্লেখযোগ্যভাবে সস্তা এবং সাধারণত
নেস্টেড র‍্যাপার ফাংশনের বড় চেইন থাকা প্রোগ্রামগুলিতে দ্রুত ইনলাইন করা।

ডিফল্টরূপে সক্ষম করা হয়েছে।

-ফিপা-স্রা
সমষ্টির আন্তঃপ্রক্রিয়াগত স্কেলার প্রতিস্থাপন, অব্যবহৃত পরামিতি অপসারণ সম্পাদন করুন
এবং মান দ্বারা পাস করা পরামিতি দ্বারা রেফারেন্স দ্বারা পাস করা পরামিতিগুলির প্রতিস্থাপন।

স্তরে সক্রিয় -ও2, -ও3 এবং -ওএস.

-ফিনলাইন-সীমা=n
ডিফল্টরূপে, GCC ফাংশনের আকার সীমিত করে যা ইনলাইন করা যেতে পারে। এই পতাকা অনুমতি দেয়
এই সীমার মোটা নিয়ন্ত্রণ। n ইনলাইন করা যেতে পারে যে ফাংশন আকার
ছদ্ম নির্দেশাবলীর সংখ্যা।

ইনলাইনিং আসলে বেশ কয়েকটি পরামিতি দ্বারা নিয়ন্ত্রিত হয়, যা নির্দিষ্ট করা যেতে পারে
স্বতন্ত্রভাবে ব্যবহার করে --পরম নাম=মূল্য. দ্য -ফিনলাইন-সীমা=n বিকল্প কিছু সেট করে
এই পরামিতিগুলি নিম্নরূপ:

সর্বোচ্চ-ইনলাইন-ইনস-সিঙ্গেল
তৈরি n/ 2।

সর্বোচ্চ-ইনলাইন-ইনস-অটো
তৈরি n/ 2।

ইনলাইনিং এবং নিয়ন্ত্রণকারী পৃথক পরামিতিগুলির একটি ডকুমেন্টেশনের জন্য নীচে দেখুন
এই পরামিতিগুলির ডিফল্টের জন্য।

বিঃদ্রঃ: এর কোন মূল্য থাকতে পারে -ফিনলাইন-সীমা যার ফলে ডিফল্ট আচরণ হয়।

বিঃদ্রঃ: ছদ্ম নির্দেশ প্রতিনিধিত্ব করে, এই বিশেষ প্রসঙ্গে, একটি বিমূর্ত
ফাংশনের আকার পরিমাপ। কোনোভাবেই এটি সমাবেশের গণনার প্রতিনিধিত্ব করে না
নির্দেশাবলী এবং যেমন এর সঠিক অর্থ এক রিলিজ থেকে পরিবর্তিত হতে পারে
অন্য।

-fno-কিপ-ইনলাইন-dllexport
এটি একটি আরো সূক্ষ্ম-দানা সংস্করণ -fkeep-ইনলাইন-ফাংশন, যা শুধুমাত্র প্রযোজ্য
যে ফাংশনগুলি "dllexport" অ্যাট্রিবিউট বা declspec ব্যবহার করে ঘোষণা করা হয়

-fkeep-ইনলাইন-ফাংশন
সি-তে, "স্ট্যাটিক" ফাংশন নির্গত করুন যেগুলি অবজেক্ট ফাইলে "ইনলাইন" ঘোষণা করা হয়, এমনকি যদি
ফাংশন তার সমস্ত কলার মধ্যে ইনলাইন করা হয়েছে. এই সুইচ প্রভাবিত করে না
GNU C90 এ "এক্সটার্ন ইনলাইন" এক্সটেনশন ব্যবহার করে ফাংশন। C++ এ, যেকোন এবং সব নির্গত করুন
অবজেক্ট ফাইলে ইনলাইন ফাংশন।

-ফকিপ-স্ট্যাটিক-কনস্টস
অপ্টিমাইজেশান চালু না থাকলে "স্ট্যাটিক কনস্ট" ঘোষণা করা ভেরিয়েবল নির্গত করা হয়
ভেরিয়েবল উল্লেখ করা হয় না.

GCC ডিফল্টরূপে এই বিকল্পটি সক্রিয় করে। কম্পাইলারকে জোর করে চেক করতে চাইলে ক
অপ্টিমাইজেশান চালু হোক বা না হোক, ভেরিয়েবলটি উল্লেখ করা হয়েছে, ব্যবহার করুন
দ্য -fno-কিপ-স্ট্যাটিক-কনস্টস বিকল্প।

-fmerge-ধ্রুবক
অভিন্ন ধ্রুবকগুলিকে একত্রিত করার প্রচেষ্টা (স্ট্রিং ধ্রুবক এবং ভাসমান-বিন্দু ধ্রুবক)
সংকলন ইউনিট জুড়ে।

এই বিকল্পটি অপ্টিমাইজ করা সংকলনের জন্য ডিফল্ট যদি অ্যাসেম্বলার এবং লিঙ্কার থাকে
এটা সমর্থন ব্যবহার করুন -fno-merge-constant এই আচরণকে বাধা দিতে।

স্তরে সক্রিয় -O, -ও2, -ও3, -ওএস.

-fmerge-সমস্ত ধ্রুবক
অভিন্ন ধ্রুবক এবং অভিন্ন ভেরিয়েবল একত্রিত করার প্রচেষ্টা।

এই বিকল্পটি বোঝায় -fmerge-ধ্রুবক। এ ছাড়াও -fmerge-ধ্রুবক এই
বিবেচনা করে যেমন এমনকি ধ্রুবক ইনিশিয়ালাইজড অ্যারে বা ইনিশিয়ালাইজড কনস্ট্যান্ট ভেরিয়েবলের সাথে
অবিচ্ছেদ্য বা ভাসমান-বিন্দু প্রকার। C বা C++ এর মতো ভাষার প্রতিটি পরিবর্তনশীল প্রয়োজন,
রিকার্সিভ কলে একই ভেরিয়েবলের একাধিক দৃষ্টান্ত সহ, স্বতন্ত্র থাকার জন্য
অবস্থান, তাই এই বিকল্পটি ব্যবহার করার ফলে অসঙ্গতিপূর্ণ আচরণ হয়।

-fmodulo-নির্ধারিত
প্রথম শিডিউলিং পাসের আগে অবিলম্বে সুইং মডিউল শিডিউলিং সম্পাদন করুন। এই
পাস অভ্যন্তরীণ লুপগুলি দেখে এবং বিভিন্ন ওভারল্যাপ করে তাদের নির্দেশগুলিকে পুনরায় সাজায়
পুনরাবৃত্তি।

-fmodulo-নির্ধারিত-অনুমতি-রেগমুভস
অনুমোদিত রেজিস্টার চালনা সহ আরও আক্রমনাত্মক এসএমএস-ভিত্তিক মডুলো সময়সূচী সম্পাদন করুন। দ্বারা
এই পতাকা সেট করার ফলে কিছু বিরোধী-নির্ভরতার প্রান্ত মুছে ফেলা হয়, যা ট্রিগার করে
জীবন-পরিসীমা বিশ্লেষণের উপর ভিত্তি করে রেগ-মুভের প্রজন্ম। এই বিকল্পটি কার্যকর
শুধুমাত্র সঙ্গে -fmodulo-নির্ধারিত সক্ষম করা হয়েছে।

-fno-শাখা-গণনা-রেজি
একটি গণনা রেজিস্টারে "হ্রাস এবং শাখা" নির্দেশাবলী ব্যবহার করবেন না, পরিবর্তে
নির্দেশাবলীর একটি ক্রম তৈরি করুন যা একটি রেজিস্টারকে হ্রাস করে, এর সাথে তুলনা করে
শূন্য, তারপর ফলাফলের উপর ভিত্তি করে শাখা। এই বিকল্পটি শুধুমাত্র অর্থবহ
আর্কিটেকচার যা এই ধরনের নির্দেশাবলী সমর্থন করে, যার মধ্যে রয়েছে x86, PowerPC, IA-64 এবং
এস/৩৯০।

ডিফল্ট হয় -ফব্র্যাঞ্চ-কাউন্ট-রেগ.

-fno-ফাংশন-cse
রেজিস্টারে ফাংশন ঠিকানা রাখবেন না; একটি কল যে প্রতিটি নির্দেশ তৈরি করুন
ধ্রুবক ফাংশন স্পষ্টভাবে ফাংশনের ঠিকানা ধারণ করে।

এই বিকল্পটি কম কার্যকরী কোডের ফলাফল, কিন্তু কিছু অদ্ভুত হ্যাক যা পরিবর্তন করে
অ্যাসেম্বলার আউটপুট অপ্টিমাইজেশান দ্বারা বিভ্রান্ত হতে পারে যখন এই বিকল্পটি হয়
ব্যবহার করা হয় না.

ডিফল্ট হয় -ফাংশন-সিএসই

-fno-শূন্য-শুরু-ইন-বিএসএস
যদি লক্ষ্য একটি BSS বিভাগ সমর্থন করে, GCC ডিফল্টভাবে ভেরিয়েবল রাখে
BSS-এ শূন্য থেকে শুরু করা হয়েছে। এটি ফলাফল কোডে স্থান সংরক্ষণ করতে পারে।

এই বিকল্পটি এই আচরণটি বন্ধ করে দেয় কারণ কিছু প্রোগ্রাম স্পষ্টভাবে ভেরিয়েবলের উপর নির্ভর করে
ডাটা সেকশনে যাচ্ছে---যেমন, ফলে এক্সিকিউটেবল খুঁজে পেতে পারে
সেই বিভাগের শুরু এবং/অথবা তার উপর ভিত্তি করে অনুমান করা।

ডিফল্ট হয় -fzero-শুরু করা-ইন-বিএসএস.

-fmudflap -fmudflapth - fmudflapir
ফ্রন্ট-এন্ডের জন্য যা এটিকে সমর্থন করে (C এবং C++), সমস্ত ঝুঁকিপূর্ণ পয়েন্টার/অ্যারে ব্যবহার করুন
ডিরেফারেন্সিং অপারেশন, কিছু স্ট্যান্ডার্ড লাইব্রেরি স্ট্রিং/হিপ ফাংশন এবং কিছু অন্যান্য
পরিসীমা/বৈধতা পরীক্ষার সাথে সম্পর্কিত নির্মাণ। মডিউল তাই instrumented করা উচিত
বাফার ওভারফ্লো, অবৈধ স্তূপ ব্যবহার এবং C/C++ এর কিছু অন্যান্য শ্রেণীর প্রতিরোধ
প্রোগ্রামিং ত্রুটি। ইন্সট্রুমেন্টেশন একটি পৃথক রানটাইম লাইব্রেরির উপর নির্ভর করে
(libmudflap), যা যদি একটি প্রোগ্রামের সাথে সংযুক্ত থাকে -fmudflap লিঙ্ক সময়ে দেওয়া হয়. চালান-
ইন্সট্রুমেন্টেড প্রোগ্রামের সময় আচরণ দ্বারা নিয়ন্ত্রিত হয় MUDFLAP_OPTIONS
পরিবেশ সূচক. এর বিকল্পগুলির জন্য "env MUDFLAP_OPTIONS=-help a.out" দেখুন।

ব্যবহার -fmudflapth পরিবর্তে -fmudflap আপনার প্রোগ্রাম মাল্টি হলে কম্পাইল এবং লিঙ্ক করতে
থ্রেডেড ব্যবহার করুন - fmudflapirছাড়াও -fmudflap or -fmudflapth, যদি
ইন্সট্রুমেন্টেশনের পয়েন্টার রিড উপেক্ষা করা উচিত। এটি কম যন্ত্র তৈরি করে (এবং
তাই দ্রুত সঞ্চালন) এবং এখনও সম্পূর্ণ মেমরির বিরুদ্ধে কিছু সুরক্ষা প্রদান করে
corrupting writes, কিন্তু ভুলভাবে ডেটা পড়ার অনুমতি দেয় একটি প্রোগ্রামের মধ্যে প্রচার করতে।

-fthread-জাম্প
অপ্টিমাইজেশানগুলি সঞ্চালন করুন যেটি দেখতে একটি লাফানো একটি অবস্থান যেখানে অন্য একটি শাখা আছে কিনা তা পরীক্ষা করে৷
প্রথম দ্বারা অনুপস্থিত তুলনা পাওয়া যায়। যদি তাই হয়, প্রথম শাখা পুনঃনির্দেশিত হয়
হয় দ্বিতীয় শাখার গন্তব্য বা অবিলম্বে এটি অনুসরণ করা একটি বিন্দু,
শর্তটি সত্য বা মিথ্যা বলে পরিচিত কিনা তার উপর নির্ভর করে।

স্তরে সক্রিয় -ও2, -ও3, -ওএস.

-fsplit-ওয়াইড-টাইপস
একটি টাইপ ব্যবহার করার সময় যা একাধিক রেজিস্টার দখল করে, যেমন একটি 32-বিটে "লং লং"
সিস্টেম, রেজিস্টারগুলিকে আলাদা করে বিভক্ত করুন এবং সেগুলি স্বাধীনভাবে বরাদ্দ করুন। এই সাধারণত
এই ধরনের জন্য আরও ভাল কোড তৈরি করে, কিন্তু ডিবাগিং আরও কঠিন করে তুলতে পারে।

স্তরে সক্রিয় -O, -ও2, -ও3, -ওএস.

-fcse-অনুসরণ-জাম্প
সাধারণ সাবএক্সপ্রেশন এলিমিনেশন (CSE), জাম্প নির্দেশাবলীর মাধ্যমে স্ক্যান করুন যখন
অন্য কোনো পথ দিয়ে লাফের লক্ষ্যে পৌঁছানো যায় না। উদাহরণস্বরূপ, যখন CSE সম্মুখীন হয়
একটি "যদি" বিবৃতি একটি "অন্য" ধারা সহ, CSE যখন শর্ত থাকে তখন লাফ দেয়
পরীক্ষিত মিথ্যা।

স্তরে সক্রিয় -ও2, -ও3, -ওএস.

-FCSE-SKIP-BLOCKS
এটির মতোই -fcse-অনুসরণ-জাম্প, কিন্তু CSE এর ফলে লাফিয়ে যায়
শর্তসাপেক্ষে ব্লকের উপর এড়িয়ে যান। যখন CSE একটি সাধারণ "if" স্টেটমেন্টের সম্মুখীন হয় যার সাথে নং
অন্য ধারা, -FCSE-SKIP-BLOCKS CSE এর শরীরের চারপাশে জাম্প অনুসরণ করে
"যদি"।

স্তরে সক্রিয় -ও2, -ও3, -ওএস.

-frerun-cse-আফটার-লুপ
লুপ অপ্টিমাইজেশান সঞ্চালিত হওয়ার পরে সাধারণ সাব এক্সপ্রেশন নির্মূল পুনরায় চালান।

স্তরে সক্রিয় -ও2, -ও3, -ওএস.

-fgcse
একটি বিশ্বব্যাপী সাধারণ সাব এক্সপ্রেশন নির্মূল পাস সম্পাদন করুন। এই পাস এছাড়াও সঞ্চালন
বিশ্বব্যাপী ধ্রুবক এবং অনুলিপি প্রচার।

বিঃদ্রঃ: কম্পিউটেড গোটোস ব্যবহার করে একটি প্রোগ্রাম কম্পাইল করার সময়, একটি GCC এক্সটেনশন, আপনি পেতে পারেন
আপনি যদি গ্লোবাল কমন সাব এক্সপ্রেশন নির্মূল অক্ষম করেন তবে রান-টাইম পারফরম্যান্স আরও ভাল
যোগ করে পাস -fno-gcse কমান্ড লাইনে।

স্তরে সক্রিয় -ও2, -ও3, -ওএস.

-fgcse-lm
কখন -fgcse-lm সক্রিয় করা হয়েছে, গ্লোবাল কমন সাব এক্সপ্রেশন বর্জন করার চেষ্টা করা হচ্ছে
লোড যে শুধুমাত্র নিজেদের মধ্যে দোকান দ্বারা নিহত হয়. এটি a ধারণকারী একটি লুপ অনুমতি দেয়
লোড/স্টোর সিকোয়েন্স লুপের বাইরের লোডে পরিবর্তন করতে হবে এবং এর মধ্যে একটি কপি/স্টোর
লুপ।

ডিফল্টরূপে সক্রিয় যখন -fgcse সক্রিয় করা হয়.

-fgcse-Sm
কখন -fgcse-Sm সক্ষম করা হয়েছে, একটি স্টোর মোশন পাস গ্লোবাল কমনের পরে চালানো হয়
সাব এক্সপ্রেশন নির্মূল। এই পাসটি দোকানগুলিকে লুপের বাইরে সরানোর চেষ্টা করে৷ যখন ব্যবহার করা হয়
সাথে -fgcse-lm, একটি লোড/স্টোর ক্রম ধারণকারী লুপ পরিবর্তন করা যেতে পারে
লুপের আগে একটি লোড এবং লুপের পরে একটি স্টোর।

কোনো অপ্টিমাইজেশান স্তরে সক্ষম নয়৷

-fgcse-las
কখন -fgcse-las সক্রিয় করা হয়েছে, গ্লোবাল কমন সাব এক্সপ্রেশন নির্মূল পাস
অপ্রয়োজনীয় লোডগুলি সরিয়ে দেয় যা স্টোরের পরে একই মেমরি অবস্থানে আসে (উভয়
আংশিক এবং সম্পূর্ণ অপ্রয়োজনীয়তা)।

কোনো অপ্টিমাইজেশান স্তরে সক্ষম নয়৷

-fgcse-আফটার-রিলোড
কখন -fgcse-আফটার-রিলোড সক্রিয় করা হয়েছে, একটি অপ্রয়োজনীয় লোড নির্মূল পাস সঞ্চালিত হয়
পুনরায় লোড করার পরে। এই পাসের উদ্দেশ্য হল অপ্রয়োজনীয় স্পিলিং পরিষ্কার করা।

-ফ্যাগ্রেসিভ-লুপ-অপ্টিমাইজেশন
এই বিকল্পটি লুপ অপ্টিমাইজারকে সীমানা বের করতে ভাষার সীমাবদ্ধতা ব্যবহার করতে বলে
একটি লুপের পুনরাবৃত্তির সংখ্যা। এটি অনুমান করে যে লুপ কোড আহ্বান করে না
অনির্ধারিত আচরণ উদাহরণস্বরূপ স্বাক্ষরিত পূর্ণসংখ্যা ওভারফ্লো বা আউট-অফ-বাউন্ড সৃষ্টি করে
অ্যারে অ্যাক্সেস একটি লুপের পুনরাবৃত্তির সংখ্যার সীমা নির্দেশ করতে ব্যবহৃত হয়
লুপ আনরোলিং এবং পিলিং এবং লুপ প্রস্থান পরীক্ষা অপ্টিমাইজেশান। এই বিকল্প সক্রিয় করা হয়েছে
গতানুগতিক.

-ফানসেফ-লুপ-অপ্টিমাইজেশন
এই বিকল্পটি লুপ অপ্টিমাইজারকে অনুমান করতে বলে যে লুপ সূচকগুলি ওভারফ্লো হয় না এবং
যে loops nontrivial প্রস্থান শর্ত অসীম নয়. এই একটি বিস্তৃত সক্রিয়
লুপ অপ্টিমাইজেশনের পরিসর এমনকি লুপ অপ্টিমাইজার নিজেই প্রমাণ করতে না পারলেও
অনুমান বৈধ। ব্যবহার করলে -উনসেফ-লুপ-অপ্টিমাইজেশন, কম্পাইলার আপনাকে সতর্ক করে
যদি এটি লুপ এই ধরনের খুঁজে পায়.

-ফক্রসজাম্পিং
ক্রস-জাম্পিং রূপান্তর সম্পাদন করুন। এই রূপান্তরটি সমতুল্য কোডকে একীভূত করে এবং
কোড আকার সংরক্ষণ করে। ফলস্বরূপ কোড ক্রস- ছাড়ার চেয়ে ভাল পারফর্ম করতে পারে বা নাও করতে পারে
জাম্পিং

স্তরে সক্রিয় -ও2, -ও3, -ওএস.

-fauto-inc-ডিসেম্বর
মেমরি অ্যাক্সেসের সাথে ঠিকানার বৃদ্ধি বা হ্রাস একত্রিত করুন। এই পাস
সর্বদা স্থাপত্যগুলিতে এড়িয়ে যান যেগুলিতে এটি সমর্থন করার জন্য নির্দেশাবলী নেই।
এ ডিফল্টরূপে সক্রিয় করা হয়েছে৷ -O এবং এটি সমর্থন করে এমন আর্কিটেকচারে উচ্চতর।

-fdce
RTL-এ ডেড কোড এলিমিনেশন (DCE) সম্পাদন করুন। এ ডিফল্টরূপে সক্রিয় করা হয়েছে৷ -O এবং উচ্চতর।

-fdse
RTL-এ ডেড স্টোর এলিমিনেশন (DSE) সম্পাদন করুন। এ ডিফল্টরূপে সক্রিয় করা হয়েছে৷ -O এবং উচ্চতর।

-fif-রূপান্তর
শর্তসাপেক্ষ লাফগুলিকে শাখা-হীন সমতুল্যগুলিতে রূপান্তর করার প্রচেষ্টা। এটা অন্তর্ভুক্ত
শর্তসাপেক্ষ চাল, ন্যূনতম, সর্বোচ্চ, সেট পতাকা এবং abs নির্দেশাবলী এবং কিছু কৌশল ব্যবহার
আদর্শ পাটিগণিত দ্বারা সম্ভব। যেখানে চিপ আছে সেখানে শর্তসাপেক্ষ এক্সিকিউশনের ব্যবহার
উপলব্ধ "if-conversion2" দ্বারা নিয়ন্ত্রিত হয়।

স্তরে সক্রিয় -O, -ও2, -ও3, -ওএস.

-fif-রূপান্তর২
শর্তসাপেক্ষ জাম্পে রূপান্তর করতে শর্তসাপেক্ষ এক্সিকিউশন (যেখানে উপলব্ধ) ব্যবহার করুন
শাখা-হীন সমতুল্য।

স্তরে সক্রিয় -O, -ও2, -ও3, -ওএস.

-ফডিলিট-নাল-পয়েন্টার-চেকস
অনুমান করুন যে প্রোগ্রামগুলি নিরাপদে নাল পয়েন্টারগুলিকে আলাদা করতে পারে না এবং কোনও কোড বা ডেটা নেই
উপাদান সেখানে থাকে। এটি সহজ ধ্রুবক ভাঁজ অপ্টিমাইজেশান সক্ষম করে
অপ্টিমাইজেশান স্তর। উপরন্তু, GCC-তে অন্যান্য অপ্টিমাইজেশন পাস এই পতাকা ব্যবহার করে
বিশ্বব্যাপী ডেটাফ্লো বিশ্লেষণগুলি নিয়ন্ত্রণ করে যা নাল পয়েন্টারগুলির জন্য অকেজো চেকগুলি দূর করে;
এগুলি অনুমান করে যে যদি একটি পয়েন্টারটি ইতিমধ্যেই ডিরেফারেন্স করার পরে চেক করা হয় তবে এটি
শূন্য হতে পারে না।

তবে মনে রাখবেন যে কিছু পরিবেশে এই অনুমানটি সত্য নয়। ব্যবহার করুন
-FNO-DELETE-NULL- পয়েন্টার-চেকস নির্ভরশীল প্রোগ্রামগুলির জন্য এই অপ্টিমাইজেশনটি নিষ্ক্রিয় করতে
সেই আচরণের উপর।

কিছু লক্ষ্য, বিশেষ করে এম্বেড করা, এই বিকল্পটি সমস্ত স্তরে অক্ষম করে। অন্যথায়
এটি সব স্তরে সক্রিয় করা হয়েছে: -ও0, -ও1, -ও2, -ও3, -ওএস. পাস যে তথ্য ব্যবহার করে
বিভিন্ন অপ্টিমাইজেশান স্তরে স্বাধীনভাবে সক্রিয় করা হয়।

-fdevirtualize
কলগুলিকে ভার্চুয়াল ফাংশনে সরাসরি কলে রূপান্তর করার চেষ্টা করুন। এই উভয় করা হয়
একটি পদ্ধতির মধ্যে এবং আন্তঃপ্রক্রিয়াগতভাবে পরোক্ষ ইনলাইনিংয়ের অংশ হিসাবে
("-ফাইনডাইরেক্ট-ইনলাইনিং") এবং আন্তঃপ্রক্রিয়াগত ধ্রুবক প্রচার (-ফিপা-সিপি) সক্রিয়
স্তরে -ও2, -ও3, -ওএস.

ব্যয়বহুল-অপ্টিমাইজেশান
তুলনামূলকভাবে ব্যয়বহুল কিছু ছোটখাট অপ্টিমাইজেশান সম্পাদন করুন।

স্তরে সক্রিয় -ও2, -ও3, -ওএস.

মুক্ত
অপ্রয়োজনীয় এক্সটেনশন নির্দেশাবলী সরানোর চেষ্টা করুন। এই জন্য বিশেষভাবে সহায়ক
x86-64 আর্কিটেকচার, যা পরোক্ষভাবে 64-বিট রেজিস্টারে শূন্য-প্রসারিত করে
তাদের নিম্ন 32-বিট অর্ধেক লেখা.

স্তরে x86 এর জন্য সক্ষম করা হয়েছে -ও2, -ও3.

-ফোপ্টিমাইজ-রেজিস্টার-মুভ
-fregmove
সরানোর নির্দেশাবলী এবং অন্যান্য অপারেন্ড হিসাবে নিবন্ধন নম্বর পুনরায় বরাদ্দ করার চেষ্টা করুন
রেজিস্টার বাঁধার পরিমাণ সর্বাধিক করার জন্য সহজ নির্দেশাবলী। এই
দুই-অপারেন্ড নির্দেশাবলী সহ মেশিনে বিশেষত সহায়ক।

বিঃদ্রঃ -fregmove এবং -ফোপ্টিমাইজ-রেজিস্টার-মুভ একই অপ্টিমাইজেশান হয়.

স্তরে সক্রিয় -ও2, -ও3, -ওএস.

-ফিরা-অ্যালগরিদম=অ্যালগরিদম
ইন্টিগ্রেটেড রেজিস্টার বরাদ্দকারীর জন্য নির্দিষ্ট রঙের অ্যালগরিদম ব্যবহার করুন। দ্য
অ্যালগরিদম যুক্তি হতে পারে অগ্রাধিকার, যা Chow এর অগ্রাধিকার রঙ নির্দিষ্ট করে, বা CB,
যা Chaitin-Briggs কালারিং নির্দিষ্ট করে। Chaitin-Briggs রঙ বাস্তবায়ন করা হয় না
সমস্ত আর্কিটেকচারের জন্য, কিন্তু যে লক্ষ্যগুলি এটি সমর্থন করে, তাদের জন্য এটি ডিফল্ট
কারণ এটি আরও ভাল কোড তৈরি করে।

-ফিরা-অঞ্চল=এলাকা
ইন্টিগ্রেটেড রেজিস্টার বরাদ্দকারীর জন্য নির্দিষ্ট অঞ্চল ব্যবহার করুন। দ্য এলাকা যুক্তি
নিম্নলিখিতগুলির মধ্যে একটি হওয়া উচিত:

সব রেজিস্টার বরাদ্দ অঞ্চল হিসাবে সমস্ত লুপ ব্যবহার করুন। এই জন্য সেরা ফলাফল দিতে পারেন
একটি ছোট এবং/অথবা অনিয়মিত রেজিস্টার সেট সহ মেশিন।

মিশ্র
অঞ্চল হিসাবে ছোট রেজিস্টার চাপ সহ লুপ ব্যতীত সমস্ত লুপ ব্যবহার করুন। এই
মান সাধারণত বেশিরভাগ ক্ষেত্রে এবং বেশিরভাগ আর্কিটেকচারের জন্য সেরা ফলাফল দেয়, এবং
গতির জন্য অপ্টিমাইজেশানের সাথে কম্পাইল করার সময় ডিফল্টরূপে সক্রিয় করা হয় (-O, -ও2, ...)।

এক একটি একক অঞ্চল হিসাবে সমস্ত ফাংশন ব্যবহার করুন। এটি সাধারণত ক্ষুদ্রতম কোডে পরিণত হয়
আকার, এবং এর জন্য ডিফল্টরূপে সক্ষম -ওএস or -ও0.

-ফিরা-উত্থান-চাপ
উত্তোলনের সিদ্ধান্তের জন্য কোড উত্তোলন পাসে রেজিস্টার চাপ মূল্যায়ন করতে IRA ব্যবহার করুন
অভিব্যক্তি এই বিকল্পটি সাধারণত ছোট কোডে পরিণত হয়, তবে এটি ধীর করতে পারে
কম্পাইলার ডাউন।

এই বিকল্পটি স্তরে সক্রিয় করা হয়েছে -ওএস সব লক্ষ্যের জন্য।

-ফিরা-লুপ-চাপ
লুপ ইনভেরিয়েন্টগুলি সরানোর সিদ্ধান্তের জন্য লুপে রেজিস্টার চাপ মূল্যায়ন করতে IRA ব্যবহার করুন।
এই বিকল্পটি সাধারণত মেশিনে দ্রুত এবং ছোট কোড তৈরি করে
বড় রেজিস্টার ফাইল (>= 32টি রেজিস্টার), কিন্তু এটি কম্পাইলারকে ধীর করে দিতে পারে।

এই বিকল্পটি স্তরে সক্রিয় করা হয়েছে -ও3 কিছু লক্ষ্যের জন্য।

-fno-ira-শেয়ার-সেভ-স্লট
কল-ব্যবহৃত হার্ড রেজিস্টার বাঁচানোর জন্য ব্যবহৃত স্ট্যাক স্লট শেয়ারিং অক্ষম করুন
ডাক. প্রতিটি হার্ড রেজিস্টার একটি পৃথক স্ট্যাক স্লট পায়, এবং ফলস্বরূপ ফাংশন স্ট্যাক
ফ্রেম বড়।

-fno-ira-শেয়ার-স্পিল-স্লট
সিউডো-রেজিস্টারের জন্য বরাদ্দ করা স্ট্যাক স্লট শেয়ারিং অক্ষম করুন। প্রতিটি ছদ্ম-রেজিস্টার
যে একটি হার্ড রেজিস্টার পায় না একটি পৃথক স্ট্যাক স্লট পায়, এবং ফলস্বরূপ ফাংশন
স্ট্যাক ফ্রেম বড়.

-ফিরা-ভার্বোস=n
ইন্টিগ্রেটেড রেজিস্টার বরাদ্দকারীর জন্য ডাম্প ফাইলের ভার্বোসিটি নিয়ন্ত্রণ করুন। দ্য
ডিফল্ট মান 5। মান থাকলে n 10 এর বেশি বা সমান, ডাম্প আউটপুট পাঠানো হয়
হিসাবে একই বিন্যাস ব্যবহার করে stderr n বিয়োগ 10

-fdelayed-শাখা
টার্গেট মেশিনের জন্য সমর্থিত হলে, শোষণ করার জন্য নির্দেশগুলি পুনরায় সাজানোর চেষ্টা করুন
বিলম্বিত শাখা নির্দেশের পরে নির্দেশনা স্লট উপলব্ধ।

স্তরে সক্রিয় -O, -ও2, -ও3, -ওএস.

-fschedule- inss
লক্ষ্য মেশিনের জন্য সমর্থিত হলে, নির্মূল করার জন্য নির্দেশাবলী পুনরায় সাজানোর চেষ্টা করুন
প্রয়োজনীয় ডেটা অনুপলব্ধ হওয়ার কারণে কার্যকরী স্টল। এই যে মেশিন সাহায্য করে
অন্যান্য নির্দেশাবলীর অনুমতি দিয়ে ধীর ভাসমান পয়েন্ট বা মেমরি লোড নির্দেশাবলী আছে
লোড বা ফ্লোটিং-পয়েন্ট নির্দেশের প্রয়োজন না হওয়া পর্যন্ত জারি করা হবে।

স্তরে সক্রিয় -ও2, -ও3.

-fschedule-inss2
অনুরূপ, একই, সমতুল্য -fschedule- inss, কিন্তু নির্দেশনা শিডিউলিংয়ের একটি অতিরিক্ত পাসের অনুরোধ করে
রেজিস্টার বরাদ্দ করা হয়েছে পরে. এটি একটি সহ মেশিনে বিশেষভাবে কার্যকর
তুলনামূলকভাবে কম সংখ্যক রেজিস্টার এবং যেখানে মেমরি লোড নির্দেশাবলীর চেয়ে বেশি লাগে
একটি চক্র।

স্তরে সক্রিয় -ও2, -ও3, -ওএস.

-fno-নির্ধারিত-ইন্টারব্লক
মৌলিক ব্লক জুড়ে নির্দেশাবলী নির্ধারণ করবেন না। এটি সাধারণত ডিফল্টরূপে সক্রিয় করা হয়
রেজিস্টার বরাদ্দের আগে সময়সূচী করার সময়, যেমন সঙ্গে -fschedule- inss বা এ -ও2 or
ঊর্ধ্বতন.

-fno-sched-স্পেক
অ-লোড নির্দেশাবলীর অনুমানমূলক গতির অনুমতি দেবেন না। এটি সাধারণত দ্বারা সক্রিয় করা হয়
রেজিস্টার বরাদ্দের আগে সময়সূচী করার সময় ডিফল্ট, যেমন এর সাথে -fschedule- inss বা এ
-ও2 বা উচ্চতর

-fsched-চাপ
রেজিস্টার বরাদ্দের আগে রেজিস্টার চাপ সংবেদনশীল insn সময়সূচী সক্ষম করুন। এই
রেজিস্টার বরাদ্দ সক্রিয় করার আগে সময়সূচী করার সময়ই তখনই অর্থপূর্ণ হয়, যেমন এর সাথে
-fschedule- inss বা এ -ও2 অথবা উচ্চতর. এই বিকল্পের ব্যবহার উৎপন্ন উন্নত করতে পারে
কোড এবং সংখ্যার উপরে রেজিস্টার চাপ বৃদ্ধি রোধ করে এর আকার হ্রাস করুন
রেজিস্টার বরাদ্দে উপলব্ধ হার্ড রেজিস্টার এবং পরবর্তী ছিটকে পড়া।

-fsched-স্পেক-লোড
কিছু লোড নির্দেশের অনুমানমূলক গতির অনুমতি দিন। এই শুধুমাত্র যখন জ্ঞান করে তোলে
রেজিস্টার বরাদ্দ আগে সময়সূচী, যেমন সঙ্গে -fschedule- inss বা এ -ও2 বা উচ্চতর

-fsched-বিশেষ-লোড-বিপজ্জনক
আরো লোড নির্দেশের অনুমানমূলক গতির অনুমতি দিন। এই শুধুমাত্র যখন জ্ঞান করে তোলে
রেজিস্টার বরাদ্দ আগে সময়সূচী, যেমন সঙ্গে -fschedule- inss বা এ -ও2 বা উচ্চতর

-ফসচড-স্টলড-ইনস
-ফসচড-স্টলড-ইনসএনএস =n
অচলের সারি থেকে কতগুলি insns (যদি থাকে) অকালে সরানো যায় তা নির্ধারণ করুন
দ্বিতীয় সময়সূচী পাসের সময় প্রস্তুত তালিকায় insns. -fno-sched- স্টলড-ইনস
মানে অকালে কোনো ইনসন্স সরানো হয় না, -ফসচড-স্টলড-ইনসএনএস = 0 কোন আছে মানে
কতগুলি সারিবদ্ধ insns সময়ের আগে সরানো যেতে পারে তার সীমা। -ফসচড-স্টলড-ইনস
একটি মান ছাড়া সমতুল্য -ফসচড-স্টলড-ইনসএনএস = 1.

-ফসচড-স্টলড-ইনস-ডেপ
-ফসচড-স্টলড-ইনস-ডেপ =n
একটি স্থগিত insn-এর উপর নির্ভরতার জন্য কতগুলি insn গ্রুপ (চক্র) পরীক্ষা করা হয় তা নির্ধারণ করুন
যেটি স্থবির ইনএসএনএসের সারি থেকে অকাল অপসারণের প্রার্থী। এই আছে
একটি প্রভাব শুধুমাত্র দ্বিতীয় সময়সূচী পাসের সময়, এবং শুধুমাত্র যদি -ফসচড-স্টলড-ইনস is
ব্যবহার করা হয়েছে। -fno-sched- স্টলড-ইনস-ডেপ সমতুল্য -ফসচড-স্টলড-ইনস-ডেপ = 0.
-ফসচড-স্টলড-ইনস-ডেপ একটি মান ছাড়া সমতুল্য
-ফসচড-স্টলড-ইনস-ডেপ = 1.

-fsched2-ব্যবহার-সুপারব্লক
রেজিস্টার বরাদ্দের পরে সময়সূচী করার সময়, সুপারব্লক সময়সূচী ব্যবহার করুন। এই অনুমতি দেয়
বেসিক ব্লক সীমানা জুড়ে গতি, যার ফলে দ্রুত সময়সূচী হয়। এই বিকল্প হয়
পরীক্ষামূলক, যেহেতু GCC মডেল দ্বারা ব্যবহৃত সমস্ত মেশিনের বিবরণ CPU যথেষ্ট ঘনিষ্ঠভাবে ব্যবহার করে না
অ্যালগরিদম থেকে অবিশ্বস্ত ফলাফল এড়াতে।

রেজিস্টার বরাদ্দের পরে সময়সূচী করার সময় এটি শুধুমাত্র অর্থপূর্ণ হয়, যেমন এর সাথে
-fschedule-inss2 বা এ -ও2 বা উচ্চতর

-fsched-গ্রুপ-হিউরিস্টিক
সময়সূচীতে গ্রুপ হিউরিস্টিক সক্ষম করুন। এই হিউরিস্টিক নির্দেশের পক্ষে
যেটি একটি শিডিউল গ্রুপের অন্তর্গত। সময়সূচী করার সময় এটি ডিফল্টরূপে সক্রিয় থাকে
সক্রিয়, যেমন সঙ্গে -fschedule- inss or -fschedule-inss2 বা এ -ও2 বা উচ্চতর

-fsched-সমালোচনা-পাথ-হিউরিস্টিক
সময়সূচীতে ক্রিটিকাল-পাথ হিউরিস্টিক সক্ষম করুন। এই হিউরিস্টিক পক্ষে
সমালোচনামূলক পথে নির্দেশাবলী। সময়সূচী করার সময় এটি ডিফল্টরূপে সক্রিয় থাকে
সক্রিয়, যেমন সঙ্গে -fschedule- inss or -fschedule-inss2 বা এ -ও2 বা উচ্চতর

-ফসচড-স্পেক-ইন-হিউরিস্টিক
সময়সূচীতে অনুমানমূলক নির্দেশ হিউরিস্টিক সক্ষম করুন। এই হিউরিস্টিক পক্ষে
বৃহত্তর নির্ভরতা দুর্বলতা সঙ্গে অনুমানমূলক নির্দেশাবলী. এটি ডিফল্টরূপে সক্ষম
যখন সময়সূচী সক্রিয় করা হয়, যেমন এর সাথে -fschedule- inss or -fschedule-inss2 বা এ -ও2
বা উচ্চতর

-fsched-র্যাঙ্ক-হিউরিস্টিক
সময়সূচীতে র্যাঙ্ক হিউরিস্টিক সক্ষম করুন। এই হিউরিস্টিক নির্দেশের পক্ষে
বৃহত্তর আকার বা ফ্রিকোয়েন্সি সহ একটি মৌলিক ব্লকের অন্তর্গত। এটি ডিফল্টরূপে সক্ষম
যখন সময়সূচী সক্রিয় করা হয়, যেমন এর সাথে -fschedule- inss or -fschedule-inss2 বা এ -ও2
বা উচ্চতর

-ফসচড-লাস্ট-ইন-হিউরিস্টিক
শিডিউলারে শেষ-নির্দেশ হিউরিস্টিক সক্ষম করুন। এই হিউরিস্টিক পক্ষে
নির্দেশ যা নির্ধারিত শেষ নির্দেশের উপর কম নির্ভরশীল। এটি সক্রিয় করা হয়েছে
ডিফল্টরূপে যখন সময়সূচী সক্রিয় করা হয়, যেমন এর সাথে -fschedule- inss or -fschedule-inss2
বা এ -ও2 বা উচ্চতর

-ফসড-ডেপ-কাউন্ট-হিউরিস্টিক
শিডিউলারে নির্ভরশীল-গণনা হিউরিস্টিক সক্ষম করুন। এই হিউরিস্টিক পক্ষে
যে নির্দেশের উপর নির্ভর করে আরও নির্দেশাবলী রয়েছে। এটি ডিফল্টরূপে সক্ষম
যখন সময়সূচী সক্রিয় করা হয়, যেমন এর সাথে -fschedule- inss or -fschedule-inss2 বা এ -ও2
বা উচ্চতর

-ফ্রেশডিউল-মডিউল-নির্ধারিত-লুপ
মডুলো সময়সূচী ঐতিহ্যগত সময়সূচীর আগে সঞ্চালিত হয়। যদি একটি লুপ মডুলো হয়
নির্ধারিত, পরবর্তী সময়সূচী পাস তার সময়সূচী পরিবর্তন করতে পারে। এই বিকল্পটি ব্যবহার করুন
সেই আচরণ নিয়ন্ত্রণ করুন।

-fselective-শিডিউলিং
নির্বাচনী সময়সূচী অ্যালগরিদম ব্যবহার করে নির্দেশাবলী নির্ধারণ করুন। নির্বাচনী সময়সূচী রান
প্রথম শিডিউলার পাসের পরিবর্তে।

-ফসেক্টিভ-স্কিডুলিং 2
নির্বাচনী সময়সূচী অ্যালগরিদম ব্যবহার করে নির্দেশাবলী নির্ধারণ করুন। নির্বাচনী সময়সূচী রান
পরিবর্তে দ্বিতীয় সময়সূচী পাস.

-fsel-নির্ধারিত-পাইপলাইনিং
নির্বাচনী শিডিউলিংয়ের সময় সবচেয়ে ভিতরের লুপের সফ্টওয়্যার পাইপলাইনিং সক্ষম করুন। এই
একটি ছাড়া বিকল্পের কোন প্রভাব নেই -fselective-শিডিউলিং or -ফসেক্টিভ-স্কিডুলিং 2
চালু করা হয়।

-fsel-নির্ধারিত-পাইপলাইন-বাইরের-লুপ
সিলেক্টিভ শিডিউলিংয়ের সময় পাইপলাইন লুপ করার সময়, বাইরের লুপও পাইপলাইন করুন। এই
বিকল্প কোন প্রভাব নেই যদি না -fsel-নির্ধারিত-পাইপলাইনিং চালু করা হয়।

-ফ্রিংক-মোড়
এমিট ফাংশন prologues শুধুমাত্র ফাংশনের অংশগুলির আগে যা এটি প্রয়োজন, at এর পরিবর্তে
ফাংশনের শীর্ষে। এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -O এবং উচ্চতর।

-fcaller-সংরক্ষণ
ফাংশন কল দ্বারা ক্লোবার করা রেজিস্টারগুলিতে মানগুলির বরাদ্দ সক্ষম করুন, দ্বারা৷
এই ধরনের কলের চারপাশে রেজিস্টার সংরক্ষণ এবং পুনরুদ্ধার করার জন্য অতিরিক্ত নির্দেশাবলী নির্গত করা। যেমন
বরাদ্দ শুধুমাত্র তখনই করা হয় যখন এটি আরও ভাল কোডের ফলাফল বলে মনে হয়।

এই বিকল্পটি সর্বদা নির্দিষ্ট মেশিনে ডিফল্টরূপে সক্রিয় থাকে, সাধারণত যেগুলি থাকে
পরিবর্তে ব্যবহার করার জন্য কোনো কল-সংরক্ষিত রেজিস্টার নেই।

স্তরে সক্রিয় -ও2, -ও3, -ওএস.

-fcombine-স্ট্যাক-সামঞ্জস্য
স্ট্যাক অ্যাডজাস্টমেন্ট (ধাক্কা এবং পপস) এবং স্ট্যাক মেমরি রেফারেন্স ট্র্যাক করে এবং তারপর চেষ্টা করে
তাদের একত্রিত করার উপায় খুঁজে বের করতে।

এ ডিফল্টরূপে সক্রিয় করা হয়েছে৷ -ও1 এবং উচ্চতর।

-fconserve-স্ট্যাক
স্ট্যাকের ব্যবহার কমানোর চেষ্টা করুন। কম্পাইলার কম স্ট্যাক স্থান ব্যবহার করার চেষ্টা করে, এমনকি
যদি এটি প্রোগ্রামটিকে ধীর করে তোলে। এই বিকল্পটি সেটিং বোঝায় বড়-স্ট্যাক-ফ্রেম
পরামিতি 100 এবং বড়-স্ট্যাক-ফ্রেম-বৃদ্ধি পরামিতি 400।

-free-reassoc
গাছে পুনর্মিলন সম্পাদন করুন। এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -O এবং উচ্চতর।

-ফ্রি-প্রি
গাছে আংশিক রিডানডেন্সি এলিমিনেশন (PRE) সম্পাদন করুন। এই পতাকা দ্বারা সক্রিয় করা হয়
ডিফল্ট এ -ও2 এবং -ও3.

-ফ্রি-আংশিক-প্রাক
আংশিক অপ্রয়োজনীয় নির্মূল (PRE) আরও আক্রমণাত্মক করুন। এই পতাকা দ্বারা সক্রিয় করা হয়
ডিফল্ট এ -ও3.

-free-forwprop
গাছে অগ্রবর্তী বংশবৃদ্ধি সম্পাদন করুন। এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -O এবং
ঊর্ধ্বতন.

-ফ্রি-ফ্রি
গাছে সম্পূর্ণ রিডানডেন্সি এলিমিনেশন (FRE) সম্পাদন করুন। FRE এবং মধ্যে পার্থক্য
PRE হল FRE শুধুমাত্র অভিব্যক্তিগুলিকে বিবেচনা করে যেগুলি সমস্ত পাথের দিকে গণনা করা হয়
অপ্রয়োজনীয় গণনা এই বিশ্লেষণটি PRE এর চেয়ে দ্রুত, যদিও এটি কম প্রকাশ করে
অপ্রয়োজনীয়তা এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -O এবং উচ্চতর।

-ফ্রি-ফিপ্রপ
গাছের উপর শর্তসাপেক্ষ পয়েন্টার থেকে লোড উত্তোলন সঞ্চালন. এই পাস দ্বারা সক্রিয় করা হয়
ডিফল্ট এ -O এবং উচ্চতর।

-fhoist-সংলগ্ন-লোড
অনুমানমূলকভাবে একটি if-then-else এর উভয় শাখা থেকে লোড উত্তোলন করুন যদি লোডগুলি থেকে হয়
একই কাঠামোর সন্নিহিত অবস্থান এবং লক্ষ্য স্থাপত্যের একটি শর্তাধীন রয়েছে
সরানোর নির্দেশ। এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -ও2 এবং উচ্চতর।

-ftre-কপি-প্রপ
গাছে অনুলিপি প্রচার করুন। এই পাস অপ্রয়োজনীয় অনুলিপি ক্রিয়াকলাপ দূর করে।
এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -O এবং উচ্চতর।

-ফিপা-বিশুদ্ধ-কনস্ট
কোন ফাংশন বিশুদ্ধ বা ধ্রুবক আবিষ্কার করুন. এ ডিফল্টরূপে সক্রিয় করা হয়েছে৷ -O এবং উচ্চতর।

-ফিপা-রেফারেন্স
কোন স্ট্যাটিক ভেরিয়েবলগুলি কম্পাইলেশন ইউনিট এড়িয়ে যায় না তা আবিষ্কার করুন। দ্বারা সক্রিয়
ডিফল্ট এ -O এবং উচ্চতর।

-ফিপা-পিটিএ
আন্তঃপ্রক্রিয়াগত পয়েন্টার বিশ্লেষণ এবং আন্তঃপ্রক্রিয়াগত পরিবর্তন সম্পাদন করুন এবং
রেফারেন্স বিশ্লেষণ। এই বিকল্পটি অত্যধিক মেমরি এবং কম্পাইল-টাইম ব্যবহার চালু করতে পারে
বড় সংকলন ইউনিট। এটি কোনো অপ্টিমাইজেশান স্তরে ডিফল্টরূপে সক্রিয় করা হয় না৷

-ফিপা-প্রোফাইল
আন্তঃপ্রক্রিয়াগত প্রোফাইল প্রচার সঞ্চালন. ফাংশন শুধুমাত্র ঠান্ডা থেকে বলা হয়
ফাংশন ঠান্ডা হিসাবে চিহ্নিত করা হয়. এছাড়াও ফাংশনগুলি একবার কার্যকর করা হয় (যেমন "ঠান্ডা",
"noreturn", স্ট্যাটিক কনস্ট্রাক্টর বা ধ্বংসকারী) চিহ্নিত করা হয়। ঠান্ডা ফাংশন এবং
একবার কার্যকর করা ফাংশনগুলির লুপ কম অংশ তারপর আকারের জন্য অপ্টিমাইজ করা হয়। দ্বারা সক্রিয়
ডিফল্ট এ -O এবং উচ্চতর।

-ফিপা-সিপি
আন্তঃপ্রক্রিয়াগত ধ্রুবক প্রচার সঞ্চালন. এই অপ্টিমাইজেশান প্রোগ্রাম বিশ্লেষণ
ফাংশনে পাস করা মানগুলি কখন ধ্রুবক এবং তারপর অপ্টিমাইজ করা হয় তা নির্ধারণ করতে
সেই অনুযায়ী এই অপ্টিমাইজেশন যথেষ্ট কর্মক্ষমতা বৃদ্ধি করতে পারে যদি
অ্যাপ্লিকেশন ফাংশন পাস ধ্রুবক আছে. এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে
-ও2, -ওএস এবং -ও3.

-ফিপা-সিপি-ক্লোন
আন্তঃপ্রক্রিয়াগত ধ্রুবক প্রচারকে শক্তিশালী করতে ফাংশন ক্লোনিং করুন। কখন
সক্রিয়, আন্তঃপ্রক্রিয়াগত ধ্রুবক প্রচার ফাংশন ক্লোনিং সঞ্চালিত হয় যখন
বাহ্যিকভাবে দৃশ্যমান ফাংশন ধ্রুবক আর্গুমেন্ট সঙ্গে কল করা যেতে পারে. কারণ এই
অপ্টিমাইজেশন ফাংশনের একাধিক কপি তৈরি করতে পারে, এটি উল্লেখযোগ্যভাবে বৃদ্ধি পেতে পারে
কোড আকার (দেখুন --পরম ipcp-ইউনিট-গ্রোথ=মূল্য) এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে
-ও3.

-ফ্রি-সিঙ্ক
গাছের উপর ফরওয়ার্ড স্টোর গতি সঞ্চালন. এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -O এবং
ঊর্ধ্বতন.

-এফট্রি-বিট-সিসিপি
গাছে বিক্ষিপ্ত শর্তসাপেক্ষ বিট ধ্রুবক প্রচার সম্পাদন করুন এবং পয়েন্টার প্রচার করুন
প্রান্তিককরণ তথ্য। এই পাস শুধুমাত্র স্থানীয় স্কেলার ভেরিয়েবলের উপর কাজ করে এবং হয়
এ ডিফল্টরূপে সক্রিয় -O এবং উচ্চতর এটা যে প্রয়োজন -এফট্রি-সিসিপি সক্রিয় করা হয়.

-এফট্রি-সিসিপি
গাছে স্পার্স কন্ডিশনাল কনস্ট্যান্ট প্রপাগেশন (সিসিপি) সম্পাদন করুন। এই পাস শুধুমাত্র
স্থানীয় স্কেলার ভেরিয়েবলের উপর কাজ করে এবং ডিফল্টরূপে সক্রিয় করা হয় -O এবং উচ্চতর।

-এফট্রি-সুইচ-রূপান্তর
একটি থেকে শুরুতে একটি স্যুইচ করে সাধারণ প্রাথমিককরণের রূপান্তর সম্পাদন করুন
স্কেলার অ্যারে। এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -ও2 এবং উচ্চতর।

-free-tail-merge
অভিন্ন কোড ক্রম জন্য দেখুন. পাওয়া গেলে, একটি লাফ দিয়ে অন্যটিতে প্রতিস্থাপন করুন।
এই অপ্টিমাইজেশানটি টেল মার্জিং বা ক্রস জাম্পিং নামে পরিচিত। এই পতাকা দ্বারা সক্রিয় করা হয়
ডিফল্ট এ -ও2 এবং উচ্চতর এই পাসে সংকলনের সময় ব্যবহার করে সীমিত করা যেতে পারে
max-tail-merge-তুলনা প্যারামিটার এবং সর্বোচ্চ-লেজ-মার্জ-শিরোনাম প্যারামিটার।

-free-dce
গাছে ডেড কোড এলিমিনেশন (DCE) সম্পাদন করুন। এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -O
এবং উচ্চতর।

-এফটি-বিল্টিন-কল-ডিসিই
বিল্ট-ইন ফাংশনগুলিতে কল করার জন্য শর্তসাপেক্ষ ডেড কোড এলিমিনেশন (DCE) সম্পাদন করুন
"ভ্রান্তি" সেট করতে পারে কিন্তু অন্যথায় পার্শ্ব-প্রতিক্রিয়া মুক্ত। এই পতাকা ডিফল্টরূপে সক্রিয় করা হয়
at -ও2 এবং উচ্চতর যদি -ওএস এছাড়াও নির্দিষ্ট করা হয় না.

-free-dominator-opts
বিভিন্ন ধরণের সাধারণ স্কেলার ক্লিনআপগুলি সম্পাদন করুন (ধ্রুবক/কপি প্রচার, অপ্রয়োজনীয়তা
নির্মূল, পরিসর প্রচার এবং অভিব্যক্তি সরলীকরণ) একটি প্রভাবশালীর উপর ভিত্তি করে
গাছ ট্রাভার্সাল এটি জাম্প থ্রেডিংও করে (জাম্প থেকে লাফ কমাতে)। এই
পতাকা ডিফল্টরূপে সক্রিয় করা হয় -O এবং উচ্চতর।

-ftre-dse
গাছে ডেড স্টোর এলিমিনেশন (DSE) সম্পাদন করুন। একটি মৃত দোকান একটি স্মৃতিতে একটি স্টোর
অবস্থান যা পরবর্তীতে অন্য দোকান দ্বারা কোনো হস্তক্ষেপ লোড ছাড়াই ওভাররাইট করা হয়। ভিতরে
এই ক্ষেত্রে আগের দোকান মুছে ফেলা যেতে পারে. এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -O এবং
ঊর্ধ্বতন.

-ftre-ch
গাছে লুপ হেডার কপি করা সঞ্চালন করুন। এটি উপকারী কারণ এটি বৃদ্ধি পায়
কোড মোশন অপ্টিমাইজেশানের কার্যকারিতা। এটি একটি লাফও বাঁচায়। এই পতাকা
এ ডিফল্টরূপে সক্রিয় -O এবং উচ্চতর এটি জন্য সক্রিয় করা হয় না -ওএস, যেহেতু এটা সাধারণত
কোডের আকার বাড়ায়।

-এফট্রি-লুপ-অপ্টিমাইজ
গাছে লুপ অপ্টিমাইজেশন সঞ্চালন করুন। এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -O এবং
ঊর্ধ্বতন.

-ফ্রি-লুপ-লিনিয়ার
গাছে লুপ ইন্টারচেঞ্জ রূপান্তর সম্পাদন করুন। একই রকম -ফ্লুপ-ইন্টারচেঞ্জ। ব্যবহার করা
এই কোড রূপান্তর, GCC এর সাথে কনফিগার করতে হবে --with-ppl এবং --with-cloog থেকে
গ্রাফাইট লুপ রূপান্তর পরিকাঠামো সক্ষম করুন।

-ফ্লুপ-ইন্টারচেঞ্জ
লুপগুলিতে লুপ ইন্টারচেঞ্জ রূপান্তর সম্পাদন করুন। দুটি নেস্টেড লুপ বিনিময় করা
ভিতরের এবং বাইরের লুপগুলি সুইচ করে। উদাহরণস্বরূপ, একটি লুপ দেওয়া হয়েছে যেমন:

Do j = 1, মি
আমি = 1, এন
এ (জে, আই) = এ (জে, আই) * সি
এন্ডডো
এন্ডডো

লুপ ইন্টারচেঞ্জ লুপটিকে এমনভাবে রূপান্তরিত করে যেন এটি লেখা ছিল:

আমি = 1, এন
Do j = 1, মি
এ (জে, আই) = এ (জে, আই) * সি
এন্ডডো
এন্ডডো

যা উপকারী হতে পারে যখন "N" ক্যাশে থেকে বড় হয়, কারণ ফোর্টরানে,
একটি অ্যারের উপাদানগুলি কলাম এবং মূল দ্বারা সংলগ্নভাবে মেমরিতে সংরক্ষণ করা হয়
লুপ সারিগুলির উপর পুনরাবৃত্তি করে, সম্ভাব্য প্রতিটি অ্যাক্সেসে একটি ক্যাশে মিস তৈরি করে। এই
অপ্টিমাইজেশান GCC দ্বারা সমর্থিত সমস্ত ভাষার জন্য প্রযোজ্য এবং এটি সীমাবদ্ধ নয়
ফোর্টরান। এই কোড রূপান্তর ব্যবহার করতে, GCC এর সাথে কনফিগার করতে হবে --with-ppl
এবং --with-cloog গ্রাফাইট লুপ রূপান্তর পরিকাঠামো সক্ষম করতে।

-ফ্লুপ-স্ট্রিপ-খনি
লুপগুলিতে লুপ স্ট্রিপ মাইনিং রূপান্তর সম্পাদন করুন। স্ট্রিপ মাইনিং একটি লুপ বিভক্ত করে
দুটি নেস্টেড লুপ। বাইরের লুপের স্ট্রিপ আকার এবং ভিতরের সমান ধাপ রয়েছে
লুপের একটি স্ট্রিপের মধ্যে মূল লুপের ধাপ রয়েছে। ফালা দৈর্ঘ্য পরিবর্তন করা যেতে পারে
ব্যবহার করে লুপ-ব্লক-টাইল-আকার প্যারামিটার উদাহরণস্বরূপ, একটি লুপ দেওয়া হয়েছে যেমন:

আমি = 1, এন
A (i) = a (i) + সি
এন্ডডো

লুপ স্ট্রিপ মাইনিং লুপটিকে এমনভাবে রূপান্তরিত করে যেন এটি লেখা ছিল:

Do II = 1, n, 51
DO I = II, মিনিট (II + 50, N)
A (i) = a (i) + সি
এন্ডডো
এন্ডডো

এই অপ্টিমাইজেশানটি GCC দ্বারা সমর্থিত সমস্ত ভাষার ক্ষেত্রে প্রযোজ্য এবং এর মধ্যে সীমাবদ্ধ নয়৷
ফোর্টরান। এই কোড রূপান্তর ব্যবহার করতে, GCC এর সাথে কনফিগার করতে হবে --with-ppl
এবং --with-cloog গ্রাফাইট লুপ রূপান্তর পরিকাঠামো সক্ষম করতে।

- ফ্লপ-ব্লক
লুপগুলিতে লুপ ব্লকিং রূপান্তরগুলি সম্পাদন করুন। ব্লকিং ফালা খনি প্রতিটি লুপ
লুপ নেস্ট যেমন উপাদান লুপের মেমরি অ্যাক্সেস ক্যাশের ভিতরে ফিট করে। দ্য
ফালা দৈর্ঘ্য ব্যবহার করে পরিবর্তন করা যেতে পারে লুপ-ব্লক-টাইল-আকার প্যারামিটার উদাহরণ স্বরূপ,
একটি লুপ দেওয়া হয়েছে যেমন:

আমি = 1, এন
Do j = 1, মি
এ (জে, আই) = বি (আই) + সি (জে)
এন্ডডো
এন্ডডো

লুপ ব্লকিং লুপটিকে এমনভাবে রূপান্তরিত করে যেন এটি লেখা ছিল:

Do II = 1, n, 51
জেজে = 1, এম, 51 করুন
DO I = II, মিনিট (II + 50, N)
DO J = JJ, মিন (JJ + 50, M)
এ (জে, আই) = বি (আই) + সি (জে)
এন্ডডো
এন্ডডো
এন্ডডো
এন্ডডো

যা উপকারী হতে পারে যখন "M" ক্যাশে থেকে বড় হয়, কারণ সবচেয়ে ভিতরের লুপ
ক্যাশে রাখা যেতে পারে এমন একটি ছোট পরিমাণ ডেটার উপর পুনরাবৃত্তি করে। এই
অপ্টিমাইজেশান GCC দ্বারা সমর্থিত সমস্ত ভাষার জন্য প্রযোজ্য এবং এটি সীমাবদ্ধ নয়
ফোর্টরান। এই কোড রূপান্তর ব্যবহার করতে, GCC এর সাথে কনফিগার করতে হবে --with-ppl
এবং --with-cloog গ্রাফাইট লুপ রূপান্তর পরিকাঠামো সক্ষম করতে।

-fgraphite-পরিচয়
গ্রাফাইটের জন্য পরিচয় রূপান্তর সক্ষম করুন। প্রতিটি SCOP-এর জন্য আমরা তৈরি করি
পলিহেড্রাল উপস্থাপনা এবং এটিকে জিম্পলে রূপান্তরিত করুন। ব্যবহার -fgraphite-পরিচয়
আমরা GIMPLE -> GRAPHITE -> GIMPLE রূপান্তরের খরচ বা সুবিধাগুলি পরীক্ষা করতে পারি।
কিছু ন্যূনতম অপ্টিমাইজেশনও কোড জেনারেটর CLooG দ্বারা সঞ্চালিত হয়, যেমন সূচক
loops মধ্যে বিভক্ত এবং মৃত কোড নির্মূল.

-ফ্লুপ-নেস্ট-অপ্টিমাইজ
ISL ভিত্তিক লুপ নেস্ট অপ্টিমাইজার সক্ষম করুন৷ এটি একটি জেনেরিক লুপ নেস্ট অপ্টিমাইজার ভিত্তিক
প্লুটো অপ্টিমাইজেশান অ্যালগরিদমের উপর। এটি একটি লুপ কাঠামোর জন্য অপ্টিমাইজ করা গণনা করে৷
ডেটা-স্থানীয়তা এবং সমান্তরালতা। এই বিকল্পটি পরীক্ষামূলক।

-floop-সমান্তরাল-সমস্ত
সমান্তরাল হতে পারে এমন লুপগুলি সনাক্ত করতে গ্রাফাইট ডেটা নির্ভরতা বিশ্লেষণ ব্যবহার করুন।
লুপ বহন নির্ভরতা ধারণ না করার জন্য বিশ্লেষণ করা যেতে পারে এমন সমস্ত লুপগুলিকে সমান্তরাল করুন
লুপগুলিকে সমান্তরাল করা লাভজনক কিনা তা পরীক্ষা না করেই।

-ফচেক-ডেটা-ডিপস
বিভিন্ন তথ্য নির্ভরতা বিশ্লেষক ফলাফল তুলনা. এই বিকল্পের জন্য ব্যবহার করা হয়
তথ্য নির্ভরতা বিশ্লেষক ডিবাগিং.

-ftre-লুপ-যদি-রূপান্তর
সবচেয়ে ভিতরের লুপগুলিতে শর্তসাপেক্ষ লাফগুলিকে শাখা-বিহীন রূপান্তর করার চেষ্টা করুন
সমতুল্য. উদ্দেশ্য হল ক্রমানুসারে ভেতরের লুপগুলি থেকে নিয়ন্ত্রণ-প্রবাহ অপসারণ করা
এই লুপগুলি পরিচালনা করার জন্য ভেক্টরাইজেশন পাসের ক্ষমতা উন্নত করতে। এই
ভেক্টরাইজেশন সক্রিয় থাকলে ডিফল্টরূপে সক্রিয়।

-এফটি-লুপ-ইফ-কনভার্ট-স্টোর
মেমরি রাইট ধারণকারী শর্তসাপেক্ষ লাফ যদি-রূপান্তর করার চেষ্টাও। এই
মাল্টি-থ্রেডেড প্রোগ্রামের জন্য রূপান্তর অনিরাপদ হতে পারে কারণ এটি শর্তসাপেক্ষে রূপান্তরিত করে
মেমরি নিঃশর্ত মেমরি লিখতে লিখতে. উদাহরণ স্বরূপ,

জন্য (i = 0; i < N; i++)
যদি (অবস্থা)
A [i] = এক্সপ্রিল;

রূপান্তরিত হয়

জন্য (i = 0; i < N; i++)
A[i] = cond? expr: A[i];

সম্ভাব্য ডেটা রেস উত্পাদন.

-ফ্রি-লুপ-ডিস্ট্রিবিউশন
লুপ বিতরণ সঞ্চালন. এই পতাকা বড় লুপ বডিতে ক্যাশে কর্মক্ষমতা উন্নত করতে পারে
এবং আরও লুপ অপ্টিমাইজেশান, যেমন সমান্তরালকরণ বা ভেক্টরাইজেশন, নেওয়ার অনুমতি দিন
স্থান উদাহরণস্বরূপ, লুপ

আমি = 1, এন
A (i) = b (i) + সি
D (i) = E (i) * f
এন্ডডো

রূপান্তরিত হয়

আমি = 1, এন
A (i) = b (i) + সি
এন্ডডো
আমি = 1, এন
D (i) = E (i) * f
এন্ডডো

-এফট্রি-লুপ-ডিস্ট্রিবিউট-প্যাটার্ন
প্যাটার্নের লুপ ডিস্ট্রিবিউশন সঞ্চালন করুন যা একটি কলের সাথে কোড তৈরি করা যেতে পারে
লাইব্রেরি এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -ও3.

এই পাসটি ইনিশিয়ালাইজেশন লুপ বিতরণ করে এবং মেমসেট জিরোতে একটি কল তৈরি করে।
উদাহরণস্বরূপ, লুপ

আমি = 1, এন
A (i) = 0
বি (আই) = এ (আই) + আই
এন্ডডো

রূপান্তরিত হয়

আমি = 1, এন
A (i) = 0
এন্ডডো
আমি = 1, এন
বি (আই) = এ (আই) + আই
এন্ডডো

এবং ইনিশিয়ালাইজেশন লুপ মেমসেট জিরোতে কলে রূপান্তরিত হয়।

-ফ্রি-লুপ-আইএম
গাছে লুপ অপরিবর্তনীয় গতি সঞ্চালন করুন। এই পাস শুধুমাত্র কঠিন যে invariants সরানো
RTL স্তরে হ্যান্ডেল করা (ফাংশন কল, অপারেশন যা অতুচ্ছ ক্রমগুলিতে প্রসারিত হয়
insns)। সঙ্গে -ফানসুইচ-লুপস এটা যে অবস্থার অপারেন্ড সরানো হয়
লুপ থেকে invariant আউট, যাতে আমরা শুধুমাত্র তুচ্ছ invariantness বিশ্লেষণ ব্যবহার করতে পারেন
লুপ আনসুইচিং পাস এছাড়াও স্টোর গতি অন্তর্ভুক্ত.

-এফট্রি-লুপ-ইভক্যানন
লুপের পুনরাবৃত্তির সংখ্যার জন্য একটি ক্যানোনিকাল কাউন্টার তৈরি করুন যার জন্য নির্ধারণ করা হয়
পুনরাবৃত্তির সংখ্যা জটিল বিশ্লেষণের প্রয়োজন। পরে অপ্টিমাইজেশান তারপর হতে পারে
সহজেই সংখ্যা নির্ধারণ করুন। বিশেষ করে আনরোলিংয়ের ক্ষেত্রে দরকারী।

-ফাইভপ্টস
ইন্ডাকশন ভেরিয়েবল অপ্টিমাইজেশান সঞ্চালন করুন (শক্তি হ্রাস, ইন্ডাকশন ভেরিয়েবল
একত্রিতকরণ এবং আবেশন পরিবর্তনশীল নির্মূল) গাছে।

-ftree- parallelize-loops=n
সমান্তরাল loops, অর্থাৎ, n থ্রেডে চালানোর জন্য তাদের পুনরাবৃত্তি স্থান বিভক্ত করুন। এই
শুধুমাত্র সেই লুপের জন্য সম্ভব যার পুনরাবৃত্তি স্বাধীন এবং ইচ্ছামত হতে পারে
পুনরায় সাজানো অপটিমাইজেশন শুধুমাত্র মাল্টিপ্রসেসর মেশিনে লাভজনক, লুপের জন্য
যেগুলি মেমরি ব্যান্ডউইথ দ্বারা সীমাবদ্ধ যেমন CPU-নিবিড়। এই বিকল্প
বোঝা - থ্রেড, এবং এইভাবে শুধুমাত্র সেই লক্ষ্যে সমর্থিত যেগুলির জন্য সমর্থন আছে৷
- থ্রেড.

-এফটি-পিটিএ
গাছের উপর বিশ্লেষণ-স্থানীয় পয়েন্ট-ফাংশন সম্পাদন করুন। এই পতাকা ডিফল্টরূপে সক্রিয় করা হয়
at -O এবং উচ্চতর।

-ftre-sra
সমষ্টির স্কেলার প্রতিস্থাপন সঞ্চালন. এই পাস কাঠামোর রেফারেন্স প্রতিস্থাপন করে
খুব তাড়াতাড়ি মেমরিতে কাঠামোর প্রতিশ্রুতি রোধ করতে স্কেলার সহ। এই পতাকা
এ ডিফল্টরূপে সক্রিয় -O এবং উচ্চতর।

-ftree-কপিরনাম
গাছে অনুলিপি পুনঃনামকরণ সম্পাদন করুন। এই পাস কম্পাইলার অস্থায়ী নাম পরিবর্তন করার চেষ্টা করে
অনুলিপি অবস্থানে অন্যান্য ভেরিয়েবল, সাধারণত পরিবর্তনশীল নাম যা আরো
ঘনিষ্ঠভাবে মূল ভেরিয়েবল অনুরূপ. এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -O এবং
ঊর্ধ্বতন.

-Free-coalesce-inlined-vars
কপিরিনেম পাস বলুন (দেখুন -ftree-কপিরনাম) ছোট ব্যবহারকারীকে একত্রিত করার চেষ্টা করতে-
সংজ্ঞায়িত ভেরিয়েবলগুলিও, কিন্তু শুধুমাত্র যদি সেগুলি অন্যান্য ফাংশন থেকে ইনলাইন করা হয়। এটা
এর আরো সীমিত রূপ -Free-coalesce-vars. এই ধরনের ডিবাগ তথ্য ক্ষতি হতে পারে
ইনলাইনড ভেরিয়েবল, কিন্তু এটি ইনলাইন্ড-ইন ফাংশনের ভেরিয়েবলগুলিকে আলাদা রাখবে
একে অপরকে, যেমন তারা a তে প্রত্যাশিত মান ধারণ করার সম্ভাবনা বেশি
ডিবাগিং সেশন। এটি 4.7-এর থেকে পুরনো GCC সংস্করণে ডিফল্ট ছিল।

-Free-coalesce-vars
কপিরিনেম পাস বলুন (দেখুন -ftree-কপিরনাম) ছোট ব্যবহারকারীকে একত্রিত করার চেষ্টা করতে-
সংজ্ঞায়িত ভেরিয়েবলগুলিও, শুধুমাত্র কম্পাইলার অস্থায়ী পরিবর্তে। এটি গুরুতরভাবে সীমাবদ্ধ হতে পারে
এর সাথে সংকলিত একটি অপ্টিমাইজড প্রোগ্রাম ডিবাগ করার ক্ষমতা -fno-var-ট্র্যাকিং-অ্যাসাইনমেন্ট.
নেতিবাচক আকারে, এই পতাকা ব্যবহারকারী ভেরিয়েবলের SSA সমন্বিতকরণকে বাধা দেয়, সহ
ইনলাইন বেশী এই বিকল্পটি ডিফল্টরূপে সক্রিয় করা হয়।

-free-ter
SSA->স্বাভাবিক পর্যায়ের সময় অস্থায়ী অভিব্যক্তি প্রতিস্থাপন করুন। একক
use/single def temporaries তাদের ব্যবহারের অবস্থানে তাদের সংজ্ঞা দিয়ে প্রতিস্থাপিত হয়
অভিব্যক্তি এর ফলে নন-জিম্পল কোড পাওয়া যায়, কিন্তু প্রসারকদের আরও অনেক কিছু দেয়
জটিল গাছগুলি যাতে ভাল RTL জেনারেশনের জন্য কাজ করে। এই দ্বারা সক্রিয় করা হয়
ডিফল্ট এ -O এবং উচ্চতর।

-এফটি-এসএলএসআর
গাছের উপর সোজা লাইন শক্তি হ্রাস সঞ্চালন. এই সম্পর্কিত স্বীকৃতি
রাশিগুলি গুণের সাথে জড়িত এবং কম ব্যয়বহুল গণনা দ্বারা প্রতিস্থাপন করে
কখন সম্ভব. এটি ডিফল্টরূপে সক্রিয় করা হয়েছে -O এবং উচ্চতর।

-ফ্রি-ভেক্টরাইজ
গাছে লুপ ভেক্টরাইজেশন সম্পাদন করুন। এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -ও3.

-এফটি-এসএলপি-ভেক্টরাইজ
গাছে বেসিক ব্লক ভেক্টরাইজেশন করুন। এই পতাকাটি ডিফল্টরূপে সক্রিয় করা হয়েছে -ও3 এবং
কখন -ফ্রি-ভেক্টরাইজ সক্রিয় করা হয়.

-fvect-কস্ট-মডেল=মডেল
ভেক্টরাইজেশনের জন্য ব্যবহৃত খরচ মডেল পরিবর্তন করুন। দ্য মডেল যুক্তি একটি হতে হবে
"সীমাহীন", "গতিশীল" বা "সস্তা"। "সীমাহীন" মডেলের সাথে ভেক্টরাইজড কোড-
"গতিশীল" মডেলের সাথে একটি রানটাইম চেক করার সময় পথটিকে লাভজনক বলে ধরে নেওয়া হয়
ভেক্টরাইজড কোড-পাথটি শুধুমাত্র পুনরাবৃত্তির সংখ্যার জন্য সক্ষম করতে এটিকে রক্ষা করুন যা সম্ভবত হবে
মূল স্কেলার লুপ চালানোর চেয়ে দ্রুত কার্যকর করুন। "সস্তা" মডেল হবে
লুপগুলির ভেক্টরাইজেশন অক্ষম করুন যেখানে এটি করা যেমন খরচ নিষিদ্ধ হবে
ডেটা নির্ভরতা বা প্রান্তিককরণের জন্য প্রয়োজনীয় রানটাইম চেক করার কারণে কিন্তু অন্যথায় সমান
"গতিশীল" মডেলে। ডিফল্ট খরচ মডেল অন্যান্য অপ্টিমাইজেশান ফ্ল্যাগের উপর নির্ভর করে
এবং হয় "গতিশীল" বা "সস্তা"।

-এফটি-ভিআরপি
গাছে ভ্যালু রেঞ্জ প্রচার করুন। এটি ধ্রুবক প্রচারের অনুরূপ
পাস, কিন্তু মানের পরিবর্তে, মানের পরিসীমা প্রচার করা হয়। এই অনুমতি দেয়
অপ্টিমাইজাররা অপ্রয়োজনীয় রেঞ্জ চেক যেমন অ্যারে বাউন্ড চেক এবং নাল পয়েন্টার অপসারণ করে
চেক এটি ডিফল্টরূপে সক্রিয় করা হয়েছে -ও2 এবং উচ্চতর নাল পয়েন্টার চেক নির্মূল
শুধুমাত্র যদি করা হয় -ফডিলিট-নাল-পয়েন্টার-চেকস সক্রিয় করা হয়.

-ফট্রেসার
সুপারব্লকের আকার বড় করতে লেজের অনুলিপি সম্পাদন করুন। এই রূপান্তর সহজতর
ফাংশনের নিয়ন্ত্রণ প্রবাহ অন্যান্য অপ্টিমাইজেশানগুলিকে আরও ভাল কাজ করার অনুমতি দেয়।

-ফানরোল-লুপস
আনরোল লুপ যার পুনরাবৃত্তির সংখ্যা কম্পাইলের সময় বা উপর নির্ধারণ করা যেতে পারে
লুপে প্রবেশ। -ফানরোল-লুপস বোঝা -frerun-cse-আফটার-লুপ. এই বিকল্পটি তৈরি করে
কোড বড়, এবং এটি দ্রুত চালানো হতে পারে বা নাও পারে।

ফানরোল-অল-লুপস
সমস্ত লুপ আনরোল করুন, এমনকি লুপটি কখন তাদের পুনরাবৃত্তির সংখ্যা অনিশ্চিত হয়
প্রবেশ এটি সাধারণত প্রোগ্রামগুলিকে আরও ধীরে ধীরে চালায়। ফানরোল-অল-লুপস বোঝায়
হিসাবে একই অপশন -ফানরোল-লুপস,

-fsplit-ivs-ইন-আনরোলার
এর পরবর্তী পুনরাবৃত্তিতে ইন্ডাকশন ভেরিয়েবলের মানের এক্সপ্রেশন সক্ষম করে
প্রথম পুনরাবৃত্তিতে মান ব্যবহার করে আনরোলড লুপ। এটি দীর্ঘ নির্ভরতা ভেঙে দেয়
চেইন, এইভাবে সময়সূচী পাসের দক্ষতা উন্নত করে।

সংমিশ্রণ -ফওয়েব এবং CSE প্রায়ই একই প্রভাব পেতে যথেষ্ট।
যাইহোক, এটি এমন ক্ষেত্রে নির্ভরযোগ্য নয় যেখানে লুপ বডি a এর চেয়ে বেশি জটিল
একক মৌলিক ব্লক। এটি কিছু আর্কিটেকচারের কারণেও কাজ করে না
CSE পাসে সীমাবদ্ধতা।

এই অপ্টিমাইজেশন ডিফল্টরূপে সক্রিয় করা হয়.

পরিবর্তনশীল-সম্প্রসারণ-ইন-আনরোলার
এই বিকল্পের সাহায্যে, কম্পাইলার কিছু স্থানীয় ভেরিয়েবলের একাধিক কপি তৈরি করে যখন
একটি লুপ আনরোল করা, যার ফলে উচ্চতর কোড হতে পারে।

-আংশিক-ইনলাইনিং
ফাংশনের ইনলাইন অংশ। এই বিকল্পটি শুধুমাত্র যখন ইনলাইন করা হয় তখনই কোনো প্রভাব ফেলে
দ্বারা চালু -ফিনলাইন-ফাংশন or -ফিনলাইন-ছোট-ফাংশন অপশন।

স্তরে সক্রিয় -ও2.

-ফপ্রেডিকটিভ-কমনিং
ভবিষ্যদ্বাণীমূলক কমনিং অপ্টিমাইজেশান সম্পাদন করুন, অর্থাৎ, গণনা পুনঃব্যবহার (বিশেষত
মেমরি লোড এবং স্টোর) লুপগুলির পূর্ববর্তী পুনরাবৃত্তিতে সঞ্চালিত হয়।

এই বিকল্পটি স্তরে সক্রিয় করা হয়েছে -ও3.

-fprefetch-লুপ-অ্যারে
টার্গেট মেশিন দ্বারা সমর্থিত হলে, মেমরি প্রিফেচ করার জন্য নির্দেশনা তৈরি করুন
বড় অ্যারে অ্যাক্সেস করে এমন লুপের কর্মক্ষমতা উন্নত করে।

এই বিকল্পটি আরও ভাল বা খারাপ কোড তৈরি করতে পারে; ফলাফলের উপর অত্যন্ত নির্ভরশীল
সোর্স কোডের মধ্যে লুপের গঠন।

স্তরে অক্ষম -ওএস.

-fno-peephole
-fno-peephole2
যেকোনো মেশিন-নির্দিষ্ট পিফোল অপ্টিমাইজেশান অক্ষম করুন। মধ্যে পার্থক্য
-fno-peephole এবং -fno-peephole2 তারা কম্পাইলার কিভাবে প্রয়োগ করা হয়; কিছু
লক্ষ্য একটি ব্যবহার করে, কেউ অন্যটি ব্যবহার করে, কয়েকটি উভয়ই ব্যবহার করে।

-fpephole ডিফল্টরূপে সক্রিয় করা হয়। -fpephole2 স্তরে সক্রিয় -ও2, -ও3, -ওএস.

-fno-অনুমান-শাখা-সম্ভাব্যতা
হিউরিস্টিকস ব্যবহার করে শাখার সম্ভাব্যতা অনুমান করবেন না।

GCC শাখার সম্ভাব্যতা অনুমান করতে হিউরিস্টিক ব্যবহার করে যদি সেগুলি দ্বারা সরবরাহ করা না হয়
প্রোফাইলিং প্রতিক্রিয়া (-এফপ্রোফাইল-আর্কস) এই হিউরিস্টিকগুলি নিয়ন্ত্রণ প্রবাহের উপর ভিত্তি করে
চিত্রলেখ. যদি কিছু শাখা সম্ভাব্যতা দ্বারা নির্দিষ্ট করা হয় __বিল্টিন_প্রত্যাশিত, এরপর
হিউরিস্টিকগুলি বাকি নিয়ন্ত্রণ প্রবাহের জন্য শাখা সম্ভাব্যতা অনুমান করতে ব্যবহৃত হয়
গ্রাফ, গ্রহণ __বিল্টিন_প্রত্যাশিত অ্যাকাউন্টে তথ্য। মধ্যে মিথস্ক্রিয়া
হিউরিস্টিকস এবং __বিল্টিন_প্রত্যাশিত জটিল হতে পারে, এবং কিছু ক্ষেত্রে, এটি দরকারী হতে পারে
heuristics নিষ্ক্রিয় যাতে প্রভাব __বিল্টিন_প্রত্যাশিত সহজ
বোঝা.

ডিফল্ট হয় -fguess-শাখা-সম্ভাব্যতা স্তরে -O, -ও2, -ও3, -ওএস.

-ফ্রিঅর্ডার-ব্লক
নেওয়ার সংখ্যা কমাতে কম্পাইল করা ফাংশনে মৌলিক ব্লকগুলিকে পুনরায় সাজান
শাখা এবং কোড স্থানীয় উন্নতি.

স্তরে সক্রিয় -ও2, -ও3.

-ফ্রিঅর্ডার-ব্লক-এবং-পার্টিশন
সংকলিত ফাংশনে মৌলিক ব্লকগুলিকে পুনরায় সাজানোর পাশাপাশি কমানোর জন্য
নেওয়া শাখার সংখ্যা, গরম এবং ঠান্ডা মৌলিক ব্লকগুলিকে পৃথক বিভাগে ভাগ করে
পেজিং এবং ক্যাশে লোকেলিটি কর্মক্ষমতা উন্নত করতে সমাবেশ এবং .o ফাইলগুলির।

ব্যতিক্রম পরিচালনার উপস্থিতিতে এই অপ্টিমাইজেশন স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়,
linkonce বিভাগগুলির জন্য, একটি ব্যবহারকারী-সংজ্ঞায়িত বিভাগ বৈশিষ্ট্য সহ ফাংশনগুলির জন্য এবং যেকোনোটিতে
স্থাপত্য যা নামযুক্ত বিভাগ সমর্থন করে না।

-ফ্রিঅর্ডার-ফাংশন
কোড লোকেলিটি উন্নত করার জন্য অবজেক্ট ফাইলে ফাংশন পুনরায় সাজান। এই
বিশেষ উপধারা ".text.hot" ব্যবহার করে প্রয়োগ করা হয় যা প্রায়শই কার্যকর করা হয়
ফাংশন এবং ".text.unlikely" অসম্ভাব্য কার্যকরী ফাংশনের জন্য। পুনর্বিন্যাস দ্বারা সম্পন্ন করা হয়
লিঙ্কার তাই অবজেক্ট ফাইল ফরম্যাট অবশ্যই নামযুক্ত বিভাগ সমর্থন করবে এবং লিঙ্কার অবশ্যই স্থাপন করবে
তাদের একটি যুক্তিসঙ্গত উপায়ে.

এছাড়াও এই বিকল্পটিকে কার্যকর করার জন্য প্রোফাইল ফিডব্যাক অবশ্যই উপলব্ধ থাকতে হবে। দেখা
-এফপ্রোফাইল-আর্কস বিস্তারিত জানার জন্য.

স্তরে সক্রিয় -ও2, -ও3, -ওএস.

-ট্রিক্ট-এলিয়াসিং
কম্পাইলারকে ভাষার জন্য প্রযোজ্য কঠোরতম অ্যালিয়াসিং নিয়মগুলি অনুমান করার অনুমতি দিন
সংকলিত হচ্ছে C (এবং C++) এর জন্য, এটি প্রকারের উপর ভিত্তি করে অপ্টিমাইজেশন সক্রিয় করে
অভিব্যক্তি বিশেষ করে, এক ধরণের একটি বস্তুকে কখনই তে বাস করে না বলে ধরে নেওয়া হয়
একটি ভিন্ন ধরনের বস্তু হিসাবে একই ঠিকানা, যদি না প্রকারগুলি প্রায় একই হয়।
উদাহরণস্বরূপ, একটি "আনসাইন করা int" একটি "int" এর নাম দিতে পারে, কিন্তু একটি "void*" বা একটি "ডাবল" নয়। ক
ক্যারেক্টার টাইপ অন্য কোন টাইপের নাম হতে পারে।

এই মত কোড বিশেষ মনোযোগ দিন:

ইউনিয়ন a_union {
int i;
ডবল ডি;
};

int f () {
ইউনিয়ন a_union t;
td = 3.0;
ফেরত ti;
}

সবচেয়ে সাম্প্রতিক একটি থেকে একটি ভিন্ন ইউনিয়ন সদস্য থেকে পড়ার অভ্যাস
লিখিত ("টাইপ-punning" বলা হয়) সাধারণ. যদিও সাথে -ট্রিক্ট-এলিয়াসিং, টাইপ-
punning অনুমোদিত, যদি মেমরিটি ইউনিয়ন প্রকারের মাধ্যমে অ্যাক্সেস করা হয়। তাহলে
উপরের কোড প্রত্যাশিত হিসাবে কাজ করে। যাইহোক, এই কোড নাও হতে পারে:

int f () {
ইউনিয়ন a_union t;
int*ip;
td = 3.0;
ip = &t.i;
রিটার্ন *আইপি;
}

একইভাবে, ঠিকানা গ্রহণ, ফলাফল পয়েন্টার ঢালাই দ্বারা অ্যাক্সেস এবং
ফলাফলকে ডিরেফারেন্স করার ক্ষেত্রে অনির্ধারিত আচরণ রয়েছে, এমনকি যদি কাস্ট একটি ইউনিয়ন প্রকার ব্যবহার করে,
উদাহরণ:

int f () {
ডবল d = 3.0;
ফেরত ((ইউনিয়ন a_union *) &d)->i;
}

সার্জারির -ট্রিক্ট-এলিয়াসিং বিকল্প স্তরে সক্রিয় করা হয় -ও2, -ও3, -ওএস.

-fstrict-ওভারফ্লো
কম্পাইলারকে ভাষার উপর নির্ভর করে কঠোর স্বাক্ষরিত ওভারফ্লো নিয়ম অনুমান করার অনুমতি দিন
সংকলিত হচ্ছে C (এবং C++) এর জন্য এর মানে হল পাটিগণিত করার সময় ওভারফ্লো
স্বাক্ষরিত সংখ্যাগুলি অনির্ধারিত, যার মানে কম্পাইলার অনুমান করতে পারে যে এটি নেই
ঘটবে এটি বিভিন্ন অপ্টিমাইজেশনের অনুমতি দেয়। উদাহরণস্বরূপ, কম্পাইলার অনুমান করে যে
"i + 10 > i" এর মত একটি অভিব্যক্তি সর্বদা স্বাক্ষরিত "i" এর জন্য সত্য। এই অনুমান হল
শুধুমাত্র বৈধ যদি স্বাক্ষরিত ওভারফ্লো অনির্ধারিত হয়, কারণ "i + 10" হলে অভিব্যক্তিটি মিথ্যা
দুই পরিপূরক পাটিগণিত ব্যবহার করার সময় ওভারফ্লো হয়। যখন এই বিকল্প কার্যকর হয় যে কোনো
স্বাক্ষরিত সংখ্যা ওভারফ্লোতে একটি অপারেশন লিখতে হবে কিনা তা নির্ধারণ করার চেষ্টা করুন
সাবধানে আসলে ওভারফ্লো জড়িত না.

এই বিকল্পটি কম্পাইলারকে কঠোর পয়েন্টার শব্দার্থক অনুমান করার অনুমতি দেয়: দেওয়া
একটি বস্তুর পয়েন্টার, যদি সেই পয়েন্টারে একটি অফসেট যোগ করলে একটি পয়েন্টার তৈরি হয় না
একই বস্তুতে, সংযোজন অনির্ধারিত। এটি কম্পাইলারকে শেষ করার অনুমতি দেয়
যে "p + u > p" সর্বদা একটি পয়েন্টার "p" এবং স্বাক্ষরবিহীন পূর্ণসংখ্যা "u" এর জন্য সত্য। এই
অনুমান শুধুমাত্র বৈধ কারণ পয়েন্টার wraparound অনির্ধারিত, অভিব্যক্তি হিসাবে
মিথ্যা যদি দুই পরিপূরক গাণিতিক ব্যবহার করে "p + u" ওভারফ্লো হয়।

আরও দেখুন -fwrapv বিকল্প ব্যবহার -fwrapv মানে পূর্ণসংখ্যা স্বাক্ষরিত ওভারফ্লো
সম্পূর্ণরূপে সংজ্ঞায়িত: এটা wraps. কখন -fwrapv ব্যবহৃত হয়, মধ্যে কোন পার্থক্য নেই
-fstrict-ওভারফ্লো এবং -fno-কঠোর-ওভারফ্লো পূর্ণসংখ্যার জন্য সঙ্গে -fwrapv কিছু বিশেষ ধরনের
ওভারফ্লো অনুমোদিত হয়. উদাহরণস্বরূপ, যদি কম্পাইলারটি করার সময় একটি ওভারফ্লো পায়
ধ্রুবকের উপর পাটিগণিত, ওভারফ্লোড মান এখনও ব্যবহার করা যেতে পারে -fwrapv, কিন্তু না
অন্যথায়।

সার্জারির -fstrict-ওভারফ্লো বিকল্প স্তরে সক্রিয় করা হয় -ও2, -ও3, -ওএস.

-ফ্যালাইন-ফাংশন
-ফ্যালাইন-ফাংশন=n
ফাংশনের শুরুকে সারিবদ্ধ করুন পরবর্তী পাওয়ার-অফ-টু-এর চেয়ে বেশি n, পর্যন্ত এড়িয়ে যাচ্ছে n
বাইট এই ক্ষেত্রে, -ফ্যালাইন-ফাংশন=32 পরবর্তী 32-বাইটে ফাংশন সারিবদ্ধ করে
সীমানা, কিন্তু -ফ্যালাইন-ফাংশন=24 পরবর্তী 32-বাইটের সীমানায় সারিবদ্ধ হয় শুধুমাত্র যদি এটি হয়
23 বাইট বা তার কম বাদ দিয়ে করা যেতে পারে।

-fno-সারিবদ্ধ-ফাংশন এবং -ফ্যালাইন-ফাংশন=1 সমতুল্য এবং মানে যে ফাংশন
সারিবদ্ধ করা হয় না

কিছু সমাবেশকারী শুধুমাত্র এই পতাকা সমর্থন করে যখন n দুই একটি শক্তি; যে ক্ষেত্রে, এটা হয়
বৃত্তাকার

If n নির্দিষ্ট করা নেই বা শূন্য, একটি মেশিন-নির্ভর ডিফল্ট ব্যবহার করুন।

স্তরে সক্রিয় -ও2, -ও3.

-ফ্যালাইন-লেবেল
-ফ্লাইন-লেবেলস =n
সমস্ত শাখা লক্ষ্যগুলিকে একটি পাওয়ার-অফ-টু বাউন্ডারিতে সারিবদ্ধ করুন, পর্যন্ত এড়িয়ে যান n বাইট মত
-ফ্যালাইন-ফাংশন. এই বিকল্পটি সহজেই কোডকে ধীর করে দিতে পারে, কারণ এটি অবশ্যই সন্নিবেশ করাতে হবে
কোডের স্বাভাবিক প্রবাহে যখন শাখা লক্ষ্যে পৌঁছানো হয় তার জন্য ডামি অপারেশন।

-fno-সারিবদ্ধ-লেবেল এবং -ফ্যালাইন-লেবেল=1 সমতুল্য এবং মানে লেবেল নয়
সারিবদ্ধ

If ফ্যালাইন-লুপস or -ফালাইন-জাম্প প্রযোজ্য এবং এই মানের থেকে বড়, তাহলে
তাদের মান পরিবর্তে ব্যবহার করা হয়.

If n নির্দিষ্ট করা নেই বা শূন্য, একটি মেশিন-নির্ভর ডিফল্ট ব্যবহার করুন যা খুব সম্ভবত
হতে 1, কোন প্রান্তিককরণ মানে.

স্তরে সক্রিয় -ও2, -ও3.

ফ্যালাইন-লুপস
-ফ্লাইন-লুপস =n
একটি পাওয়ার-অফ-টু বাউন্ডারিতে লুপগুলি সারিবদ্ধ করুন, পর্যন্ত এড়িয়ে যান৷ n বাইট মত -ফ্যালাইন-ফাংশন.
যদি লুপগুলি বহুবার কার্যকর করা হয়, তবে এটি ডামির যেকোন মৃত্যুদণ্ডের জন্য তৈরি করে
অপারেশন।

-ফনো-এলিগন-লুপস এবং -ফ্লাইন-লুপস = 1 সমতুল্য এবং মানে যে loops হয় না
সারিবদ্ধ

If n নির্দিষ্ট করা নেই বা শূন্য, একটি মেশিন-নির্ভর ডিফল্ট ব্যবহার করুন।

স্তরে সক্রিয় -ও2, -ও3.

-ফালাইন-জাম্প
-ফালাইন-জাম্প=n
শাখা লক্ষ্যগুলিকে একটি পাওয়ার-অফ-টু বাউন্ডারিতে সারিবদ্ধ করুন, শাখা লক্ষ্যগুলির জন্য যেখানে লক্ষ্যগুলি
শুধুমাত্র লাফ দিয়ে, এড়িয়ে যাওয়া যায় n বাইট মত -ফ্যালাইন-ফাংশন. মধ্যে
এই ক্ষেত্রে, কোন ডামি অপারেশন চালানো হবে না.

-fno-সারিবদ্ধ-জাম্প এবং -ফালাইন-জাম্প = 1 সমতুল্য এবং মানে যে loops হয় না
সারিবদ্ধ

If n নির্দিষ্ট করা নেই বা শূন্য, একটি মেশিন-নির্ভর ডিফল্ট ব্যবহার করুন।

স্তরে সক্রিয় -ও2, -ও3.

-এক সময়ে মজা করা
এই বিকল্পটি সামঞ্জস্যের কারণে বাকি আছে। -এক সময়ে মজা করা কোন প্রভাব নেই, যখন
-fno-ইউনিট-এ-টাইমে বোঝা -fno-টপলেভেল-পুনঃক্রম এবং -এফএনও-সেকশন-অ্যাঙ্কর.

ডিফল্টরূপে সক্ষম করা হয়েছে।

-fno-টপলেভেল-পুনঃক্রম
শীর্ষ-স্তরের ফাংশন, ভেরিয়েবল, এবং "asm" বিবৃতি পুনর্বিন্যাস করবেন না। তাদের মধ্যে আউটপুট
একই ক্রম যে তারা ইনপুট ফাইলে প্রদর্শিত হবে। যখন এই বিকল্পটি ব্যবহার করা হয়,
রেফারেন্সহীন স্ট্যাটিক ভেরিয়েবল মুছে ফেলা হয় না। এই বিকল্প সমর্থন করার উদ্দেশ্যে করা হয়
বিদ্যমান কোড যা একটি নির্দিষ্ট অর্ডারের উপর নির্ভর করে। নতুন কোডের জন্য, এটি ব্যবহার করা ভাল
বৈশিষ্ট্যাবলী।

স্তরে সক্রিয় -ও0. যখন স্পষ্টভাবে অক্ষম করা হয়, এটিও বোঝায় -এফএনও-সেকশন-অ্যাঙ্কর,
যা অন্যথায় সক্রিয় করা হয় -ও0 কিছু লক্ষ্যে।

-ফওয়েব
রেজিস্টার বরাদ্দের উদ্দেশ্যে সাধারণত ব্যবহৃত ওয়েবগুলি তৈরি করে এবং প্রতিটি ওয়েবকে বরাদ্দ করে৷
পৃথক ছদ্ম নিবন্ধন. এটি রেজিস্টার বরাদ্দ পাস চালু করার অনুমতি দেয়
সিউডোস সরাসরি, কিন্তু আরও বেশ কিছু অপ্টিমাইজেশান পাসকে শক্তিশালী করে, যেমন CSE,
লুপ অপ্টিমাইজার এবং তুচ্ছ ডেড কোড রিমুভার। এটি অবশ্য ডিবাগিং করতে পারে
অসম্ভব, যেহেতু ভেরিয়েবল আর "হোম রেজিস্টার" এ থাকে না।

এর সাথে ডিফল্টরূপে সক্রিয় -ফানরোল-লুপস.

-পুরো-প্রোগ্রাম
অনুমান করুন যে বর্তমান সংকলন ইউনিটটি কম্পাইল করা পুরো প্রোগ্রামটিকে উপস্থাপন করে।
"প্রধান" বাদে সমস্ত পাবলিক ফাংশন এবং ভেরিয়েবল এবং এর দ্বারা মার্জ করা
অ্যাট্রিবিউট "externally_visible" স্ট্যাটিক ফাংশনে পরিণত হয় এবং কার্যকরভাবে অপ্টিমাইজ করা হয়
আন্তঃপ্রক্রিয়াগত অপ্টিমাইজার দ্বারা আরো আক্রমনাত্মক।

এই বিকল্পটি "-flto" এর সাথে একত্রে ব্যবহার করা উচিত নয়। পরিবর্তে একটি উপর নির্ভরশীল
লিঙ্কার প্লাগইন নিরাপদ এবং আরো সুনির্দিষ্ট তথ্য প্রদান করা উচিত.

-ফ্লো[=n]
এই বিকল্পটি স্ট্যান্ডার্ড লিঙ্ক-টাইম অপ্টিমাইজার চালায়। সোর্স কোড দিয়ে আমন্ত্রণ জানানো হলে, এটি
GIMPLE (GCC-এর অভ্যন্তরীণ উপস্থাপনাগুলির মধ্যে একটি) তৈরি করে এবং এটিকে বিশেষ ELF-তে লেখে
অবজেক্ট ফাইলের বিভাগগুলি। অবজেক্ট ফাইল একসাথে লিঙ্ক করা হয়, সব
ফাংশন বডিগুলি এই ELF বিভাগগুলি থেকে পড়া হয় এবং তাৎক্ষণিকভাবে করা হয় যেন সেগুলি ছিল৷
একই অনুবাদ ইউনিটের অংশ।

লিঙ্ক-টাইম অপ্টিমাইজার ব্যবহার করতে, -ফ্লো কম্পাইল সময় এবং সময় নির্দিষ্ট করা প্রয়োজন
চূড়ান্ত লিঙ্ক। উদাহরণ স্বরূপ:

gcc -c -o2 -flto foo.c
জিসিসি -সি -ও 2 -ফ্ল্টো বার.সি
জিসিসি -ও মাইপ্রোগ -ফ্ল্টো -o2 foo.o বার.ও

GCC-তে প্রথম দুটি আমন্ত্রণ GIMPLE-এর একটি বাইটকোড উপস্থাপনাকে বিশেষে সংরক্ষণ করে
ভিতরে ELF বিভাগ foo.o এবং বার.ও. চূড়ান্ত আহ্বান জিম্পল বাইটকোড পড়ে
থেকে foo.o এবং বার.ও, দুটি ফাইলকে একটি একক অভ্যন্তরীণ ছবিতে একত্রিত করে এবং কম্পাইল করে
যথারীতি ফলাফল। যেহেতু উভয় foo.o এবং বার.ও একটি একক ইমেজ মধ্যে মার্জ করা হয়, এই
GCC-তে সমস্ত আন্তঃপ্রক্রিয়াগত বিশ্লেষণ এবং অপ্টিমাইজেশানগুলিকে জুড়ে কাজ করে
দুটি ফাইল যেন একটি একক। এর মানে হল, উদাহরণস্বরূপ, ইনলাইনার হল
ইনলাইন ফাংশন করতে সক্ষম বার.ও মধ্যে ফাংশন মধ্যে foo.o এবং বিপরীতভাবে.

লিঙ্ক-টাইম অপ্টিমাইজেশান সক্ষম করার আরেকটি (সহজ) উপায় হল:

জিসিসি -ও মাইপ্রোগ -ফ্ল্টো -o2 foo.c Bar.c

উপরের জন্য বাইটকোড তৈরি করে foo.c এবং বার.সি, তাদের একত্রে একত্রিত করে
GIMPLE উপস্থাপনা এবং উত্পাদন স্বাভাবিক হিসাবে তাদের অপ্টিমাইজ করে মাইপ্রোগ.

শুধুমাত্র গুরুত্বপূর্ণ জিনিসটি মনে রাখতে হবে যে লিঙ্ক-টাইম অপ্টিমাইজেশন সক্ষম করতে
-ফ্লো পতাকা কম্পাইল এবং লিঙ্ক কমান্ড উভয় পাস করা প্রয়োজন.

সম্পূর্ণ প্রোগ্রাম অপ্টিমাইজেশান কার্যকর করার জন্য, এটি নির্দিষ্ট সম্পূর্ণ করা প্রয়োজন
প্রোগ্রাম অনুমান। কম্পাইলারকে জানতে হবে ফাংশন এবং ভেরিয়েবল কি হতে পারে
লিঙ্ক-টাইম অপ্টিমাইজ করা ইউনিটের বাইরে লাইব্রেরি এবং রানটাইম দ্বারা অ্যাক্সেস করা হয়েছে। কখন
লিঙ্কার, লিঙ্কার প্লাগইন দ্বারা সমর্থিত (দেখুন -ফিউজ-লিঙ্কার-প্লাগইন) পাস
ব্যবহৃত এবং বাহ্যিকভাবে দৃশ্যমান প্রতীক সম্পর্কে কম্পাইলারের কাছে তথ্য। যখন
লিঙ্কার প্লাগইন উপলব্ধ নয়, -পুরো-প্রোগ্রাম কম্পাইলারকে অনুমতি দিতে ব্যবহার করা উচিত
এই অনুমানগুলি তৈরি করতে, যা আরও আক্রমণাত্মক অপ্টিমাইজেশন সিদ্ধান্তের দিকে নিয়ে যায়।

উল্লেখ্য যে যখন একটি ফাইল কম্পাইল করা হয় -ফ্লো, জেনারেট করা অবজেক্ট ফাইল এর থেকে বড়
একটি নিয়মিত অবজেক্ট ফাইল কারণ এতে GIMPLE বাইটকোড এবং স্বাভাবিক চূড়ান্ত কোড রয়েছে।
এর মানে হল যে LTO তথ্য সহ অবজেক্ট ফাইলগুলিকে সাধারণ অবজেক্ট হিসাবে লিঙ্ক করা যেতে পারে
নথি পত্র; যদি -ফ্লো লিঙ্কারের কাছে পাঠানো হয় না, কোনো আন্তঃপ্রক্রিয়াগত অপ্টিমাইজেশন নেই
প্রয়োগ করা হয়েছে।

অতিরিক্তভাবে, পৃথক ফাইল কম্পাইল করতে ব্যবহৃত অপ্টিমাইজেশান ফ্ল্যাগগুলি নয়
অগত্যা লিঙ্ক সময়ে ব্যবহৃত যারা সম্পর্কিত. এই ক্ষেত্রে,

gcc -c -o0 -flto foo.c
জিসিসি -সি -ও 0 -ফ্ল্টো বার.সি
জিসিসি -ও মাইপ্রোগ -ফ্ল্টো -o3 foo.o বার.ও

এটি অপ্টিমাইজড অ্যাসেম্বলার কোড সহ পৃথক অবজেক্ট ফাইল তৈরি করে, কিন্তু
ফলে বাইনারি মাইপ্রোগ এ অপ্টিমাইজ করা হয় -ও3. যদি, পরিবর্তে, চূড়ান্ত বাইনারি হয়
ছাড়া উত্পন্ন -ফ্লো, তারপর মাইপ্রোগ অপ্টিমাইজ করা হয় না।

সঙ্গে চূড়ান্ত বাইনারি উত্পাদন যখন -ফ্লো, GCC শুধুমাত্র লিঙ্ক-টাইম অপ্টিমাইজেশান প্রয়োগ করে৷
যে ফাইলগুলিতে বাইটকোড রয়েছে। অতএব, আপনি অবজেক্ট ফাইলগুলিকে মিশ্রিত এবং মেলাতে পারেন
এবং GIMPLE বাইটকোড এবং চূড়ান্ত অবজেক্ট কোড সহ লাইব্রেরি। GCC স্বয়ংক্রিয়ভাবে নির্বাচন করে
কোন ফাইলগুলি LTO মোডে অপ্টিমাইজ করতে হবে এবং কোন ফাইলগুলিকে আরও ছাড়াই লিঙ্ক করতে হবে৷
প্রক্রিয়াকরণ।

বাইটকোড তৈরি করার সময় জিসিসি দ্বারা সংরক্ষিত কিছু কোড জেনারেশন পতাকা রয়েছে, যেমন
তারা চূড়ান্ত লিঙ্ক পর্যায়ে ব্যবহার করা প্রয়োজন. বর্তমানে, নিম্নলিখিত বিকল্প
GIMPLE বাইটকোড ফাইলগুলিতে সংরক্ষিত হয়: -fpic, - সাধারণ এবং সমস্ত -m লক্ষ্য পতাকা

লিঙ্কের সময়, এই বিকল্পগুলি পড়া হয় এবং পুনরায় প্রয়োগ করা হয়। উল্লেখ্য যে বর্তমান
বাস্তবায়ন এই বিকল্পগুলির জন্য পরস্পরবিরোধী মান সনাক্ত করার কোন চেষ্টা করে না। যদি
বিভিন্ন ফাইলের পরস্পরবিরোধী বিকল্প মান রয়েছে (যেমন, একটি ফাইলের সাথে কম্পাইল করা হয়েছে -fpic
এবং অন্যটি নয়), কম্পাইলার কেবল বাইটকোড থেকে পড়া শেষ মানটি ব্যবহার করে
নথি পত্র. এটি সুপারিশ করা হয়, তারপর, আপনি অংশগ্রহণকারী সমস্ত ফাইল কম্পাইল করুন
একই বিকল্পগুলির সাথে একই লিঙ্ক।

LTO যদি C লিঙ্কেজ সহ বস্তুর মুখোমুখি হয় তবে আলাদাভাবে বেমানান প্রকারের সাথে ঘোষণা করা হয়
অনুবাদ ইউনিট একসাথে সংযুক্ত করা হবে (ISO C99 অনুযায়ী অনির্ধারিত আচরণ
6.2.7), একটি অ-মারাত্মক ডায়াগনস্টিক জারি করা যেতে পারে। চালানোর সময় আচরণ এখনও অনির্ধারিত
সময়।

LTO-এর আরেকটি বৈশিষ্ট্য হল আন্তঃপ্রক্রিয়াগত অপ্টিমাইজেশান প্রয়োগ করা সম্ভব
বিভিন্ন ভাষায় লেখা ফাইলগুলিতে। এর জন্য ভাষার সামনে সমর্থন প্রয়োজন
শেষ. বর্তমানে, C, C++ এবং Fortran সামনের প্রান্তগুলি GIMPLE নির্গত করতে সক্ষম
bytecodes, তাই এই মত কিছু কাজ করা উচিত:

gcc -c -flto foo.c
জি ++ -সি -ফ্ল্টো বার.সিসি
gfortran -c -flto baz.f90
জি ++ -ও মাইপ্রোগ -ফ্লো -o3 foo.o বার.ও বাজ.ও -lgfortran

লক্ষ্য করুন যে চূড়ান্ত লিঙ্কটি দিয়ে করা হয়েছে g ++ C++ রানটাইম লাইব্রেরি পেতে এবং
-এলজিফোর্ট্রান Fortran রানটাইম লাইব্রেরি পেতে যোগ করা হয়। সাধারণভাবে, মেশানোর সময়
LTO মোডে ভাষা, মিশ্রিত করার সময় আপনার একই লিঙ্ক কমান্ড বিকল্পগুলি ব্যবহার করা উচিত
একটি নিয়মিত (নন-এলটিও) সংকলনে ভাষা; আপনি যোগ করতে হবে -ফ্লো সমস্ত
কম্পাইল এবং লিঙ্ক কমান্ড।

যদি জিম্পল বাইটকোড সম্বলিত অবজেক্ট ফাইলগুলি একটি লাইব্রেরি সংরক্ষণাগারে সংরক্ষণ করা হয়, বলুন
libfoo.a, যদি আপনি একটি ব্যবহার করেন তবে একটি LTO লিঙ্কে সেগুলি বের করা এবং ব্যবহার করা সম্ভব
প্লাগইন সমর্থন সহ লিঙ্কার। এই বৈশিষ্ট্য সক্রিয় করতে, পতাকা ব্যবহার করুন -ফিউজ-লিঙ্কার-প্লাগইন
লিঙ্কের সময়:

gcc -o myprog -O2 -flto -fuse-linker-plugin ao bo -lfoo

লিঙ্কার প্লাগইন সক্রিয় করার সাথে সাথে, লিঙ্কার প্রয়োজনীয় GIMPLE ফাইলগুলি বের করে
libfoo.a এবং তাদের সমষ্টির অংশ করার জন্য চলমান GCC-তে প্রেরণ করে
GIMPLE ইমেজ অপ্টিমাইজ করা.

আপনি যদি প্লাগইন সমর্থন সহ লিঙ্কার ব্যবহার না করেন এবং/অথবা লিঙ্কার সক্ষম না করেন
প্লাগইন, তারপর ভিতরে বস্তু libfoo.a নিষ্কাশিত এবং স্বাভাবিক হিসাবে লিঙ্ক করা হয়, কিন্তু তারা
LTO অপ্টিমাইজেশান প্রক্রিয়ায় অংশগ্রহণ করবেন না।

লিঙ্ক-টাইম অপ্টিমাইজেশানগুলি পরিচালনা করার জন্য পুরো প্রোগ্রামের উপস্থিতির প্রয়োজন হয় না।
প্রোগ্রাম রপ্তানি করার জন্য কোন প্রতীক প্রয়োজন না হলে, এটি একত্রিত করা সম্ভব
-ফ্লো এবং -পুরো-প্রোগ্রাম আন্তঃপ্রক্রিয়াগত অপ্টিমাইজারদের আরও বেশি ব্যবহার করার অনুমতি দিতে
আক্রমনাত্মক অনুমান যা উন্নত অপ্টিমাইজেশন সুযোগের দিকে নিয়ে যেতে পারে। ব্যাবহার
-পুরো-প্রোগ্রাম লিঙ্কার প্লাগইন সক্রিয় থাকলে প্রয়োজন হয় না (দেখুন -ফিউজ-লিঙ্কার-প্লাগইন).

LTO এর বর্তমান বাস্তবায়ন বাইটকোড তৈরি করার কোন চেষ্টা করে না
বিভিন্ন ধরনের হোস্টের মধ্যে বহনযোগ্য। বাইটকোড ফাইল সংস্করণ এবং সেখানে আছে
একটি কঠোর সংস্করণ চেক, তাই GCC এর একটি সংস্করণে তৈরি করা বাইটকোড ফাইলগুলি হবে না
GCC এর পুরানো/নতুন সংস্করণের সাথে কাজ করুন।

লিঙ্ক-টাইম অপ্টিমাইজেশান ডিবাগিং তথ্য তৈরির সাথে ভাল কাজ করে না।
মিশ্রন -ফ্লো সঙ্গে -g বর্তমানে পরীক্ষামূলক এবং ভুল উত্পাদন প্রত্যাশিত
ফলাফল.

যদি আপনি ঐচ্ছিক উল্লেখ করেন n, অপ্টিমাইজেশান এবং কোড জেনারেশন লিঙ্কের সময়ে করা হয়
সমান্তরাল ব্যবহার করে মৃত্যুদন্ড কার্যকর করা হয় n একটি ইনস্টল ব্যবহার করে সমান্তরাল কাজ করা প্রোগ্রাম.
পরিবেশ পরিবর্তনশীল সুইচ ব্যবহৃত প্রোগ্রাম ওভাররাইড করতে ব্যবহার করা যেতে পারে। ডিফল্ট
মান n 1 হয়

আপনিও নির্দিষ্ট করতে পারেন -flto=জব সার্ভার নির্ধারণ করতে GNU make এর জব সার্ভার মোড ব্যবহার করুন
সমান্তরাল কাজের সংখ্যা। যখন মেকফাইল কলিং জিসিসি ইতিমধ্যেই থাকে তখন এটি কার্যকর
সমান্তরালভাবে কার্যকর করা। আপনি একটি prepend আবশ্যক + পিতামাতার কমান্ড রেসিপি থেকে
এই কাজ করার জন্য Makefile. এই বিকল্পটি সম্ভবত শুধুমাত্র যদি কাজ করে সুইচ GNU তৈরি করা হয়।

এই অপশনটি পূর্বনির্ধারণ অনুসারে নিষ্ক্রিয়।

-ফ্লো-পার্টিশন=পানা
লিঙ্ক-টাইম অপ্টিমাইজার দ্বারা ব্যবহৃত পার্টিশনিং অ্যালগরিদম নির্দিষ্ট করুন। মান হল
হয় "1to1" মূল সোর্স ফাইলের মিররিং পার্টিশন নির্দিষ্ট করতে বা
"ভারসাম্য" সমান আকারের খণ্ডে বিভাজন নির্দিষ্ট করতে (যখনই সম্ভব) বা
যেখানে সম্ভব প্রতিটি প্রতীকের জন্য নতুন পার্টিশন তৈরি করতে "max"। "কোনটিই" হিসাবে উল্লেখ করা হচ্ছে
একটি অ্যালগরিদম পার্টিশন এবং স্ট্রিমিং সম্পূর্ণরূপে নিষ্ক্রিয় করে। ডিফল্ট মান হল
"সুষম". যদিও "1to1" বিভিন্ন কোড অর্ডারের জন্য একটি সমাধান হিসাবে ব্যবহার করা যেতে পারে
সমস্যা, "সর্বোচ্চ" পার্টিশন শুধুমাত্র অভ্যন্তরীণ পরীক্ষার জন্য উদ্দেশ্যে করা হয়।

-ফ্লো-কম্প্রেশন-লেভেল=n
এই বিকল্পটি লিখিত মধ্যবর্তী ভাষার জন্য ব্যবহৃত সংকোচনের মাত্রা নির্দিষ্ট করে
LTO অবজেক্ট ফাইলগুলিতে, এবং শুধুমাত্র LTO মোডের সাথে একত্রে অর্থবহ (-ফ্লো).
বৈধ মান হল 0 (কোনও সংকোচন নেই) থেকে 9 (সর্বোচ্চ কম্প্রেশন)। এর বাইরে মান
পরিসীমা 0 বা 9 তে আটকানো হয়। যদি বিকল্পটি দেওয়া না হয়, একটি ডিফল্ট ব্যালেন্সড
কম্প্রেশন সেটিং ব্যবহার করা হয়।

-ফ্লো-রিপোর্ট
লিঙ্ক-টাইম অপ্টিমাইজারের কাজের অভ্যন্তরীণ বিবরণ সহ একটি প্রতিবেদন প্রিন্ট করে। দ্য
এই প্রতিবেদনের বিষয়বস্তু সংস্করণ থেকে সংস্করণে পরিবর্তিত হয়। এটি জিসিসির জন্য উপযোগী হতে বোঝানো হয়েছে
বিকাশকারীরা যখন এলটিও মোডে অবজেক্ট ফাইলগুলি প্রসেস করছে (এর মাধ্যমে -ফ্লো).

ডিফল্ট দ্বারা অক্ষম

-ফিউজ-লিঙ্কার-প্লাগইন
লিঙ্ক-টাইম অপ্টিমাইজেশানের সময় একটি লিঙ্কার প্লাগইন ব্যবহার সক্ষম করে। এই বিকল্পটি নির্ভর করে
লিঙ্কারে প্লাগইন সাপোর্টে, যা সোনায় পাওয়া যায় বা GNU ld 2.21 বা
নতুন

এই বিকল্পটি লাইব্রেরির বাইরে GIMPLE বাইটকোড সহ অবজেক্ট ফাইল নিষ্কাশন সক্ষম করে
সংরক্ষণাগার এটি লিঙ্কে আরও কোড প্রকাশ করে অপ্টিমাইজেশনের গুণমান উন্নত করে-
সময় অপ্টিমাইজার। এই তথ্যটি নির্দিষ্ট করে যে কোন চিহ্নগুলি বাহ্যিকভাবে অ্যাক্সেস করা যেতে পারে
(নন-এলটিও অবজেক্ট দ্বারা বা ডায়নামিক লিঙ্কিংয়ের সময়)। ফলাফল কোড মান উন্নতি চালু
বাইনারি (এবং ভাগ করা লাইব্রেরি যা লুকানো দৃশ্যমানতা ব্যবহার করে) অনুরূপ
"-fhole-program"। দেখা -ফ্লো এই পতাকার প্রভাব এবং কিভাবে তা বর্ণনার জন্য
এটা ব্যবহার করো.

এই বিকল্পটি ডিফল্টরূপে সক্রিয় থাকে যখন GCC-এ LTO সমর্থন সক্রিয় থাকে এবং GCC ছিল৷
একটি লিঙ্কার সমর্থনকারী প্লাগইনগুলির সাথে ব্যবহারের জন্য কনফিগার করা হয়েছে (GNU ld 2.21 বা নতুন বা সোনার)।

-ffat-lto-বস্তু
ফ্যাট এলটিও অবজেক্ট হল অবজেক্ট ফাইল যাতে মধ্যবর্তী ভাষা এবং উভয়ই থাকে
অবজেক্ট কোড। এটি তাদের LTO লিঙ্কিং এবং স্বাভাবিক লিঙ্কিং উভয়ের জন্য ব্যবহারযোগ্য করে তোলে। এই
এর সাথে কম্পাইল করার সময় বিকল্পটি কার্যকর -ফ্লো এবং লিঙ্কের সময় উপেক্ষা করা হয়।

-fno-fat-lto-বস্তু প্লেইন LTO এর উপর সংকলন সময় উন্নত করে, কিন্তু এর প্রয়োজন হয়
LTO সম্পর্কে সচেতন হতে সম্পূর্ণ টুলচেইন। এটি লিঙ্কার প্লাগইন সমর্থন সহ একটি লিঙ্কার প্রয়োজন
মৌলিক কার্যকারিতার জন্য। উপরন্তু, nm, ar এবং রানলিব লিঙ্কার সমর্থন করতে হবে
প্লাগইনগুলি একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত বিল্ড এনভায়রনমেন্টের অনুমতি দেয় (স্ট্যাটিক তৈরি করতে সক্ষম
গ্রন্থাগার ইত্যাদি)। GCC প্রদান করে জিসিসি-এআর, জিসিসি-এনএম, gcc-ranlib পাস করার জন্য wrappers
এই সরঞ্জামগুলির জন্য সঠিক বিকল্পগুলি। নন ফ্যাট এলটিও মেকফাইল ব্যবহার করার জন্য পরিবর্তন করতে হবে
তাদের.

ডিফল্ট হয় -ffat-lto-বস্তু কিন্তু এই ডিফল্ট ভবিষ্যতে পরিবর্তন করার উদ্দেশ্যে করা হয়
যখন লিঙ্কার প্লাগইন সক্রিয় পরিবেশগুলি আরও সাধারণ হয়ে ওঠে তখন রিলিজ হয়।

-FCOMPARE-LIM
রেজিস্টার বরাদ্দ এবং পোস্ট-রেজিস্টার বরাদ্দ নির্দেশ বিভাজনের পরে, চিহ্নিত করুন
গাণিতিক নির্দেশাবলী যা একটি তুলনা অপারেশনের অনুরূপ প্রসেসরের পতাকা গণনা করে
সেই পাটিগণিতের উপর ভিত্তি করে। যদি সম্ভব হয়, সুস্পষ্ট তুলনা অপারেশন বাদ দিন।

এই পাসটি শুধুমাত্র নির্দিষ্ট লক্ষ্যগুলির জন্য প্রযোজ্য যা স্পষ্টভাবে প্রতিনিধিত্ব করতে পারে না
রেজিস্টার বরাদ্দ সম্পূর্ণ হওয়ার আগে তুলনা অপারেশন।

স্তরে সক্রিয় -O, -ও2, -ও3, -ওএস.

-ফিউজ-এলডি = বিএফডি
ব্যবহার বিএফডি ডিফল্ট লিঙ্কারের পরিবর্তে লিঙ্কার।

-ফিউজ-ld=সোনা
ব্যবহার স্বর্ণ ডিফল্ট লিঙ্কারের পরিবর্তে লিঙ্কার।

-fcprop-রেজিস্টার
রেজিস্টার বরাদ্দ এবং পোস্ট-রেজিস্টার বরাদ্দ নির্দেশ বিভাজনের পরে, সম্পাদন করুন
সময়সূচী নির্ভরতা হ্রাস করার চেষ্টা করার জন্য একটি অনুলিপি-প্রচার পাস এবং মাঝে মাঝে
অনুলিপি মুছে ফেলুন।

স্তরে সক্রিয় -O, -ও2, -ও3, -ওএস.

-প্রোফাইল-সংশোধন
মাল্টি-থ্রেডেড প্রোগ্রামের জন্য একটি যন্ত্রযুক্ত বাইনারি ব্যবহার করে সংগ্রহ করা প্রোফাইল হতে পারে
মিস কাউন্টার আপডেটের কারণে অসামঞ্জস্যপূর্ণ। যখন এই বিকল্পটি নির্দিষ্ট করা হয়, GCC ব্যবহার করে
এই ধরনের অসঙ্গতিগুলিকে সংশোধন বা মসৃণ করার জন্য হিউরিস্টিকস। ডিফল্টরূপে, GCC একটি নির্গত করে
একটি অসামঞ্জস্যপূর্ণ প্রোফাইল সনাক্ত করা হলে ত্রুটি বার্তা।

-ফপ্রোফাইল-ডির =পথ
প্রোফাইল ডেটা ফাইলের জন্য অনুসন্ধান করার জন্য ডিরেক্টরি সেট করুন পথ। এই বিকল্প
শুধুমাত্র দ্বারা উত্পন্ন প্রোফাইল ডেটা প্রভাবিত করে -প্রোফাইল-জেনারেট করুন, -সবচেয়ে কভারেজ,
-এফপ্রোফাইল-আর্কস এবং দ্বারা ব্যবহৃত -প্রোফাইল-ব্যবহার এবং -fbranch-সম্ভাবনা এবং এর সাথে সম্পর্কিত
বিকল্প পরম এবং আপেক্ষিক উভয় পাথ ব্যবহার করা যেতে পারে। ডিফল্টরূপে, GCC ব্যবহার করে
বর্তমান ডিরেক্টরি হিসাবে পথ, এইভাবে প্রোফাইল ডেটা ফাইলটি একই ডিরেক্টরিতে প্রদর্শিত হয়
অবজেক্ট ফাইল।

-প্রোফাইল-জেনারেট করুন
-ফপ্রোফাইল-জেনারেট =পথ
প্রোফাইল উপযোগী উত্পাদন করতে সাধারণত যন্ত্র প্রয়োগের জন্য ব্যবহৃত বিকল্পগুলি সক্ষম করুন৷
প্রোফাইল ফিডব্যাক ভিত্তিক অপ্টিমাইজেশান সহ পরবর্তী পুনঃসংকলনের জন্য। আপনাকে অবশ্যই ব্যবহার করতে হবে
-প্রোফাইল-জেনারেট করুন কম্পাইল করার সময় এবং আপনার প্রোগ্রাম লিঙ্ক করার সময় উভয়ই।

নিম্নলিখিত বিকল্পগুলি সক্রিয় করা হয়েছে: "-fprofile-arcs", "-fprofile-values", "-fvpt"।

If পথ উল্লেখ করা হয়েছে, GCC এর দিকে তাকায় পথ প্রোফাইল ফিডব্যাক ডেটা ফাইল খুঁজে পেতে।
দেখ -প্রোফাইল-ডির.

-প্রোফাইল-ব্যবহার
-ফপ্রোফাইল-ব্যবহার =পথ
প্রোফাইল ফিডব্যাক নির্দেশিত অপ্টিমাইজেশান সক্ষম করুন, এবং অপ্টিমাইজেশানগুলি সাধারণত লাভজনক৷
শুধুমাত্র প্রোফাইল প্রতিক্রিয়া উপলব্ধ।

নিম্নলিখিত বিকল্পগুলি সক্রিয় করা হয়েছে: "-fbranch-সম্ভাব্যতা", "-fvpt",
"-funroll-loops", "-fpeel-loops", "-ftracer", "-ftree-vectorize",
"ফ্রি-লুপ-ডিস্ট্রিবিউট-প্যাটার্নস"

ডিফল্টরূপে, GCC একটি ত্রুটি বার্তা নির্গত করে যদি প্রতিক্রিয়া প্রোফাইলগুলি এর সাথে মেলে না
সোর্স কোড. এই ত্রুটিটি ব্যবহার করে একটি সতর্কতায় পরিণত করা যেতে পারে -Wcoverage-অমিল.
মনে রাখবেন এর ফলে খারাপভাবে অপ্টিমাইজ করা কোড হতে পারে।

If পথ উল্লেখ করা হয়েছে, GCC এর দিকে তাকায় পথ প্রোফাইল ফিডব্যাক ডেটা ফাইল খুঁজে পেতে।
দেখ -প্রোফাইল-ডির.

নিম্নোক্ত বিকল্পগুলি ফ্লোটিং-পয়েন্ট গাণিতিক সংক্রান্ত কম্পাইলার আচরণ নিয়ন্ত্রণ করে।
এই বিকল্পগুলি গতি এবং শুদ্ধতার মধ্যে বাণিজ্য বন্ধ করে। সব বিশেষভাবে সক্রিয় করা আবশ্যক.

-ফ্লোট-স্টোর
রেজিস্টারে ফ্লোটিং-পয়েন্ট ভেরিয়েবল সংরক্ষণ করবেন না এবং অন্যান্য বিকল্পগুলিকে বাধা দেবেন না
একটি ফ্লোটিং-পয়েন্ট মান একটি রেজিস্টার বা মেমরি থেকে নেওয়া হয়েছে কিনা তা পরিবর্তন করতে পারে।

এই বিকল্পটি 68000 যেখানে মেশিনে অবাঞ্ছিত অতিরিক্ত নির্ভুলতা প্রতিরোধ করে
ভাসমান রেজিস্টারগুলি (68881-এর) একটি "ডবল" এর চেয়ে বেশি নির্ভুলতা রাখে
আছে একইভাবে x86 আর্কিটেকচারের জন্য। বেশিরভাগ প্রোগ্রামের জন্য, অতিরিক্ত নির্ভুলতা
শুধুমাত্র ভাল, কিন্তু কিছু প্রোগ্রাম IEEE ভাসমান সুনির্দিষ্ট সংজ্ঞার উপর নির্ভর করে
বিন্দু ব্যবহার করুন -ফ্লোট-স্টোর এই জাতীয় প্রোগ্রামগুলির জন্য, তাদের সমস্ত সংরক্ষণ করার জন্য পরিবর্তন করার পরে
ভেরিয়েবলে প্রাসঙ্গিক মধ্যবর্তী গণনা।

-ফেক্সেস-নির্ভুলতা=শৈলী
এই বিকল্পটি মেশিনে অতিরিক্ত নির্ভুলতার উপর আরও নিয়ন্ত্রণের অনুমতি দেয় যেখানে ভাসমান-
পয়েন্ট রেজিস্টারে IEEE "ফ্লোট" এবং "ডাবল" প্রকারের চেয়ে বেশি নির্ভুলতা রয়েছে এবং
প্রসেসর এই ধরনের অপারেশনগুলিকে সমর্থন করে না। গতানুগতিক,
-ফেক্সেস-নির্ভুলতা = দ্রুত কার্যকর হয়; এর মানে হল যে অপারেশন করা হয়
রেজিস্টারের নির্ভুলতা এবং প্রকারের সাথে রাউন্ডিং করার সময় এটি অপ্রত্যাশিত
সোর্স কোডে নির্দিষ্ট করা হয়। সি কম্পাইল করার সময়, যদি
-ফেক্সেস-নির্ভুলতা=মান নির্দিষ্ট করা হয় তারপর অতিরিক্ত নির্ভুলতা নিয়ম অনুসরণ করে
ISO C99 এ নির্দিষ্ট করা হয়েছে; বিশেষ করে, কাস্ট এবং অ্যাসাইনমেন্ট উভয়ই মান হতে পারে
তাদের শব্দার্থিক প্রকারে বৃত্তাকার (যদিও -ফ্লোট-স্টোর শুধুমাত্র অ্যাসাইনমেন্টকে প্রভাবিত করে)।
এই বিকল্পটি ডিফল্টরূপে C এর জন্য সক্রিয় করা হয় যদি একটি কঠোর মানসম্পন্ন বিকল্প যেমন
-std=c99 ব্যবহৃত হয়.

-ফেক্সেস-নির্ভুলতা=মান C ব্যতীত অন্য ভাষার জন্য প্রয়োগ করা হয় না, এবং নেই
প্রভাব যদি -ফানসেফ-গণিত-অপ্টিমাইজেশন or ফাস্ট-গণিত উল্লিখিত আছে. x86 এ, এটা
এছাড়াও কোন প্রভাব আছে যদি -mfpmath = sse or -mfpmath = sse+387 উল্লিখিত আছে; সাবেক এ
ক্ষেত্রে, IEEE শব্দার্থবিদ্যা অতিরিক্ত নির্ভুলতা ছাড়াই প্রযোজ্য, এবং পরবর্তীতে, রাউন্ডিং হয়
অপ্রত্যাশিত

ফাস্ট-গণিত
সেট -fno-math-erno, -ফানসেফ-গণিত-অপ্টিমাইজেশন, শুধুমাত্র সীমাবদ্ধ-গণিত,
-fno-rounding-math, -fno-সিগন্যালিং-ন্যান্স এবং -fcx-সীমিত-পরিসর.

এই বিকল্পটি প্রিপ্রসেসর ম্যাক্রো "__FAST_MATH__" সংজ্ঞায়িত করে।

এই বিকল্প কোন দ্বারা চালু করা হয় না -O বিকল্প ছাড়াও -অফাস্ট যেহেতু এটা হতে পারে
IEEE বা ISO-এর সঠিক বাস্তবায়নের উপর নির্ভর করে এমন প্রোগ্রামগুলির জন্য ভুল আউটপুট
গণিত ফাংশনের জন্য নিয়ম/নির্দিষ্ট বিবরণ। এটি, তবে, এর জন্য দ্রুত কোড প্রদান করতে পারে
এই স্পেসিফিকেশনের গ্যারান্টি প্রয়োজন হয় না যে প্রোগ্রাম.

-fno-math-erno
গণিত ফাংশন কল করার পরে "ভ্রান্তি" সেট করবেন না যা একটি একক দ্বারা কার্যকর করা হয়
নির্দেশ, যেমন, "sqrt"। একটি প্রোগ্রাম যা গণিত ত্রুটির জন্য IEEE ব্যতিক্রমের উপর নির্ভর করে
হ্যান্ডলিং IEEE পাটিগণিত বজায় রাখার সময় গতির জন্য এই পতাকা ব্যবহার করতে চাইতে পারে
সামঞ্জস্য।

এই বিকল্প কোন দ্বারা চালু করা হয় না -O বিকল্প যেহেতু এটি ভুল আউটপুট হতে পারে
IEEE বা ISO-এর সঠিক বাস্তবায়নের উপর নির্ভর করে এমন প্রোগ্রামগুলির জন্য
গণিত ফাংশনের জন্য নিয়ম/নির্দিষ্ট বিবরণ। এটি, তবে, এর জন্য দ্রুত কোড প্রদান করতে পারে
এই স্পেসিফিকেশনের গ্যারান্টি প্রয়োজন হয় না যে প্রোগ্রাম.

ডিফল্ট হয় -fmath-erno.

ডারউইন সিস্টেমে, গণিত গ্রন্থাগার কখনই "ভ্রান্তি" সেট করে না। তাই কোনো কারণ নেই
কম্পাইলার সম্ভাব্যতা বিবেচনা করার জন্য যে এটি হতে পারে, এবং -fno-math-erno হয়
ডিফল্ট.

-ফানসেফ-গণিত-অপ্টিমাইজেশন
ফ্লোটিং-পয়েন্ট গাণিতিকের জন্য অপ্টিমাইজেশনের অনুমতি দিন যা (ক) অনুমান করে আর্গুমেন্ট এবং
ফলাফল বৈধ এবং (b) IEEE বা ANSI মান লঙ্ঘন করতে পারে। যখন লিঙ্ক-টাইমে ব্যবহার করা হয়,
এটি লাইব্রেরি বা স্টার্টআপ ফাইলগুলি অন্তর্ভুক্ত করতে পারে যা ডিফল্ট FPU নিয়ন্ত্রণ শব্দ বা পরিবর্তন করে
অন্যান্য অনুরূপ অপ্টিমাইজেশান।

এই বিকল্প কোন দ্বারা চালু করা হয় না -O বিকল্প যেহেতু এটি ভুল আউটপুট হতে পারে
IEEE বা ISO-এর সঠিক বাস্তবায়নের উপর নির্ভর করে এমন প্রোগ্রামগুলির জন্য
গণিত ফাংশনের জন্য নিয়ম/নির্দিষ্ট বিবরণ। এটি, তবে, এর জন্য দ্রুত কোড প্রদান করতে পারে
এই স্পেসিফিকেশনের গ্যারান্টি প্রয়োজন হয় না যে প্রোগ্রাম. সক্ষম করে
-fno-স্বাক্ষরিত-শূন্য, -fno-ট্র্যাপিং-গণিত, -fasociative-গণিত এবং -ফ্রেসিপ্রোকাল-গণিত.

ডিফল্ট হয় -fno-অনিরাপদ-গণিত-অপ্টিমাইজেশান.

-fasociative-গণিত
ফ্লোটিং-পয়েন্ট অপারেশনের সিরিজে অপারেন্ডের পুনঃসংযোগের অনুমতি দিন। এই
সম্ভবত গণনার ফলাফল পরিবর্তন করে ISO C এবং C++ ভাষার মান লঙ্ঘন করে।
দ্রষ্টব্য: পুনঃক্রম শূন্যের চিহ্ন পরিবর্তন করার পাশাপাশি NaNs উপেক্ষা করতে পারে এবং বাধা দিতে পারে বা
আন্ডারফ্লো বা ওভারফ্লো তৈরি করুন (এবং এইভাবে রাউন্ডিংয়ের উপর নির্ভর করে এমন কোডে ব্যবহার করা যাবে না
আচরণ যেমন "(x + 2**52) - 2**52"। এছাড়াও ফ্লোটিং-পয়েন্ট তুলনা পুনরায় সাজাতে পারে এবং
অর্ডার করা তুলনার প্রয়োজন হলে এইভাবে ব্যবহার করা যাবে না। এই বিকল্পটি যে প্রয়োজন
উভয় -fno-স্বাক্ষরিত-শূন্য এবং -fno-ট্র্যাপিং-গণিত কার্যকর হতে তাছাড়া, এটা তোলে না
সঙ্গে অনেক জ্ঞান -প্রাথমিক-গণিত. Fortran বিকল্পটি স্বয়ংক্রিয়ভাবে সক্রিয় হয় যখন
উভয় -fno-স্বাক্ষরিত-শূন্য এবং -fno-ট্র্যাপিং-গণিত কার্যকর হয়

ডিফল্ট হয় -fno-সহযোগী-গণিত.

-ফ্রেসিপ্রোকাল-গণিত
যদি এটি মান দ্বারা ভাগ করার পরিবর্তে একটি মানের পারস্পরিক ব্যবহার করার অনুমতি দেয়
অপ্টিমাইজেশান সক্ষম করে। উদাহরণস্বরূপ "x / y" কে "x * (1/y)" দিয়ে প্রতিস্থাপিত করা যেতে পারে, যা
উপযোগী যদি "(1/y)" সাধারণ সাব এক্সপ্রেশন নির্মূল সাপেক্ষে হয়। উল্লেখ্য যে এই
নির্ভুলতা হারায় এবং মানের উপর অপারেটিং ফ্লপের সংখ্যা বৃদ্ধি করে।

ডিফল্ট হয় -fno-পারস্পরিক-গণিত.

শুধুমাত্র সীমাবদ্ধ-গণিত
ফ্লোটিং-পয়েন্ট পাটিগণিতের জন্য অপ্টিমাইজেশানের অনুমতি দিন যা অনুমান করে আর্গুমেন্ট এবং
ফলাফল NaNs বা +-Infs নয়।

এই বিকল্প কোন দ্বারা চালু করা হয় না -O বিকল্প যেহেতু এটি ভুল আউটপুট হতে পারে
IEEE বা ISO-এর সঠিক বাস্তবায়নের উপর নির্ভর করে এমন প্রোগ্রামগুলির জন্য
গণিত ফাংশনের জন্য নিয়ম/নির্দিষ্ট বিবরণ। এটি, তবে, এর জন্য দ্রুত কোড প্রদান করতে পারে
এই স্পেসিফিকেশনের গ্যারান্টি প্রয়োজন হয় না যে প্রোগ্রাম.

ডিফল্ট হয় -fno-finite-math-শুধুমাত্র.

-fno-স্বাক্ষরিত-শূন্য
ফ্লোটিং-পয়েন্ট পাটিগণিতের জন্য অপ্টিমাইজেশনের অনুমতি দিন যা শূন্যের স্বাক্ষরকে উপেক্ষা করে।
IEEE পাটিগণিত স্বতন্ত্র +0.0 এবং -0.0 মানের আচরণ নির্দিষ্ট করে, যা তখন
এক্সপ্রেশনের সরলীকরণ নিষিদ্ধ করে যেমন x+0.0 বা 0.0*x (এমনকি সহ
শুধুমাত্র সীমাবদ্ধ-গণিত) এই বিকল্পটি বোঝায় যে শূন্য ফলাফলের চিহ্ন নয়
উল্লেখযোগ্য

ডিফল্ট হয় -ফসাইনড-জিরো.

-fno-ট্র্যাপিং-গণিত
কম্পাইল কোড অনুমান করে যে ফ্লোটিং-পয়েন্ট অপারেশন ব্যবহারকারী-দৃশ্যমান তৈরি করতে পারে না
ফাঁদ এই ফাঁদের মধ্যে রয়েছে শূন্য দ্বারা বিভাজন, ওভারফ্লো, আন্ডারফ্লো, সঠিক ফলাফল এবং
অবৈধ অপারেশন। এই বিকল্পটি যে প্রয়োজন -fno-সিগন্যালিং-ন্যান্স কার্যকর হতে
যদি কেউ "নন-স্টপ" IEEE পাটিগণিতের উপর নির্ভর করে তবে এই বিকল্পটি সেট করা দ্রুত কোডের অনুমতি দিতে পারে,
উদাহরণ স্বরূপ.

এই বিকল্পটি কোনভাবেই চালু করা উচিত নয় -O বিকল্প যেহেতু এটি ফলাফল হতে পারে
IEEE বা ISO-এর সঠিক বাস্তবায়নের উপর নির্ভর করে এমন প্রোগ্রামগুলির জন্য ভুল আউটপুট
গণিত ফাংশনের জন্য নিয়ম/নির্দিষ্ট বিবরণ।

ডিফল্ট হয় -ফট্রপিং-গণিত.

-প্রাথমিক-গণিত
রূপান্তর এবং অপ্টিমাইজেশানগুলি অক্ষম করুন যা ডিফল্ট ফ্লোটিং-পয়েন্ট রাউন্ডিং ধরে নেয়৷
আচরণ এটি সমস্ত ফ্লোটিং পয়েন্ট থেকে পূর্ণসংখ্যা রূপান্তরের জন্য রাউন্ড-টু-জিরো, এবং
অন্যান্য সমস্ত গাণিতিক ছাঁটাইয়ের জন্য বৃত্তাকার থেকে নিকটতম। এই বিকল্প হওয়া উচিত
যে প্রোগ্রামগুলি গতিশীলভাবে FP রাউন্ডিং মোড পরিবর্তন করে, বা হতে পারে তার জন্য নির্দিষ্ট করা হয়েছে৷
একটি নন-ডিফল্ট রাউন্ডিং মোড দিয়ে কার্যকর করা হয়েছে। এই বিকল্পটি এর ধ্রুবক ভাঁজ অক্ষম করে
কম্পাইলের সময় ফ্লোটিং-পয়েন্ট এক্সপ্রেশন (যা রাউন্ডিং মোড দ্বারা প্রভাবিত হতে পারে)
এবং গাণিতিক রূপান্তর যা চিহ্ন-নির্ভর উপস্থিতিতে অনিরাপদ
রাউন্ডিং মোড

ডিফল্ট হয় -fno-rounding-math.

এই বিকল্পটি পরীক্ষামূলক এবং বর্তমানে সমস্ত GCC অক্ষম করার নিশ্চয়তা দেয় না৷
রাউন্ডিং মোড দ্বারা প্রভাবিত অপ্টিমাইজেশান। GCC এর ভবিষ্যত সংস্করণ প্রদান করতে পারে
C99 এর "FENV_ACCESS" pragma ব্যবহার করে এই সেটিংটির সূক্ষ্ম নিয়ন্ত্রণ৷ এই কমান্ড লাইন
"FENV_ACCESS"-এর জন্য ডিফল্ট অবস্থা নির্দিষ্ট করতে বিকল্প ব্যবহার করা হবে।

-ফসিগনালিং-ন্যানস
কোড কম্পাইল করুন অনুমান করে যে IEEE সিগন্যালিং NaNs সময় ব্যবহারকারী-দৃশ্যমান ফাঁদ তৈরি করতে পারে
ফ্লোটিং-পয়েন্ট অপারেশন। এই বিকল্পটি সেট করা অপ্টিমাইজেশানগুলিকে অক্ষম করে যা পরিবর্তন হতে পারে৷
সিগন্যালিং NaN এর সাথে দৃশ্যমান ব্যতিক্রমের সংখ্যা। এই বিকল্পটি বোঝায়
-ফট্রপিং-গণিত.

এই বিকল্পটি প্রিপ্রসেসর ম্যাক্রো "__SUPPORT_SNAN__" সংজ্ঞায়িত করে।

ডিফল্ট হয় -fno-সিগন্যালিং-ন্যান্স.

এই বিকল্পটি পরীক্ষামূলক এবং বর্তমানে সমস্ত GCC অক্ষম করার নিশ্চয়তা দেয় না৷
অপ্টিমাইজেশান যা সংকেত NaN আচরণকে প্রভাবিত করে।

-fsingle-নির্ভুলতা-ধ্রুবক
ফ্লোটিং-পয়েন্ট ধ্রুবকগুলিকে অন্তর্নিহিতভাবে রূপান্তর করার পরিবর্তে একক নির্ভুলতা হিসাবে বিবেচনা করুন
তাদের দ্বিগুণ নির্ভুল ধ্রুবক।

-fcx-সীমিত-পরিসর
যখন সক্রিয় থাকে, এই বিকল্পটি বলে যে একটি পরিসর হ্রাস পদক্ষেপের প্রয়োজন নেই যখন
জটিল বিভাগ সম্পাদন করা। এছাড়াও, কোন পরীক্ষা নেই যে একটি ফলাফল
জটিল গুণ বা ভাগ হল "NaN + I*NaN", যা উদ্ধার করার চেষ্টা করে
সেই ক্ষেত্রে পরিস্থিতি। ডিফল্ট হয় -fno-cx-সীমিত-পরিসর, কিন্তু দ্বারা সক্রিয় করা হয়েছে
ফাস্ট-গণিত.

এই বিকল্পটি ISO C99 "CX_LIMITED_RANGE" প্রাগমার ডিফল্ট সেটিং নিয়ন্ত্রণ করে।
তবুও, বিকল্পটি সমস্ত ভাষার জন্য প্রযোজ্য।

-fcx-ফরট্রান-নিয়ম
জটিল গুণ ও ভাগ ফোর্টরান নিয়ম অনুসরণ করে। পরিসীমা হ্রাস হিসাবে সম্পন্ন করা হয়
জটিল বিভাগের অংশ, কিন্তু একটি জটিল ফলাফল কিনা তা পরীক্ষা নেই
গুণ বা ভাগ হল "NaN + I*NaN", পরিস্থিতি উদ্ধারের প্রয়াস
এই ক্ষেত্রে.

ডিফল্ট হয় -fno-cx-ফোরট্রান-বিধি.

নিম্নলিখিত বিকল্পগুলি অপ্টিমাইজেশানগুলি নিয়ন্ত্রণ করে যা কর্মক্ষমতা উন্নত করতে পারে, কিন্তু তা নয়৷
যে কোনো দ্বারা সক্রিয় -O বিকল্প এই বিভাগে পরীক্ষামূলক বিকল্প রয়েছে যা উত্পাদন করতে পারে
ভাঙা কোড।

-fbranch-সম্ভাবনা
সঙ্গে সংকলিত একটি প্রোগ্রাম চালানোর পরে -এফপ্রোফাইল-আর্কস, আপনি এটি দ্বিতীয়বার কম্পাইল করতে পারেন
ব্যবহার -fbranch-সম্ভাবনা, সময়ের সংখ্যার উপর ভিত্তি করে অপ্টিমাইজেশন উন্নত করতে
প্রতিটি শাখা নেওয়া হয়েছিল। যখন একটি প্রোগ্রাম সঙ্গে কম্পাইল -এফপ্রোফাইল-আর্কস প্রস্থান করে, এটি সংরক্ষণ করে
arc এক্সিকিউশন নামক ফাইলে গণনা করা হয় সোর্সনেম.জিসিডিএ প্রতিটি উৎস ফাইলের জন্য। দ্য
এই ডেটা ফাইলের তথ্য উত্পন্ন কাঠামোর উপর খুব নির্ভরশীল
কোড, তাই আপনাকে অবশ্যই একই সোর্স কোড এবং উভয়ের জন্য একই অপ্টিমাইজেশন বিকল্প ব্যবহার করতে হবে
সংকলন

সঙ্গে -fbranch-সম্ভাবনা, GCC একটি রাখে Reg_br_prob প্রতিটির উপর নোট করুন জাম্প_আইএনএসএন এবং
কল_আইএনএসএন. এই অপ্টিমাইজেশান উন্নত করতে ব্যবহার করা যেতে পারে. বর্তমানে, তারা শুধুমাত্র ব্যবহার করা হয়
এক জায়গায়: মধ্যে reorg.c, অনুমান করার পরিবর্তে একটি শাখার কোন পথটি সবচেয়ে বেশি সম্ভব
নিতে, the Reg_br_prob কোন পথ বেশি নেওয়া হয়েছে তা ঠিক নির্ধারণ করতে মানগুলি ব্যবহার করা হয়
প্রায়ই।

-প্রোফাইল-মান
সাথে মিলিত হলে -এফপ্রোফাইল-আর্কস, এটি কোড যোগ করে যাতে এর মান সম্পর্কে কিছু ডেটা
প্রোগ্রামে অভিব্যক্তি সংগ্রহ করা হয়.

সঙ্গে -fbranch-সম্ভাবনা, এটি এর প্রোফাইলিং মান থেকে সংগৃহীত ডেটা ফিরে পড়ে
অপ্টিমাইজেশানে ব্যবহারের জন্য অভিব্যক্তি।

সঙ্গে সক্রিয় -প্রোফাইল-জেনারেট করুন এবং -প্রোফাইল-ব্যবহার.

-fvpt
সাথে মিলিত হলে -এফপ্রোফাইল-আর্কস, এই বিকল্পটি কম্পাইলারকে কোড যোগ করার নির্দেশ দেয়
অভিব্যক্তির মান সম্পর্কে তথ্য সংগ্রহ করুন।

সঙ্গে -fbranch-সম্ভাবনা, এটি সংগৃহীত ডেটা পড়ে এবং প্রকৃতপক্ষে সম্পাদন করে
তাদের উপর ভিত্তি করে অপ্টিমাইজেশান। বর্তমানে অপ্টিমাইজেশান এর বিশেষীকরণ অন্তর্ভুক্ত
হর এর মান সম্পর্কে জ্ঞান ব্যবহার করে বিভাজন ক্রিয়াকলাপ।

-ফ্রেনাম-রেজিস্টার
বাম রেজিস্টার ব্যবহার করে নির্ধারিত কোডে মিথ্যা নির্ভরতা এড়াতে চেষ্টা করুন
নিবন্ধন বরাদ্দের পরে। এই অপ্টিমাইজেশানটি প্রচুর পরিমাণে প্রসেসরকে উপকৃত করে
রেজিস্টারের। লক্ষ্য দ্বারা গৃহীত ডিবাগ তথ্য বিন্যাসের উপর নির্ভর করে,
যাইহোক, এটি ডিবাগিংকে অসম্ভব করে তুলতে পারে, যেহেতু ভেরিয়েবলগুলি আর "হোম"-এ থাকে না
নিবন্ধন".

এর সাথে ডিফল্টরূপে সক্রিয় -ফানরোল-লুপস এবং -ফপিল-লুপস.

-ফট্রেসার
সুপারব্লকের আকার বড় করতে লেজের অনুলিপি সম্পাদন করুন। এই রূপান্তর সহজতর
ফাংশনের নিয়ন্ত্রণ প্রবাহ অন্যান্য অপ্টিমাইজেশানগুলিকে আরও ভাল কাজ করার অনুমতি দেয়।

সঙ্গে সক্রিয় -প্রোফাইল-ব্যবহার.

-ফানরোল-লুপস
আনরোল লুপ যার পুনরাবৃত্তির সংখ্যা কম্পাইলের সময় বা উপর নির্ধারণ করা যেতে পারে
লুপে প্রবেশ। -ফানরোল-লুপস বোঝা -frerun-cse-আফটার-লুপ, -ফওয়েব এবং
-ফ্রেনাম-রেজিস্টার. এটি সম্পূর্ণ লুপ পিলিং চালু করে (অর্থাৎ সম্পূর্ণ অপসারণ
একটি ছোট ধ্রুবক সংখ্যক পুনরাবৃত্তি সহ loops)। এই বিকল্পটি কোড বড় করে তোলে, এবং
এটি দ্রুত চালানো হতে পারে বা নাও পারে।

সঙ্গে সক্রিয় -প্রোফাইল-ব্যবহার.

ফানরোল-অল-লুপস
সমস্ত লুপ আনরোল করুন, এমনকি লুপটি কখন তাদের পুনরাবৃত্তির সংখ্যা অনিশ্চিত হয়
প্রবেশ এটি সাধারণত প্রোগ্রামগুলিকে আরও ধীরে ধীরে চালায়। ফানরোল-অল-লুপস বোঝায়
হিসাবে একই অপশন -ফানরোল-লুপস.

-ফপিল-লুপস
পিলস লুপ যার জন্য পর্যাপ্ত তথ্য রয়েছে যে তারা বেশি রোল করে না (থেকে
প্রোফাইল প্রতিক্রিয়া)। এটি সম্পূর্ণ লুপ পিলিং চালু করে (অর্থাৎ সম্পূর্ণ অপসারণ
ছোট ধ্রুবক সংখ্যক পুনরাবৃত্তি সহ loops)।

সঙ্গে সক্রিয় -প্রোফাইল-ব্যবহার.

-ফমভ-লুপ-আক্রমণকারীরা
RTL লুপ অপটিমাইজারে লুপ ইনভেরিয়েন্ট মোশন পাস সক্ষম করে৷ স্তরে সক্রিয়
-ও1

-ফানসুইচ-লুপস
লুপ অপরিবর্তনীয় অবস্থা সহ শাখাগুলিকে লুপের সদৃশ সহ লুপের বাইরে সরান৷
উভয় শাখায় লুপ (শর্তের ফলাফল অনুযায়ী পরিবর্তিত)।

-ফাংশন-বিভাগ
-fdata-বিভাগ
প্রতিটি ফাংশন বা ডেটা আইটেমকে আউটপুট ফাইলের নিজস্ব বিভাগে রাখুন যদি লক্ষ্য থাকে
নির্বিচারে বিভাগ সমর্থন করে। ফাংশনের নাম বা ডেটা আইটেমের নাম
আউটপুট ফাইলে বিভাগের নাম নির্ধারণ করে।

সিস্টেমে এই বিকল্পগুলি ব্যবহার করুন যেখানে লিঙ্কার উন্নত করার জন্য অপ্টিমাইজেশন করতে পারে
নির্দেশের জায়গায় রেফারেন্সের স্থানীয়তা। বেশিরভাগ সিস্টেম ইএলএফ অবজেক্ট ব্যবহার করে
সোলারিস 2 চালিত ফরম্যাট এবং SPARC প্রসেসরগুলিতে এই ধরনের অপ্টিমাইজেশনের সাথে লিঙ্কার রয়েছে।
AIX ভবিষ্যতে এই অপ্টিমাইজেশন থাকতে পারে।

শুধুমাত্র এই বিকল্পগুলি ব্যবহার করুন যখন এটি করার উল্লেখযোগ্য সুবিধা রয়েছে। যখন তুমি
এই বিকল্পগুলি নির্দিষ্ট করুন, অ্যাসেম্বলার এবং লিঙ্কার বৃহত্তর অবজেক্ট এবং এক্সিকিউটেবল তৈরি করে
ফাইল এবং ধীর হয়. আপনি যদি এটি নির্দিষ্ট করেন তবে আপনি সমস্ত সিস্টেমে "gprof" ব্যবহার করতে পারবেন না
বিকল্প, এবং আপনি যদি এই বিকল্প এবং উভয়ই নির্দিষ্ট করেন তবে ডিবাগিং নিয়ে আপনার সমস্যা হতে পারে
-g.

-fbranch-টার্গেট-লোড-অপ্টিমাইজ
প্রলোগ / এপিলগ থ্রেডিংয়ের আগে শাখা টার্গেট রেজিস্টার লোড অপ্টিমাইজেশান সম্পাদন করুন।
টার্গেট রেজিস্টারের ব্যবহার সাধারণত শুধুমাত্র পুনরায় লোড করার সময় উন্মোচিত হতে পারে, এইভাবে উত্তোলন
লুপ থেকে লোড হয় এবং আন্তঃ-ব্লক সময়সূচী করার জন্য একটি পৃথক অপ্টিমাইজেশন প্রয়োজন
পাস।

-fbranch-টার্গেট-লোড-অপ্টিমাইজ২
প্রলোগ / এপিলগ থ্রেডিংয়ের পরে শাখা টার্গেট রেজিস্টার লোড অপ্টিমাইজেশান সম্পাদন করুন।

-fbtr-bb-এক্সক্লুসিভ
শাখা টার্গেট রেজিস্টার লোড অপ্টিমাইজেশান সম্পাদন করার সময়, শাখা লক্ষ্য পুনঃব্যবহার করবেন না
যেকোনো মৌলিক ব্লকের মধ্যে নিবন্ধন করে।

-ফস্ট্যাক-রক্ষক
বাফার ওভারফ্লো পরীক্ষা করার জন্য অতিরিক্ত কোড নির্গত করুন, যেমন স্ট্যাক স্ম্যাশিং আক্রমণ। এই
দুর্বল বস্তুর সাথে ফাংশনে একটি গার্ড ভেরিয়েবল যোগ করে করা হয়। এই
যে ফাংশনগুলিকে "অ্যালোকা" বলা হয় এবং 8 বাইটের চেয়ে বড় বাফার সহ ফাংশনগুলি অন্তর্ভুক্ত করে৷
যখন একটি ফাংশন প্রবেশ করা হয় তখন গার্ডগুলি শুরু করা হয় এবং তারপর চেক করা হয় যখন
ফাংশন প্রস্থান করে। যদি একটি গার্ড চেক ব্যর্থ হয়, একটি ত্রুটি বার্তা মুদ্রিত হয় এবং প্রোগ্রাম
প্রস্থান

দ্রষ্টব্য: উবুন্টু 6.10 এবং পরবর্তী সংস্করণগুলিতে এই বিকল্পটি ডিফল্টরূপে C, C++ এর জন্য সক্রিয় থাকে।
ObjC, ObjC++, যদি কোনটি না হয় -fno-স্ট্যাক-রক্ষক, -নোস্টডিলিবনা -ফ্রিস্ট্যান্ডিং হয়
পাওয়া যায় নি।

-fstack-রক্ষক-সমস্ত
মত -ফস্ট্যাক-রক্ষক সব ফাংশন সুরক্ষিত যে ছাড়া.

-সেকশন-অ্যাঙ্কর
ভাগ করা "অ্যাঙ্কর" ব্যবহার করে প্রতীকী ঠিকানা গণনার সংখ্যা কমানোর চেষ্টা করুন
কাছাকাছি বস্তু সম্বোধনের জন্য প্রতীক। এই রূপান্তর সংখ্যা কমাতে সাহায্য করতে পারে
কিছু লক্ষ্যে GOT এন্ট্রি এবং GOT অ্যাক্সেস।

উদাহরণস্বরূপ, নিম্নলিখিত ফাংশন "foo" বাস্তবায়ন:

স্ট্যাটিক int a, b, c;
int foo (void) { রিটার্ন a + b + c; }

সাধারণত তিনটি ভেরিয়েবলের ঠিকানা গণনা করে, কিন্তু যদি আপনি এটি দিয়ে কম্পাইল করেন
-সেকশন-অ্যাঙ্কর, এটি পরিবর্তে একটি সাধারণ অ্যাঙ্কর পয়েন্ট থেকে ভেরিয়েবল অ্যাক্সেস করে। দ্য
প্রভাব নিম্নলিখিত pseudocode অনুরূপ (যা বৈধ C নয়):

int foo (অকার্যকর)
{
রেজিস্টার int *xr = &x;
রিটার্ন xr[&a - &x] + xr[&b - &x] + xr[&c - &x];
}

সব লক্ষ্য এই বিকল্প সমর্থন করে না.

--পরম নাম=মূল্য
কিছু জায়গায়, GCC অপ্টিমাইজেশনের পরিমাণ নিয়ন্ত্রণ করতে বিভিন্ন ধ্রুবক ব্যবহার করে
সমাপ্ত. উদাহরণ স্বরূপ, GCC ইনলাইন ফাংশন করে না যাতে নির্দিষ্ট কিছুর বেশি থাকে
নির্দেশাবলীর সংখ্যা। আপনি কমান্ড লাইনে এই ধ্রুবকগুলির কিছু নিয়ন্ত্রণ করতে পারেন
ব্যবহার করে --পরম বিকল্প।

নির্দিষ্ট প্যারামিটারের নাম, এবং মানগুলির অর্থ, এর সাথে আবদ্ধ
কম্পাইলারের অভ্যন্তরীণ, এবং ভবিষ্যতে বিজ্ঞপ্তি ছাড়াই পরিবর্তন সাপেক্ষে
রিলিজ।

প্রতিটি ক্ষেত্রে, মূল্য একটি পূর্ণসংখ্যা। জন্য অনুমোদিত পছন্দ নাম হয়:

অনুমানযোগ্য-শাখা-ফলাফল
এই থ্রেশহোল্ড থেকে কম সম্ভাব্যতা সহ যখন শাখা নেওয়া হবে বলে পূর্বাভাস দেওয়া হয়
(শতাংশে), তারপর এটি ভাল অনুমানযোগ্য বলে মনে করা হয়। ডিফল্ট হল 10।

সর্বোচ্চ-ক্রসজাম্প-প্রান্ত
ক্রস-জাম্পিংয়ের জন্য বিবেচনা করার জন্য আগত প্রান্তগুলির সর্বাধিক সংখ্যা৷ অ্যালগরিদম
দ্বারা ব্যবহৃত -ফক্রসজাম্পিং প্রতিটি ব্লকে আগত প্রান্তের সংখ্যায় O(N^2)।
ক্রমবর্ধমান মান মানে আরো আক্রমনাত্মক অপ্টিমাইজেশান, সংকলনের সময় তৈরি করে৷
এক্সিকিউটেবল আকারে সম্ভবত ছোট উন্নতির সাথে বৃদ্ধি।

মিন-ক্রসজাম্প-ইনস
নির্দেশাবলীর ন্যূনতম সংখ্যা যা অবশ্যই দুটি ব্লকের শেষে মিলতে হবে
ক্রস-জাম্পিং তাদের উপর সঞ্চালিত হয় আগে. এই মান ক্ষেত্রে উপেক্ষা করা হয়
যেখান থেকে ক্রস-জাম্প করা ব্লকের সমস্ত নির্দেশ মিলছে। দ্য
ডিফল্ট মান 5।

সর্বোচ্চ-বৃদ্ধি-অনুলিপি-বিবি-ইনস
এর পরিবর্তে মৌলিক ব্লক কপি করার সময় সর্বাধিক কোড আকার সম্প্রসারণ ফ্যাক্টর
জাম্পিং সম্প্রসারণ একটি লাফ নির্দেশ আপেক্ষিক. ডিফল্ট মান হল
8.

সর্বোচ্চ-গোটো-ডুপ্লিকেশন-ইনস
একটি ব্লকের নকল করার জন্য সর্বাধিক সংখ্যক নির্দেশাবলী যা a-তে যায়৷
গণনা করা হয়েছে। বেশ কয়েকটি পাসে O(N^2) আচরণ এড়াতে, GCC ফ্যাক্টর
সংকলন প্রক্রিয়ার প্রথম দিকে গণনা করা গোটোস, এবং দেরীতে সেগুলিকে আনফ্যাক্টর করে
সম্ভব. বেসিক ব্লকের শেষে শুধুমাত্র গণনা করা লাফগুলি সর্বাধিক-এর বেশি নয়
goto-duplication-insns unfactored. ডিফল্ট মান 8।

max-delay-slot-insn-অনুসন্ধান
নির্দেশাবলী খুঁজছেন যখন বিবেচনা করতে নির্দেশাবলী সর্বোচ্চ সংখ্যা
একটি বিলম্ব স্লট পূরণ করুন. এর চেয়ে বেশি হলে নির্বিচারে নির্দেশ দেওয়া হয়
অনুসন্ধান করা হয়েছে, বিলম্ব স্লট পূরণ থেকে সময় সঞ্চয় ন্যূনতম, তাই থামুন
অনুসন্ধান ক্রমবর্ধমান মান মানে আরো আক্রমনাত্মক অপ্টিমাইজেশান, তৈরীর
সঙ্কলন সময় বৃদ্ধি সম্ভবত কার্যকর সময়ে ছোট উন্নতির সাথে।

সর্বোচ্চ-বিলম্ব-স্লট-লাইভ-সার্চ
বিলম্বের স্লটগুলি পূরণ করার চেষ্টা করার সময়, সর্বাধিক সংখ্যক নির্দেশাবলী বিবেচনা করতে হবে
বৈধ লাইভ রেজিস্টার তথ্য সহ একটি ব্লক অনুসন্ধান করার সময়। এই বৃদ্ধি
নির্বিচারে নির্বাচিত মান মানে আরও আক্রমণাত্মক অপ্টিমাইজেশান, বৃদ্ধি
সংকলন সময়। বিলম্ব স্লট কোড যখন এই পরামিতি অপসারণ করা উচিত
নিয়ন্ত্রণ-প্রবাহ গ্রাফ বজায় রাখার জন্য পুনরায় লেখা।

max-gcse-মেমরি
আনুমানিক সর্বাধিক পরিমাণ মেমরি যা সম্পাদন করার জন্য বরাদ্দ করা যেতে পারে৷
গ্লোবাল কমন সাব এক্সপ্রেশন নির্মূল অপ্টিমাইজেশান। এর চেয়ে বেশি স্মৃতি থাকলে
নির্দিষ্ট করা প্রয়োজন, অপ্টিমাইজেশান করা হয় না।

max-gcse-প্রবেশ-অনুপাত
যদি এক্সপ্রেশন সন্নিবেশ এবং মুছে ফেলার অনুপাত এই মানের থেকে বড় হয়
যেকোনো এক্সপ্রেশন, তারপর RTL PRE এক্সপ্রেশনটি সন্নিবেশিত করে বা সরিয়ে দেয় এবং এভাবে চলে যায়
নির্দেশ প্রবাহে আংশিকভাবে অপ্রয়োজনীয় গণনা। ডিফল্ট মান হল
20.

সর্বাধিক-মুলতুবি-তালিকা-দৈর্ঘ্য
ফ্লাশ করার আগে সর্বাধিক সংখ্যক মুলতুবি থাকা নির্ভরতা নির্ধারণের অনুমতি দেয়
বর্তমান অবস্থা এবং আবার শুরু। কয়েকটি শাখা বা কল সহ বড় ফাংশন করতে পারেন
অপ্রয়োজনীয়ভাবে মেমরি এবং সম্পদ গ্রাস করে অত্যধিক বড় তালিকা তৈরি করুন।

max-modulo-backtrack-প্রয়াস
মডিউল করার সময় শিডিউলারের সর্বাধিক সংখ্যক ব্যাকট্র্যাক প্রচেষ্টা করা উচিত
একটি লুপ নির্ধারণ. বৃহত্তর মান দ্রুত সংকলনের সময় বৃদ্ধি করতে পারে।

সর্বোচ্চ-ইনলাইন-ইনস-সিঙ্গেল
বেশ কিছু প্যারামিটার GCC-তে ব্যবহৃত ট্রি ইনলাইনার নিয়ন্ত্রণ করে। এই সংখ্যা সেট করে
সর্বাধিক সংখ্যক নির্দেশাবলী (GCC এর অভ্যন্তরীণ উপস্থাপনায় গণনা করা হয়েছে) a
একক ফাংশন যা ট্রি ইনলাইনার ইনলাইনিংয়ের জন্য বিবেচনা করে। এটি শুধুমাত্র প্রভাবিত করে
ইনলাইন ঘোষিত ফাংশন এবং একটি ক্লাস ডিক্লারেশন (C++) এ প্রয়োগ করা পদ্ধতি।
ডিফল্ট মান 400।

সর্বোচ্চ-ইনলাইন-ইনস-অটো
যখন আপনি ব্যবহার -ফিনলাইন-ফাংশন (অন্তর্ভুক্ত -ও3), ফাংশন অনেক যে হবে
অন্যথায় কম্পাইলার দ্বারা ইনলাইন করার জন্য বিবেচনা করা হবে না তদন্ত করা হয়. প্রতি
এই ফাংশনগুলি, ফাংশনের তুলনায় একটি ভিন্ন (আরো সীমাবদ্ধ) সীমা
ঘোষিত ইনলাইনে আবেদন করা যাবে। ডিফল্ট মান 40।

ইনলাইন-মিন-স্পিডআপ
যখন কলারের আনুমানিক কর্মক্ষমতা উন্নতি + কলির রানটাইম এর চেয়ে বেশি হয়
থ্রেশহোল্ড (প্রেসেন্টে), ফাংশনটি সীমা নির্বিশেষে ইনলাইন করা যেতে পারে
--পরম সর্বোচ্চ-ইনলাইন-ইনস-সিঙ্গেল এবং --পরম সর্বোচ্চ-ইনলাইন-ইনস-অটো.

বড়-ফাংশন-ইনস
সত্যিই বড় ফাংশন নির্দিষ্ট সীমা. এই সীমার চেয়ে বড় ফাংশনের জন্য
ইনলাইন করার পরে, ইনলাইনিং দ্বারা সীমাবদ্ধ --পরম বড়-ফাংশন-বৃদ্ধি. এই
পরামিতি প্রাথমিকভাবে অ-এর কারণে সৃষ্ট চরম সংকলন সময় এড়াতে কার্যকর
ব্যাক এন্ড দ্বারা ব্যবহৃত রৈখিক অ্যালগরিদম। ডিফল্ট মান 2700।

বড়-ফাংশন-বৃদ্ধি
শতাংশে ইনলাইন করার কারণে বৃহৎ ফাংশনের সর্বাধিক বৃদ্ধি নির্দিষ্ট করে। দ্য
ডিফল্ট মান হল 100 যা বড় ফাংশন বৃদ্ধিকে মূলের 2.0 গুণে সীমাবদ্ধ করে
আকার.

বড়-ইউনিট-ইনসান
বড় অনুবাদ ইউনিট নির্দিষ্ট করে সীমা। ইউনিটের ইনলাইনিংয়ের কারণে বৃদ্ধি
এই সীমার চেয়ে বড় দ্বারা সীমাবদ্ধ --পরম ইনলাইন-ইউনিট-বৃদ্ধি. ছোট ইউনিটের জন্য
এই খুব টাইট হতে পারে. উদাহরণস্বরূপ, ফাংশন A সমন্বিত একটি ইউনিট বিবেচনা করুন
যেটি ইনলাইন এবং B যেটি কেবল A কে তিনবার কল করে। খ যদি ক এর তুলনায় ছোট হয়,
ইউনিটের বৃদ্ধি 300% এবং তবুও এই ধরনের ইনলাইনিং খুবই বুদ্ধিমান। খুব বড় জন্য
ছোট ইনলাইনেবল ফাংশন নিয়ে গঠিত ইউনিট, যাইহোক, সামগ্রিক ইউনিট বৃদ্ধি
কোড আকারের সূচকীয় বিস্ফোরণ এড়াতে সীমা প্রয়োজন। এইভাবে ছোট জন্য
ইউনিট, আকার বৃদ্ধি করা হয় --পরম বড়-ইউনিট-ইনসান আবেদন করার আগে --পরম
ইনলাইন-ইউনিট-বৃদ্ধি. ডিফল্ট 10000.

ইনলাইন-ইউনিট-বৃদ্ধি
ইনলাইনিংয়ের কারণে সংকলন ইউনিটের সর্বাধিক সামগ্রিক বৃদ্ধি নির্দিষ্ট করে। দ্য
ডিফল্ট মান হল 30 যা ইউনিট বৃদ্ধিকে 1.3 গুণ মূল আকারে সীমাবদ্ধ করে।

ipcp-ইউনিট-বৃদ্ধি
আন্তঃপ্রক্রিয়াগত কারণে সৃষ্ট সংকলন ইউনিটের সর্বাধিক সামগ্রিক বৃদ্ধি নির্দিষ্ট করে
অবিরাম প্রচার। ডিফল্ট মান হল 10 যা ইউনিট বৃদ্ধি 1.1 এ সীমাবদ্ধ করে
মূল আকারের বার।

বড়-স্ট্যাক-ফ্রেম
বড় স্ট্যাক ফ্রেম নির্দিষ্ট করে সীমা। ইনলাইন করার সময় অ্যালগরিদম চেষ্টা করছে
খুব বেশি এই সীমা অতিক্রম না করতে. ডিফল্ট মান হল 256 বাইট।

বড়-স্ট্যাক-ফ্রেম-বৃদ্ধি
শতাংশে ইনলাইন করার কারণে বড় স্ট্যাক ফ্রেমের সর্বাধিক বৃদ্ধি নির্দিষ্ট করে।
ডিফল্ট মান হল 1000 যা বড় স্ট্যাক ফ্রেমের বৃদ্ধিকে 11 গুণে সীমাবদ্ধ করে
মূল আকার.

সর্বোচ্চ-ইনলাইন-ইনসেনস-বিরোধী
সর্বোচ্চ-ইনলাইন-ইনসেনস-রিসারসিভ-অটো
একটি স্ব-র একটি আউট-অফ-লাইন অনুলিপি নির্দেশের সর্বাধিক সংখ্যা নির্দিষ্ট করে
রিকার্সিভ ইনলাইন ফাংশন রিকার্সিভ ইনলাইনিং সঞ্চালনের মাধ্যমে বৃদ্ধি পেতে পারে।

ইনলাইন ঘোষিত ফাংশনগুলির জন্য, --পরম সর্বোচ্চ-ইনলাইন-ইনসেনস-বিরোধী মধ্যে নেওয়া হয়
অ্যাকাউন্ট ইনলাইন ঘোষিত ফাংশনগুলির জন্য, পুনরাবৃত্ত ইনলাইনিং তখনই ঘটে যখন
-ফিনলাইন-ফাংশন (অন্তর্ভুক্ত -ও3) সক্রিয় করা হয়েছে এবং --পরম সর্বোচ্চ-ইনলাইন-ইনন্স-
recursive-অটো ব্যবহৃত হয়. ডিফল্ট মান হল 450।

সর্বোচ্চ-ইনলাইন-পুনরাবৃত্ত-গভীরতা
সর্বোচ্চ-ইনলাইন-পুনরাবৃত্ত-গভীরতা-অটো
পুনরাবৃত্ত ইনলাইনিংয়ের জন্য ব্যবহৃত সর্বাধিক পুনরাবৃত্তি গভীরতা নির্দিষ্ট করে।

ইনলাইন ঘোষিত ফাংশনগুলির জন্য, --পরম সর্বোচ্চ-ইনলাইন-পুনরাবৃত্ত-গভীরতা মধ্যে নেওয়া হয়
অ্যাকাউন্ট ইনলাইন ঘোষিত ফাংশনগুলির জন্য, পুনরাবৃত্ত ইনলাইনিং তখনই ঘটে যখন
-ফিনলাইন-ফাংশন (অন্তর্ভুক্ত -ও3) সক্রিয় করা হয়েছে এবং --পরম সর্বোচ্চ-ইনলাইন-পুনরাবৃত্ত-
গভীরতা-অটো ব্যবহৃত হয়. ডিফল্ট মান হল 8।

মিন-ইনলাইন-পুনরাবৃত্ত-সম্ভাব্যতা
পুনরাবৃত্ত ইনলাইনিং শুধুমাত্র গভীর পুনরাবৃত্ত থাকা ফাংশনের জন্য লাভজনক
গড় এবং বৃদ্ধি দ্বারা সামান্য পুনরাবৃত্তি গভীরতা থাকার ফাংশন জন্য আঘাত করতে পারে
অন্যান্য অপ্টিমাইজারের কাছে ফাংশন বডির প্রলোগ আকার বা জটিলতা।

যখন প্রোফাইল প্রতিক্রিয়া পাওয়া যায় (দেখুন -প্রোফাইল-জেনারেট করুন) প্রকৃত পুনরাবৃত্তি
একটি প্রদত্ত কলের মাধ্যমে ফাংশন পুনরাবৃত্তি হওয়ার সম্ভাবনা থেকে গভীরতা অনুমান করা যেতে পারে
অভিব্যক্তি এই পরামিতি শুধুমাত্র কল এক্সপ্রেশন যার ইনলাইনিং সীমাবদ্ধ
সম্ভাব্যতা প্রদত্ত থ্রেশহোল্ড অতিক্রম করে (শতাংশে)। ডিফল্ট মান হল 10।

প্রারম্ভিক-ইনলাইনিং-ইনসন্স
প্রারম্ভিক ইনলাইনার যে বৃদ্ধি করতে পারে তা নির্দিষ্ট করুন। কার্যত এটি পরিমাণ বৃদ্ধি করে
একটি বড় বিমূর্ততা জরিমানা থাকার কোড জন্য ইনলাইন. ডিফল্ট মান হল 10।

সর্বাধিক-প্রাথমিক-ইনলাইনার-পুনরাবৃত্তি
সর্বাধিক-প্রাথমিক-ইনলাইনার-পুনরাবৃত্তি
প্রারম্ভিক ইনলাইনারের পুনরাবৃত্তির সীমা। এই মূলত সংখ্যা সীমাবদ্ধ
নেস্টেড ইনডাইরেক্ট কল প্রারম্ভিক ইনলাইনার সমাধান করতে পারে। গভীর শিকল এখনও আছে
দেরী ইনলাইন দ্বারা পরিচালিত.

comdat-শেয়ারিং-সম্ভাব্যতা
comdat-শেয়ারিং-সম্ভাব্যতা
কমড্যাট দৃশ্যমানতার সাথে C++ ইনলাইন ফাংশন হওয়ার সম্ভাবনা (শতাংশে)
একাধিক সংকলন ইউনিট জুড়ে ভাগ করা হয়েছে। ডিফল্ট মান হল 20।

min-vect-লুপ-বাউন্ড
সর্বনিম্ন পুনরাবৃত্তির সংখ্যা যার অধীনে লুপগুলি কখন ভেক্টরাইজ করা হয় না৷
-ফ্রি-ভেক্টরাইজ ব্যবহৃত হয়. ভেক্টরাইজেশনের পরে পুনরাবৃত্তির সংখ্যা প্রয়োজন
ভেক্টরাইজেশনের অনুমতি দেওয়ার জন্য এই বিকল্প দ্বারা নির্দিষ্ট করা মানের থেকে বেশি হতে হবে। দ্য
ডিফল্ট মান 0।

gcse-খরচ-দূরত্ব-অনুপাত
সর্বাধিক দূরত্বের গণনার স্কেলিং ফ্যাক্টর দ্বারা একটি অভিব্যক্তি স্থানান্তরিত হতে পারে
GCSE অপ্টিমাইজেশান। এটি বর্তমানে শুধুমাত্র কোড উত্তোলন পাসে সমর্থিত।
অনুপাত যত বড় হবে, তত বেশি আক্রমনাত্মক কোড উত্তোলন সহজ
অভিব্যক্তি, অর্থাত্, যে অভিব্যক্তিগুলির চেয়ে কম খরচ হয়েছে৷ gcse-অনিয়ন্ত্রিত-
মূল্য. 0 নির্দিষ্ট করা সহজ এক্সপ্রেশনের উত্তোলন অক্ষম করে। ডিফল্ট মান হল
10.

gcse-অনিয়ন্ত্রিত-খরচ
খরচ, মোটামুটিভাবে একটি একক সাধারণ মেশিন নির্দেশের খরচ হিসাবে পরিমাপ করা হয়
যা GCSE অপ্টিমাইজেশান একটি অভিব্যক্তি ভ্রমণ করতে পারে এমন দূরত্বকে বাধা দেয় না।
এটি বর্তমানে শুধুমাত্র কোড উত্তোলন পাসে সমর্থিত। খরচ যত কম,
আরো আক্রমনাত্মক কোড উত্তোলন হয়. 0 নির্দিষ্ট করা সমস্ত এক্সপ্রেশনকে অনুমতি দেয়
অনিয়ন্ত্রিত দূরত্ব ভ্রমণ। ডিফল্ট মান হল 3।

সর্বোচ্চ-উত্তোলন-গভীরতা
অভিব্যক্তি উত্তোলন করার জন্য ডমিনেটর গাছে অনুসন্ধানের গভীরতা। এটি ব্যবহার করা হয়
উত্তোলন অ্যালগরিদমে চতুর্মুখী আচরণ এড়াতে। 0 এর মান সীমাবদ্ধ নয়
অনুসন্ধানে, কিন্তু বিশাল ফাংশনগুলির সংকলনকে ধীর করে দিতে পারে। ডিফল্ট মান
30 হয়

max-tail-merge-তুলনা
একটি bb-এর সাথে তুলনা করার জন্য অনুরূপ bbs-এর সর্বাধিক পরিমাণ। এটি এড়াতে ব্যবহৃত হয়
গাছের লেজ একত্রিত করার মধ্যে চতুর্মুখী আচরণ। ডিফল্ট মান হল 10।

সর্বোচ্চ-লেজ-মার্জ-শিরোনাম
ফাংশনের উপর পাসের পুনরাবৃত্তির সর্বাধিক পরিমাণ। এই অভ্যস্ত হয়
গাছের লেজ একত্রিত করার সময় সংকলনের সময় সীমিত করুন। ডিফল্ট মান হল 2।

সর্বোচ্চ-অপ্রচলিত-ইনস
একটি লুপ আনরোল করতে হতে পারে এমন নির্দেশের সর্বাধিক সংখ্যা৷ যদি একটি লুপ
আনরোল করা হয়, এই প্যারামিটারটি লুপ কোডটি কতবার তা নির্ধারণ করে
আনরোল করা

সর্বোচ্চ-গড়-আনরোলড-ইনসন্স
নির্দেশাবলী সর্বোচ্চ সংখ্যা তাদের মৃত্যুদন্ডের সম্ভাবনা দ্বারা পক্ষপাতদুষ্ট যে
একটি লুপ আনরোল করা হতে পারে. একটি লুপ আনরোল করা হলে, এই পরামিতি এছাড়াও
লুপ কোড কতবার আনরোল করা হয়েছে তা নির্ধারণ করে।

সর্বোচ্চ-আনরোল-বার
একটি একক লুপের সর্বোচ্চ সংখ্যক আনরোলিং।

সর্বোচ্চ-খোঁচা-ইনস
একটি লুপ পিল করা হতে পারে যে নির্দেশাবলী সর্বোচ্চ সংখ্যা. যদি একটি লুপ
খোসা ছাড়ানো হয়, এই প্যারামিটারটি লুপ কোডটি কতবার পিল করা হয় তাও নির্ধারণ করে।

সর্বোচ্চ-খোসা-বার
একটি একক লুপের সর্বোচ্চ সংখ্যক পিলিং।

সর্বোচ্চ-খোসা-শাখা
খোসা ছাড়ানো অনুক্রমের মাধ্যমে গরম পাথের সর্বোচ্চ সংখ্যক শাখা।

সর্বোচ্চ-সম্পূর্ণরূপে খোঁচা-ইনসানস
একটি সম্পূর্ণ খোসা ছাড়ানো লুপের সর্বোচ্চ সংখ্যা।

সর্বোচ্চ-সম্পূর্ণরূপে খোঁচা-সময়
সম্পূর্ণ খোসা ছাড়ানোর জন্য উপযুক্ত হওয়ার জন্য একটি লুপের পুনরাবৃত্তির সর্বাধিক সংখ্যা।

সর্বোচ্চ-সম্পূর্ণ-খোঁচা-লুপ-নেস্ট-গভীরতা
সম্পূর্ণ পিলিং জন্য উপযুক্ত একটি লুপ নেস্টের সর্বোচ্চ গভীরতা।

ম্যাক্স-উনসুইচ-ইনস
একটি আনসুইচড লুপের সর্বোচ্চ সংখ্যক insns.

সর্বোচ্চ-আনসুইচ-স্তর
একটি একক লুপে আনসুইচ করা শাখার সর্বাধিক সংখ্যা৷

lim- ব্যয়বহুল
লুপ ইনভেরিয়েন্ট গতিতে একটি ব্যয়বহুল এক্সপ্রেশনের ন্যূনতম খরচ।

iv-বিবেচনা করুন-সমস্ত-প্রার্থী-আবদ্ধ
ইন্ডাকশন ভেরিয়েবলের জন্য প্রার্থীদের সংখ্যার উপর আবদ্ধ, যার নীচে সমস্ত প্রার্থী
আনয়ন পরিবর্তনশীল অপ্টিমাইজেশান প্রতিটি ব্যবহারের জন্য বিবেচনা করা হয়. যদি থাকে
এর চেয়ে বেশি প্রার্থী, শুধুমাত্র সবচেয়ে প্রাসঙ্গিকদের এড়াতে বিবেচনা করা হয়
দ্বিঘাত সময় জটিলতা।

iv-সর্বোচ্চ-বিবেচিত-ব্যবহার
ইন্ডাকশন ভেরিয়েবল অপ্টিমাইজেশানগুলি লুপগুলিতে ছেড়ে দেয় যেগুলিতে আরও আনয়ন থাকে৷
পরিবর্তনশীল ব্যবহার।

iv-সর্বদা-ছাঁটাই-ক্যান্ড-সেট-বাউন্ড
যদি সেটে পরীক্ষার্থীর সংখ্যা এই মানের থেকে কম হয় তবে সর্বদা চেষ্টা করুন
একটি নতুন যোগ করার সময় সেট থেকে অপ্রয়োজনীয় ivs সরান।

scev-max-expr-আকার
স্কেলার বিবর্তন বিশ্লেষক ব্যবহৃত এক্সপ্রেশন আকারের উপর আবদ্ধ। বড়
অভিব্যক্তি বিশ্লেষক ধীর.

scev-max-expr-জটিলতা
স্কেলার বিবর্তন বিশ্লেষকের অভিব্যক্তির জটিলতার উপর আবদ্ধ।
জটিল অভিব্যক্তি বিশ্লেষক ধীর.

ওমেগা-ম্যাক্স-ভার্স
একটি ওমেগা সীমাবদ্ধতা সিস্টেমে ভেরিয়েবলের সর্বাধিক সংখ্যা। ডিফল্ট মান
128 হয়

ওমেগা-ম্যাক্স-গেকস
একটি ওমেগা সীমাবদ্ধতা সিস্টেমে অসমতার সর্বাধিক সংখ্যা। ডিফল্ট
মান হল 256।

ওমেগা-ম্যাক্স-ইকিউএস
একটি ওমেগা সীমাবদ্ধতা সিস্টেমে সর্বোচ্চ সংখ্যক সমতা। ডিফল্ট মান
128 হয়

ওমেগা-ম্যাক্স-ওয়াইল্ড-কার্ড
ওয়াইল্ডকার্ড ভেরিয়েবলের সর্বাধিক সংখ্যা যা ওমেগা সমাধানকারী সন্নিবেশ করতে সক্ষম।
ডিফল্ট মান 18।

ওমেগা-হ্যাশ-টেবিল-আকার
ওমেগা সলভারে হ্যাশ টেবিলের আকার। ডিফল্ট মান 550।

ওমেগা-ম্যাক্স-কী
ওমেগা সমাধানকারী দ্বারা ব্যবহৃত কীগুলির সর্বাধিক সংখ্যা৷ ডিফল্ট মান 500।

ওমেগা-বর্জন-অপ্রয়োজনীয়-সীমাবদ্ধতা
1 এ সেট করা হলে, সমস্ত অপ্রয়োজনীয় সীমাবদ্ধতা দূর করতে ব্যয়বহুল পদ্ধতি ব্যবহার করুন। দ্য
ডিফল্ট মান 0।

vect-max-version-for-alignment-check
লুপ করার সময় সর্বাধিক রান-টাইম চেক করা যেতে পারে
ভেক্টরাইজারে প্রান্তিককরণের জন্য সংস্করণ।

vect-max-version-for-alias-চেক
লুপ করার সময় সর্বাধিক রান-টাইম চেক করা যেতে পারে
ভেক্টরাইজারে উপনামের জন্য সংস্করণ।

ভ্যাক্ট-ম্যাক্স-পিলিং-ফর-সারিবদ্ধকরণ
ভেক্টরাইজারের জন্য অ্যাক্সেস প্রান্তিককরণ উন্নত করতে লুপ পিলের সর্বাধিক সংখ্যা। মান
-1 মানে 'নো লিমিট'।

সর্বাধিক-পুনরাবৃত্তি-টু-ট্র্যাক
বিশ্লেষণের জন্য ব্রুট-ফোর্স অ্যালগরিদমের একটি লুপের পুনরাবৃত্তির সর্বাধিক সংখ্যা
লুপের পুনরাবৃত্তির সংখ্যা মূল্যায়ন করার চেষ্টা করে।

হট-বিবি-কাউন্ট-ডাব্লুএস-পারমিল
একটি মৌলিক ব্লক প্রোফাইল গণনা গরম বলে মনে করা হয় যদি এটি প্রদত্ত ক্ষেত্রে অবদান রাখে
সম্পূর্ণ প্রোফাইল এক্সিকিউশনের পারমিলেজ (অর্থাৎ 0...1000)।

গরম-বিবি-ফ্রিকোয়েন্সি-ভগ্নাংশ
বেসিক ব্লকের এক্সিকিউশনের এন্ট্রি ব্লক ফ্রিকোয়েন্সির ভগ্নাংশ নির্বাচন করুন
মৌলিক ব্লক দেওয়া ফাংশন গরম বিবেচনা করা প্রয়োজন.

সর্বোচ্চ-পূর্বাভাসিত-পুনরাবৃত্তি
লুপ পুনরাবৃত্তির সর্বাধিক সংখ্যা আমরা স্থিরভাবে ভবিষ্যদ্বাণী করি। এটি দরকারী
ক্ষেত্রে যেখানে একটি ফাংশন পরিচিত আবদ্ধ এবং অন্য লুপ সহ একটি একক লুপ ধারণ করে
অজানা আবদ্ধ সঙ্গে. পুনরাবৃত্তির পরিচিত সংখ্যা সঠিকভাবে ভবিষ্যদ্বাণী করা হয়, যখন
পুনরাবৃত্তির অজানা সংখ্যা গড় প্রায় 10। এর মানে হল লুপ
সীমা ছাড়া অন্য একটি আপেক্ষিক কৃত্রিমভাবে ঠান্ডা প্রদর্শিত হবে.

সারিবদ্ধ করুন
একটি মৌলিক ব্লকের সর্বোচ্চ কম্পাঙ্কের একটি ভগ্নাংশ নির্বাচন করুন
মৌলিক ব্লক সারিবদ্ধ করার ফাংশন।

সারিবদ্ধ-লুপ-পুনরাবৃত্তি
অন্তত নির্বাচিত সংখ্যক পুনরাবৃত্তির প্রত্যাশিত একটি লুপ সারিবদ্ধ করা হয়েছে।

ট্রেসার-ডাইনামিক-কভারেজ
ট্রেসার-ডাইনামিক-কভারেজ-প্রতিক্রিয়া
এই মানটি একবার প্রদত্ত শতাংশের পরে সুপারব্লক গঠন সীমিত করতে ব্যবহৃত হয়
সম্পাদিত নির্দেশাবলী আচ্ছাদিত করা হয়. এটি অপ্রয়োজনীয় কোড আকারের প্রসারণকে সীমাবদ্ধ করে।

সার্জারির ট্রেসার-ডাইনামিক-কভারেজ-প্রতিক্রিয়া প্রোফাইল ফিডব্যাক হলেই ব্যবহার করা হয়
উপলব্ধ আসল প্রোফাইলগুলি (স্ট্যাটিক্যালি আনুমানিকগুলির বিপরীতে) অনেক বেশি
কম সুষম থ্রেশহোল্ড বড় মান হতে অনুমতি দেয়.

ট্রেসার-ম্যাক্স-কোড-বৃদ্ধি
কোড বৃদ্ধি প্রদত্ত শতাংশে পৌঁছে গেলে টেল ডুপ্লিকেশন বন্ধ করুন। এটা একটা
বরং কৃত্রিম সীমা, কারণ বেশিরভাগ সদৃশগুলি পরে ক্রস-এ মুছে ফেলা হয়
জাম্পিং, তাই এটি পছন্দসই কোড বৃদ্ধির চেয়ে অনেক বেশি মান সেট করা যেতে পারে।

ট্রেসার-মিন-শাখা-অনুপাত
সেরা প্রান্তের বিপরীত সম্ভাবনা এর চেয়ে কম হলে বিপরীত বৃদ্ধি বন্ধ করুন
থ্রেশহোল্ড (শতাংশে)।

ট্রেসার-মিন-শাখা-অনুপাত
ট্রেসার-মিন-শাখা-অনুপাত-প্রতিক্রিয়া
যদি সেরা প্রান্তের সম্ভাবনা এই প্রান্তিকের চেয়ে কম থাকে তবে অগ্রগতির বৃদ্ধি বন্ধ করুন।

একইভাবে ট্রেসার-ডাইনামিক-কভারেজ দুটি মান উপস্থিত, একটি সংকলনের জন্য
প্রোফাইল ফিডব্যাকের জন্য এবং একটি ছাড়া সংকলনের জন্য। সংকলনের মান
প্রোফাইল প্রতিক্রিয়া সহ আরও রক্ষণশীল হতে হবে (উচ্চতর) করার জন্য
ট্রেসার কার্যকর।

max-cse-পাথ-দৈর্ঘ্য
CSE বিবেচনা করে পাথের মৌলিক ব্লকের সর্বাধিক সংখ্যা। ডিফল্ট হল 10।

সর্বোচ্চ-সিএসই-ইনস
সিএসই ফ্লাশ করার আগে সর্বাধিক সংখ্যক নির্দেশাবলী প্রসেস করে। ডিফল্ট হয়
1000.

জিজিসি-মিন-এক্সপ্যান্ড
GCC তার নিজস্ব মেমরি বরাদ্দ পরিচালনা করতে একটি আবর্জনা সংগ্রহকারী ব্যবহার করে। এই পরামিতি
ন্যূনতম শতাংশ নির্দিষ্ট করে যার দ্বারা আবর্জনা সংগ্রহকারীর স্তূপ হওয়া উচিত
সংগ্রহের মধ্যে প্রসারিত করার অনুমতি দেওয়া হয়েছে। এটি টিউন করলে সংকলনের গতি উন্নত হতে পারে;
কোড জেনারেশনের উপর এর কোন প্রভাব নেই।

ডিফল্ট হল 30% + 70% * (RAM/1GB) যার উপরের সীমা 100% যখন RAM >= 1GB হয়।
যদি "getrlimit" পাওয়া যায়, তাহলে "RAM" এর ধারণাটি প্রকৃত RAM এর সবচেয়ে ছোট এবং
"RLIMIT_DATA" বা "RLIMIT_AS"। GCC একটি নির্দিষ্ট উপর RAM গণনা করতে সক্ষম না হলে
প্ল্যাটফর্ম, 30% এর নিম্ন সীমা ব্যবহার করা হয়। এই পরামিতি সেট করা এবং ggc-মিন-
গাদা আকার শূন্য থেকে প্রতিটি সুযোগে একটি সম্পূর্ণ সংগ্রহ ঘটতে পারে। এই
অত্যন্ত ধীর, কিন্তু ডিবাগ করার জন্য দরকারী হতে পারে।

ggc-মিন-হেপসাইজ
আবর্জনা সংগ্রহকারীর স্তূপের ন্যূনতম আকার সংগ্রহ করা শুরু করার আগে
আবর্জনা গাদা প্রসারিত হওয়ার পরে প্রথম সংগ্রহ ঘটে জিজিসি-মিন-এক্সপ্যান্ড%
তার পরেও ggc-মিন-হেপসাইজ. আবার, এই টিউনিং কম্পাইলেশন গতি উন্নত করতে পারে, এবং
কোড জেনারেশনের উপর কোন প্রভাব নেই।

ডিফল্ট হল RAM/8, RLIMIT_RSS এর থেকে ছোট, বা একটি সীমা যা নিশ্চিত করার চেষ্টা করে
যে RLIMIT_DATA বা RLIMIT_AS অতিক্রম করা হয় না, তবে 4096 এর নিম্ন সীমার সাথে
(চার মেগাবাইট) এবং 131072 (128 মেগাবাইট) এর একটি উপরের সীমানা। যদি GCC সক্ষম না হয়
একটি নির্দিষ্ট প্ল্যাটফর্মে RAM গণনা করতে, নিম্ন সীমা ব্যবহার করা হয়। এই সেট করা
প্যারামিটার খুব বড় কার্যকরভাবে আবর্জনা সংগ্রহ নিষ্ক্রিয় করে। এই সেট করা
প্যারামিটার এবং জিজিসি-মিন-এক্সপ্যান্ড শূন্য থেকে প্রতিটি সময়ে একটি সম্পূর্ণ সংগ্রহ ঘটতে পারে
সুযোগ।

সর্বোচ্চ-রিলোড-অনুসন্ধান-ইনসানস
নির্দেশ রিলোডের সর্বাধিক সংখ্যা সমতুল্যের জন্য পিছনে দেখা উচিত
নিবন্ধন. ক্রমবর্ধমান মান মানে আরো আক্রমনাত্মক অপ্টিমাইজেশান, তৈরীর
সম্ভবত সামান্য ভাল কর্মক্ষমতা সঙ্গে সংকলন সময় বৃদ্ধি. ডিফল্ট
মান হল 100।

max-cselib-মেমরি-অবস্থান
সর্বাধিক সংখ্যক মেমরি অবস্থান cselib অ্যাকাউন্টে নেওয়া উচিত।
ক্রমবর্ধমান মান মানে আরো আক্রমনাত্মক অপ্টিমাইজেশান, সংকলনের সময় তৈরি করে৷
সম্ভবত সামান্য ভাল কর্মক্ষমতা সঙ্গে বৃদ্ধি. ডিফল্ট মান 500।

পুনর্বিন্যাস-ব্লক-সদৃশ
পুনর্বিন্যাস-ব্লক-সদৃশ-প্রতিক্রিয়া
নিঃশর্ত ব্যবহার করতে হবে কিনা তা সিদ্ধান্ত নিতে বেসিক ব্লক রিঅর্ডারিং পাস দ্বারা ব্যবহৃত হয়
শাখা বা তার গন্তব্যে কোড সদৃশ. কোড ডুপ্লিকেট করা হয় যখন এটি
আনুমানিক আকার আনুমানিক আকার দ্বারা গুণিত এই মান থেকে ছোট
প্রোগ্রামের হট স্পট মধ্যে নিঃশর্ত লাফ.

সার্জারির পুনর্বিন্যাস-ব্লক-ডুপ্লিকেট-প্রতিক্রিয়া প্রোফাইল ফিডব্যাক হলেই ব্যবহার করা হয়
উপলব্ধ এটি এর চেয়ে উচ্চতর মানগুলিতে সেট করা হতে পারে৷ পুনর্বিন্যাস-ব্লক-ডুপ্লিকেট থেকে
হট স্পট সম্পর্কে তথ্য আরও সঠিক।

সর্বোচ্চ-নির্ধারিত-প্রস্তুত-ইনন্স
নির্দেশের সর্বোচ্চ সংখ্যা নির্ধারণকারী জারি করা উচিত
প্রথম সময়সূচী পাসের সময় যে কোনো সময় বিবেচনা করুন। ক্রমবর্ধমান মান
আরও পুঙ্খানুপুঙ্খ অনুসন্ধান মানে, সংকলনের সময় সম্ভবত বৃদ্ধি করে
সামান্য সুবিধা। ডিফল্ট মান হল 100।

সর্বোচ্চ-নির্ধারিত-অঞ্চল-ব্লক
আন্তঃব্লকের জন্য একটি অঞ্চলের সর্বাধিক সংখ্যক ব্লক বিবেচনা করা হবে
সময়সূচী ডিফল্ট মান হল 10।

সর্বোচ্চ-পাইপলাইন-অঞ্চল-ব্লক
একটি অঞ্চলে পাইপলাইন করার জন্য বিবেচনা করা ব্লকের সর্বাধিক সংখ্যা৷
নির্বাচনী সময়সূচী। ডিফল্ট মান হল 15।

সর্বোচ্চ-শেড-অঞ্চল-ইনস
আন্তঃব্লকের জন্য বিবেচনা করা একটি অঞ্চলে সর্বাধিক সংখ্যক insns
সময়সূচী ডিফল্ট মান হল 100।

max-পাইপলাইন-অঞ্চল-insns
একটি অঞ্চলে পাইপলাইন করার জন্য বিবেচিত ইনএসএন-এর সর্বাধিক সংখ্যা৷
নির্বাচনী সময়সূচী। ডিফল্ট মান হল 200।

মিন-স্পেক-প্রোব
ইন্টারব্লকের জন্য উৎস ব্লকে পৌঁছানোর ন্যূনতম সম্ভাবনা (শতাংশে)
অনুমানমূলক সময়সূচী ডিফল্ট মান 40।

সর্বোচ্চ-শেড-এক্সটেন্ড-অঞ্চল-উত্সর্গ
অঞ্চলগুলি প্রসারিত করতে CFG এর মাধ্যমে পুনরাবৃত্তির সর্বাধিক সংখ্যা৷ 0 এর একটি মান (
ডিফল্ট) অঞ্চল এক্সটেনশন নিষ্ক্রিয় করে।

সর্বোচ্চ-শেড-ইন-কন-কন-কনফ্লিক্ট-ডিসল্লে
অনুমানমূলক গতির জন্য বিবেচনা করা একটি insn-এর জন্য সর্বাধিক দ্বন্দ্ব বিলম্ব।
ডিফল্ট মান 3।

সময়সূচী-স্পেক-প্রোব-কাট অফ
ফটকা সাফল্যের ন্যূনতম সম্ভাবনা (শতাংশে), যাতে অনুমানমূলক
insns নির্ধারিত হয়. ডিফল্ট মান 40।

তফসিল-নির্দিষ্ট-পূর্ব-প্রোব-কাটফফ
ন্যূনতম সম্ভাবনা একটি প্রান্ত সময়সূচী তার অবস্থা সংরক্ষণ করতে হবে
এটা জুড়ে ডিফল্ট মান হল 10।

নির্ধারিত-মেম-সত্য-ডিপ-কস্ট
স্টোর এবং লোডের মধ্যে ন্যূনতম দূরত্ব (CPU চক্রে) একই মেমরিকে লক্ষ্য করে
অবস্থান ডিফল্ট মান হল 1।

selsched-max-lokahead
সিলেক্টিভ শিডিউলিংয়ের লুকআহেড উইন্ডোর সর্বোচ্চ আকার। এটি একটি গভীরতা
উপলব্ধ নির্দেশাবলী জন্য অনুসন্ধান. ডিফল্ট মান 50।

সেলসচেড-ম্যাক্স-বার বার
সিলেক্টিভ চলাকালীন সর্বোচ্চ কতবার নির্দেশ দেওয়া হয়েছে
সময়সূচী এটি পুনরাবৃত্তির সংখ্যার সীমা যার মাধ্যমে
নির্দেশ পাইপলাইন করা হতে পারে. ডিফল্ট মান হল 2।

selsched-max-insns-নাম পরিবর্তন করুন
প্রস্তুত তালিকার সেরা নির্দেশাবলীর সর্বাধিক সংখ্যা যার জন্য বিবেচনা করা হয়
সিলেক্টিভ সিডিউলারে নাম পরিবর্তন করা হচ্ছে। ডিফল্ট মান হল 2।

এসএমএস-মিন-এসসি
পর্যায় গণনার ন্যূনতম মান যা সুইং মডিউল শিডিউলার তৈরি করে। দ্য
ডিফল্ট মান 2।

সর্বোচ্চ-শেষ-মান-আরটিএল
একটি এক্সপ্রেশনে রেকর্ড করা যেতে পারে এমন RTL-এর সংখ্যা হিসাবে পরিমাপ করা সর্বাধিক মাপ
একটি সিউডো রেজিস্টারের জন্য কম্বাইনারে সেই রেজিস্টারের সর্বশেষ পরিচিত মান হিসাবে। দ্য
ডিফল্ট 10000।

পূর্ণসংখ্যা-ভাগ-সীমা
ছোট পূর্ণসংখ্যার ধ্রুবকগুলি একটি ভাগ করা ডেটা স্ট্রাকচার ব্যবহার করতে পারে, কম্পাইলারের হ্রাস করে
মেমরি ব্যবহার এবং এর গতি বৃদ্ধি। এটি একটি ভাগ করা সর্বোচ্চ মান সেট করে
পূর্ণসংখ্যা ধ্রুবক। ডিফল্ট মান হল 256।

এসএসপি-বাফার-সাইজ
বাফারের ন্যূনতম আকার (যেমন অ্যারে) যা স্ট্যাক স্ম্যাশিং সুরক্ষা পায়
কখন -fstack-সুরক্ষা ব্যবহৃত হয়.

উবুন্টু 10.10 এর আগে এই ডিফল্ট ছিল "8"। বর্তমানে এটি "4", বাড়ানোর জন্য
স্ট্যাক প্রটেক্টর দ্বারা সুরক্ষিত ফাংশন সংখ্যা.

সর্বোচ্চ-জাম্প-থ্রেড-ডুপ্লিকেশন-এসটিএমটিএস
একটি ব্লকে অনুমোদিত বিবৃতিগুলির সর্বাধিক সংখ্যা যা যখন নকল করা প্রয়োজন৷
থ্রেডিং জাম্প

ক্ষেত্র-সংবেদনশীল জন্য সর্বাধিক-ক্ষেত্র
একটি কাঠামোর মধ্যে সর্বাধিক সংখ্যক ক্ষেত্রের সময় একটি ক্ষেত্রের সংবেদনশীল পদ্ধতিতে চিকিত্সা করা হয়৷
পয়েন্টার বিশ্লেষণ। এর জন্য ডিফল্ট শূন্য -ও0 এবং -ও1, এবং 100 এর জন্য -ওএস, -ও2, এবং
-ও3.

প্রিফেচ-লেটেন্সি
প্রিফেচ করার আগে নির্বাহিত নির্দেশাবলীর গড় সংখ্যা অনুমান করুন
শেষ সামনের দূরত্ব এই ধ্রুবকের সমানুপাতিক।
এই সংখ্যা বাড়ানোর ফলে কম স্ট্রীম প্রিফেচ করা হতে পারে (দেখুন
যুগপত-প্রিফেচ).

যুগপত-প্রিফেচ
সর্বোচ্চ সংখ্যক প্রিফেচ যা একই সময়ে চলতে পারে।

l1-ক্যাশে-লাইন-আকার
L1 ক্যাশে ক্যাশে লাইনের আকার, বাইটে।

l1-ক্যাশে-আকার
L1 ক্যাশের আকার, কিলোবাইটে।

l2-ক্যাশে-আকার
L2 ক্যাশের আকার, কিলোবাইটে।

মিন-ইনএসএন-টু-প্রিফেচ-অনুপাত
নির্দেশের সংখ্যা এবং প্রিফেচের সংখ্যার মধ্যে ন্যূনতম অনুপাত
একটি লুপে প্রিফেচিং সক্ষম করতে।

প্রিফেচ-মিন-ইনএসএন-টু-মেম-অনুপাত
নির্দেশের সংখ্যা এবং মেমরির সংখ্যার মধ্যে ন্যূনতম অনুপাত
একটি লুপে প্রিফেচিং সক্ষম করার রেফারেন্স।

ব্যবহার-প্রধান-প্রকার
কম্পাইলার "ক্যাননিকাল" টাইপ সিস্টেম ব্যবহার করা উচিত কিনা। ডিফল্টরূপে, এই
সর্বদা 1 হওয়া উচিত, যা তুলনা করার জন্য আরও দক্ষ অভ্যন্তরীণ প্রক্রিয়া ব্যবহার করে
সি++ এবং অবজেক্টিভ-সি++ এ প্রকার। তবে ক্যানোনিকাল টাইপ সিস্টেমে বাগ থাকলে
সংকলন ব্যর্থতার কারণ, ক্যানোনিকাল প্রকারগুলি নিষ্ক্রিয় করতে এই মানটি 0 এ সেট করুন।

সুইচ-রূপান্তর-সর্বোচ্চ-শাখা-অনুপাত
সুইচ ইনিশিয়ালাইজেশন কনভার্সন এর থেকে বড় অ্যারে তৈরি করতে অস্বীকার করে
সুইচ-রূপান্তর-সর্বোচ্চ-শাখা-অনুপাত সুইচের শাখার সংখ্যার গুণ।

সর্বোচ্চ-আংশিক-অ্যান্টিক-দৈর্ঘ্য
আংশিক অ্যান্টিক সেটের সর্বাধিক দৈর্ঘ্য ট্রি আংশিক হওয়ার সময় গণনা করা হয়
অপ্রয়োজনীয়তা দূরীকরণ অপ্টিমাইজেশান (-ফ্রি-প্রি) অপ্টিমাইজ করার সময় -ও3 এবং উপরে.
কিছু ধরণের সোর্স কোডের জন্য বর্ধিত আংশিক অপ্রয়োজনীয়তা দূর করা হয়েছে
অপ্টিমাইজেশান দূরে চলে যেতে পারে, হোস্টে উপলব্ধ সমস্ত মেমরি গ্রাস করে
মেশিন এই প্যারামিটারটি গণনা করা সেটগুলির দৈর্ঘ্যের একটি সীমা নির্ধারণ করে,
যা পলাতক আচরণ প্রতিরোধ করে। এই প্যারামিটারের জন্য 0 এর একটি মান সেট করা হচ্ছে
একটি সীমাহীন সেট দৈর্ঘ্যের অনুমতি দেয়।

sccvn-max-scc-আকার
SCCVN প্রক্রিয়াকরণের সময় একটি দৃঢ়ভাবে সংযুক্ত উপাদানের (SCC) সর্বাধিক আকার। যদি
এই সীমা আঘাত করা হয়, পুরো ফাংশনের জন্য SCCVN প্রক্রিয়াকরণ করা হয় না এবং
এটির উপর নির্ভর করে অপ্টিমাইজেশানগুলি নিষ্ক্রিয়। ডিফল্ট সর্বোচ্চ SCC আকার
10000.

sccvn-max-alias-queries-প্রতি-অ্যাক্সেস
রিডানড্যান্সি খোঁজার সময় আমরা সর্বাধিক সংখ্যক উপনাম-ওরাকল কোয়েরি করি
লোড এবং দোকান জন্য. এই সীমা আঘাত করা হলে অনুসন্ধান বাতিল করা হয় এবং লোড বা
দোকান অপ্রয়োজনীয় বিবেচনা করা হয় না. প্রশ্নের সংখ্যা অ্যালগরিদমিকভাবে
লোড থেকে ফাংশন এন্ট্রি পর্যন্ত সমস্ত পাথে স্টোরের সংখ্যার মধ্যে সীমাবদ্ধ।
প্রশ্নগুলির ডিফল্ট সর্বাধিক সংখ্যা হল 1000৷

ইরা-ম্যাক্স-লুপস-নাম
আইআরএ ডিফল্টরূপে আঞ্চলিক রেজিস্টার বরাদ্দ ব্যবহার করে। যদি একটি ফাংশন আরও ধারণ করে
এই পরামিতি দ্বারা প্রদত্ত সংখ্যা থেকে loops, শুধুমাত্র সর্বাধিক প্রদত্ত সংখ্যা
আঞ্চলিক নিবন্ধন বরাদ্দের জন্য সবচেয়ে ঘন ঘন-সম্পাদিত লুপগুলি অঞ্চল গঠন করে।
প্যারামিটারের ডিফল্ট মান হল 100।

আইআরএ-ম্যাক্স-বিরোধী-টেবিল-আকার
যদিও IRA দ্বন্দ্ব টেবিল সংকুচিত করার জন্য একটি পরিশীলিত অ্যালগরিদম ব্যবহার করে,
বিশাল ফাংশনগুলির জন্য টেবিলের এখনও অত্যধিক মেমরির প্রয়োজন হতে পারে। যদি
একটি ফাংশনের জন্য দ্বন্দ্ব টেবিল এটি দ্বারা প্রদত্ত এমবি আকারের চেয়ে বেশি হতে পারে
প্যারামিটার, রেজিস্টার বরাদ্দকারী পরিবর্তে একটি দ্রুত, সহজ এবং নিম্ন-
মানের অ্যালগরিদম যার জন্য একটি ছদ্ম-নিবন্ধন দ্বন্দ্ব টেবিল তৈরির প্রয়োজন নেই।
প্যারামিটারের ডিফল্ট মান হল 2000।

ira-loop-resserved-regs
সিদ্ধান্তের জন্য লুপগুলিতে আরও সঠিক রেজিস্টার চাপ মূল্যায়ন করতে IRA ব্যবহার করা যেতে পারে
লুপ ইনভেরিয়েন্টগুলি সরাতে (দেখুন -ও3) জন্য সংরক্ষিত উপলব্ধ রেজিস্টার সংখ্যা
কিছু অন্যান্য উদ্দেশ্য এই পরামিতি দ্বারা দেওয়া হয়. এর ডিফল্ট মান
পরামিতি হল 2, যা সাধারণের জন্য প্রয়োজনীয় রেজিস্টারের ন্যূনতম সংখ্যা
নির্দেশাবলী এই মানটি অসংখ্য পরীক্ষা-নিরীক্ষা থেকে পাওয়া সেরা।

লুপ-ইনভেরিয়েন্ট-ম্যাক্স-বিবিএস-ইন-লুপ
লুপ ইনভেরিয়েন্ট মোশন খুব ব্যয়বহুল হতে পারে, সংকলন সময় এবং ইন উভয় ক্ষেত্রেই
খুব বড় লুপ সহ প্রয়োজনীয় কম্পাইল-টাইম মেমরির পরিমাণ। আরো সঙ্গে loops
এই প্যারামিটারের চেয়ে মৌলিক ব্লকে লুপ ইনভেরিয়েন্ট মোশন অপ্টিমাইজেশান থাকবে না
তাদের উপর সঞ্চালিত. প্যারামিটারের ডিফল্ট মান হল 1000 এর জন্য -ও1 এবং 10000
উন্নত -ও2 এবং উপরে.

লুপ-ম্যাক্স-ড্যাটারেফস-ফর-ডেটেডেপস
অনেক বড় লুপের জন্য ডেটা ডিপেনডেন্সি তৈরি করা ব্যয়বহুল। এই পরামিতি
লুপগুলিতে ডেটা রেফারেন্সের সংখ্যা সীমিত করে যা ডেটার জন্য বিবেচনা করা হয়
নির্ভরতা বিশ্লেষণ। এই বড় লুপগুলি ব্যবহার করে অপ্টিমাইজেশন দ্বারা পরিচালিত হয় না
লুপ ডেটা নির্ভরতা। ডিফল্ট মান হল 1000।

max-vartrack-আকার
পরিবর্তনশীল ট্র্যাকিং ডেটাফ্লো চলাকালীন ব্যবহার করার জন্য সর্বাধিক সংখ্যক হ্যাশ টেবিল স্লট সেট করে
কোন ফাংশন বিশ্লেষণ। এই সীমা পরিবর্তনশীল ট্র্যাকিং সঙ্গে অতিক্রম করা হলে
অ্যাসাইনমেন্টগুলি সক্রিয় করা হয়েছে, সেই ফাংশনের জন্য বিশ্লেষণের পরে এটি ছাড়াই পুনরায় চেষ্টা করা হয়
ফাংশন থেকে সমস্ত ডিবাগ insns মুছে ফেলা হচ্ছে। সীমা ছাড়িয়ে গেলেও
ডিবাগ insns, var ট্র্যাকিং বিশ্লেষণ ফাংশনের জন্য সম্পূর্ণরূপে অক্ষম করা হয়েছে৷
প্যারামিটারটিকে শূন্যে সেট করা এটিকে সীমাহীন করে তোলে।

max-vartrack-expr-গভীরতা
পরিবর্তনশীল নাম ম্যাপ করার চেষ্টা করার সময় সর্বাধিক সংখ্যক পুনরাবৃত্তি স্তর সেট করে বা
মান এক্সপ্রেশনে অস্থায়ী ডিবাগ করুন। এই আরো জন্য সংকলন সময় ট্রেড
সম্পূর্ণ ডিবাগ তথ্য। এটি খুব কম সেট করা হলে, মান এক্সপ্রেশন যে হয়
উপলব্ধ এবং ডিবাগ তথ্যে উপস্থাপিত হতে পারে শেষ পর্যন্ত ব্যবহার নাও হতে পারে;
এটি উচ্চতর সেট করা কম্পাইলারকে আরও জটিল ডিবাগ খুঁজে পেতে সক্ষম করতে পারে
অভিব্যক্তি, কিন্তু কম্পাইল সময় এবং মেমরি ব্যবহার বৃদ্ধি হতে পারে. ডিফল্ট হল 12।

মিন-ননডেবাগ-ইনস-ইউড
nondebug insns-এর জন্য এই প্যারামিটার থেকে শুরু হওয়া uids ব্যবহার করুন। নীচের পরিসীমা
প্যারামিটার শুধুমাত্র দ্বারা তৈরি ডিবাগ insns-এর জন্য সংরক্ষিত
-fvar-ট্র্যাকিং-অ্যাসাইনমেন্ট, কিন্তু ডিবাগ insns উপরে (নন-ওভারল্যাপিং) uids পেতে পারে
এটা যদি সংরক্ষিত পরিসীমা নিঃশেষ হয়.

ipa-sra-ptr-বৃদ্ধি-কারক
IPA-SRA শুধুমাত্র এক বা একাধিক নতুন প্যারামিটার দিয়ে একটি সমষ্টিতে একটি পয়েন্টার প্রতিস্থাপন করে
যখন তাদের ক্রমবর্ধমান আকার কম বা সমান হয় ipa-sra-ptr-বৃদ্ধি-কারক বার
মূল পয়েন্টার প্যারামিটারের আকার।

tm-সর্বোচ্চ-সমষ্টি-আকার
একটি লেনদেনে থ্রেড-স্থানীয় ভেরিয়েবলের কপি তৈরি করার সময়, এই পরামিতি
বাইটের আকার নির্দিষ্ট করে যার পরে ভেরিয়েবলগুলি লগিংয়ের সাথে সংরক্ষণ করা হয়
ফাংশন কোড সিকোয়েন্স জোড়া সংরক্ষণ/পুনরুদ্ধার করার বিপরীতে। এই বিকল্প শুধুমাত্র
ব্যবহার করার সময় প্রযোজ্য -fgnu-tm.

গ্রাফাইট-ম্যাক্স-এনবি-স্কোপ-প্যারামস
গ্রাফাইট লুপের সূচকীয় প্রভাব এড়াতে, এর সংখ্যা
স্ট্যাটিক কন্ট্রোল পার্ট (SCoP) এর প্যারামিটারগুলি আবদ্ধ। ডিফল্ট মান হল 10
পরামিতি একটি পরিবর্তনশীল যার মান সংকলনের সময় অজানা এবং সংজ্ঞায়িত করা হয়েছে
একটি SCoP এর বাইরে SCoP এর একটি প্যারামিটার।

গ্রাফাইট-ম্যাক্স-বিবিএস-প্রতি-ফাংশন
SCoPs সনাক্তকরণে সূচকীয় প্রভাব এড়াতে, ফাংশনের আকার
গ্রাফাইট দ্বারা বিশ্লেষিত হয় আবদ্ধ। ডিফল্ট মান হল 100টি মৌলিক ব্লক।

লুপ-ব্লক-টাইল-আকার
লুপ ব্লকিং বা স্ট্রিপ মাইনিং রূপান্তর, এর সাথে সক্ষম - ফ্লপ-ব্লক or
-ফ্লুপ-স্ট্রিপ-খনি, একটি প্রদত্ত সংখ্যা দ্বারা লুপ নেস্টের প্রতিটি লুপকে ফালা করুন
পুনরাবৃত্তি ফালা দৈর্ঘ্য ব্যবহার করে পরিবর্তন করা যেতে পারে লুপ-ব্লক-টাইল-আকার
প্যারামিটার ডিফল্ট মান হল 51টি পুনরাবৃত্তি।

ipa-cp-মান-তালিকা-আকার
IPA-CP একটি ফাংশনে পাস করা সমস্ত সম্ভাব্য মান এবং প্রকারগুলি ট্র্যাক করার চেষ্টা করে
তাদের প্রচার এবং ডিভার্চুয়ালাইজেশন সঞ্চালনের জন্য প্যারামিটার। ipa-cp-মান-
তালিকার আকার এটি একটি আনুষ্ঠানিক প্রতি সঞ্চয় করা মান এবং প্রকারের সর্বাধিক সংখ্যা
একটি ফাংশনের প্যারামিটার।

lto-পার্টিশন
WHOPR সংকলনের সময় উত্পাদিত পার্টিশনের পছন্দসই সংখ্যা নির্দিষ্ট করুন। দ্য
পার্টিশনের সংখ্যা কম্পাইলেশনের জন্য ব্যবহৃত CPU-র সংখ্যা অতিক্রম করতে হবে। দ্য
ডিফল্ট মান 32।

এলটিও-মিনিট
WHOPR এর জন্য ন্যূনতম পার্টিশনের আকার (আনুমানিক নির্দেশাবলীতে)। এই বাধা দেয়
খুব ছোট প্রোগ্রামকে অনেকগুলো পার্টিশনে বিভক্ত করার খরচ।

cxx-max-নেমস্পেস-এর জন্য-ডায়াগনস্টিক-হেল্প
C++ নাম খোঁজার সময় পরামর্শের জন্য সর্বাধিক সংখ্যক নামস্থান
একটি শনাক্তকারীর জন্য ব্যর্থ। ডিফল্ট হল 1000।

সিঙ্ক-ফ্রিকোয়েন্সি-থ্রেশহোল্ড
টার্গেট ব্লকের সর্বোচ্চ আপেক্ষিক এক্সিকিউশন ফ্রিকোয়েন্সি (শতাংশে)
একটি স্টেটমেন্টের মূল ব্লকের সাথে সাপেক্ষে একটি স্টেটমেন্ট সিঙ্ক করার অনুমতি দেয়
বিবৃতি বড় সংখ্যার ফলে আরও আক্রমণাত্মক বিবৃতি ডুবে যায়। দ্য
ডিফল্ট মান হল 75। বিবৃতিগুলির জন্য একটি ছোট ইতিবাচক সমন্বয় প্রয়োগ করা হয়
মেমরি অপারেন্ড যেহেতু সেগুলি আরও বেশি লাভজনক তাই ডুবে যায়।

সর্বোচ্চ থেকে সিঙ্ক
সর্বাধিক সংখ্যক শর্তযুক্ত স্টোর জোড়া যা ডুবে যেতে পারে৷ 0 থাকলে সেট করুন
হয় ভেক্টরাইজেশন (-ফ্রি-ভেক্টরাইজ) অথবা যদি-রূপান্তর (-ftre-লুপ-যদি-রূপান্তর)
নিষ্ক্রিয় করা. ডিফল্ট হল 2।

অনুমতি-লোড-ডেটা-রেস
অপ্টিমাইজারদের লোডের উপর নতুন ডেটা রেস চালু করার অনুমতি দিন। অনুমতি দিতে 1 তে সেট করুন,
অন্যথায় 0 তে। এই বিকল্পটি ডিফল্টরূপে সক্রিয় থাকে যদি না এর দ্বারা স্পষ্টভাবে সেট করা হয়
-fmemory-মডেল= বিকল্প।

মঞ্জুরি-স্টোর-ডেটা-রেস
অপ্টিমাইজারদের স্টোরগুলিতে নতুন ডেটা রেস প্রবর্তনের অনুমতি দিন। অনুমতি দিতে 1 তে সেট করুন,
অন্যথায় 0 তে। এই বিকল্পটি ডিফল্টরূপে সক্রিয় থাকে যদি না এর দ্বারা স্পষ্টভাবে সেট করা হয়
-fmemory-মডেল= বিকল্প।

মঞ্জুরি-প্যাকড-লোড-ডেটা-রেস
অপ্টিমাইজারদের প্যাক করা ডেটা লোডের উপর নতুন ডেটা রেস প্রবর্তনের অনুমতি দিন। 1 থেকে সেট করুন
অনুমতি দিন, অন্যথায় 0-তে। এই বিকল্পটি ডিফল্টরূপে সক্রিয় থাকে যদি না পরোক্ষভাবে সেট করা হয়
দ্য -fmemory-মডেল= বিকল্প।

মঞ্জুরি-প্যাকড-স্টোর-ডেটা-রেস
অপ্টিমাইজারদের প্যাকড ডেটা স্টোরগুলিতে নতুন ডেটা রেস প্রবর্তনের অনুমতি দিন। 1 থেকে সেট করুন
অনুমতি দিন, অন্যথায় 0-তে। এই বিকল্পটি ডিফল্টরূপে সক্রিয় থাকে যদি না পরোক্ষভাবে সেট করা হয়
দ্য -fmemory-মডেল= বিকল্প।

কেস-মান-থ্রেশহোল্ড
বিভিন্ন মানের ক্ষুদ্রতম সংখ্যা যার জন্য একটি জাম্প-টেবিল ব্যবহার করা সর্বোত্তম
শর্তাধীন শাখার একটি গাছের পরিবর্তে। মান 0 হলে, এর জন্য ডিফল্ট ব্যবহার করুন
যন্ত্র. ডিফল্ট 0।

গাছ-রিঅ্যাসোক-প্রস্থ
পুনঃসংযুক্ত ট্রিতে সমান্তরালভাবে নির্বাহিত নির্দেশাবলীর সর্বোচ্চ সংখ্যা সেট করুন।
এই প্যারামিটারটি যদি না থাকে তবে ডিফল্টরূপে ব্যবহৃত লক্ষ্য নির্ভর হিউরিস্টিকগুলিকে ওভাররাইড করে
শূন্য মান।

নির্ধারিত-চাপ-অ্যালগরিদম
এর দুটি উপলব্ধ বাস্তবায়নের মধ্যে বেছে নিন -fsched-চাপ. অ্যালগরিদম ঘ
এটি মূল বাস্তবায়ন এবং নির্দেশাবলী থেকে বাধা দেওয়ার সম্ভাবনা বেশি
পুনর্বিন্যাস করা হচ্ছে। অ্যালগরিদম 2 এর মধ্যে একটি আপস করার জন্য ডিজাইন করা হয়েছিল
অ্যালগরিদম 1 দ্বারা নেওয়া অপেক্ষাকৃত রক্ষণশীল পদ্ধতি এবং বরং আক্রমণাত্মক
ডিফল্ট সময়সূচী দ্বারা নেওয়া পদ্ধতি। এটি একটি থাকার উপর আরও বেশি নির্ভর করে
নিয়মিত রেজিস্টার ফাইল এবং সঠিক রেজিস্টার চাপ ক্লাস। দেখা হাইফা-শেড.সি
আরো বিস্তারিত জানার জন্য GCC সূত্রে।

ডিফল্ট পছন্দ টার্গেটের উপর নির্ভর করে।

ম্যাক্স-এসএলএসআর-ক্যান্ড-স্ক্যান
বিদ্যমান প্রার্থীদের সর্বোচ্চ সংখ্যা নির্ধারণ করুন যা চাওয়ার সময় বিবেচনা করা হবে
একটি নতুন সরলরেখা শক্তি হ্রাস প্রার্থীর জন্য একটি ভিত্তি।

অপশন সমূহ নিয়ামক দ্য প্রিপ্রসেসর
এই বিকল্পগুলি সি প্রিপ্রসেসরকে নিয়ন্ত্রণ করে, যা বাস্তবের আগে প্রতিটি সি সোর্স ফাইলে চালানো হয়
সংকলন

আপনি যদি ব্যবহার করেন -E বিকল্প, প্রিপ্রসেসিং ছাড়া কিছুই করা হয় না। এই বিকল্প কিছু
শুধুমাত্র সঙ্গে একসঙ্গে অর্থ করা -E কারণ তারা প্রিপ্রসেসর আউটপুট হতে পারে
প্রকৃত সংকলনের জন্য অনুপযুক্ত।

-ডব্লিউপি,পছন্দ
তুমি ব্যবহার করতে পার -ডব্লিউপি,পছন্দ কম্পাইলার ড্রাইভারকে বাইপাস করতে এবং পাস করতে পছন্দ সরাসরি মাধ্যমে
প্রিপ্রসেসরের কাছে। যদি পছন্দ কমা রয়েছে, এটি একাধিক বিকল্পে বিভক্ত
কমা যাইহোক, অনেক অপশন পরিবর্তিত, অনুবাদ বা ব্যাখ্যা দ্বারা
প্রিপ্রসেসরে পাস করার আগে কম্পাইলার ড্রাইভার, এবং -ডব্লিউপি জোর করে বাইপাস করে
এই পর্যায়। প্রিপ্রসেসরের সরাসরি ইন্টারফেস অনথিভুক্ত এবং বিষয়
পরিবর্তন করুন, তাই যখনই সম্ভব আপনার ব্যবহার এড়ানো উচিত -ডব্লিউপি এবং ড্রাইভারকে পরিচালনা করতে দিন
পরিবর্তে বিকল্প।

-এক্সপ্রেপ্রসেসর পছন্দ
পাস পছন্দ প্রিপ্রসেসরের বিকল্প হিসাবে। আপনি সিস্টেম সরবরাহ করতে এটি ব্যবহার করতে পারেন-
নির্দিষ্ট প্রিপ্রসেসর বিকল্প যা GCC স্বীকৃতি দেয় না।

আপনি যদি একটি যুক্তি পাস করতে চান যে একটি বিকল্প, আপনি ব্যবহার করতে হবে -এক্সপ্রেপ্রসেসর
দুইবার, একবার বিকল্পের জন্য এবং একবার যুক্তির জন্য।

-নো-ইন্টিগ্রেটেড-সিপিপি
সংকলনের আগে একটি পৃথক পাস হিসাবে প্রিপ্রসেসিং সম্পাদন করুন। ডিফল্টরূপে, GCC সম্পাদন করে
ইনপুট টোকেনাইজেশন এবং পার্সিংয়ের একটি সমন্বিত অংশ হিসাবে প্রিপ্রসেসিং। যদি এই বিকল্প
দেওয়া হয়, উপযুক্ত ভাষা সামনের প্রান্তে (cc1, সিসি 1 প্লাস, বা সিসি 1 ওবিজে C, C++ এর জন্য,
এবং অবজেক্টিভ-সি, যথাক্রমে) পরিবর্তে দুবার, একবার শুধুমাত্র প্রি-প্রসেসিংয়ের জন্য আহ্বান করা হয়েছে
এবং একবার প্রিপ্রসেসড ইনপুটের প্রকৃত সংকলনের জন্য। এই বিকল্পটি দরকারী হতে পারে
সঙ্গে সঙ্গে -B or - মোড়ক বিকল্প একটি বিকল্প প্রিপ্রসেসর বা নির্দিষ্ট করার জন্য
স্বাভাবিক প্রিপ্রসেসিং এবং এর মধ্যে প্রোগ্রাম উত্সের অতিরিক্ত প্রক্রিয়াকরণ সঞ্চালন
সংকলন

-D নাম
পূর্বনির্ধারিত নাম একটি ম্যাক্রো হিসাবে, সংজ্ঞা 1 সহ।

-D নাম=সংজ্ঞা
এর বিষয়বস্তু সংজ্ঞা টোকেনাইজড এবং প্রক্রিয়া করা হয় যেন তারা সময় হাজির হয়
অনুবাদের পর্যায় তিন এ # define নির্দেশ বিশেষ করে সংজ্ঞা হবে
এম্বেড করা নতুন লাইনের অক্ষর দ্বারা কাটা।

আপনি যদি একটি শেল বা শেল-সদৃশ প্রোগ্রাম থেকে প্রিপ্রসেসর আহ্বান করেন তবে আপনার প্রয়োজন হতে পারে
শেল এর উদ্ধৃতি সিনট্যাক্স ব্যবহার করে অক্ষরগুলিকে রক্ষা করতে যেমন একটি স্পেস আছে
শেল সিনট্যাক্সের অর্থ।

আপনি যদি কমান্ড লাইনে একটি ফাংশন-মত ম্যাক্রো সংজ্ঞায়িত করতে চান, তাহলে এর আর্গুমেন্ট লিখুন
সমান চিহ্নের আগে পার্শ্ববর্তী বন্ধনী সহ তালিকা (যদি থাকে)। বন্ধনী হল
বেশিরভাগ শেলের জন্য অর্থপূর্ণ, তাই আপনাকে বিকল্পটি উদ্ধৃত করতে হবে। সঙ্গে sh এবং csh,
-ডি'নাম(args...)=সংজ্ঞা' কাজ করে।

-D এবং -U বিকল্পগুলি কমান্ড লাইনে দেওয়া ক্রম অনুসারে প্রক্রিয়া করা হয়। সব
-ইমাক্রোস ফাইল এবং -অন্তর্ভুক্ত ফাইল অপশন সব পরে প্রক্রিয়া করা হয় -D এবং -U অপশন।

-U নাম
এর আগের কোনো সংজ্ঞা বাতিল করুন নাম, হয় অন্তর্নির্মিত বা একটি সঙ্গে প্রদান করা হয় -D বিকল্প।

-undef
কোনো সিস্টেম-নির্দিষ্ট বা GCC-নির্দিষ্ট ম্যাক্রো পূর্বনির্ধারিত করবেন না। মান পূর্বনির্ধারিত
ম্যাক্রো সংজ্ঞায়িত থাকে।

-I Dir
ডিরেক্টরি যোগ করুন Dir হেডার ফাইলের জন্য অনুসন্ধান করা ডিরেক্টরিগুলির তালিকায়।
নামকরণ করা ডিরেক্টরি -I স্ট্যান্ডার্ড সিস্টেম ডিরেক্টরি অন্তর্ভুক্ত করার আগে অনুসন্ধান করা হয়.
যদি ডিরেক্টরি Dir একটি স্ট্যান্ডার্ড সিস্টেম অন্তর্ভুক্ত ডিরেক্টরি, বিকল্পটি উপেক্ষা করা হয়
সিস্টেম ডিরেক্টরি এবং বিশেষ চিকিত্সার জন্য ডিফল্ট অনুসন্ধান আদেশ নিশ্চিত করুন
সিস্টেম হেডার পরাজিত হয় না. যদি Dir "=" দিয়ে শুরু হয়, তারপর "=" হবে
sysroot উপসর্গ দ্বারা প্রতিস্থাপিত; দেখা --sysroot এবং -ইসসরুট.

-o ফাইল
আউটপুট লিখুন ফাইল. এই নির্দিষ্ট হিসাবে একই ফাইল দ্বিতীয় অ-বিকল্প হিসাবে
যুক্তি CPP. জিসিসি একটি দ্বিতীয় অ-বিকল্প যুক্তির একটি ভিন্ন ব্যাখ্যা আছে,
তাই আপনাকে অবশ্যই ব্যবহার করতে হবে -o আউটপুট ফাইল নির্দিষ্ট করতে।

-ওয়াল
সমস্ত ঐচ্ছিক সতর্কবার্তা চালু করে যা স্বাভাবিক কোডের জন্য কাম্য। বর্তমানে এই
is -Wcomment, -Wtrigraphs, -Wmultichar এবং পূর্ণসংখ্যা প্রচার সম্পর্কে একটি সতর্কতা যার ফলে একটি
"#if" এক্সপ্রেশনে সাইনের পরিবর্তন। উল্লেখ্য যে প্রিপ্রসেসরের অনেক সতর্কতা
ডিফল্টরূপে চালু আছে এবং তাদের নিয়ন্ত্রণ করার কোনো বিকল্প নেই।

-Wcomment
- মন্তব্য
যখনই একটি মন্তব্য শুরু ক্রম সতর্ক /* একটি মধ্যে প্রদর্শিত হয় /* মন্তব্য, অথবা যখনই একটি
ব্যাকস্ল্যাশ-নতুন লাইন a এ প্রদর্শিত হয় // মন্তব্য (উভয় ফর্মেরই একই প্রভাব আছে।)

-Wtrigraphs
মন্তব্যের বেশিরভাগ ট্রিগ্রাফ প্রোগ্রামের অর্থকে প্রভাবিত করতে পারে না। যাইহোক, ক
ট্রিগ্রাফ যা একটি পালানো নতুন লাইন গঠন করবে (??/ একটি লাইনের শেষে) can, by
যেখানে মন্তব্য শুরু বা শেষ হয় সেখানে পরিবর্তন করা। অতএব, শুধুমাত্র ট্রিগ্রাফ যে গঠন হবে
পালানো নতুন লাইন একটি মন্তব্যের ভিতরে সতর্কতা তৈরি করে।

এই বিকল্প দ্বারা উহ্য হয় -ওয়াল। যদি -ওয়াল দেওয়া হয়নি, এই বিকল্পটি এখনও সক্রিয় আছে
ট্রিগ্রাফ সক্রিয় না হলে। সতর্কতা ছাড়া trigraph রূপান্তর পেতে, কিন্তু পেতে
অন্যটি -ওয়াল সতর্কতা, ব্যবহার -ট্রিগ্রাফ -ওয়াল -উনো-ট্রিগ্রাফ.

- ঐতিহ্যগত
প্রথাগত এবং ISO C-তে ভিন্নভাবে আচরণ করে এমন কিছু নির্মাণ সম্পর্কে সতর্ক করুন
আইএসও সি কনস্ট্রাক্ট সম্পর্কে সতর্ক করুন যার কোন প্রথাগত সি সমতুল্য নেই এবং সমস্যাযুক্ত
নির্মাণ যা এড়ানো উচিত।

-উন্ডেফ
যখনই একটি ম্যাক্রো নয় এমন একটি শনাক্তকারীর সম্মুখীন হয় তখন সতর্ক করুন৷ #যদি নির্দেশ,
বাহিরে সংজ্ঞায়িত. এই ধরনের শনাক্তকারী শূন্য দিয়ে প্রতিস্থাপিত হয়।

-Wunused-macros
অব্যবহৃত প্রধান ফাইলে সংজ্ঞায়িত ম্যাক্রো সম্পর্কে সতর্ক করুন। একটি ম্যাক্রো হয় ব্যবহৃত যদি এটা হয়
অন্তত একবার অস্তিত্বের জন্য প্রসারিত বা পরীক্ষা করা হয়েছে। প্রিপ্রসেসরও সতর্ক করবে যদি
পুনঃসংজ্ঞায়িত বা অনির্ধারিত সময়ে ম্যাক্রো ব্যবহার করা হয়নি।

অন্তর্নির্মিত ম্যাক্রো, কমান্ড লাইনে সংজ্ঞায়িত ম্যাক্রো এবং সংজ্ঞায়িত ম্যাক্রো অন্তর্ভুক্ত
ফাইল সম্পর্কে সতর্ক করা হয় না.

বিঃদ্রঃ: যদি একটি ম্যাক্রো আসলে ব্যবহার করা হয়, কিন্তু শুধুমাত্র এড়িয়ে যাওয়া শর্তসাপেক্ষ ব্লকে ব্যবহার করা হয়, তাহলে
CPP এটি অব্যবহৃত হিসাবে রিপোর্ট করবে। এই ধরনের ক্ষেত্রে সতর্কতা এড়াতে, আপনি উন্নতি করতে পারেন
ম্যাক্রোর সংজ্ঞার সুযোগ, উদাহরণস্বরূপ, এটিকে প্রথম এড়িয়ে যাওয়া-এ স্থানান্তর করা
ব্লক বিকল্পভাবে, আপনি এমন কিছু দিয়ে একটি ডামি ব্যবহার প্রদান করতে পারেন:

#যদি_macro_causing_the_warning সংজ্ঞায়িত করা হয়
#endif

-ওয়েন্ডিফ-লেবেল
সতর্ক করুন যখনই একটি # আরও বা একটি #endif টেক্সট দ্বারা অনুসরণ করা হয়. এটি সাধারণত ঘটে
ফর্মের কোড

#যদি FOO
...
# অন্য FOO
...
#endif FOO

দ্বিতীয় এবং তৃতীয় "FOO" মন্তব্যে থাকা উচিত, তবে প্রায়শই পুরানো প্রোগ্রামগুলিতে থাকে না।
এই সতর্কতা ডিফল্টরূপে চালু আছে।

-ভুল
সমস্ত সতর্কতাকে কঠিন ত্রুটিতে পরিণত করুন। সোর্স কোড যা সতর্কতা ট্রিগার করবে
প্রত্যাখ্যাত.

-Wsystem-headers
সিস্টেম হেডারে কোডের জন্য সতর্কতা জারি করুন। এগুলি সাধারণত খুঁজে পেতে অসহায়
আপনার নিজের কোডে বাগ, তাই চাপা। আপনি যদি সিস্টেমের জন্য দায়ী হন
লাইব্রেরি, আপনি তাদের দেখতে চাইতে পারেন।

-w ডিফল্টরূপে GNU CPP ইস্যু করা সহ সমস্ত সতর্কতা দমন করুন।

-শিক্ষার্থী
সি স্ট্যান্ডার্ডে তালিকাভুক্ত সমস্ত বাধ্যতামূলক ডায়াগনস্টিকস ইস্যু করুন। তাদের মধ্যে কিছু বাকি আছে
ডিফল্টরূপে আউট, যেহেতু তারা নিরীহ কোডে ঘন ঘন ট্রিগার করে।

-শিক্ষা সংক্রান্ত-ত্রুটি
সমস্ত বাধ্যতামূলক ডায়াগনস্টিকস ইস্যু করুন এবং সমস্ত বাধ্যতামূলক ডায়াগনস্টিকগুলিকে ত্রুটিতে পরিণত করুন৷
এর মধ্যে রয়েছে বাধ্যতামূলক ডায়াগনস্টিক যা GCC ছাড়া সমস্যা করে -শিক্ষার্থী কিন্তু হিসাবে আচরণ
সতর্কতা।

-M প্রি-প্রসেসিংয়ের ফলাফল আউটপুট করার পরিবর্তে, এর জন্য উপযুক্ত একটি নিয়ম আউটপুট করুন করা
প্রধান উৎস ফাইলের নির্ভরতা বর্ণনা করে। প্রিপ্রসেসর একটি আউটপুট
করা সেই সোর্স ফাইল, একটি কোলন এবং নামগুলির জন্য অবজেক্ট ফাইলের নাম ধারণকারী নিয়ম
সমস্ত অন্তর্ভুক্ত ফাইল, যেগুলি থেকে আসছে -অন্তর্ভুক্ত or -ইমাক্রোস হুকুম
লাইন বিকল্প।

যদি না স্পষ্টভাবে নির্দিষ্ট করা হয় (সহ -এমটি or -এমকিউ), অবজেক্ট ফাইলের নামটি গঠিত
অবজেক্ট ফাইল প্রত্যয় দিয়ে প্রতিস্থাপিত যেকোনো প্রত্যয় সহ উৎস ফাইলের নাম
নেতৃস্থানীয় ডিরেক্টরি অংশ সরানো. যদি অনেকগুলি অন্তর্ভুক্ত ফাইল থাকে তবে নিয়ম
ব্যবহার করে কয়েকটি লাইনে বিভক্ত \-নতুন লাইন. নিয়মের কোন আদেশ নেই।

এই বিকল্পটি প্রিপ্রসেসরের ডিবাগ আউটপুটকে দমন করে না, যেমন -ডিএম। এড়ানোর জন্য
নির্ভরতা নিয়মের সাথে এই জাতীয় ডিবাগ আউটপুট মিশ্রিত করার জন্য আপনাকে স্পষ্টভাবে উল্লেখ করা উচিত
নির্ভরতা আউটপুট ফাইল সহ -এমএফ, অথবা একটি পরিবেশ পরিবর্তনশীল ব্যবহার করুন
DEPENDENCIES_OUTPUT. ডিবাগ আউটপুট এখনও নিয়মিত আউটপুট স্ট্রিমে পাঠানো হবে
স্বাভাবিক।

পাসিং -M ড্রাইভারকে বোঝায় -E, এবং একটি অন্তর্নিহিত সাথে সতর্কতা দমন করে -w.

-এমএম মত -M কিন্তু হেডার ফাইলগুলি উল্লেখ করবেন না যা সিস্টেম হেডার ডিরেক্টরিতে পাওয়া যায়,
বা শিরোনাম ফাইল অন্তর্ভুক্ত করা হয়, প্রত্যক্ষ বা পরোক্ষভাবে, এই ধরনের একটি শিরোনাম থেকে।

এটি বোঝায় যে একটি এঙ্গেল বন্ধনী বা ডবল উদ্ধৃতিগুলির পছন্দ # অন্তর্ভুক্ত
নির্দেশনা নিজেই নির্ধারণ করে না যে শিরোনামটি উপস্থিত হবে কিনা -এমএম
নির্ভরতা আউটপুট। এটি GCC সংস্করণ 3.0 এবং থেকে শব্দার্থবিদ্যায় সামান্য পরিবর্তন
তার আগে।

-এমএফ ফাইল
যখন ব্যবহার করা হয় -M or -এমএম, নির্ভরতা লিখতে একটি ফাইল নির্দিষ্ট করে। যদি না -এমএফ
সুইচ দেওয়া হয় প্রিপ্রসেসর নিয়মগুলিকে একই জায়গায় পাঠায় যেখানে এটি পাঠানো হবে
প্রিপ্রসেসড আউটপুট।

ড্রাইভার বিকল্পগুলির সাথে ব্যবহার করা হলে -এমডি or -এমএমডি, -এমএফ ডিফল্ট নির্ভরতা ওভাররাইড করে
আউটপুট ফাইল.

-এমজি যেমন একটি বিকল্প সঙ্গে একযোগে -M নির্ভরতা প্রজন্মের অনুরোধ, -এমজি অনুমান
অনুপস্থিত শিরোনাম ফাইলগুলি তৈরি করা ফাইল এবং সেগুলিকে ছাড়াই নির্ভরতা তালিকায় যুক্ত করে
একটি ত্রুটি উত্থাপন নির্ভরতা ফাইলের নামটি সরাসরি "#include" থেকে নেওয়া হয়েছে
কোনো পথ প্রিপেন্ডিং ছাড়াই নির্দেশনা। -এমজি এছাড়াও preprocessed আউটপুট দমন করে, a
অনুপস্থিত হেডার ফাইল এটিকে অকেজো করে।

এই বৈশিষ্ট্যটি মেকফাইলগুলির স্বয়ংক্রিয় আপডেটে ব্যবহৃত হয়।

-এমপি এই বিকল্পটি CPP ব্যতীত প্রতিটি নির্ভরতার জন্য একটি নকল লক্ষ্য যোগ করার নির্দেশ দেয়
প্রধান ফাইল, যার ফলে প্রতিটি কিছুই নির্ভর করে না। এই ডামি নিয়মগুলি ত্রুটির চারপাশে কাজ করে
করা আপনি আপডেট না করে হেডার ফাইল মুছে দিলে দেয় Makefile নামক মিল করা.

এটি সাধারণ আউটপুট:

test.o: test.c test.h

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 হিসাবে একটি নির্ভরতা আউটপুট ফাইল তৈরি করতে ব্যবহার করা যেতে পারে
সংকলন প্রক্রিয়ার পার্শ্ব-প্রতিক্রিয়া।

-এমএমডি
মত -এমডি শুধুমাত্র ব্যবহারকারী হেডার ফাইল উল্লেখ করা ছাড়া, সিস্টেম হেডার ফাইল নয়।

-FPCH-DEPS
প্রি-কম্পাইল করা শিরোনাম ব্যবহার করার সময়, এই পতাকা নির্ভরতা-আউটপুট পতাকা তৈরি করবে
এছাড়াও precompiled হেডার এর নির্ভরতা থেকে ফাইল তালিকা. শুধুমাত্র নির্দিষ্ট না হলে
precompiled হেডার তালিকাভুক্ত করা হবে এবং এটি তৈরি করতে ব্যবহৃত ফাইল নয়
কারণ এই ফাইলগুলির সাথে পরামর্শ করা হয় না যখন একটি প্রি-কম্পাইল করা হেডার ব্যবহার করা হয়।

-fpch-প্রিপ্রসেস
এই বিকল্পটি একসাথে একটি প্রি-কম্পাইল করা হেডার ব্যবহার করার অনুমতি দেয় -E. এটি একটি বিশেষ সন্নিবেশ
"#pragma", "#pragma GCC pch_preprocess"ফাইলের নাম"" স্থান চিহ্নিত করতে আউটপুটে
যেখানে precompiled হেডার পাওয়া গেছে, এবং তার ফাইলের নাম। কখন -এফপ্রিপ্রসেসড হয়
ব্যবহার করুন, GCC এই "#pragma" কে স্বীকৃতি দেয় এবং PCH লোড করে।

এই বিকল্পটি ডিফল্টরূপে বন্ধ থাকে, কারণ এর ফলে প্রি-প্রসেসড আউটপুট শুধুমাত্র
GCC ইনপুট হিসাবে সত্যিই উপযুক্ত। এটি দ্বারা সুইচ করা হয় -সেভ-টেম্পস.

আপনার নিজের কোডে এই "#pragma" লেখা উচিত নয়, তবে এটি সম্পাদনা করা নিরাপদ
ফাইলের নাম যদি PCH ফাইলটি অন্য জায়গায় পাওয়া যায়। ফাইলের নাম হতে পারে
absolute বা এটি GCC এর বর্তমান ডিরেক্টরির সাথে সম্পর্কিত হতে পারে।

-x c
-x সি ++
-x উদ্দেশ্য গ
-x অ্যাসেম্বলার-সাথে-সিপিপি
উৎস ভাষা নির্দিষ্ট করুন: C, C++, Objective-C, বা সমাবেশ। এর কিছুই করার নেই
মান সম্মতি বা এক্সটেনশন সহ; এটি শুধুমাত্র কোন বেস সিনট্যাক্স নির্বাচন করে
আশা করা আপনি যদি এই বিকল্পগুলির কোনটি না দেন, তাহলে cpp থেকে ভাষা নির্ণয় করবে
উৎস ফাইলের এক্সটেনশন: .c, .cc, .m, বা .S. জন্য কিছু অন্যান্য সাধারণ এক্সটেনশন
C++ এবং সমাবেশও স্বীকৃত। যদি সিপিপি এক্সটেনশন চিনতে না পারে তবে এটি
ফাইলটিকে C হিসাবে বিবেচনা করবে; এটি সবচেয়ে সাধারণ মোড।

বিঃদ্রঃ: cpp-এর পূর্ববর্তী সংস্করণ গৃহীত a -ল্যাং বিকল্প যা উভয় নির্বাচন করে
ভাষা এবং মান সম্মতি স্তর। এই বিকল্পটি সরানো হয়েছে, কারণ
এটা সঙ্গে দ্বন্দ্ব -l বিকল্প।

-std=মান
-আনসি
কোডের সাথে মানানসই হওয়া উচিত তা নির্দিষ্ট করুন। বর্তমানে সিপিপি সি সম্পর্কে জানে
এবং C++ স্ট্যান্ডার্ড; অন্যদের ভবিষ্যতে যোগ করা হতে পারে.

মান এর মধ্যে একটি হতে পারে:

"c90"
"c89"
"iso9899:1990"
1990 থেকে ISO C মান। c90 এর এই সংস্করণের জন্য প্রথাগত সংক্ষিপ্ত বিবরণ
মান.

সার্জারির -আনসি বিকল্পের সমতুল্য -std=c90.

"iso9899:199409"
1990 সি স্ট্যান্ডার্ড, 1994 সালে সংশোধিত।

"iso9899:1999"
"c99"
"iso9899:199x"
"c9x"
সংশোধিত ISO C মান, ডিসেম্বর 1999 এ প্রকাশিত। প্রকাশের আগে, এটি
C9X নামে পরিচিত ছিল।

"iso9899:2011"
"c11"
"c1x"
সংশোধিত ISO C মান, ডিসেম্বর 2011 এ প্রকাশিত। প্রকাশের আগে, এটি
C1X নামে পরিচিত ছিল।

"gnu90"
"gnu89"
1990 সি স্ট্যান্ডার্ড প্লাস জিএনইউ এক্সটেনশন। এটি ডিফল্ট।

"gnu99"
"gnu9x"
1999 সি স্ট্যান্ডার্ড প্লাস জিএনইউ এক্সটেনশন।

"gnu11"
"gnu1x"
2011 সি স্ট্যান্ডার্ড প্লাস জিএনইউ এক্সটেনশন।

"c++98"
1998 ISO C++ স্ট্যান্ডার্ড প্লাস সংশোধনী।

"gnu++98"
একই রকম -std=c++98 প্লাস GNU এক্সটেনশন। এটি C++ কোডের জন্য ডিফল্ট।

-আমি- অন্তর্ভুক্ত পথ বিভক্ত করুন. সঙ্গে নির্দিষ্ট কোনো ডিরেক্টরি -I আগে বিকল্প -আমি- হয়
শুধুমাত্র "# অন্তর্ভুক্ত" দিয়ে অনুরোধ করা শিরোনামগুলির জন্য অনুসন্ধান করা হয়েছেফাইল""; তাদের অনুসন্ধান করা হয় না
"#অন্তর্ভুক্তফাইল>". যদি অতিরিক্ত ডিরেক্টরির সাথে নির্দিষ্ট করা থাকে -I এর পরে বিকল্প
-আমি-, সেই ডিরেক্টরিগুলি সকলের জন্য অনুসন্ধান করা হয় # অন্তর্ভুক্ত নির্দেশনা।

উপরন্তু, -আমি- হিসাবে বর্তমান ফাইল ডিরেক্টরির ডিরেক্টরি ব্যবহার বাধা দেয়
"# অন্তর্ভুক্ত" এর জন্য প্রথম অনুসন্ধান ডিরেক্টরিফাইল"". এই বিকল্পটি বাতিল করা হয়েছে।

-নোস্টডিঙ্ক
হেডার ফাইলের জন্য স্ট্যান্ডার্ড সিস্টেম ডিরেক্টরি অনুসন্ধান করবেন না। শুধুমাত্র ডিরেক্টরি
আপনি দিয়ে নির্দিষ্ট করেছেন -I অপশন (এবং বর্তমান ফাইলের ডিরেক্টরি, যদি
উপযুক্ত) অনুসন্ধান করা হয়।

-নোস্টডিঙ্ক++
C++-নির্দিষ্ট স্ট্যান্ডার্ড ডিরেক্টরিগুলিতে হেডার ফাইলগুলি অনুসন্ধান করবেন না, তবে এখনও করুন
অন্যান্য স্ট্যান্ডার্ড ডিরেক্টরি অনুসন্ধান করুন। (C++ নির্মাণের সময় এই বিকল্পটি ব্যবহার করা হয়
লাইব্রেরি।)

-অন্তর্ভুক্ত ফাইল
প্রক্রিয়া ফাইল যেন "#include "file"" প্রাথমিক উৎসের প্রথম লাইন হিসেবে উপস্থিত হয়েছে
ফাইল যাইহোক, প্রথম ডিরেক্টরির জন্য অনুসন্ধান ফাইল প্রিপ্রসেসরের কাজ
ডিরেক্টরি পরিবর্তে of মূল উৎস ফাইল ধারণকারী ডিরেক্টরি. যদি না পাওয়া যায়
সেখানে, এটি "#include "..."" সার্চ চেইনের বাকি অংশে অনুসন্ধান করা হয়েছে
স্বাভাবিক।

একাধিক হলে -অন্তর্ভুক্ত অপশন দেওয়া আছে, ফাইলগুলি ক্রমানুসারে অন্তর্ভুক্ত করা হয়েছে
কমান্ড লাইনে প্রদর্শিত হবে।

-ইমাক্রোস ফাইল
ঠিক মত -অন্তর্ভুক্ত, স্ক্যানিং দ্বারা উত্পাদিত কোনো আউটপুট ছাড়া ফাইল নিক্ষেপ করা হয়
দূরে ম্যাক্রো এটি সংজ্ঞায়িত করে সংজ্ঞায়িত থাকে। এটি আপনাকে সমস্ত ম্যাক্রো অর্জন করতে দেয়
একটি শিরোনাম থেকে তার ঘোষণা প্রক্রিয়াকরণ ছাড়াই।

সমস্ত ফাইল দ্বারা নির্দিষ্ট -ইমাক্রোস দ্বারা নির্দিষ্ট করা সমস্ত ফাইলের আগে প্রক্রিয়া করা হয় -অন্তর্ভুক্ত.

-ইডিরাফটার Dir
সার্চ Dir হেডার ফাইলের জন্য, কিন্তু এটি করুন পরে এর সাথে নির্দিষ্ট করা সমস্ত ডিরেক্টরি -I এবং
স্ট্যান্ডার্ড সিস্টেম ডিরেক্টরি নিঃশেষ হয়ে গেছে। Dir একটি সিস্টেম অন্তর্ভুক্ত হিসাবে বিবেচনা করা হয়
ডিরেক্টরি যদি Dir "=" দিয়ে শুরু হয়, তারপর "=" sysroot দ্বারা প্রতিস্থাপিত হবে
উপসর্গ দেখা --sysroot এবং -ইসসরুট.

-ইপ্রিফিক্স উপসর্গ
নির্দিষ্ট করুন উপসর্গ পরবর্তী জন্য উপসর্গ হিসাবে - উপসর্গ সহ বিকল্প উপসর্গ হলে
একটি ডিরেক্টরি প্রতিনিধিত্ব করে, আপনার চূড়ান্ত অন্তর্ভুক্ত করা উচিত /.

- উপসর্গ সহ Dir
-আগে উপসর্গ সহ Dir
সংযোজন Dir এর সাথে পূর্বে উল্লেখিত উপসর্গে -ইপ্রিফিক্স, এবং ফলাফল যোগ করুন
অনুসন্ধান পথ অন্তর্ভুক্ত করার ডিরেক্টরি। -আগে উপসর্গ সহ একই জায়গায় রাখে -I
হবে; - উপসর্গ সহ যেখানে রাখে -ইডিরাফটার হবে।

-ইসসরুট Dir
এই বিকল্পটি এর মতো --sysroot বিকল্প, কিন্তু শুধুমাত্র শিরোনাম ফাইলের জন্য প্রযোজ্য (ব্যতীত
ডারউইন টার্গেট, যেখানে এটি হেডার ফাইল এবং লাইব্রেরি উভয় ক্ষেত্রেই প্রযোজ্য)। দেখুন
--sysroot আরও তথ্যের জন্য বিকল্প।

-ইমাল্টিলিব Dir
ব্যবহার Dir টার্গেট-নির্দিষ্ট C++ শিরোনাম ধারণকারী ডিরেক্টরির একটি সাবডিরেক্টরি হিসাবে।

-সিস্টেম Dir
সার্চ Dir হেডার ফাইলের জন্য, দ্বারা নির্দিষ্ট করা সমস্ত ডিরেক্টরির পরে -I কিন্তু আগে
স্ট্যান্ডার্ড সিস্টেম ডিরেক্টরি। এটিকে একটি সিস্টেম ডিরেক্টরি হিসাবে চিহ্নিত করুন, যাতে এটি একই রকম হয়
স্ট্যান্ডার্ড সিস্টেম ডিরেক্টরিতে প্রয়োগ করা হয় হিসাবে বিশেষ চিকিত্সা. যদি Dir শুরু
"=" দিয়ে, তারপর "=" sysroot উপসর্গ দ্বারা প্রতিস্থাপিত হবে; দেখা --sysroot এবং
-ইসসরুট.

-উদ্ধৃতি Dir
সার্চ Dir শুধুমাত্র হেডার ফাইলের জন্য অনুরোধ করা হয়েছে "#include"ফাইল""; তারা না
"#অন্তর্ভুক্ত" জন্য অনুসন্ধান করা হয়েছেফাইল>", দ্বারা নির্দিষ্ট করা সমস্ত ডিরেক্টরির আগে -I এবং আগে
স্ট্যান্ডার্ড সিস্টেম ডিরেক্টরি। যদি Dir "=" দিয়ে শুরু হয়, তারপর "=" দ্বারা প্রতিস্থাপিত হবে
sysroot উপসর্গ; দেখা --sysroot এবং -ইসসরুট.

-fdirectives-শুধুমাত্র
প্রিপ্রসেস করার সময়, নির্দেশাবলী পরিচালনা করুন, কিন্তু ম্যাক্রোগুলি প্রসারিত করবেন না।

বিকল্পের আচরণের উপর নির্ভর করে -E এবং -এফপ্রিপ্রসেসড অপশন।

সঙ্গে -E, প্রিপ্রসেসিং নির্দেশিকা পরিচালনার মধ্যে সীমাবদ্ধ যেমন "# সংজ্ঞায়িত",
"#ifdef", এবং "#error"। অন্যান্য প্রিপ্রসেসর অপারেশন, যেমন ম্যাক্রো সম্প্রসারণ এবং
trigraph রূপান্তর সঞ্চালিত হয় না. উপরন্তু, দ -ডিডি বিকল্পটি অন্তর্নিহিত
সক্ষম করা হয়েছে।

সঙ্গে -এফপ্রিপ্রসেসড, কমান্ড লাইনের পূর্ব সংজ্ঞা এবং সর্বাধিক বিল্টইন ম্যাক্রো
অক্ষম ম্যাক্রো যেমন "__LINE__", যা প্রাসঙ্গিকভাবে নির্ভরশীল, পরিচালনা করা হয়
স্বাভাবিকভাবে এটি "-E এর সাথে পূর্বে প্রিপ্রসেস করা ফাইলগুলির সংকলন সক্ষম করে
-fdirectives-শুধু"।

দু'জনেই -E এবং -এফপ্রিপ্রসেসড, এর জন্য নিয়ম -এফপ্রিপ্রসেসড অগ্রাধিকার. এই
"-E এর সাথে পূর্বে প্রিপ্রসেস করা ফাইলগুলির সম্পূর্ণ প্রিপ্রসেসিং সক্ষম করে
-fdirectives-শুধু"।

-ডলার-ইন-আইডেন্টিফায়ার
সমর্থন দিন $ শনাক্তকারীর মধ্যে

-ফেক্সটেন্ডেড-আইডেন্টিফায়ার
শনাক্তকারীতে সর্বজনীন অক্ষরের নাম গ্রহণ করুন। এই বিকল্পটি পরীক্ষামূলক; এ
GCC এর ভবিষ্যত সংস্করণ, এটি ডিফল্টরূপে C99 এবং C++ এর জন্য সক্ষম হবে।

-fno-ক্যাননিকাল-সিস্টেম-হেডার
প্রিপ্রসেস করার সময়, ক্যানোনিকালাইজেশনের সাথে সিস্টেম হেডার পাথগুলিকে ছোট করবেন না।

-এফপ্রিপ্রসেসড
প্রিপ্রসেসরকে নির্দেশ করুন যে ইনপুট ফাইলটি ইতিমধ্যেই প্রিপ্রসেস করা হয়েছে। এই
ম্যাক্রো এক্সপেনশন, ট্রিগ্রাফ কনভার্সন, এস্কেপড নিউলাইন স্প্লিসিং,
এবং বেশিরভাগ নির্দেশের প্রক্রিয়াকরণ। প্রিপ্রসেসর এখনও চিনতে পারে এবং সরিয়ে দেয়
মন্তব্য, যাতে আপনি একটি ফাইল প্রি-প্রসেসড পাস করতে পারেন -C ছাড়া কম্পাইলার থেকে
সমস্যা এই মোডে ইন্টিগ্রেটেড প্রিপ্রসেসর একটি টোকেনাইজারের চেয়ে একটু বেশি
সামনের প্রান্তের জন্য।

-এফপ্রিপ্রসেসড ইনপুট ফাইলের এক্সটেনশনগুলির একটি থাকলে তা অন্তর্নিহিত .i, .ii or .মি.
এইগুলি হল এক্সটেনশন যা GCC দ্বারা তৈরি করা প্রি-প্রসেসড ফাইলগুলির জন্য ব্যবহার করে -সেভ-টেম্পস.

-ftabstop=প্রস্থ
ট্যাব স্টপগুলির মধ্যে দূরত্ব সেট করুন। এটি প্রিপ্রসেসরকে সঠিক কলাম রিপোর্ট করতে সাহায্য করে
সতর্কতা বা ত্রুটির সংখ্যা, এমনকি যদি ট্যাব লাইনে উপস্থিত হয়। মান কম হলে
1 বা 100-এর বেশি, বিকল্পটি উপেক্ষা করা হয়। ডিফল্ট 8.

-fdebug-cpp
এই বিকল্পটি শুধুমাত্র GCC ডিবাগ করার জন্য উপযোগী। সঙ্গে ব্যবহার করা হলে -E, ডাম্প ডিবাগিং
অবস্থান মানচিত্র সম্পর্কে তথ্য। আউটপুট প্রতিটি টোকেন এর ডাম্প দ্বারা পূর্বে হয়
মানচিত্র এর অবস্থানের অন্তর্গত। একটি টোকেনের অবস্থান ধরে থাকা মানচিত্রের ডাম্প
হবে:

{"P":F ;"এফ":এফ ;"এল": ;"সি": ;"এস": ;"M": ;"ই": "loc": }

যখন ছাড়া ব্যবহার করা হয় -E, এই বিকল্প কোন প্রভাব আছে.

-ftrack-ম্যাক্রো-সম্প্রসারণ[=স্তর]
ম্যাক্রো সম্প্রসারণ জুড়ে টোকেনগুলির অবস্থানগুলি ট্র্যাক করুন৷ এটি কম্পাইলারকে নির্গত করতে দেয়
বর্তমান ম্যাক্রো সম্প্রসারণ স্ট্যাক সম্পর্কে ডায়াগনস্টিক যখন একটি সংকলন ত্রুটি ঘটে
একটি ম্যাক্রো সম্প্রসারণ। এই বিকল্পটি ব্যবহার করে প্রিপ্রসেসর এবং কম্পাইলার ব্যবহার করে
আরো স্মৃতি। দ্য স্তর প্যারামিটার টোকেনের নির্ভুলতার স্তর নির্বাচন করতে ব্যবহার করা যেতে পারে
অবস্থান ট্র্যাকিং এইভাবে প্রয়োজন হলে মেমরি খরচ হ্রাস. মান 0 of
স্তর এই বিকল্পটিকে নিষ্ক্রিয় করে ঠিক যেমন না -ftrack-ম্যাক্রো-সম্প্রসারণ উপস্থিত ছিলেন
কমান্ড লাইন। মান 1 ট্র্যাক টোকেন অবস্থানের জন্য একটি অবনতি মোডে
ন্যূনতম মেমরি ওভারহেড। এই মোডে একটি সম্প্রসারণের ফলে সমস্ত টোকেন
একটি ফাংশনের মত ম্যাক্রোর আর্গুমেন্ট একই অবস্থানে আছে। মান 2 ট্র্যাক টোকেন
অবস্থান সম্পূর্ণরূপে। এই মান সবচেয়ে মেমরি ক্ষুধার্ত হয়. যখন এই অপশন দেওয়া হয়
কোন যুক্তি নেই, ডিফল্ট পরামিতি মান 2.

মনে রাখবেন -ftrack-macro-expansion=2 ডিফল্টরূপে সক্রিয় করা হয়।

-fexec-চ্যারসেট=চারসেট
স্ট্রিং এবং অক্ষর ধ্রুবকের জন্য ব্যবহৃত এক্সিকিউশন অক্ষর সেট সেট করুন। ডিফল্ট
হল UTF-8। চারসেট সিস্টেমের "iconv" লাইব্রেরি দ্বারা সমর্থিত যেকোনো এনকোডিং হতে পারে
রুটিন।

-fwide-exec-charset=চারসেট
প্রশস্ত স্ট্রিং এবং অক্ষর ধ্রুবকের জন্য ব্যবহৃত ওয়াইড এক্সিকিউশন ক্যারেক্টার সেট সেট করুন।
ডিফল্ট হল UTF-32 বা UTF-16, যেটি "wchar_t" এর প্রস্থের সাথে সামঞ্জস্যপূর্ণ। হিসাবে
সঙ্গে -ফেক্সেক-অক্ষর সেট, চারসেট সিস্টেমের "আইকনভ" দ্বারা সমর্থিত যেকোনো এনকোডিং হতে পারে
লাইব্রেরি রুটিন; যাইহোক, আপনার এনকোডিংগুলির সাথে সমস্যা হবে যা ফিট নয়
ঠিক "wchar_t" এ।

-ফিনপুট-ক্যারসেট=চারসেট
ইনপুট অক্ষর সেট সেট করুন, ইনপুটের অক্ষর সেট থেকে অনুবাদের জন্য ব্যবহৃত
GCC দ্বারা ব্যবহৃত উৎস অক্ষর সেটে ফাইল। লোকেল নির্দিষ্ট না হলে, বা GCC
লোকেল থেকে এই তথ্য পাওয়া যাবে না, ডিফল্ট হল UTF-8। এটা হতে পারে
লোকেল বা এই কমান্ড লাইন বিকল্প দ্বারা ওভাররাইড করা হয়। বর্তমানে কমান্ড
কোন বিরোধ থাকলে লাইন বিকল্পটি অগ্রাধিকার পায়। চারসেট যেকোনো এনকোডিং হতে পারে
সিস্টেমের "iconv" লাইব্রেরি রুটিন দ্বারা সমর্থিত।

-fworking-ডিরেক্টরি
প্রিপ্রসেসর আউটপুটে লাইনমার্কার তৈরি করতে সক্ষম করুন যা কম্পাইলারকে অনুমতি দেবে
প্রিপ্রসেসিংয়ের সময় বর্তমান ওয়ার্কিং ডিরেক্টরি জানুন। এই অপশন যখন
সক্রিয়, প্রাথমিক লাইনমার্কারের পরে, প্রিপ্রসেসর একটি দ্বিতীয় লাইনমার্কার নির্গত করবে
দুটি স্ল্যাশ দ্বারা অনুসরণ করা বর্তমান কার্যকারী ডিরেক্টরির সাথে। জিসিসি এটি ব্যবহার করবে
ডিরেক্টরি, যখন এটি প্রিপ্রসেসড ইনপুটে উপস্থিত থাকে, যেমন ডিরেক্টরিটি নির্গত হয়
কিছু ডিবাগিং তথ্য বিন্যাসে বর্তমান কার্যকারী ডিরেক্টরি। এই বিকল্প হয়
যদি ডিবাগিং তথ্য সক্রিয় করা থাকে তবে এটি নিষেধ করা যেতে পারে
নেতিবাচক ফর্ম -এফএনও-ওয়ার্কিং-ডিরেক্টরি। যদি -P পতাকা কমান্ডে উপস্থিত রয়েছে
লাইন, এই বিকল্পের কোন প্রভাব নেই, যেহেতু কোন "# লাইন" নির্দেশাবলী নির্গত হয় না।

-fno-শো-কলাম
ডায়াগনস্টিকসে কলাম নম্বর প্রিন্ট করবেন না। ডায়াগনস্টিক হলে এটি প্রয়োজনীয় হতে পারে
একটি প্রোগ্রাম দ্বারা স্ক্যান করা হচ্ছে যা কলাম নম্বরগুলি বুঝতে পারে না, যেমন
dejagnu.

-A ভবিষ্যদ্বাণী করা=উত্তর
predicate সঙ্গে একটি দাবী করা ভবিষ্যদ্বাণী করা এবং উত্তর উত্তর. এই ফর্ম
পুরানো ফর্ম পছন্দ -A ভবিষ্যদ্বাণী করা(উত্তর), যা এখনও সমর্থিত, কারণ এটি
শেল বিশেষ অক্ষর ব্যবহার করে না।

-A -ভবিষ্যদ্বাণী করা=উত্তর
ভবিষ্যদ্বাণী সহ একটি দাবী বাতিল করুন ভবিষ্যদ্বাণী করা এবং উত্তর উত্তর.

-dCHARS
টুকিটাকি কাজ নিম্নলিখিত এক বা একাধিক অক্ষরের একটি ক্রম, এবং হতে হবে না
একটি স্থান দ্বারা পূর্বে. অন্যান্য অক্ষর সঠিক কম্পাইলার দ্বারা ব্যাখ্যা করা হয়, বা
GCC এর ভবিষ্যত সংস্করণের জন্য সংরক্ষিত, এবং তাই নীরবে উপেক্ষা করা হয়। যদি আপনি উল্লেখ করেন
অক্ষর যাদের আচরণ দ্বন্দ্ব, ফলাফল অনির্ধারিত.

M সাধারণ আউটপুটের পরিবর্তে, এর একটি তালিকা তৈরি করুন # define সকলের জন্য নির্দেশনা
পূর্বনির্ধারিত সহ প্রিপ্রসেসর কার্যকর করার সময় সংজ্ঞায়িত ম্যাক্রো
ম্যাক্রো এটি আপনাকে আপনার সংস্করণে কী পূর্বনির্ধারিত তা খুঁজে বের করার একটি উপায় দেয়৷
প্রিপ্রসেসর ধরে নিচ্ছি আপনার কোন ফাইল নেই foo.h, আদেশ

স্পর্শ foo.h; cpp -dM foo.h

সমস্ত পূর্বনির্ধারিত ম্যাক্রো দেখাবে।

যদি আপনি ব্যবহার -ডিএম ছাড়া -E বিকল্প, -ডিএম জন্য একটি প্রতিশব্দ হিসাবে ব্যাখ্যা করা হয়
-fdump-rtl-mach.

D মত M দুটি ক্ষেত্রে ছাড়া: এটা করে না পূর্বনির্ধারিত ম্যাক্রো এবং এটি অন্তর্ভুক্ত করুন
আউটপুট উভয় দ্য # define নির্দেশাবলী এবং পূর্ব প্রক্রিয়াকরণের ফলাফল। উভয় প্রকার
আউটপুট স্ট্যান্ডার্ড আউটপুট ফাইলে যান।

N মত D, কিন্তু শুধুমাত্র ম্যাক্রো নাম নির্গত করে, তাদের সম্প্রসারণ নয়।

I আউটপুট # অন্তর্ভুক্ত প্রিপ্রসেসিংয়ের ফলাফল ছাড়াও নির্দেশাবলী।

U মত D শুধুমাত্র ম্যাক্রোগুলি ছাড়া যা প্রসারিত হয়, বা যার সংজ্ঞা পরীক্ষা করা হয়
প্রিপ্রসেসর নির্দেশে, আউটপুট হয়; আউটপুট ব্যবহার পর্যন্ত বিলম্বিত হয় বা
ম্যাক্রো পরীক্ষা; এবং #শেষ নির্দেশাবলী ম্যাক্রো পরীক্ষিত জন্য আউটপুট হয় কিন্তু
সেই সময়ে অনির্ধারিত।

-P প্রিপ্রসেসর থেকে আউটপুটে লাইনমার্কারের প্রজন্মকে বাধা দেয়। এই হতে পারে
সি কোড নয় এমন কিছুতে প্রিপ্রসেসর চালানোর সময় উপযোগী এবং পাঠানো হবে
এমন একটি প্রোগ্রামে যা লাইনমার্কারদের দ্বারা বিভ্রান্ত হতে পারে।

-C মন্তব্য পরিত্যাগ করবেন না. সমস্ত মন্তব্য আউটপুট ফাইলের মাধ্যমে পাস করা হয়, ছাড়া
প্রক্রিয়াকৃত নির্দেশাবলীতে মন্তব্যের জন্য, যা নির্দেশের সাথে মুছে ফেলা হয়।

ব্যবহার করার সময় আপনাকে পার্শ্ব প্রতিক্রিয়ার জন্য প্রস্তুত থাকতে হবে -C; এটি প্রিপ্রসেসরকে ঘটায়
মন্তব্যগুলিকে তাদের নিজের অধিকারে টোকেন হিসাবে বিবেচনা করুন। উদাহরণস্বরূপ, মন্তব্যে উপস্থিত হচ্ছে৷
একটি নির্দেশিক লাইন কি হবে তার শুরুতে সেই লাইনটিকে একটিতে পরিণত করার প্রভাব রয়েছে
সাধারণ উৎস লাইন, যেহেতু লাইনে প্রথম টোকেনটি আর নেই #.

-সিসি ম্যাক্রো সম্প্রসারণের সময় সহ মন্তব্যগুলি পরিত্যাগ করবেন না। এই মত -C, ছাড়া
ম্যাক্রোর মধ্যে থাকা মন্তব্যগুলিও আউটপুট ফাইলের মাধ্যমে পাস করা হয় যেখানে
ম্যাক্রো প্রসারিত হয়.

এর পার্শ্বপ্রতিক্রিয়া ছাড়াও -C বিকল্প, -সিসি বিকল্পটি সমস্ত C++-স্টাইল ঘটায়
একটি ম্যাক্রোর মধ্যে থাকা মন্তব্যগুলিকে সি-স্টাইলের মন্তব্যে রূপান্তর করতে হবে। এটি পরে প্রতিরোধ করার জন্য
অসাবধানতাবশত উৎস লাইনের অবশিষ্টাংশ মন্তব্য করা থেকে সেই ম্যাক্রোর ব্যবহার।

সার্জারির -সিসি বিকল্পটি সাধারণত লিন্ট মন্তব্য সমর্থন করতে ব্যবহৃত হয়।

-প্রথাগত-cpp
আইএসও সি-এর বিপরীতে পুরনো আমলের সি প্রিপ্রসেসরের আচরণ অনুকরণ করার চেষ্টা করুন
প্রিপ্রসেসর

-ট্রিগ্রাফ
ট্রিগ্রাফ ক্রম প্রক্রিয়া. এগুলো তিন-অক্ষরের সিকোয়েন্স, সব দিয়েই শুরু
??, যা একক অক্ষরের জন্য ISO C দ্বারা সংজ্ঞায়িত করা হয়েছে। উদাহরণ স্বরূপ, ??/ ব্রিদিং
উন্নত \, তাই '??/n' একটি নতুন লাইনের জন্য একটি অক্ষর ধ্রুবক। ডিফল্টরূপে, GCC উপেক্ষা করে
ট্রিগ্রাফ, কিন্তু স্ট্যান্ডার্ড-কনফর্মিং মোডে এটি তাদের রূপান্তর করে। দেখুন -স্টেড এবং -আনসি
অপশন।

নয়টি ট্রিগ্রাফ এবং তাদের প্রতিস্থাপন করা হয়

ট্রিগ্রাফ: ??( ??) ??< ??> ??= ??/ ??' ??! ??-
প্রতিস্থাপন: [ ] { } # \ ^ | ~

-রিম্যাপ
ফাইল সিস্টেমের চারপাশে কাজ করার জন্য বিশেষ কোড সক্রিয় করুন যা শুধুমাত্র খুব ছোট ফাইলের অনুমতি দেয়
নাম, যেমন MS-DOS।

--help
--লক্ষ্য-সাহায্য
কিছু প্রিপ্রসেস করার পরিবর্তে সমস্ত কমান্ড লাইন বিকল্পের বর্ণনা করে পাঠ্য মুদ্রণ করুন।

-v ভার্বোস মোড। এক্সিকিউশনের শুরুতে GNU CPP-এর সংস্করণ নম্বর প্রিন্ট করুন, এবং
অন্তর্ভুক্ত পাথ চূড়ান্ত ফর্ম রিপোর্ট.

-H অন্যান্য স্বাভাবিক ক্রিয়াকলাপ ছাড়াও ব্যবহৃত প্রতিটি হেডার ফাইলের নাম প্রিন্ট করুন। প্রতিটি
নামটি কত গভীরে তা দেখানোর জন্য ইন্ডেন্ট করা হয়েছে # অন্তর্ভুক্ত স্ট্যাক এটা হয়. প্রি-কম্পাইল হেডার
ফাইলগুলিও মুদ্রিত হয়, এমনকি যদি সেগুলি অবৈধ বলে পাওয়া যায়; একটি অবৈধ precompiled
হেডার ফাইল দিয়ে প্রিন্ট করা হয় ...এক্স এবং সঙ্গে একটি বৈধ এক ...! .

-version
--সংস্করণ
GNU CPP এর সংস্করণ নম্বর প্রিন্ট করুন। এক ড্যাশ দিয়ে, স্বাভাবিক হিসাবে প্রিপ্রসেসে এগিয়ে যান।
দুটি ড্যাশ সহ, অবিলম্বে প্রস্থান করুন।

পাসিং অপশন সমূহ থেকে দ্য অ্যাসেম্বলার
আপনি অ্যাসেম্বলারের কাছে বিকল্পগুলি পাস করতে পারেন।

-ওয়া,পছন্দ
পাস পছন্দ অ্যাসেম্বলারের বিকল্প হিসাবে। যদি পছন্দ কমা রয়েছে, এটি বিভক্ত
কমাতে একাধিক বিকল্পের মধ্যে।

- Xassembler পছন্দ
পাস পছন্দ অ্যাসেম্বলারের বিকল্প হিসাবে। আপনি সিস্টেম-নির্দিষ্ট সরবরাহ করতে এটি ব্যবহার করতে পারেন
অ্যাসেম্বলার বিকল্পগুলি যা GCC স্বীকৃতি দেয় না।

আপনি যদি একটি যুক্তি পাস করতে চান যে একটি বিকল্প, আপনি ব্যবহার করতে হবে - Xassembler দুইবার,
একবার বিকল্পের জন্য এবং একবার যুক্তির জন্য।

অপশন সমূহ উন্নত সংযোগস্থাপন
এই বিকল্পগুলি কার্যকর হয় যখন কম্পাইলার অবজেক্ট ফাইলগুলিকে এক্সিকিউটেবলের সাথে লিঙ্ক করে
আউটপুট ফাইল. কম্পাইলার একটি লিঙ্ক পদক্ষেপ না করলে তারা অর্থহীন।

অবজেক্ট-ফাইলের নাম
একটি ফাইলের নাম যা একটি বিশেষ স্বীকৃত প্রত্যয় দিয়ে শেষ হয় না তাকে একটি নাম হিসাবে বিবেচনা করা হয়
অবজেক্ট ফাইল বা লাইব্রেরি। (লিঙ্কার দ্বারা অবজেক্ট ফাইলগুলি লাইব্রেরি থেকে আলাদা করা হয়
ফাইলের বিষয়বস্তু অনুসারে।) যদি লিঙ্ক করা হয়, এই অবজেক্ট ফাইলগুলি হিসাবে ব্যবহার করা হয়
লিঙ্কারে ইনপুট।

-c
-S
-E যদি এই বিকল্পগুলির কোনটি ব্যবহার করা হয়, তাহলে লিঙ্কার চালানো হয় না, এবং অবজেক্ট ফাইলের নাম
যুক্তি হিসাবে ব্যবহার করা উচিত নয়।

-lলাইব্রেরি
-l লাইব্রেরি
নামের লাইব্রেরিতে অনুসন্ধান করুন লাইব্রেরি লিঙ্ক করার সময়। (এর সাথে দ্বিতীয় বিকল্প
একটি পৃথক যুক্তি হিসাবে লাইব্রেরি শুধুমাত্র POSIX সম্মতির জন্য এবং সুপারিশ করা হয় না।)

এটি একটি পার্থক্য করে যেখানে আপনি কমান্ডে এই বিকল্পটি লিখুন; লিঙ্কার অনুসন্ধান করে
এবং লাইব্রেরি এবং অবজেক্ট ফাইলগুলিকে নির্দিষ্ট ক্রমে প্রসেস করে। এইভাবে, foo.o
-lz বার.ও লাইব্রেরি অনুসন্ধান করে z ফাইলের পরে foo.o কিন্তু আগে বার.ও। যদি বার.ও বোঝায়
মধ্যে ফাংশন z, যারা ফাংশন লোড করা যাবে না.

লিঙ্কার লাইব্রেরির জন্য ডিরেক্টরিগুলির একটি আদর্শ তালিকা অনুসন্ধান করে, যা আসলে
নামের একটি ফাইল গ্রন্থাগার. লিঙ্কার তারপর এই ফাইলটি ব্যবহার করে যেন এটি নির্দিষ্ট করা হয়েছে
অবিকল নামের দ্বারা।

অনুসন্ধান করা ডিরেক্টরিগুলির মধ্যে বেশ কয়েকটি স্ট্যান্ডার্ড সিস্টেম ডিরেক্টরি এবং আপনার যেকোনও অন্তর্ভুক্ত রয়েছে
দিয়ে নির্দিষ্ট করুন -L.

সাধারণত এইভাবে পাওয়া ফাইলগুলি হল লাইব্রেরি ফাইল---আর্কাইভ ফাইল যার সদস্য
অবজেক্ট ফাইল। লিঙ্কার সদস্যদের জন্য এটির মাধ্যমে স্ক্যান করে একটি সংরক্ষণাগার ফাইল পরিচালনা করে
যা চিহ্নগুলিকে সংজ্ঞায়িত করে যা এখনও পর্যন্ত উল্লেখ করা হয়েছে কিন্তু সংজ্ঞায়িত করা হয়নি। কিন্তু যদি
যে ফাইলটি পাওয়া যায় তা একটি সাধারণ অবজেক্ট ফাইল, এটি স্বাভাবিক ফ্যাশনে লিঙ্ক করা হয়। দ্য
শুধুমাত্র একটি ব্যবহার করার মধ্যে পার্থক্য -l বিকল্প এবং একটি ফাইলের নাম উল্লেখ করা হয় -l
ঘিরে লাইব্রেরি সঙ্গে liberal এর সংক্ষিপ্ত রূপ এবং .a এবং বিভিন্ন ডিরেক্টরি অনুসন্ধান করে।

-lobjc
আপনি এই বিশেষ ক্ষেত্রে প্রয়োজন -l একটি উদ্দেশ্য-সি লিঙ্ক করার জন্য বিকল্প বা
উদ্দেশ্য-C++ প্রোগ্রাম।

-নোস্টার্ট ফাইল
লিঙ্ক করার সময় স্ট্যান্ডার্ড সিস্টেম স্টার্টআপ ফাইল ব্যবহার করবেন না। স্ট্যান্ডার্ড সিস্টেম
লাইব্রেরি সাধারণত ব্যবহার করা হয়, যদি না -নোস্টডিলিব or -নোডফল্টলিবস ব্যবহৃত হয়.

-নোডফল্টলিবস
লিঙ্ক করার সময় স্ট্যান্ডার্ড সিস্টেম লাইব্রেরি ব্যবহার করবেন না। শুধুমাত্র আপনি নির্দিষ্ট লাইব্রেরি
লিঙ্কারের কাছে পাঠানো হয়, এবং সিস্টেম লাইব্রেরির লিঙ্কেজ নির্দিষ্ট করে, যেমন
"-static-libgcc" বা "-shared-libgcc" হিসাবে উপেক্ষা করা হয়। স্ট্যান্ডার্ড স্টার্টআপ ফাইল হয়
সাধারণত ব্যবহার করা হয়, যদি না -নোস্টার্ট ফাইল ব্যবহৃত হয়.

কম্পাইলার "memcmp", "memset", "memcpy" এবং "memmove" এ কল তৈরি করতে পারে। এইগুলো
এন্ট্রি সাধারণত libc এ এন্ট্রি দ্বারা সমাধান করা হয়. এই এন্ট্রি পয়েন্ট হওয়া উচিত
এই বিকল্পটি নির্দিষ্ট করা হলে অন্য কোনো প্রক্রিয়ার মাধ্যমে সরবরাহ করা হয়।

-নোস্টডিলিব
লিঙ্ক করার সময় স্ট্যান্ডার্ড সিস্টেম স্টার্টআপ ফাইল বা লাইব্রেরি ব্যবহার করবেন না। কোনো স্টার্টআপ নেই
ফাইলগুলি এবং শুধুমাত্র আপনার নির্দিষ্ট করা লাইব্রেরিগুলি লিঙ্কার এবং বিকল্পগুলিতে পাঠানো হয়
সিস্টেম লাইব্রেরির লিঙ্কেজ নির্দিষ্ট করা, যেমন "-static-libgcc" বা
"-shared-libgcc", উপেক্ষা করা হয়।

কম্পাইলার "memcmp", "memset", "memcpy" এবং "memmove" এ কল তৈরি করতে পারে। এইগুলো
এন্ট্রি সাধারণত libc এ এন্ট্রি দ্বারা সমাধান করা হয়. এই এন্ট্রি পয়েন্ট হওয়া উচিত
এই বিকল্পটি নির্দিষ্ট করা হলে অন্য কোনো প্রক্রিয়ার মাধ্যমে সরবরাহ করা হয়।

বাইপাস করা স্ট্যান্ডার্ড লাইব্রেরিগুলির মধ্যে একটি -নোস্টডিলিব এবং -নোডফল্টলিবস is libgcc.a, একটি
অভ্যন্তরীণ সাবরুটিনগুলির লাইব্রেরি যা GCC বিশেষ ত্রুটিগুলি কাটিয়ে উঠতে ব্যবহার করে
মেশিন, বা কিছু ভাষার জন্য বিশেষ প্রয়োজন।

বেশিরভাগ ক্ষেত্রে, আপনার প্রয়োজন libgcc.a এমনকি যখন আপনি অন্যান্য স্ট্যান্ডার্ড লাইব্রেরি এড়াতে চান।
অন্য কথায়, আপনি যখন নির্দিষ্ট করেন -নোস্টডিলিব or -নোডফল্টলিবস আপনার সাধারণত করা উচিত
উল্লেখ -এলজিসিসি যেমন. এটি নিশ্চিত করে যে আপনার কাছে কোন অমীমাংসিত রেফারেন্স নেই
অভ্যন্তরীণ GCC লাইব্রেরি সাবরুটিন। (এই ধরনের একটি অভ্যন্তরীণ সাবরুটিনের একটি উদাহরণ হল
__প্রধান, C++ কনস্ট্রাক্টরদের বলা হয় তা নিশ্চিত করতে ব্যবহৃত হয়।)

-পাই
এটি সমর্থন করে এমন লক্ষ্যগুলির উপর একটি স্বাধীন নির্বাহযোগ্য অবস্থান তৈরি করুন। অনুমানযোগ্য জন্য
ফলাফল, আপনাকে অবশ্যই সংকলনের জন্য ব্যবহৃত বিকল্পগুলির একই সেট উল্লেখ করতে হবে (-fpie,
-fpie, অথবা মডেল সাব অপশন) যখন আপনি এই লিঙ্কার বিকল্পটি নির্দিষ্ট করেন।

- গতিশীল
পতাকা পাস -রপ্তানি-গতিশীল ELF লিঙ্কারে, এটিকে সমর্থন করে এমন লক্ষ্যে। এই
ডাইনামিক চিহ্নে শুধুমাত্র ব্যবহৃত নয়, সমস্ত চিহ্ন যোগ করার জন্য লিঙ্কারকে নির্দেশ দেয়
টেবিল এই বিকল্পটি "dlopen" এর কিছু ব্যবহারের জন্য বা প্রাপ্তির অনুমতি দেওয়ার জন্য প্রয়োজন
একটি প্রোগ্রামের মধ্যে থেকে ব্যাকট্রেস।

-s এক্সিকিউটেবল থেকে সমস্ত প্রতীক টেবিল এবং স্থানান্তর সংক্রান্ত তথ্য সরান।

- স্থির
ডাইনামিক লিঙ্কিং সমর্থন করে এমন সিস্টেমে, এটি শেয়ারের সাথে লিঙ্ক করা প্রতিরোধ করে
লাইব্রেরি অন্যান্য সিস্টেমে, এই বিকল্পটির কোন প্রভাব নেই।

- শেয়ার করা হয়েছে
একটি ভাগ করা অবজেক্ট তৈরি করুন যা তারপরে একটি গঠন করতে অন্যান্য বস্তুর সাথে লিঙ্ক করা যেতে পারে
নির্বাহযোগ্য সমস্ত সিস্টেম এই বিকল্পটিকে সমর্থন করে না। অনুমানযোগ্য ফলাফলের জন্য, আপনি অবশ্যই
সংকলনের জন্য ব্যবহৃত বিকল্পগুলির একই সেটও উল্লেখ করুন (-fpic, -fpic, বা মডেল
সাবঅপশন) যখন আপনি এই লিঙ্কার বিকল্পটি নির্দিষ্ট করেন।[1]

-শেয়ারড-লিবিজিসি
-স্ট্যাটিক-লিবিজিসিসি
প্রদান করে এমন সিস্টেমে libgcc একটি ভাগ করা লাইব্রেরি হিসাবে, এই বিকল্পগুলি ব্যবহার করতে বাধ্য করে৷
হয় ভাগ করা বা স্ট্যাটিক সংস্করণ, যথাক্রমে। এর কোনো ভাগ করা সংস্করণ না হলে libgcc ছিল
কম্পাইলার কনফিগার করার সময় নির্মিত, এই বিকল্পগুলির কোন প্রভাব নেই।

একটি অ্যাপ্লিকেশন শেয়ার করা ব্যবহার করা উচিত যেখানে বিভিন্ন পরিস্থিতিতে আছে libgcc
স্ট্যাটিক সংস্করণের পরিবর্তে। এর মধ্যে সবচেয়ে কমন হয় যখন আবেদন
বিভিন্ন ভাগ করা লাইব্রেরি জুড়ে ব্যতিক্রমগুলি নিক্ষেপ এবং ধরতে চায়৷ এই ক্ষেত্রে,
প্রতিটি লাইব্রেরির পাশাপাশি অ্যাপ্লিকেশন নিজেই শেয়ার করা ব্যবহার করা উচিত libgcc.

অতএব, G++ এবং GCJ ড্রাইভার স্বয়ংক্রিয়ভাবে যুক্ত হয় -শেয়ারড-লিবিজিসি যখনই আপনি নির্মাণ করেন
একটি শেয়ার্ড লাইব্রেরি বা একটি প্রধান এক্সিকিউটেবল, কারণ C++ এবং জাভা প্রোগ্রাম সাধারণত ব্যবহার করে
ব্যতিক্রম, তাই এটি করা সঠিক জিনিস।

যদি, পরিবর্তে, আপনি শেয়ার্ড লাইব্রেরি তৈরি করতে GCC ড্রাইভার ব্যবহার করেন, তাহলে আপনি খুঁজে পেতে পারেন
সবসময় শেয়ার করা সঙ্গে লিঙ্ক করা হয় না libgcc. যদি GCC খুঁজে পায়, তার কনফিগারেশনে
সময়, আপনার কাছে একটি নন-GNU লিঙ্কার বা একটি GNU লিঙ্কার আছে যা বিকল্প সমর্থন করে না
--eh-ফ্রেম-এইচডিআর, এটি এর ভাগ করা সংস্করণটিকে লিঙ্ক করে৷ libgcc দ্বারা ভাগ করা লাইব্রেরিতে
ডিফল্ট. অন্যথায়, এটি লিঙ্কারের সুবিধা নেয় এবং লিঙ্কিংকে অপ্টিমাইজ করে
এর ভাগ করা সংস্করণ সহ libgcc, দ্বারা libgcc এর স্ট্যাটিক সংস্করণের সাথে লিঙ্ক করা
ডিফল্ট. এটি ব্যতিক্রমগুলিকে এই ধরনের ভাগ করা লাইব্রেরির মাধ্যমে প্রচার করার অনুমতি দেয়, ছাড়া
লাইব্রেরি লোড সময়ে স্থানান্তর খরচ বহন.

যাইহোক, যদি একটি লাইব্রেরি বা প্রধান এক্সিকিউটেবল ব্যতিক্রম নিক্ষেপ বা ধরা অনুমিত হয়, আপনি
G++ বা GCJ ড্রাইভার ব্যবহার করে এটিকে অবশ্যই লিঙ্ক করতে হবে, যা ব্যবহার করা ভাষার জন্য উপযুক্ত
প্রোগ্রাম, বা বিকল্প ব্যবহার করে -শেয়ারড-লিবিজিসি, যেমন এটি শেয়ার করা সঙ্গে লিঙ্ক করা হয়
libgcc.

-স্থির-লিবাসন
যখন -fsanitize=ঠিকানা একটি প্রোগ্রাম লিঙ্ক করার জন্য বিকল্প ব্যবহার করা হয়, GCC ড্রাইভার
স্বয়ংক্রিয়ভাবে বিরুদ্ধে লিঙ্ক libasan। যদি libasan একটি ভাগ করা লাইব্রেরি হিসাবে উপলব্ধ, এবং
দ্য - স্থির বিকল্পটি ব্যবহার করা হয় না, তাহলে এই লিঙ্কটি ভাগ করা সংস্করণের বিরুদ্ধে libasan.
সার্জারির -স্থির-লিবাসন বিকল্পটি জিসিসি ড্রাইভারকে লিঙ্ক করার নির্দেশ দেয় libasan স্থিরভাবে, ছাড়া
অগত্যা অন্যান্য লাইব্রেরিগুলিকে স্থিরভাবে লিঙ্ক করা।

-স্ট্যাটিক-লিবটসান
যখন -fsanitize=থ্রেড একটি প্রোগ্রাম লিঙ্ক করার জন্য বিকল্প ব্যবহার করা হয়, GCC ড্রাইভার
স্বয়ংক্রিয়ভাবে বিরুদ্ধে লিঙ্ক libtsan। যদি libtsan একটি ভাগ করা লাইব্রেরি হিসাবে উপলব্ধ, এবং
দ্য - স্থির বিকল্পটি ব্যবহার করা হয় না, তাহলে এই লিঙ্কটি ভাগ করা সংস্করণের বিরুদ্ধে libtsan.
সার্জারির -স্ট্যাটিক-লিবটসান বিকল্পটি জিসিসি ড্রাইভারকে লিঙ্ক করার নির্দেশ দেয় libtsan স্থিরভাবে, ছাড়া
অগত্যা অন্যান্য লাইব্রেরিগুলিকে স্থিরভাবে লিঙ্ক করা।

-স্ট্যাটিক-libstdc ++
যখন g ++ প্রোগ্রামটি একটি C++ প্রোগ্রাম লিঙ্ক করতে ব্যবহৃত হয়, এটি সাধারণত স্বয়ংক্রিয়ভাবে লিঙ্ক করে
বিরুদ্ধে libstdc++। যদি libstdc++ একটি ভাগ করা লাইব্রেরি হিসাবে উপলব্ধ, এবং - স্থির
বিকল্পটি ব্যবহার করা হয় না, তাহলে এই লিঙ্কটি ভাগ করা সংস্করণের বিরুদ্ধে libstdc++। এটাই
সাধারণত ভাল। যাইহোক, এটি কখনও কখনও এর সংস্করণ হিমায়িত করা দরকারী libstdc++
সম্পূর্ণরূপে স্ট্যাটিক লিঙ্কে না গিয়ে প্রোগ্রাম দ্বারা ব্যবহৃত হয়। দ্য
-স্ট্যাটিক-libstdc ++ বিকল্প নির্দেশ করে g ++ ড্রাইভার লিঙ্ক করতে libstdc++ স্থিরভাবে, ছাড়া
অগত্যা অন্যান্য লাইব্রেরিগুলিকে স্থিরভাবে লিঙ্ক করা।

- প্রতীকী
একটি শেয়ার্ড অবজেক্ট তৈরি করার সময় গ্লোবাল সিম্বলের রেফারেন্স আবদ্ধ করুন। যে কোন বিষয়ে সতর্ক করুন
অমীমাংসিত রেফারেন্স (যদি না লিঙ্ক সম্পাদক বিকল্প দ্বারা ওভাররাইড করা হয় -এক্সলিংকার -z
-এক্সলিংকার defs) শুধুমাত্র কয়েকটি সিস্টেম এই বিকল্পটিকে সমর্থন করে।

-T লিপি
ব্যবহার লিপি লিঙ্কার স্ক্রিপ্ট হিসাবে। এই বিকল্পটি ব্যবহার করে বেশিরভাগ সিস্টেম দ্বারা সমর্থিত
GNU লিঙ্কার। কিছু লক্ষ্যে, যেমন অপারেটিং সিস্টেম ছাড়া বেয়ার-বোর্ড টার্গেট,
দ্য -T অনির্ধারিত চিহ্নের রেফারেন্স এড়াতে লিঙ্ক করার সময় বিকল্পের প্রয়োজন হতে পারে।

-এক্সলিংকার পছন্দ
পাস পছন্দ লিঙ্কারের একটি বিকল্প হিসাবে। আপনি সিস্টেম-নির্দিষ্ট সরবরাহ করতে এটি ব্যবহার করতে পারেন
লিঙ্কার বিকল্পগুলি যা GCC স্বীকৃতি দেয় না।

আপনি যদি একটি বিকল্প পাস করতে চান যা একটি পৃথক যুক্তি নেয়, তাহলে আপনাকে অবশ্যই ব্যবহার করতে হবে -এক্সলিংকার
দুইবার, একবার বিকল্পের জন্য এবং একবার যুক্তির জন্য। যেমন, পাস করা -জাহির করা
সংজ্ঞা, আপনাকে লিখতে হবে -এক্সলিংকার -জাহির করা -এক্সলিংকার সংজ্ঞা. এটা কাজ করে না
লিখতে -এক্সলিংকার "-জাহির করা সংজ্ঞা", কারণ এটি একটি হিসাবে সমগ্র স্ট্রিং পাস করে
একক যুক্তি, যা লিঙ্কার আশা করে না।

GNU লিঙ্কার ব্যবহার করার সময়, সাধারণত লিঙ্কারে আর্গুমেন্ট পাস করা আরও সুবিধাজনক
বিকল্পগুলি ব্যবহার করে পছন্দ=মূল্য আলাদা আর্গুমেন্টের চেয়ে সিনট্যাক্স। উদাহরণস্বরূপ, আপনি
নির্দিষ্ট করতে পারেন -এক্সলিংকার -মানচিত্র=output.map বরং -এক্সলিংকার -মানচিত্র -এক্সলিংকার output.map.
অন্যান্য লিঙ্কার কমান্ড-লাইন বিকল্পগুলির জন্য এই সিনট্যাক্স সমর্থন নাও করতে পারে।

-ডব্লিউএল,পছন্দ
পাস পছন্দ লিঙ্কারের একটি বিকল্প হিসাবে। যদি পছন্দ কমা ধারণ করে, এটি বিভক্ত
কমাতে একাধিক বিকল্প। আপনি একটি আর্গুমেন্ট পাস করার জন্য এই সিনট্যাক্স ব্যবহার করতে পারেন
বিকল্প উদাহরণ স্বরূপ, -Wl, -মানচিত্র,আউটপুট.ম্যাপ পাস -মানচিত্র output.map লিঙ্কারের কাছে। কখন
GNU লিঙ্কার ব্যবহার করে, আপনি একই প্রভাব পেতে পারেন -Wl, -Map=output.map.

দ্রষ্টব্য: উবুন্টু 8.10 এবং পরবর্তী সংস্করণগুলিতে, LDFLAGS-এর জন্য, বিকল্পটি -Wl,-z, relro ব্যবহৃত হয়.
নিষ্ক্রিয় করতে, ব্যবহার করুন -Wl,-z, norelro.

-u প্রতীক
প্রতীকের ভান করুন প্রতীক সংজ্ঞায়িত করতে লাইব্রেরি মডিউলগুলির লিঙ্কিং বাধ্য করার জন্য, অনির্ধারিত
এটা তুমি ব্যবহার করতে পার -u জোর করে লোড করার জন্য বিভিন্ন চিহ্ন সহ একাধিক বার
অতিরিক্ত লাইব্রেরি মডিউল।

অপশন সমূহ উন্নত নির্দেশিকা সার্চ
এই বিকল্পগুলি হেডার ফাইল, লাইব্রেরি এবং অংশগুলির জন্য অনুসন্ধান করার জন্য ডিরেক্টরিগুলি নির্দিষ্ট করে৷
কম্পাইলারের:

-IDir
ডিরেক্টরি যোগ করুন Dir হেডারের জন্য অনুসন্ধান করা ডিরেক্টরিগুলির তালিকার শীর্ষে
নথি পত্র. এটি একটি সিস্টেম হেডার ফাইল ওভাররাইড করতে ব্যবহার করা যেতে পারে, আপনার নিজস্ব প্রতিস্থাপন
সংস্করণ, যেহেতু এই ডিরেক্টরিগুলি সিস্টেম হেডার ফাইলের আগে অনুসন্ধান করা হয়
ডিরেক্টরি যাইহোক, আপনার এই অপশনটি ব্যবহার করা উচিত নয় এমন ডিরেক্টরি যুক্ত করার জন্য
বিক্রেতা সরবরাহকৃত সিস্টেম হেডার ফাইল (ব্যবহার করুন -সিস্টেম যে জন্য). আপনি যদি একাধিক ব্যবহার করেন
-I বিকল্প, ডিরেক্টরিগুলি বাম-থেকে-ডান ক্রমে স্ক্যান করা হয়; স্ট্যান্ডার্ড সিস্টেম
ডিরেক্টরি পরে আসে.

যদি একটি প্রমিত সিস্টেম ডিরেক্টরি অন্তর্ভুক্ত করে, অথবা একটি ডিরেক্টরির সাথে নির্দিষ্ট করা হয় -সিস্টেম, হয়
এছাড়াও সঙ্গে নির্দিষ্ট -I, দ্য -I বিকল্প উপেক্ষা করা হয়। ডিরেক্টরি এখনও অনুসন্ধান করা হয় কিন্তু
একটি সিস্টেম ডিরেক্টরি হিসাবে সিস্টেমে তার স্বাভাবিক অবস্থানে চেইন অন্তর্ভুক্ত করে। এটা এ উদ্দেশ্যে যে
নিশ্চিত করুন যে GCC এর পদ্ধতিটি বগি সিস্টেম হেডারগুলিকে ঠিক করার জন্য এবং এর জন্য অর্ডারিং
"include_next" নির্দেশাবলী অসাবধানতাবশত পরিবর্তিত হয় না। আপনি যদি সত্যিই পরিবর্তন করতে হবে
সিস্টেম ডিরেক্টরির জন্য অনুসন্ধান ক্রম, ব্যবহার করুন -নোস্টডিঙ্ক এবং / অথবা -সিস্টেম অপশন।

-iplugindir =Dir
পাস করা প্লাগইন অনুসন্ধান করার জন্য ডিরেক্টরি সেট করুন -pplugin =নাম পরিবর্তে
-pplugin =পথ/নাম.so. এই বিকল্পটি ব্যবহারকারীর দ্বারা ব্যবহার করার জন্য নয়, শুধুমাত্র
ড্রাইভার দ্বারা পাস.

-উদ্ধৃতিDir
ডিরেক্টরি যোগ করুন Dir হেডারের জন্য অনুসন্ধান করা ডিরেক্টরিগুলির তালিকার শীর্ষে
শুধুমাত্র ক্ষেত্রে জন্য ফাইল # অন্তর্ভুক্ত "ফাইল"; তাদের অনুসন্ধান করা হয় না # অন্তর্ভুক্ত <ফাইল>,
অন্যথায় ঠিক মত -I.

-LDir
ডিরেক্টরি যোগ করুন Dir অনুসন্ধান করার জন্য ডিরেক্টরিগুলির তালিকায় -l.

-Bউপসর্গ
এই বিকল্পটি নির্দিষ্ট করে যে কোথায় এক্সিকিউটেবল, লাইব্রেরি, ফাইল অন্তর্ভুক্ত করতে হবে এবং
কম্পাইলার নিজেই ডেটা ফাইল।

কম্পাইলার ড্রাইভার প্রোগ্রাম এক বা একাধিক সাবপ্রোগ্রাম চালায় CPP, cc1, as এবং ld.
এটা চেষ্টা করে উপসর্গ প্রতিটি প্রোগ্রামের জন্য একটি উপসর্গ হিসাবে এটি চালানোর চেষ্টা করে, উভয় সহ এবং ছাড়া
মেশিন/সংস্করণ/.

প্রতিটি সাবপ্রোগ্রাম চালানোর জন্য, কম্পাইলার ড্রাইভার প্রথমে চেষ্টা করে -B উপসর্গ, যদি থাকে।
যদি সেই নাম না পাওয়া যায়, বা যদি -B নির্দিষ্ট করা নেই, ড্রাইভার দুটি মান চেষ্টা করে
উপসর্গ, /usr/lib/gcc/ এবং /usr/local/lib/gcc/. যদি কোনটিরই ফলাফল না হয় a
যে ফাইলের নামটি পাওয়া যায়, তা ব্যবহার করে অপরিবর্তিত প্রোগ্রামের নাম অনুসন্ধান করা হয়
আপনার মধ্যে নির্দিষ্ট ডিরেক্টরি পাথ পরিবেশ সূচক.

কম্পাইলার দ্বারা প্রদত্ত পাথ কিনা তা পরীক্ষা করে -B একটি ডিরেক্টরি বোঝায়, এবং
প্রয়োজনে এটি পথের শেষে একটি ডিরেক্টরি বিভাজক অক্ষর যোগ করে।

-B উপসর্গগুলি যেগুলি কার্যকরভাবে ডিরেক্টরির নামগুলি নির্দিষ্ট করে লাইব্রেরিতেও প্রযোজ্য৷
লিঙ্কার, কারণ কম্পাইলার এই বিকল্পগুলিকে অনুবাদ করে -L লিঙ্কারের জন্য বিকল্প।
তারা প্রিপ্রসেসরে ফাইল অন্তর্ভুক্ত করার জন্যও আবেদন করে, কারণ কম্পাইলার অনুবাদ করে
মধ্যে এই অপশন -সিস্টেম প্রিপ্রসেসরের জন্য বিকল্প। এই ক্ষেত্রে, কম্পাইলার
সংযোজন অন্তর্ভুক্ত করা উপসর্গ থেকে

রানটাইম সমর্থন ফাইল libgcc.a এছাড়াও ব্যবহার করার জন্য অনুসন্ধান করা যেতে পারে -B উপসর্গ, যদি
প্রয়োজন যদি এটি সেখানে পাওয়া না যায়, উপরের দুটি মান উপসর্গ চেষ্টা করা হয়, এবং যে
সব. ফাইলটি সেই উপায়ে খুঁজে না পাওয়া গেলে লিঙ্কের বাইরে চলে যায়।

অনেকটা এর মতো একটি উপসর্গ নির্দিষ্ট করার আরেকটি উপায় -B উপসর্গ পরিবেশ ব্যবহার করা হয়
পরিবর্তনশীল Gcc_exec_prefix.

একটি বিশেষ kludge হিসাবে, যদি দ্বারা প্রদত্ত পথ -B is [dir/]পর্যায়N/, কোথায় N একটি সংখ্যা
0 থেকে 9 পরিসরে, তারপর এটি দ্বারা প্রতিস্থাপিত হয় [dir/]অন্তর্ভুক্ত. এটি বুটের সাথে সাহায্য করার জন্য-
কম্পাইলার strapping.

-চশমা =ফাইল
প্রক্রিয়া ফাইল কম্পাইলার স্ট্যান্ডার্ডে পড়ার পরে চশমা ফাইল, ওভাররাইড করার জন্য
ডিফল্ট যা জিসিসি কোন সুইচ পাস করতে হবে তা নির্ধারণ করার সময় ড্রাইভার প্রোগ্রাম ব্যবহার করে
থেকে cc1, সিসি 1 প্লাস, as, ld, ইত্যাদি একাধিক -চশমা =ফাইল উপর নির্দিষ্ট করা যেতে পারে
কমান্ড লাইন, এবং তারা বাম থেকে ডানে ক্রমানুসারে প্রক্রিয়া করা হয়।

-সাইরুট =Dir
ব্যবহার Dir হেডার এবং লাইব্রেরির জন্য লজিক্যাল রুট ডিরেক্টরি হিসাবে। উদাহরণস্বরূপ, যদি
কম্পাইলার সাধারণত হেডারের জন্য অনুসন্ধান করে / usr / অন্তর্ভুক্ত এবং গ্রন্থাগার / Usr / lib, এটা
পরিবর্তে অনুসন্ধান dir/usr/include এবং dir/usr/lib.

আপনি যদি এই বিকল্পটি এবং উভয়ই ব্যবহার করেন -ইসসরুট বিকল্প, তারপর --sysroot পছন্দ
লাইব্রেরিতে প্রযোজ্য, কিন্তু -ইসসরুট বিকল্প হেডার ফাইল প্রযোজ্য.

GNU লিঙ্কার (সংস্করণ 2.16 দিয়ে শুরু) এর জন্য প্রয়োজনীয় সমর্থন রয়েছে
বিকল্প যদি আপনার লিঙ্কার এই বিকল্পটিকে সমর্থন না করে, তাহলে হেডার ফাইলের দিকটি
--sysroot এখনও কাজ করে, কিন্তু লাইব্রেরি দিকটি করে না।

--no-sysroot-প্রত্যয়
কিছু লক্ষ্যের জন্য, নির্দিষ্ট রুট ডিরেক্টরিতে একটি প্রত্যয় যোগ করা হয় --sysroot,
ব্যবহৃত অন্যান্য বিকল্পের উপর নির্ভর করে, যাতে শিরোনামগুলি উদাহরণস্বরূপ পাওয়া যেতে পারে
dir/suffix/usr/include পরিবর্তে dir/usr/include. এই বিকল্পটি সংযোজন নিষ্ক্রিয় করে
যেমন একটি প্রত্যয়.

-আমি- এই বিকল্পটি বাতিল করা হয়েছে। ব্যবহার করুন -উদ্ধৃতি পরিবর্তে জন্য -I আগে ডিরেক্টরি
দ্য -আমি- এবং অপসারণ -আমি-. আপনি যে কোনো ডিরেক্টরির সাথে উল্লেখ করেন -I এর আগে বিকল্প
-আমি- বিকল্প শুধুমাত্র ক্ষেত্রে জন্য অনুসন্ধান করা হয় # অন্তর্ভুক্ত "ফাইল"; তাদের অনুসন্ধান করা হয় না
উন্নত # অন্তর্ভুক্ত <ফাইল>.

যদি অতিরিক্ত ডিরেক্টরির সাথে নির্দিষ্ট করা থাকে -I এর পরে বিকল্প -আমি-, এইগুলো
ডিরেক্টরি সব জন্য অনুসন্ধান করা হয় # অন্তর্ভুক্ত নির্দেশাবলী (সাধারণত সব -I ডিরেক্টরি
এইভাবে ব্যবহার করা হয়।)

উপরন্তু, -আমি- বিকল্প বর্তমান ডিরেক্টরির ব্যবহারকে বাধা দেয় (যেখানে
বর্তমান ইনপুট ফাইলটি এসেছে) থেকে প্রথম অনুসন্ধান ডিরেক্টরি হিসাবে # অন্তর্ভুক্ত "ফাইল".
এই প্রভাব ওভাররাইড করার কোন উপায় নেই -আমি-। সঙ্গে -আমি। আপনি অনুসন্ধান নির্দিষ্ট করতে পারেন
কম্পাইলার চালু করার সময় যে ডিরেক্টরিটি বর্তমান। সেটা ঠিক নয়
ডিফল্টরূপে প্রিপ্রসেসর যা করে তা একই, তবে এটি প্রায়শই সন্তোষজনক।

-আমি- হেডার ফাইলের জন্য স্ট্যান্ডার্ড সিস্টেম ডিরেক্টরির ব্যবহারকে বাধা দেয় না।
সুতরাং, -আমি- এবং -নোস্টডিঙ্ক স্বাধীন।

নির্দিষ্ট করা লক্ষ্য মেশিন এবং সংকলনকারী সংস্করণ
GCC চালানোর স্বাভাবিক উপায় হল এক্সিকিউটেবল বলা হয় জিসিসি, বা মেশিন-জিসিসি যখন ক্রস-
সংকলন, বা মেশিন-জিসিসি-সংস্করণ ইনস্টল করা সংস্করণ ছাড়া অন্য একটি সংস্করণ চালানোর জন্য
শেষ

হার্ডওয়্যারের মডেল এবং কনফিগারেশন
প্রতিটি লক্ষ্য মেশিনের নিজস্ব বিশেষ বিকল্প থাকতে পারে, শুরু করে -m, নির্বাচন করতে
বিভিন্ন হার্ডওয়্যার মডেল বা কনফিগারেশনের মধ্যে---উদাহরণস্বরূপ, 68010 বনাম 68020, ভাসমান
কোপ্রসেসর বা কোনোটিই নয়। কম্পাইলারের একটি একক ইনস্টল করা সংস্করণ যেকোনো মডেলের জন্য কম্পাইল করতে পারে
বা কনফিগারেশন, নির্দিষ্ট বিকল্প অনুযায়ী।

কম্পাইলারের কিছু কনফিগারেশন অতিরিক্ত বিশেষ বিকল্পগুলিকে সমর্থন করে, সাধারণত এর জন্য
একই প্ল্যাটফর্মে অন্যান্য কম্পাইলারদের সাথে সামঞ্জস্যতা।

এআরচ 64 অপশন সমূহ

এই বিকল্পগুলি AArch64 বাস্তবায়নের জন্য সংজ্ঞায়িত করা হয়েছে:

-বিগ-এন্ডিয়ান
বড়-এন্ডিয়ান কোড তৈরি করুন। এটি ডিফল্ট যখন একটি জন্য GCC কনফিগার করা হয়
aarch64_be-*-* লক্ষ্য।

-mgeneral-regs-শুধুমাত্র
কোড তৈরি করুন যা শুধুমাত্র সাধারণ রেজিস্টার ব্যবহার করে।

- সামান্য-এন্ডিয়ান
লিটল-এন্ডিয়ান কোড তৈরি করুন। এটি ডিফল্ট যখন একটি জন্য GCC কনফিগার করা হয়
aarch64-*-* কিন্তু একটি না aarch64_be-*-* লক্ষ্য।

-mcmodel=ক্ষুদ্র
ক্ষুদ্র কোড মডেলের জন্য কোড তৈরি করুন। প্রোগ্রাম এবং এর স্থিরভাবে সংজ্ঞায়িত প্রতীক
একে অপরের 1GB এর মধ্যে হতে হবে। পয়েন্টার হল 64 বিট। প্রোগ্রাম স্ট্যাটিক হতে পারে
বা গতিশীলভাবে সংযুক্ত। এই মডেলটি সম্পূর্ণরূপে বাস্তবায়িত হয় না এবং বেশিরভাগ হিসাবে বিবেচনা করা হয়
ছোট.

-mcmodel=ছোট
ছোট কোড মডেলের জন্য কোড তৈরি করুন। প্রোগ্রাম এবং তার স্থিরভাবে সংজ্ঞায়িত
প্রতীক একে অপরের 4GB মধ্যে হতে হবে. পয়েন্টার হল 64 বিট। প্রোগ্রাম হতে পারে
স্থিতিশীল বা গতিশীলভাবে সংযুক্ত। এটি ডিফল্ট কোড মডেল।

-mcmodel=বড়
বড় কোড মডেলের জন্য কোড তৈরি করুন। এটি ঠিকানা সম্পর্কে কোন অনুমান করে না এবং
বিভাগের আকার। পয়েন্টার হল 64 বিট। প্রোগ্রাম শুধুমাত্র স্ট্যাটিকভাবে লিঙ্ক করা যেতে পারে.

-mstrict-সারিবদ্ধ
অনুমান করবেন না যে সংযোগহীন মেমরি রেফারেন্স সিস্টেম দ্বারা পরিচালিত হবে।

-মোমিট-লিফ-ফ্রেম-পয়েন্টার
-mno-বাদ-পত্র-ফ্রেম-পয়েন্টার
পাতা ফাংশনে ফ্রেম পয়েন্টার বাদ দিন বা রাখুন। পূর্বের আচরণ হল
ডিফল্ট.

-mtls-dialect = desc
TLS-এর গতিশীল অ্যাক্সেসের জন্য থ্রেড-লোকাল স্টোরেজ মেকানিজম হিসাবে TLS বর্ণনাকারী ব্যবহার করুন
ভেরিয়েবল এটি ডিফল্ট।

-mtls-উপভাষা = ঐতিহ্যবাহী
TLS-এর গতিশীল অ্যাক্সেসের জন্য থ্রেড-লোকাল স্টোরেজ মেকানিজম হিসাবে ঐতিহ্যগত TLS ব্যবহার করুন
ভেরিয়েবল।

-mfix-cortex-a53-835769
-MNO-FIX- CORTEX-A53-835769
ARM Cortex-A53 ইরাটাম নম্বর 835769 এর জন্য ওয়ার্কঅ্যারাউন্ড সক্রিয় বা নিষ্ক্রিয় করুন।
মেমরি নির্দেশাবলী এবং 64-বিটের মধ্যে একটি NOP নির্দেশ সন্নিবেশ করা হবে
পূর্ণসংখ্যা গুন-জমা নির্দেশ।

-মার্চ =নাম
লক্ষ্য আর্কিটেকচারের নাম উল্লেখ করুন, ঐচ্ছিকভাবে এক বা একাধিক দ্বারা প্রত্যয়িত
বৈশিষ্ট্য সংশোধক এই বিকল্পের ফর্ম আছে -মার্চ =খিলান{+[না।]বৈশিষ্ট্য}*, যেখানে
জন্য শুধুমাত্র মান খিলান is armv8-a. জন্য সম্ভাব্য মান বৈশিষ্ট্য মধ্যে নথিভুক্ত করা হয়
নীচের উপ-বিভাগ।

যেখানে বিরোধপূর্ণ বৈশিষ্ট্য সংশোধক নির্দিষ্ট করা হয়, সেখানে ডান-সবচেয়ে বৈশিষ্ট্য ব্যবহার করা হয়।

GCC এই নামটি ব্যবহার করে নির্ণয় করতে যে এটি তৈরি করার সময় কী ধরনের নির্দেশনা নির্গত করতে পারে
সমাবেশ কোড। এই বিকল্পটি এর সাথে বা পরিবর্তে ব্যবহার করা যেতে পারে -mcpu =
বিকল্প।

-mcpu =নাম
লক্ষ্য প্রসেসরের নাম উল্লেখ করুন, ঐচ্ছিকভাবে এক বা একাধিক বৈশিষ্ট্য দ্বারা প্রত্যয়িত
সংশোধক এই বিকল্পের ফর্ম আছে -mcpu =সিপিইউ{+[না।]বৈশিষ্ট্য}*, যেখানে সম্ভব
জন্য মান সিপিইউ হয় জাতিবাচক, বড়. জন্য সম্ভাব্য মান বৈশিষ্ট্য মধ্যে নথিভুক্ত করা হয়
নীচের উপ-বিভাগ।

যেখানে বিরোধপূর্ণ বৈশিষ্ট্য সংশোধক নির্দিষ্ট করা হয়, সেখানে ডান-সবচেয়ে বৈশিষ্ট্য ব্যবহার করা হয়।

GCC এই নামটি ব্যবহার করে নির্ণয় করতে যে এটি তৈরি করার সময় কী ধরনের নির্দেশনা নির্গত করতে পারে
সমাবেশ কোড।

-mtune =নাম
কর্মক্ষমতা টিউন করতে প্রসেসরের নাম উল্লেখ করুন। কোড টিউন করা হবে
যেন টার্গেট প্রসেসর এই অপশনে উল্লেখ করা ধরনের, কিন্তু এখনও ব্যবহার করছে
নির্দেশাবলী একটি দ্বারা নির্দিষ্ট লক্ষ্য প্রসেসরের সাথে সামঞ্জস্যপূর্ণ -mcpu = বিকল্প। এই
বিকল্পটি বৈশিষ্ট্য সংশোধক দ্বারা প্রত্যয়িত হতে পারে না।

-মার্চ এবং -এমসিপিইউ বৈশিষ্ট্য সংশোধক

বৈশিষ্ট্য সংশোধক সঙ্গে ব্যবহৃত -মার্চ এবং -এমসিপিইউ নিম্নলিখিত একটি হতে পারে:

CRC CRC এক্সটেনশন সক্রিয় করুন।

ক্রিপ্টো
ক্রিপ্টো এক্সটেনশন সক্রিয় করুন। এটি বোঝায় যে উন্নত SIMD সক্ষম করা হয়েছে৷

fp ফ্লোটিং-পয়েন্ট নির্দেশাবলী সক্ষম করুন।

simd
উন্নত SIMD নির্দেশাবলী সক্ষম করুন৷ এটি বোঝায় ফ্লোটিং-পয়েন্ট নির্দেশাবলী
সক্রিয় এটি বিকল্পগুলির জন্য সমস্ত বর্তমান সম্ভাব্য মানগুলির জন্য ডিফল্ট -মার্চ এবং
-mcpu =.

অ্যাডাপ্টেভা নিকট যীশুর আবির্ভাব অপশন সমূহ

এইগুলো -m অ্যাডাপ্টেভা এপিফেনির জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-mhalf-reg-ফাইল
"r32"..."r63" রেঞ্জের মধ্যে কোনো রেজিস্টার বরাদ্দ করবেন না। যে কোড চালানোর অনুমতি দেয়
হার্ডওয়্যার বৈকল্পিক যে এই রেজিস্টার অভাব.

-mprefer- শর্ট-ইনস-রেজি
অগ্রাধিকারমূলকভাবে রেজিস্টার বরাদ্দ করুন যা সংক্ষিপ্ত নির্দেশনা তৈরির অনুমতি দেয়। এটা পারে
ফলে নির্দেশের সংখ্যা বৃদ্ধি পায়, তাই এটি হয় সামগ্রিকভাবে কমাতে বা বৃদ্ধি করতে পারে
কোড আকার।

-মব্র্যাঞ্চ-কস্ট =NUM
শাখার খরচ মোটামুটি সেট করুন NUM "সহজ" নির্দেশাবলী। এই খরচ শুধুমাত্র একটি
হিউরিস্টিক এবং রিলিজ জুড়ে সামঞ্জস্যপূর্ণ ফলাফল তৈরির নিশ্চয়তা নেই।

-mcmove
শর্তসাপেক্ষ পদক্ষেপের প্রজন্ম সক্ষম করুন।

-mnops =NUM
নির্গত করা NUM প্রতিটি অন্য উত্পন্ন নির্দেশের আগে NOP.

-mno-soft-cmpsf
একক-নির্ভুল ফ্লোটিং-পয়েন্ট তুলনার জন্য, একটি "fsub" নির্দেশ নির্গত করুন এবং পরীক্ষা করুন
পতাকা এটি একটি সফ্টওয়্যার তুলনার চেয়ে দ্রুত, কিন্তু ভুল ফলাফল পেতে পারে৷
NaN-এর উপস্থিতিতে, বা যখন দুটি ভিন্ন ছোট সংখ্যার তুলনা করা হয়
তাদের পার্থক্য শূন্য হিসাবে গণনা করা হয়। ডিফল্ট হয় -msoft-cmpsfযা ব্যবহার করে
ধীর, কিন্তু IEEE-সঙ্গত, সফ্টওয়্যার তুলনা।

-mstack-oftset =NUM
স্ট্যাকের শীর্ষ এবং স্ট্যাক পয়েন্টারের মধ্যে অফসেট সেট করুন। যেমন, 8 এর মান
মানে "sp+0...sp+7" রেঞ্জের আটটি বাইট পাতার ফাংশন দ্বারা ব্যবহার করা যেতে পারে
স্ট্যাক বরাদ্দ ছাড়া। ব্যতীত অন্য মান 8 or 16 পরীক্ষিত এবং অসম্ভাব্য
কাজ এছাড়াও মনে রাখবেন যে এই বিকল্পটি ABI পরিবর্তন করে; একটি দিয়ে একটি প্রোগ্রাম কম্পাইল করা
লাইব্রেরির চেয়ে ভিন্ন স্ট্যাক অফসেট কম্পাইল করা হয়েছে যা সাধারণত হয় না
কাজ যদি আপনি একটি ভিন্ন স্ট্যাক অফসেট মূল্যায়ন করতে চান তাহলে এই বিকল্পটি কার্যকর হতে পারে
আপনাকে আরও ভাল কোড দেবে, কিন্তু আসলে তৈরি করতে একটি ভিন্ন স্ট্যাক অফসেট ব্যবহার করতে
কর্মরত প্রোগ্রাম, এটি উপযুক্ত সঙ্গে টুলচেইন কনফিগার করার সুপারিশ করা হয়
--with-stack-offset=NUM বিকল্প।

-মনো-গোলাকার-নিকটবর্তী
সময়সূচীকে অনুমান করুন যে রাউন্ডিং মোডটি ছেঁটে ফেলার জন্য সেট করা হয়েছে। দ্য
ডিফল্ট হয় - নিকটতম.

-মলং-কল
অন্যথায় একটি বৈশিষ্ট্য দ্বারা নির্দিষ্ট না হলে, অনুমান সমস্ত কল এর বাইরে হতে পারে
"b" / "bl" নির্দেশাবলীর অফসেট পরিসর, এবং তাই ফাংশন ঠিকানা লোড করুন
একটি (অন্যথায় সরাসরি) কল করার আগে একটি রেজিস্টারে প্রবেশ করুন৷ এটি ডিফল্ট।

-mshort-কল
অন্যথায় একটি বৈশিষ্ট্য দ্বারা নির্দিষ্ট না হলে, সমস্ত সরাসরি কল পরিসীমা মধ্যে আছে অনুমান
"b" / "bl" নির্দেশাবলীর, তাই সরাসরি কলের জন্য এই নির্দেশাবলী ব্যবহার করুন৷ দ্য
ডিফল্ট হয় -মলং-কল.

-msmall16
অনুমান করুন ঠিকানাগুলি 16-বিট স্বাক্ষরবিহীন মান হিসাবে লোড করা যেতে পারে। এই প্রযোজ্য নয়
যার জন্য ফাংশন ঠিকানা -মলং-কল শব্দার্থবিদ্যা কার্যকর হয়।

-mfp-মোড=মোড
ফ্লোটিং-পয়েন্ট ইউনিটের প্রচলিত মোড সেট করুন। এটি ভাসমান নির্ধারণ করে-
পয়েন্ট মোড যা প্রদান করা হয় এবং ফাংশন কল এবং রিটার্ন সময়ে প্রত্যাশিত। তৈরি করা
এই মোড আপনার ফাংশন শুরুতে প্রধানত প্রয়োজন মোড মেলে আপনার করতে পারেন
অপ্রয়োজনীয় মোড সুইচ এড়িয়ে প্রোগ্রাম ছোট এবং দ্রুত.

মোড নিম্নলিখিত মানগুলির একটিতে সেট করা যেতে পারে:

আহ্বানকারী
ফাংশন এন্ট্রিতে যে কোনো মোড বৈধ, এবং ফাংশন যখন ধরে রাখা বা পুনরুদ্ধার করা হয়
রিটার্ন, এবং যখন এটি অন্যান্য ফাংশন কল করে। এই মোড কম্পাইল করার জন্য দরকারী
লাইব্রেরি বা অন্যান্য সংকলন ইউনিট যা আপনি আলাদা আলাদাভাবে অন্তর্ভুক্ত করতে চান
বিভিন্ন প্রচলিত FPU মোড সহ প্রোগ্রাম, এবং সক্ষম হওয়ার সুবিধা
একটি একক অবজেক্ট ফাইল ব্যবহার করুন যে কোনো অতিরিক্ত মোডের জন্য আকার এবং গতি ওভারহেডের চেয়ে বেশি
প্রয়োজন হতে পারে যে সুইচিং, একটি আরো সঙ্গে কি প্রয়োজন হবে তুলনায়
প্রচলিত FPU মোডের নির্দিষ্ট পছন্দ।

কাটা
এটি এমন মোড যা ভাসমান-বিন্দু গণনার জন্য ছেঁটে ফেলার (অর্থাৎ বৃত্তাকার
শূন্যের দিকে) রাউন্ডিং মোড। এর মধ্যে রয়েছে ফ্লোটিং পয়েন্ট থেকে রূপান্তর
পূর্ণসংখ্যা

বৃত্তাকার - নিকটতম
এটি রাউন্ড-থেকে-নেয়ারস্ট-অথবা- সহ ভাসমান-বিন্দু গণনার জন্য ব্যবহৃত মোড।
এমনকি রাউন্ডিং মোড।

কোন int এটি FPU-তে পূর্ণসংখ্যা গণনা করতে ব্যবহৃত মোড, যেমন পূর্ণসংখ্যা
গুন, বা পূর্ণসংখ্যা গুন-এবং-জমা।

ডিফল্ট হয় -mfp-মোড=কলার

-mnosplit-lohi
-mno-পোস্টিং
-mno-postmodify
কোড জেনারেশন টুইক যা অক্ষম করে, যথাক্রমে, 32-বিট লোডের বিভাজন,
পোস্ট-ইনক্রিমেন্ট অ্যাড্রেসের জেনারেশন এবং পোস্ট-মোডিফাই অ্যাড্রেসের জেনারেশন। দ্য
ডিফল্ট হয় msplit-lohi, -পোস্ট-ইঙ্ক, এবং -পোস্ট-সংশোধন.

-mnovect-ডাবল
পছন্দের SIMD মোডকে SImode এ পরিবর্তন করুন। ডিফল্ট হয় -mvect-ডাবলযা ব্যবহার করে
পছন্দের SIMD মোড হিসাবে DImode.

-ম্যাক্স-ভেক্টর-এলাইন =NUM
SIMD ভেক্টর মোড প্রকারের জন্য সর্বাধিক প্রান্তিককরণ। NUM 4 বা 8 হতে পারে। ডিফল্ট হল
8. নোট করুন যে এটি একটি ABI পরিবর্তন, যদিও অনেক লাইব্রেরি ফাংশন ইন্টারফেস
তারা যদি আকার এবং/অথবা প্রভাবিত করে এমন জায়গায় SIMD ভেক্টর মোড ব্যবহার না করে তবে প্রভাবিত হবে না
প্রাসঙ্গিক ধরনের প্রান্তিককরণ।

-msplit-vecmove-শীঘ্রই
বিভক্ত ভেক্টর পুনরায় লোড করার আগে একক শব্দ চালে চলে যায়। তাত্ত্বিকভাবে এটি দিতে পারে
ভাল নিবন্ধন বরাদ্দ, কিন্তু এখনও পর্যন্ত বিপরীত সাধারণ ক্ষেত্রে বলে মনে হচ্ছে.

-m1reg-REG
ধ্রুবক -1 ধরে রাখার জন্য একটি রেজিস্টার নির্দিষ্ট করুন, যা লোডিংকে ছোট ঋণাত্মক করে তোলে
ধ্রুবক এবং নির্দিষ্ট বিটমাস্ক দ্রুত। জন্য অনুমোদিত মান REG হয় r43 এবং r63,
যা একটি নির্দিষ্ট রেজিস্টার হিসাবে সেই রেজিস্টারের ব্যবহার নির্দিষ্ট করে, এবং না, যার মানে যে না
এই উদ্দেশ্যে রেজিস্টার ব্যবহার করা হয়। ডিফল্ট হয় -m1reg-কোনটি নয়.

এআরএম অপশন সমূহ

এইগুলো -m অ্যাডভান্সড RISC মেশিন (ARM) আর্কিটেকচারের জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-মাবি=নাম
নির্দিষ্ট ABI-এর জন্য কোড তৈরি করুন। অনুমোদিত মান হল: apcs-gnu, atpcs, aapcs,
aapcs-linux এবং iwmmxt.

-mapcs-ফ্রেম
একটি স্ট্যাক ফ্রেম তৈরি করুন যা সকলের জন্য ARM পদ্ধতি কল স্ট্যান্ডার্ডের সাথে সঙ্গতিপূর্ণ
ফাংশন, কোডের সঠিক নির্বাহের জন্য এটি কঠোরভাবে প্রয়োজনীয় না হলেও।
নির্দিষ্ট করা -ফমিট-ফ্রেম-পয়েন্টার এই বিকল্পের ফলে স্ট্যাক ফ্রেমগুলি না হয়
পাতা ফাংশন জন্য উত্পন্ন. ডিফল্ট হয় -mno-apcs-ফ্রেম.

-মানচিত্র
এই জন্য একটি প্রতিশব্দ -mapcs-ফ্রেম.

-mthumb-ইন্টারওয়ার্ক
কোড তৈরি করুন যা ARM এবং থাম্ব নির্দেশ সেটের মধ্যে কলিং সমর্থন করে।
এই বিকল্পটি ছাড়া, প্রাক-v5 আর্কিটেকচারে, দুটি নির্দেশ সেট করা যাবে না
একটি প্রোগ্রামের ভিতরে নির্ভরযোগ্যভাবে ব্যবহার করা হয়। ডিফল্ট হয় -ম্নো-থাম্ব-ইন্টারওয়ার্ক, সামান্য থেকে
বড় কোড তৈরি হয় যখন -mthumb-ইন্টারওয়ার্ক উল্লিখিত আছে. AAPCS কনফিগারেশনে
এই বিকল্পটি অর্থহীন।

-mno-sched-prolog
ফাংশন প্রলোগে নির্দেশাবলীর পুনর্বিন্যাস প্রতিরোধ করুন, বা এর একত্রীকরণ করুন৷
ফাংশন এর শরীরের নির্দেশাবলী সঙ্গে যারা নির্দেশ. এই যে সব মানে
ফাংশনগুলি নির্দেশাবলীর একটি স্বীকৃত সেট দিয়ে শুরু হয় (বা আসলে একটি পছন্দের একটি
বিভিন্ন ফাংশন prologues একটি ছোট সেট থেকে), এবং এই তথ্য ব্যবহার করা যেতে পারে
কোডের একটি এক্সিকিউটেবল টুকরোতে ফাংশনের শুরু সনাক্ত করুন। ডিফল্ট হয়
-msched-prolog.

-mfloat-abi =নাম
কোন ফ্লোটিং-পয়েন্ট ABI ব্যবহার করতে হবে তা নির্দিষ্ট করে। অনুমোদিত মান হল: নরম, softfp এবং
কঠিন.

নির্দিষ্ট করা নরম GCC ফ্লোটিং-এর জন্য লাইব্রেরি কল সম্বলিত আউটপুট তৈরি করে-
পয়েন্ট অপারেশন। softfp হার্ডওয়্যার ফ্লোটিং-পয়েন্ট ব্যবহার করে কোড তৈরির অনুমতি দেয়
নির্দেশাবলী, কিন্তু এখনও সফট-ফ্লোট কলিং কনভেনশন ব্যবহার করে। কঠিন অনুমতি
ফ্লোটিং-পয়েন্ট নির্দেশাবলীর প্রজন্ম এবং FPU-নির্দিষ্ট কলিং কনভেনশন ব্যবহার করে।

ডিফল্ট নির্দিষ্ট লক্ষ্য কনফিগারেশনের উপর নির্ভর করে। উল্লেখ্য যে হার্ড-ফ্লোট
এবং সফ্ট-ফ্লোট ABI লিঙ্ক-সামঞ্জস্যপূর্ণ নয়; আপনি আপনার সম্পূর্ণ প্রোগ্রাম সঙ্গে কম্পাইল করা আবশ্যক
একই ABI, এবং লাইব্রেরির একটি সামঞ্জস্যপূর্ণ সেটের সাথে লিঙ্ক।

- সামান্য-এন্ডিয়ান
লিটল-এন্ডিয়ান মোডে চলমান একটি প্রসেসরের জন্য কোড তৈরি করুন। এই জন্য ডিফল্ট
সমস্ত স্ট্যান্ডার্ড কনফিগারেশন।

-বিগ-এন্ডিয়ান
বড়-এন্ডিয়ান মোডে চলমান একটি প্রসেসরের জন্য কোড তৈরি করুন; ডিফল্ট হল কম্পাইল করা
একটি সামান্য-এন্ডিয়ান প্রসেসরের জন্য কোড।

-mwords-লিটল-এন্ডিয়ান
এই বিকল্পটি শুধুমাত্র বড়-এন্ডিয়ান প্রসেসরের জন্য কোড তৈরি করার সময় প্রযোজ্য। তৈরি করুন
একটি ছোট-এন্ডিয়ান ওয়ার্ড অর্ডারের জন্য কোড কিন্তু একটি বড়-এন্ডিয়ান বাইট অর্ডার। অর্থাৎ একটি বাইট
ফর্মের ক্রম 32107654. দ্রষ্টব্য: এই বিকল্পটি শুধুমাত্র আপনার প্রয়োজন হলেই ব্যবহার করা উচিত
এর সংস্করণ দ্বারা উত্পন্ন বিগ-এন্ডিয়ান এআরএম প্রসেসরের কোডের সাথে সামঞ্জস্য
2.8 এর আগের কম্পাইলার। এই বিকল্পটি এখন অবহেলিত।

-মার্চ =নাম
এটি লক্ষ্য ARM আর্কিটেকচারের নাম নির্দিষ্ট করে। GCC এই নামটি ব্যবহার করে
সমাবেশ কোড তৈরি করার সময় এটি কি ধরনের নির্দেশ নির্গত করতে পারে তা নির্ধারণ করুন। এই
বিকল্পের সাথে বা পরিবর্তে ব্যবহার করা যেতে পারে -mcpu = বিকল্প অনুমোদনযোগ্য
নামগুলো হল: আর্মভ 2, armv2a, আর্মভ 3, armv3m, আর্মভ 4, armv4t, আর্মভ 5, armv5t, armv5e,
আর্মভি 5 টি, আর্মভ 6, armv6j, আর্মভি 6 টি 2, armv6z, আর্মভি 6 জেড, armv6-মি, আর্মভ 7, armv7-a, armv7-r,
armv7-মি, armv7e-m armv8-a, armv8-a+crc, iwmmxt, iwmmxt2, ep9312.

-march=armv8-a+crc এর সাথে একসাথে ARMv8-A আর্কিটেকচারের জন্য কোড তৈরি করতে সক্ষম করে
ঐচ্ছিক CRC32 এক্সটেনশন।

-মার্চ=দেশীয় কম্পাইলারকে বিল্ডের আর্কিটেকচার স্বয়ংক্রিয়ভাবে সনাক্ত করতে দেয়
কম্পিউটার বর্তমানে, এই বৈশিষ্ট্যটি শুধুমাত্র GNU/Linux-এ সমর্থিত, এবং সমস্ত নয়৷
স্থাপত্য স্বীকৃত হয়। যদি স্বয়ংক্রিয় সনাক্তকরণ ব্যর্থ হয় তবে বিকল্পটি নেই
প্রভাব।

-mtune =নাম
এই বিকল্পটি লক্ষ্য ARM প্রসেসরের নাম উল্লেখ করে যার জন্য GCC টিউন করা উচিত
কোডের কর্মক্ষমতা। কিছু এআরএম বাস্তবায়নের জন্য আরও ভাল পারফরম্যান্স হতে পারে
এই বিকল্পটি ব্যবহার করে প্রাপ্ত। অনুমোদিত নামগুলি হল: arm2, arm250, arm3, arm6,
arm60, arm600, arm610, arm620, arm7, বাহু 7 মি, arm7d, arm7dm, arm7di, arm7dmi, arm70,
arm700, arm700i, arm710, arm710c, arm7100, arm720, arm7500, arm7500fe, arm7tdmi,
arm7tdmi-s, arm710t, arm720t, arm740t, এখনও বিক্রয়ের জন্য, শক্তিশালী 110, শক্তিশালী 1100,
শক্তিশালী 1110, arm8, arm810, arm9, arm9e, arm920, arm920t, arm922t, arm946e-s,
arm966e-s, arm968e-s, arm926ej-s, arm940t, arm9tdmi, arm10tdmi, arm1020t, arm1026ej-s,
arm10e, arm1020e, arm1022e, arm1136j-s, arm1136jf-s, mpcore, mpcorenovfp, arm1156t2-s,
arm1156t2f-s, arm1176jz-s, arm1176jzf-s, কর্টেক্স-এ 5, কর্টেক্স-এ 7, কর্টেক্স-এ 8, কর্টেক্স-এ 9,
কর্টেক্স-এ 15, কর্টেক্স-এ 53, কর্টেক্স-r4, কর্টেক্স-r4f, কর্টেক্স-r5, কর্টেক্স-r7, কর্টেক্স-m4,
কর্টেক্স-m3, কর্টেক্স-m1, কর্টেক্স-m0, কর্টেক্স-এম0প্লাস, marvell-pj4, xscale, iwmmxt, iwmmxt2,
ep9312, fa526, fa626, fa606te, fa626te, fmp626, fa726te.

-mtune=জেনারিক-খিলান নির্দিষ্ট করে যে GCC-এর মিশ্রনের জন্য পারফরম্যান্স টিউন করা উচিত
আর্কিটেকচারের মধ্যে প্রসেসর খিলান. উদ্দেশ্য হল কোড জেনারেট করা যা ভালভাবে চালায়
বর্তমান সবচেয়ে জনপ্রিয় প্রসেসর, অপ্টিমাইজেশানের মধ্যে ভারসাম্য বজায় রাখা যা কিছু উপকারী
পরিসরের মধ্যে CPUs, এবং অন্যান্য CPU-এর কর্মক্ষমতা সমস্যা এড়ানো। এর প্রভাব
এই বিকল্পটি ভবিষ্যতের GCC সংস্করণে পরিবর্তিত হতে পারে কারণ CPU মডেল আসে এবং যায়।

-mtune=নেটিভ কম্পাইলারকে বিল্ড কম্পিউটারের সিপিইউ স্বয়ংক্রিয়ভাবে সনাক্ত করতে দেয়। এ
বর্তমানে, এই বৈশিষ্ট্যটি শুধুমাত্র GNU/Linux-এ সমর্থিত, এবং সমস্ত আর্কিটেকচার নয়
স্বীকৃত স্বয়ংক্রিয় সনাক্তকরণ ব্যর্থ হলে বিকল্পটির কোন প্রভাব নেই।

-mcpu =নাম
এটি লক্ষ্য ARM প্রসেসরের নাম নির্দিষ্ট করে। GCC প্রাপ্ত করার জন্য এই নামটি ব্যবহার করে
লক্ষ্য ARM আর্কিটেকচারের নাম (যেমন দ্বারা নির্দিষ্ট করা হয়েছে -মার্চ) এবং এআরএম প্রসেসর
পারফরম্যান্সের জন্য টিউন করার জন্য টাইপ করুন (যেমন দ্বারা নির্দিষ্ট করা হয়েছে -mtune) যেখানে এই অপশন
সাথে ব্যবহার করা হয় -মার্চ or -mtune, ঐ অপশনের উপর অগ্রাধিকার নিতে
এই বিকল্পের উপযুক্ত অংশ।

এই বিকল্পের জন্য অনুমোদিত নামগুলি এর জন্য একই -mtune.

-mcpu=জেনারিক-খিলান এছাড়াও অনুমোদিত, এবং সমতুল্য -মার্চ =খিলান
-mtune=জেনারিক-খিলান। দেখ -mtune আরও তথ্যের জন্য.

-mcpu=নেটিভ কম্পাইলারকে বিল্ড কম্পিউটারের সিপিইউ স্বয়ংক্রিয়ভাবে সনাক্ত করতে দেয়। এ
বর্তমানে, এই বৈশিষ্ট্যটি শুধুমাত্র GNU/Linux-এ সমর্থিত, এবং সমস্ত আর্কিটেকচার নয়
স্বীকৃত স্বয়ংক্রিয় সনাক্তকরণ ব্যর্থ হলে বিকল্পটির কোন প্রভাব নেই।

-mfpu =নাম
এটি নির্দিষ্ট করে যে ফ্লোটিং-পয়েন্ট হার্ডওয়্যার (বা হার্ডওয়্যার এমুলেশন) কি উপলব্ধ
লক্ষ্য. অনুমোদিত নামগুলি হল: ভিএফপি, ভিএফপিভি 3, vfpv3-fp16, vfpv3-d16, vfpv3-d16-fp16,
vfpv3xd, vfpv3xd-fp16, নিঅন্গ্যাসংক্রান্ত, neon-fp16, ভিএফপিভি 4, vfpv4-d16, fpv4-sp-d16, neon-vfpv4,
fp-armv8, neon-fp-armv8, এবং crypto-neon-fp-armv8.

If -মেমসফট-ফ্লোট নির্দিষ্ট করা হয়েছে এটি ফ্লোটিং-পয়েন্ট মানগুলির বিন্যাস নির্দিষ্ট করে।

যদি নির্বাচিত ফ্লোটিং-পয়েন্ট হার্ডওয়্যারে NEON এক্সটেনশন অন্তর্ভুক্ত থাকে (যেমন -এমএফপিইউ=নিঅন্গ্যাসংক্রান্ত),
মনে রাখবেন যে ফ্লোটিং-পয়েন্ট অপারেশনগুলি GCC-এর অটো-ভেক্টরাইজেশন পাস দ্বারা তৈরি হয় না
যদি না -ফানসেফ-গণিত-অপ্টিমাইজেশন এছাড়াও নির্দিষ্ট করা হয়। এর কারণ হল NEON হার্ডওয়্যার
ফ্লোটিং-পয়েন্ট পাটিগণিতের জন্য IEEE 754 মান সম্পূর্ণরূপে বাস্তবায়ন করে না (in
নির্দিষ্ট ডিনরমাল মানকে শূন্য হিসাবে বিবেচনা করা হয়), তাই NEON নির্দেশাবলী ব্যবহার করা যেতে পারে
নির্ভুলতা একটি ক্ষতি হতে.

-mfp16-ফরম্যাট=নাম
"__fp16" অর্ধ-নির্ভুল ফ্লোটিং-পয়েন্ট টাইপের বিন্যাস উল্লেখ করুন। অনুমোদনযোগ্য
নাম হয় না, ie, এবং বিকল্প; ডিফল্ট হয় না, যে ক্ষেত্রে "__fp16"
প্রকার সংজ্ঞায়িত করা হয় না।

-mstructure-আকার-সীমানা=n
সমস্ত কাঠামো এবং ইউনিয়নের মাপ সংখ্যার একাধিক পর্যন্ত বৃত্তাকার
এই বিকল্প দ্বারা সেট করা বিট. অনুমোদিত মানগুলি হল 8, 32 এবং 64৷ ডিফল্ট মান৷
বিভিন্ন টুলচেইনের জন্য পরিবর্তিত হয়। COFF টার্গেটেড টুলচেইনের জন্য ডিফল্ট মান হল
8. 64 এর মান শুধুমাত্র তখনই অনুমোদিত হয় যদি অন্তর্নিহিত ABI এটিকে সমর্থন করে।

একটি বড় সংখ্যা নির্দিষ্ট করা দ্রুত, আরও দক্ষ কোড তৈরি করতে পারে, তবে এটিও করতে পারে
প্রোগ্রামের আকার বাড়ান। বিভিন্ন মান সম্ভাব্য বেমানান.
একটি মান সহ সংকলিত কোড অগত্যা কোড বা লাইব্রেরির সাথে কাজ করার আশা করতে পারে না
অন্য মান দিয়ে সংকলিত, যদি তারা কাঠামো বা ইউনিয়ন ব্যবহার করে তথ্য বিনিময় করে।

-মাবোর্ট-অন-নরেটার্ন
একটি "noreturn" ফাংশনের শেষে "অবর্ট" ফাংশনে একটি কল তৈরি করুন। এটাই
যদি ফাংশনটি ফিরে আসার চেষ্টা করে তাহলে নির্বাহ করা হবে।

-মলং-কল
-mno-লং-কল
কম্পাইলারকে প্রথমে ঠিকানা লোড করে ফাংশন কল করতে বলে
একটি রেজিস্টারে কাজ করে এবং তারপর এই রেজিস্টারে একটি সাবরুটিন কল সম্পাদন করে। এই
টার্গেট ফাংশন 64-মেগাবাইট অ্যাড্রেসিংয়ের বাইরে থাকলে সুইচের প্রয়োজন হয়
সাবরুটিন কল নির্দেশের অফসেট-ভিত্তিক সংস্করণের পরিসর।

এমনকি যদি এই সুইচটি সক্ষম করা থাকে, সমস্ত ফাংশন কল দীর্ঘ কলে পরিণত হয় না।
হিউরিস্টিক হল স্ট্যাটিক ফাংশন, ফাংশন যা আছে সংক্ষিপ্ত কল বৈশিষ্ট্য
ফাংশন যা a এর সুযোগের মধ্যে থাকে #প্রাগমা কোন_লং_কল নির্দেশিকা, এবং
ফাংশন যার সংজ্ঞা ইতিমধ্যে বর্তমান সংকলনের মধ্যে সংকলিত হয়েছে
ইউনিট দীর্ঘ কলে পরিণত হয় না. এই নিয়মের ব্যতিক্রমগুলি দুর্বল
ফাংশন সংজ্ঞা, সঙ্গে ফাংশন দীর্ঘ কল বৈশিষ্ট্য বা অধ্যায় বৈশিষ্ট্য
এবং ফাংশন যা a এর সুযোগের মধ্যে রয়েছে #প্রাগমা দীর্ঘ_কল নির্দেশ সবসময় হয়
দীর্ঘ কলে পরিণত হয়েছে।

এই বৈশিষ্ট্য ডিফল্টরূপে সক্রিয় করা হয় না. নির্দিষ্ট করা -mno-লং-কল পুনরুদ্ধার
ডিফল্ট আচরণ, যেমন একটি সুযোগের মধ্যে ফাংশন কল স্থাপন করে #প্রাগমা
long_calls_off নির্দেশ নোট করুন এই সুইচগুলি কীভাবে কম্পাইলারকে প্রভাবিত করে না
ফাংশন পয়েন্টারের মাধ্যমে ফাংশন কল পরিচালনা করার জন্য কোড তৈরি করে।

-একটি-ছবি-বেস
PIC ঠিকানার জন্য ব্যবহৃত রেজিস্টারকে লোড করার পরিবর্তে শুধুমাত্র পঠনযোগ্য হিসাবে বিবেচনা করুন
প্রতিটি ফাংশনের জন্য প্রস্তাবনা। রানটাইম সিস্টেম এটি শুরু করার জন্য দায়ী
কার্যকরী শুরু হওয়ার আগে একটি উপযুক্ত মান দিয়ে নিবন্ধন করুন।

-mpic-রেজিস্টার=REG
PIC ঠিকানার জন্য যে রেজিস্টার ব্যবহার করা হবে তা উল্লেখ করুন। স্ট্যান্ডার্ড PIC বেস কেসের জন্য,
ডিফল্ট কম্পাইলার দ্বারা নির্ধারিত কোনো উপযুক্ত রেজিস্টার হবে। একক PIC বেস জন্য
ক্ষেত্রে, ডিফল্ট হয় R9 যদি লক্ষ্য EABI ভিত্তিক হয় বা স্ট্যাক-চেকিং সক্ষম করা হয়,
অন্যথায় ডিফল্ট হয় R10.

-mpoke-ফাংশন-নাম
টেক্সট বিভাগে প্রতিটি ফাংশনের নাম লিখুন, সরাসরি ফাংশনের আগে
প্রস্তাবনা উত্পন্ন কোড এর অনুরূপ:

t0
.ascii "arm_poke_function_name", 0
সারিবদ্ধ
t1
.word 0xff000000 + (t1 - t0)
arm_poke_function_name
mov ip, sp
stmfd sp!, {fp, ip, lr, pc}
সাব fp, ip, #4

স্ট্যাক ব্যাকট্রেস করার সময়, কোড "fp + এ সঞ্চিত "pc" এর মান পরীক্ষা করতে পারে
0" যদি ট্রেস ফাংশন থাকে তাহলে "pc - 12" অবস্থানে দেখায় এবং উপরের 8টি বিট হয়
সেট করুন, তাহলে আমরা জানি যে এর আগে অবিলম্বে একটি ফাংশনের নাম এমবেড করা আছে
অবস্থান এবং দৈর্ঘ্য "((pc[-3]) & 0xff000000)"।

-মথম্ব
-মর্ম
এআরএম এবং থাম্ব স্টেটে কার্যকর করা জেনারেটিং কোডের মধ্যে নির্বাচন করুন। জন্য ডিফল্ট
বেশিরভাগ কনফিগারেশন হল কোড তৈরি করা যা এআরএম অবস্থায় কার্যকর হয়, কিন্তু ডিফল্ট
এর সাথে GCC কনফিগার করে পরিবর্তন করা যেতে পারে --with-mode=অবস্থা কনফিগার বিকল্প।

-mtpcs-ফ্রেম
একটি স্ট্যাক ফ্রেম তৈরি করুন যা থাম্ব প্রসিডিউর কল স্ট্যান্ডার্ডের সাথে সঙ্গতিপূর্ণ
সমস্ত নন-লিফ ফাংশন। (একটি পাতার ফাংশন এমন একটি যা অন্যকে কল করে না
ফাংশন।) ডিফল্ট হয় -mno-tpcs-ফ্রেম.

-mtpcs-পাতা-ফ্রেম
একটি স্ট্যাক ফ্রেম তৈরি করুন যা থাম্ব প্রসিডিউর কল স্ট্যান্ডার্ডের সাথে সঙ্গতিপূর্ণ
সমস্ত পাতা ফাংশন। (একটি পাতার ফাংশন এমন একটি যা অন্য কোন ফাংশনকে কল করে না।)
ডিফল্ট হয় -mno-apcs-লিফ-ফ্রেম.

-mcallee-সুপার-ইন্টারওয়ার্কিং
একটি ARM নির্দেশ কম্পাইল করা ফাইলে বাহ্যিকভাবে দৃশ্যমান সমস্ত ফাংশন দেয়
হেডার সেট করুন যা বাকি ফাংশন চালানোর আগে থাম্ব মোডে সুইচ করে।
এটি এই ফাংশনগুলিকে নন-ইন্টারওয়ার্কিং কোড থেকে কল করার অনুমতি দেয়। এই বিকল্প হয়
AAPCS কনফিগারেশনে বৈধ নয় কারণ ইন্টারওয়ার্কিং ডিফল্টরূপে সক্রিয় থাকে।

-mcaller-সুপার-ইন্টারওয়ার্কিং
ফাংশন পয়েন্টার (ভার্চুয়াল ফাংশন সহ) মাধ্যমে কল সঠিকভাবে চালানোর অনুমতি দেয়
লক্ষ্য কোডটি ইন্টারওয়ার্কিংয়ের জন্য সংকলিত হয়েছে কিনা তা নির্বিশেষে।
এই বিকল্পটি থাকলে একটি ফাংশন পয়েন্টার চালানোর খরচের মধ্যে একটি ছোট ওভারহেড আছে
সক্রিয় করা হয়. এই বিকল্পটি AAPCS কনফিগারেশনে বৈধ নয় কারণ ইন্টারওয়ার্কিং
ডিফল্টরূপে সক্ষম।

-এমটিপি=নাম
থ্রেড স্থানীয় স্টোরেজ পয়েন্টারের জন্য অ্যাক্সেস মডেল নির্দিষ্ট করুন। বৈধ মডেল হয়
নরম, যা "__aeabi_read_tp" এ কল জেনারেট করে, cp15, যা থ্রেড নিয়ে আসে
সরাসরি "cp15" থেকে পয়েন্টার (arm6k আর্কিটেকচারে সমর্থিত), এবং গাড়ী, যা
নির্বাচিত প্রসেসরের জন্য সেরা উপলব্ধ পদ্ধতি ব্যবহার করে। ডিফল্ট সেটিং হল
গাড়ী.

-mtls-উপভাষা=উপভাষা
থ্রেড স্থানীয় স্টোরেজ অ্যাক্সেস করার জন্য ব্যবহার করার জন্য উপভাষা নির্দিষ্ট করুন। দুই উপভাষাগুলি হয়
সমর্থিত---নু-হরিণ এবং gnu2. দ্য নু-হরিণ উপভাষা এর জন্য আসল GNU স্কিম নির্বাচন করে
স্থানীয় এবং বিশ্বব্যাপী গতিশীল TLS মডেল সমর্থন করে। দ্য gnu2 উপভাষা GNU নির্বাচন করে
বর্ণনাকারী স্কিম, যা ভাগ করা লাইব্রেরিগুলির জন্য আরও ভাল কর্মক্ষমতা প্রদান করে। জিএনইউ
বর্ণনাকারী স্কিম মূল স্কিমের সাথে সামঞ্জস্যপূর্ণ, তবে নতুন প্রয়োজন
অ্যাসেম্বলার, লিঙ্কার এবং লাইব্রেরি সমর্থন। প্রাথমিক এবং স্থানীয় exec TLS মডেল হয়
এই বিকল্প দ্বারা প্রভাবিত না এবং সর্বদা মূল স্কিম ব্যবহার করুন।

-mword-স্থানান্তর
শুধুমাত্র শব্দ-আকারের মানগুলিতে পরম স্থানান্তর তৈরি করুন (যেমন R_ARM_ABS32)। এই
লক্ষ্যবস্তুতে ডিফল্টরূপে সক্রিয় (uClinux, SymbianOS) যেখানে রানটাইম লোডার আরোপ করে
এই নিষেধাজ্ঞা, এবং যখন -fpic or -fpic উল্লিখিত আছে.

-mfix-cortex-M3-LDRD
কিছু Cortex-M3 কোর ডেটা দুর্নীতির কারণ হতে পারে যখন "ldrd" নির্দেশাবলী সহ
ওভারল্যাপিং গন্তব্য এবং বেস রেজিস্টার ব্যবহার করা হয়। এই বিকল্পটি তৈরি করা এড়িয়ে যায়
এই নির্দেশাবলী। এই বিকল্পটি ডিফল্টরূপে সক্রিয় করা হয় যখন -mcpu=cortex-m3 is
নির্দিষ্ট

-সাম্প্রদায়িক-প্রবেশ
-mno-unaligned-access
ঠিকানাগুলি থেকে 16- এবং 32-বিট মানের পড়া এবং লেখা সক্ষম করে (বা অক্ষম করে)
যেগুলো 16- বা 32-বিট সারিবদ্ধ নয়। ডিফল্টরূপে আনলাইনড অ্যাক্সেস সবার জন্য অক্ষম করা হয়েছে
প্রি-ARMv6 এবং সমস্ত ARMv6-M আর্কিটেকচার, এবং অন্যান্য সমস্ত আর্কিটেকচারের জন্য সক্রিয়। যদি
unaligned অ্যাক্সেস সক্রিয় করা হয় না তাহলে প্যাকড ডেটা স্ট্রাকচারের শব্দগুলি অ্যাক্সেস করা হবে
এক সময়ে একটি বাইট।

ARM অ্যাট্রিবিউট "Tag_CPU_unaligned_access" জেনারেট করা অবজেক্ট ফাইলে সেট করা হবে
এই বিকল্পের সেটিংয়ের উপর নির্ভর করে সত্য বা মিথ্যা। যদি unaligned
অ্যাক্সেস সক্ষম করা হয় তারপর প্রিপ্রসেসর প্রতীক "__ARM_FEATURE_UNALIGNED"ও হবে
সংজ্ঞায়িত

-64 বিটের জন্য mneon-
স্কেলার 64-বিট অপারেশন পরিচালনা করতে নিয়ন ব্যবহার করে সক্ষম করে। এটি ডিফল্টরূপে অক্ষম করা হয়
যেহেতু কোর রেজিস্টার থেকে নিয়নে ডেটা স্থানান্তরের খরচ বেশি।

-mrestrict-এটা
ARMv8 এর নিয়ম মেনে IT ব্লক তৈরি করাকে সীমাবদ্ধ করে। আইটি ব্লক করতে পারেন
নির্দেশাবলীর একটি নির্বাচিত সেট থেকে শুধুমাত্র একটি একক 16-বিট নির্দেশ রয়েছে। এই
ARMv8 থাম্ব মোডের জন্য বিকল্পটি ডিফল্টরূপে চালু থাকে।

এভিআর অপশন সমূহ

এই বিকল্পগুলি AVR বাস্তবায়নের জন্য সংজ্ঞায়িত করা হয়েছে:

-mmcu =MCU
Atmel AVR নির্দেশ সেট আর্কিটেকচার (ISA) বা MCU প্রকার নির্দিষ্ট করুন।

এই বিকল্পের জন্য ডিফল্ট হল@tie{}"avr2"।

GCC নিম্নলিখিত AVR ডিভাইস এবং ISA সমর্থন করে:

"avr2"
8@tie{}KiB পর্যন্ত প্রোগ্রাম মেমরি সহ "ক্লাসিক" ডিভাইস। MCU@tie{}= "attiny22",
"attiny26", "at90c8534", "at90s2313", "at90s2323", "at90s2333", "at90s2343",
"at90s4414", "at90s4433", "at90s4434", "at90s8515", "at90s8535".

"avr25"
8@tie{}KiB পর্যন্ত প্রোগ্রাম মেমরি এবং "MOVW" সহ "ক্লাসিক" ডিভাইস
নির্দেশ. MCU@tie{}= "ata5272", "ata6289", "attiny13", "attiny13a",
"attiny2313", "attiny2313a", "attiny24", "attiny24a", "attiny25", "attiny261",
"attiny261a", "attiny43u", "attiny4313", "attiny44", "attiny44a", "attiny45",
"attiny461", "attiny461a", "attiny48", "attiny84", "attiny84a", "attiny85",
"attiny861", "attiny861a", "attiny87", "attiny88", "at86rf401"।

"avr3"
16@tie{}KiB পর্যন্ত 64@tie{}KiB প্রোগ্রাম মেমরি সহ "ক্লাসিক" ডিভাইস।
MCU@tie{}= "at43usb355", "at76c711"।

"avr31"
প্রোগ্রাম মেমরির 128@tie{}KiB সহ "ক্লাসিক" ডিভাইস। MCU@tie{}= "atmega103",
"at43usb320"।

"avr35"
16@tie{}KiB পর্যন্ত 64@tie{}KiB প্রোগ্রাম মেমরি এবং সহ "ক্লাসিক" ডিভাইস
"MOVW" নির্দেশ। MCU@tie{}= "ata5505", "atmega16u2", "atmega32u2",
"atmega8u2", "attiny1634", "attiny167", "at90usb162", "at90usb82"।

"avr4"
8@tie{}KiB পর্যন্ত প্রোগ্রাম মেমরি সহ "উন্নত" ডিভাইস। MCU@tie{}= "ata6285",
"ata6286", "atmega48", "atmega48a", "atmega48p", "atmega48pa", "atmega8",
"atmega8a", "atmega8hva", "atmega8515", "atmega8535", "atmega88", "atmega88a",
"atmega88p", "atmega88pa", "at90pwm1", "at90pwm2", "at90pwm2b", "at90pwm3",
"at90pwm3b", "at90pwm81"।

"avr5"
16@tie{}KiB পর্যন্ত 64@tie{}KiB প্রোগ্রাম মেমরি সহ "উন্নত" ডিভাইস।
MCU@tie{}= "ata5790", "ata5790n", "ata5795", "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", "atmega26hvg", "atmega32", "atmega32a", "atmega32c1",
"atmega32hvb", "atmega32hvbrevb", "atmega32m1", "atmega32u4", "atmega32u6",
"atmega323", "atmega324a", "atmega324p", "atmega324pa", "atmega325", "atmega325a",
"atmega325p", "atmega3250", "atmega3250a", "atmega3250p", "atmega3250pa",
"atmega328", "atmega328p", "atmega329", "atmega329a", "atmega329p", "atmega329pa",
"atmega3290", "atmega3290a", "atmega3290p", "atmega3290pa", "atmega406",
"atmega48hvf", "atmega64", "atmega64a", "atmega64c1", "atmega64hve", "atmega64m1",
"atmega64rfa2", "atmega64rfr2", "atmega640", "atmega644", "atmega644a",
"atmega644p", "atmega644pa", "atmega645", "atmega645a", "atmega645p",
"atmega6450", "atmega6450a", "atmega6450p", "atmega649", "atmega649a",
"atmega649p", "atmega6490", "atmega6490a", "atmega6490p", "at90can32",
"at90can64", "at90pwm161", "at90pwm216", "at90pwm316", "at90scr100", "at90usb646",
"at90usb647", "at94k", "m3000"।

"avr51"
প্রোগ্রাম মেমরির 128@tie{}KiB সহ "উন্নত" ডিভাইস। MCU@tie{}= "atmega128",
"atmega128a", "atmega128rfa1", "atmega1280", "atmega1281", "atmega1284",
"atmega1284p", "at90can128", "at90usb1286", "at90usb1287".

"avr6"
3-বাইট পিসি সহ "উন্নত" ডিভাইস, যেমন 128@tie{}KiB এর বেশি প্রোগ্রাম সহ
স্মৃতি. MCU@tie{}= "atmega2560", "atmega2561"।

"avrxmega2"
8@tie{}KiB এবং 64@tie{}KiB পর্যন্ত প্রোগ্রাম মেমরি সহ "XMEGA" ডিভাইস।
MCU@tie{}= "atmxt112sl", "atmxt224", "atmxt224e", "atmxt336s", "atxmega16a4",
"atxmega16a4u", "atxmega16c4", "atxmega16d4", "atxmega16x1", "atxmega32a4",
"atxmega32a4u", "atxmega32c4", "atxmega32d4", "atxmega32e5", "atxmega32x1".

"avrxmega4"
64@tie{}KiB এবং 128@tie{}KiB পর্যন্ত প্রোগ্রাম সহ "XMEGA" ডিভাইস
স্মৃতি. MCU@tie{}= "atxmega64a3", "atxmega64a3u", "atxmega64a4u", "atxmega64b1",
"atxmega64b3", "atxmega64c3", "atxmega64d3", "atxmega64d4".

"avrxmega5"
64@tie{}KiB এবং 128@tie{}KiB পর্যন্ত প্রোগ্রাম সহ "XMEGA" ডিভাইস
মেমরি এবং RAM এর 64@tie{}KiB-এর বেশি। MCU@tie{}= "atxmega64a1",
"atxmega64a1u"।

"avrxmega6"
128@tie{}KiB এর বেশি প্রোগ্রাম মেমরি সহ "XMEGA" ডিভাইস। MCU@tie{}=
"atmxt540s", "atmxt540sreva", "atxmega128a3", "atxmega128a3u", "atxmega128b1",
"atxmega128b3", "atxmega128c3", "atxmega128d3", "atxmega128d4", "atxmega192a3",
"atxmega192a3u", "atxmega192c3", "atxmega192d3", "atxmega256a3", "atxmega256a3b",
"atxmega256a3bu", "atxmega256a3u", "atxmega256c3", "atxmega256d3", "atxmega384c3",
"atxmega384d3"।

"avrxmega7"
"XMEGA" ডিভাইস যার 128@tie{}KiB এর বেশি প্রোগ্রাম মেমরি এবং এর বেশি
RAM এর 64@tie{}KiB। MCU@tie{}= "atxmega128a1", "atxmega128a1u", "atxmega128a4u"।

"avr1"
এই ISA ন্যূনতম AVR কোর দ্বারা প্রয়োগ করা হয় এবং শুধুমাত্র অ্যাসেম্বলারের জন্য সমর্থিত।
MCU@tie{}= "attiny11", "attiny12", "attiny15", "attiny28", "at90s1200"।

- maccumulate- args
আউটগোয়িং ফাংশন আর্গুমেন্ট সংগ্রহ করুন এবং এর জন্য প্রয়োজনীয় স্ট্যাক স্পেস অর্জন/মুক্ত করুন
ফাংশন প্রলোগ/এপিলগে একবার বহির্গামী ফাংশন আর্গুমেন্ট। এই বিকল্প ছাড়া,
একটি ফাংশন কল করার আগে বহির্গামী আর্গুমেন্ট পুশ করা হয় এবং পরে পপ করা হয়।

ফাংশন কল পরে আর্গুমেন্ট পপিং AVR ব্যয়বহুল হতে পারে যাতে
স্ট্যাক স্পেস জমানোর ফলে ছোট এক্সিকিউটেবল হতে পারে কারণ আর্গুমেন্ট প্রয়োজন
যেমন একটি ফাংশন কল পরে স্ট্যাক থেকে সরানো হবে না.

এই বিকল্পটি এমন ফাংশনগুলির জন্য কোডের আকার কমিয়ে দিতে পারে যা একাধিক কল করে
যে ফাংশন স্ট্যাকের উপর তাদের আর্গুমেন্ট পেতে কল মত printf মত ফাংশন.

-মব্র্যাঞ্চ-কস্ট =মূল্য
শর্তাধীন শাখা নির্দেশাবলীর জন্য শাখা খরচ সেট করুন মূল্য. যুক্তিসঙ্গত মান
উন্নত মূল্য ছোট, অ নেতিবাচক পূর্ণসংখ্যা। ডিফল্ট শাখা খরচ 0।

-mcall-প্রোলোগস
ফাংশন প্রোলোগ/এপিলগগুলি উপযুক্ত সাবরুটিনে কল হিসাবে প্রসারিত হয়। কোড
আকার ছোট।

-পুদিনা8
অনুমান করুন "int" 8-বিট পূর্ণসংখ্যা। এটি সমস্ত ধরণের আকারকে প্রভাবিত করে: একটি "চার" হল 1
বাইট, একটি "int" হল 1 বাইট, একটি "লং" হল 2 বাইট এবং "লং লং" হল 4 বাইট। অনুগ্রহ
মনে রাখবেন যে এই বিকল্পটি সি স্ট্যান্ডার্ডের সাথে সঙ্গতিপূর্ণ নয়, তবে এর ফলাফল ছোট হয়
কোড আকার।

-mno-বিঘ্ন
জেনারেট করা কোড হার্ডওয়্যার বাধার সাথে সামঞ্জস্যপূর্ণ নয়। কোড আকার ছোট.

-মরেলাক্স
"ক্যাল" রেসপ প্রতিস্থাপন করার চেষ্টা করুন। সংক্ষিপ্ত "RCALL" resp দ্বারা "JMP" নির্দেশ। "আরজেএমপি"
প্রযোজ্য হলে নির্দেশ। "-mrelax" সেট করা শুধুমাত্র "--relax" বিকল্পটি যোগ করে
linker কমান্ড লাইন যখন linker বলা হয়।

জাম্প রিলাক্সিং লিঙ্কার দ্বারা সঞ্চালিত হয় কারণ জাম্প অফসেট আগে জানা যায়নি
কোড অবস্থিত। অতএব, কম্পাইলার দ্বারা উত্পন্ন অ্যাসেম্বলার কোড একই,
কিন্তু এক্সিকিউটেবলের নির্দেশাবলী অ্যাসেম্বলারের নির্দেশাবলী থেকে আলাদা হতে পারে
কোড।

লিঙ্কার স্টাবগুলির প্রয়োজন হলে রিলাক্সিং চালু করতে হবে, "EIND" এর বিভাগটি দেখুন এবং
নীচে লিঙ্কার স্টাব.

-msp8
স্ট্যাক পয়েন্টার রেজিস্টারকে 8-বিট রেজিস্টার হিসাবে বিবেচনা করুন, অর্থাৎ এর উচ্চ বাইট অনুমান করুন
স্ট্যাক পয়েন্টার শূন্য। সাধারণভাবে, আপনার হাতে এই বিকল্পটি সেট করার দরকার নেই।

এই বিকল্পটি অভ্যন্তরীণভাবে কম্পাইলার দ্বারা মাল্টিলিব নির্বাচন এবং নির্মাণের জন্য ব্যবহৃত হয়
আর্কিটেকচার "avr2" এবং "avr25"। এই আর্কিটেকচারগুলি সাথে এবং ছাড়া ডিভাইসগুলিকে মিশ্রিত করে
"এসপিএইচ"। কম্পাইলার ড্রাইভার "-mmcu=avr2" বা "-mmcu=avr25" ব্যতীত অন্য কোনো সেটিং এর জন্য
কম্পাইলার প্রপার কমান্ড লাইন থেকে এই অপশনটি যোগ বা মুছে ফেলবে, কারণ
কম্পাইলার তখন জানে যে ডিভাইস বা আর্কিটেকচারে একটি 8-বিট স্ট্যাক পয়েন্টার আছে কিনা এবং এইভাবে
কোন "SPH" রেজিস্টার বা না.

-mstrict-x
হার্ডওয়্যার দ্বারা প্রস্তাবিত উপায়ে ঠিকানা রেজিস্টার "X" ব্যবহার করুন। এর মানে হল "X"
শুধুমাত্র পরোক্ষ, পোস্ট-ইনক্রিমেন্ট বা প্রি-ডিক্রিমেন্ট অ্যাড্রেসিং-এ ব্যবহৃত হয়।

এই বিকল্পটি ছাড়া, "X" রেজিস্টারটি "Y" বা "Z" এর মতোই ব্যবহার করা যেতে পারে যা
তারপর অতিরিক্ত নির্দেশাবলী দ্বারা অনুকরণ করা হয়. উদাহরণস্বরূপ, এর সাথে একটি মান লোড করা হচ্ছে
একটি রেজিস্টারে একটি ছোট নন-নেগেটিভ "const < 64" সহ "X+const" ঠিকানা Rn is
হিসাবে সঞ্চালিত

adiw r26, const ; X += const
ld , এক্স ; = *এক্স
sbiw r26, const ; X -= const

-mtiny-স্ট্যাক
স্ট্যাক পয়েন্টারের শুধুমাত্র নিচের 8@tie{}বিট পরিবর্তন করুন।

-ওয়াদ্দার-স্পেস-কনভার্ট
ঠিকানার স্থানগুলির মধ্যে রূপান্তর সম্পর্কে সতর্ক করুন যেখানে ফলাফল ঠিকানা
স্পেস ইনকামিং অ্যাড্রেস স্পেসে থাকে না।

"EIND" এবং 128 কি বাইটের বেশি ফ্ল্যাশ সহ ডিভাইস

বাস্তবায়নে পয়েন্টার 16@tie{}বিট চওড়া। একটি ফাংশন বা লেবেলের ঠিকানা
শব্দ ঠিকানা হিসাবে উপস্থাপন করা হয় যাতে পরোক্ষ জাম্প এবং কল যেকোন কোডকে লক্ষ্য করতে পারে
ঠিকানা 64@tie{}কি শব্দের পরিসরে।

128@tie{}কি বাইটের বেশি ডিভাইসে পরোক্ষভাবে লাফ দেওয়ার সুবিধার জন্য
প্রোগ্রাম মেমরি স্পেস, "EIND" নামে একটি বিশেষ ফাংশন রেজিস্টার আছে যা কাজ করে
লক্ষ্য ঠিকানার সবচেয়ে উল্লেখযোগ্য অংশ যখন "EICALL" বা "EIJMP" নির্দেশাবলী থাকে
ব্যবহার করা হয়েছে।

এই ডিভাইসগুলিতে পরোক্ষ জাম্প এবং কলগুলি কম্পাইলার দ্বারা নিম্নরূপ পরিচালনা করা হয় এবং হয়
কিছু সীমাবদ্ধতা সাপেক্ষে:

কম্পাইলার কখনই "EIND" সেট করে না।

· কম্পাইলার "EICALL"/"EIJMP" নির্দেশাবলীতে "EIND" নিহিতভাবে ব্যবহার করে বা পড়তে পারে
একটি "RET" এর মাধ্যমে একটি পরোক্ষ কল/জাম্প অনুকরণ করার জন্য সরাসরি "EIND"
নির্দেশ.

· কম্পাইলার অনুমান করে যে "EIND" কখনই স্টার্টআপ কোডের সময় বা এর সময় পরিবর্তিত হয় না
আবেদন বিশেষ করে, "EIND" ফাংশন বা বাধায় সংরক্ষিত/পুনরুদ্ধার করা হয় না
পরিষেবার রুটিন প্রলোগ/এপিলগ।

· ফাংশন এবং কম্পিউটেড গোটোতে পরোক্ষ কলের জন্য, লিঙ্কার জেনারেট করে নিবন্ধসমূহ. স্টাবস
কখনও কখনও জাম্প প্যাডও বলা হয় trampolines. এইভাবে, পরোক্ষ কল/জাম্পে লাফ দেয়
যেমন একটি অসম্পূর্ণ স্টাবটি পছন্দসই ঠিকানায় সরাসরি লাফ ধারণ করে।

· লিঙ্কার শিথিলকরণ চালু করতে হবে যাতে লিঙ্কার স্টাব তৈরি করে
সঠিকভাবে একটি সমস্ত পরিস্থিতি। কম্পাইলার বিকল্প "-mrelax" এবং linler বিকল্পটি দেখুন
"--বিশ্রাম করুন" কোণার কেস আছে যেখানে লিঙ্কার স্টাব তৈরি করার কথা
শিথিলতা ছাড়াই এবং একটি সহায়ক ত্রুটি বার্তা ছাড়াই গর্ভপাত হয়।

ডিফল্ট লিঙ্কার স্ক্রিপ্টটি "EIND = 0" দিয়ে কোডের জন্য সাজানো হয়েছে। যদি কোড অনুমিত হয়
"EIND != 0" এর সাথে একটি সেটআপের জন্য কাজ করতে, একটি কাস্টম লিঙ্কার স্ক্রিপ্ট ক্রমানুসারে ব্যবহার করতে হবে
যে বিভাগগুলির নাম ".trampolines" দিয়ে শুরু হয় সেগুলিকে সেগমেন্টে রাখতে যেখানে
"EIND" নির্দেশ করে।

libgcc থেকে স্টার্টআপ কোড কখনই "EIND" সেট করে না। লক্ষ্য করুন যে স্টার্টআপ কোডটি একটি মিশ্রণ
libgcc এবং AVR-LibC থেকে কোডের। "EIND" তে AVR-LibC-এর প্রভাবের জন্য, AVR- দেখুন
LibC ব্যবহারকারী ম্যানুয়াল ("http://nongnu.org/avr-libc/user-manual/")।

ব্যবহারকারী-নির্দিষ্ট স্টার্টআপ কোডের জন্য "EIND" তাড়াতাড়ি সেট আপ করা বৈধ, উদাহরণস্বরূপ
".init3" বিভাগে অবস্থিত ইনিশিয়ালাইজেশন কোডের মাধ্যম। এই ধরনের কোড আগে সঞ্চালিত হয়
সাধারণ স্টার্টআপ কোড যা RAM শুরু করে এবং কনস্ট্রাক্টরকে কল করে, কিন্তু এর বিট পরে
AVR-LibC থেকে স্টার্টআপ কোড যা ভেক্টর টেবিল যেখানে সেগমেন্টে "EIND" সেট করে
অবস্থিত।

#অন্তর্ভুক্ত

স্থির শূন্য
__attribute__((section("init3"), naked,used,no_instrument_function))
init3_set_eind (অকার্যকর)
{
__asm ​​উদ্বায়ী ("ldi r24,pm_hh8(__trampolines_start)\n\t"
"আউট %i0,r24" :: "n" (&EIND): "r24","মেমরি");
}

লিঙ্কার স্ক্রিপ্টে "__trampolines_start" চিহ্নটি সংজ্ঞায়িত করা হয়েছে।

নিম্নলিখিত দুটি শর্ত থাকলে লিঙ্কার দ্বারা স্টাবগুলি স্বয়ংক্রিয়ভাবে তৈরি হয়
মিলিত:

-
(খুব ছোট উত্পাদন করা নিবন্ধসমূহ) তাই ভালো:

LDI r24, lo8(gs( ))
LDI r25, hi8(gs( ))

-
বাহিরে সেগমেন্ট যেখানে স্টাবগুলি অবস্থিত।

· কম্পাইলার নিম্নলিখিত পরিস্থিতিতে কোড লেবেলের জন্য এই ধরনের "gs" মডিফায়ার নির্গত করে:

-
-
- -mcall-প্রোলোগস>
কমান্ড লাইন বিকল্প।

-
টেবিল আপনি নির্দিষ্ট করতে পারেন -fno-জাম্প-টেবিল কমান্ড লাইন বিকল্প।

-
-
· অ-প্রতীকী ঠিকানায় ঝাঁপ দেওয়া যেমন হয় না সমর্থিত:

int প্রধান (শূন্য)
{
/* শব্দ ঠিকানায় কল ফাংশন 0x2 */
ফেরত ((int(*)(void)) 0x2)();
}

পরিবর্তে, একটি স্টাব সেট আপ করতে হবে, অর্থাৎ ফাংশনটি একটি প্রতীকের মাধ্যমে কল করতে হবে
(উদাহরণে "func_4"):

int প্রধান (শূন্য)
{
extern int func_4 (অকার্যকর);

/* বাইট ঠিকানা 0x4 এ কল ফাংশন */
রিটার্ন func_4();
}

এবং অ্যাপ্লিকেশনটি "-Wl,--defsym,func_4=0x4" এর সাথে লিঙ্ক করা উচিত। বিকল্পভাবে, "func_4"
লিঙ্কার স্ক্রিপ্টে সংজ্ঞায়িত করা যেতে পারে।

"RAMPD", "RAMPX", "RAMPY" এবং "RAMPZ" বিশেষ ফাংশন রেজিস্টার পরিচালনা করা

কিছু AVR ডিভাইস 64@tie{}KiB পরিসরের চেয়ে বড় স্মৃতি সমর্থন করে যা অ্যাক্সেস করা যায়
16-বিট পয়েন্টার সহ। এই 64@tie{}KiB রেঞ্জের বাইরে মেমরি অবস্থানগুলি অ্যাক্সেস করতে,
একটি "RAMP" রেজিস্টারের বিষয়বস্তু ঠিকানার উচ্চ অংশ হিসাবে ব্যবহৃত হয়: "X", "Y", "Z"
ঠিকানা রেজিস্টার "RAMPX", "RAMPY", "RAMPZ" বিশেষ ফাংশনের সাথে সংযুক্ত
একটি বিস্তৃত ঠিকানা পেতে যথাক্রমে নিবন্ধন করুন। একইভাবে, "RAMPD" এর সাথে একসাথে ব্যবহার করা হয়
সরাসরি সম্বোধন।

· স্টার্টআপ কোড "RAMP" বিশেষ ফাংশন রেজিস্টারকে শূন্য দিয়ে শুরু করে।

· যদি একটি এভিআর নামে ঠিকানা স্পেস, নামে ঠিকানা স্থান জেনেরিক বা "__ফ্ল্যাশ" ছাড়া অন্য
ব্যবহৃত হয়, তারপর অপারেশনের আগে প্রয়োজন অনুযায়ী "RAMPZ" সেট করা হয়।

· যদি ডিভাইসটি 64@tie{KiB} এর চেয়ে বড় RAM সমর্থন করে এবং কম্পাইলার পরিবর্তন করতে হবে
"RAMPZ" একটি অপারেশন সম্পন্ন করতে, "RAMPZ" অপারেশনের পরে শূন্যে রিসেট করা হয়৷

· যদি ডিভাইসটি একটি নির্দিষ্ট "RAMP" রেজিস্টারের সাথে আসে, তাহলে ISR প্রোলোগ/এপিলগ
সেই SFR সংরক্ষণ/পুনরুদ্ধার করে এবং ISR কোডের ক্ষেত্রে শূন্য দিয়ে শুরু করে
(অবশ্যই) এটি ব্যবহার করুন।

· 64@tie{KiB} এর চেয়ে বড় RAM AVR লক্ষ্যগুলির জন্য GCC দ্বারা সমর্থিত নয়৷ ব্যবহার করলে
ইনলাইন অ্যাসেম্বলার 16-বিট ঠিকানা পরিসরের বাইরে অবস্থান থেকে পড়তে এবং পরিবর্তন করতে
"RAMP" রেজিস্টারগুলির মধ্যে একটি, অ্যাক্সেসের পরে আপনাকে অবশ্যই এটিকে শূন্যে রিসেট করতে হবে।

AVR বিল্ট-ইন ম্যাক্রো

GCC একাধিক বিল্ট-ইন ম্যাক্রো সংজ্ঞায়িত করে যাতে ব্যবহারকারী কোড উপস্থিতির জন্য পরীক্ষা করতে পারে বা
বৈশিষ্ট্যের অনুপস্থিতি। নিম্নলিখিত বিল্ট-ইন ম্যাক্রোগুলির মধ্যে প্রায় যেকোনও ডিভাইস থেকে অনুমান করা হয়
ক্ষমতা এবং এইভাবে "-mmcu=" কমান্ড-লাইন বিকল্প দ্বারা ট্রিগার করা হয়।

আরও বেশি AVR-নির্দিষ্ট বিল্ট-ইন ম্যাক্রোগুলির জন্য দেখুন এভিআর নামে ঠিকানা শূন্যস্থানের এবং এভিআর বিল্ট-ইন
কার্যাবলী.

"__AVR_ARCH__"
বিল্ড-ইন ম্যাক্রো যা একটি দশমিক সংখ্যার সমাধান করে যা আর্কিটেকচার সনাক্ত করে এবং
"-mmcu= এর উপর নির্ভর করেmcu" বিকল্প সম্ভাব্য মান হল:

2, 25, 3, 31, 35, 4, 5, 51, 6, 102, 104, 105, 106, 107

উন্নত MCU="avr2", "avr25", "avr3", "avr31", "avr35", "avr4", "avr5", "avr51", "avr6",
যথাক্রমে "avrxmega2", "avrxmega4", "avrxmega5", "avrxmega6", "avrxmega7",। যদি MCU
একটি ডিভাইস নির্দিষ্ট করে, এই বিল্ট-ইন ম্যাক্রো সেই অনুযায়ী সেট করা হয়। উদাহরণস্বরূপ, সঙ্গে
"-mmcu=atmega8" ম্যাক্রোকে 4-এ সংজ্ঞায়িত করা হবে।

"__AVR_যন্ত্র__"
সেটিং "-mmcu=যন্ত্র" এই বিল্ট-ইন ম্যাক্রোকে সংজ্ঞায়িত করে যা ডিভাইসের নাম প্রতিফলিত করে।
উদাহরণস্বরূপ, "-mmcu=atmega8" বিল্ট-ইন ম্যাক্রো "__AVR_ATmega8__" সংজ্ঞায়িত করে,
"-mmcu=attiny261a" সংজ্ঞায়িত করে "__AVR_ATtiny261A__", ইত্যাদি।

অন্তর্নির্মিত ম্যাক্রোর নাম "__AVR_" স্কিম অনুসরণ করেযন্ত্র__" কোথায় যন্ত্র হয়
AVR ব্যবহারকারী ম্যানুয়াল থেকে ডিভাইসের নাম। মধ্যে পার্থক্য যন্ত্র অন্তর্নির্মিত মধ্যে
ম্যাক্রো এবং যন্ত্র "-mmcu = এযন্ত্র" যে পরেরটি সবসময় ছোট হাতের হয়।

If যন্ত্র একটি ডিভাইস নয় কিন্তু শুধুমাত্র একটি মূল আর্কিটেকচার যেমন "avr51", এই ম্যাক্রো হবে
সংজ্ঞায়িত করা হবে না।

"__AVR_XMEGA__"
ডিভাইস / আর্কিটেকচার ডিভাইসের XMEGA পরিবারের অন্তর্গত।

"__AVR_HAVE_ELPM__"
ডিভাইসটিতে "ELPM" নির্দেশনা রয়েছে৷

"__AVR_HAVE_ELPMX__"
ডিভাইসটিতে "ELPM Rn,Z" এবং "ইএলপিএম আরn,Z+" নির্দেশাবলী।

"__AVR_HAVE_MOVW__"
ডিভাইসটিতে 16-বিট রেজিস্টার-রেজিস্টার মুভ করার জন্য "MOVW" নির্দেশনা রয়েছে।

"__AVR_HAVE_LPMX__"
ডিভাইসটিতে "LPM Rn,Z" এবং "LPM আরn,Z+" নির্দেশাবলী।

"__AVR_HAVE_MUL__"
ডিভাইসটিতে একটি হার্ডওয়্যার গুণক রয়েছে।

"__AVR_HAVE_JMP_CALL__"
ডিভাইসটিতে "JMP" এবং "CALL" নির্দেশাবলী রয়েছে। এই সঙ্গে ডিভাইসের ক্ষেত্রে হয়
প্রোগ্রাম মেমরির কমপক্ষে 16@tie{}KiB।

"__AVR_HAVE_EIJMP_EICALL__"
"__AVR_3_BYTE_PC__"
ডিভাইসটিতে "EIJMP" এবং "EICALL" নির্দেশাবলী রয়েছে৷ এটি ডিভাইসের ক্ষেত্রে
128@tie{}KiB এর বেশি প্রোগ্রাম মেমরি সহ। এর মানেও এই প্রোগ্রাম
কাউন্টার (PC) 3@tie{}বাইট চওড়া।

"__AVR_2_BYTE_PC__"
প্রোগ্রাম কাউন্টার (PC) 2@tie{}বাইট চওড়া। এটি পর্যন্ত সহ ডিভাইসগুলির ক্ষেত্রে
প্রোগ্রাম মেমরির 128@tie{}KiB।

"__AVR_HAVE_8BIT_SP__"
"__AVR_HAVE_16BIT_SP__"
স্ট্যাক পয়েন্টার (SP) রেজিস্টারকে যথাক্রমে 8-বিট হিসাবে ধরা হয় 16-বিট রেজিস্টার দ্বারা
কম্পাইলার এই ম্যাক্রোগুলির সংজ্ঞা "-mtiny-stack" দ্বারা প্রভাবিত হয়।

"__AVR_HAVE_SPH__"
"__AVR_SP8__"
ডিভাইসটিতে SPH (স্ট্যাক পয়েন্টারের উচ্চ অংশ) বিশেষ ফাংশন রেজিস্টার বা আছে
একটি 8-বিট স্ট্যাক পয়েন্টার, যথাক্রমে। এই ম্যাক্রোগুলির সংজ্ঞা দ্বারা প্রভাবিত হয়
"-mmcu=" এবং "-mmcu=avr2" এবং "-mmcu=avr25" এর ক্ষেত্রেও "-msp8" দ্বারা।

"__AVR_HAVE_RAMPD__"
"__AVR_HAVE_RAMPX__"
"__AVR_HAVE_RAMPY__"
"__AVR_HAVE_RAMPZ__"
ডিভাইসটিতে "RAMPD", "RAMPX", "RAMPY", "RAMPZ" বিশেষ ফাংশন রেজিস্টার রয়েছে,
যথাক্রমে.

"__না_ব্যবধান__"
এই ম্যাক্রোটি "-mno-interrupts" কমান্ড লাইন বিকল্পকে প্রতিফলিত করে।

"__AVR_ERRATA_SKIP__"
"__AVR_ERRATA_SKIP_JMP_CALL__"
কিছু AVR ডিভাইস (AT90S8515, ATmega103) অবশ্যই 32-বিট নির্দেশাবলী এড়িয়ে যাবে না কারণ
হার্ডওয়্যার ত্রুটি এড়িয়ে যাওয়ার নির্দেশাবলী হল "SBRS", "SBRC", "SBIS", "SBIC" এবং "CPSE"।
দ্বিতীয় ম্যাক্রো শুধুমাত্র সংজ্ঞায়িত করা হয় যদি "__AVR_HAVE_JMP_CALL__"ও সেট করা থাকে।

"__AVR_SFR_OFFSET__=অফসেট"
নির্দেশাবলী যেগুলি I/O বিশেষ ফাংশন রেজিস্টারকে সম্বোধন করতে পারে সরাসরি "IN" এর মত
"OUT", "SBI" ইত্যাদি একটি ভিন্ন ঠিকানা ব্যবহার করতে পারে যেন একটি নির্দেশ দ্বারা সম্বোধন করা হয়েছে৷
"LD" বা "STS" এর মতো RAM অ্যাক্সেস করুন। এই অফসেট ডিভাইস আর্কিটেকচার উপর নির্ভর করে এবং আছে
সংশ্লিষ্ট I/O@tie{}ঠিকানা পেতে RAM ঠিকানা থেকে বিয়োগ করতে হবে।

"__WITH_AVRLIBC__"
কম্পাইলারটি AVR-Libc-এর সাথে একসাথে ব্যবহার করার জন্য কনফিগার করা হয়েছে। দেখুন
"--with-avrlibc" কনফিগার বিকল্প।

ব্ল্যাকফিন অপশন সমূহ

-mcpu =সিপিইউ[-সিরেভিশন]
লক্ষ্য ব্ল্যাকফিন প্রসেসরের নাম উল্লেখ করে। বর্তমানে, সিপিইউ এর একটি হতে পারে
bf512, bf514, bf516, bf518, bf522, bf523, bf524, bf525, bf526, bf527, bf531, bf532,
bf533, bf534, bf536, bf537, bf538, bf539, bf542, bf544, bf547, bf548, bf549, bf542m,
bf544m, bf547m, bf548m, bf549m, bf561, bf592.

.চ্ছিক সিরেভিশন লক্ষ্য ব্ল্যাকফিনের সিলিকন সংশোধন নির্দিষ্ট করে
প্রসেসর টার্গেটেড সিলিকন রিভিশনের জন্য উপলব্ধ যেকোন ওয়ার্কঅ্যারাউন্ড সক্রিয় করা হয়েছে।
If সিরেভিশন is না, কোন সমাধান সক্রিয় করা হয় না. যদি সিরেভিশন is কোন, সব
লক্ষ্যযুক্ত প্রসেসরের জন্য সমাধান সক্রিয় করা হয়েছে। "__SILICON_REVISION__" ম্যাক্রো
দুটি হেক্সাডেসিমেল ডিজিটে সংজ্ঞায়িত করা হয় যা প্রধান এবং গৌণ সংখ্যার প্রতিনিধিত্ব করে
সিলিকন সংশোধন। যদি সিরেভিশন is না, "__SILICON_REVISION__" সংজ্ঞায়িত করা হয়নি।
If সিরেভিশন is কোন, "__SILICON_REVISION__" 0xffff হিসাবে সংজ্ঞায়িত করা হয়েছে৷ এই যদি
ঐচ্ছিক সিরেভিশন ব্যবহার করা হয় না, GCC এর সর্বশেষ পরিচিত সিলিকন সংশোধন অনুমান করে
লক্ষ্যযুক্ত ব্ল্যাকফিন প্রসেসর।

GCC নির্দিষ্ট করার জন্য একটি প্রিপ্রসেসর ম্যাক্রো সংজ্ঞায়িত করে সিপিইউ। জন্য bfin-elf টুলচেইন,
এই বিকল্পটি libgloss দ্বারা প্রদত্ত হার্ডওয়্যার BSP-কে if-তে লিঙ্ক করতে দেয় -msim is
দেওয়া হয়নি

এই বিকল্প ছাড়া, bf532 ডিফল্টরূপে প্রসেসর হিসেবে ব্যবহৃত হয়।

জন্য যে সমর্থন নোট bf561 অসম্পূর্ণ। জন্য bf561, শুধুমাত্র প্রিপ্রসেসর ম্যাক্রো
সংজ্ঞায়িত

-msim
নির্দিষ্ট করে যে প্রোগ্রামটি সিমুলেটরে চালানো হবে। এটি সিমুলেটর ঘটায়
লিবগ্লোস দ্বারা বিএসপি লিঙ্ক করা হবে। এই বিকল্পটি শুধুমাত্র এর জন্য কার্যকর bfin-elf
টুলচেইন কিছু অন্যান্য বিকল্প, যেমন -মিড-শেয়ারড-লাইব্রেরি এবং -mfdpic, বোঝায়
-msim.

-মোমিট-লিফ-ফ্রেম-পয়েন্টার
পাতার ফাংশনের জন্য ফ্রেম পয়েন্টারটিকে একটি রেজিস্টারে রাখবেন না। এই এড়ায়
ফ্রেম পয়েন্টার সংরক্ষণ, সেট আপ এবং পুনরুদ্ধার করার নির্দেশাবলী এবং একটি অতিরিক্ত নিবন্ধন করে
পাতা ফাংশন উপলব্ধ. পছন্দ -ফমিট-ফ্রেম-পয়েন্টার ফ্রেম সরিয়ে দেয়
সমস্ত ফাংশনের জন্য পয়েন্টার, যা ডিবাগিংকে আরও কঠিন করে তুলতে পারে।

-mspecld-অসঙ্গতি
সক্রিয় করা হলে, কম্পাইলার নিশ্চিত করে যে উত্পন্ন কোড ধারণ করে না
জাম্প নির্দেশের পরে অনুমানমূলক লোড. যদি এই বিকল্পটি ব্যবহার করা হয়,
"__WORKAROUND_SPECULATIVE_LOADS" সংজ্ঞায়িত করা হয়েছে।

-mno-স্পেকল্ড-অসঙ্গতি
অনুমানমূলক লোড ঘটতে বাধা দিতে অতিরিক্ত কোড তৈরি করবেন না।

-mcsync-অসঙ্গতি
সক্রিয় করা হলে, কম্পাইলার নিশ্চিত করে যে জেনারেট করা কোডে CSYNC বা থাকে না
শর্তসাপেক্ষ শাখার পরে খুব তাড়াতাড়ি SSYNC নির্দেশাবলী। যদি এই বিকল্পটি ব্যবহার করা হয়,
"__WORKAROUND_SPECULATIVE_SYNCS" সংজ্ঞায়িত করা হয়েছে৷

-mno-csync-অসঙ্গতি
CSYNC বা SSYNC নির্দেশনাগুলিও ঘটতে বাধা দেওয়ার জন্য অতিরিক্ত কোড তৈরি করবেন না৷
একটি শর্তসাপেক্ষ শাখার পরেই।

-ম্লো -64 কে
সক্রিয় করা হলে, কম্পাইলার সম্পূর্ণ জ্ঞানের সুবিধা নিতে বিনামূল্যে
প্রোগ্রামটি কম 64k মেমরিতে ফিট করে।

-mno-low-64k
অনুমান করুন যে প্রোগ্রামটি নির্বিচারে বড়। এটি ডিফল্ট।

-mstack-Check-l1
uClinux দ্বারা L1 স্ক্র্যাচপ্যাড মেমরিতে রাখা তথ্য ব্যবহার করে স্ট্যাক পরীক্ষা করুন
কার্নেল

-মিড-শেয়ারড-লাইব্রেরি
লাইব্রেরি আইডি পদ্ধতির মাধ্যমে ভাগ করা লাইব্রেরি সমর্থন করে এমন কোড তৈরি করুন। এই অনুমতি দেয়
ভার্চুয়াল মেমরি ছাড়া পরিবেশে জায়গায় এবং ভাগ করা লাইব্রেরি চালানোর জন্য
ব্যবস্থাপনা এই বিকল্পটি বোঝায় -fpic। সঙ্গে একটি bfin-elf লক্ষ্য, এই বিকল্পটি বোঝায়
-msim.

-mno-আইডি-শেয়ারড-লাইব্রেরি
এমন কোড তৈরি করুন যা আইডি-ভিত্তিক ভাগ করা লাইব্রেরি ব্যবহার করা হচ্ছে বলে ধরে না। এই
ডিফল্ট.

-mleaf-id-শেয়ারড-লাইব্রেরি
লাইব্রেরি আইডি পদ্ধতির মাধ্যমে ভাগ করা লাইব্রেরি সমর্থন করে এমন কোড তৈরি করুন, কিন্তু অনুমান করে
যে এই লাইব্রেরি বা এক্সিকিউটেবল অন্য কোনো আইডি শেয়ার করা লাইব্রেরির সাথে লিঙ্ক করবে না।
এটি কম্পাইলারকে জাম্প এবং কলের জন্য দ্রুত কোড ব্যবহার করার অনুমতি দেয়।

-mno-লিফ-আইডি-শেয়ারড-লাইব্রেরি
অনুমান করবেন না যে সংকলিত কোডটি কোনো আইডি ভাগ করা লাইব্রেরির সাথে লিঙ্ক করবে না।
স্লোয়ার কোড জাম্প এবং কল insns জন্য তৈরি করা হয়.

-মশার্ড-লাইব্রেরি-আইডি = এন
আইডি-ভিত্তিক শেয়ার্ড লাইব্রেরির আইডেন্টিফিকেশন নম্বরটি কম্পাইল করা হচ্ছে।
0 এর মান উল্লেখ করলে আরো কমপ্যাক্ট কোড তৈরি হয়; অন্যান্য মান বাহিনী নির্দিষ্ট করা
বর্তমান লাইব্রেরিতে সেই সংখ্যার বরাদ্দ কিন্তু আর স্থান- বা সময় নয়-
এই বিকল্পটি বাদ দেওয়ার চেয়ে দক্ষ।

-msep-ডেটা
কোড তৈরি করুন যা ডেটা সেগমেন্টকে মেমরির একটি ভিন্ন এলাকায় অবস্থিত করার অনুমতি দেয়
পাঠ্য বিভাগ থেকে। এই ছাড়া একটি পরিবেশে জায়গায় চালানোর জন্য অনুমতি দেয়
ভার্চুয়াল মেমরি ম্যানেজমেন্ট টেক্সট বিভাগের বিরুদ্ধে স্থানান্তর বাদ দিয়ে।

-mno-সেপ-ডেটা
কোড তৈরি করুন যা অনুমান করে যে ডেটা বিভাগ পাঠ্য বিভাগকে অনুসরণ করে। এই
ডিফল্ট.

-মলং-কল
-mno-লং-কল
কম্পাইলারকে প্রথমে ঠিকানা লোড করে ফাংশন কল করতে বলে
একটি রেজিস্টারে কাজ করে এবং তারপর এই রেজিস্টারে একটি সাবরুটিন কল সম্পাদন করে। এই
টার্গেট ফাংশন যদি 24-বিট অ্যাড্রেসিং রেঞ্জের বাইরে থাকে তবে সুইচের প্রয়োজন
সাবরুটিন কল নির্দেশের অফসেট-ভিত্তিক সংস্করণ।

এই বৈশিষ্ট্য ডিফল্টরূপে সক্রিয় করা হয় না. নির্দিষ্ট করা -mno-লং-কল পুনরুদ্ধার
ডিফল্ট আচরণ। নোট করুন এই সুইচগুলি কীভাবে কম্পাইলার তৈরি করে তার উপর কোন প্রভাব নেই
ফাংশন পয়েন্টারের মাধ্যমে ফাংশন কল পরিচালনা করার জন্য কোড।

-mfast-fp
দ্রুত ফ্লোটিং-পয়েন্ট লাইব্রেরির সাথে লিঙ্ক করুন। এই লাইব্রেরিটি IEEE এর কিছু শিথিল করে
নট-এ-নম্বর (এনএএন) এর বিরুদ্ধে ইনপুট পরীক্ষা করার জন্য ফ্লোটিং-পয়েন্ট স্ট্যান্ডার্ডের নিয়ম
কর্মক্ষমতা আগ্রহ।

-মিনলাইন-প্লেট
পরিচিত নয় এমন ফাংশনগুলিতে ফাংশন কলগুলিতে PLT এন্ট্রিগুলির ইনলাইন সক্ষম করুন৷
স্থানীয়ভাবে আবদ্ধ। এটা ছাড়া কোন প্রভাব নেই -mfdpic.

- মাল্টিকোর
মাল্টিকোর ব্ল্যাকফিন প্রসেসরের জন্য একটি স্বতন্ত্র অ্যাপ্লিকেশন তৈরি করুন। এই বিকল্প কারণ
সঠিক স্টার্ট ফাইল এবং লিঙ্ক স্ক্রিপ্ট সমর্থন করে মাল্টিকোর ব্যবহার করা হবে, এবং সংজ্ঞায়িত করে
ম্যাক্রো "__BFIN_MULTICORE"। এটি শুধুমাত্র সঙ্গে ব্যবহার করা যেতে পারে -mcpu=bf561[-সিরেভিশন].

এই বিকল্পটি ব্যবহার করা যেতে পারে -ম্যাকোরিয়া or -mcoreb, যা এক-অ্যাপ্লিকেশন নির্বাচন করে-
প্রতি-কোর প্রোগ্রামিং মডেল। ছাড়া -ম্যাকোরিয়া or -mcoreb, দ্য
একক-অ্যাপ্লিকেশন/ডুয়াল-কোর প্রোগ্রামিং মডেল ব্যবহার করা হয়। এই মডেল, প্রধান
কোর বি-এর ফাংশনটিকে "coreb_main" হিসাবে নামকরণ করা উচিত।

এই বিকল্পটি ব্যবহার না করা হলে, একক-কোর অ্যাপ্লিকেশন প্রোগ্রামিং মডেল ব্যবহার করা হয়।

-ম্যাকোরিয়া
এক-অ্যাপ্লিকেশন-প্রতি- ব্যবহার করার সময় BF561-এর কোর A-এর জন্য একটি স্বতন্ত্র অ্যাপ্লিকেশন তৈরি করুন।
মূল প্রোগ্রামিং মডেল। সঠিক স্টার্ট ফাইল এবং লিঙ্ক স্ক্রিপ্ট কোর সমর্থন করতে ব্যবহার করা হয়
A, এবং ম্যাক্রো "__BFIN_COREA" সংজ্ঞায়িত করা হয়েছে। এই বিকল্পটি শুধুমাত্র ব্যবহার করা যেতে পারে
সঙ্গে সংযোগ - মাল্টিকোর.

-mcoreb
এক-অ্যাপ্লিকেশন-প্রতি- ব্যবহার করার সময় BF561-এর কোর B-এর জন্য একটি স্বতন্ত্র অ্যাপ্লিকেশন তৈরি করুন।
মূল প্রোগ্রামিং মডেল। সঠিক স্টার্ট ফাইল এবং লিঙ্ক স্ক্রিপ্ট কোর সমর্থন করতে ব্যবহার করা হয়
B, এবং ম্যাক্রো "__BFIN_COREB" সংজ্ঞায়িত করা হয়েছে। যখন এই বিকল্পটি ব্যবহার করা হয়, "coreb_main"
"প্রধান" এর পরিবর্তে ব্যবহার করা উচিত। এই বিকল্পটি শুধুমাত্র সঙ্গে একযোগে ব্যবহার করা যেতে পারে
- মাল্টিকোর.

-msdram
SDRAM-এর জন্য একটি স্বতন্ত্র অ্যাপ্লিকেশন তৈরি করুন। সঠিক স্টার্ট ফাইল এবং লিঙ্ক স্ক্রিপ্ট ব্যবহার করা হয়
অ্যাপ্লিকেশনটিকে SDRAM-এ রাখতে, এবং ম্যাক্রো "__BFIN_SDRAM" সংজ্ঞায়িত করা হয়েছে। দ্য
অ্যাপ্লিকেশন লোড করার আগে লোডারের SDRAM আরম্ভ করা উচিত।

-micplb
অনুমান করুন যে ICPLBগুলি রান টাইমে সক্ষম হয়৷ এটি নির্দিষ্ট অসঙ্গতির উপর প্রভাব ফেলে
সমাধান লিনাক্স টার্গেটের জন্য, ডিফল্ট হল ICPLB গুলি সক্রিয় করা হয়েছে; জন্য
স্বতন্ত্র অ্যাপ্লিকেশন ডিফল্ট বন্ধ.

C6X অপশন সমূহ

-মার্চ =নাম
এটি লক্ষ্য আর্কিটেকচারের নাম উল্লেখ করে। GCC নির্ধারণ করতে এই নাম ব্যবহার করে
অ্যাসেম্বলি কোড তৈরি করার সময় এটি কী ধরনের নির্দেশনা নির্গত করতে পারে। অনুমোদনযোগ্য
নামগুলো হল: সি 62 এক্স, সি 64 এক্স, c64x+, সি 67 এক্স, c67x+, সি 674 এক্স.

-বিগ-এন্ডিয়ান
একটি বড়-এন্ডিয়ান লক্ষ্যের জন্য কোড তৈরি করুন।

- সামান্য-এন্ডিয়ান
একটি সামান্য-এন্ডিয়ান লক্ষ্যের জন্য কোড তৈরি করুন। এটি ডিফল্ট।

-msim
সিমুলেটরের জন্য উপযুক্ত স্টার্টআপ ফাইল এবং লিঙ্কার স্ক্রিপ্ট চয়ন করুন।

-msdata=ডিফল্ট
ছোট গ্লোবাল এবং স্ট্যাটিক ডেটা রাখুন .neardata বিভাগ, যা দ্বারা নির্দেশিত হয়
"B14" নিবন্ধন করুন। ছোট অপ্রবর্তিত গ্লোবাল এবং স্ট্যাটিক ডেটা রাখুন .বিএসএস অধ্যায়,
যা সংলগ্ন .neardata অধ্যায়. তে ছোট পঠনযোগ্য ডেটা রাখুন৷ .rodata
অধ্যায়. ডেটা বড় টুকরা জন্য ব্যবহৃত সংশ্লিষ্ট বিভাগ হয় .ফরদাতা, .দূর
এবং .const.

-msdata=সমস্ত
সমস্ত ডেটা রাখুন, শুধুমাত্র ছোট বস্তু নয়, ছোট ডেটার জন্য সংরক্ষিত বিভাগে, এবং
তাদের অ্যাক্সেস করতে "B14" রেজিস্টারের সাথে সম্পর্কিত ঠিকানা ব্যবহার করুন।

-msdata=কোনটি নয়
ছোট ডেটার জন্য সংরক্ষিত বিভাগগুলি ব্যবহার করবেন না এবং সম্পূর্ণ ঠিকানাগুলি ব্যবহার করুন৷
সমস্ত ডেটা অ্যাক্সেস করুন। তে সমস্ত প্রারম্ভিক গ্লোবাল এবং স্ট্যাটিক ডেটা রাখুন .ফরদাতা অধ্যায়,
এবং সমস্ত অপ্রবর্তিত ডেটা .দূর অধ্যায়. সব ধ্রুবক তথ্য রাখুন .const
অধ্যায়.

Cris অপশন সমূহ

এই বিকল্পগুলি CRIS পোর্টগুলির জন্য বিশেষভাবে সংজ্ঞায়িত করা হয়েছে৷

-মার্চ =আর্কিটেকচার-টাইপ
-mcpu =আর্কিটেকচার-টাইপ
নির্দিষ্ট আর্কিটেকচারের জন্য কোড তৈরি করুন। জন্য পছন্দ আর্কিটেকচার-টাইপ হয়
v3, v8 এবং v10 যথাক্রমে ETRAX 4, ETRAX 100, এবং ETRAX 100 LX এর জন্য। ডিফল্ট হয় v0
cris-axis-linux-gnu ছাড়া, যেখানে ডিফল্ট v10.

-mtune =আর্কিটেকচার-টাইপ
টিউন টু আর্কিটেকচার-টাইপ উত্পন্ন কোড সম্পর্কে প্রযোজ্য সবকিছু, ছাড়া
ABI এবং উপলব্ধ নির্দেশাবলীর সেট। জন্য পছন্দ আর্কিটেকচার-টাইপ হয়
জন্য একই -মার্চ =আর্কিটেকচার-টাইপ.

-mmax-স্ট্যাক-ফ্রেম=n
একটি ফাংশনের স্ট্যাক ফ্রেম অতিক্রম করলে সতর্ক করুন n বাইট।

- metrax4
- metrax100
বিকল্পগুলি - metrax4 এবং - metrax100 এর প্রতিশব্দ -মার্চ=v3 এবং -মার্চ=v8
যথাক্রমে.

-mmul-বাগ-কাজ
-mno-mul-বাগ-ওয়ার্কআরউন্ড
CPU মডেলের জন্য "muls" এবং "mulu" নির্দেশাবলীতে একটি বাগ নিয়ে কাজ করুন যেখানে এটি
প্রযোজ্য এই বিকল্পটি ডিফল্টরূপে সক্রিয়।

-এমপিডিবাগ
সমাবেশ কোডে CRIS-নির্দিষ্ট ভার্বোজ ডিবাগ-সম্পর্কিত তথ্য সক্ষম করুন। এই
বিকল্পটি বন্ধ করার প্রভাবও রয়েছে #NO_APP ফরম্যাটেড-কোড নির্দেশক
সমাবেশ ফাইলের শুরুতে অ্যাসেম্বলার।

-mcc-init
পূর্ববর্তী নির্দেশ থেকে শর্ত-কোড ফলাফল ব্যবহার করবেন না; সর্বদা তুলনা এবং নির্গত
শর্ত কোড ব্যবহারের আগে পরীক্ষার নির্দেশাবলী।

-mno-পার্শ্বপ্রতিক্রিয়া
পোস্ট- ছাড়া অন্য অ্যাড্রেসিং মোডগুলিতে পার্শ্ব প্রতিক্রিয়া সহ নির্দেশাবলী নির্গত করবেন না-
বৃদ্ধি.

-mstack-সারিবদ্ধ
-mno-স্ট্যাক-সারিবদ্ধ
-mdata-সারিবদ্ধ
-mno-ডেটা-সারিবদ্ধ
-mconst- align
-mno-const-align
এই বিকল্পগুলি (না- বিকল্প) স্ট্যাক ফ্রেমের জন্য ব্যবস্থা করুন (ব্যবস্থা নির্মূল করুন),
সর্বোচ্চ একক ডেটা অ্যাক্সেস আকারের জন্য পৃথক ডেটা এবং ধ্রুবকগুলি সারিবদ্ধ করা হবে
নির্বাচিত CPU মডেলের জন্য। ডিফল্ট হল 32-বিট প্রান্তিককরণের ব্যবস্থা করা। এবিআই
বিশদ বিবরণ যেমন কাঠামো বিন্যাস এই বিকল্পগুলি দ্বারা প্রভাবিত হয় না।

-m32-বিট
-m16-বিট
-m8-বিট
উপরের স্ট্যাক-ডেটা- এবং কনস্ট-সারিবদ্ধ বিকল্পগুলির অনুরূপ, এই বিকল্পগুলির জন্য ব্যবস্থা করা হয়েছে
স্ট্যাক ফ্রেম, লেখার যোগ্য ডেটা এবং ধ্রুবক সবই 32-বিট, 16-বিট বা 8-বিট সারিবদ্ধ।
ডিফল্ট হল 32-বিট প্রান্তিককরণ।

-mno-প্রোলোগ-এপিলগ
-mprologue-epilogue
সঙ্গে -mno-প্রোলোগ-এপিলগ, স্বাভাবিক ফাংশন prologue এবং epilogue যা সেট আপ
স্ট্যাক ফ্রেম বাদ দেওয়া হয়েছে এবং কোনো রিটার্ন নির্দেশনা বা রিটার্ন সিকোয়েন্স নেই
কোডে তৈরি। শুধুমাত্র চাক্ষুষ পরিদর্শন সঙ্গে একসঙ্গে এই বিকল্প ব্যবহার করুন
সংকলিত কোড: যখন কল-সংরক্ষিত রেজিস্টার হতে হবে তখন কোনো সতর্কতা বা ত্রুটি তৈরি হয় না
সংরক্ষিত, বা স্থানীয় ভেরিয়েবলের জন্য সঞ্চয়স্থান বরাদ্দ করা প্রয়োজন।

-mno-gotplt
-mgotplt
সঙ্গে -fpic এবং -fpic, উত্পন্ন করবেন না (উত্পন্ন করুন) নির্দেশ ক্রম যে লোড
GOT এর PLT অংশ থেকে ফাংশনগুলির জন্য ঠিকানাগুলি (অন্যান্যে ঐতিহ্যগত
আর্কিটেকচার) পিএলটি-কে কল করে। ডিফল্ট হয় -mgotplt.

-মেল্ফ
লিগ্যাসি নো-অপ বিকল্প শুধুমাত্র cris-axis-elf এবং cris-axis-linux-gnu এর সাথে স্বীকৃত
লক্ষ।

-ম্লিনাক্স
লিগ্যাসি নো-অপ বিকল্প শুধুমাত্র cris-axis-linux-gnu টার্গেটের সাথে স্বীকৃত।

-সিম
এই বিকল্পটি, cris-axis-elf-এর জন্য স্বীকৃত, ইনপুট-আউটপুটের সাথে লিঙ্ক করার ব্যবস্থা করে
একটি সিমুলেটর লাইব্রেরি থেকে ফাংশন। কোড, প্রারম্ভিক ডেটা এবং জিরো-ইনিশিয়ালাইজড ডেটা
পরপর বরাদ্দ করা হয়।

-সিম2
মত -সিম, কিন্তু 0x40000000 এবং শূন্য-এ প্রারম্ভিক ডেটা সনাক্ত করতে লিঙ্কার বিকল্পগুলি পাস করুন
0x80000000 এ প্রাথমিক তথ্য।

CR16 অপশন সমূহ

এই বিকল্পগুলি CR16 পোর্টগুলির জন্য বিশেষভাবে সংজ্ঞায়িত করা হয়েছে৷

-ম্ম্যাক
গুণ-সঞ্চয় নির্দেশাবলী ব্যবহার সক্ষম করুন. ডিফল্টরূপে নিষ্ক্রিয়.

-MCR16CPLUS
-mcr16c
CR16C বা CR16C+ আর্কিটেকচারের জন্য কোড তৈরি করুন। CR16C+ আর্কিটেকচার ডিফল্ট।

-msim
libsim.a লাইব্রেরি লিঙ্ক করে যা সিমুলেটরের সাথে সামঞ্জস্যপূর্ণ। ELF এর জন্য প্রযোজ্য
শুধুমাত্র কম্পাইলার।

-পুদিনা32
32-বিট প্রশস্ত হিসাবে পূর্ণসংখ্যার ধরন চয়ন করুন।

-এমবিট-অপস
বিট ম্যানিপুলেশনের জন্য "sbit"/"cbit" নির্দেশাবলী তৈরি করে।

-mdata-মডেল=মডেল
একটি ডেটা মডেল চয়ন করুন। জন্য পছন্দ মডেল হয় কাছাকাছি, এ পর্যন্ত or মধ্যম. মধ্যম ডিফল্ট হয়
যাহোক, এ পর্যন্ত সঙ্গে বৈধ নয় -mcr16c, যেহেতু CR16C আর্কিটেকচার সমর্থন করে না
দূরের ডেটা মডেল।

ডারউইন অপশন সমূহ

এই বিকল্পগুলি ডারউইন অপারেটিং সিস্টেম চালিত সমস্ত আর্কিটেকচারের জন্য সংজ্ঞায়িত করা হয়েছে।

ডারউইনের উপর FSF GCC "ফ্যাট" অবজেক্ট ফাইল তৈরি করে না; এটির জন্য একটি অবজেক্ট ফাইল তৈরি করে
একক স্থাপত্য যা GCC টার্গেট করার জন্য নির্মিত হয়েছিল। ডারউইনের উপর অ্যাপলের জিসিসি "চর্বি" তৈরি করে
একাধিক হলে ফাইল - খিলান বিকল্প ব্যবহার করা হয়; এটি কম্পাইলার বা লিঙ্কার চালানোর মাধ্যমে এটি করে
একাধিক বার এবং একসঙ্গে ফলাফল যোগদান Lipo.

তৈরি করা ফাইলের সাবটাইপ (যেমন ppc7400 or ppc970 or i686) দ্বারা নির্ধারিত হয়
পতাকা যা GCC লক্ষ্য করছে ISA নির্দিষ্ট করে, যেমন -এমসিপিইউ or -মার্চ. দ্য
-ফোর্স_সিপুসুবটাইপ_আল বিকল্পটি এটি ওভাররাইড করতে ব্যবহার করা যেতে পারে।

ডারউইন সরঞ্জামগুলি তাদের আচরণে পরিবর্তিত হয় যখন একটি ISA অমিলের সাথে উপস্থাপন করা হয়। দ্য
সংযোজনকারী, as, শুধুমাত্র নির্দেশাবলী ব্যবহার করার অনুমতি দেয় যা উপপ্রকারের জন্য বৈধ
ফাইল এটি তৈরি করছে, তাই আপনি 64-বিট নির্দেশাবলী a এ রাখতে পারবেন না ppc750 অবজেক্ট ফাইল। দ্য
ভাগ করা লাইব্রেরির জন্য লিঙ্কার, /usr/bin/libtool, ব্যর্থ হয় এবং জিজ্ঞাসা করা হলে একটি ত্রুটি মুদ্রণ করে
একটি শেয়ার্ড লাইব্রেরি তৈরি করুন এর ইনপুট ফাইলের তুলনায় কম সীমাবদ্ধ সাবটাইপ সহ (এর জন্য
উদাহরণস্বরূপ, একটি স্থাপন করার চেষ্টা করছে ppc970 একটি অবজেক্ট ফাইল ppc7400 লাইব্রেরি)। জন্য লিঙ্কার
নির্বাহযোগ্য ld, নিঃশব্দে এক্সিকিউটেবলকে এর যেকোনো একটির সবচেয়ে সীমাবদ্ধ সাবটাইপ দেয়
ইনপুট ফাইল।

-FDir
ফ্রেমওয়ার্ক ডিরেক্টরি যোগ করুন Dir অনুসন্ধান করার জন্য ডিরেক্টরিগুলির তালিকার শীর্ষে
হেডার ফাইলের জন্য। এই ডিরেক্টরিগুলি দ্বারা নির্দিষ্ট করা সাথে ইন্টারলিভ করা হয় -I
বিকল্পগুলি এবং একটি বাম থেকে ডান ক্রমে স্ক্যান করা হয়।

ফ্রেমওয়ার্ক ডাইরেক্টরি হল একটি ডিরেক্টরি যার মধ্যে ফ্রেমওয়ার্ক রয়েছে। একটি কাঠামো হল a
একটি সঙ্গে ডিরেক্টরি শিরোলেখ এবং / অথবা ব্যক্তিগত শিরোনাম ডাইরেক্টরি এটি সরাসরি অন্তর্ভুক্ত যে
শেষ হয় ফ্রেমওয়ার্ক. একটি ফ্রেমওয়ার্কের নাম হল এই ডিরেক্টরির নাম বাদ দিয়ে
দ্য ফ্রেমওয়ার্ক. ফ্রেমওয়ার্কের সাথে যুক্ত হেডারগুলি সেই দুটির একটিতে পাওয়া যায়
ডিরেক্টরি, সঙ্গে শিরোলেখ প্রথমে অনুসন্ধান করা হচ্ছে। একটি সাবফ্রেমওয়ার্ক একটি কাঠামো
ডিরেক্টরি যা একটি কাঠামোর মধ্যে রয়েছে ফ্রেমওয়ার্ক ডিরেক্টরি সাবফ্রেমওয়ার্ক অন্তর্ভুক্ত
শিরোনামগুলি কেবলমাত্র একটি ফ্রেমওয়ার্কের শিরোনামে উপস্থিত হতে পারে যা সাবফ্রেমওয়ার্ক ধারণ করে, বা
একটি ভাইবোন সাবফ্রেমওয়ার্ক হেডারে। দুটি সাবফ্রেমওয়ার্ক হল ভাইবোন যদি তারা হয়
একই কাঠামো। একটি সাবফ্রেমওয়ার্ক একটি ফ্রেমওয়ার্ক হিসাবে একই নাম থাকা উচিত নয়; ক
এটি লঙ্ঘন করা হলে সতর্কতা জারি করা হয়। বর্তমানে একটি সাবফ্রেমওয়ার্ক থাকতে পারে না
সাবফ্রেমওয়ার্ক; ভবিষ্যতে, এটি সমর্থন করার জন্য প্রক্রিয়া বাড়ানো যেতে পারে। দ্য
স্ট্যান্ডার্ড ফ্রেমওয়ার্ক পাওয়া যাবে /সিস্টেম/লাইব্রেরি/ফ্রেমওয়ার্ক এবং
/ লাইব্রেরি / ফ্রেমওয়ার্ক. একটি উদাহরণ অন্তর্ভুক্ত দেখতে "#include" এর মত দেখাচ্ছে ",
কোথায় ফ্রেমওয়ার্ক কাঠামোর নাম নির্দেশ করে এবং header.h পাওয়া যায়
ব্যক্তিগত শিরোনাম or শিরোলেখ ডিরেক্টরি.

-ফ্রেমওয়ার্কDir
মত -F ডিরেক্টরি ছাড়া একটি সিস্টেম ডিরেক্টরি হিসাবে গণ্য করা হয়। প্রধান পার্থক্যটি
এর মধ্যে -ফ্রেমওয়ার্ক এবং -F এটা কি সাথে? -ফ্রেমওয়ার্ক কম্পাইলার সতর্ক করে না
এর মাধ্যমে পাওয়া হেডার ফাইলের মধ্যে থাকা নির্মাণ সম্পর্কে Dir. এই বিকল্পটি বৈধ
শুধুমাত্র ভাষার C পরিবারের জন্য।

- gused
ব্যবহৃত প্রতীকগুলির জন্য ডিবাগিং তথ্য নির্গত করুন। স্ট্যাব ডিবাগিং ফরম্যাটের জন্য,
এটি সক্ষম করে -ফেলিমিনেট-অব্যবহৃত-ডিবাগ-প্রতীক. এটি ডিফল্টরূপে চালু।

-গফুল
সমস্ত প্রতীক এবং প্রকারের জন্য ডিবাগিং তথ্য নির্গত করুন।

-mmacosx-সংস্করণ-মিন=সংস্করণ
MacOS X-এর প্রথমতম সংস্করণ যা এই এক্সিকিউটেবলে চলবে সংস্করণ। টিপিক্যাল
এর মান সংস্করণ 10.1, 10.2 এবং 10.3.9 অন্তর্ভুক্ত।

যদি কম্পাইলারটি ডিফল্টরূপে সিস্টেমের শিরোনামগুলি ব্যবহার করার জন্য তৈরি করা হয়, তবে এর জন্য ডিফল্ট
এই বিকল্পটি হল সিস্টেম সংস্করণ যার উপর কম্পাইলার চলছে, অন্যথায়
ডিফল্ট হল এমন পছন্দগুলি করা যা যতগুলি সিস্টেম এবং কোড বেসের সাথে সামঞ্জস্যপূর্ণ
সম্ভব.

-mkernel
কার্নেল বিকাশ মোড সক্ষম করুন। দ্য -mkernel বিকল্প সেট - স্থির, -fno-সাধারণ,
-fno-use-cxa-atexit, -fno- ব্যতিক্রম, -fno-অ-কল-ব্যতিক্রম, -ফ্যাপল-কেক্সট,
-fno-দুর্বল এবং -এফএনও-আরটিটি যেখানে প্রযোজ্য. এই মোড এছাড়াও সেট -mno-altivec,
-মেমসফট-ফ্লোট, -এফএনও-বিল্টিন এবং -মলং-শাখা পাওয়ারপিসি লক্ষ্যগুলির জন্য।

-মন-বাইট-বুল
এর জন্য ডিফল্ট ওভাররাইড করুন bool, তাই যে সাইজফ(বুল)==1. গতানুগতিক সাইজফ(বুল) is 4
ডারউইন/পাওয়ারপিসির জন্য কম্পাইল করার সময় এবং 1 ডারউইন/x86 এর জন্য কম্পাইল করার সময়, তাই এই বিকল্পটি
x86 এর উপর কোন প্রভাব নেই।

সতর্কতা: সার্জারির -মন-বাইট-বুল সুইচের ফলে জিসিসি এমন কোড তৈরি করে যা বাইনারি নয়
যে সুইচ ছাড়া উত্পন্ন কোড সঙ্গে সামঞ্জস্যপূর্ণ. এই সুইচ ব্যবহার করার প্রয়োজন হতে পারে
সিস্টেম লাইব্রেরি সহ একটি প্রোগ্রামে অন্যান্য সমস্ত মডিউল পুনরায় কম্পাইল করা। এটা ব্যবহার কর
একটি নন-ডিফল্ট ডেটা মডেলের সাথে সামঞ্জস্য করতে সুইচ করুন।

-mfix-এবং চালিয়ে যান
-ফিক্স-এবং চালিয়ে যান
-ফাইনডাইরেক্ট-ডেটা
দ্রুত পরিবর্তনের উন্নয়নের জন্য উপযুক্ত কোড তৈরি করুন, যেমন GDB-কে অনুমতি দেওয়া
ইতিমধ্যে চলমান প্রোগ্রামগুলিতে ".o" ফাইলগুলিকে গতিশীলভাবে লোড করুন৷ -ফাইনডাইরেক্ট-ডেটা এবং
-ফিক্স-এবং চালিয়ে যান পিছনে সামঞ্জস্যের জন্য প্রদান করা হয়.

-সব_লোড
স্ট্যাটিক আর্কাইভ লাইব্রেরির সকল সদস্যকে লোড করে। মানুষ দেখুন ld(1) আরও তথ্যের জন্য।

-আর্ক_ত্রুটি_মারাত্মক
ভুল আর্কিটেকচার মারাত্মক হতে পারে এমন ফাইলগুলির সাথে সম্পর্কিত ত্রুটির কারণ।

-আবদ্ধ_এ_লোড
আউটপুট ফাইলটিকে এমনভাবে চিহ্নিত করে যাতে ডাইনামিক লিঙ্কার সবগুলোকে আবদ্ধ করে
ফাইল লোড বা চালু হলে অনির্ধারিত রেফারেন্স।

-পাঁজা
একটি Mach-o বান্ডেল ফরম্যাট ফাইল তৈরি করুন। মানুষ দেখুন ld(1) আরও তথ্যের জন্য।

-বান্ডিল_লোডার এক্সিকিউটেবল
এই বিকল্পটি নির্দিষ্ট করে এক্সিকিউটেবল যে বিল্ড আউটপুট ফাইল হচ্ছে লোড হবে
সংযুক্ত. মানুষ দেখুন ld(1) আরও তথ্যের জন্য।

-ডাইনামিকলিব
যখন এই বিকল্পটি পাস করা হয়, তখন জিসিসি একটি এক্সিকিউটেবলের পরিবর্তে একটি ডায়নামিক লাইব্রেরি তৈরি করে
লিঙ্কিং, ডারউইন ব্যবহার করে libtool কমান্ড।

-ফোর্স_সিপুসুবটাইপ_আল
এর ফলে GCC-এর আউটপুট ফাইল আছে সব সাবটাইপ, একটি দ্বারা নিয়ন্ত্রিত পরিবর্তে
দ্য -এমসিপিইউ or -মার্চ বিকল্প।

-অনুমতিযোগ্য_ক্লায়েন্ট গ্রাহকের নাম
-গ্রাহকের নাম
-সামঞ্জস্যতা_সংস্করণ
-বর্তমান সংস্করণ
-মৃত_ফালা
-নির্ভরতা-ফাইল
-ডিলিব_ফাইল
-ডিলিঙ্কার_ইনস্টল_নাম
-গতিশীল
-রপ্তানি_প্রতীক_তালিকা
- ফাইললিস্ট
-ফ্ল্যাট_নামস্পেস
-ফোর্স_ফ্ল্যাট_নামস্পেস
-হেডারপ্যাড_ম্যাক্স_ইনস্টল_নাম
-ইমেজ_বেস
-এটা
-ইনস্টল_নাম
-কেপ_প্রাইভেট_এক্সটার্ন
-মাল্টি_মডিউল
-গুণ_সংজ্ঞায়িত
- multiply_defined_unused
-নোল_লোড
-NO_DEAD_STRIP_INITS_AND_TERMS
-নোফিক্সপ্রিবাইন্ডিং
- nomultidefs
-নোপ্রেবাইন্ড
-নোসগ্লিংকডিট
-পেজজিরো_সাইজ
-প্রিবাইন্ড
-প্রিবাইন্ড_সব_টুলেভেল_মডিউল
-প্রাইভেট_বান্ডেল
-শুধুমাত্র_রিলোক্স
-সাম্প্রদায়িক
-বিভাগের বস্তুর প্রতীক
-কেন লোড
-SEG1ADDR
-সৃষ্টি করা
-বিভাগের বস্তুর প্রতীক
-সেক্টরডার
-সেগাদ্দার
-SEGS_read_only_addr
-SEGS_READ_WRITE_ADDR
-SEG_ADDR_TABLE
-SEG_ADDR_TABLE_FILENAME
-সগ্লিংকডিট
-সেগপ্রোট
-SEGS_read_only_addr
-SEGS_READ_WRITE_ADDR
-একক_মডিউল
- স্থির
-সাব_লাইব্রেরি
-সাব_ছাতা
-টুলেভেল_নামস্পেস
- ছাতা
-অনির্ধারিত
-অরপ্তানিকৃত_প্রতীক_তালিকা
-দুর্বল_রেফারেন্স_অমিল
-হাউডস বোঝা
এই বিকল্পগুলি ডারউইন লিঙ্কারের কাছে পাঠানো হয়। ডারউইন লিঙ্কার ম্যান পেজ বর্ণনা করে
বিস্তারিতভাবে তাদের।

ডিসেম্বর আরম্ভ অপশন সমূহ

এইগুলো -m ডিইসি আলফা বাস্তবায়নের জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-মনো-নরম-ফ্লোট
-মেমসফট-ফ্লোট
ফ্লোটিং-পয়েন্টের জন্য হার্ডওয়্যার ফ্লোটিং-পয়েন্ট নির্দেশাবলী ব্যবহার করুন (ব্যবহার করবেন না)
অপারেশন কখন -মেমসফট-ফ্লোট নির্দিষ্ট করা হয়েছে, এর মধ্যে কাজ করে libgcc.a সম্পাদন করতে ব্যবহৃত হয়
ফ্লোটিং-পয়েন্ট অপারেশন। যদি না তারা অনুকরণ করে যে রুটিন দ্বারা প্রতিস্থাপিত হয়
ফ্লোটিং-পয়েন্ট ক্রিয়াকলাপ, বা এমনভাবে কম্পাইল করা হয়েছে যাতে এই ধরনের ইমুলেশনকে কল করা যায়
রুটিন, এই রুটিনগুলি ফ্লোটিং-পয়েন্ট অপারেশন ইস্যু করে। আপনি জন্য কম্পাইল হয়
ফ্লোটিং-পয়েন্ট অপারেশন ছাড়াই একটি আলফা, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে লাইব্রেরি নির্মিত হয়েছে
যাতে তাদের ডাকতে না হয়।

দ্রষ্টব্য যে ফ্লোটিং-পয়েন্ট অপারেশন ছাড়াই আলফা বাস্তবায়ন প্রয়োজন
ফ্লোটিং-পয়েন্ট রেজিস্টার।

-mfp-reg
-mno-fp-regs
ফ্লোটিং-পয়েন্ট রেজিস্টার সেট ব্যবহার করে (ব্যবহার করে না) কোড তৈরি করুন। -mno-fp-regs
বোঝা -মেমসফট-ফ্লোট. যদি ফ্লোটিং-পয়েন্ট রেজিস্টার সেট ব্যবহার না করা হয়, ফ্লোটিং-পয়েন্ট
অপারেন্ডগুলি পূর্ণসংখ্যা রেজিস্টারে পাস করা হয় যেন তারা পূর্ণসংখ্যা এবং ভাসমান-বিন্দু
ফলাফল $f0 এর পরিবর্তে $0-এ পাস করা হয়। এটি একটি অ-মানক কলিং ক্রম, তাই
একটি ফ্লোটিং-পয়েন্ট আর্গুমেন্ট বা রিটার্ন মান সহ যেকোন ফাংশন কোড কম্পাইল করা হয়
সঙ্গে -mno-fp-regs সেই বিকল্পের সাথেও কম্পাইল করা আবশ্যক।

এই বিকল্পের একটি সাধারণ ব্যবহার হল একটি কার্নেল তৈরি করা যা ব্যবহার করা হয় না এবং তাই প্রয়োজন
সংরক্ষণ এবং পুনরুদ্ধার না, কোনো ফ্লোটিং-পয়েন্ট রেজিস্টার।

-মিইইই
আলফা আর্কিটেকচার সর্বাধিক জন্য অপ্টিমাইজ করা ফ্লোটিং-পয়েন্ট হার্ডওয়্যার প্রয়োগ করে
কর্মক্ষমতা. এটি বেশিরভাগ IEEE ফ্লোটিং-পয়েন্ট স্ট্যান্ডার্ডের সাথে সঙ্গতিপূর্ণ। যাহোক,
সম্পূর্ণ সম্মতির জন্য, সফ্টওয়্যার সহায়তা প্রয়োজন। এই বিকল্পটি কোড তৈরি করে
সম্পূর্ণরূপে IEEE-সঙ্গত কোড ছাড়া যে inexact- পতাকা রক্ষণাবেক্ষণ করা হয় না (নীচে দেখুন)।
এই বিকল্পটি চালু থাকলে, প্রিপ্রসেসর ম্যাক্রো "_IEEE_FP" এর সময় সংজ্ঞায়িত করা হয়
সংকলন ফলাফল কোড কম দক্ষ কিন্তু সঠিকভাবে সমর্থন করতে সক্ষম
অস্বাভাবিক সংখ্যা এবং ব্যতিক্রমী IEEE মান যেমন নট-এ-নম্বর এবং প্লাস/মাইনাস
অনন্ত অন্যান্য আলফা কম্পাইলার এই বিকল্পটিকে কল করে -ieee_with_no_inexact.

-মিইই-সহ-অনির্দিষ্ট
এই মত -মিইইই উত্পন্ন কোড ছাড়া IEEE বজায় রাখে inexact- পতাকা.
এই বিকল্পটি চালু করার ফলে জেনারেট করা কোড সম্পূর্ণরূপে-সঙ্গতিপূর্ণ IEEE বাস্তবায়ন করতে পারে
গণিত "_IEEE_FP" ছাড়াও "_IEEE_FP_EXACT" একটি প্রিপ্রসেসর ম্যাক্রো হিসাবে সংজ্ঞায়িত করা হয়েছে৷
কিছু আলফা ইমপ্লিমেন্টেশনে ফলিত কোডের তুলনায় উল্লেখযোগ্যভাবে ধীরগতিতে কার্যকর হতে পারে
ডিফল্টরূপে উত্পন্ন কোড। যেহেতু খুব কম কোড আছে যা নির্ভর করে
inexact- পতাকা, আপনার সাধারণত এই বিকল্পটি নির্দিষ্ট করা উচিত নয়। অন্যান্য আলফা কম্পাইলার কল
এই বিকল্প -ieee_with_inexact.

-mfp-ট্র্যাপ-মোড=ফাঁদ-মোড
এই বিকল্পটি নিয়ন্ত্রণ করে ফ্লোটিং-পয়েন্ট সম্পর্কিত ফাঁদগুলি কী সক্রিয় করা হয়েছে। অন্যান্য আলফা
কম্পাইলাররা এই বিকল্পটিকে কল করে -fptm ফাঁদ-মোড. ফাঁদ মোড চারটির মধ্যে একটিতে সেট করা যেতে পারে
মান:

n এটি ডিফল্ট (স্বাভাবিক) সেটিং। শুধুমাত্র ফাঁদ যে সক্রিয় করা হয়
যেগুলি সফ্টওয়্যারে নিষ্ক্রিয় করা যায় না (যেমন, শূন্য ফাঁদ দ্বারা বিভাজন)।

u দ্বারা সক্রিয় ফাঁদ ছাড়াও n, আন্ডারফ্লো ফাঁদ পাশাপাশি সক্রিয় করা হয়.

su মত u, কিন্তু নির্দেশাবলী সফ্টওয়্যার সমাপ্তির জন্য নিরাপদ বলে চিহ্নিত করা হয়েছে (দেখুন
বিস্তারিত জানার জন্য আলফা আর্কিটেকচার ম্যানুয়াল)।

স্ব মত su, কিন্তু অযৌক্তিক ফাঁদও সক্রিয় করা হয়েছে।

-mfp-রাউন্ডিং-মোড=রাউন্ডিং-মোড
IEEE রাউন্ডিং মোড নির্বাচন করে। অন্যান্য আলফা কম্পাইলাররা এই বিকল্পটিকে কল করে -এফপিআরএম
রাউন্ডিং-মোড. দ্য রাউন্ডিং-মোড এর মধ্যে একটি হতে পারে:

n সাধারণ IEEE রাউন্ডিং মোড। ফ্লোটিং-পয়েন্ট সংখ্যাগুলি নিকটতম দিকে বৃত্তাকার
টাই হলে মেশিন নম্বর বা জোড় মেশিন নম্বরের দিকে।

m বিয়োগ অসীম দিকে বৃত্তাকার.

c কাটা রাউন্ডিং মোড। ফ্লোটিং-পয়েন্ট সংখ্যা শূন্যের দিকে বৃত্তাকার।

d ডায়নামিক রাউন্ডিং মোড। ফ্লোটিং-পয়েন্ট কন্ট্রোল রেজিস্টারে একটি ক্ষেত্র (fpcrদেখুন
আলফা আর্কিটেকচার রেফারেন্স ম্যানুয়াল) কার্যকরভাবে রাউন্ডিং মোড নিয়ন্ত্রণ করে। সি
লাইব্রেরি প্লাস ইনফিনিটির দিকে রাউন্ডিংয়ের জন্য এই রেজিস্টার শুরু করে। এইভাবে,
যদি না আপনার প্রোগ্রামটি পরিবর্তন করে fpcr, d প্লাসের দিকে বৃত্তাকার অনুরূপ
অনন্ত

-mtrap-নির্ভুলতা=ফাঁদ-নির্ভুলতা
আলফা আর্কিটেকচারে, ফ্লোটিং-পয়েন্ট ফাঁদগুলি অসম্পূর্ণ। এই ছাড়া মানে
সফ্টওয়্যার সহায়তা ভাসমান ফাঁদ এবং প্রোগ্রাম থেকে পুনরুদ্ধার করা অসম্ভব
মৃত্যুদন্ড সাধারণত বন্ধ করা প্রয়োজন। GCC কোড তৈরি করতে পারে যা সহায়তা করতে পারে
অপারেটিং সিস্টেম ফাঁদ হ্যান্ডলার সঠিক অবস্থান নির্ণয় যে একটি কারণ
ভাসমান-বিন্দু ফাঁদ একটি অ্যাপ্লিকেশনের প্রয়োজনীয়তার উপর নির্ভর করে, ভিন্ন
নির্ভুলতার স্তর নির্বাচন করা যেতে পারে:

p প্রোগ্রাম নির্ভুলতা। এই বিকল্পটি ডিফল্ট এবং মানে একটি ফাঁদ হ্যান্ডলার শুধুমাত্র করতে পারে
কোন প্রোগ্রামটি একটি ফ্লোটিং-পয়েন্ট ব্যতিক্রম সৃষ্টি করেছে তা চিহ্নিত করুন।

f ফাংশন নির্ভুলতা। ট্র্যাপ হ্যান্ডলার একটি ফাংশন নির্ধারণ করতে পারে
ফ্লোটিং পয়েন্ট ব্যতিক্রম।

i নির্দেশ নির্ভুলতা. ফাঁদ হ্যান্ডলার সঠিক নির্দেশনা নির্ধারণ করতে পারে
একটি ফ্লোটিং-পয়েন্ট ব্যতিক্রম ঘটায়।

অন্যান্য আলফা কম্পাইলার সমতুল্য বিকল্প সরবরাহ করে যা বলা হয় -স্কোপ_নিরাপদ এবং
- পুনঃসূচনা_নিরাপদ.

-mieee-সঙ্গতিপূর্ণ
এই বিকল্পটি জেনারেট করা কোডটিকে IEEE কনফরম্যান্ট হিসেবে চিহ্নিত করে। আপনি এই বিকল্প ব্যবহার করবেন না
যদি না আপনিও উল্লেখ করেন -mtrap-নির্ভুলতা = i এবং যেভাবেই -mfp-ট্র্যাপ-মোড=su or
-mfp-ট্র্যাপ-মোড=সুই. তার একমাত্র প্রভাব রেখা নির্গত হয় .eflag 48 ফাংশনে
উত্পন্ন সমাবেশ ফাইলের prologue.

-নির্মাণ-ধ্রুবক
সাধারণত GCC একটি 32- বা 64-বিট পূর্ণসংখ্যা ধ্রুবক পরীক্ষা করে দেখতে পারে যে এটি এটি তৈরি করতে পারে কিনা
দুই বা তিনটি নির্দেশে ছোট ধ্রুবক থেকে। যদি এটি না পারে তবে এটি আউটপুট করে
একটি আক্ষরিক হিসাবে ধ্রুবক এবং রান টাইমে ডেটা সেগমেন্ট থেকে লোড করার জন্য কোড তৈরি করে।

GCC নির্মাণের জন্য এই বিকল্পটি ব্যবহার করুন সব কোড ব্যবহার করে পূর্ণসংখ্যা ধ্রুবক, এমনকি যদি
এটি আরও নির্দেশাবলী লাগে (সর্বোচ্চ ছয়)।

আপনি সাধারণত একটি শেয়ার্ড লাইব্রেরি ডায়নামিক লোডার তৈরি করতে এই বিকল্পটি ব্যবহার করেন। নিজে ক
ভাগ করা লাইব্রেরি, এটি ভেরিয়েবলগুলি খুঁজে পাওয়ার আগে এটি অবশ্যই মেমরিতে নিজেকে স্থানান্তর করতে হবে এবং
তার নিজস্ব ডেটা সেগমেন্টে ধ্রুবক।

-mbwx
-mno-bwx
-mcix
-mno-cix
-mfix
-এমনো-ফিক্স
-ম্ম্যাক্স
-mno-সর্বোচ্চ
ঐচ্ছিক BWX, CIX, FIX এবং MAX ব্যবহার করার জন্য GCC-এর কোড তৈরি করা উচিত কিনা তা নির্দেশ করুন
নির্দেশ সেট। ডিফল্ট হল CPU দ্বারা সমর্থিত নির্দেশ সেট ব্যবহার করা
টাইপ মাধ্যমে নির্দিষ্ট -mcpu = বিকল্প বা সিপিইউ যার উপর GCC নির্মিত হয়েছিল যদি কোনটি না থাকে
নির্দিষ্ট

-mfloat-ভ্যাক্স
-mfloat-ieeee
পরিবর্তে কোড তৈরি করুন যা ব্যবহার করে (ব্যবহার করে না) VAX F এবং G ফ্লোটিং-পয়েন্ট গাণিতিক
IEEE একক এবং ডবল নির্ভুলতা.

-mexplicit-রিলোকস
-mno-স্পষ্ট-রিলোকস
পুরানো আলফা অ্যাসেম্বলাররা এর মাধ্যমে ব্যতীত প্রতীক স্থানান্তর তৈরি করার কোনও উপায় সরবরাহ করেনি
অ্যাসেম্বলার ম্যাক্রো। এই ম্যাক্রোগুলির ব্যবহার সর্বোত্তম নির্দেশের সময়সূচী অনুমোদন করে না।
GNU binutils 2.12 সংস্করণে একটি নতুন সিনট্যাক্স সমর্থন করে যা কম্পাইলারকে অনুমতি দেয়
কোন নির্দেশাবলীতে কোন স্থানান্তর প্রযোজ্য হবে তা স্পষ্টভাবে চিহ্নিত করুন। এই বিকল্প হয়
ডিবাগিংয়ের জন্য বেশিরভাগই উপযোগী, কারণ GCC অ্যাসেম্বলারের ক্ষমতা সনাক্ত করে যখন এটি
নির্মিত হয় এবং সেই অনুযায়ী ডিফল্ট সেট করে।

-msmall-ডেটা
-mlarge-ডেটা
কখন -mexplicit-রিলোকস কার্যকর হয়, স্ট্যাটিক ডেটা এর মাধ্যমে অ্যাক্সেস করা হয় জিপি-রিলেটিভ
স্থানান্তর কখন -msmall-ডেটা ব্যবহার করা হয়, বস্তু 8 বাইট দীর্ঘ বা ছোট স্থাপন করা হয়
a ছোট উপাত্ত এলাকা (".sdata" এবং ".sbss" বিভাগ) এবং 16-বিটের মাধ্যমে অ্যাক্সেস করা হয়
$gp রেজিস্টারের বাইরে স্থানান্তর। এটি ছোট ডেটা এলাকার আকারকে সীমাবদ্ধ করে
64KB, কিন্তু একটি একক নির্দেশের মাধ্যমে ভেরিয়েবলগুলিকে সরাসরি অ্যাক্সেস করার অনুমতি দেয়।

ডিফল্ট হয় -mlarge-ডেটা. এই বিকল্পের সাহায্যে ডেটা এলাকাটি নীচের মধ্যে সীমাবদ্ধ
2 জিবি। যে প্রোগ্রামগুলির জন্য 2GB-এর বেশি ডেটা প্রয়োজন তাদের অবশ্যই "malloc" বা "mmap" ব্যবহার করতে হবে৷
প্রোগ্রামের ডেটা সেগমেন্টের পরিবর্তে হিপে ডেটা বরাদ্দ করুন।

ভাগ করা লাইব্রেরির জন্য কোড তৈরি করার সময়, -fpic বোঝা -msmall-ডেটা এবং -fpic
বোঝা -mlarge-ডেটা.

-msmall-টেক্সট
- বড়-পাঠ্য
কখন -msmall-টেক্সট ব্যবহার করা হয়, কম্পাইলার অনুমান করে যে পুরো প্রোগ্রামের কোড
(বা শেয়ার্ড লাইব্রেরি) 4MB তে ফিট করে, এবং এইভাবে একটি শাখা নির্দেশের সাথে পৌঁছানো যায়।
কখন -msmall-ডেটা ব্যবহার করা হয়, কম্পাইলার অনুমান করতে পারে যে সমস্ত স্থানীয় চিহ্ন শেয়ার করে
একই $gp মান, এবং এইভাবে একটি ফাংশনের জন্য প্রয়োজনীয় নির্দেশাবলীর সংখ্যা হ্রাস করুন
4 থেকে 1 পর্যন্ত কল করুন।

ডিফল্ট হয় - বড়-পাঠ্য.

-mcpu =cpu_type
মেশিনের প্রকারের জন্য নির্দেশ সেট এবং নির্দেশের সময়সূচী পরামিতি সেট করুন
cpu_type. আপনি হয় নির্দিষ্ট করতে পারেন EV শৈলীর নাম বা সংশ্লিষ্ট চিপ নম্বর।
GCC প্রসেসরের EV4, EV5 এবং EV6 পরিবারের জন্য নির্ধারিত পরামিতি সমর্থন করে এবং
আপনার নির্দিষ্ট করা প্রসেসর থেকে নির্দেশনা সেটের জন্য ডিফল্ট মান নির্বাচন করে। যদি
আপনি একটি প্রসেসরের ধরন নির্দিষ্ট করবেন না, GCC ডিফল্ট প্রসেসর যার উপর
কম্পাইলার নির্মিত হয়েছিল।

জন্য সমর্থিত মান cpu_type হয়

ev4
ev45
21064
একটি EV4 হিসাবে সময়সূচী এবং কোন নির্দেশ সেট এক্সটেনশন নেই.

ev5
21164
একটি EV5 হিসাবে সময়সূচী এবং কোন নির্দেশ সেট এক্সটেনশন নেই.

ev56
21164a
একটি EV5 হিসাবে সময়সূচী এবং BWX এক্সটেনশন সমর্থন করে।

pca56
21164pc
21164PC
একটি EV5 হিসাবে সময়সূচী এবং BWX এবং MAX এক্সটেনশন সমর্থন করে।

ev6
21264
একটি EV6 হিসাবে সময়সূচী এবং BWX, FIX, এবং MAX এক্সটেনশন সমর্থন করে।

ev67
21264a
একটি EV6 হিসাবে সময়সূচী এবং BWX, CIX, FIX, এবং MAX এক্সটেনশন সমর্থন করে।

নেটিভ টুলচেইনও মানকে সমর্থন করে স্থানীয়, যা সেরা স্থাপত্য নির্বাচন করে
হোস্ট প্রসেসরের জন্য বিকল্প। -mcpu=নেটিভ GCC স্বীকৃতি না দিলে কোন প্রভাব নেই
প্রসেসর

-mtune =cpu_type
মেশিনের প্রকারের জন্য শুধুমাত্র নির্দেশ নির্ধারণের পরামিতি সেট করুন cpu_type. দ্য
নির্দেশ সেট পরিবর্তন করা হয় না.

নেটিভ টুলচেইনও মানকে সমর্থন করে স্থানীয়, যা সেরা স্থাপত্য নির্বাচন করে
হোস্ট প্রসেসরের জন্য বিকল্প। -mtune=নেটিভ GCC স্বীকৃতি না দিলে কোন প্রভাব নেই
প্রসেসর

-mmemory-lateency=সময়
নির্দিষ্ট মেমরি রেফারেন্সের জন্য নির্ধারিত লেটেন্সি সেট করে যা শিডিউলারের দ্বারা দেখা উচিত
আবেদনপত্র. এই সংখ্যাটি ব্যবহৃত মেমরি অ্যাক্সেস প্যাটার্নের উপর অত্যন্ত নির্ভরশীল
অ্যাপ্লিকেশন এবং মেশিনে বাহ্যিক ক্যাশের আকার দ্বারা।

জন্য বৈধ বিকল্প সময় হয়

সংখ্যা
ঘড়ি চক্রের প্রতিনিধিত্বকারী একটি দশমিক সংখ্যা।

L1
L2
L3
প্রধান
কম্পাইলারটিতে "সাধারণ" EV4 এবং এর জন্য ঘড়ি চক্রের সংখ্যার অনুমান রয়েছে
লেভেল 5, 1 এবং 2 ক্যাশের জন্য EV3 হার্ডওয়্যার (এটিকে Dcache, Scache, এবং বলা হয়
Bcache), সেইসাথে প্রধান মেমরি. মনে রাখবেন L3 শুধুমাত্র EV5 এর জন্য বৈধ।

FR30 অপশন সমূহ

এই বিকল্পগুলি FR30 পোর্টের জন্য বিশেষভাবে সংজ্ঞায়িত করা হয়েছে।

-msmall-মডেল
ছোট ঠিকানা স্থান মডেল ব্যবহার করুন. এটি ছোট কোড তৈরি করতে পারে, তবে এটি অনুমান করে
যে সমস্ত প্রতীকী মান এবং ঠিকানাগুলি একটি 20-বিট পরিসরে ফিট করে৷

-mno-lsim
অনুমান করুন যে রানটাইম সমর্থন প্রদান করা হয়েছে এবং তাই অন্তর্ভুক্ত করার কোন প্রয়োজন নেই
সিমুলেটর লাইব্রেরি (libsim.a) লিঙ্কার কমান্ড লাইনে।

FRV অপশন সমূহ

-mgpr-32
শুধুমাত্র প্রথম 32টি সাধারণ-উদ্দেশ্য রেজিস্টার ব্যবহার করুন।

-mgpr-64
সমস্ত 64টি সাধারণ-উদ্দেশ্য রেজিস্টার ব্যবহার করুন।

-mfpr-32
শুধুমাত্র প্রথম 32টি ফ্লোটিং-পয়েন্ট রেজিস্টার ব্যবহার করুন।

-mfpr-64
সমস্ত 64 ফ্লোটিং-পয়েন্ট রেজিস্টার ব্যবহার করুন।

-মহার্ড-ফ্লোট
ফ্লোটিং-পয়েন্ট অপারেশনের জন্য হার্ডওয়্যার নির্দেশাবলী ব্যবহার করুন।

-মেমসফট-ফ্লোট
ফ্লোটিং-পয়েন্ট অপারেশনের জন্য লাইব্রেরি রুটিন ব্যবহার করুন।

- malloc-cc
গতিশীলভাবে শর্ত কোড রেজিস্টার বরাদ্দ.

-mfixed-সিসি
গতিশীলভাবে শর্ত কোড রেজিস্টার বরাদ্দ করার চেষ্টা করবেন না, শুধুমাত্র "icc0" ব্যবহার করুন এবং
"fcc0"।

-mdword
ডাবল শব্দ insns ব্যবহার করতে ABI পরিবর্তন করুন।

-mno-dword
ডবল শব্দ নির্দেশাবলী ব্যবহার করবেন না.

- mduble
ফ্লোটিং-পয়েন্ট ডবল নির্দেশাবলী ব্যবহার করুন।

-এমনো-ডবল
ফ্লোটিং-পয়েন্ট ডবল নির্দেশাবলী ব্যবহার করবেন না।

-মিডিয়া
মিডিয়া নির্দেশাবলী ব্যবহার করুন.

-mno-মিডিয়া
মিডিয়া নির্দেশাবলী ব্যবহার করবেন না.

-মুমুলাদ
গুন এবং যোগ/বিয়োগের নির্দেশাবলী ব্যবহার করুন।

-মনো-মুলাদ
গুন এবং যোগ/বিয়োগের নির্দেশাবলী ব্যবহার করবেন না।

-mfdpic
FDPIC ABI নির্বাচন করুন, যেটি পয়েন্টার উপস্থাপন করতে ফাংশন বর্ণনাকারী ব্যবহার করে
ফাংশন কোনো PIC/PIE-সম্পর্কিত বিকল্প ছাড়া, এটা বোঝায় -fpie। সঙ্গে -fpic or
-fpie, এটি অনুমান করে যে GOT এন্ট্রি এবং ছোট ডেটা GOT থেকে 12-বিট পরিসরের মধ্যে রয়েছে
ভিত্তি ঠিকানা; সঙ্গে -fpic or -fpie, GOT অফসেটগুলি 32 বিট দিয়ে গণনা করা হয়। সঙ্গে একটি
bfin-elf লক্ষ্য, এই বিকল্পটি বোঝায় -msim.

-মিনলাইন-প্লেট
পরিচিত নয় এমন ফাংশনগুলিতে ফাংশন কলগুলিতে PLT এন্ট্রিগুলির ইনলাইন সক্ষম করুন৷
স্থানীয়ভাবে আবদ্ধ। এটা ছাড়া কোন প্রভাব নেই -mfdpic. এটি ডিফল্টরূপে সক্রিয় যদি
গতির জন্য অপ্টিমাইজ করা এবং ভাগ করা লাইব্রেরির জন্য কম্পাইল করা (যেমন, -fpic or -fpic), বা
যখন একটি অপ্টিমাইজেশান বিকল্প যেমন -ও3 বা উপরে কমান্ড লাইনে উপস্থিত।

-mtls
থ্রেড-লোকাল কোড তৈরি করার সময় একটি বড় TLS সেগমেন্ট অনুমান করুন।

-এমটিএলএস
থ্রেড-লোকাল কোড তৈরি করার সময় একটি বড় TLS সেগমেন্ট অনুমান করবেন না।

-mgprel-ro
FDPIC ABI-তে "GPREL" স্থানান্তরের ব্যবহার সক্রিয় করুন
শুধুমাত্র পঠন বিভাগ। এটি ডিফল্টরূপে সক্রিয় করা হয়েছে, ছাড়া -fpic or -fpie: যদিও
এটি গ্লোবাল অফসেট টেবিলকে ছোট করতে সাহায্য করতে পারে, এটি 1 এর জন্য 4 টি নির্দেশ ট্রেড করে
-fpic or -fpie, এটি 3টির জন্য 4টি নির্দেশনা ট্রেড করে, যার একটি একাধিক দ্বারা শেয়ার করা হতে পারে
প্রতীক, এবং এটি রেফারেন্সযুক্ত প্রতীকের জন্য একটি GOT এন্ট্রির প্রয়োজন এড়ায়, তাই এটি
জয়ের সম্ভাবনা বেশি। যদি তা না হয়, -mno-gprel-ro এটি নিষ্ক্রিয় করতে ব্যবহার করা যেতে পারে।

-মাল্টিলিব-লাইব্রেরি-ছবি
(লাইব্রেরি, FD নয়) পিক লাইব্রেরির সাথে লিঙ্ক করুন। এটা দ্বারা উহ্য -মিলিব্রেরি-ছবি, যেমন
দ্বারা হিসাবে -fpic এবং -fpic ছাড়া -mfdpic. আপনি স্পষ্টভাবে এটি ব্যবহার করতে হবে না.

-মিলিংকড-এফপি
যখনই একটি স্ট্যাক ফ্রেম হবে তখন সর্বদা একটি ফ্রেম পয়েন্টার তৈরি করার EABI প্রয়োজনীয়তা অনুসরণ করুন
বরাদ্দ করা হয়। এই বিকল্পটি ডিফল্টরূপে সক্রিয় থাকে এবং এর সাথে নিষ্ক্রিয় করা যেতে পারে
-mno-লিঙ্কড-এফপি.

-মলং-কল
বর্তমান সংকলন ইউনিটের বাইরে ফাংশন কল করতে পরোক্ষ ঠিকানা ব্যবহার করুন। এই
ফাংশনগুলিকে 32-বিট ঠিকানা স্থানের মধ্যে যেকোনো জায়গায় স্থাপন করার অনুমতি দেয়।

- ক্ষতিকর লেবেল
পূর্ববর্তী প্যাকেটে NOP সন্নিবেশ করে একটি 8-বাইটের সীমানায় লেবেলগুলি সারিবদ্ধ করার চেষ্টা করুন।
এই বিকল্পটি শুধুমাত্র তখনই প্রভাব ফেলে যখন VLIW প্যাকিং সক্ষম হয়। এটি নতুন তৈরি করে না
প্যাকেট; এটা শুধুমাত্র বিদ্যমান বেশী NOP যোগ করে.

-মিলিব্রেরি-ছবি
অবস্থান-স্বাধীন EABI কোড তৈরি করুন।

-এমএসিসি -4
শুধুমাত্র প্রথম চারটি মিডিয়া অ্যাকিউমুলেটর রেজিস্টার ব্যবহার করুন।

-এমএসিসি -8
সমস্ত আটটি মিডিয়া অ্যাকিউমুলেটর রেজিস্টার ব্যবহার করুন।

-মপ্যাক
VLIW নির্দেশাবলী প্যাক করুন।

-mno-প্যাক
VLIW নির্দেশাবলী প্যাক করবেন না।

-mno-Eflags
E_flags এ ABI সুইচ চিহ্নিত করবেন না।

-mcond-চালনা
শর্তসাপেক্ষ-সরানো নির্দেশাবলীর ব্যবহার সক্ষম করুন (ডিফল্ট)।

এই সুইচটি মূলত কম্পাইলার ডিবাগ করার জন্য এবং সম্ভবত একটি এ মুছে ফেলা হবে
ভবিষ্যতের সংস্করণ।

-এমনো-কন্ড-মুভ
শর্তসাপেক্ষ-সরানোর নির্দেশাবলীর ব্যবহার অক্ষম করুন।

এই সুইচটি মূলত কম্পাইলার ডিবাগ করার জন্য এবং সম্ভবত একটি এ মুছে ফেলা হবে
ভবিষ্যতের সংস্করণ।

-mscc
শর্তসাপেক্ষ সেট নির্দেশাবলী ব্যবহার সক্রিয় করুন (ডিফল্ট)।

এই সুইচটি মূলত কম্পাইলার ডিবাগ করার জন্য এবং সম্ভবত একটি এ মুছে ফেলা হবে
ভবিষ্যতের সংস্করণ।

-mno-scc
শর্তসাপেক্ষ সেট নির্দেশাবলী ব্যবহার নিষ্ক্রিয়.

এই সুইচটি মূলত কম্পাইলার ডিবাগ করার জন্য এবং সম্ভবত একটি এ মুছে ফেলা হবে
ভবিষ্যতের সংস্করণ।

-mcond- এক্সেক
শর্তসাপেক্ষ এক্সিকিউশন ব্যবহার সক্রিয় করুন (ডিফল্ট)।

এই সুইচটি মূলত কম্পাইলার ডিবাগ করার জন্য এবং সম্ভবত একটি এ মুছে ফেলা হবে
ভবিষ্যতের সংস্করণ।

-mno-Cond-Exec
শর্তসাপেক্ষ এক্সিকিউশন ব্যবহার অক্ষম করুন।

এই সুইচটি মূলত কম্পাইলার ডিবাগ করার জন্য এবং সম্ভবত একটি এ মুছে ফেলা হবে
ভবিষ্যতের সংস্করণ।

-mvliw-শাখা
শাখাগুলিকে VLIW নির্দেশাবলীতে প্যাক করার জন্য একটি পাস চালান (ডিফল্ট)।

এই সুইচটি মূলত কম্পাইলার ডিবাগ করার জন্য এবং সম্ভবত একটি এ মুছে ফেলা হবে
ভবিষ্যতের সংস্করণ।

-mno-vliw-শাখা
VLIW নির্দেশাবলীতে শাখা প্যাক করার জন্য পাস চালাবেন না।

এই সুইচটি মূলত কম্পাইলার ডিবাগ করার জন্য এবং সম্ভবত একটি এ মুছে ফেলা হবে
ভবিষ্যতের সংস্করণ।

-multi-cond-exec
"&&" এবং "||" এর অপ্টিমাইজেশন সক্ষম করুন শর্তসাপেক্ষে (ডিফল্ট)।

এই সুইচটি মূলত কম্পাইলার ডিবাগ করার জন্য এবং সম্ভবত একটি এ মুছে ফেলা হবে
ভবিষ্যতের সংস্করণ।

-mno-মাল্টি-কন্ড-এক্সেক
"&&" এবং "||" এর অপ্টিমাইজেশন অক্ষম করুন শর্তসাপেক্ষে মৃত্যুদন্ড

এই সুইচটি মূলত কম্পাইলার ডিবাগ করার জন্য এবং সম্ভবত একটি এ মুছে ফেলা হবে
ভবিষ্যতের সংস্করণ।

-মনেস্টেড-কন্ড-এক্সেক
নেস্টেড কন্ডিশনাল এক্সিকিউশন অপ্টিমাইজেশান সক্ষম করুন (ডিফল্ট)।

এই সুইচটি মূলত কম্পাইলার ডিবাগ করার জন্য এবং সম্ভবত একটি এ মুছে ফেলা হবে
ভবিষ্যতের সংস্করণ।

-ম্নো-নেস্টেড-কন্ড-এক্সেক
নেস্টেড কন্ডিশনাল এক্সিকিউশন অপ্টিমাইজেশন অক্ষম করুন।

এই সুইচটি মূলত কম্পাইলার ডিবাগ করার জন্য এবং সম্ভবত একটি এ মুছে ফেলা হবে
ভবিষ্যতের সংস্করণ।

-মোপ্টিমাইজ-সদস্য
এই সুইচটি কম্পাইলার-জেনারেটেড কোড থেকে অপ্রয়োজনীয় "সদস্য" নির্দেশাবলী সরিয়ে দেয়।
এটি ডিফল্টরূপে সক্ষম হয়।

-mno-অপ্টিমাইজ-মেম্বার
এই সুইচটি থেকে অপ্রয়োজনীয় "সদস্য" নির্দেশাবলী স্বয়ংক্রিয়ভাবে অপসারণ অক্ষম করে৷
উত্পন্ন কোড।

-mtomcat-পরিসংখ্যান
টমক্যাট পরিসংখ্যান প্রিন্ট আউট গ্যাস কারণ.

-mcpu =সিপিইউ
প্রসেসরের প্রকার নির্বাচন করুন যার জন্য কোড তৈরি করতে হবে। সম্ভাব্য মান হয় frv, fr550,
হুল বিড়াল, fr500, fr450, fr405, fr400, fr300 এবং সহজ.

জিএনইউ / লিনাক্স অপশন সমূহ

এইগুলো -m GNU/Linux লক্ষ্যগুলির জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-mglibc
GNU C লাইব্রেরি ব্যবহার করুন। এটি চালু ছাড়া ডিফল্ট **-*-লিনাক্স-*uclibc* এবং
**-*-লিনাক্স-*অ্যান্ড্রয়েড* লক্ষ।

- muclibc
uClibc C লাইব্রেরি ব্যবহার করুন। এই উপর ডিফল্ট **-*-লিনাক্স-*uclibc* লক্ষ।

-এমবিওনিক
বায়োনিক সি লাইব্রেরি ব্যবহার করুন। এই উপর ডিফল্ট **-*-লিনাক্স-*অ্যান্ড্রয়েড* লক্ষ।

-ম্যান্ড্রয়েড
অ্যান্ড্রয়েড প্ল্যাটফর্মের সাথে সামঞ্জস্যপূর্ণ কোড কম্পাইল করুন। এই উপর ডিফল্ট
**-*-লিনাক্স-*অ্যান্ড্রয়েড* লক্ষ।

কম্পাইল করার সময়, এই বিকল্পটি সক্রিয় করে -এমবিওনিক, -fpic, -fno- ব্যতিক্রম এবং -এফএনও-আরটিটি by
ডিফল্ট. লিঙ্ক করার সময়, এই বিকল্পটি GCC ড্রাইভারকে Android-নির্দিষ্ট বিকল্প পাস করে
লিঙ্কারের কাছে। অবশেষে, এই বিকল্পটি প্রিপ্রসেসর ম্যাক্রো "__ANDROID__" হতে পারে
সংজ্ঞায়িত

-tno-android-cc
এর সংকলন প্রভাব অক্ষম করুন -ম্যান্ড্রয়েড, অর্থাৎ, সক্রিয় করবেন না -এমবিওনিক, -fpic,
-fno- ব্যতিক্রম এবং -এফএনও-আরটিটি গতানুগতিক.

-tno-android-ld
এর লিঙ্কিং প্রভাব অক্ষম করুন৷ -ম্যান্ড্রয়েড, অর্থাৎ, স্ট্যান্ডার্ড লিনাক্স লিঙ্কিং অপশন পাস করুন
লিঙ্কার

H8 / 300 অপশন সমূহ

এইগুলো -m H8/300 বাস্তবায়নের জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-মরেলাক্স
লিঙ্কের সময় কিছু ঠিকানার রেফারেন্স ছোট করুন, যখন সম্ভব; লিঙ্কার বিকল্প ব্যবহার করে
-বিশ্রাম.

-এমএইচ H8/300H এর জন্য কোড তৈরি করুন।

-মাইক্রোসফট H8S এর জন্য কোড তৈরি করুন।

-mn সাধারণ মোডে H8S এবং H8/300H এর জন্য কোড তৈরি করুন। এই সুইচ ব্যবহার করা আবশ্যক
হয় সঙ্গে -এমএইচ or -মাইক্রোসফট.

-ms2600
H8S/2600 এর জন্য কোড তৈরি করুন। এই সুইচ সঙ্গে ব্যবহার করা আবশ্যক -মাইক্রোসফট.

-মেক্সআর
বর্ধিত রেজিস্টারগুলি মনিটরের সাথে ফাংশন সম্পাদনের আগে স্ট্যাকে সংরক্ষণ করা হয়
বৈশিষ্ট্য ডিফল্ট বিকল্প -মেক্সআর. এই বিকল্পটি শুধুমাত্র H8S লক্ষ্যমাত্রার জন্য বৈধ।

-mno-exr
মনিটরের সাথে ফাংশন সম্পাদনের আগে বর্ধিত রেজিস্টারগুলি স্ট্যাকে সংরক্ষণ করা হয় না
বৈশিষ্ট্য ডিফল্ট বিকল্প -mno-exr. এই বিকল্পটি শুধুমাত্র H8S লক্ষ্যমাত্রার জন্য বৈধ।

-পুদিনা32
ডিফল্টরূপে "int" ডেটা 32 বিট করুন।

-ম্যালাইন-300
H8/300H এবং H8S-এ, H8/300-এর মতো একই প্রান্তিককরণ নিয়মগুলি ব্যবহার করুন৷ ডিফল্ট
H8/300H এবং H8S এর জন্য 4-বাইটের সীমানায় লং এবং ফ্লোট সারিবদ্ধ করা হয়।
-ম্যালাইন-300 তাদের 2-বাইট সীমানায় সারিবদ্ধ হওয়ার কারণ। এই বিকল্প কোন প্রভাব আছে
H8/300-এ।

এইচপিপিএ অপশন সমূহ

এইগুলো -m কম্পিউটারের HPPA পরিবারের জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-মার্চ =আর্কিটেকচার-টাইপ
নির্দিষ্ট আর্কিটেকচারের জন্য কোড তৈরি করুন। জন্য পছন্দ আর্কিটেকচার-টাইপ হয়
1.0 PA 1.0 এর জন্য, 1.1 PA 1.1 এর জন্য, এবং 2.0 PA 2.0 প্রসেসরের জন্য। নির্দেশ করে
/usr/lib/sched.models সঠিক আর্কিটেকচার বিকল্প নির্ধারণ করতে একটি HP-UX সিস্টেমে
আপনার মেশিনের জন্য। নিম্ন নম্বরযুক্ত আর্কিটেকচারের জন্য সংকলিত কোড উচ্চতরে চলে
সংখ্যাযুক্ত আর্কিটেকচার, কিন্তু অন্যভাবে নয়।

-এমপিএ-রিস্ক-1-0
-এমপিএ-রিস্ক-1-1
-এমপিএ-রিস্ক-2-0
প্রতিশব্দ জন্য -মার্চ=1.0, -মার্চ=1.1, এবং -মার্চ=2.0 যথাক্রমে.

-এমবিগ-সুইচ
বড় সুইচ টেবিলের জন্য উপযুক্ত কোড তৈরি করুন। শুধুমাত্র যদি এই বিকল্পটি ব্যবহার করুন
অ্যাসেম্বলার/লিঙ্কার একটি সুইচ টেবিলের মধ্যে রেঞ্জের বাইরের শাখা সম্পর্কে অভিযোগ করে।

-এমজাম্প-ইন-বিলম্ব
পরিবর্তন করে নিঃশর্ত জাম্প নির্দেশাবলী সহ ফাংশন কলের বিলম্ব স্লটগুলি পূরণ করুন৷
শর্তসাপেক্ষ লাফের লক্ষ্য হতে ফাংশন কলের জন্য রিটার্ন পয়েন্টার।

-মডিসেবল-এফপ্রেগস
ফ্লোটিং-পয়েন্ট রেজিস্টারগুলিকে যেকোনো উপায়ে ব্যবহার করা থেকে বিরত রাখুন। এই জন্য প্রয়োজনীয়
কম্পাইল করা কার্নেল যা ফ্লোটিং-পয়েন্ট রেজিস্টারের অলস প্রসঙ্গ পরিবর্তন করে। যদি
আপনি এই বিকল্পটি ব্যবহার করেন এবং কম্পাইলার ফ্লোটিং-পয়েন্ট অপারেশন করার চেষ্টা করেন
গর্ভপাত

-mdisable-সূচীকরণ
ইনডেক্সিং অ্যাড্রেস মোড ব্যবহার করা থেকে কম্পাইলারকে আটকান। এই বরং কিছু এড়িয়ে যায়
MACH এর অধীনে MIG জেনারেটেড কোড কম্পাইল করার সময় অস্পষ্ট সমস্যা।

-mno-স্পেস-regs
এমন কোড তৈরি করুন যা ধরে নেয় লক্ষ্যটির কোনো স্থান নিবন্ধন নেই। এটি GCC এর অনুমতি দেয়
দ্রুত পরোক্ষ কল জেনারেট করুন এবং আনস্কেলড ইনডেক্স অ্যাড্রেস মোড ব্যবহার করুন।

এই ধরনের কোড লেভেল 0 PA সিস্টেম এবং কার্নেলের জন্য উপযুক্ত।

-mfast-পরোক্ষ-কল
এমন কোড তৈরি করুন যা অনুমান করে যে কলগুলি কখনই স্থানের সীমানা অতিক্রম করে না। এটি GCC এর অনুমতি দেয়
ইমিট কোড যা দ্রুত পরোক্ষ কলগুলি সম্পাদন করে।

এই বিকল্পটি ভাগ করা লাইব্রেরি বা নেস্টেড ফাংশনের উপস্থিতিতে কাজ করে না।

-mfixed- রেঞ্জ =রেজিস্টার-পরিসীমা
প্রদত্ত রেজিস্টার পরিসরকে নির্দিষ্ট রেজিস্টার হিসাবে বিবেচনা করে কোড তৈরি করুন। একটি নির্দিষ্ট রেজিস্টার
একটি যা রেজিস্টার বরাদ্দকারী ব্যবহার করতে পারে না। কার্নেল কম্পাইল করার সময় এটি দরকারী
কোড একটি রেজিস্টার পরিসর একটি ড্যাশ দ্বারা পৃথক দুটি রেজিস্টার হিসাবে নির্দিষ্ট করা হয়। একাধিক
রেজিস্টার রেঞ্জ একটি কমা দ্বারা আলাদা করে নির্দিষ্ট করা যেতে পারে।

-মলাং-লোড-স্টোর
3-নির্দেশনা লোড তৈরি করুন এবং কখনও কখনও HP-UX 10 দ্বারা প্রয়োজনীয় সিকোয়েন্স সংরক্ষণ করুন
লিঙ্কার এই সমতুল্য +k HP কম্পাইলারদের বিকল্প।

পরিবহনযোগ্য-রানটাইম
ELF সিস্টেমের জন্য HP দ্বারা প্রস্তাবিত পোর্টেবল কলিং কনভেনশনগুলি ব্যবহার করুন৷

-এমগাস
শুধুমাত্র GAS বোঝে অ্যাসেম্বলার নির্দেশাবলীর ব্যবহার সক্ষম করুন৷

-mschedule =cpu-টাইপ
মেশিন টাইপ জন্য সীমাবদ্ধতা অনুযায়ী সময়সূচী কোড cpu-টাইপ. পছন্দ
উন্নত cpu-টাইপ হয় 700 7100, 7100LC, 7200, 7300 এবং 8000। নির্দেশ করে
/usr/lib/sched.models একটি HP-UX সিস্টেমে সঠিক সময় নির্ধারণের বিকল্প নির্ধারণ করতে
আপনার মেশিন। ডিফল্ট সময়সূচী হয় 8000.

-মিলিঙ্কার-অপ্ট
HP-UX লিঙ্কারে অপ্টিমাইজেশন পাস সক্রিয় করুন। মনে রাখবেন এটি প্রতীকী ডিবাগিং করে
অসম্ভব এটি HP-UX 8 এবং HP-UX 9 লিঙ্কারগুলিতে একটি বাগ ট্রিগার করে যাতে তারা
কিছু প্রোগ্রাম লিঙ্ক করার সময় ভুয়া ত্রুটি বার্তা দিন।

-মেমসফট-ফ্লোট
ফ্লোটিং পয়েন্টের জন্য লাইব্রেরি কল ধারণকারী আউটপুট তৈরি করুন। সতর্কতা: প্রয়োজনীয়
সমস্ত HPPA লক্ষ্যগুলির জন্য লাইব্রেরি উপলব্ধ নয়। সাধারনত এর সুবিধা
মেশিনের স্বাভাবিক সি কম্পাইলার ব্যবহার করা হয়, কিন্তু এটি সরাসরি ক্রস-এ করা যায় না
সংকলন উপযুক্ত লাইব্রেরি প্রদানের জন্য আপনাকে অবশ্যই নিজের ব্যবস্থা করতে হবে
ক্রস-সংকলনের জন্য ফাংশন।

-মেমসফট-ফ্লোট আউটপুট ফাইলে কলিং কনভেনশন পরিবর্তন করে; অতএব, এটা শুধুমাত্র
আপনি কম্পাইল যদি দরকারী সব এই বিকল্প সহ একটি প্রোগ্রামের। বিশেষ করে, আপনি প্রয়োজন
সংকলন libgcc.a, লাইব্রেরি যে GCC এর সাথে আসে, সঙ্গে -মেমসফট-ফ্লোট এই জন্য ক্রম
কাজ করতে.

-msio
সার্ভার IO এর জন্য পূর্বনির্ধারিত "_SIO" তৈরি করুন। ডিফল্ট হয় -mwsio. এই উৎপন্ন হয়
ওয়ার্কস্টেশন IO-এর জন্য পূর্বনির্ধারিত, "__hp9000s700", "__hp9000s700__" এবং "_WSIO",।
এই বিকল্পগুলি HP-UX এবং HI-UX-এর অধীনে উপলব্ধ৷

-mgnu-Ld
GNU-এর জন্য নির্দিষ্ট বিকল্পগুলি ব্যবহার করুন ld. এই পাস - শেয়ার করা হয়েছে থেকে ld যখন একটি ভাগ নির্মাণ
লাইব্রেরি এটি ডিফল্ট যখন GCC কনফিগার করা হয়, স্পষ্টভাবে বা পরোক্ষভাবে,
GNU লিঙ্কার। এই বিকল্প যা প্রভাবিত করে না ld বলা হয়; এটা শুধুমাত্র কি পরিবর্তন
প্যারামিটার যে পাস করা হয় ld. দ্য ld যে দ্বারা নির্ধারিত হয় বলা হয়
--with-ld কনফিগার বিকল্প, GCC এর প্রোগ্রাম অনুসন্ধান পথ এবং অবশেষে ব্যবহারকারীর দ্বারা পাথ.
GCC দ্বারা ব্যবহৃত লিঙ্কার ব্যবহার করে প্রিন্ট করা যেতে পারে যে `gcc -প্রিন্ট-প্রোগ-নাম=ld`. এই
বিকল্পটি শুধুমাত্র 64-বিট HP-UX GCC-তে পাওয়া যায়, অর্থাৎ এর সাথে কনফিগার করা হয়েছে
hppa*64*-*-hpux*.

-এমএইচপি-এলডি
HP-এর জন্য নির্দিষ্ট বিকল্পগুলি ব্যবহার করুন ld. এই পাস -b থেকে ld একটি শেয়ার্ড লাইব্রেরি তৈরি করার সময়
এবং পাস +গ্রহণ করুন টাইপ মেলেনি থেকে ld সমস্ত লিঙ্কে। এটা ডিফল্ট যখন GCC হয়
কনফিগার করা, স্পষ্টভাবে বা পরোক্ষভাবে, HP লিঙ্কারের সাথে। এই বিকল্পটি প্রভাবিত করে না
যে ld বলা হয়; এটা শুধুমাত্র কি পরামিতি যে পাস করা হয় পরিবর্তন ld. দ্য ld
যে দ্বারা নির্ধারিত হয় বলা হয় --with-ld কনফিগার বিকল্প, GCC এর প্রোগ্রাম অনুসন্ধান
পথ, এবং অবশেষে ব্যবহারকারীর দ্বারা পাথ. GCC দ্বারা ব্যবহৃত লিঙ্কার ব্যবহার করে প্রিন্ট করা যেতে পারে
যে `gcc -প্রিন্ট-প্রোগ-নাম=ld`. এই বিকল্পটি শুধুমাত্র 64-বিট HP-UX-এ উপলব্ধ
GCC, অর্থাৎ এর সাথে কনফিগার করা হয়েছে hppa*64*-*-hpux*.

-মলং-কল
দীর্ঘ কল সিকোয়েন্স ব্যবহার করে এমন কোড তৈরি করুন। এটি নিশ্চিত করে যে একটি কল সর্বদা সক্ষম
লিঙ্কার জেনারেটেড স্টাবগুলিতে পৌঁছানোর জন্য। ডিফল্ট দীর্ঘ কল তৈরি করা হয় শুধুমাত্র যখন
কল সাইট থেকে ফাংশন বা অনুবাদ ইউনিটের শুরুতে দূরত্ব, যেমন
ক্ষেত্রে হতে পারে, ব্যবহৃত শাখার ধরন দ্বারা নির্ধারিত একটি পূর্বনির্ধারিত সীমা অতিক্রম করে। দ্য
সাধারণ কলের সীমা হল PA 7,600,000-এর জন্য যথাক্রমে 240,000 এবং 2.0 বাইট
এবং PA 1.X আর্কিটেকচার। Sibcalls সবসময় 240,000 বাইটে সীমাবদ্ধ থাকে।

ব্যবহার করার সময় ফাংশনের শুরু থেকে দূরত্ব পরিমাপ করা হয়
-ফাংশন-বিভাগ বিকল্প, বা ব্যবহার করার সময় -এমগাস এবং -mno-পোর্টেবল-রানটাইম অপশন
SOM লিঙ্কারের সাথে HP-UX এর অধীনে একসাথে।

সাধারণত এই বিকল্পটি ব্যবহার করা বাঞ্ছনীয় নয় কারণ এটি কর্মক্ষমতা হ্রাস করে। যাহোক,
এটি বড় অ্যাপ্লিকেশনে কার্যকর হতে পারে, বিশেষ করে যখন আংশিক লিঙ্ক ব্যবহার করা হয়
অ্যাপ্লিকেশন তৈরি করুন।

ব্যবহৃত দীর্ঘ কলের ধরনগুলি অ্যাসেম্বলার এবং লিঙ্কারের ক্ষমতার উপর নির্ভর করে,
এবং কোডের ধরন তৈরি করা হচ্ছে। দীর্ঘ সমর্থনকারী সিস্টেমের উপর প্রভাব
পরম কল, এবং লং পিক সিম্বল-ডিফারেন্স বা পিসি-রিলেটিভ কল হওয়া উচিত
অপেক্ষাকৃত ছোট. যাইহোক, পিক কোডে 32-বিট ELF সিস্টেমে একটি পরোক্ষ কল ব্যবহার করা হয়
এবং এটা বেশ দীর্ঘ.

-মিউনিক্স=ইউনিক্স-এসটিডি
কম্পাইলার পূর্বনির্ধারিত তৈরি করুন এবং নির্দিষ্ট ইউনিক্স স্ট্যান্ডার্ডের জন্য একটি স্টার্টফাইল নির্বাচন করুন।
জন্য পছন্দ ইউনিক্স-এসটিডি হয় 93, 95 এবং 98. 93 সমস্ত HP-UX সংস্করণে সমর্থিত।
95 HP-UX 10.10 এবং পরবর্তীতে উপলব্ধ। 98 HP-UX 11.11 এবং পরবর্তীতে উপলব্ধ।
ডিফল্ট মান হয় 93 HP-UX 10.00 এর জন্য, 95 HP-UX 10.10 এর জন্য যদিও 11.00 পর্যন্ত, এবং 98
HP-UX 11.11 এবং তার পরের জন্য।

-মিউনিক্স=93 GCC 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 উপযুক্ত. বেশিরভাগ GNU সফটওয়্যার
এই ক্ষমতা প্রদান করে না।

-নোলিবডল্ড
libdld.sl সার্চ করার জন্য লিংক অপশনের প্রজন্ম দমন করুন যখন - স্থির বিকল্প হয়
HP-UX 10 এবং পরবর্তীতে নির্দিষ্ট করা হয়েছে।

- স্থির
libc-এ সেটলোকেলের HP-UX বাস্তবায়ন libdld.sl-এর উপর নির্ভরশীল। সেখানে
libdld.sl এর একটি সংরক্ষণাগার সংস্করণ নয়। এইভাবে, যখন - স্থির বিকল্প নির্দিষ্ট করা হয়,
এই নির্ভরতা সমাধানের জন্য বিশেষ লিঙ্ক বিকল্পের প্রয়োজন।

HP-UX 10 এবং পরবর্তীতে, GCC ড্রাইভার লিঙ্ক করার জন্য প্রয়োজনীয় বিকল্প যোগ করে
libdld.sl যখন - স্থির বিকল্প নির্দিষ্ট করা হয়। এটি ফলে বাইনারি ঘটায়
গতিশীল হতে 64-বিট পোর্টে, লিঙ্কারগুলি ডিফল্টরূপে গতিশীল বাইনারি তৈরি করে
যে কোন ক্ষেত্রে. দ্য -নোলিবডল্ড GCC ড্রাইভার যোগ করা থেকে রোধ করতে বিকল্পটি ব্যবহার করা যেতে পারে
এই লিঙ্ক অপশন.

- থ্রেড
এর সাথে মাল্টিথ্রেডিংয়ের জন্য সমর্থন যোগ করুন ডিসিই সুতা HP-UX এর অধীনে লাইব্রেরি। এই বিকল্প
প্রিপ্রসেসর এবং লিঙ্কার উভয়ের জন্য পতাকা সেট করে।

ইন্টেল 386 এবং এএমডি x86-64 অপশন সমূহ

এইগুলো -m কম্পিউটারের i386 এবং x86-64 পরিবারের জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-মার্চ =cpu-টাইপ
মেশিনের প্রকারের জন্য নির্দেশাবলী তৈরি করুন cpu-টাইপ। বিপরীতে -mtune =cpu-টাইপ,
যা শুধুমাত্র নির্দিষ্ট জন্য উত্পন্ন কোড টিউন cpu-টাইপ, -মার্চ =cpu-টাইপ
GCC-কে এমন কোড তৈরি করার অনুমতি দেয় যা একটি ছাড়া অন্য প্রসেসরে চলবে না
জ্ঞাপিত. নির্দিষ্ট করা -মার্চ =cpu-টাইপ বোঝা -mtune =cpu-টাইপ.

জন্য পছন্দ cpu-টাইপ হয়:

স্থানীয়
এটি নির্ধারণ করে সংকলনের সময় কোড তৈরি করতে সিপিইউ নির্বাচন করে
কম্পাইলিং মেশিনের প্রসেসর প্রকার। ব্যবহার -মার্চ=দেশীয় সব সক্ষম করে
স্থানীয় মেশিন দ্বারা সমর্থিত নির্দেশ উপসেট (অতএব ফলাফল চালানো নাও হতে পারে
বিভিন্ন মেশিনে)। ব্যবহার -mtune=নেটিভ স্থানীয় জন্য অপ্টিমাইজ করা কোড উত্পাদন করে
নির্বাচিত নির্দেশ সেটের সীমাবদ্ধতার অধীনে মেশিন।

i386
অরিজিনাল ইন্টেল i386 CPU।

i486
ইন্টেল i486 সিপিইউ। (এই চিপের জন্য কোন সময়সূচী প্রয়োগ করা হয় না।)

i586
পেন্টিয়াম
MMX সমর্থন ছাড়াই ইন্টেল পেন্টিয়াম সিপিইউ।

পেন্টিয়াম-এমএক্স
ইন্টেল পেন্টিয়াম MMX CPU, MMX নির্দেশ সেট সমর্থন সহ Pentium কোরের উপর ভিত্তি করে।

পেন্টিয়ামপ্রো
ইন্টেল পেন্টিয়াম প্রো সিপিইউ।

i686
যখন ব্যবহার করা হয় -মার্চ, পেন্টিয়াম প্রো নির্দেশ সেট ব্যবহার করা হয়, তাই কোড রান
সমস্ত i686 ফ্যামিলি চিপগুলিতে। সঙ্গে ব্যবহার করা হলে -mtune, এর একই অর্থ আছে
জাতিবাচক.

পেন্টিয়াম2
ইন্টেল পেন্টিয়াম II CPU, MMX নির্দেশ সেট সমর্থন সহ পেন্টিয়াম প্রো কোরের উপর ভিত্তি করে।

পেন্টিয়াম3
পেন্টিয়াম 3 মি
ইন্টেল পেন্টিয়াম III CPU, MMX এবং SSE নির্দেশ সেট সহ পেন্টিয়াম প্রো কোরের উপর ভিত্তি করে
সমর্থন।

পেন্টিয়াম-মি
ইন্টেল পেন্টিয়াম এম; MMX, SSE এবং SSE2 সহ ইন্টেল পেন্টিয়াম III CPU-এর কম-পাওয়ার সংস্করণ
নির্দেশ সেট সমর্থন। Centrino নোটবুক দ্বারা ব্যবহৃত.

পেন্টিয়াম4
পেন্টিয়াম 4 মি
MMX, SSE এবং SSE4 নির্দেশ সেট সমর্থন সহ Intel Pentium 2 CPU।

প্রেসকট
MMX, SSE, SSE4 এবং SSE2 নির্দেশ সহ Intel Pentium 3 CPU-এর উন্নত সংস্করণ
সমর্থন সেট করুন।

নোকোনা
ইন্টেল পেন্টিয়াম 4 সিপিইউ এর উন্নত সংস্করণ 64-বিট এক্সটেনশন, MMX, SSE, SSE2 এবং
SSE3 নির্দেশ সেট সমর্থন.

কোর 2
2-বিট এক্সটেনশন, MMX, SSE, SSE64, SSE2 এবং SSSE3 সহ ইন্টেল কোর 3 CPU
নির্দেশ সেট সমর্থন।

corei7
7-বিট এক্সটেনশন সহ Intel Core i64 CPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 এবং
SSE4.2 নির্দেশ সেট সমর্থন.

corei7-avx
7-বিট এক্সটেনশন সহ Intel Core i64 CPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, AVX, AES এবং PCLMUL নির্দেশ সেট সমর্থন।

core-avx-i
64-বিট এক্সটেনশন সহ ইন্টেল কোর CPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND এবং F16C নির্দেশ সেট সমর্থন।

core-avx2
64-বিট এক্সটেনশন সহ ইন্টেল কোর CPU, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2 এবং F16C
নির্দেশ সেট সমর্থন।

পরমাণু
64-বিট এক্সটেনশন সহ Intel Atom CPU, MOVBE, MMX, SSE, SSE2, SSE3 এবং SSSE3
নির্দেশ সেট সমর্থন।

k6 MMX নির্দেশ সেট সমর্থন সহ AMD K6 CPU.

k6-2
k6-3
MMX এবং 6DNow সহ AMD K3 CPU এর উন্নত সংস্করণ! নির্দেশ সেট সমর্থন।

অ্যাথলন
অ্যাথলন-টিবার্ড
MMX সহ AMD Athlon CPU, 3dNOW!, উন্নত 3DNow! এবং SSE প্রিফেচ নির্দেশাবলী
সমর্থন।

অ্যাথলন -4
athlon-xp
অ্যাথলন-এমপি
MMX এর সাথে উন্নত AMD Athlon CPU, 3DNow!, বর্ধিত 3DNow! এবং সম্পূর্ণ SSE নির্দেশনা
সমর্থন সেট করুন।

k8
অপটারন
athlon64
athlon-fx
এএমডি K8 কোরের উপর ভিত্তি করে প্রসেসর x86-64 নির্দেশনা সেট সমর্থন সহ
AMD Opteron, Athlon 64, এবং Athlon 64 FX প্রসেসর। (এটি MMX সুপারসেট করে,
SSE, SSE2, 3DNow!, বর্ধিত 3DNow! এবং 64-বিট নির্দেশ সেট এক্সটেনশন।)

k8-sse3
opteron-sse3
athlon64-sse3
SSE8 নির্দেশ সেট সমর্থন সহ AMD K3 কোরের উন্নত সংস্করণ।

amdfam10
বার্সেলোনা
x10-86 নির্দেশ সেট সমর্থন সহ AMD ফ্যামিলি 64h কোরের উপর ভিত্তি করে CPUs। (এই
সুপারসেট MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, বর্ধিত 3DNow!, ABM এবং 64-বিট
নির্দেশ সেট এক্সটেনশন।)

bdver1
x15-86 নির্দেশ সেট সমর্থন সহ AMD ফ্যামিলি 64h কোরের উপর ভিত্তি করে CPUs। (এই
সুপারসেট FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A,
SSSE3, SSE4.1, SSE4.2, ABM এবং 64-বিট নির্দেশ সেট এক্সটেনশন।)

bdver2
x15-86 নির্দেশ সেট সমর্থন সহ AMD পরিবার 64h কোর ভিত্তিক CPUs। (এই
সুপারসেট BMI, TBM, F16C, FMA, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2,
SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM এবং 64-বিট নির্দেশ সেট এক্সটেনশন।)

bdver3
x15-86 নির্দেশ সেট সমর্থন সহ AMD পরিবার 64h কোর ভিত্তিক CPUs। (এই
সুপারসেট BMI, TBM, F16C, FMA, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2,
SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM এবং 64-বিট নির্দেশ সেট এক্সটেনশন।

btver1
x14-86 নির্দেশ সেট সমর্থন সহ AMD ফ্যামিলি 64h কোরের উপর ভিত্তি করে CPUs। (এই
সুপারসেট MMX, SSE, SSE2, SSE3, SSSE3, SSE4A, CX16, ABM এবং 64-বিট নির্দেশনা সেট
এক্সটেনশন।)

btver2
x16-86 নির্দেশ সেট সমর্থন সহ AMD ফ্যামিলি 64h কোরের উপর ভিত্তি করে CPUs। এই
MOVBE, F16C, BMI, AVX, PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A,
SSSE3, SSE3, SSE2, SSE, MMX এবং 64-বিট নির্দেশ সেট এক্সটেনশন।

winchip-c6
IDT WinChip C6 CPU, অতিরিক্ত MMX নির্দেশ সেটের সাথে i486 এর মতোই ডিল করা হয়েছে
সমর্থন।

winchip2
IDT WinChip 2 CPU, অতিরিক্ত MMX এবং 486DNow এর সাথে i3 এর মতই ডিল করা হয়েছে!
নির্দেশ সেট সমর্থন।

c3 MMX এবং 3DNow সহ VIA C3 CPU! নির্দেশ সেট সমর্থন। (কোন সময়সূচী নেই
এই চিপের জন্য প্রয়োগ করা হয়েছে।)

c3-2
VIA C3-2 (Nehemiah/C5XL) MMX এবং SSE নির্দেশ সেট সমর্থন সহ CPU। (না
এই চিপের জন্য সময়সূচী প্রয়োগ করা হয়।)

কেলাস বা অন্যান্য আকরিক পদার্থে গঠিত কোটর
MMX এবং 3DNow সহ AMD জিওড এমবেডেড প্রসেসর! নির্দেশ সেট সমর্থন।

-mtune =cpu-টাইপ
টিউন টু cpu-টাইপ ABI ব্যতীত জেনারেট করা কোড সম্পর্কে প্রযোজ্য সবকিছু
এবং উপলব্ধ নির্দেশাবলী সেট. একটি নির্দিষ্ট বাছাই করার সময় cpu-টাইপ সময়সূচী
যে নির্দিষ্ট চিপের জন্য জিনিসগুলি যথাযথভাবে, কম্পাইলার কোনও কোড তৈরি করে না
যেটি ডিফল্ট মেশিন টাইপে চলতে পারে না যদি না আপনি a ব্যবহার করেন -মার্চ =cpu-টাইপ বিকল্প।
উদাহরণস্বরূপ, যদি GCC i686-pc-linux-gnu-এর জন্য কনফিগার করা হয় -mtune=pentium4 উত্পন্ন
কোড যেটি পেন্টিয়াম 4 এর জন্য টিউন করা হয়েছে কিন্তু এখনও i686 মেশিনে চলে।

জন্য পছন্দ cpu-টাইপ হিসাবে হিসাবে একই -মার্চ। এছাড়াও, -mtune সমর্থন করে একটি
জন্য অতিরিক্ত পছন্দ cpu-টাইপ:

জাতিবাচক
সবচেয়ে সাধারণ IA32/AMD64/EM64T প্রসেসরের জন্য অপ্টিমাইজ করা কোড তৈরি করুন। আপনি যদি
আপনার কোডটি যে সিপিইউতে চলবে তা জানুন, তাহলে আপনার সংশ্লিষ্ট ব্যবহার করা উচিত
-mtune or -মার্চ পরিবর্তে বিকল্প -mtune = জেনেরিক. কিন্তু, না জানলে
আপনার অ্যাপ্লিকেশনের সিপিইউ ব্যবহারকারীদের ঠিক কী থাকবে, তাহলে আপনার এটি ব্যবহার করা উচিত
বিকল্প।

যেহেতু নতুন প্রসেসর মার্কেটপ্লেসে মোতায়েন করা হয়, এই বিকল্পের আচরণ
পরিবর্তন হবে. অতএব, আপনি যদি GCC-এর একটি নতুন সংস্করণে আপগ্রেড করেন, কোড জেনারেশন
এই বিকল্প দ্বারা নিয়ন্ত্রিত প্রসেসরগুলিকে প্রতিফলিত করতে পরিবর্তন হবে যা সর্বাধিক
GCC-এর যে সংস্করণ প্রকাশিত হয় তখন সাধারণ।

এমন কিছু নেই -মার্চ = জেনেরিক বিকল্প কারণ -মার্চ নির্দেশ সেট নির্দেশ করে
কম্পাইলার ব্যবহার করতে পারে, এবং সকলের জন্য প্রযোজ্য কোন জেনেরিক নির্দেশনা সেট নেই
প্রসেসর বিপরীতে, -mtune প্রসেসর নির্দেশ করে (বা, এই ক্ষেত্রে,
প্রসেসরের সংগ্রহ) যার জন্য কোডটি অপ্টিমাইজ করা হয়েছে।

-mcpu =cpu-টাইপ
এর জন্য একটি অবমূল্যায়িত প্রতিশব্দ -mtune.

-mfpmath =একক
নির্বাচিত ইউনিটের জন্য ভাসমান-বিন্দু পাটিগণিত তৈরি করুন একক. জন্য পছন্দ একক হয়:

387 বেশিরভাগ চিপগুলিতে উপস্থিত স্ট্যান্ডার্ড 387 ফ্লোটিং-পয়েন্ট কপ্রসেসর ব্যবহার করুন
এবং অন্যথায় অনুকরণ করা হয়। এই বিকল্পের সাথে সংকলিত কোড প্রায় সর্বত্র চলে।
অস্থায়ী ফলাফলগুলি নির্ভুলতার পরিবর্তে 80-বিট নির্ভুলতায় গণনা করা হয়
প্রকারের দ্বারা নির্দিষ্ট করা হয়েছে, যার ফলে বেশিরভাগের তুলনায় সামান্য ভিন্ন ফলাফল পাওয়া যায়
অন্যান্য চিপস। দেখা -ফ্লোট-স্টোর আরো বিস্তারিত বিবরণের জন্য।

এটি i386 কম্পাইলারের জন্য ডিফল্ট পছন্দ।

কানা অনুলিপি করুন SSE নির্দেশনা সেটে উপস্থিত স্কেলার ফ্লোটিং-পয়েন্ট নির্দেশাবলী ব্যবহার করুন। এই
নির্দেশ সেট পেন্টিয়াম III এবং নতুন চিপ দ্বারা সমর্থিত, এবং AMD লাইনে
Athlon-4, Athlon XP এবং Athlon MP চিপস দ্বারা। SSE এর আগের সংস্করণ
নির্দেশ সেট শুধুমাত্র একক-নির্ভুল গাণিতিক সমর্থন করে, এইভাবে দ্বিগুণ এবং
বর্ধিত-নির্ভুল গাণিতিক এখনও 387 ব্যবহার করে করা হয়। পরবর্তী সংস্করণ, বর্তমান
শুধুমাত্র পেন্টিয়াম 4 এবং AMD x86-64 চিপগুলিতে, ডাবল-নির্ভুল গাণিতিককেও সমর্থন করে।

i386 কম্পাইলারের জন্য, আপনাকে অবশ্যই ব্যবহার করতে হবে -মার্চ =cpu-টাইপ, -এমএসই or -msse2 সুইচ করতে
SSE এক্সটেনশন সক্রিয় করুন এবং এই বিকল্পটিকে কার্যকর করুন। x86-64 কম্পাইলারের জন্য,
এই এক্সটেনশনগুলি ডিফল্টরূপে সক্রিয় করা হয়।

ফলাফল কোড অধিকাংশ ক্ষেত্রে যথেষ্ট দ্রুত হতে হবে এবং
387 কোডের সংখ্যাগত অস্থিরতা সমস্যাগুলি এড়িয়ে চলুন, তবে কিছু বিদ্যমান ভাঙতে পারে
কোড যা অস্থায়ী 80 বিট হতে আশা করে।

এটি x86-64 কম্পাইলারের জন্য ডিফল্ট পছন্দ।

sse,387
sse+387
উভয়
উভয় নির্দেশনা সেট একসাথে ব্যবহার করার চেষ্টা করুন। এই কার্যকরভাবে দ্বিগুণ
উপলব্ধ রেজিস্টারের পরিমাণ, এবং 387-এর জন্য আলাদা এক্সিকিউশন ইউনিট সহ চিপগুলিতে
এবং SSE নির্বাহ সম্পদও। যত্ন সহকারে এই বিকল্পটি ব্যবহার করুন, এটি এখনও আছে
পরীক্ষামূলক, কারণ GCC রেজিস্টার বরাদ্দকারী আলাদা মডেল করে না
কার্যকরী ইউনিট ভাল, অস্থির কর্মক্ষমতা ফলে.

-মমাস =উপভাষা
নির্বাচিত ব্যবহার করে আউটপুট সমাবেশ নির্দেশাবলী উপভাষা. সমর্থিত পছন্দ হয় ইন্টেল or
ATT (ডিফল্ট). ডারউইন সমর্থন করেন না ইন্টেল.

-মিইইই-এফপি
-mno-ieee-fp
কম্পাইলার IEEE ফ্লোটিং-পয়েন্ট তুলনা ব্যবহার করে কিনা তা নিয়ন্ত্রণ করুন। এইগুলো
সঠিকভাবে কেসটি পরিচালনা করুন যেখানে তুলনার ফলাফলটি ক্রমহীন হয়।

-মেমসফট-ফ্লোট
ফ্লোটিং পয়েন্টের জন্য লাইব্রেরি কল ধারণকারী আউটপুট তৈরি করুন।

সতর্কতা: প্রয়োজনীয় গ্রন্থাগারগুলি GCC-এর অংশ নয়৷ সাধারনত এর সুবিধা
মেশিনের স্বাভাবিক সি কম্পাইলার ব্যবহার করা হয়, কিন্তু এটি সরাসরি ক্রস-এ করা যাবে না
সংকলন উপযুক্ত লাইব্রেরি প্রদানের জন্য আপনাকে অবশ্যই নিজের ব্যবস্থা করতে হবে
ক্রস-সংকলনের জন্য ফাংশন।

মেশিনে যেখানে একটি ফাংশন 80387 রেজিস্টারে ফ্লোটিং-পয়েন্ট ফলাফল প্রদান করে
স্ট্যাক, কিছু ফ্লোটিং-পয়েন্ট অপকোড নির্গত হতে পারে এমনকি যদি -মেমসফট-ফ্লোট ব্যবহৃত হয়.

-mno-Fp-ret- ইন -387
ফাংশন রিটার্ন মান জন্য FPU রেজিস্টার ব্যবহার করবেন না.

সাধারণ কলিং কনভেনশনে "ফ্লোট" এবং "ডাবল" ধরণের ফাংশন রিটার্ন মান রয়েছে
FPU রেজিস্টারে, এমনকি FPU না থাকলেও। ধারণা করা হচ্ছে অপারেটিং সিস্টেম
একটি FPU অনুকরণ করা উচিত।

পছন্দ -mno-Fp-ret- ইন -387 সাধারণ সিপিইউতে এই ধরনের মানগুলি ফেরত দেয়
পরিবর্তে নিবন্ধন.

-মনো-ফ্যান্সি-ম্যাথ -387
কিছু 387 এমুলেটর "sin", "cos" এবং "sqrt" নির্দেশাবলী সমর্থন করে না
387. এই নির্দেশাবলী তৈরি করা এড়াতে এই বিকল্পটি উল্লেখ করুন। এই বিকল্প হল
FreeBSD, OpenBSD এবং NetBSD-তে ডিফল্ট। এই বিকল্পটি ওভাররাইড করা হয় যখন -মার্চ
নির্দেশ করে যে লক্ষ্য CPU-তে সর্বদা একটি FPU থাকে এবং তাই নির্দেশের প্রয়োজন হয় না
অনুকরণ আপনি এটি ব্যবহার না করলে এই নির্দেশাবলী তৈরি হয় না
-ফানসেফ-গণিত-অপ্টিমাইজেশন সুইচ।

- ম্যালিগন-ডবল
-mno-সারিবদ্ধ-দ্বৈত
GCC এ "ডবল", "লং ডবল", এবং "লং লং" ভেরিয়েবল সারিবদ্ধ করে কিনা তা নিয়ন্ত্রণ করুন
দুই-শব্দের সীমানা বা এক-শব্দের সীমানা। একটি দুই-শব্দে "দ্বৈত" ভেরিয়েবল সারিবদ্ধ করা
সীমানা এমন কোড তৈরি করে যা পেন্টিয়ামে বেশি খরচ করে কিছুটা দ্রুত চলে
স্মৃতি.

x86-64-এ, - ম্যালিগন-ডবল ডিফল্টরূপে সক্রিয় করা হয়।

সতর্কতা: আপনি যদি ব্যবহার - ম্যালিগন-ডবল সুইচ, উপরের ধরনের স্ট্রাকচার
প্রকাশিত অ্যাপ্লিকেশন বাইনারি ইন্টারফেস স্পেসিফিকেশন থেকে ভিন্নভাবে সারিবদ্ধ
386 এর জন্য এবং কোড ছাড়া সংকলিত কাঠামোর সাথে বাইনারি সামঞ্জস্যপূর্ণ নয়
যে সুইচ

-m96bit-লং-ডাবল
-m128bit-লং-ডাবল
এই সুইচগুলি "লং ডবল" টাইপের আকার নিয়ন্ত্রণ করে। i386 অ্যাপ্লিকেশন বাইনারি
ইন্টারফেস আকার 96 বিট হতে নির্দিষ্ট করে, তাই -m96bit-লং-ডাবল মধ্যে ডিফল্ট হয়
32-বিট মোড।

আধুনিক স্থাপত্যগুলি (পেন্টিয়াম এবং নতুন) একটি 8-তে সারিবদ্ধ হতে "লং ডবল" পছন্দ করে
বা 16-বাইটের সীমানা। ABI-এর সাথে সঙ্গতিপূর্ণ অ্যারে বা কাঠামোতে, এটি নয়
সম্ভব. তাই নির্দিষ্ট করা -m128bit-লং-ডাবল একটি 16-বাইটে "লং ডবল" সারিবদ্ধ করে
একটি অতিরিক্ত 32-বিট শূন্য সহ "লং ডবল" প্যাডিং করে সীমানা।

x86-64 কম্পাইলারে, -m128bit-লং-ডাবল এটির ABI হিসাবে ডিফল্ট পছন্দ
নির্দিষ্ট করে যে "লং ডবল" 16-বাইট সীমানায় সারিবদ্ধ।

লক্ষ্য করুন যে এই বিকল্পগুলির কোনটিই x87 স্ট্যান্ডার্ডের উপর অতিরিক্ত নির্ভুলতা সক্ষম করে না
একটি "লং ডবল" এর জন্য 80 বিটের।

সতর্কতা: আপনি যদি আপনার লক্ষ্য ABI-এর জন্য ডিফল্ট মান ওভাররাইড করেন, তাহলে এটি আকার পরিবর্তন করে
"লং ডবল" ভেরিয়েবল ধারণকারী স্ট্রাকচার এবং অ্যারেগুলির, সেইসাথে পরিবর্তন করা
"লং ডবল" নেওয়া ফাংশনের জন্য ফাংশন কলিং কনভেনশন। তাই তারা নয়
সেই সুইচ ছাড়াই সংকলিত কোডের সাথে বাইনারি-সামঞ্জস্যপূর্ণ।

-মলং-ডবল-64
-মলং-ডবল-80
এই সুইচগুলি "লং ডবল" টাইপের আকার নিয়ন্ত্রণ করে। 64 বিটের আকার তৈরি করে
"লং ডবল" টাইপ "ডবল" টাইপের সমতুল্য। এটি Bionic C এর জন্য ডিফল্ট
গ্রন্থাগার।

সতর্কতা: আপনি যদি আপনার লক্ষ্য ABI-এর জন্য ডিফল্ট মান ওভাররাইড করেন, তাহলে এটি আকার পরিবর্তন করে
"লং ডবল" ভেরিয়েবল ধারণকারী স্ট্রাকচার এবং অ্যারেগুলির, সেইসাথে পরিবর্তন করা
"লং ডবল" নেওয়া ফাংশনের জন্য ফাংশন কলিং কনভেনশন। তাই তারা নয়
সেই সুইচ ছাড়াই সংকলিত কোডের সাথে বাইনারি-সামঞ্জস্যপূর্ণ।

-mlarge-ডেটা-থ্রেশহোল্ড=গোবরাট
কখন -mcmodel=মাঝারি নির্দিষ্ট করা হয়, ডেটা বস্তুর চেয়ে বড় গোবরাট স্থাপন করা হয়
বড় তথ্য বিভাগ। এই মানটি সংযুক্ত সমস্ত বস্তুর মধ্যে একই হতে হবে
বাইনারি, এবং ডিফল্ট 65535।

-এমআরটিডি
একটি ভিন্ন ফাংশন-কলিং কনভেনশন ব্যবহার করুন, যে ফাংশনগুলি একটি নির্দিষ্ট করে
আর্গুমেন্টের সংখ্যা "ret" দিয়ে ফিরে আসে সংখ্যা" নির্দেশ, যা তাদের যুক্তি পপ করে
ফিরে আসার সময় এটি কলারের একটি নির্দেশ সংরক্ষণ করে যেহেতু এর কোন প্রয়োজন নেই৷
সেখানে যুক্তি পপ.

আপনি নির্দিষ্ট করতে পারেন যে একটি পৃথক ফাংশন এই কলিং সিকোয়েন্সের সাথে কল করা হয়
ফাংশন বৈশিষ্ট্য stdcall. আপনি ওভাররাইড করতে পারেন -এমআরটিডি ব্যবহার করে বিকল্প
ফাংশন বৈশিষ্ট্য cdecl.

সতর্কতা: এই কলিং কনভেনশনটি সাধারণত ইউনিক্সে ব্যবহৃত একটির সাথে বেমানান,
তাই ইউনিক্স কম্পাইলারের সাথে কম্পাইল করা লাইব্রেরি কল করার প্রয়োজন হলে আপনি এটি ব্যবহার করতে পারবেন না।

এছাড়াও, ভেরিয়েবল গ্রহণকারী সমস্ত ফাংশনের জন্য আপনাকে অবশ্যই ফাংশন প্রোটোটাইপ প্রদান করতে হবে
আর্গুমেন্টের সংখ্যা ("printf" সহ); অন্যথায় এর জন্য ভুল কোড তৈরি করা হয়
যারা ফাংশন কল.

উপরন্তু, আপনি যদি অনেকগুলি সহ একটি ফাংশন কল করেন তবে গুরুতরভাবে ভুল কোড ফলাফল
যুক্তি. (সাধারণত, অতিরিক্ত যুক্তি নিরীহভাবে উপেক্ষা করা হয়।)

-আমগ্রিপর্ম =NUM
পূর্ণসংখ্যা আর্গুমেন্ট পাস করতে কত রেজিস্টার ব্যবহার করা হয় তা নিয়ন্ত্রণ করুন। ডিফল্টরূপে, না
রেজিস্টারগুলি আর্গুমেন্ট পাস করার জন্য ব্যবহার করা হয় এবং সর্বাধিক 3টি রেজিস্টার ব্যবহার করা যেতে পারে। তুমি পারবে
ফাংশন বৈশিষ্ট্য ব্যবহার করে একটি নির্দিষ্ট ফাংশনের জন্য এই আচরণ নিয়ন্ত্রণ করুন regparm.

সতর্কতা: যদি আপনি এই সুইচ ব্যবহার করেন, এবং NUM অশূন্য, তাহলে আপনাকে অবশ্যই সমস্ত মডিউল তৈরি করতে হবে
একই মান সহ, যেকোনো লাইব্রেরি সহ। এর মধ্যে রয়েছে সিস্টেম লাইব্রেরি এবং
স্টার্টআপ মডিউল।

-msseregparm
ফ্লোট এবং ডবল আর্গুমেন্ট এবং রিটার্ন মানের জন্য SSE রেজিস্টার পাসিং কনভেনশন ব্যবহার করুন।
আপনি ফাংশন বৈশিষ্ট্য ব্যবহার করে একটি নির্দিষ্ট ফাংশনের জন্য এই আচরণ নিয়ন্ত্রণ করতে পারেন
sseregparm.

সতর্কতা: আপনি যদি এই সুইচটি ব্যবহার করেন তবে আপনাকে অবশ্যই একই মান সহ সমস্ত মডিউল তৈরি করতে হবে,
যেকোনো লাইব্রেরি সহ। এর মধ্যে সিস্টেম লাইব্রেরি এবং স্টার্টআপ মডিউল রয়েছে।

-mvect8-Ret-ইন-এমইএম
MMX রেজিস্টারের পরিবর্তে মেমরিতে 8-বাইট ভেক্টর ফেরত দিন। এই উপর ডিফল্ট
Solaris@tie{}8 এবং 9 এবং VxWorks সান স্টুডিও কম্পাইলারের ABI-এর সাথে মেলে
সংস্করণ 12. পরবর্তী কম্পাইলার সংস্করণ (স্টুডিও 12 আপডেট@tie{}1 দিয়ে শুরু) অনুসরণ করুন
অন্যান্য x86 টার্গেট দ্বারা ব্যবহৃত ABI, যা Solaris@tie{}10 ​​এবং পরবর্তীতে ডিফল্ট।
কেবল আপনি যদি উত্পাদিত বিদ্যমান কোডের সাথে সামঞ্জস্যপূর্ণ থাকতে চান তবে এই বিকল্পটি ব্যবহার করুন
পূর্ববর্তী কম্পাইলার সংস্করণ বা GCC এর পুরানো সংস্করণ।

-mpc32
-mpc64
-mpc80
80387 ফ্লোটিং-পয়েন্ট নির্ভুলতা 32, 64 বা 80 বিটে সেট করুন। কখন -mpc32 উল্লিখিত আছে,
ফ্লোটিং-পয়েন্ট অপারেশনের ফলাফলের তাৎপর্য 24 বিটে বৃত্তাকার
(একক নির্ভুলতা); -mpc64 ভাসমান-বিন্দুর ফলাফলের তাৎপর্যকে বৃত্তাকার করে
অপারেশন 53 বিট (ডবল নির্ভুলতা) এবং -mpc80 ফলাফলের তাৎপর্য বৃত্তাকার
ফ্লোটিং-পয়েন্ট অপারেশনের 64 বিট (বর্ধিত ডবল নির্ভুলতা), যা হল
ডিফল্ট. যখন এই বিকল্পটি ব্যবহার করা হয়, তখন উচ্চতর নির্ভুলতায় ফ্লোটিং-পয়েন্ট অপারেশন হয়
স্পষ্টভাবে FPU নিয়ন্ত্রণ শব্দ সেট না করে প্রোগ্রামারের কাছে উপলব্ধ নয়।

ফ্লোটিং-পয়েন্ট অপারেশনের রাউন্ডিং ডিফল্ট 80 বিটের চেয়ে কম সেট করা
কিছু প্রোগ্রামের গতি 2% বা তার বেশি। উল্লেখ্য যে কিছু গাণিতিক গ্রন্থাগার এটি অনুমান করে
বর্ধিত-নির্ভুলতা (80-বিট) ফ্লোটিং-পয়েন্ট অপারেশন ডিফল্টরূপে সক্রিয় করা হয়; রুটিন
এই ধরনের লাইব্রেরিতে সঠিকতার উল্লেখযোগ্য ক্ষতি হতে পারে, সাধারণত এর মাধ্যমে-
"বিপর্যয়মূলক বাতিলকরণ" বলা হয়, যখন এই বিকল্পটি নির্ভুলতা সেট করতে ব্যবহৃত হয়
বর্ধিত নির্ভুলতার চেয়ে কম।

-mstackrealign
এন্ট্রিতে স্ট্যাকটি পুনরায় সাজান। ইন্টেল x86-এ, -mstackrealign বিকল্প একটি উৎপন্ন করে
বিকল্প প্রস্তাবনা এবং উপসংহার যা প্রয়োজনে রান-টাইম স্ট্যাককে পুনরায় সাজায়। এই
আধুনিক কোডের সাথে 4-বাইট স্ট্যাক অ্যালাইনমেন্ট রাখে এমন লিগ্যাসি কোড মিশ্রিত করা সমর্থন করে
SSE সামঞ্জস্যের জন্য 16-বাইট স্ট্যাক প্রান্তিককরণ রাখুন। এছাড়াও বৈশিষ্ট্য দেখুন
"force_align_arg_pointer", পৃথক ফাংশনের জন্য প্রযোজ্য।

-mpreferred- স্ট্যাক-সীমানা =NUM
স্ট্যাকের সীমানাকে 2 থেকে উত্থাপিত করার সাথে সারিবদ্ধ রাখার চেষ্টা করুন NUM বাইট সীমানা। যদি
পছন্দের-স্ট্যাক-সীমানা নির্দিষ্ট করা নেই, ডিফল্ট হল 4 (16 বাইট বা 128 বিট)।

সতর্কতা: SSE এক্সটেনশনের সাথে x86-64 আর্কিটেকচারের জন্য কোড তৈরি করার সময়
অক্ষম, -প্রেফারেড-স্ট্যাক-সীমা=3 স্ট্যাকের সীমানা সারিবদ্ধ রাখতে ব্যবহার করা যেতে পারে
8 বাইট সীমানা থেকে। যেহেতু x86-64 ABI-এর জন্য 16 বাইট স্ট্যাক অ্যালাইনমেন্ট প্রয়োজন, এটি ABI
বেমানান এবং নিয়ন্ত্রিত পরিবেশে ব্যবহার করার উদ্দেশ্যে যেখানে স্ট্যাক স্পেস রয়েছে
গুরুত্বপূর্ণ সীমাবদ্ধতা। ফাংশন কম্পাইল করার সময় এই বিকল্পটি ভুল কোডের দিকে নিয়ে যাবে
16 বাইট স্ট্যাক অ্যালাইনমেন্ট সহ (যেমন একটি স্ট্যান্ডার্ড লাইব্রেরি থেকে ফাংশন) বলা হয়
মিসলাইনড স্ট্যাক সহ। এই ক্ষেত্রে, SSE নির্দেশাবলী ভুল মেমরির দিকে নিয়ে যেতে পারে
অ্যাক্সেস ফাঁদ. উপরন্তু, পরিবর্তনশীল আর্গুমেন্ট 16 বাইটের জন্য ভুলভাবে পরিচালনা করা হবে
সারিবদ্ধ বস্তু (x87 লং ডবল এবং __int128 সহ), ভুল ফলাফলের দিকে পরিচালিত করে।
আপনাকে অবশ্যই এর সাথে সমস্ত মডিউল তৈরি করতে হবে -প্রেফারেড-স্ট্যাক-সীমা=3যেকোন লাইব্রেরি সহ।
এর মধ্যে সিস্টেম লাইব্রেরি এবং স্টার্টআপ মডিউল রয়েছে।

-মিনকমিং-স্ট্যাক-সীমা =NUM
অনুমান করুন ইনকামিং স্ট্যাক একটি 2-এ উত্থাপিত হয় NUM বাইট সীমানা। যদি
-মিনকমিং-স্ট্যাক-সীমানা নির্দিষ্ট করা হয় না, দ্বারা নির্দিষ্ট করা হয়
পছন্দের-স্ট্যাক-সীমানা ব্যবহৃত হয়.

পেন্টিয়াম এবং পেন্টিয়াম প্রোতে, "ডবল" এবং "লং ডবল" মানগুলি একটির সাথে সারিবদ্ধ হওয়া উচিত
8-বাইটের সীমানা (দেখুন - ম্যালিগন-ডবল) অথবা উল্লেখযোগ্য রান টাইম কর্মক্ষমতা ভোগ করে
শাস্তি পেন্টিয়াম III-এ, স্ট্রিমিং SIMD এক্সটেনশন (SSE) ডেটা টাইপ "__m128" হতে পারে
এটি 16-বাইট সারিবদ্ধ না হলে সঠিকভাবে কাজ করবে না।

স্ট্যাকের উপর এই মানগুলির যথাযথ প্রান্তিককরণ নিশ্চিত করতে, স্ট্যাকের সীমানাটি অবশ্যই হিসাবে হতে হবে
স্ট্যাকে সংরক্ষিত যেকোনো মান দ্বারা প্রয়োজনীয় হিসাবে সারিবদ্ধ। আরও, প্রতিটি ফাংশন
এমনভাবে তৈরি করা উচিত যাতে এটি স্ট্যাকটিকে সারিবদ্ধ রাখে। এইভাবে একটি ফাংশন কল
নিম্নের সাথে সংকলিত একটি ফাংশন থেকে একটি উচ্চতর পছন্দের স্ট্যাক সীমানা সহ সংকলিত
পছন্দের স্ট্যাকের সীমানা সম্ভবত স্ট্যাকটিকে ভুলভাবে সংযোজন করে। এটা বাঞ্ছনীয় যে
যে লাইব্রেরিগুলি কলব্যাক ব্যবহার করে তারা সর্বদা ডিফল্ট সেটিং ব্যবহার করে।

এই অতিরিক্ত প্রান্তিককরণ অতিরিক্ত স্ট্যাকের স্থান ব্যবহার করে এবং সাধারণত কোড বাড়ায়
আকার কোড যা স্ট্যাক স্পেস ব্যবহারের জন্য সংবেদনশীল, যেমন এমবেডেড সিস্টেম এবং
অপারেটিং সিস্টেম কার্নেল, পছন্দের প্রান্তিককরণ কমাতে চাইতে পারে
-প্রেফারেড-স্ট্যাক-সীমা=2.

-এমএমএমএক্স
-mno-mmx
-এমএসই
-mno-sse
-msse2
-mno-sse2
-msse3
-mno-sse3
-mssse3
-mno-ssse3
-msse4.1
-mno-sse4.1
-msse4.2
-mno-sse4.2
-msse4
-mno-sse4
-মভেক্স
-mno-avx
-mavx2
-mno-avx2
-মেস
-mno-aes
-mpclmul
-mno-pclmul
-mfsgsbase
-mno-fsgsbase
-mrdrnd
-মনো-আরডিআরএনডি
-mf16c
-mno-f16c
-mfma
-mno-fma
-msse4a
-mno-sse4a
-mfma4
-mno-fma4
-mxop
-mno-xop
-mlwp
-mno-lwp
-m3dnow
-mno-3dnow
-mpopcnt
-mno-popcnt
- mabm
-mno-abm
-এমবিএমআই
-mbmi2
-mno-bmi
-mno-bmi2
-mlzcnt
-mno-lzcnt
-mrtm
-এমটিবিএম
-mno-tbm
এই সুইচগুলি MMX, SSE, SSE2, SSE3, এ নির্দেশাবলীর ব্যবহার সক্ষম বা অক্ষম করে।
SSSE3, SSE4.1, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, F16C, FMA, SSE4A, FMA4, XOP,
LWP, ABM, BMI, BMI2, LZCNT, RTM বা 3DNow! বর্ধিত নির্দেশ সেট। এইগুলো
এক্সটেনশনগুলি অন্তর্নির্মিত ফাংশন হিসাবে উপলব্ধ: দেখুন X86 বিল্ট-ইন কার্যাবলীজন্য
এই সুইচগুলি দ্বারা সক্রিয় এবং নিষ্ক্রিয় ফাংশনগুলির বিশদ বিবরণ।

ফ্লোটিং-পয়েন্ট কোড থেকে স্বয়ংক্রিয়ভাবে SSE/SSE2 নির্দেশনা তৈরি করতে (বিপরীত
387 নির্দেশাবলীতে), দেখুন -mfpmath = sse.

যখন GCC SSEx নির্দেশাবলীকে বিষণ্ণ করে -মভেক্স ব্যবহৃত হয়. পরিবর্তে, এটি নতুন AVX তৈরি করে
যখন প্রয়োজন হয় তখন সমস্ত SSEx নির্দেশাবলীর জন্য নির্দেশাবলী বা AVX সমতুল্য।

এই বিকল্পগুলি জিসিসিকে জেনারেট করা কোডে এই বর্ধিত নির্দেশাবলী ব্যবহার করতে সক্ষম করে, এমনকি
ছাড়া -mfpmath = sse. যে অ্যাপ্লিকেশনগুলি রান-টাইম CPU সনাক্তকরণ সঞ্চালন করে সেগুলি অবশ্যই কম্পাইল করবে৷
উপযুক্ত পতাকা ব্যবহার করে প্রতিটি সমর্থিত আর্কিটেকচারের জন্য আলাদা ফাইল। ভিতরে
বিশেষ করে, CPU সনাক্তকরণ কোড ধারণকারী ফাইল ছাড়াই কম্পাইল করা উচিত
এই বিকল্পগুলি।

-এমসিএলডি
এই বিকল্পটি GCC কে নির্দেশ দেয় ফাংশনের প্রলোগে একটি "cld" নির্দেশ নির্গত করতে
যে স্ট্রিং নির্দেশাবলী ব্যবহার করে। স্ট্রিং নির্দেশাবলী নির্বাচন করার জন্য DF পতাকার উপর নির্ভর করে
স্বয়ংক্রিয় বৃদ্ধি বা স্বয়ংক্রিয় হ্রাস মোডের মধ্যে। যখন ABI DF পতাকা নির্দিষ্ট করে
ফাংশন এন্ট্রিতে সাফ করা হবে, কিছু অপারেটিং সিস্টেম এই স্পেসিফিকেশন লঙ্ঘন করে না
তাদের ব্যতিক্রম প্রেরকদের মধ্যে DF পতাকা সাফ করা। ব্যতিক্রম হ্যান্ডলার হতে পারে
DF পতাকা সেটের সাথে আহ্বান করা হয়েছে, যা স্ট্রিং করার সময় ভুল দিকনির্দেশ মোডের দিকে নিয়ে যায়
নির্দেশাবলী ব্যবহার করা হয়। এই বিকল্পটি 32-বিট x86 লক্ষ্যে ডিফল্টরূপে সক্রিয় করা যেতে পারে
এর সাথে GCC কনফিগার করা হচ্ছে --enable-cld কনফিগার বিকল্প। "cld" এর প্রজন্ম
নির্দেশাবলী দিয়ে দমন করা যেতে পারে -mno-cld এই ক্ষেত্রে কম্পাইলার বিকল্প।

-mvzeroupper
এই বিকল্পটি স্থানান্তরের আগে GCC-কে একটি "vzeroupper" নির্দেশ নির্গত করার নির্দেশ দেয়
পাশাপাশি AVX থেকে SSE ট্রানজিশন পেনাল্টি কমানোর জন্য ফাংশনের বাইরে প্রবাহ নিয়ন্ত্রণ করুন
অপ্রয়োজনীয় "zeroupper" অন্তর্নিহিত অপসারণ হিসাবে.

-mprefer-Avx128
এই বিকল্পটি GCC কে 128-বিট AVX এর পরিবর্তে 256-বিট AVX নির্দেশাবলী ব্যবহার করার নির্দেশ দেয়
অটো-ভেক্টরাইজারে নির্দেশাবলী।

-mcx16
এই বিকল্পটি GCC কে "CMPXCHG16B" নির্দেশাবলী তৈরি করতে সক্ষম করে৷ "CMPXCHG16B" অনুমতি দেয়
128-বিট ডাবল কোয়াডওয়ার্ড (বা ওওয়ার্ড) ডেটা প্রকারের পারমাণবিক অপারেশনের জন্য। এই
উচ্চ-রেজোলিউশন কাউন্টারগুলির জন্য দরকারী যা একাধিক প্রসেসর দ্বারা আপডেট করা যেতে পারে (বা
কোর)। এই নির্দেশটি পারমাণবিক বিল্ট-ইন ফাংশনের অংশ হিসাবে তৈরি করা হয়েছে: দেখুন
__সুসংগত বিল্টিনস or __পারমাণবিক বিল্টিনস বিস্তারিত জানার জন্য.

- msahf
এই বিকল্পটি 64-বিট কোডে "SAHF" নির্দেশাবলী তৈরি করতে সক্ষম করে। প্রারম্ভিক ইন্টেল
পেন্টিয়াম 4 জি64 ধাপের প্রবর্তনের আগে, ইন্টেল 4 সমর্থন সহ পেন্টিয়াম 1 সিপিইউ
2005 সালের ডিসেম্বরে, "LAHF" এবং "SAHF" নির্দেশাবলীর অভাব ছিল যা দ্বারা সমর্থিত ছিল
AMD64। নির্দিষ্ট স্ট্যাটাস ফ্ল্যাগের জন্য এগুলি যথাক্রমে লোড এবং স্টোর নির্দেশাবলী।
64-বিট মোডে, "SAHF" নির্দেশটি "fmod", "drem" এবং অপ্টিমাইজ করতে ব্যবহৃত হয়
"অবশিষ্ট" অন্তর্নির্মিত ফাংশন; দেখা অন্যান্য বিল্টিনস বিস্তারিত জানার জন্য.

-মেমভবে
এই বিকল্পটি "__builtin_bswap32" বাস্তবায়নের জন্য "movbe" নির্দেশের ব্যবহার সক্ষম করে
এবং "__builtin_bswap64"।

-mcrc32
এই বিকল্পটি অন্তর্নির্মিত ফাংশন "__builtin_ia32_crc32qi" সক্ষম করে,
"__builtin_ia32_crc32hi", "__builtin_ia32_crc32si" এবং "__builtin_ia32_crc32di" থেকে
"crc32" মেশিন নির্দেশনা তৈরি করুন।

-mrecip
এই বিকল্পটি "RCPSS" এবং "RSQRTSS" নির্দেশাবলী ব্যবহার করতে সক্ষম করে (এবং তাদের ভেক্টরাইজড
ভেরিয়েন্ট "RCPPS" এবং "RSQRTPS") বাড়ানোর জন্য একটি অতিরিক্ত নিউটন-রাফসন ধাপ সহ
একক-এর জন্য "DIVSS" এবং "SQRTSS" (এবং তাদের ভেক্টরাইজড ভেরিয়েন্ট) এর পরিবর্তে নির্ভুলতা
যথার্থ ফ্লোটিং-পয়েন্ট আর্গুমেন্ট। এই নির্দেশাবলী শুধুমাত্র যখন উত্পন্ন হয়
-ফানসেফ-গণিত-অপ্টিমাইজেশন সঙ্গে একসঙ্গে সক্রিয় করা হয় -সসীম-গণিত-শুধুমাত্র এবং
-fno-ট্র্যাপিং-গণিত. উল্লেখ্য যে যখন ক্রমটির থ্রুপুট এর চেয়ে বেশি
অ-পারস্পরিক নির্দেশের থ্রুপুট, অনুক্রমের নির্ভুলতা হতে পারে
2 ulp পর্যন্ত হ্রাস পেয়েছে (অর্থাৎ 1.0 এর বিপরীত 0.99999994 সমান)।

মনে রাখবেন GCC "1.0f/sqrtf( প্রয়োগ করেএক্স)" ইতিমধ্যেই "RSQRTSS" (বা "RSQRTPS") এর পরিপ্রেক্ষিতে
সঙ্গে ফাস্ট-গণিত (বা উপরের বিকল্প সংমিশ্রণ), এবং প্রয়োজন নেই -mrecip.

এছাড়াও মনে রাখবেন যে GCC অতিরিক্ত নিউটন-র্যাফসন ধাপ সহ উপরের ক্রমটি নির্গত করে
ভেক্টরাইজড সিঙ্গেল-ফ্লোট ডিভিশন এবং ভেক্টরাইজড "sqrtf(এক্স)" ইতিমধ্যে সঙ্গে ফাস্ট-গণিত
(বা উপরের বিকল্প সংমিশ্রণ), এবং প্রয়োজন নেই -mrecip.

-mrecip =মনোনীত করা
এই বিকল্পটি নিয়ন্ত্রণ করে কোন পারস্পরিক অনুমান নির্দেশাবলী ব্যবহার করা যেতে পারে। মনোনীত করা ইহা একটি
কমা দ্বারা পৃথক করা বিকল্পগুলির তালিকা, যা একটি দ্বারা পূর্বে হতে পারে ! বিকল্পটি উল্টাতে:

সব সমস্ত অনুমান নির্দেশাবলী সক্ষম করুন।

ডিফল্ট
ডিফল্ট নির্দেশাবলী সক্ষম করুন, এর সমতুল্য -mrecip.

না
সমস্ত অনুমান নির্দেশাবলী অক্ষম করুন, এর সমতুল্য -mno-রেসিপি.

dIV আছে স্কেলার বিভাগের জন্য অনুমান সক্ষম করুন।

vec-div
ভেক্টরাইজড ডিভিশনের জন্য অনুমান সক্ষম করুন।

বর্গ
স্কেলার বর্গমূলের জন্য অনুমান সক্ষম করুন।

vec-sqrt
ভেক্টরাইজড বর্গমূলের জন্য অনুমান সক্ষম করুন।

সুতরাং, উদাহরণস্বরূপ, -mrecip=সমস্ত,!sqrt সমস্ত পারস্পরিক অনুমান সক্ষম করে,
বর্গমূল ছাড়া।

-mveclibabi =আদর্শ
একটি বহিরাগত লাইব্রেরি ব্যবহার করে অভ্যন্তরীণ ভেক্টরাইজ করার জন্য ABI প্রকারটি নির্দিষ্ট করে।
জন্য সমর্থিত মান আদর্শ হয় svml ইন্টেল সংক্ষিপ্ত ভেক্টর গণিত লাইব্রেরির জন্য এবং acml
AMD গণিত কোর লাইব্রেরির জন্য। এই বিকল্পটি ব্যবহার করতে, উভয় -ফ্রি-ভেক্টরাইজ এবং
-ফানসেফ-গণিত-অপ্টিমাইজেশন সক্রিয় করতে হবে, এবং একটি SVML বা ACML ABI- সামঞ্জস্যপূর্ণ
লাইব্রেরি অবশ্যই লিঙ্কের সময় নির্দিষ্ট করতে হবে।

GCC বর্তমানে "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" সংশ্লিষ্ট ফাংশনের প্রকারের জন্য যখন -mveclibabi=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"
কখন -mveclibabi=acml ব্যবহৃত হয়.

-মাবি=নাম
নির্দিষ্ট কলিং কনভেনশনের জন্য কোড তৈরি করুন। অনুমোদিত মান হয় sysv উন্নত
GNU/Linux এবং অন্যান্য সিস্টেমে ব্যবহৃত ABI, এবং ms মাইক্রোসফট এবিআই এর জন্য। দ্য
Microsoft Windows এবং SysV ABI লক্ষ্য করার সময় Microsoft ABI ব্যবহার করা ডিফল্ট
অন্য সব সিস্টেমে। আপনি ব্যবহার করে একটি নির্দিষ্ট ফাংশন জন্য এই আচরণ নিয়ন্ত্রণ করতে পারেন
ফাংশন বৈশিষ্ট্য ms_abi/sysv_abi.

-mtls-উপভাষা=আদর্শ
ব্যবহার করে থ্রেড-স্থানীয় স্টোরেজ অ্যাক্সেস করতে কোড তৈরি করুন নু-হরিণ or gnu2 নিয়মাবলী নু-হরিণ
রক্ষণশীল ডিফল্ট; gnu2 আরো দক্ষ, কিন্তু এটি কম্পাইল- এবং রান যোগ করতে পারে-
সময়ের প্রয়োজনীয়তা যা সমস্ত সিস্টেমে সন্তুষ্ট হতে পারে না।

-mpush-আরগস
-mno-push-args
বহির্গামী পরামিতি সংরক্ষণ করতে PUSH অপারেশন ব্যবহার করুন। এই পদ্ধতিটি ছোট এবং সাধারণত
SUB/MOV ক্রিয়াকলাপগুলি ব্যবহার করে পদ্ধতি হিসাবে সমানভাবে দ্রুত এবং ডিফল্টরূপে সক্ষম। কিছু
কেস এটি নিষ্ক্রিয় কারণ উন্নত সময়সূচী এবং হ্রাস কর্মক্ষমতা উন্নত হতে পারে
নির্ভরতা

-ম্যাকুমুলেট-আউটগোয়িং-আর্গস
সক্রিয় থাকলে, বহির্গামী আর্গুমেন্টের জন্য প্রয়োজনীয় স্থানের সর্বোচ্চ পরিমাণ গণনা করা হয়
ফাংশন প্রস্তাবনা এটি বেশিরভাগ আধুনিক সিপিইউতে দ্রুততর কারণ হ্রাস পায়
নির্ভরতা, উন্নত সময়সূচী এবং কম স্ট্যাক ব্যবহার যখন পছন্দের স্ট্যাক
সীমানা 2 এর সমান নয়। ত্রুটি হল কোড আকারের একটি উল্লেখযোগ্য বৃদ্ধি। এই
সুইচ বোঝায় -mno-push-args.

-মথ্রেডস
MinGW-তে থ্রেড-নিরাপদ ব্যতিক্রম হ্যান্ডলিং সমর্থন করুন। থ্রেড-সেফের উপর নির্ভর করে এমন প্রোগ্রাম
ব্যতিক্রম হ্যান্ডলিং এর সাথে সমস্ত কোড কম্পাইল এবং লিঙ্ক করতে হবে -মথ্রেডস বিকল্প কখন
সংকলন, -মথ্রেডস "-D_MT" সংজ্ঞায়িত করে; লিঙ্ক করার সময়, এটি একটি বিশেষ থ্রেডে লিঙ্ক করে
সহায়ক গ্রন্থাগার -lmingwthrd যা প্রতি-থ্রেড ব্যতিক্রম-হ্যান্ডলিং ডেটা পরিষ্কার করে।

-ম্নো-এলাইন-স্ট্রিংপস
ইনলাইনড স্ট্রিং অপারেশনের গন্তব্য সারিবদ্ধ করবেন না। এই সুইচ কোড হ্রাস
আকার এবং কর্মক্ষমতা উন্নত করে যদি গন্তব্যটি ইতিমধ্যেই সারিবদ্ধ থাকে তবে GCC
এটা সম্পর্কে জানেন না।

-মিনলাইন-অল-স্ট্রিংপস
ডিফল্টরূপে GCC ইনলাইন স্ট্রিং অপারেশন শুধুমাত্র যখন গন্তব্য হিসেবে পরিচিত হয়
কমপক্ষে একটি 4-বাইট সীমারেখায় সারিবদ্ধ। এটি আরও ইনলাইন সক্ষম করে এবং কোড বাড়ায়
আকার, কিন্তু কোডের কর্মক্ষমতা উন্নত করতে পারে যা দ্রুত "memcpy", "strlen" এবং এর উপর নির্ভর করে
ছোট দৈর্ঘ্যের জন্য "memset"।

-মিনলাইন-স্ট্রিংপস-গতিশীলভাবে
অজানা আকারের স্ট্রিং অপারেশনের জন্য, ছোট জন্য ইনলাইন কোড সহ রান-টাইম চেক ব্যবহার করুন
ব্লক এবং বড় ব্লকের জন্য একটি লাইব্রেরি কল।

-mstringop-কৌশল=পানা
নির্দিষ্ট অ্যালগরিদমের জন্য ব্যবহার করার জন্য অভ্যন্তরীণ সিদ্ধান্ত হিউরিস্টিককে ওভাররাইড করুন৷
ইনলাইনিং স্ট্রিং অপারেশন। এর জন্য অনুমোদিত মান পানা হয়:

rep_byte
rep_4byte
rep_8byte
নির্দিষ্ট আকারের i386 "rep" উপসর্গ ব্যবহার করে প্রসারিত করুন।

বাইট_লুপ
লুপ
unrolled_loop
একটি ইনলাইন লুপে প্রসারিত করুন।

libcall
সর্বদা একটি লাইব্রেরি কল ব্যবহার করুন.

-মোমিট-লিফ-ফ্রেম-পয়েন্টার
পাতার ফাংশনের জন্য ফ্রেম পয়েন্টারটিকে একটি রেজিস্টারে রাখবেন না। এই এড়ায়
ফ্রেম পয়েন্টার সংরক্ষণ, সেট আপ এবং পুনরুদ্ধার করার নির্দেশাবলী এবং একটি অতিরিক্ত নিবন্ধন করে
পাতা ফাংশন উপলব্ধ. পছন্দ -ফমিট-লিফ-ফ্রেম-পয়েন্টার ফ্রেম সরিয়ে দেয়
পাতার ফাংশনগুলির জন্য পয়েন্টার, যা ডিবাগিংকে আরও কঠিন করে তুলতে পারে।

-mtls-direct-seg-refs
-mno-Tls- ডাইরেক্ট-সেগ-রেফস
TLS সেগমেন্ট থেকে অফসেটগুলির সাথে TLS ভেরিয়েবলগুলি অ্যাক্সেস করা যেতে পারে কিনা তা নিয়ন্ত্রণ করে
নিবন্ধন করুন (32-বিটের জন্য %gs, 64-বিটের জন্য %fs), অথবা থ্রেড বেস পয়েন্টার হতে হবে কিনা
যোগ করা হয়েছে এটি বৈধ কিনা তা অপারেটিং সিস্টেমের উপর নির্ভর করে এবং এটি কিনা
সমগ্র TLS এলাকা কভার করতে সেগমেন্ট ম্যাপ করে।

GNU C লাইব্রেরি ব্যবহার করে এমন সিস্টেমগুলির জন্য, ডিফল্ট চালু থাকে।

-msse2avx
-mno-sse2avx
নির্দিষ্ট করুন যে অ্যাসেম্বলারকে VEX উপসর্গ সহ SSE নির্দেশাবলী এনকোড করা উচিত। পছন্দ
-মভেক্স ডিফল্টরূপে এটি চালু করে।

-মফেন্ট্রি
-মনো-ফেন্ট্রি
প্রোফাইলিং সক্রিয় থাকলে (-পিজি), প্রোলোগের আগে প্রোফাইলিং কাউন্টার কল রাখুন।
দ্রষ্টব্য: x86 আর্কিটেকচারে "ms_hook_prologue" বৈশিষ্ট্যটি সম্ভব নয়
জন্য মুহূর্ত -মফেন্ট্রি এবং -পিজি.

-m8bit-idiv
-mno-8bit-idiv
কিছু প্রসেসরে, যেমন ইন্টেল অ্যাটম, 8-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যা বিভাজন এর চেয়ে অনেক দ্রুত।
32-বিট/64-বিট পূর্ণসংখ্যা ভাগ। এই বিকল্পটি একটি রান-টাইম চেক তৈরি করে। যদি উভয়
লভ্যাংশ এবং ভাজক 0 থেকে 255 এর মধ্যে, 8-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যা বিভাজন হল
32-বিট/64-বিট পূর্ণসংখ্যা বিভাজনের পরিবর্তে ব্যবহৃত হয়।

-mavx256-বিভক্ত-অসংখ্যাযুক্ত-লোড
-mavx256-বিভক্ত-অসংখ্যাযুক্ত-স্টোর
স্প্লিট 32-বাইট AVX আনলাইনড লোড এবং স্টোর।

এইগুলো -m 86-বিটে x64-64 প্রসেসরের উপরোক্ত ছাড়াও সুইচগুলি সমর্থিত
পরিবেশের।

-m32
-m64
-mx32
একটি 32-বিট বা 64-বিট পরিবেশের জন্য কোড তৈরি করুন। দ্য -m32 বিকল্প সেট করে "int", "লং",
এবং পয়েন্টার টাইপ করে 32 বিট, এবং কোড জেনারেট করে যা যেকোনো i386 সিস্টেমে চলে।

সার্জারির -m64 বিকল্প "int" 32 বিট এবং "লং" এবং পয়েন্টার প্রকার 64 বিটে সেট করে, এবং
x86-64 আর্কিটেকচারের জন্য কোড তৈরি করে। শুধুমাত্র ডারউইনের জন্য -m64 বিকল্প এছাড়াও
বন্ধ করে দেয় -fno-ছবি এবং -মডিনামিক-নো-পিক অপশন।

সার্জারির -mx32 বিকল্পটি "int", "লং" এবং পয়েন্টার প্রকারগুলি 32 বিটে সেট করে এবং কোড তৈরি করে
x86-64 আর্কিটেকচারের জন্য।

-মনো-রেড-জোন
x86-64 কোডের জন্য তথাকথিত "রেড জোন" ব্যবহার করবেন না। রেড জোন দ্বারা বাধ্যতামূলক করা হয়
x86-64 ABI; এটি স্ট্যাক পয়েন্টারের অবস্থানের বাইরে একটি 128-বাইট এলাকা যা নয়
সংকেত বা বাধা হ্যান্ডলার দ্বারা পরিবর্তিত এবং তাই অস্থায়ী ডেটার জন্য ব্যবহার করা যেতে পারে
স্ট্যাক পয়েন্টার সমন্বয় ছাড়া। পতাকাটি -মনো-রেড-জোন এই রেড জোন নিষ্ক্রিয় করে।

-mcmodel=ছোট
ছোট কোড মডেলের জন্য কোড তৈরি করুন: প্রোগ্রাম এবং এর চিহ্নগুলি অবশ্যই লিঙ্ক করা উচিত
ঠিকানা স্থানের নিচের 2 GB। পয়েন্টার হল 64 বিট। প্রোগ্রাম হতে পারে
স্থিতিশীল বা গতিশীলভাবে সংযুক্ত। এটি ডিফল্ট কোড মডেল।

-mcmodel = কার্নেল
কার্নেল কোড মডেলের জন্য কোড তৈরি করুন। কার্নেলটি নেতিবাচক 2 গিগাবাইটে চলে
ঠিকানা স্থান। এই মডেলটি লিনাক্স কার্নেল কোডের জন্য ব্যবহার করতে হবে।

-mcmodel=মাঝারি
মাঝারি মডেলের জন্য কোড তৈরি করুন: প্রোগ্রামটি নীচের 2 গিগাবাইটের মধ্যে লিঙ্ক করা হয়েছে
ঠিকানা স্থান। সেখানে ছোট ছোট প্রতীকও বসানো হয়েছে। এর থেকে বড় আকারের চিহ্ন
-mlarge-ডেটা-থ্রেশহোল্ড বড় ডেটা বা BSS বিভাগে রাখা হয় এবং অবস্থিত হতে পারে
2GB এর উপরে। প্রোগ্রামগুলি স্থিতিশীল বা গতিশীলভাবে লিঙ্ক করা যেতে পারে।

-mcmodel=বড়
বড় মডেলের জন্য কোড তৈরি করুন। এই মডেল ঠিকানা সম্পর্কে কোন অনুমান করে না
এবং বিভাগগুলির আকার।

-maddress-মোড = দীর্ঘ
দীর্ঘ ঠিকানা মোডের জন্য কোড তৈরি করুন। এটি শুধুমাত্র 64-বিট এবং x32 এর জন্য সমর্থিত
পরিবেশ এটি 64-বিট পরিবেশের জন্য ডিফল্ট ঠিকানা মোড।

-ম্যাডড্রেস-মোড = ছোট
সংক্ষিপ্ত ঠিকানা মোডের জন্য কোড তৈরি করুন। এটি শুধুমাত্র 32-বিট এবং x32 এর জন্য সমর্থিত
পরিবেশ এটি 32-বিট এবং x32 পরিবেশের জন্য ডিফল্ট ঠিকানা মোড।

i386 এবং x86-64 উইন্ডোজ অপশন সমূহ

এই অতিরিক্ত বিকল্পগুলি Microsoft Windows লক্ষ্যগুলির জন্য উপলব্ধ:

-মকনসোল
এই বিকল্পটি নির্দেশ করে যে একটি কনসোল অ্যাপ্লিকেশন তৈরি করতে হবে
কনসোল অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় PE হেডার সাবসিস্টেম টাইপ সেট করতে লিঙ্কার।
এই বিকল্পটি Cygwin এবং MinGW লক্ষ্যগুলির জন্য উপলব্ধ এবং এটি ডিফল্টরূপে সক্রিয় করা হয়েছে৷
যারা লক্ষ্য.

-এমডিএল
এই বিকল্পটি Cygwin এবং MinGW লক্ষ্যগুলির জন্য উপলব্ধ। এটি নির্দিষ্ট করে যে একটি DLL---a
ডায়নামিক লিঙ্ক লাইব্রেরি--- তৈরি করা হবে, প্রয়োজনীয় নির্বাচন সক্ষম করে
রানটাইম স্টার্টআপ অবজেক্ট এবং এন্ট্রি পয়েন্ট।

-mnop-fun-dllimport
এই বিকল্পটি Cygwin এবং MinGW লক্ষ্যগুলির জন্য উপলব্ধ। এটা নির্দিষ্ট করে যে
"dllimport" বৈশিষ্ট্য উপেক্ষা করা উচিত।

-মথ্রেড
এই বিকল্পটি MinGW লক্ষ্যগুলির জন্য উপলব্ধ। এটা নির্দিষ্ট করে যে MinGW-নির্দিষ্ট থ্রেড
সমর্থন ব্যবহার করা হয়।

-মিউনিকোড
এই বিকল্পটি MinGW-w64 লক্ষ্যগুলির জন্য উপলব্ধ। এটি "ইউনিকোড" প্রিপ্রসেসর ঘটায়
ম্যাক্রো পূর্বনির্ধারিত হবে, এবং ইউনিকোড-সক্ষম রানটাইম স্টার্টআপ কোড বেছে নেয়।

-mwin32
এই বিকল্পটি Cygwin এবং MinGW লক্ষ্যগুলির জন্য উপলব্ধ। এটা নির্দিষ্ট করে যে সাধারণ
মাইক্রোসফট উইন্ডোজের পূর্বনির্ধারিত ম্যাক্রোগুলো প্রি-প্রসেসরে সেট করতে হয়, কিন্তু তা করা হয় না
রানটাইম লাইব্রেরি/স্টার্টআপ কোডের পছন্দকে প্রভাবিত করে।

-মুইন্ডোস
এই বিকল্পটি Cygwin এবং MinGW লক্ষ্যগুলির জন্য উপলব্ধ। এটা নির্দিষ্ট করে যে একটি GUI
PE হেডার সেট করার জন্য লিঙ্কারকে নির্দেশ দিয়ে অ্যাপ্লিকেশন তৈরি করতে হবে
সাবসিস্টেম টাইপ যথাযথভাবে।

-fno-সেট-স্ট্যাক-এক্সিকিউটেবল
এই বিকল্পটি MinGW লক্ষ্যগুলির জন্য উপলব্ধ। এটির জন্য এক্সিকিউটেবল পতাকা নির্দিষ্ট করে
নেস্টেড ফাংশন দ্বারা ব্যবহৃত স্ট্যাক সেট করা হয় না। এটি বাইনারি চালানোর জন্য প্রয়োজনীয়
মাইক্রোসফ্ট উইন্ডোজের কার্নেল মোডে, সেখানে User32 API, যা সেট করতে ব্যবহৃত হয়
এক্সিকিউটেবল সুবিধা, উপলব্ধ নয়।

-fwritable-relocated-rdata
এই বিকল্পটি MinGW এবং Cygwin লক্ষ্যগুলির জন্য উপলব্ধ। এটি নির্দিষ্ট করে যে স্থানান্তরিত-
শুধুমাত্র পঠন বিভাগে ডেটা .data বিভাগে রাখা হয়। এটি বয়স্কদের জন্য প্রয়োজনীয়
রানটাইম ছদ্ম-স্থানান্তরের জন্য .rdata বিভাগের পরিবর্তন সমর্থন করে না।

-এমপিই-এলাইনড-কমন্স
এই বিকল্পটি Cygwin এবং MinGW লক্ষ্যগুলির জন্য উপলব্ধ। এটা উল্লেখ করে যে GNU
PE ফাইল ফরম্যাটে এক্সটেনশন যা COMMON ভেরিয়েবলের সঠিক প্রান্তিককরণের অনুমতি দেয়
কোড তৈরি করার সময় ব্যবহার করা উচিত। এটি ডিফল্টরূপে সক্ষম হয় যদি GCC সনাক্ত করে যে
কনফিগারেশনের সময় পাওয়া টার্গেট অ্যাসেম্বলার বৈশিষ্ট্যটিকে সমর্থন করে।

অধীনে দেখুন i386 এবং x86-64 অপশন সমূহ স্ট্যান্ডার্ড বিকল্পের জন্য।

আইএ-64 অপশন সমূহ

এই হয় -m Intel IA-64 আর্কিটেকচারের জন্য সংজ্ঞায়িত বিকল্পগুলি।

-বিগ-এন্ডিয়ান
একটি বড়-এন্ডিয়ান লক্ষ্যের জন্য কোড তৈরি করুন। এটি HP-UX এর জন্য ডিফল্ট।

- সামান্য-এন্ডিয়ান
একটি সামান্য-এন্ডিয়ান লক্ষ্যের জন্য কোড তৈরি করুন। এটি AIX5 এবং GNU/Linux-এর জন্য ডিফল্ট।

-mgnu- হিসাবে
-mno-gnu-as
GNU অ্যাসেম্বলারের জন্য কোড তৈরি করুন (বা করবেন না)। এটি ডিফল্ট।

-mgnu-Ld
-mno-gnu-ld
GNU লিঙ্কারের জন্য কোড তৈরি করুন (বা করবেন না)। এটি ডিফল্ট।

-মনো-ছবি
এমন কোড তৈরি করুন যা বিশ্বব্যাপী পয়েন্টার রেজিস্টার ব্যবহার করে না। ফলাফল অবস্থান নয়
স্বাধীন কোড, এবং IA-64 ABI লঙ্ঘন করে।

-mvolatile-asm-স্টপ
-mno-অস্থির-এএসএম-স্টপ
উদ্বায়ী asm স্টেটমেন্টের আগে এবং পরে অবিলম্বে একটি স্টপ বিট তৈরি করুন (বা করবেন না)।

-মরেজিস্টার-নাম
-mno-রেজিস্টার-নাম
তৈরি করুন (বা করবেন না) in, এলওসি, এবং বাইরে স্ট্যাকড রেজিস্টারের জন্য নাম নিবন্ধন করুন। এই
অ্যাসেম্বলার আউটপুটকে আরও পঠনযোগ্য করে তুলতে পারে।

-ম্নো-এসডিএটা
-msdata
অপ্টিমাইজেশানগুলি অক্ষম (বা সক্ষম করুন) যা ছোট ডেটা বিভাগ ব্যবহার করে। এই দরকারী হতে পারে
অপ্টিমাইজার বাগগুলির কাছাকাছি কাজ করার জন্য।

-মকনস্ট্যান্ট-জিপি
একটি একক ধ্রুবক গ্লোবাল পয়েন্টার মান ব্যবহার করে এমন কোড তৈরি করুন। এই যখন দরকারী
কার্নেল কোড কম্পাইল করা হচ্ছে।

-মটো-ছবি
স্ব-স্থানান্তরযোগ্য কোড তৈরি করুন। এই থেকেই বোঝা -মকনস্ট্যান্ট-জিপি. এটি দরকারী
ফার্মওয়্যার কোড কম্পাইল করার সময়।

-মিনলাইন-ফ্লোট-ডিভাইড-মিন-লেটেন্সি
ন্যূনতম লেটেন্সি ব্যবহার করে ফ্লোটিং-পয়েন্ট মানের ইনলাইন বিভাজনের জন্য কোড তৈরি করুন
অ্যালগরিদম।

-মিনলাইন-ফ্লোট-ডিভাইড-ম্যাক্স-থ্রুপুট
সর্বাধিক থ্রুপুট ব্যবহার করে ফ্লোটিং-পয়েন্ট মানের ইনলাইন বিভাজনের জন্য কোড তৈরি করুন
অ্যালগরিদম।

-mno-ইনলাইন-ফ্লোট-বিভাজন
ফ্লোটিং-পয়েন্ট মানের বিভাজনের জন্য ইনলাইন কোড তৈরি করবেন না।

-মিনলাইন-ইন-ডিভাইড-মিন-লেটেন্সি
ন্যূনতম লেটেন্সি ব্যবহার করে পূর্ণসংখ্যা মানের ইনলাইন বিভাজনের জন্য কোড তৈরি করুন
অ্যালগরিদম।

-মিনলাইন-ইন-ডিভাইড-সর্বোচ্চ-থ্রুপুট
সর্বাধিক থ্রুপুট ব্যবহার করে পূর্ণসংখ্যা মানের ইনলাইন বিভাজনের জন্য কোড তৈরি করুন
অ্যালগরিদম।

-mno-ইনলাইন-ইন-ডিভাইড
পূর্ণসংখ্যা মানের বিভাজনের জন্য ইনলাইন কোড তৈরি করবেন না।

-মিনলাইন-sqrt-মিন-লেটেন্সি
ন্যূনতম লেটেন্সি অ্যালগরিদম ব্যবহার করে ইনলাইন বর্গমূলের জন্য কোড তৈরি করুন।

-মিনলাইন-স্কার্ট-ম্যাক্স-থ্রুপুট
সর্বাধিক থ্রুপুট অ্যালগরিদম ব্যবহার করে ইনলাইন বর্গমূলের জন্য কোড তৈরি করুন।

-mno-ইনলাইন-sqrt
"sqrt" এর জন্য ইনলাইন কোড তৈরি করবেন না।

-মফিউজড-এমএডিডি
-মনো-ফিউজড-এমএডিডি
কোড তৈরি করুন (না) যা ফিউজড গুন/যোগ বা গুণ/বিয়োগ ব্যবহার করে
নির্দেশাবলী ডিফল্ট এই নির্দেশাবলী ব্যবহার করা হয়.

-mno-dwarf2-asm
-mdwarf2-asm
DWARF 2 লাইন নম্বর ডিবাগিং তথ্যের জন্য অ্যাসেম্বলার কোড তৈরি করবেন না (বা করবেন)।
GNU অ্যাসেম্বলার ব্যবহার না করার সময় এটি কার্যকর হতে পারে।

-মর্লি-স্টপ-বিটস
-mno-আর্লি-স্টপ-বিটস
স্টপ বিটগুলিকে নির্দেশের আগে অবিলম্বে আগে স্থাপন করার অনুমতি দিন
স্টপ বিট ট্রিগার. এটি নির্দেশের সময়সূচী উন্নত করতে পারে, কিন্তু সবসময় তা নয়
তাই করো.

-mfixed- রেঞ্জ =রেজিস্টার-পরিসীমা
প্রদত্ত রেজিস্টার পরিসরকে নির্দিষ্ট রেজিস্টার হিসাবে বিবেচনা করে কোড তৈরি করুন। একটি নির্দিষ্ট রেজিস্টার
একটি যা রেজিস্টার বরাদ্দকারী ব্যবহার করতে পারে না। কার্নেল কম্পাইল করার সময় এটি দরকারী
কোড একটি রেজিস্টার পরিসর একটি ড্যাশ দ্বারা পৃথক দুটি রেজিস্টার হিসাবে নির্দিষ্ট করা হয়। একাধিক
রেজিস্টার রেঞ্জ একটি কমা দ্বারা আলাদা করে নির্দিষ্ট করা যেতে পারে।

-mtls-আকার=tls-আকার
অবিলম্বে TLS অফসেটগুলির বিট আকার নির্দিষ্ট করুন৷ বৈধ মান হল 14, 22 এবং 64৷

-mtune =cpu-টাইপ
একটি নির্দিষ্ট CPU-র জন্য নির্দেশের সময়সূচী টিউন করুন, বৈধ মানগুলি ইটানিয়াম,
itanium1, করুণা, itanium2, এবং ম্যাকিনলি.

-milp32
-mlp64
একটি 32-বিট বা 64-বিট পরিবেশের জন্য কোড তৈরি করুন। 32-বিট পরিবেশ int সেট করে,
দীর্ঘ এবং 32 বিট পয়েন্টার. 64-বিট পরিবেশ 32 বিট এবং দীর্ঘ এবং int সেট করে
64 বিট পয়েন্টার. এগুলো HP-UX নির্দিষ্ট পতাকা।

-mno-নির্ধারিত-br-ডেটা-স্পেক
-msched-br-ডেটা-স্পেক
পুনরায় লোড করার আগে ডেটা অনুমানমূলক সময়সূচী (ডিস/এন) সক্ষম। এই প্রজন্মের ফলাফল
"ld.a" নির্দেশাবলী এবং সংশ্লিষ্ট চেক নির্দেশাবলী ("ld.c" / "chk.a")। দ্য
ডিফল্ট হল 'অক্ষম'।

-msched- আর-ডেটা-স্পেক
-mno-sched-ar-data-spec
পুনরায় লোড করার পরে (En/Dis) সক্ষম ডেটা অনুমানমূলক সময়সূচী। এই প্রজন্মের ফলাফল
"ld.a" নির্দেশাবলী এবং সংশ্লিষ্ট চেক নির্দেশাবলী ("ld.c" / "chk.a")। দ্য
ডিফল্ট হল 'সক্ষম'।

-mno-নির্ধারিত-নিয়ন্ত্রণ-বিশেষ
-msched-নিয়ন্ত্রণ-বিশেষ
(ডিস/এন) সক্ষম নিয়ন্ত্রণ অনুমানমূলক সময়সূচী। এই বৈশিষ্ট্য শুধুমাত্র সময় উপলব্ধ
অঞ্চল নির্ধারণ (অর্থাৎ পুনরায় লোড করার আগে)। এর ফলে "ld.s" তৈরি হয়
নির্দেশাবলী এবং সংশ্লিষ্ট চেক নির্দেশাবলী "chk.s"। ডিফল্ট হয়
'অক্ষম'।

-msched-Br-ইন-ডেটা-স্পেক
-mno-নির্ধারিত-br-ইন-ডেটা-স্পেক
তথ্যের উপর নির্ভরশীল নির্দেশাবলীর (En/Dis) সক্ষম অনুমানমূলক সময়সূচী
পুনরায় লোড করার আগে অনুমানমূলক লোড। এই শুধুমাত্র সঙ্গে কার্যকর -msched-br-ডেটা-স্পেক
সক্রিয় ডিফল্ট হল 'সক্রিয়'।

-msched-ar-ইন-ডেটা-স্পেক
-mno-sched-ar-in-data-spec
তথ্যের উপর নির্ভরশীল নির্দেশাবলীর (En/Dis) সক্ষম অনুমানমূলক সময়সূচী
পুনরায় লোড করার পরে অনুমানমূলক লোড। এই শুধুমাত্র সঙ্গে কার্যকর -msched- আর-ডেটা-স্পেক
সক্রিয় ডিফল্ট হল 'সক্রিয়'।

-এমএসচেড-ইন-কন্ট্রোল-স্পেক
-mno-নির্ধারিত-ইন-কন্ট্রোল-স্পেক
(En/Dis)এর উপর নির্ভরশীল নির্দেশাবলীর অনুমানমূলক সময়সূচী সক্ষম
অনুমানমূলক লোড নিয়ন্ত্রণ করুন। এই শুধুমাত্র সঙ্গে কার্যকর -msched-নিয়ন্ত্রণ-বিশেষ সক্ষম করা হয়েছে।
ডিফল্ট হল 'সক্রিয়'।

-mno-sched-prefer-non-data-spec-insns
-msched-prefer- নন-ডেটা-স্পেক-ইনস
যদি সক্ষম করা থাকে, ডেটা-অনুমানমূলক নির্দেশাবলী শুধুমাত্র যদি না থাকে তবেই সময়সূচীর জন্য বেছে নেওয়া হয়৷
এই মুহূর্তে অন্যান্য পছন্দ। এই তথ্য অনুমান ব্যবহার অনেক বেশি করে তোলে
রক্ষণশীল ডিফল্ট হল 'অক্ষম'।

-mno-sched-prefer-non-control-spec-insns
-msched-prefer-non- নিয়ন্ত্রণ-স্পেক-ইনসেনস
যদি সক্রিয় থাকে, নিয়ন্ত্রণ-অনুমানমূলক নির্দেশাবলী শুধুমাত্র যদি থাকে তবেই সময়সূচীর জন্য বেছে নেওয়া হয়
এই মুহূর্তে অন্য কোন পছন্দ নেই। এটি নিয়ন্ত্রণের ব্যবহারকে অনেক বেশি অনুমান করে তোলে
আরো রক্ষণশীল। ডিফল্ট হল 'অক্ষম'।

-mno-নির্ধারিত-গণনা-বিশেষ-ইন-গুরুত্বপূর্ণ-পথ
-msched-গণনা-বিশেষ-ইন-গুরুত্বপূর্ণ-পথ
সক্ষম হলে, অনুমান নির্ভর নির্ভরতা গণনার সময় বিবেচনা করা হয়
নির্দেশাবলী অগ্রাধিকার. এতে করে জল্পনা-কল্পনার ব্যবহার একটু বেশি
রক্ষণশীল ডিফল্ট হল 'অক্ষম'।

-msched-pec-Ldc
একটি সাধারণ ডেটা স্পেকুলেশন চেক ব্যবহার করুন। এই বিকল্পটি ডিফল্টরূপে হয়।

-msched-control-spec-ldc
নিয়ন্ত্রণ অনুমান জন্য একটি সহজ চেক ব্যবহার করুন. এই বিকল্পটি ডিফল্টরূপে হয়।

-msched-স্টপ-বিট-পরে-প্রতিটি-চক্র
সময়সূচী করার সময় প্রতিটি চক্রের পরে একটি স্টপ বিট রাখুন। এই বিকল্পটি ডিফল্টরূপে হয়।

-msched-fp-mem-deps-শূন্য-খরচ
অনুমান করুন যে ফ্লোটিং-পয়েন্ট স্টোর এবং লোডগুলি যখন সংঘর্ষের কারণ হতে পারে না
একই নির্দেশনা গ্রুপে রাখা হয়েছে। এই অপশনটি পূর্বনির্ধারণ অনুসারে নিষ্ক্রিয়।

-msel-নির্ধারিত-না-চেক-কন্ট্রোল-স্পেক
নির্বাচনী সময়সূচীতে নিয়ন্ত্রণ অনুমানের জন্য চেক তৈরি করুন। এই পতাকা
ডিফল্টরূপে নিষ্ক্রিয়।

-msched-max- মেমরি-ইনসএনএস =সর্বোচ্চ-ইনস
প্রতি নির্দেশ গোষ্ঠীর মেমরি insns সংখ্যার উপর সীমা, কম অগ্রাধিকার প্রদান
পরবর্তী মেমরি insns একই নির্দেশ গ্রুপে সময়সূচী করার চেষ্টা করছে।
ক্যাশে ব্যাঙ্ক দ্বন্দ্ব প্রতিরোধ করতে প্রায়শই দরকারী। ডিফল্ট মান হল 1।

-msched-max- মেমরি-ইনসনস-হার্ড-সীমাবদ্ধ
দ্বারা নির্দিষ্ট সীমা তৈরি করে msched-max-memory-insns একটি কঠিন সীমা, আরো অনুমোদন না
একটি নির্দেশ গ্রুপে সেই সংখ্যার চেয়ে। অন্যথায়, সীমা "নরম" অর্থ
যে সীমা পৌঁছে গেলে অ-মেমরি অপারেশন পছন্দ করা হয়, কিন্তু মেমরি
অপারেশন এখনও নির্ধারিত হতে পারে.

LM32 অপশন সমূহ

এইগুলো -m LatticeMico32 আর্কিটেকচারের জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-mbarrel-shift-সক্ষম
ব্যারেল-শিফ্ট নির্দেশাবলী সক্ষম করুন।

-mdivide-সক্ষম
বিভাজন এবং মডুলাস নির্দেশাবলী সক্ষম করুন।

-মিলিপ্লাই-সক্রিয়
গুন নির্দেশাবলী সক্ষম করুন.

-msign-এক্সটেন্ড-সক্ষম
সাইন প্রসারিত নির্দেশাবলী সক্ষম করুন.

-মিউজার-সক্ষম
ব্যবহারকারী-সংজ্ঞায়িত নির্দেশাবলী সক্ষম করুন।

M32C অপশন সমূহ

-mcpu =নাম
CPU সিলেক্ট করুন যার জন্য কোড তৈরি করা হয়েছে। নাম একটি হতে পারে r8c R8C/Tiny-এর জন্য
সিরিজ, m16c M16C (/60 পর্যন্ত) সিরিজের জন্য, m32cm M16C/80 সিরিজের জন্য, বা m32c
M32C/80 সিরিজের জন্য।

-msim
নির্দিষ্ট করে যে প্রোগ্রামটি সিমুলেটরে চালানো হবে। এটি একটি বিকল্প কারণ
রানটাইম লাইব্রেরি লিঙ্ক করতে হবে যেখানে সমর্থন করে, উদাহরণস্বরূপ, I/O ফাইল। তুমি অবশ্যই না
বাস্তব হার্ডওয়্যারে চালানো হবে এমন প্রোগ্রাম তৈরি করার সময় এই বিকল্পটি ব্যবহার করুন; তোমাকে অবশ্যই
I/O ফাংশনগুলির জন্য আপনার নিজস্ব রানটাইম লাইব্রেরি প্রদান করুন।

-মেমরেগস=সংখ্যা
কোড তৈরির সময় GCC ব্যবহার করে মেমরি-ভিত্তিক সিউডো-রেজিস্টারের সংখ্যা নির্দিষ্ট করে।
এই ছদ্ম-রেজিস্টারগুলি বাস্তব রেজিস্টারের মতো ব্যবহার করা হয়, তাই এর মধ্যে একটি ট্রেডঅফ রয়েছে
উপলব্ধ রেজিস্টারে কোড ফিট করার GCC এর ক্ষমতা, এবং এর কার্যকারিতা পেনাল্টি
রেজিস্টারের পরিবর্তে মেমরি ব্যবহার করে। নোট করুন যে একটি প্রোগ্রামের সমস্ত মডিউল হতে হবে
এই বিকল্পের জন্য একই মান দিয়ে কম্পাইল করা হয়েছে। যে কারণে, আপনি এটি ব্যবহার করা উচিত নয়
GCC এর ডিফল্ট রানটাইম লাইব্রেরির সাথে বিকল্প।

এম 32 আর/ডি অপশন সমূহ

এইগুলো -m Renesas M32R/D আর্কিটেকচারের জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-m32r2
M32R/2 এর জন্য কোড তৈরি করুন।

-m32rx
M32R/X এর জন্য কোড তৈরি করুন।

-m32r
M32R-এর জন্য কোড তৈরি করুন। এটি ডিফল্ট।

-মডেল=ছোট
অনুমান করুন যে সমস্ত বস্তু 16MB মেমরির নীচে বাস করে (যাতে তাদের ঠিকানা হতে পারে
"ld24" নির্দেশের সাথে লোড করা হয়েছে), এবং অনুমান করুন যে সমস্ত সাবরুটিন এর সাথে পৌঁছানো যায়
"bl" নির্দেশ। এটি ডিফল্ট।

একটি নির্দিষ্ট বস্তুর ঠিকানাযোগ্যতা "মডেল" বৈশিষ্ট্যের সাথে সেট করা যেতে পারে।

-মডেল=মাঝারি
অবজেক্টগুলি 32-বিট ঠিকানা স্থানের যে কোনও জায়গায় থাকতে পারে (কম্পাইলার তৈরি করে
"seth/add3" নির্দেশাবলী তাদের ঠিকানাগুলি লোড করার জন্য), এবং অনুমান করুন যে সমস্ত সাবরুটিন রয়েছে৷
"bl" নির্দেশের সাথে পৌঁছানো যায়।

-মডেল = বড়
অবজেক্টগুলি 32-বিট ঠিকানা স্থানের যে কোনও জায়গায় থাকতে পারে (কম্পাইলার তৈরি করে
"seth/add3" নির্দেশাবলী তাদের ঠিকানাগুলি লোড করার জন্য), এবং অনুমান করুন সাবরুটিনগুলি নাও হতে পারে
"bl" নির্দেশের সাথে পৌঁছানো যায় (কম্পাইলারটি অনেক ধীর গতিতে তৈরি করে
"seth/add3/jl" নির্দেশের ক্রম)।

-msdata=কোনটি নয়
ছোট ডেটা এলাকার ব্যবহার অক্ষম করুন। ভেরিয়েবলের একটিতে রাখা হয় .ডেটা, .বিএসএস, বা
.rodata (যদি না "বিভাগ" বৈশিষ্ট্য নির্দিষ্ট করা হয়)। এটি ডিফল্ট।

ছোট ডেটা এলাকা বিভাগ নিয়ে গঠিত .sdata এবং .sbss. বস্তু স্পষ্টভাবে হতে পারে
এই বিভাগগুলির মধ্যে একটি ব্যবহার করে "বিভাগ" বৈশিষ্ট্য সহ ছোট ডেটা এলাকায় রাখুন।

-msdata=sdata
ছোট ডাটা এলাকায় ছোট গ্লোবাল এবং স্ট্যাটিক ডেটা রাখুন, কিন্তু বিশেষ তৈরি করবেন না
তাদের রেফারেন্স করার জন্য কোড।

-msdata=use
ছোট ডেটা এলাকায় ছোট গ্লোবাল এবং স্ট্যাটিক ডেটা রাখুন এবং বিশেষ তৈরি করুন
তাদের উল্লেখ করার জন্য নির্দেশাবলী।

-G NUM
গ্লোবাল এবং স্ট্যাটিক অবজেক্ট এর থেকে কম বা সমান রাখুন NUM বাইট ছোট তথ্য বা
সাধারণ ডেটা বা BSS বিভাগগুলির পরিবর্তে BSS বিভাগ। এর ডিফল্ট মান NUM is
8. দ্য -msdata বিকল্প একটি সেট করা আবশ্যক sdata or ব্যবহার এই বিকল্প কোন আছে জন্য
প্রভাব।

সব মডিউল একই সঙ্গে কম্পাইল করা উচিত -G NUM মান বিভিন্ন সঙ্গে কম্পাইলিং
এর মান NUM কাজ করতে পারে বা নাও পারে; যদি এটি না করে লিঙ্কার একটি ত্রুটি দেয়
বার্তা---ভুল কোড তৈরি হয় না।

-এমডিবাগ
কম্পাইলারে M32R-নির্দিষ্ট কোড তৈরি করে কিছু পরিসংখ্যান প্রদর্শন করে যা সাহায্য করতে পারে
ডিবাগিং প্রোগ্রামে।

ম্যালাইন-লুপস
একটি 32-বাইটের সীমানায় সমস্ত লুপ সারিবদ্ধ করুন।

-mno- align-loops
লুপগুলির জন্য একটি 32-বাইট প্রান্তিককরণ প্রয়োগ করবেন না। এটি ডিফল্ট।

-মিস্যু-রেট=সংখ্যা
সমস্যা সংখ্যা প্রতি চক্রের নির্দেশাবলী। সংখ্যা শুধুমাত্র 1 বা 2 হতে পারে।

-মব্র্যাঞ্চ-কস্ট =সংখ্যা
সংখ্যা শুধুমাত্র 1 বা 2 হতে পারে। যদি এটি 1 হয় তবে শর্তসাপেক্ষের চেয়ে শাখা পছন্দ করা হয়
কোড, যদি এটি 2 হয়, তাহলে বিপরীতটি প্রযোজ্য।

-mflush- ফাঁদ =সংখ্যা
ক্যাশে ফ্লাশ করার জন্য ব্যবহার করার জন্য ফাঁদ নম্বর নির্দিষ্ট করে। ডিফল্ট হল 12. বৈধ৷
সংখ্যাগুলি 0 থেকে 15 এর মধ্যে অন্তর্ভুক্ত।

-mno-ফ্লাশ-ট্র্যাপ
নির্দিষ্ট করে যে একটি ফাঁদ ব্যবহার করে ক্যাশে ফ্লাশ করা যাবে না।

-mflush-func =নাম
ক্যাশে ফ্লাশ করতে কল করার জন্য অপারেটিং সিস্টেম ফাংশনের নাম উল্লেখ করে। দ্য
ডিফল্ট হয় _ফ্লাশ_ক্যাশে, কিন্তু একটি ফাংশন কল শুধুমাত্র ব্যবহার করা হয় যদি একটি ফাঁদ উপলব্ধ না হয়।

-mno-flush-func
নির্দেশ করে যে ক্যাশে ফ্লাশ করার জন্য কোন OS ফাংশন নেই।

M680x0 অপশন সমূহ

এই হয় -m M680x0 এবং ColdFire প্রসেসরের জন্য সংজ্ঞায়িত বিকল্পগুলি। ডিফল্ট সেটিংস
কম্পাইলার কনফিগার করার সময় কোন আর্কিটেকচার নির্বাচন করা হয়েছিল তার উপর নির্ভর করে; ডিফল্ট
সবচেয়ে সাধারণ পছন্দ জন্য নীচে দেওয়া হয়.

-মার্চ =খিলান
একটি নির্দিষ্ট M680x0 বা ColdFire নির্দেশনা সেট আর্কিটেকচারের জন্য কোড তৈরি করুন।
এর অনুমোদনযোগ্য মান খিলান M680x0 আর্কিটেকচারের জন্য হল: 68000, 68010, 68020, 68030,
68040, 68060 এবং cpu32. ColdFire আর্কিটেকচার ফ্রিস্কেল এর অনুযায়ী নির্বাচন করা হয়
ISA শ্রেণীবিভাগ এবং অনুমোদিত মান হল: ইসা, isaaplus, ইসব এবং ইস্যাক.

GCC একটি ম্যাক্রো সংজ্ঞায়িত করে __mcfখিলান__ যখনই এটি একটি কোল্ডফায়ার লক্ষ্যের জন্য কোড তৈরি করে।
সার্জারির খিলান এই ম্যাক্রো মধ্যে একটি -মার্চ উপরে দেওয়া যুক্তি।

একসাথে ব্যবহার করলে, -মার্চ এবং -mtune কোড নির্বাচন করুন যা অনুরূপ একটি পরিবারে চলে
প্রসেসর কিন্তু এটি একটি নির্দিষ্ট মাইক্রোআর্কিটেকচারের জন্য অপ্টিমাইজ করা হয়।

-mcpu =সিপিইউ
একটি নির্দিষ্ট M680x0 বা ColdFire প্রসেসরের জন্য কোড তৈরি করুন। M680x0 সিপিইউগুলি হল:
68000, 68010, 68020, 68030, 68040, 68060, 68302, 68332 এবং cpu32. কোল্ডফায়ার সিপিইউs
নীচের সারণী দ্বারা দেওয়া হয়েছে, যা CPU-কে পরিবারে শ্রেণীবদ্ধ করে:

পরিবার : -এমসিপিইউ আর্গুমেন্ট
51 : 51 51ac 51ag 51 সিএন 51 এম 51জে 51jf 51jg 51জেএম 51mm 51qe 51কিমি
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

-mcpu =সিপিইউ ওভাররাইড -মার্চ =খিলান if খিলান সঙ্গে সামঞ্জস্যপূর্ণ সিপিইউ. এর অন্যান্য সংমিশ্রণ
-এমসিপিইউ এবং -মার্চ প্রত্যাখ্যান করা হয়।

GCC ম্যাক্রো সংজ্ঞায়িত করে __mcf_cpu_সিপিইউ যখন কোল্ডফায়ার লক্ষ্যবস্তু সিপিইউ নির্বাচিত. এটাও
সংজ্ঞায়িত __এমসিএফ_পরিবার_পরিবার, যেখানে এর মান পরিবার উপরের টেবিল দ্বারা দেওয়া হয়.

-mtune =সুর
দ্বারা নির্ধারিত সীমাবদ্ধতার মধ্যে একটি নির্দিষ্ট মাইক্রোআর্কিটেকচারের জন্য কোড টিউন করুন -মার্চ
এবং -এমসিপিইউ. M680x0 মাইক্রোআর্কিটেকচার হল: 68000, 68010, 68020, 68030, 68040,
68060 এবং cpu32. কোল্ডফায়ার মাইক্রোআর্কিটেকচারগুলি হল: cfv1, cfv2, cfv3, cfv4 এবং
cfv4e.

আপনি ব্যবহার করতে পারেন -mtune=68020-40 কোডের জন্য যা 68020 এ তুলনামূলকভাবে ভাল চালানো দরকার,
68030 এবং 68040 টার্গেট। -mtune=68020-60 অনুরূপ কিন্তু অন্তর্ভুক্ত 68060 লক্ষ্য হিসাবে
আমরা হব. এই দুটি বিকল্প হিসাবে একই টিউনিং সিদ্ধান্ত নির্বাচন করুন -M68020-40 এবং -M68020-60
যথাক্রমে.

GCC ম্যাক্রো সংজ্ঞায়িত করে __এমসিখিলান এবং __এমসিখিলান__ 680x0 আর্কিটেকচারের জন্য টিউন করার সময়
খিলান. এটাও সংজ্ঞায়িত করে mcখিলান যদি না হয় -আনসি অথবা একটি নন-জিএনইউ -স্টেড বিকল্প ব্যবহার করা হয়।
যদি GCC বিভিন্ন স্থাপত্যের জন্য টিউনিং করে, যেমন দ্বারা নির্বাচিত -mtune=68020-40 or
-mtune=68020-60, এটি পরিসরের প্রতিটি আর্কিটেকচারের জন্য ম্যাক্রো সংজ্ঞায়িত করে।

GCC ম্যাক্রোকেও সংজ্ঞায়িত করে __মিতাড়াতাড়ি__ কোল্ডফায়ার মাইক্রোআর্কিটেকচারের জন্য টিউন করার সময়
তাড়াতাড়ি, কোথায় তাড়াতাড়ি উপরে দেওয়া আর্গুমেন্ট এক.

-m68000
-mc68000
একটি 68000 এর জন্য আউটপুট তৈরি করুন। এটি ডিফল্ট যখন কম্পাইলার কনফিগার করা হয়
68000-ভিত্তিক সিস্টেম। এর সমতুল্য -মার্চ=68000.

68000 সহ একটি 000 বা EC68008 কোর সহ মাইক্রোকন্ট্রোলারের জন্য এই বিকল্পটি ব্যবহার করুন,
68302, 68306, 68307, 68322, 68328 এবং 68356।

-m68010
একটি 68010 এর জন্য আউটপুট তৈরি করুন। এটি ডিফল্ট যখন কম্পাইলার কনফিগার করা হয়
68010-ভিত্তিক সিস্টেম। এর সমতুল্য -মার্চ=68010.

-m68020
-mc68020
একটি 68020 এর জন্য আউটপুট তৈরি করুন। এটি ডিফল্ট যখন কম্পাইলার কনফিগার করা হয়
68020-ভিত্তিক সিস্টেম। এর সমতুল্য -মার্চ=68020.

-m68030
একটি 68030 এর জন্য আউটপুট তৈরি করুন। এটি ডিফল্ট যখন কম্পাইলার কনফিগার করা হয়
68030-ভিত্তিক সিস্টেম। এর সমতুল্য -মার্চ=68030.

-m68040
একটি 68040 এর জন্য আউটপুট তৈরি করুন। এটি ডিফল্ট যখন কম্পাইলার কনফিগার করা হয়
68040-ভিত্তিক সিস্টেম। এর সমতুল্য -মার্চ=68040.

এই বিকল্পটি 68881/68882 নির্দেশাবলীর ব্যবহারকে বাধা দেয় যা দ্বারা অনুকরণ করতে হবে
68040-এ সফ্টওয়্যার। যদি আপনার 68040-এ অনুকরণ করার জন্য কোড না থাকে তবে এই বিকল্পটি ব্যবহার করুন
সেই নির্দেশাবলী।

-m68060
একটি 68060 এর জন্য আউটপুট তৈরি করুন। এটি ডিফল্ট যখন কম্পাইলার কনফিগার করা হয়
68060-ভিত্তিক সিস্টেম। এর সমতুল্য -মার্চ=68060.

এই বিকল্পটি 68020 এবং 68881/68882 নির্দেশাবলীর ব্যবহারকে বাধা দেয় যা হতে হবে
68060-এ সফ্টওয়্যার দ্বারা অনুকরণ করা হয়েছে। আপনার 68060-এর কোড না থাকলে এই বিকল্পটি ব্যবহার করুন
সেই নির্দেশাবলী অনুকরণ করতে।

-mcpu32
একটি CPU32 এর জন্য আউটপুট তৈরি করুন। এটি ডিফল্ট যখন কম্পাইলার কনফিগার করা হয়
CPU32-ভিত্তিক সিস্টেম। এর সমতুল্য -march=cpu32.

32 সহ একটি CPU32 বা CPU68330+ কোর সহ মাইক্রোকন্ট্রোলারের জন্য এই বিকল্পটি ব্যবহার করুন,
68331, 68332, 68333, 68334, 68336, 68340, 68341, 68349 এবং 68360।

-m5200
একটি 520X ColdFire CPU-এর জন্য আউটপুট তৈরি করুন। এটি ডিফল্ট যখন কম্পাইলার হয়
520X-ভিত্তিক সিস্টেমের জন্য কনফিগার করা হয়েছে। এর সমতুল্য -mcpu=5206, এবং এখন হয়
যে বিকল্পের পক্ষে অবমূল্যায়ন.

MCF5200, MCF5202 সহ একটি 5203 কোর সহ মাইক্রোকন্ট্রোলারের জন্য এই বিকল্পটি ব্যবহার করুন।
MCF5204 এবং MCF5206।

-m5206e
একটি 5206e ColdFire CPU-এর জন্য আউটপুট তৈরি করুন। বিকল্পটি এখন এর পক্ষে অবমূল্যায়িত হয়েছে
সমতুল্য -mcpu=5206e.

-m528x
ColdFire 528X পরিবারের একজন সদস্যের জন্য আউটপুট তৈরি করুন। বিকল্প এখন
সমতুল্যের পক্ষে বঞ্চিত -mcpu=528x.

-m5307
একটি ColdFire 5307 CPU-এর জন্য আউটপুট তৈরি করুন। বিকল্পটি এখন এর পক্ষে অবমূল্যায়িত হয়েছে
সমতুল্য -mcpu=5307.

-m5407
একটি ColdFire 5407 CPU-এর জন্য আউটপুট তৈরি করুন। বিকল্পটি এখন এর পক্ষে অবমূল্যায়িত হয়েছে
সমতুল্য -mcpu=5407.

-mcfv4e
একটি ColdFire V4e পরিবারের CPU (যেমন 547x/548x) এর জন্য আউটপুট তৈরি করুন। এই ব্যবহার অন্তর্ভুক্ত
হার্ডওয়্যার ফ্লোটিং-পয়েন্ট নির্দেশাবলী। বিকল্পটি সমতুল্য -mcpu=547x, এবং হয়
এখন সেই বিকল্পের পক্ষে অবমূল্যায়ন করা হয়েছে।

-M68020-40
একটি 68040 এর জন্য আউটপুট তৈরি করুন, কোনো নতুন নির্দেশনা ব্যবহার না করে। এই ফলাফল
কোডে যা 68020/68881 বা একটি 68030 বা একটিতে তুলনামূলকভাবে দক্ষতার সাথে চলতে পারে
68040. উত্পন্ন কোড 68881 নির্দেশাবলী ব্যবহার করে যা অনুকরণ করা হয়
68040.

বিকল্পটি সমতুল্য -মার্চ=68020 -mtune=68020-40.

-M68020-60
একটি 68060 এর জন্য আউটপুট তৈরি করুন, কোনো নতুন নির্দেশনা ব্যবহার না করে। এই ফলাফল
কোডে যা 68020/68881 বা একটি 68030 বা একটিতে তুলনামূলকভাবে দক্ষতার সাথে চলতে পারে
68040. উত্পন্ন কোড 68881 নির্দেশাবলী ব্যবহার করে যা অনুকরণ করা হয়
68060.

বিকল্পটি সমতুল্য -মার্চ=68020 -mtune=68020-60.

-মহার্ড-ফ্লোট
-m68881
ফ্লোটিং-পয়েন্ট নির্দেশাবলী তৈরি করুন। এটি 68020 এবং তার বেশির জন্য ডিফল্ট, এবং
কোল্ডফায়ার ডিভাইসগুলির জন্য যেগুলির একটি FPU আছে৷ এটি ম্যাক্রো সংজ্ঞায়িত করে __ আছে_68881__ M680x0 এ
লক্ষ্য এবং __mcffpu__ কোল্ডফায়ার লক্ষ্যবস্তুতে।

-মেমসফট-ফ্লোট
ভাসমান-বিন্দু নির্দেশাবলী তৈরি করবেন না; পরিবর্তে লাইব্রেরি কল ব্যবহার করুন। এই হল
68000, 68010, এবং 68832 টার্গেটের জন্য ডিফল্ট। এটি ColdFire-এর জন্যও ডিফল্ট
কোন FPU নেই ডিভাইস.

-mdiv
-mno-div
কোল্ডফায়ার হার্ডওয়্যার বিভাজন এবং অবশিষ্ট নির্দেশাবলী জেনারেট করুন (জেনারেট করবেন না)। যদি
-মার্চ ছাড়া ব্যবহার করা হয় -এমসিপিইউ, ColdFire আর্কিটেকচারের জন্য ডিফল্ট "চালু" এবং "বন্ধ"
M680x0 আর্কিটেকচারের জন্য। অন্যথায়, লক্ষ্য CPU থেকে ডিফল্ট নেওয়া হয় (হয়
ডিফল্ট CPU, অথবা দ্বারা নির্দিষ্ট করা একটি -এমসিপিইউ) উদাহরণস্বরূপ, ডিফল্ট "বন্ধ"
উন্নত -mcpu=5206 এবং "চালু" এর জন্য -mcpu=5206e.

GCC ম্যাক্রো সংজ্ঞায়িত করে __mcfhwdiv__ যখন এই বিকল্পটি সক্রিয় করা হয়।

-mshort
টাইপ "int" বিবেচনা করুন 16 বিট প্রশস্ত হতে, যেমন "শর্ট int"। উপরন্তু, পরামিতি
স্ট্যাকের উপর পাস করা একটি 16-বিট সীমারেখার সাথে সারিবদ্ধ করা হয় এমনকি লক্ষ্যবস্তুতে যার API
32-বিটে পদোন্নতি বাধ্যতামূলক করে।

-mno-ছোট
"int" টাইপটিকে 16 বিট প্রশস্ত হিসাবে বিবেচনা করবেন না। এটি ডিফল্ট।

-মনোবিটফিল্ড
-mno-বিটফিল্ড
বিট-ক্ষেত্র নির্দেশাবলী ব্যবহার করবেন না। দ্য -m68000, -mcpu32 এবং -m5200 বিকল্পগুলি বোঝায়
-মনোবিটফিল্ড.

-এমবিটফিল্ড
বিট-ক্ষেত্র নির্দেশাবলী ব্যবহার করুন. দ্য -m68020 বিকল্প বোঝায় -এমবিটফিল্ড. এই
আপনি যদি একটি 68020 এর জন্য ডিজাইন করা একটি কনফিগারেশন ব্যবহার করেন তাহলে ডিফল্ট।

-এমআরটিডি
একটি ভিন্ন ফাংশন-কলিং কনভেনশন ব্যবহার করুন, যে ফাংশনগুলি একটি নির্দিষ্ট করে
আর্গুমেন্টের সংখ্যা "rtd" নির্দেশের সাথে ফিরে আসে, যা তাদের আর্গুমেন্ট পপ করে
ফিরে আসার সময় এটি কলারের একটি নির্দেশ সংরক্ষণ করে যেহেতু এর কোন প্রয়োজন নেই৷
সেখানে যুক্তি পপ.

এই কলিং কনভেনশনটি সাধারণত ইউনিক্সে ব্যবহৃত একটির সাথে বেমানান, তাই আপনি
ইউনিক্স কম্পাইলারের সাথে সংকলিত লাইব্রেরি কল করার প্রয়োজন হলে এটি ব্যবহার করতে পারবেন না।

এছাড়াও, ভেরিয়েবল গ্রহণকারী সমস্ত ফাংশনের জন্য আপনাকে অবশ্যই ফাংশন প্রোটোটাইপ প্রদান করতে হবে
আর্গুমেন্টের সংখ্যা ("printf" সহ); অন্যথায় এর জন্য ভুল কোড তৈরি করা হয়
যারা ফাংশন কল.

উপরন্তু, আপনি যদি অনেকগুলি সহ একটি ফাংশন কল করেন তবে গুরুতরভাবে ভুল কোড ফলাফল
যুক্তি. (সাধারণত, অতিরিক্ত যুক্তি নিরীহভাবে উপেক্ষা করা হয়।)

"rtd" নির্দেশটি 68010, 68020, 68030, 68040, 68060 এবং CPU32 দ্বারা সমর্থিত
প্রসেসর, কিন্তু 68000 বা 5200 দ্বারা নয়।

-mno-rtd
দ্বারা নির্বাচিত কলিং কনভেনশন ব্যবহার করবেন না -এমআরটিডি. এটি ডিফল্ট।

-ম্যালিগ-ইন
-mno-align-int
GCC "int", "লং", "লং লং", "ফ্লোট", "ডবল", এবং "লং" সারিবদ্ধ কিনা তা নিয়ন্ত্রণ করুন
একটি 32-বিট সীমানায় ডবল" ভেরিয়েবল (-ম্যালিগ-ইন) বা একটি 16-বিট সীমানা
(-mno-align-int) 32-বিট সীমানায় ভেরিয়েবল সারিবদ্ধ করা কোড তৈরি করে যা চলে
আরও মেমরির খরচে 32-বিট বাস সহ প্রসেসরগুলিতে কিছুটা দ্রুত।

সতর্কতা: আপনি যদি ব্যবহার -ম্যালিগ-ইন স্যুইচ, GCC উপরে থাকা কাঠামোগুলিকে সারিবদ্ধ করে
সর্বাধিক প্রকাশিত অ্যাপ্লিকেশন বাইনারি ইন্টারফেস স্পেসিফিকেশনের চেয়ে ভিন্ন প্রকার
m68k.

-এমপিক্রেল
একটি গ্লোবাল ব্যবহার না করে সরাসরি 68000 এর পিসি-রিলেটিভ অ্যাড্রেসিং মোড ব্যবহার করুন
অফসেট টেবিল। বর্তমানে, এই বিকল্পটি বোঝায় -fpic, সর্বাধিক একটি 16-বিট অফসেট অনুমতি দেয়
পিসি-আপেক্ষিক ঠিকানার জন্য। -fpic বর্তমানে এর সাথে সমর্থিত নয় -এমপিক্রেল, যদিও
এটি 68020 এবং উচ্চতর প্রসেসরের জন্য সমর্থিত হতে পারে।

-mno-কঠোর-সারিবদ্ধ
-mstrict-সারিবদ্ধ
অনুমান করবেন না যে আনলাইনড মেমরি রেফারেন্স সিস্টেম দ্বারা পরিচালিত হয়।

-msep-ডেটা
কোড তৈরি করুন যা ডেটা সেগমেন্টকে মেমরির একটি ভিন্ন এলাকায় অবস্থিত করার অনুমতি দেয়
পাঠ্য বিভাগ থেকে। এটি ছাড়া পরিবেশে কার্যকর করার অনুমতি দেয়
ভার্চুয়াল মেমরি ব্যবস্থাপনা। এই বিকল্পটি বোঝায় -fpic.

-mno-সেপ-ডেটা
কোড তৈরি করুন যা অনুমান করে যে ডেটা বিভাগ পাঠ্য বিভাগকে অনুসরণ করে। এই
ডিফল্ট.

-মিড-শেয়ারড-লাইব্রেরি
লাইব্রেরি আইডি পদ্ধতির মাধ্যমে ভাগ করা লাইব্রেরি সমর্থন করে এমন কোড তৈরি করুন। এই অনুমতি দেয়
ভার্চুয়াল মেমরি ছাড়া পরিবেশে এক্সিকিউট-ইন-প্লেস এবং শেয়ার্ড লাইব্রেরির জন্য
ব্যবস্থাপনা এই বিকল্পটি বোঝায় -fpic.

-mno-আইডি-শেয়ারড-লাইব্রেরি
এমন কোড তৈরি করুন যা আইডি-ভিত্তিক ভাগ করা লাইব্রেরি ব্যবহার করা হচ্ছে বলে ধরে না। এই
ডিফল্ট.

-মশার্ড-লাইব্রেরি-আইডি = এন
আইডি-ভিত্তিক শেয়ার্ড লাইব্রেরির আইডেন্টিফিকেশন নম্বরটি কম্পাইল করা হচ্ছে।
0 এর মান উল্লেখ করলে আরো কমপ্যাক্ট কোড তৈরি হয়; অন্যান্য মান বাহিনী নির্দিষ্ট করা
বর্তমান লাইব্রেরিতে সেই সংখ্যার বরাদ্দ, কিন্তু আর স্থান- বা সময় নয়-
এই বিকল্পটি বাদ দেওয়ার চেয়ে দক্ষ।

-mxgot
-mno-xgot
কোল্ডফায়ারের জন্য অবস্থান-স্বাধীন কোড তৈরি করার সময়, এমন কোড তৈরি করুন যা কাজ করে
GOT-তে 8192 টিরও বেশি এন্ট্রি রয়েছে। এই কোডটি কোডের চেয়ে বড় এবং ধীর
এই বিকল্প ছাড়া উত্পন্ন. M680x0 প্রসেসরে, এই বিকল্পের প্রয়োজন নেই; -fpic
যথেষ্ট

GCC সাধারণত GOT থেকে মান লোড করার জন্য একটি একক নির্দেশ ব্যবহার করে। এই যখন
তুলনামূলকভাবে দক্ষ, GOT প্রায় 64k এর চেয়ে ছোট হলেই এটি কাজ করে। কিছু
বড় কারণ লিঙ্কার একটি ত্রুটি রিপোর্ট করে যেমন:

ফিট করার জন্য স্থান পরিবর্তন করা হয়েছে: R_68K_GOT16O foobar

যদি এটি ঘটে তবে আপনার কোডটি পুনরায় কম্পাইল করা উচিত -mxgot. এটি তারপর সঙ্গে কাজ করা উচিত
খুব বড় GOTs। যাইহোক, কোড দিয়ে উত্পন্ন -mxgot কম দক্ষ, এটা থেকে
একটি বৈশ্বিক প্রতীকের মান আনতে 4টি নির্দেশনা লাগে।

উল্লেখ্য যে GNU লিঙ্কারের নতুন সংস্করণ সহ কিছু লিঙ্কার তৈরি করতে পারে
একাধিক GOTs এবং GOT এন্ট্রি সাজান। আপনার যদি এমন একটি লিঙ্কার থাকে তবে আপনার কেবল প্রয়োজন হবে
ব্যবহার করার জন্য -mxgot একটি একক অবজেক্ট ফাইল কম্পাইল করার সময় যা 8192 GOT এর বেশি অ্যাক্সেস করে
এন্ট্রি খুব কমই করে।

এই বিকল্পগুলির কোন প্রভাব নেই যদি না GCC অবস্থান-স্বাধীন কোড তৈরি করে।

এমকোর অপশন সমূহ

এই হয় -m Motorola M*Core প্রসেসরের জন্য সংজ্ঞায়িত বিকল্প।

- mhardlit
-এমনো-হার্ডলিট
কোড স্ট্রীমে ইনলাইন ধ্রুবকগুলি যদি এটি দুটি নির্দেশে বা তার কম সময়ে করা যায়।

-mdiv
-mno-div
বিভক্ত নির্দেশ ব্যবহার করুন. (ডিফল্টরূপে সক্রিয়)।

-mrelax- অবিলম্বে
-এমনো-আরাম-তাত্ক্ষণিক
বিট ক্রিয়াকলাপে স্বেচ্ছাচারী আকারের তাত্ক্ষণিক অনুমতি দিন।

-মওয়াইড-বিটফিল্ডস
-mno-ওয়াইড-বিটফিল্ড
সর্বদা বিট-ক্ষেত্রগুলিকে "int"-আকার হিসাবে বিবেচনা করুন।

-m4byte-ফাংশন
-mno-4byte-ফাংশন
সমস্ত ফাংশনকে 4-বাইটের সীমানায় সারিবদ্ধ হতে বাধ্য করুন।

-mcallgraph-ডেটা
-mno-কলগ্রাফ-ডেটা
কলগ্রাফ তথ্য নির্গত করুন।

-mslow-বাইট
-mno-স্লো-বাইট
বাইট পরিমাণ পড়ার সময় শব্দ অ্যাক্সেস পছন্দ করুন।

- সামান্য-এন্ডিয়ান
-বিগ-এন্ডিয়ান
একটি সামান্য-এন্ডিয়ান লক্ষ্যের জন্য কোড তৈরি করুন।

-m210
-m340
210 প্রসেসরের জন্য কোড তৈরি করুন।

-mno-lsim
অনুমান করুন যে রানটাইম সমর্থন প্রদান করা হয়েছে এবং তাই সিমুলেটর লাইব্রেরি বাদ দিন
(libsim.a) লিঙ্কার কমান্ড লাইন থেকে।

-mstack-বৃদ্ধি=আয়তন
একটি একক স্ট্যাক ইনক্রিমেন্ট অপারেশনের জন্য সর্বোচ্চ পরিমাণ সেট করুন। বড় মান পারে
যে ফাংশন ধারণ করে এমন প্রোগ্রামগুলির গতি বাড়ান যার জন্য প্রচুর পরিমাণে প্রয়োজন
স্ট্যাক স্পেস, কিন্তু স্ট্যাক প্রসারিত হলে তারা একটি সেগমেন্টেশন ফল্ট ট্রিগার করতে পারে
অনেক বেশি. ডিফল্ট মান হল 0x1000।

এমইপি অপশন সমূহ

- mabsdiff
"abs" নির্দেশ সক্রিয় করে, যা দুটি রেজিস্টারের মধ্যে পরম পার্থক্য।

-মল-অপস
সমস্ত ঐচ্ছিক নির্দেশাবলী সক্ষম করে---গড়, গুণ, ভাগ, বিট অপারেশন,
অগ্রণী শূন্য, পরম পার্থক্য, সর্বনিম্ন/সর্বোচ্চ, ক্লিপ, এবং স্যাচুরেশন।

- ম্যাভারেজ
"ave" নির্দেশ সক্রিয় করে, যা দুটি রেজিস্টারের গড় গণনা করে।

-মবেসড =n
আকারের ভেরিয়েবল n বাইট বা ছোট ডিফল্টভাবে ".based" বিভাগে স্থাপন করা হয়।
বেসড ভেরিয়েবল $tp রেজিস্টারকে বেস রেজিস্টার হিসাবে ব্যবহার করে এবং একটি 128-বাইটের সীমা রয়েছে
".ভিত্তিক" বিভাগে।

-এমবিটপস
বিট অপারেশন নির্দেশাবলী সক্ষম করে---বিট পরীক্ষা ("btstm"), সেট ("bsetm"), পরিষ্কার
("bclrm"), invert ("bnotm"), এবং test-and-set ("tas")।

-mc =নাম
কোন বিভাগে ধ্রুবক ডেটা রাখা হয়েছে তা নির্বাচন করে। নাম হতে পারে "ছোট", "কাছের", বা
"দূর"।

-mclip
"ক্লিপ" নির্দেশ সক্রিয় করে। মনে রাখবেন যে "-mclip" উপযোগী নয় যদি না আপনিও করেন
"-mminmax" প্রদান করুন।

-mconfig =নাম
অন্তর্নির্মিত মূল কনফিগারেশনগুলির মধ্যে একটি নির্বাচন করে। প্রতিটি MeP চিপে এক বা একাধিক থাকে
এটিতে মডিউল; প্রতিটি মডিউলের একটি কোর সিপিইউ এবং বিভিন্ন ধরণের কোপ্রসেসর রয়েছে, ঐচ্ছিক
নির্দেশাবলী, এবং পেরিফেরিয়াল। "MeP-Integrator" টুল, GCC এর অংশ নয়, প্রদান করে
এই বিকল্পের মাধ্যমে এই কনফিগারেশনগুলি; এই বিকল্পটি ব্যবহার করে সব ব্যবহার করার মতই
সংশ্লিষ্ট কমান্ড-লাইন বিকল্পগুলি। ডিফল্ট কনফিগারেশন "ডিফল্ট"।

-mcop
সহ-প্রসেসর নির্দেশাবলী সক্ষম করে। ডিফল্টরূপে, এটি একটি 32-বিট কপ্রসেসর। বিঃদ্রঃ
যে কোপ্রসেসর সাধারণত "-mconfig=" বিকল্পের মাধ্যমে সক্রিয় করা হয়।

-mcop32
32-বিট কপ্রসেসরের নির্দেশাবলী সক্ষম করে।

-mcop64
64-বিট কপ্রসেসরের নির্দেশাবলী সক্ষম করে।

-mivc2
IVC2 সময়সূচী সক্ষম করে। IVC2 হল একটি 64-বিট VLIW কপ্রসেসর।

-এমডিসি
ধ্রুবক ভেরিয়েবলগুলিকে ". কাছাকাছি" বিভাগে স্থাপন করার কারণ করে।

-mdiv
"div" এবং "divu" নির্দেশাবলী সক্ষম করে।

-মেব
বড়-এন্ডিয়ান কোড তৈরি করুন।

-মেল
লিটল-এন্ডিয়ান কোড তৈরি করুন।

-মিও-অস্থির
কম্পাইলারকে বলে যে "io" অ্যাট্রিবিউট দিয়ে চিহ্নিত যেকোনো ভেরিয়েবল হতে হবে
অস্থির বলে বিবেচিত।

-ml ডিফল্টরূপে ".far" বিভাগে ভেরিয়েবল বরাদ্দ করা হয়।

-ম্লিডজ
"leadz" (প্রধান শূন্য) নির্দেশ সক্রিয় করে।

-মিমি ডিফল্টরূপে ". কাছাকাছি" বিভাগে ভেরিয়েবল বরাদ্দ করার কারণ করে।

-মিমিনম্যাক্স
"মিনিট" এবং "সর্বোচ্চ" নির্দেশাবলী সক্ষম করে৷

-মমল্ট
গুণন এবং গুণ-সঞ্চয় নির্দেশাবলী সক্ষম করে।

-মনো-অপস
"-mall-opts" দ্বারা সক্ষম সমস্ত ঐচ্ছিক নির্দেশাবলী নিষ্ক্রিয় করে৷

-মরেপেট
নিম্ন-ওভারহেড লুপিংয়ের জন্য ব্যবহৃত "পুনরাবৃত্তি" এবং "ইরিপিট" নির্দেশাবলী সক্ষম করে৷

-মাইক্রোসফট সমস্ত ভেরিয়েবলকে ".tiny" বিভাগে ডিফল্ট করে। উল্লেখ্য যে একটি আছে
এই বিভাগে 65536-বাইট সীমা। এই ভেরিয়েবলের অ্যাক্সেস %gp বেস ব্যবহার করে
নিবন্ধন.

-মসাতুর
স্যাচুরেশন নির্দেশাবলী সক্ষম করে। উল্লেখ্য যে কম্পাইলার বর্তমানে নেই
এগুলি নিজেই তৈরি করুন, তবে এই বিকল্পটি অন্যান্য সরঞ্জামগুলির সাথে সামঞ্জস্যের জন্য অন্তর্ভুক্ত করা হয়েছে,
মত".

-msdram
ডিফল্ট ROM-ভিত্তিক রানটাইমের পরিবর্তে SDRAM-ভিত্তিক রানটাইম লিঙ্ক করুন।

-msim
সিমুলেটর রানটাইম লাইব্রেরি লিঙ্ক করুন।

-msimnovec
রিসেটের জন্য অন্তর্নির্মিত সমর্থন বাদ দিয়ে সিমুলেটর রানটাইম লাইব্রেরি লিঙ্ক করুন এবং
ব্যতিক্রম ভেক্টর এবং টেবিল।

-এমটিএফ
সমস্ত ফাংশনকে ".far" বিভাগে ডিফল্ট করে দেয়। এই বিকল্প ছাড়া, ফাংশন
". কাছাকাছি" বিভাগে ডিফল্ট।

-mtiny =n
ভেরিয়েবল যে n বাইট বা ছোট ".tiny" বিভাগে বরাদ্দ করা হয়। এইগুলো
ভেরিয়েবল $gp বেস রেজিস্টার ব্যবহার করে। এই বিকল্পের জন্য ডিফল্ট 4, কিন্তু নোট করুন যে
".tiny" বিভাগে একটি 65536-বাইট সীমা আছে।

মাইক্রোব্লেজ অপশন সমূহ

-মেমসফট-ফ্লোট
ফ্লোটিং পয়েন্টের জন্য সফ্টওয়্যার এমুলেশন ব্যবহার করুন (ডিফল্ট)।

-মহার্ড-ফ্লোট
হার্ডওয়্যার ফ্লোটিং-পয়েন্ট নির্দেশাবলী ব্যবহার করুন।

-mmemppy
ব্লক চালগুলি অপ্টিমাইজ করবেন না, "memcpy" ব্যবহার করুন।

-mno-ক্লিয়ারবস
এই বিকল্পটি বাতিল করা হয়েছে। ব্যবহার করুন -fno-শূন্য-শুরু-ইন-বিএসএস পরিবর্তে.

-mcpu =cpu-টাইপ
প্রদত্ত CPU-এর বৈশিষ্ট্য এবং সময়সূচী কোড ব্যবহার করুন। সমর্থিত মান আছে
বিন্যাস vX.YY.Z, কোথায় X একটি প্রধান সংস্করণ, YY ছোট সংস্করণ, এবং Z is
সামঞ্জস্য কোড। উদাহরণ মান হয় v3.00.a, v4.00.b, v5.00.a, v5.00.b, v5.00.b,
v6.00.a.

-mxl-soft-mul
সফ্টওয়্যার মাল্টিপ্লাই ইমুলেশন (ডিফল্ট) ব্যবহার করুন।

-mxl-soft-div
ভাগ করার জন্য সফ্টওয়্যার এমুলেশন ব্যবহার করুন (ডিফল্ট)।

-mxl-ব্যারেল-শিফট
হার্ডওয়্যার ব্যারেল শিফটার ব্যবহার করুন।

-mxl-প্যাটার্ন-তুলনা
প্যাটার্ন তুলনা নির্দেশাবলী ব্যবহার করুন.

-msmall-বিভাজন
ছোট স্বাক্ষরিত পূর্ণসংখ্যা বিভাগের জন্য টেবিল লুকআপ অপ্টিমাইজেশান ব্যবহার করুন।

-mxl-স্ট্যাক-চেক
এই বিকল্পটি বাতিল করা হয়েছে। ব্যবহার করুন -fstack-চেক পরিবর্তে.

-mxl-gp-opt
জিপি-রিলেটিভ ".sdata"/."sbss" বিভাগ ব্যবহার করুন।

-mxl-গুণ-উচ্চ
32x32 গুণের উচ্চ অংশের জন্য গুণিত উচ্চ নির্দেশাবলী ব্যবহার করুন।

-mxl-ফ্লোট-রূপান্তর
হার্ডওয়্যার ফ্লোটিং-পয়েন্ট রূপান্তর নির্দেশাবলী ব্যবহার করুন.

-mxl-Float-sqrt
হার্ডওয়্যার ফ্লোটিং-পয়েন্ট বর্গমূল নির্দেশ ব্যবহার করুন।

-বিগ-এন্ডিয়ান
একটি বড়-এন্ডিয়ান লক্ষ্যের জন্য কোড তৈরি করুন।

- সামান্য-এন্ডিয়ান
একটি সামান্য-এন্ডিয়ান লক্ষ্যের জন্য কোড তৈরি করুন।

-mxl-পুনঃক্রম
পুনরায় সাজানোর নির্দেশাবলী ব্যবহার করুন (অদলবদল এবং বাইট বিপরীত লোড/স্টোর)।

-mxl-মোড-অ্যাপ-মডেল
অ্যাপ্লিকেশন মডেল নির্বাচন করুন অ্যাপ-মডেল. বৈধ মডেল হয়

এক্সিকিউটেবল
সাধারণ এক্সিকিউটেবল (ডিফল্ট), স্টার্টআপ কোড ব্যবহার করে crt0.o.

xmdstub
Xilinx মাইক্রোপ্রসেসর ডিবাগার (XMD) ভিত্তিক সফ্টওয়্যার অনুপ্রবেশকারী ডিবাগের সাথে ব্যবহারের জন্য
xmdstub নামক এজেন্ট। এটি স্টার্টআপ ফাইল ব্যবহার করে crt1.o এবং এর শুরুর ঠিকানা সেট করে
প্রোগ্রাম 0x800.

বুটস্ট্র্যাপ
একটি বুটলোডার ব্যবহার করে লোড করা অ্যাপ্লিকেশনের জন্য। এই মডেল স্টার্টআপ ফাইল ব্যবহার করে
crt2.o যেটিতে প্রসেসর রিসেট ভেক্টর হ্যান্ডলার নেই। এই উপযুক্ত
একটি প্রসেসরের উপর নিয়ন্ত্রণ স্থানান্তর করার জন্য বুটলোডারের পরিবর্তে রিসেট করুন
আবেদন।

novectors
মাইক্রোব্লেজ ভেক্টরের কোনো প্রয়োজন নেই এমন অ্যাপ্লিকেশনের জন্য। এই বিকল্প
একটি পর্যবেক্ষণ অ্যাপ্লিকেশনের মধ্যে চলমান অ্যাপ্লিকেশনের জন্য দরকারী হতে পারে. এই মডেল
ব্যবহারসমূহ crt3.o একটি স্টার্টআপ ফাইল হিসাবে।

পছন্দ -এক্সএল-মোড-অ্যাপ-মডেল এর জন্য একটি অপপ্রচারিত উপনাম -mxl-মোড-অ্যাপ-মডেল.

মিপস অপশন সমূহ

-ইবি বড়-এন্ডিয়ান কোড তৈরি করুন।

-ইএল লিটল-এন্ডিয়ান কোড তৈরি করুন। এই জন্য ডিফল্ট mips*el-*-* কনফিগারেশনের।

-মার্চ =খিলান
চলমান কোড তৈরি করুন খিলান, যা একটি জেনেরিক MIPS ISA এর নাম হতে পারে, বা
একটি নির্দিষ্ট প্রসেসরের নাম। আইএসএর নাম হল: mips1, mips2, mips3, mips4,
mips32, mips32r2, mips64 এবং mips64r2. প্রসেসরের নাম হল: 4kc, 4km, 4kp, 4ksc,
4 কেসি, 4 কেএম, 4 কেপ, 4ksd, 5kc, 5 কেফ, 20kc, 24kc, 24kf2_1, 24kf1_1, 24 কেসি, 24kef2_1,
24kef1_1, 34kc, 34kf2_1, 34kf1_1, 34kn, 74kc, 74kf2_1, 74kf1_1, 74kf3_2, 1004kc,
1004kf2_1, 1004kf1_1, loongson2e, loongson2f, loongson3a, M4K, অক্টিয়ন, অক্টিয়ন+,
octeon2, কালপুরুষ, 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 এর জন্য সবচেয়ে সামঞ্জস্যপূর্ণ আর্কিটেকচার নির্বাচন করে (অর্থাৎ, mips1 উন্নত
32-বিট ABIs এবং mips3 64-বিট ABI-এর জন্য)।

নেটিভ লিনাক্স/জিএনইউ টুলচেনও মানটিকে সমর্থন করে স্থানীয়, যা সেরা নির্বাচন করে
হোস্ট প্রসেসরের জন্য আর্কিটেকচার বিকল্প। -মার্চ=দেশীয় জিসিসি করলে কোন প্রভাব নেই
প্রসেসর চিনতে পারে না।

প্রসেসর নাম, একটি চূড়ান্ত 000 সংক্ষেপে হিসাবে চিহ্নিত করা যেতে পারে k (উদাহরণ স্বরূপ, -মার্চ=r2k).
উপসর্গ ঐচ্ছিক, এবং vr লেখা হতে পারে r.

ফর্মের নাম nf2_1 এফপিইউ-এর অর্ধেক হারে ক্লক করা প্রসেসরগুলি দেখুন
মূল, ফর্মের নাম nf1_1 একই হারে ক্লক করা FPUs সহ প্রসেসরগুলি দেখুন
মূল হিসাবে, এবং ফর্মের নাম nf3_2 FPUs একটি অনুপাত ঘড়ি সঙ্গে প্রসেসর পড়ুন
3:2 এর কোর সাপেক্ষে। সামঞ্জস্যের কারণে, nf একটি হিসাবে গৃহীত হয়
এর প্রতিশব্দ nf2_1 যখন nx এবং bfx এর প্রতিশব্দ হিসাবে গৃহীত হয় nf1_1.

GCC এই বিকল্পের মানের উপর ভিত্তি করে দুটি ম্যাক্রো সংজ্ঞায়িত করে। প্রথমটি হল _MIPS_ARCH,
যা একটি স্ট্রিং হিসাবে লক্ষ্য আর্কিটেকচারের নাম দেয়। দ্বিতীয়টির ফর্ম আছে
_MIPS_ARCH_foo বিন্যাস, কোথায় foo বিন্যাস এর মূলধনীকৃত মান _MIPS_ARCH। উদাহরণ স্বরূপ,
-মার্চ = r2000 সেট _MIPS_ARCH থেকে "r2000" এবং ম্যাক্রো সংজ্ঞায়িত করে _MIPS_ARCH_R2000.

উল্লেখ্য যে _MIPS_ARCH ম্যাক্রো উপরে দেওয়া প্রসেসরের নাম ব্যবহার করে। অন্য কথায়,
এটির পূর্ণ উপসর্গ রয়েছে এবং এটি সংক্ষিপ্ত করে না 000 as k। এর ব্যাপারে থেকে-আবি, দ্য
ম্যাক্রো সমাধান করা আর্কিটেকচারের নাম দেয় (হয় "mips1" or "mips3") এটা নাম
ডিফল্ট আর্কিটেকচার যখন না -মার্চ অপশন দেওয়া হয়।

-mtune =খিলান
জন্য অনুকূলিতকরণ খিলান. অন্যান্য জিনিসের মধ্যে, এই বিকল্পটি নির্দেশাবলীর উপায় নিয়ন্ত্রণ করে
নির্ধারিত, এবং গাণিতিক অপারেশনের অনুভূত খরচ। এর তালিকা খিলান মূল্যবোধ
হিসাবে হিসাবে একই -মার্চ.

যখন এই বিকল্পটি ব্যবহার করা হয় না, GCC দ্বারা নির্দিষ্ট করা প্রসেসরের জন্য অপ্টিমাইজ করে -মার্চ। দ্বারা
ব্যবহার -মার্চ এবং -mtune একসাথে, কোড তৈরি করা সম্ভব যা a-তে চলে
প্রসেসরের পরিবার, কিন্তু সেই পরিবারের একজন নির্দিষ্ট সদস্যের জন্য কোডটি অপ্টিমাইজ করুন।

-mtune ম্যাক্রো সংজ্ঞায়িত করে _MIPS_TUNE এবং _MIPS_TUNE_foo বিন্যাস, যা একই ভাবে কাজ করে
দ্য -মার্চ উপরে বর্ণিত বেশী.

-মিপস 1
সমতুল্য -মার্চ=মিপস1.

-মিপস 2
সমতুল্য -মার্চ=মিপস2.

-মিপস 3
সমতুল্য -মার্চ=মিপস3.

-মিপস 4
সমতুল্য -মার্চ=মিপস4.

-মিপস 32
সমতুল্য -মার্চ=মিপস32.

-mips32r2
সমতুল্য -march=mips32r2.

-মিপস 64
সমতুল্য -মার্চ=মিপস64.

-mips64r2
সমতুল্য -march=mips64r2.

-মিপস 16
-mno-Mips16
MIPS16 কোড জেনারেট করুন (জেনারেট করবেন না)। যদি GCC একটি MIPS32 বা MIPS64 লক্ষ্য করে
আর্কিটেকচার, এটি MIPS16e ASE ব্যবহার করে।

MIPS16 কোড জেনারেশনের মাধ্যমেও প্রতি-ফাংশনের ভিত্তিতে নিয়ন্ত্রণ করা যেতে পারে
"mips16" এবং "nomips16" বৈশিষ্ট্য।

-mflip-MIPS16
বিকল্প ফাংশনে MIPS16 কোড তৈরি করুন। এই বিকল্পটি রিগ্রেশনের জন্য প্রদান করা হয়েছে
মিশ্র MIPS16/নন-MIPS16 কোড জেনারেশনের পরীক্ষা, এবং এটি সাধারণের জন্য নয়
ব্যবহারকারী কোড কম্পাইল করতে ব্যবহার করুন।

-মিন্টারলিঙ্ক-এমআইপিএস 16
-mno-ইন্টারলিঙ্ক-এমআইপিএস 16
প্রয়োজন (প্রয়োজন নেই) যে নন-MIPS16 কোড MIPS16 কোডের সাথে লিঙ্ক-সামঞ্জস্যপূর্ণ।

উদাহরণস্বরূপ, নন-MIPS16 কোড সরাসরি MIPS16 কোডে যেতে পারে না; এটি অবশ্যই একটি ব্যবহার করতে হবে
কল বা একটি পরোক্ষ লাফ. -মিন্টারলিঙ্ক-এমআইপিএস 16 তাই সরাসরি লাফ নিষ্ক্রিয় যদি না
GCC জানে যে লাফের লক্ষ্য MIPS16 নয়।

-মাবি=32
-মাবি=o64
-মাবি=n32
-মাবি=64
-মাবি=ইবি
প্রদত্ত ABI-এর জন্য কোড তৈরি করুন।

মনে রাখবেন যে EABI-এর একটি 32-বিট এবং একটি 64-বিট বৈকল্পিক রয়েছে। GCC সাধারণত 64-বিট তৈরি করে
কোড যখন আপনি একটি 64-বিট আর্কিটেকচার নির্বাচন করেন, তবে আপনি ব্যবহার করতে পারেন -mgp32 32-বিট কোড পেতে
পরিবর্তে.

O64 ABI সম্পর্কে তথ্যের জন্য, দেখুনhttp://gcc.gnu.org/projects/mipso64-abi.html>.

GCC o32 ABI-এর একটি বৈকল্পিক সমর্থন করে যেখানে ফ্লোটিং-পয়েন্ট রেজিস্টার 64
32 বিট প্রশস্ত। আপনি সঙ্গে এই সমন্বয় নির্বাচন করতে পারেন -মাবি=32 -mfp64. এই ABI
"mthc1" এবং "mfhc1" নির্দেশাবলীর উপর নির্ভর করে এবং তাই শুধুমাত্র এর জন্য সমর্থিত
MIPS32R2 প্রসেসর।

আর্গুমেন্ট এবং রিটার্ন মানের জন্য রেজিস্টার অ্যাসাইনমেন্ট একই থাকে, কিন্তু প্রতিটি
স্কেলার মান 64-বিটের জোড়ার পরিবর্তে একটি একক 32-বিট রেজিস্টারে পাস করা হয়
নিবন্ধন উদাহরণস্বরূপ, স্কেলার ফ্লোটিং-পয়েন্টের মানগুলি ফেরত দেওয়া হয় $f0 শুধুমাত্র, না a
$f0/$f1 জোড়া কল-সংরক্ষিত রেজিস্টারের সেটও একই থাকে, কিন্তু সবকটি 64 বিট
সংরক্ষিত হয়

-ম্যাবিক্যালস
-মনো-অবিকালস
SVR4-স্টাইলের গতিশীল বস্তুর জন্য উপযুক্ত কোড জেনারেট করুন (জেনারেট করবেন না)।
-ম্যাবিক্যালস SVR4-ভিত্তিক সিস্টেমের জন্য ডিফল্ট।

-মশার্ড
-mno-ভাগ করা
কোড জেনারেট করুন (জেনারেট করবেন না) যা সম্পূর্ণরূপে অবস্থান-স্বাধীন, এবং এটি করতে পারে
তাই শেয়ার্ড লাইব্রেরিতে লিঙ্ক করা হবে। এই বিকল্পটি শুধুমাত্র প্রভাবিত করে -ম্যাবিক্যালস.

সব -ম্যাবিক্যালস কোড ঐতিহ্যগতভাবে অবস্থান-স্বাধীন, বিকল্প নির্বিশেষে
মত -fpic এবং -fpic. যাইহোক, একটি এক্সটেনশন হিসাবে, GNU টুলচেইন এক্সিকিউটেবলকে অনুমতি দেয়
স্থানীয়ভাবে বাঁধাই চিহ্নের জন্য পরম অ্যাক্সেস ব্যবহার করতে। এটি খাটো জিপিও ব্যবহার করতে পারে
প্রারম্ভিক ক্রম এবং স্থানীয়ভাবে সংজ্ঞায়িত ফাংশন সরাসরি কল জেনারেট. এই
মোড দ্বারা নির্বাচিত হয় -mno-ভাগ করা.

-mno-ভাগ করা binutils 2.16 বা উচ্চতর উপর নির্ভর করে এবং শুধুমাত্র হতে পারে এমন বস্তু তৈরি করে
GNU লিঙ্কার দ্বারা সংযুক্ত। যাইহোক, বিকল্পটি চূড়ান্তের ABI-কে প্রভাবিত করে না
নির্বাহযোগ্য এটি শুধুমাত্র রিলোকেটেবল অবজেক্টের ABI কে প্রভাবিত করে। ব্যবহার -mno-ভাগ করা
সাধারণত এক্সিকিউটেবলকে ছোট এবং দ্রুত উভয়ই করে।

-মশার্ড ডিফল্ট হয়

-mplt
-mno-plt
ধরে নিন (অনুমান করবেন না) যে স্ট্যাটিক এবং ডাইনামিক লিঙ্কারগুলি PLT এবং অনুলিপি সমর্থন করে
স্থানান্তর এই বিকল্পটি শুধুমাত্র প্রভাবিত করে -mno-ভাগ করা -ম্যাবিক্যালস. n64 ABI এর জন্য, এই
বিকল্প ছাড়া কোন প্রভাব নেই -msym32.

আপনি করতে পারেন -mplt এর সাথে GCC কনফিগার করে ডিফল্ট --with-mips-plt। ডিফল্ট
is -mno-plt অন্যথায়।

-mxgot
-mno-xgot
গ্লোবাল অফসেট টেবিলের আকারের উপর স্বাভাবিক বিধিনিষেধ তুলে (উত্তোলন করবেন না)।

GCC সাধারণত GOT থেকে মান লোড করার জন্য একটি একক নির্দেশ ব্যবহার করে। এই যখন
তুলনামূলকভাবে দক্ষ, GOT প্রায় 64k এর চেয়ে ছোট হলেই এটি কাজ করে। কিছু
বড় কারণ লিঙ্কার একটি ত্রুটি রিপোর্ট করে যেমন:

ফিট করার জন্য স্থান পরিবর্তন করা হয়েছে: R_MIPS_GOT16 foobar

যদি এটি ঘটে তবে আপনার কোডটি পুনরায় কম্পাইল করা উচিত -mxgot. এই খুব সঙ্গে কাজ করে
বড় GOTs, যদিও কোডটিও কম দক্ষ, যেহেতু এটিতে তিনটি লাগে
একটি বিশ্বব্যাপী প্রতীকের মান আনার নির্দেশাবলী।

মনে রাখবেন কিছু লিঙ্কার একাধিক GOT তৈরি করতে পারে। আপনি যেমন একটি লিঙ্কার আছে, আপনি
শুধুমাত্র ব্যবহার করতে হবে -mxgot যখন একটি একক অবজেক্ট ফাইল 64k এর বেশি অ্যাক্সেস করে
GOT এন্ট্রি মূল্য. খুব কমই করে।

GCC পজিশন ইন্ডিপেন্ডেন্ট কোড তৈরি না করা পর্যন্ত এই বিকল্পগুলির কোন প্রভাব নেই।

-mgp32
অনুমান করুন যে সাধারণ-উদ্দেশ্য রেজিস্টারগুলি 32 বিট প্রশস্ত।

-mgp64
অনুমান করুন যে সাধারণ-উদ্দেশ্য রেজিস্টারগুলি 64 বিট প্রশস্ত।

-mfp32
অনুমান করুন যে ফ্লোটিং-পয়েন্ট রেজিস্টার 32 বিট প্রশস্ত।

-mfp64
অনুমান করুন যে ফ্লোটিং-পয়েন্ট রেজিস্টার 64 বিট প্রশস্ত।

-মহার্ড-ফ্লোট
ফ্লোটিং-পয়েন্ট কপ্রসেসর নির্দেশাবলী ব্যবহার করুন।

-মেমসফট-ফ্লোট
ফ্লোটিং-পয়েন্ট কপ্রসেসর নির্দেশাবলী ব্যবহার করবেন না। ফ্লোটিং-পয়েন্ট বাস্তবায়ন করুন
পরিবর্তে লাইব্রেরি কল ব্যবহার করে গণনা।

-mno-ভাসা
সমতুল্য -মেমসফট-ফ্লোট, কিন্তু অতিরিক্তভাবে দাবি করে যে প্রোগ্রামটি কম্পাইল করা হচ্ছে
কোনো ফ্লোটিং-পয়েন্ট অপারেশন সঞ্চালন করে না। এই বিকল্পটি বর্তমানে সমর্থিত
শুধুমাত্র কিছু বেয়ার-মেটাল MIPS কনফিগারেশন দ্বারা, যেখানে এটি একটি বিশেষ সেট নির্বাচন করতে পারে
লাইব্রেরি যে সমস্ত ফ্লোটিং-পয়েন্ট সমর্থনের অভাব রয়েছে (উদাহরণস্বরূপ, ভাসমান-
পয়েন্ট "printf" ফরম্যাট)। যদি "-mno-float" এর সাথে সংকলিত কোড ভুলবশত থাকে
ফ্লোটিং-পয়েন্ট অপারেশন, এটি একটি লিঙ্ক-টাইম বা রান-টাইম ব্যর্থতার শিকার হতে পারে।

-একটি-ভাসা
অনুমান করুন যে ফ্লোটিং-পয়েন্ট কপ্রসেসর শুধুমাত্র একক-নির্ভুলতা অপারেশন সমর্থন করে।

-mdouble-ালু
অনুমান করুন যে ফ্লোটিং-পয়েন্ট কপ্রসেসর ডবল-নির্ভুলতা অপারেশন সমর্থন করে। এই
ডিফল্ট হয়

-mllsc
-mno-llsc
ব্যবহার করুন (ব্যবহার করবেন না) ll, sc, এবং সিঙ্ক বিল্ট-ইন পারমাণবিক মেমরি বাস্তবায়নের নির্দেশাবলী
ফাংশন যখন কোন বিকল্প নির্দিষ্ট করা হয় না, GCC নির্দেশাবলী ব্যবহার করে যদি লক্ষ্য হয়
স্থাপত্য তাদের সমর্থন করে।

-mllsc যদি রানটাইম পরিবেশ নির্দেশাবলী অনুকরণ করতে পারে এবং -mno-llsc
অমানক আইএসএগুলির জন্য কম্পাইল করার সময় দরকারী হতে পারে। আপনি উভয় বিকল্প করতে পারেন
এর সাথে GCC কনফিগার করে ডিফল্ট --with-llsc এবং -- llsc ছাড়া যথাক্রমে.
--with-llsc কিছু কনফিগারেশনের জন্য ডিফল্ট; ইনস্টলেশন ডকুমেন্টেশন দেখুন
বিস্তারিত জানার জন্য.

-এমডিএসপি
-mno-dsp
MIPS DSP ASE-এর সংশোধন 1 ব্যবহার করুন (ব্যবহার করবেন না)।
এই বিকল্পটি প্রিপ্রসেসর ম্যাক্রো সংজ্ঞায়িত করে __mips_dsp. এটাও সংজ্ঞায়িত করে
__mips_dsp_rev 1 তে

-mdspr2
-mno-dspr2
MIPS DSP ASE-এর সংশোধন 2 ব্যবহার করুন (ব্যবহার করবেন না)।
এই বিকল্পটি প্রিপ্রসেসর ম্যাক্রোকে সংজ্ঞায়িত করে __mips_dsp এবং __mips_dspr2। এটাও
সংজ্ঞায়িত __mips_dsp_rev 2 তে

-msmartmips
-mno-smartmips
MIPS SmartMIPS ASE ব্যবহার করুন (ব্যবহার করবেন না)।

প্রতিবন্ধী-একক
-mno-জোড়া-একক
জোড়া-একক ভাসমান-বিন্দু নির্দেশাবলী ব্যবহার করুন (ব্যবহার করবেন না)।
এই বিকল্পটি সক্রিয় করার জন্য হার্ডওয়্যার ফ্লোটিং-পয়েন্ট সমর্থন প্রয়োজন।

-mdmx
-mno-mdmx
এমআইপিএস ডিজিটাল মিডিয়া এক্সটেনশন নির্দেশাবলী ব্যবহার করুন (ব্যবহার করবেন না)। এই বিকল্প শুধুমাত্র হতে পারে
64-বিট কোড তৈরি করার সময় ব্যবহৃত হয় এবং হার্ডওয়্যার ফ্লোটিং-পয়েন্ট সমর্থন প্রয়োজন
সক্ষম করা হয়েছে।

-মিপস 3 ডি
-mno-Mips3d
MIPS-3D ASE ব্যবহার করুন (ব্যবহার করবেন না)। পছন্দ -মিপস 3 ডি বোঝা প্রতিবন্ধী-একক.

-এমএমটি
-mno-Mt
MT মাল্টিথ্রেডিং নির্দেশাবলী ব্যবহার করুন (ব্যবহার করবেন না)।

-এমএমসিইউ
-mno-mcu
MIPS MCU ASE নির্দেশাবলী ব্যবহার করুন (ব্যবহার করবেন না)।

-মলং64
"দীর্ঘ" প্রকারগুলিকে 64 বিট প্রশস্ত হতে বাধ্য করুন৷ দেখা -মলং32 ডিফল্টের ব্যাখ্যার জন্য
এবং যেভাবে পয়েন্টারের আকার নির্ধারণ করা হয়।

-মলং32
"দীর্ঘ", "int" এবং পয়েন্টার প্রকারগুলিকে 32 বিট প্রশস্ত হতে বাধ্য করুন৷

"int", "লং" এবং পয়েন্টারগুলির ডিফল্ট আকার ABI-এর উপর নির্ভর করে। সব
সমর্থিত ABI 32-বিট "int" ব্যবহার করে। n64 ABI 64-বিট "লং" ব্যবহার করে, যেমন 64-বিট করে
EABI; অন্যরা 32-বিট "লং" ব্যবহার করে। পয়েন্টারগুলি "লম্বা" বা এর আকারের সমান
পূর্ণসংখ্যা রেজিস্টারের মতো একই আকার, যেটি ছোট।

-msym32
-mno-sym32
অনুমান করুন (অনুমান করবেন না) যে সমস্ত চিহ্নের 32-বিট মান রয়েছে, নির্বাচিত নির্বিশেষে
এবিআই। এই বিকল্প সঙ্গে সমন্বয় দরকারী -মাবি=64 এবং -মনো-অবিকালস কারন এটা
GCC-কে সাংকেতিক ঠিকানার সংক্ষিপ্ত এবং দ্রুত রেফারেন্স তৈরি করতে দেয়।

-G NUM
একটি ছোট ডেটা বিভাগে বাহ্যিকভাবে দৃশ্যমান ডেটার সংজ্ঞাগুলি রাখুন যদি সেই ডেটাটি না হয়
চেয়ে বড় NUM বাইট GCC তারপর ডেটাতে আরও দক্ষ অ্যাক্সেস তৈরি করতে পারে; দেখা
-mgpopt বিস্তারিত জানার জন্য.

ডিফল্ট -G বিকল্পটি কনফিগারেশনের উপর নির্ভর করে।

-ম্লোকাল-এসডিএটা
-mno-স্থানীয়-এসডেটা
প্রসারিত (প্রসারিত করবেন না) the -G স্থানীয় ডেটার সাথেও আচরণ, যেমন স্ট্যাটিক ভেরিয়েবলের সাথে
সি তে -ম্লোকাল-এসডিএটা সমস্ত কনফিগারেশনের জন্য ডিফল্ট।

যদি লিঙ্কার অভিযোগ করে যে একটি অ্যাপ্লিকেশন খুব বেশি ছোট ডেটা ব্যবহার করছে, আপনি হতে পারেন
কম কর্মক্ষমতা-সমালোচনামূলক অংশগুলির সাথে পুনর্নির্মাণের চেষ্টা করতে চাই -mno-স্থানীয়-এসডেটা। আপনি
এর সাথে বড় লাইব্রেরিও তৈরি করতে চাইতে পারে -mno-স্থানীয়-এসডেটা, যাতে লাইব্রেরি
মূল প্রোগ্রামের জন্য আরও জায়গা ছেড়ে দিন।

-মেক্সটার্ন-এসডেটা
-mno-বাহ্যিক-এসডেটা
ধরে নিন (অনুমান করবেন না) যে বাহ্যিকভাবে সংজ্ঞায়িত ডেটা একটি ছোট ডেটা বিভাগে থাকে যদি
যে তথ্যের আকার মধ্যে আছে -G সীমা। -মেক্সটার্ন-এসডেটা সকলের জন্য ডিফল্ট
কনফিগারেশনের।

আপনি যদি একটি মডিউল কম্পাইল করেন মডুলাস সঙ্গে -মেক্সটার্ন-এসডেটা -G NUM -mgpopt, এবং মডুলাস উল্লেখ a
পরিবর্তনশীল var যে এর চেয়ে বড় নয় NUM বাইট, আপনি নিশ্চিত করতে হবে যে var স্থাপন করা হয়
একটি ছোট ডেটা বিভাগে। যদি var অন্য মডিউল দ্বারা সংজ্ঞায়িত করা হয়, আপনাকে হয় কম্পাইল করতে হবে
একটি উচ্চ-পর্যাপ্ত সঙ্গে যে মডিউল -G একটি "বিভাগ" বৈশিষ্ট্য সেট করুন বা সংযুক্ত করুন৷ var's
সংজ্ঞা যদি var সাধারণ, আপনি একটি উচ্চ-পর্যাপ্ত সঙ্গে অ্যাপ্লিকেশন লিঙ্ক আবশ্যক -G
বিন্যাস.

এই সীমাবদ্ধতাগুলি সন্তুষ্ট করার সবচেয়ে সহজ উপায় হল প্রতিটি মডিউলকে কম্পাইল করা এবং লিঙ্ক করা
একই সঙ্গে -G বিকল্প যাইহোক, আপনি একটি লাইব্রেরি তৈরি করতে চান যা সমর্থন করে
বিভিন্ন ছোট ডেটা সীমা। আপনি লাইব্রেরি কম্পাইল করে এটি করতে পারেন
সর্বোচ্চ সমর্থিত -G সেটিং এবং অতিরিক্ত ব্যবহার করে -mno-বাহ্যিক-এসডেটা থামাতে
বাহ্যিকভাবে সংজ্ঞায়িত ডেটা সম্পর্কে অনুমান করা থেকে লাইব্রেরি।

-mgpopt
-mno-gpopt
ছোট ডেটাতে পরিচিত চিহ্নগুলির জন্য জিপি-রিলেটিভ অ্যাক্সেস ব্যবহার করুন (ব্যবহার করবেন না)
অধ্যায়; দেখা -G, -ম্লোকাল-এসডিএটা এবং -মেক্সটার্ন-এসডেটা. -mgpopt সকলের জন্য ডিফল্ট
কনফিগারেশনের।

-mno-gpopt যে ক্ষেত্রে $gp রেজিস্টার এর মান ধরে নাও থাকতে পারে সেই ক্ষেত্রে উপযোগী
"_gp"। উদাহরণস্বরূপ, যদি কোডটি একটি লাইব্রেরির অংশ হয় যা বুটে ব্যবহার করা যেতে পারে
মনিটর, প্রোগ্রাম যা বুট মনিটর রুটিন কল করে $gp-এ একটি অজানা মান পাস করে। (ভিতরে
এই ধরনের পরিস্থিতিতে, বুট মনিটর নিজেই সাধারণত সংকলিত হয় -জি 0.)

-mno-gpopt বোঝা -mno-স্থানীয়-এসডেটা এবং -mno-বাহ্যিক-এসডেটা.

-মেম্বেড-ডেটা
-mno-এম্বেডেড-ডেটা
সম্ভব হলে প্রথমে শুধুমাত্র পঠনযোগ্য ডেটা বিভাগে ভেরিয়েবল বরাদ্দ করুন, তারপরে পরবর্তীতে
সম্ভব হলে ছোট ডেটা বিভাগ, অন্যথায় ডেটাতে। এটি সামান্য ধীর কোড দেয়
ডিফল্টের চেয়ে, কিন্তু কার্যকর করার সময় প্রয়োজনীয় RAM এর পরিমাণ হ্রাস করে, এবং এইভাবে হতে পারে
কিছু এমবেডেড সিস্টেমের জন্য পছন্দ করা হবে।

-মুনিনীত-কনস্ট-ইন-রোডাটা
-mno-uninit-const- ইন-রোডাটা
শুধুমাত্র পঠনযোগ্য ডেটা বিভাগে শুরু না করা "const" ভেরিয়েবল রাখুন। এই বিকল্প হয়
শুধুমাত্র সঙ্গে একযোগে অর্থপূর্ণ -মেম্বেড-ডেটা.

-mcode-পাঠযোগ্য=বিন্যাস
GCC এক্সিকিউটেবল বিভাগ থেকে পড়া কোড তৈরি করতে পারে কিনা তা নির্দিষ্ট করুন। সেখানে
তিনটি সম্ভাব্য সেটিংস:

-mcode-readable=হ্যাঁ
নির্দেশাবলী নির্দ্বিধায় এক্সিকিউটেবল বিভাগে অ্যাক্সেস করতে পারে। এটি ডিফল্ট সেটিং।

-mcode-readable=pcrel
MIPS16 PC-আপেক্ষিক লোড নির্দেশাবলী এক্সিকিউটেবল বিভাগগুলি অ্যাক্সেস করতে পারে তবে অন্যান্য
নির্দেশাবলী তা করা উচিত নয়। এই বিকল্পটি 4KSc এবং 4KSd প্রসেসরে উপযোগী
যখন কোড টিএলবি-তে রিড ইনহিবিট বিট সেট থাকে। এটি প্রসেসরের ক্ষেত্রেও কার্যকর
যেটিকে একটি দ্বৈত নির্দেশ/ডেটা SRAM ইন্টারফেস থাকতে কনফিগার করা যেতে পারে এবং যে,
M4K-এর মতো, স্বয়ংক্রিয়ভাবে পিসি-আপেক্ষিক লোডগুলিকে নির্দেশ RAM-তে পুনঃনির্দেশিত করে।

-mcode-পঠনযোগ্য = না
নির্দেশাবলী এক্সিকিউটেবল বিভাগে অ্যাক্সেস করা উচিত নয়। এই বিকল্পটি কার্যকর হতে পারে
একটি দ্বৈত নির্দেশ/ডেটা এসআরএএম ইন্টারফেস থাকার জন্য কনফিগার করা লক্ষ্যগুলি কিন্তু
যে (M4K-এর বিপরীতে) স্বয়ংক্রিয়ভাবে পিসি-আপেক্ষিক লোডগুলিকে রিডাইরেক্ট করে না
নির্দেশ RAM.

-msplit-ঠিকানা
-mno-বিভক্ত-ঠিকানা
"%hi()" এবং "%lo()" অ্যাসেম্বলার রিলোকেশন অপারেটরগুলির ব্যবহার সক্রিয় (অক্ষম) করুন৷ এই
বিকল্প দ্বারা বাতিল করা হয়েছে -mexplicit-রিলোকস কিন্তু পিছনের জন্য রাখা হয়
সামঞ্জস্য।

-mexplicit-রিলোকস
-mno-স্পষ্ট-রিলোকস
প্রতীকী ঠিকানা নিয়ে কাজ করার সময় অ্যাসেম্বলার রিলোকেশন অপারেটর ব্যবহার করুন (ব্যবহার করবেন না)।
বিকল্প, দ্বারা নির্বাচিত -mno-স্পষ্ট-রিলোকস, এর পরিবর্তে অ্যাসেম্বলার ম্যাক্রো ব্যবহার করতে হয়।

-mexplicit-রিলোকস ডিফল্ট যদি GCC একটি অ্যাসেম্বলার ব্যবহার করার জন্য কনফিগার করা হয়
স্থানান্তর অপারেটর সমর্থন করে।

-mcheck-শূন্য-বিভাগ
-mno-চেক-শূন্য-বিভাগ
শূন্য দ্বারা পূর্ণসংখ্যা বিভাজনের উপর ফাঁদ (ফাঁদ করবেন না)।

ডিফল্ট হয় -mcheck-শূন্য-বিভাগ.

-mdivide-ফাঁদ
-মডিভাইড-ব্রেকস
এমআইপিএস সিস্টেমগুলি শর্তসাপেক্ষ ফাঁদ বা ক তৈরি করে শূন্য দ্বারা বিভাজন পরীক্ষা করে
বিরতি নির্দেশ। ফাঁদ ব্যবহার করলে ছোট কোড পাওয়া যায়, কিন্তু এটি শুধুমাত্র MIPS-এ সমর্থিত
II এবং পরবর্তী এছাড়াও, লিনাক্স কার্নেলের কিছু সংস্করণে একটি বাগ রয়েছে যা ফাঁদ প্রতিরোধ করে
সঠিক সংকেত ("SIGFPE") তৈরি করা থেকে। ব্যবহার করুন -mdivide-ফাঁদ শর্তসাপেক্ষে অনুমতি দিতে
স্থাপত্যের ফাঁদ যা তাদের সমর্থন করে এবং -মডিভাইড-ব্রেকস ব্যবহার করতে বাধ্য করা
বিরতি.

ডিফল্ট সাধারণত হয় -mdivide-ফাঁদ, কিন্তু এটি কনফিগারের সময় ওভাররাইড করা যেতে পারে
ব্যবহার --with-divide=breaks. ডিভাইড-বাই-জিরো চেক ব্যবহার করে সম্পূর্ণরূপে অক্ষম করা যেতে পারে
-mno-চেক-শূন্য-বিভাগ.

-mmemppy
-mno-আমার মনে
নন-তুচ্ছ ব্লক চালনার জন্য "memcpy()" ব্যবহার করতে বাধ্য করুন (জোর করবেন না)। ডিফল্ট
is -mno-আমার মনে, যা GCC-কে সবচেয়ে ধ্রুব-আকারের কপি ইনলাইন করতে দেয়।

-মলং-কল
-mno-লং-কল
"জল" নির্দেশের ব্যবহার নিষ্ক্রিয় (অক্ষম করবেন না)। "জল" ব্যবহার করে কলিং ফাংশন
আরও দক্ষ কিন্তু কলার এবং কলীকে একই 256 মেগাবাইটে থাকতে হবে
সেগমেন্ট।

এই বিকল্পটি abicalls কোডের উপর কোন প্রভাব নেই। ডিফল্ট হয় -mno-লং-কল.

-মমদ
-মনো-পাগল
"পাগ", "মাদু" এবং "মুল" নির্দেশাবলীর ব্যবহার সক্ষম (অক্ষম করুন)
R4650 ISA।

-মফিউজড-এমএডিডি
-মনো-ফিউজড-এমএডিডি
ফ্লোটিং-পয়েন্ট মাল্টিপ্লাই-অ্যাকমুলেট নির্দেশাবলীর ব্যবহার সক্রিয় (অক্ষম) করুন, যখন তারা
সহজ প্রাপ্য. ডিফল্ট হয় -মফিউজড-এমএডিডি.

R8000 CPU-তে যখন মাল্টিপ্লাই-একমুলেট নির্দেশাবলী ব্যবহার করা হয়, তখন মধ্যবর্তী
পণ্যটি অসীম নির্ভুলতার জন্য গণনা করা হয় এবং এটি FCSR ফ্লাশের সাপেক্ষে নয়
জিরো বিট। এটি কিছু পরিস্থিতিতে অবাঞ্ছিত হতে পারে। অন্যান্য প্রসেসরে
ফলাফলটি পৃথক গুন ব্যবহার করে সমতুল্য গণনার সংখ্যাগতভাবে অভিন্ন,
নির্দেশাবলী যোগ, বিয়োগ এবং অস্বীকার করুন।

-নোকপ্প
এমআইপিএস অ্যাসেম্বলারকে বলুন যেন ইউজার অ্যাসেম্বলার ফাইলের উপর তার প্রিপ্রসেসর না চালায় (এর সাথে
.s প্রত্যয়) তাদের একত্রিত করার সময়।

-mfix-24k
-mno-Fix-24k
24K E48 (রিফিল করার সময় স্টোরগুলিতে ডেটা হারিয়ে যাওয়া) ত্রুটি-বিচ্যুতি নিয়ে কাজ করুন। সমাধান
জিসিসির পরিবর্তে অ্যাসেম্বলার দ্বারা প্রয়োগ করা হয়।

-mfix-r4000
-mno-Fix-r4000
নির্দিষ্ট R4000 CPU ত্রুটি-বিচ্যুতি নিয়ে কাজ করুন:

- একটি ডবল-শব্দ বা একটি পরিবর্তনশীল স্থানান্তর কার্যকর হলে একটি ভুল ফলাফল দিতে পারে
একটি পূর্ণসংখ্যা বিভাগ শুরু করার পরপরই।

- একটি দ্বৈত-শব্দ বা একটি পরিবর্তনশীল স্থানান্তর একটি ভুল ফলাফল দিতে পারে যদি কার্যকর করা হয়
একটি পূর্ণসংখ্যা গুণন চলছে।

- একটি পূর্ণসংখ্যা বিভাজন একটি ভুল ফলাফল দিতে পারে যদি একটি বিলম্ব স্লটে শুরু হয়
নেওয়া শাখা বা একটি লাফ

-mfix-r4400
-mno-Fix-r4400
নির্দিষ্ট R4400 CPU ত্রুটি-বিচ্যুতি নিয়ে কাজ করুন:

- একটি ডবল-শব্দ বা একটি পরিবর্তনশীল স্থানান্তর কার্যকর হলে একটি ভুল ফলাফল দিতে পারে
একটি পূর্ণসংখ্যা বিভাগ শুরু করার পরপরই।

-mfix-r10000
-mno-Fix-r10000
নির্দিষ্ট R10000 ত্রুটি-বিচ্যুতি নিয়ে কাজ করুন:

- "ll"/"sc" ক্রমগুলি 3.0-এর আগে সংশোধনগুলিতে পারমাণবিকভাবে আচরণ নাও করতে পারে৷ তারা হতে পারে
2.6 এবং তার আগের রিভিশনে অচলাবস্থা।

এই বিকল্পটি শুধুমাত্র তখনই ব্যবহার করা যেতে পারে যখন লক্ষ্য আর্কিটেকচার শাখা-সম্ভাব্য সমর্থন করে
নির্দেশাবলী। -mfix-r10000 ডিফল্ট যখন -মার্চ = r10000 ব্যবহৃত হয়; -mno-Fix-r10000
অন্যথায় ডিফল্ট।

-mfix-vr4120
-mno-Fix-vr4120
নির্দিষ্ট VR4120 ত্রুটি-বিচ্যুতি নিয়ে কাজ করুন:

- "dmultu" সবসময় সঠিক ফলাফল দেয় না।

- "div" এবং "ddiv" সর্বদা সঠিক ফলাফল দেয় না যদি একটি অপারেন্ড হয়
নেতিবাচক

বিভাজন ত্রুটি-বিচ্যুতির জন্য সমাধানগুলি বিশেষ ফাংশনের উপর নির্ভর করে libgcc.a. এ
বর্তমানে, এই ফাংশনগুলি শুধুমাত্র "mips64vr*-elf" কনফিগারেশন দ্বারা প্রদান করা হয়।

অন্যান্য VR4120 ত্রুটি-বিচ্যুতির জন্য নির্দিষ্ট জোড়ার মধ্যে একটি NOP ঢোকানো প্রয়োজন
নির্দেশাবলী এই ত্রুটিগুলি অ্যাসেম্বলার দ্বারা পরিচালিত হয়, GCC নিজে নয়।

-mfix-vr4130
VR4130 "mflo"/"mfhi" ত্রুটি-বিচ্যুতি নিয়ে কাজ করুন। সমাধানগুলি দ্বারা বাস্তবায়িত হয়
জিসিসির পরিবর্তে অ্যাসেম্বলার, যদিও GCC "mflo" এবং "mfhi" ব্যবহার করা এড়িয়ে যায় যদি
VR4130 "macc", "macchi", "dmacc" এবং "dmacchi" নির্দেশাবলী পরিবর্তে উপলব্ধ।

-mfix-Sb1
-mno-Fix-Sb1
নির্দিষ্ট SB-1 CPU কোর ত্রুটি-বিচ্যুতি নিয়ে কাজ করুন। (এই পতাকাটি বর্তমানে SB-1 এর চারপাশে কাজ করে
সংশোধন 2 "F1" এবং "F2" ফ্লোটিং-পয়েন্ট ত্রুটি।)

-mr10k-ক্যাশে-ব্যারিয়ার=বিন্যাস
GCC-এর পার্শ্ব-প্রতিক্রিয়া এড়াতে ক্যাশে বাধা সন্নিবেশ করা উচিত কিনা তা নির্দিষ্ট করুন
R10K প্রসেসর নিয়ে জল্পনা।

অনেক প্রসেসরের সাথে সাধারণভাবে, R10K শর্তসাপেক্ষের ফলাফলের পূর্বাভাস দেওয়ার চেষ্টা করে
শাখা এবং অনুমানমূলকভাবে "গৃহীত" শাখা থেকে নির্দেশাবলী কার্যকর করে। এটা পরে
ভবিষ্যদ্বাণীকৃত ফলাফল ভুল হলে এই নির্দেশাবলী বাতিল করে। যাইহোক, R10K-তে,
এমনকি বাতিল করা নির্দেশাবলীর পার্শ্বপ্রতিক্রিয়া হতে পারে।

এই সমস্যাটি শুধুমাত্র কার্নেল স্টোরকে প্রভাবিত করে এবং সিস্টেমের উপর নির্ভর করে, কার্নেল লোড হয়।
একটি উদাহরণ হিসাবে, একটি অনুমানমূলকভাবে চালানো স্টোর ক্যাশে লক্ষ্য মেমরি লোড করতে পারে
এবং ক্যাশে লাইনটিকে নোংরা হিসাবে চিহ্নিত করুন, এমনকি যদি দোকান নিজেই পরে বাতিল হয়ে যায়। যদি একটি DMA
অপারেশন "নোংরা" লাইনটি ফ্লাশ করার আগে মেমরির একই এলাকায় লেখা হয়,
ক্যাশে করা ডেটা DMA-ed ডেটা ওভাররাইট করে। একটি সম্পূর্ণ জন্য R10K প্রসেসর ম্যানুয়াল দেখুন
বর্ণনা, অন্যান্য সম্ভাব্য সমস্যা সহ।

একটি সমাধান হল প্রতিটি মেমরি অ্যাক্সেস করার আগে ক্যাশে বাধা নির্দেশাবলী সন্নিবেশ করান
অনুমানমূলকভাবে মৃত্যুদন্ড কার্যকর করা হতে পারে এবং এটি বাতিল করা হলেও এর পার্শ্বপ্রতিক্রিয়া হতে পারে।
-mr10k-ক্যাশে-ব্যারিয়ার=বিন্যাস এই সমাধানের GCC এর বাস্তবায়ন নিয়ন্ত্রণ করে। এটা
অনুমান করা হয় যে নিম্নলিখিত অঞ্চলে যেকোন বাইটে রহিত অ্যাক্সেসের পাশ নেই
প্রভাব:

1. বর্তমান ফাংশন এর স্ট্যাক ফ্রেম দ্বারা দখল করা মেমরি;

2. একটি ইনকামিং স্ট্যাক আর্গুমেন্ট দ্বারা দখল করা মেমরি;

3. একটি লিঙ্ক-সময়-ধ্রুবক ঠিকানা সহ একটি বস্তু দ্বারা দখল করা স্মৃতি।

এই অঞ্চলগুলিতে অনুমানমূলক অ্যাক্সেস নিশ্চিত করা কার্নেলের দায়িত্ব৷
সত্যিই নিরাপদ।

যদি ইনপুট প্রোগ্রামে একটি ফাংশন ঘোষণা থাকে যেমন:

void foo ( void);

তাহলে "foo" এর বাস্তবায়ন অবশ্যই "j foo" এবং "jal foo" কার্যকর করার অনুমতি দেবে
অনুমানমূলকভাবে GCC এই সীমাবদ্ধতাকে সম্মান করে যে ফাংশনগুলি এটি নিজেই কম্পাইল করে। এটা
অ-GCC ফাংশন (যেমন হাতে লিখিত সমাবেশ কোড) একই কাজ আশা করে।

বিকল্পটির তিনটি রূপ রয়েছে:

-mr10k-cache-barrier=লোড-স্টোর
একটি লোড বা স্টোরের আগে একটি ক্যাশে বাধা সন্নিবেশ করুন যা অনুমানমূলকভাবে কার্যকর করা যেতে পারে
এবং গর্ভপাত করা হলেও এর পার্শ্বপ্রতিক্রিয়া হতে পারে।

-mr10k-cache-barrier=store
একটি স্টোরের আগে একটি ক্যাশে বাধা সন্নিবেশ করান যা অনুমানমূলকভাবে চালানো হতে পারে এবং
গর্ভপাত করা হলেও এর পার্শ্বপ্রতিক্রিয়া হতে পারে।

-mr10k-ক্যাশে-বাধা=কোনটি নয়
ক্যাশে বাধা সন্নিবেশ নিষ্ক্রিয়. এটি ডিফল্ট সেটিং।

-mflush-func =ফাংশন
-mno-flush-func
I এবং D ক্যাশে ফ্লাশ করার জন্য কল করার ফাংশনটি নির্দিষ্ট করে, অথবা এই ধরনের কোনো কল না করার জন্য
ফাংশন কল করা হলে, ফাংশনটিকে অবশ্যই সাধারণের মতো একই আর্গুমেন্ট নিতে হবে
"_flush_func()", অর্থাৎ, মেমরি রেঞ্জের ঠিকানা যার জন্য ক্যাশে হচ্ছে
ফ্লাশ করা হয়েছে, মেমরি রেঞ্জের আকার এবং 3 নম্বর (উভয় ক্যাশে ফ্লাশ করতে)। দ্য
ডিফল্ট লক্ষ্য GCC এর জন্য কনফিগার করা হয়েছে তার উপর নির্ভর করে, কিন্তু সাধারণত হয়
_ফ্লাশ_ফাঙ্ক or __cpu_flush.

mbranch-cost=NUM
শাখার খরচ মোটামুটি সেট করুন NUM "সহজ" নির্দেশাবলী। এই খরচ শুধুমাত্র একটি
হিউরিস্টিক এবং রিলিজ জুড়ে সামঞ্জস্যপূর্ণ ফলাফল তৈরির নিশ্চয়তা নেই। একটি শূন্য
খরচ অপ্রয়োজনীয়ভাবে ডিফল্ট নির্বাচন করে, যা এর উপর ভিত্তি করে -mtune বিন্যাস.

শাখা-সম্ভাব্য
-mno-শাখা-সম্ভাব্য
এর জন্য ডিফল্ট নির্বিশেষে শাখা সম্ভাব্য নির্দেশাবলীর ব্যবহার সক্ষম বা অক্ষম করুন
নির্বাচিত স্থাপত্য। ডিফল্টরূপে, শাখা সম্ভাব্য নির্দেশাবলী উত্পন্ন হতে পারে যদি
তারা নির্বাচিত আর্কিটেকচার দ্বারা সমর্থিত হয়. একটি ব্যতিক্রম হল MIPS32 এবং
MIPS64 আর্কিটেকচার এবং প্রসেসর যা সেই আর্কিটেকচারগুলিকে বাস্তবায়ন করে; তাদের জন্য,
শাখা সম্ভাব্য নির্দেশাবলী ডিফল্টরূপে তৈরি করা হয় না কারণ MIPS32 এবং
MIPS64 আর্কিটেকচারগুলি বিশেষভাবে তাদের ব্যবহারকে অবমূল্যায়ন করে।

-mfp- ব্যতিক্রম
-mno-fp-ব্যতিক্রম
FP ব্যতিক্রমগুলি সক্রিয় কিনা তা নির্দিষ্ট করে। এটি FP নির্দেশাবলীকে প্রভাবিত করে
কিছু প্রসেসরের জন্য নির্ধারিত। ডিফল্ট হল যে FP ব্যতিক্রমগুলি সক্রিয় করা হয়েছে৷

উদাহরণস্বরূপ, SB-1-এ, যদি FP ব্যতিক্রমগুলি নিষ্ক্রিয় করা হয়, এবং আমরা 64-বিট নির্গত করছি
কোড, তারপর আমরা উভয় FP পাইপ ব্যবহার করতে পারি। অন্যথায়, আমরা শুধুমাত্র একটি FP পাইপ ব্যবহার করতে পারি।

-mvr4130-সারিবদ্ধ
-mno-vr4130-সারিবদ্ধ
VR4130 পাইপলাইনটি দ্বিমুখী সুপারস্কেলার, কিন্তু শুধুমাত্র দুটি নির্দেশনা জারি করতে পারে
একসাথে যদি প্রথমটি 8-বাইট সারিবদ্ধ হয়। যখন এই বিকল্পটি সক্রিয় থাকে, GCC সারিবদ্ধ হয়
নির্দেশের জোড়া যা এটি মনে করে সমান্তরালভাবে কার্যকর করা উচিত।

VR4130 এর জন্য অপ্টিমাইজ করার সময় এই বিকল্পটি শুধুমাত্র একটি প্রভাব ফেলে৷ এটি সাধারণত কোড তৈরি করে
দ্রুত, কিন্তু এটি বড় করার খরচে। এটা ডিফল্টরূপে সক্রিয় করা হয়
অপ্টিমাইজেশান স্তর -ও3.

-msynci
-ম্নো-সিঙ্কি
এটিকে সমর্থন করে এমন আর্কিটেকচারগুলিতে "synci" নির্দেশাবলীর প্রজন্মকে সক্ষম (অক্ষম করুন) করুন৷
"__builtin___clear_cache()" হলে "synci" নির্দেশাবলী (যদি সক্ষম করা থাকে) তৈরি হয়
সংকলিত হয়।

এই বিকল্পটি "-mno-synci" তে ডিফল্ট, কিন্তু ডিফল্ট কনফিগার করে ওভাররাইড করা যেতে পারে
সঙ্গে "--সহ-সিঙ্কি"।

একক প্রসেসর সিস্টেমের জন্য কোড কম্পাইল করার সময়, "synci" ব্যবহার করা সাধারণত নিরাপদ।
যাইহোক, অনেক মাল্টি-কোর (SMP) সিস্টেমে, এটি নির্দেশকে বাতিল করে না
সমস্ত কোরে ক্যাশে এবং অনির্ধারিত আচরণ হতে পারে।

-ম্রেলাক্স-পিক-কলস
-এমনো-আরাম-পিক-কল
সাধারণত $25 রেজিস্টারের মাধ্যমে পাঠানো PIC কলগুলিকে সরাসরি কলে পরিণত করার চেষ্টা করুন।
এটি শুধুমাত্র তখনই সম্ভব যদি লিঙ্কার লিংক-টাইমে গন্তব্যের সমাধান করতে পারে এবং যদি
গন্তব্যটি সরাসরি কলের সীমার মধ্যে।

-ম্রেলাক্স-পিক-কলস ডিফল্ট যদি GCC একটি অ্যাসেম্বলার ব্যবহার করার জন্য কনফিগার করা হয় এবং a
লিঙ্কার যা ".reloc" সমাবেশ নির্দেশকে সমর্থন করে এবং "-mexplicit-relocs" আছে
প্রভাব "-mno-explicit-relocs" সহ, এই অপ্টিমাইজেশানটি দ্বারা সঞ্চালিত হতে পারে৷
অ্যাসেম্বলার এবং লিঙ্কার একা কম্পাইলারের সাহায্য ছাড়াই।

-mmcount-ra-ঠিকানা
-mno-mcount-ra-ঠিকানা
এমিট (এমিট করবেন না) কোড যা "_mcount" কে কলিং ফাংশনের রিটার্ন পরিবর্তন করতে দেয়
ঠিকানা সক্রিয় করা হলে, এই বিকল্পটি একটি নতুন সহ স্বাভাবিক "_mcount" ইন্টারফেস প্রসারিত করে
ra- ঠিকানা প্যারামিটার, যা "intptr_t *" টাইপ করে এবং $12 রেজিস্টারে পাস করা হয়।
"_mcount" তারপরে নিম্নলিখিত দুটি করে ফেরত ঠিকানা পরিবর্তন করতে পারে:

· $31 রেজিস্টারে নতুন ঠিকানা ফেরত দেওয়া।

নতুন ঠিকানা "* এ সংরক্ষণ করা হচ্ছেরা-ঠিকানা", যদি ra- ঠিকানা নননাল

ডিফল্ট হয় -mno-mcount-ra-ঠিকানা.

এমএমআইএক্স অপশন সমূহ

এই বিকল্পগুলি MMIX-এর জন্য সংজ্ঞায়িত করা হয়েছে:

-mlibfuncs
-mno-libfuncs
নির্দিষ্ট করুন যে অভ্যন্তরীণ লাইব্রেরি ফাংশনগুলি সংকলিত হচ্ছে, সমস্ত মান পাস করে
রেজিস্টার, আকার কোন ব্যাপার না.

-মেপসিলন
- mno-epsilon
ফ্লোটিং-পয়েন্ট তুলনা নির্দেশনা তৈরি করুন যা "rE" এর সাথে তুলনা করে
epsilon রেজিস্টার।

-মাবি=মিক্সওয়্যার
-মাবি=গ্নু
কোড তৈরি করুন যা ফাংশন প্যারামিটার পাস করে এবং মান ফেরত দেয় যা (কলে
ফাংশন) রেজিস্টার $0 এবং তার উপরে হিসাবে দেখা হয়, GNU ABI এর বিপরীতে যা গ্লোবাল ব্যবহার করে
$231 এবং তার উপরে নিবন্ধন করে।

-mzero-প্রসারিত
-mno-শূন্য-প্রসারিত
64 বিটের থেকে ছোট আকারে মেমরি থেকে ডেটা পড়ার সময়, শূন্য ব্যবহার করুন (ব্যবহার করবেন না)
সাইন-এক্সটেন্ডিং এর পরিবর্তে ডিফল্টরূপে লোড নির্দেশাবলী প্রসারিত করা।

-mknuthdiv
-mno-knuthdiv
একটি বিভক্তির ফলাফল একটি অবশিষ্ট প্রাপ্ত করুন ভাজক হিসাবে একই চিহ্ন আছে.
ডিফল্ট সহ, -mno-knuthdiv, অবশিষ্টাংশের চিহ্নটি চিহ্ন অনুসরণ করে
লভ্যাংশ উভয় পদ্ধতিই গাণিতিকভাবে বৈধ, পরেরটি প্রায় একচেটিয়াভাবে
ব্যবহার করা হয়েছে।

-mtoplevel-প্রতীক
-mno-টপলেভেল-প্রতীক
প্রিপেন্ড (প্রিপেন্ড করবেন না) a : সমস্ত বৈশ্বিক প্রতীকে, তাই সমাবেশ কোড ব্যবহার করা যেতে পারে
"PREFIX" সমাবেশ নির্দেশিকা সহ।

-মেল্ফ
ডিফল্টের পরিবর্তে ELF ফরম্যাটে একটি এক্সিকিউটেবল তৈরি করুন MMO দ্বারা ব্যবহৃত বিন্যাস
দ্য মিক্স সিমুলেটর

ব্রাঞ্চ-ভবিষ্যদ্বাণী
-mno-শাখা-ভবিষ্যদ্বাণী
স্থির শাখার পূর্বাভাস দেওয়ার সময় সম্ভাব্য-শাখা নির্দেশাবলী ব্যবহার করুন (ব্যবহার করবেন না)
একটি সম্ভাব্য শাখা নির্দেশ করে।

-mbase-ঠিকানা
-mno-বেস-ঠিকানা
ব্যবহার করে এমন কোড জেনারেট করুন (জেনারেট করবেন না) ভিত্তি ঠিকানাগুলি. একটি বেস ঠিকানা ব্যবহার করে
একটি জন্য স্বয়ংক্রিয়ভাবে একটি অনুরোধ (সংযোজনকারী এবং লিঙ্কার দ্বারা পরিচালিত) তৈরি করে
একটি বিশ্বব্যাপী রেজিস্টারে সেট আপ করা ধ্রুবক। রেজিস্টার এক বা একাধিক বেসের জন্য ব্যবহৃত হয়
রেজিস্টারে থাকা মান থেকে 0 থেকে 255 রেঞ্জের মধ্যে ঠিকানার অনুরোধ। দ্য
সাধারণত সংক্ষিপ্ত এবং দ্রুত কোড বাড়ে, কিন্তু বিভিন্ন তথ্য আইটেম সংখ্যা যে
সুরাহা করা যাবে সীমিত। এর মানে হল এমন একটি প্রোগ্রাম যা প্রচুর স্ট্যাটিক ডেটা ব্যবহার করে
প্রয়োজন হতে পারে -mno-বেস-ঠিকানা.

-একটি-প্রস্থান
-mno-একক-প্রস্থান
প্রতিটি ফাংশনে একটি একক প্রস্থান পয়েন্ট থাকতে বাধ্য করুন (জোর করবেন না) জেনারেট করা কোড।

MN10300 অপশন সমূহ

এইগুলো -m Matsushita MN10300 আর্কিটেকচারের জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-mmult-বাগ
MN10300 প্রসেসরের জন্য গুণিত নির্দেশাবলীতে বাগ এড়াতে কোড তৈরি করুন।
এটি ডিফল্ট।

-mno-mult-বাগ
MN10300 এর জন্য গুণিত নির্দেশাবলীতে বাগ এড়াতে কোড তৈরি করবেন না
প্রসেসর।

- mam33
AM33 প্রসেসরের জন্য নির্দিষ্ট বৈশিষ্ট্য ব্যবহার করে কোড তৈরি করুন।

-mno-am33
AM33 প্রসেসরের জন্য নির্দিষ্ট বৈশিষ্ট্য ব্যবহার করে কোড তৈরি করবেন না। এই হল
ডিফল্ট.

-mam33-2
AM33/2.0 প্রসেসরের জন্য নির্দিষ্ট বৈশিষ্ট্য ব্যবহার করে কোড তৈরি করুন।

- mam34
AM34 প্রসেসরের জন্য নির্দিষ্ট বৈশিষ্ট্য ব্যবহার করে কোড তৈরি করুন।

-mtune =cpu-টাইপ
নির্দেশাবলী নির্ধারণ করার সময় নির্দেশিত CPU প্রকারের সময় বৈশিষ্ট্য ব্যবহার করুন।
এটি লক্ষ্যযুক্ত প্রসেসরের প্রকার পরিবর্তন করে না। CPU টাইপ এর মধ্যে একটি হতে হবে
mn10300, am33, সকাল 33-2টা or am34.

-ম্রেটার্ন-পয়েন্টার-অন-ডি 0
একটি পয়েন্টার প্রদান করে এমন একটি ফাংশন তৈরি করার সময়, "a0" এবং উভয় ক্ষেত্রেই পয়েন্টারটি ফেরত দিন
"d0"। অন্যথায়, পয়েন্টারটি শুধুমাত্র "a0" এ ফেরত দেওয়া হয় এবং এই ধরনের কল করার চেষ্টা করা হয়
একটি প্রোটোটাইপ ছাড়া ফাংশন ত্রুটির ফলাফল. মনে রাখবেন যে এই বিকল্পটি দ্বারা চালু আছে
ডিফল্ট; ব্যবহার -mno-রিটার্ন-পয়েন্টার-অন-d0 এটি নিষ্ক্রিয় করা।

-mno-Crt0
সি রান-টাইম ইনিশিয়ালাইজেশন অবজেক্ট ফাইলে লিঙ্ক করবেন না।

-মরেলাক্স
লিঙ্কারকে নির্দেশ করুন যে এটি একটি শিথিলকরণ অপ্টিমাইজেশন পাস সঞ্চালন করা উচিত
শাখা, কল এবং পরম মেমরি ঠিকানা সংক্ষিপ্ত করুন। এই বিকল্পটি শুধুমাত্র একটি প্রভাব আছে
যখন চূড়ান্ত লিঙ্ক ধাপের জন্য কমান্ড লাইনে ব্যবহার করা হয়।

এই বিকল্পটি প্রতীকী ডিবাগিংকে অসম্ভব করে তোলে।

-মলিও
কম্পাইলারকে তৈরি করার অনুমতি দিন দীর্ঘ নির্দেশ শব্দ নির্দেশ যদি লক্ষ্য হয়
AM33 অথবা পরে. এটি ডিফল্ট। এই বিকল্পটি প্রিপ্রসেসর ম্যাক্রো সংজ্ঞায়িত করে
__LIW__.

-মনোলিউ
কম্পাইলারকে জেনারেট করার অনুমতি দেবেন না দীর্ঘ নির্দেশ শব্দ নির্দেশাবলী এই বিকল্প
প্রিপ্রসেসর ম্যাক্রো সংজ্ঞায়িত করে __NO_LIW__.

-mstelb
কম্পাইলারকে তৈরি করার অনুমতি দিন SETLB এবং LCC নির্দেশ যদি লক্ষ্য হয়
AM33 অথবা পরে. এটি ডিফল্ট। এই বিকল্পটি প্রিপ্রসেসর ম্যাক্রো সংজ্ঞায়িত করে
__SETLB__.

- mnosetlb
কম্পাইলারকে জেনারেট করার অনুমতি দেবেন না SETLB or LCC নির্দেশাবলী এই বিকল্পটি সংজ্ঞায়িত করে
প্রিপ্রসেসর ম্যাক্রো __NO_SETLB__.

সাহস অপশন সমূহ

-মেব
বড়-এন্ডিয়ান কোড তৈরি করুন। এই জন্য ডিফল্ট মক্সি-*-* কনফিগারেশনের।

-মেল
লিটল-এন্ডিয়ান কোড তৈরি করুন।

-mno-Crt0
সি রান-টাইম ইনিশিয়ালাইজেশন অবজেক্ট ফাইলে লিঙ্ক করবেন না।

পিডিপি -11 অপশন সমূহ

এই বিকল্পগুলি PDP-11-এর জন্য সংজ্ঞায়িত করা হয়েছে:

-এমএফপিইউ
হার্ডওয়্যার FPP ফ্লোটিং পয়েন্ট ব্যবহার করুন। এটি ডিফল্ট। (এফআইএস ফ্লোটিং পয়েন্ট
PDP-11/40 সমর্থিত নয়।)

-মেমসফট-ফ্লোট
হার্ডওয়্যার ফ্লোটিং পয়েন্ট ব্যবহার করবেন না।

-mac0
ফ্লোটিং-পয়েন্ট ফলাফল ac0 এ ফেরত দিন (ইউনিক্স অ্যাসেম্বলার সিনট্যাক্সে fr0)।

-mno-ac0
মেমরিতে ফ্লোটিং-পয়েন্ট ফলাফল ফেরত দিন। এটি ডিফল্ট।

-m40
একটি PDP-11/40 এর জন্য কোড তৈরি করুন।

-m45
একটি PDP-11/45 এর জন্য কোড তৈরি করুন। এটি ডিফল্ট।

-m10
একটি PDP-11/10 এর জন্য কোড তৈরি করুন।

-এমবিকপি-বিল্টিন
মেমরি কপি করার জন্য ইনলাইন "movmemhi" প্যাটার্ন ব্যবহার করুন। এটি ডিফল্ট।

-mbcopy
মেমরি কপি করার জন্য ইনলাইন "movmemhi" প্যাটার্ন ব্যবহার করবেন না।

-পুদিনা16
-mno-int32
16-বিট "int" ব্যবহার করুন। এটি ডিফল্ট।

-পুদিনা32
-mno-int16
32-বিট "int" ব্যবহার করুন।

-mfloat64
-mno-Float32
64-বিট "ফ্লোট" ব্যবহার করুন। এটি ডিফল্ট।

-mfloat32
-mno-Float64
32-বিট "ফ্লোট" ব্যবহার করুন।

-মাবশি
"abshi2" প্যাটার্ন ব্যবহার করুন। এটি ডিফল্ট।

-মনো-অবশি
"abshi2" প্যাটার্ন ব্যবহার করবেন না।

ব্রাঞ্চ-ব্যয়বহুল
ভান করুন যে শাখাগুলি ব্যয়বহুল। এটি কোড জেনারেশন নিয়ে পরীক্ষা করার জন্য
কেবল.

ব্রাঞ্চ-সস্তা
ভান করবেন না যে শাখাগুলি ব্যয়বহুল। এটি ডিফল্ট।

-মিউনিক্স-এএসএম
ইউনিক্স অ্যাসেম্বলার সিনট্যাক্স ব্যবহার করুন। কনফিগার করার সময় এটি ডিফল্ট pdp11-*-bsd.

-এমডিইসি-এএসএম
DEC অ্যাসেম্বলার সিনট্যাক্স ব্যবহার করুন। যেকোনো PDP-11 টার্গেটের জন্য কনফিগার করা হলে এটি ডিফল্ট
আর অন্যান্য pdp11-*-bsd.

পিকোচিপ অপশন সমূহ

এইগুলো -m পিকোচিপ বাস্তবায়নের জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-mae =ae_টাইপ
নির্দেশ সেট, রেজিস্টার সেট, এবং অ্যারের জন্য নির্দেশের সময়সূচী পরামিতি সেট করুন
উপাদান টাইপ ae_টাইপ. জন্য সমর্থিত মান ae_টাইপ হয় কোন, MUL, এবং ম্যাক.

-mae=যেকোনো একটি সম্পূর্ণ জেনেরিক AE প্রকার নির্বাচন করে। এই অপশন দিয়ে জেনারেট করা কোড চলে
অন্য যে কোনো AE প্রকারের উপর। কোডটি কম্পাইল করলে যতটা কার্যকর হবে ততটা কার্যকর নয়
একটি নির্দিষ্ট AE প্রকারের জন্য, এবং কিছু ধরণের অপারেশন (যেমন, গুণ) কাজ করে না
সব ধরনের AE-তে সঠিকভাবে।

-mae=MUL একটি MUL AE প্রকার নির্বাচন করে। এটি সংকলিত কোডের জন্য সবচেয়ে দরকারী AE প্রকার,
এবং ডিফল্ট।

-mae=MAC একটি DSP-শৈলী MAC AE নির্বাচন করে। এই বিকল্পের সাথে সংকলিত কোড ভুগতে পারে
বাইট (চার) ম্যানিপুলেশনের খারাপ কর্মক্ষমতা, যেহেতু ডিএসপি AE প্রদান করে না
বাইট লোড/স্টোরের জন্য হার্ডওয়্যার সমর্থন।

-চিহ্ন-রূপে-ঠিকানা
একটি লোড/স্টোরে ঠিকানা হিসাবে একটি প্রতীকের নাম সরাসরি ব্যবহার করতে কম্পাইলারটিকে সক্রিয় করুন
নির্দেশ, প্রথমে এটি একটি রেজিস্টারে লোড না করে। সাধারণত, এই ব্যবহার
বিকল্পটি বৃহত্তর প্রোগ্রাম তৈরি করে, যা বিকল্পটি ব্যবহার না করার চেয়ে দ্রুত চলে।
যাইহোক, ফলাফল প্রোগ্রাম থেকে প্রোগ্রামে পরিবর্তিত হয়, তাই এটি ব্যবহারকারীর বিকল্প হিসাবে রেখে দেওয়া হয়,
স্থায়ীভাবে সক্ষম হওয়ার পরিবর্তে।

-mno-অদক্ষ-সতর্কতা
অদক্ষ কোড তৈরির বিষয়ে সতর্কতা অক্ষম করে। এই সতর্কবার্তা হতে পারে
উত্পন্ন, উদাহরণস্বরূপ, কোড কম্পাইল করার সময় যা বাইট-স্তরের মেমরি অপারেশন করে
MAC AE টাইপের উপর। MAC AE-তে বাইট-স্তরের মেমরির জন্য কোনো হার্ডওয়্যার সমর্থন নেই
অপারেশন, তাই সমস্ত বাইট লোড/স্টোর অবশ্যই শব্দ লোড/স্টোর থেকে সংশ্লেষিত হতে হবে
অপারেশন এটি অকার্যকর এবং একটি সতর্কতা তৈরি করা হয়েছে যাতে আপনি নির্দেশ করেন
বাইট ক্রিয়াকলাপ এড়াতে কোডটি পুনরায় লিখতে হবে, বা এমন একটি AE টাইপ লক্ষ্য করতে হবে যাতে রয়েছে
প্রয়োজনীয় হার্ডওয়্যার সমর্থন। এই বিকল্পটি এই সতর্কতাগুলি নিষ্ক্রিয় করে।

পাওয়ারপিসি অপশন সমূহ

এই অধীনে তালিকাভুক্ত করা হয়

RL78 অপশন সমূহ

-msim
একটি সিমুলেটরের মধ্যে অপারেশন সমর্থন করার জন্য অতিরিক্ত টার্গেট লাইব্রেরিতে লিঙ্কগুলি।

-mmul=কোনটি নয়
-mmul = g13
-mmul = rl78
ব্যবহার করা হার্ডওয়্যার গুণন সমর্থনের ধরন নির্দিষ্ট করে। ডিফল্ট হয়
"কিছুই নয়", যা সফ্টওয়্যার গুণন ফাংশন ব্যবহার করে। "g13" বিকল্পটি এর জন্য
হার্ডওয়্যার শুধুমাত্র RL78/G13 টার্গেটে পেরিফেরাল গুন/ভাগ করে। "rl78" বিকল্প
RL78 সফ্টওয়্যার ম্যানুয়ালে সংজ্ঞায়িত স্ট্যান্ডার্ড হার্ডওয়্যার গুণনের জন্য।

আইবিএম আরএস/6000 এবং পাওয়ারপিসি অপশন সমূহ

এইগুলো -m IBM RS/6000 এবং PowerPC-এর জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-mpowerpc-gpopt
-mno-Fowerpc-gpopt
-mpowerpc-Gfxopt
-mno-Fowerpc-gfxopt
-mpowerpc64
-mno-powerpc64
-mmfcrf
-mno-mfcrf
-mpopcntb
-mno-popcntb
-mpopcntd
-mno-popcntd
-mfprnd
-mno-fprnd
-mcmpb
-mno-cmpb
-mmfpgpr
-mno-mfpgpr
-মহার্ড-ডিএফপি
-এমনো-হার্ড-ডিএফপি
আপনি প্রসেসরে কোন নির্দেশাবলী উপলব্ধ তা উল্লেখ করতে আপনি এই বিকল্পগুলি ব্যবহার করুন৷
ব্যবহার করছেন. GCC কনফিগার করার সময় এই বিকল্পগুলির ডিফল্ট মান নির্ধারণ করা হয়।
উল্লেখ করা -mcpu =cpu_type এই বিকল্পগুলির স্পেসিফিকেশন ওভাররাইড করে। আমরা
আপনি ব্যবহার করার সুপারিশ -mcpu =cpu_type উপরে তালিকাভুক্ত বিকল্পগুলির পরিবর্তে বিকল্প।

নির্দিষ্ট করা -mpowerpc-gpopt GCC-কে ঐচ্ছিক PowerPC আর্কিটেকচার ব্যবহার করার অনুমতি দেয়
ফ্লোটিং-পয়েন্ট বর্গমূল সহ সাধারণ উদ্দেশ্য গ্রুপের নির্দেশাবলী।
নির্দিষ্ট করা -mpowerpc-Gfxopt GCC-কে ঐচ্ছিক PowerPC আর্কিটেকচার ব্যবহার করার অনুমতি দেয়
গ্রাফিক্স গ্রুপের নির্দেশাবলী, ফ্লোটিং-পয়েন্ট নির্বাচন সহ।

সার্জারির -mmfcrf বিকল্পটি জিসিসিকে শর্ত নিবন্ধন ক্ষেত্র থেকে সরানো তৈরি করতে দেয়
নির্দেশাবলী POWER4 প্রসেসর এবং অন্যান্য প্রসেসরের উপর প্রয়োগ করা হয়েছে যা সমর্থন করে
পাওয়ারপিসি V2.01 আর্কিটেকচার। দ্য -mpopcntb বিকল্পটি জিসিসিকে পপকাউন্ট তৈরি করতে দেয়
এবং ডবল-নির্ভুলতা FP পারস্পরিক অনুমান নির্দেশ POWER5 এ প্রয়োগ করা হয়েছে
প্রসেসর এবং অন্যান্য প্রসেসর যা PowerPC V2.02 আর্কিটেকচার সমর্থন করে। দ্য
-mpopcntd বিকল্পটি GCC-এ প্রয়োগ করা পপকাউন্ট নির্দেশনা তৈরি করতে দেয়
POWER7 প্রসেসর এবং অন্যান্য প্রসেসর যা PowerPC V2.06 আর্কিটেকচার সমর্থন করে।
সার্জারির -mfprnd বিকল্পটি GCC-কে FP রাউন্ড থেকে পূর্ণসংখ্যা নির্দেশাবলী তৈরি করতে দেয়
POWER5+ প্রসেসর এবং PowerPC সমর্থনকারী অন্যান্য প্রসেসরে প্রয়োগ করা হয়েছে
V2.03 আর্কিটেকচার। দ্য -mcmpb বিকল্পটি জিসিসিকে তুলনা বাইট তৈরি করতে দেয়
নির্দেশাবলী POWER6 প্রসেসর এবং অন্যান্য প্রসেসরের উপর প্রয়োগ করা হয়েছে যা সমর্থন করে
পাওয়ারপিসি V2.05 আর্কিটেকচার। দ্য -mmfpgpr বিকল্পটি জিসিসিকে FP মুভ তৈরি করতে দেয়
POWER6X প্রসেসরে বাস্তবায়িত সাধারণ-উদ্দেশ্য রেজিস্টার নির্দেশাবলী থেকে/থেকে
অন্যান্য প্রসেসর যা বর্ধিত PowerPC V2.05 আর্কিটেকচার সমর্থন করে। দ্য -মহার্ড-ডিএফপি
বিকল্পটি জিসিসিকে প্রয়োগকৃত দশমিক ফ্লোটিং-পয়েন্ট নির্দেশাবলী তৈরি করতে দেয়
কিছু পাওয়ার প্রসেসর।

সার্জারির -mpowerpc64 বিকল্পটি জিসিসিকে অতিরিক্ত 64-বিট নির্দেশাবলী তৈরি করতে দেয়
সম্পূর্ণ PowerPC64 আর্কিটেকচারে পাওয়া যায় এবং জিপিআরকে 64-বিট, ডাবলওয়ার্ড হিসাবে বিবেচনা করা হয়
পরিমাণ GCC ডিফল্ট -mno-powerpc64.

-mcpu =cpu_type
এর জন্য আর্কিটেকচারের ধরন, রেজিস্টার ব্যবহার এবং নির্দেশের সময় নির্ধারণের পরামিতি সেট করুন
যন্ত্রের প্রকার cpu_type. জন্য সমর্থিত মান cpu_type হয় 401, 403, 405, 405fp, 440,
440fp, 464, 464fp, 476, 476fp, 505, 601, 602, 603, 603e, 604, 604e, 620, 630, 740,
7400, 7450, 750, 801, 821, 823, 860, 970, 8540, a2, e300c2, e300c3, e500mc, e500mc64,
e5500, e6500, ec603e, G3, G4, G5, দানব, power3, power4, power5, ক্ষমতা5+, power6,
শক্তি6x, power7, power8, পাওয়ারপিসি, powerpc64, powerpc64le, এবং rs64.

-mcpu=powerpc, -mcpu=powerpc64, এবং -mcpu=powerpc64le বিশুদ্ধ 32-বিট পাওয়ারপিসি নির্দিষ্ট করুন
(হয় এন্ডিয়ান), 64-বিট বিগ এন্ডিয়ান পাওয়ারপিসি এবং 64-বিট লিটল এন্ডিয়ান পাওয়ারপিসি
আর্কিটেকচার মেশিনের ধরন, একটি উপযুক্ত, জেনেরিক প্রসেসর মডেলের জন্য অনুমান করা হয়েছে
সময়সূচী উদ্দেশ্য.

অন্যান্য বিকল্পগুলি একটি নির্দিষ্ট প্রসেসর নির্দিষ্ট করে। সেই বিকল্পগুলির অধীনে কোড তৈরি করা হয়েছে
সেই প্রসেসরে সবচেয়ে ভালো চলে, এবং অন্যের উপর মোটেও নাও চলতে পারে।

সার্জারির -এমসিপিইউ বিকল্পগুলি স্বয়ংক্রিয়ভাবে নিম্নলিখিত বিকল্পগুলি সক্ষম বা নিষ্ক্রিয় করে:

-মালটিভিক -mfprnd -মহার্ড-ফ্লোট -mmfcrf - একাধিক -mpopcntb -mpopcntd -mpowerpc64
-mpowerpc-gpopt -mpowerpc-Gfxopt -একটি-ভাসা -mdouble-ালু -msimple-fpu -মস্ট্রিং
-mmulhw -mdlmzb -mmfpgpr -এমভিএসএক্স -mcrypto -mdirect-চলন -এমপাওয়ার8-ফিউশন
-এমপাওয়ার8-ভেক্টর -mquad-মেমরি -mquad-মেমরি-পারমাণবিক

কোনো নির্দিষ্ট CPU-র জন্য সেট করা নির্দিষ্ট বিকল্পগুলি কম্পাইলার সংস্করণগুলির মধ্যে পরিবর্তিত হয়,
সিপিইউর জন্য কোন সেটিং সর্বোত্তম কোড তৈরি করে বলে মনে হচ্ছে তার উপর নির্ভর করে; এটা না
অগত্যা প্রকৃত হার্ডওয়্যার এর ক্ষমতা প্রতিফলিত. যদি আপনি একটি সেট করতে চান
একটি নির্দিষ্ট মান পৃথক বিকল্প, আপনি পরে এটি নির্দিষ্ট করতে পারেন -এমসিপিইউ বিকল্প,
মত -mcpu=970 -mno-altivec.

AIX-এ, -মালটিভিক এবং -mpowerpc64 বিকল্পগুলি দ্বারা সক্রিয় বা নিষ্ক্রিয় করা হয় না -এমসিপিইউ
বর্তমানে বিকল্প কারণ AIX-এর এই বিকল্পগুলির জন্য সম্পূর্ণ সমর্থন নেই। আপনি পারেন
আপনি যদি নিশ্চিত হন যে এটি আপনার ক্ষেত্রে কাজ করবে তবে সেগুলি পৃথকভাবে সক্ষম বা নিষ্ক্রিয় করুন৷
পরিবেশ।

-mtune =cpu_type
মেশিনের প্রকারের জন্য নির্দেশের সময় নির্ধারণের পরামিতি সেট করুন cpu_type, কিন্তু সেট না
আর্কিটেকচারের ধরন বা রেজিস্টার ব্যবহার, যেমন -mcpu =cpu_type করে জন্য একই মান
cpu_type জন্য ব্যবহৃত হয় -mtune এর জন্য -এমসিপিইউ. উভয় নির্দিষ্ট করা হলে, কোড উত্পন্ন
দ্বারা সেট আর্কিটেকচার এবং রেজিস্টার ব্যবহার করে -এমসিপিইউ, কিন্তু নির্ধারিত পরামিতি দ্বারা সেট করা হয়েছে
-mtune.

-mcmodel=ছোট
ছোট মডেলের জন্য PowerPC64 কোড তৈরি করুন: TOC 64k এর মধ্যে সীমাবদ্ধ।

-mcmodel=মাঝারি
মাঝারি মডেলের জন্য PowerPC64 কোড তৈরি করুন: TOC এবং অন্যান্য স্ট্যাটিক ডেটা আপ হতে পারে
মোট 4G আকারে।

-mcmodel=বড়
বড় মডেলের জন্য PowerPC64 কোড তৈরি করুন: TOC আকারে 4G পর্যন্ত হতে পারে। অন্যান্য
ডেটা এবং কোড শুধুমাত্র 64-বিট ঠিকানা স্থান দ্বারা সীমাবদ্ধ।

-মালটিভিক
-mno-altivec
কোড তৈরি করুন যা AltiVec নির্দেশাবলী ব্যবহার করে (ব্যবহার করে না) এবং ব্যবহার সক্ষম করে
বিল্ট-ইন ফাংশন যা AltiVec নির্দেশ সেটে আরও সরাসরি অ্যাক্সেসের অনুমতি দেয়।
আপনি সেট করার প্রয়োজন হতে পারে -mabi=altivec AltiVec ABI এর সাথে বর্তমান ABI সামঞ্জস্য করতে
উন্নত বৈশিষ্ট্য।

কখন -মালটিভিক ব্যবহার করা হয়, পরিবর্তে -maltivec=le or -maltivec=হবে, উপাদান আদেশ
Altivec অভ্যন্তরীণ জন্য যেমন "vec_splat", "vec_extract", এবং "vec_insert" মিলবে
লক্ষ্যের শেষের সাথে সম্পর্কিত অ্যারে উপাদানের ক্রম। অর্থাৎ উপাদান
একটি বড়-এন্ডিয়ানকে লক্ষ্য করার সময় শূন্য একটি ভেক্টর রেজিস্টারের বামতম উপাদানটিকে চিহ্নিত করে
প্ল্যাটফর্ম, এবং একটি লক্ষ্য করার সময় একটি ভেক্টর রেজিস্টারের ডানদিকের উপাদানটিকে চিহ্নিত করে
লিটল-এন্ডিয়ান প্ল্যাটফর্ম।

-maltivec=হবে
বিগ-এন্ডিয়ান এলিমেন্ট অর্ডার ব্যবহার করে Altivec নির্দেশনা তৈরি করুন, তা নির্বিশেষে
লক্ষ্য বড়- বা সামান্য-এন্ডিয়ান। একটি বড়-এন্ডিয়ান লক্ষ্য করার সময় এটি ডিফল্ট
প্ল্যাটফর্ম।

উপাদান ক্রম Altivec অন্তর্নিহিত উপাদান সংখ্যা যেমন ব্যাখ্যা করতে ব্যবহৃত হয়
"vec_splat", "vec_extract", এবং "vec_insert"। ডিফল্টরূপে, এই অ্যারের সাথে মিলবে
এলিমেন্ট অর্ডার টার্গেট জন্য endianness অনুরূপ.

-maltivec=le
লিটল-এন্ডিয়ান এলিমেন্ট অর্ডার ব্যবহার করে Altivec নির্দেশাবলী তৈরি করুন, তা নির্বিশেষে
লক্ষ্য বড়- বা সামান্য-এন্ডিয়ান। একটু লক্ষ্য করার সময় এটি ডিফল্ট-
এন্ডিয়ান প্ল্যাটফর্ম। একটি বড়-এন্ডিয়ান লক্ষ্য করার সময় এই বিকল্পটি বর্তমানে উপেক্ষা করা হয়
প্ল্যাটফর্ম।

উপাদান ক্রম Altivec অন্তর্নিহিত উপাদান সংখ্যা যেমন ব্যাখ্যা করতে ব্যবহৃত হয়
"vec_splat", "vec_extract", এবং "vec_insert"। ডিফল্টরূপে, এই অ্যারের সাথে মিলবে
এলিমেন্ট অর্ডার টার্গেট জন্য endianness অনুরূপ.

-mvrsave
-mno-vrsave
AltiVec কোড তৈরি করার সময় VRSAVE নির্দেশাবলী তৈরি করুন।

-এমজেন-সেল-মাইক্রোকোড
সেল মাইক্রোকোড নির্দেশাবলী তৈরি করুন।

-mwarn-সেল-মাইক্রোকোড
একটি সেল মাইক্রোকোড নির্দেশ নির্গত হলে সতর্ক করুন৷ সেল মাইক্রোকোডের উদাহরণ
নির্দেশ একটি পরিবর্তনশীল স্থানান্তর.

-সুরক্ষিত-plt
অনুমতি দেয় এমন কোড তৈরি করুন ld এবং ld.so এর সাথে এক্সিকিউটেবল এবং শেয়ার করা লাইব্রেরি তৈরি করতে
নন-এক্সিকিউটেবল ".plt" এবং ".got" বিভাগ। এটি একটি PowerPC 32-বিট SYSV ABI বিকল্প।

-mbss-plt
কোড তৈরি করুন যা একটি BSS ".plt" বিভাগ ব্যবহার করে ld.so পূরণ করে, এবং ".plt" প্রয়োজন
এবং ".got" বিভাগগুলি লিখনযোগ্য এবং সম্পাদনযোগ্য উভয়ই। এটি একটি পাওয়ারপিসি 32-বিট
SYSV ABI বিকল্প।

-মিসেল
-mno-isel
এই সুইচটি ISEL নির্দেশাবলীর প্রজন্মকে সক্ষম বা নিষ্ক্রিয় করে।

-মিসেল=হ্যাঁ না
এই সুইচটি বাতিল করা হয়েছে। ব্যবহার করুন -মিসেল এবং -mno-isel পরিবর্তে.

-এমএসপিই
-mno-spe
এই সুইচটি এসপিই সিমড নির্দেশাবলী তৈরি করতে সক্ষম বা নিষ্ক্রিয় করে।

- প্রতিবন্ধী
-mno-জোড়া
এই সুইচটি PAIRED simd নির্দেশাবলীর প্রজন্মকে সক্ষম বা নিষ্ক্রিয় করে।

-mspe=হ্যাঁ না
এই বিকল্পটি বাতিল করা হয়েছে। ব্যবহার করুন -এমএসপিই এবং -mno-spe পরিবর্তে.

-এমভিএসএক্স
-mno-vsx
কোড তৈরি করুন যা ভেক্টর/স্কেলার (ভিএসএক্স) নির্দেশাবলী ব্যবহার করে (ব্যবহার করে না) এবং এছাড়াও
বিল্ট-ইন ফাংশনগুলির ব্যবহার সক্ষম করুন যা VSX-এ আরও সরাসরি অ্যাক্সেসের অনুমতি দেয়
নির্দেশনাবলী.

-mcrypto
-mno-ক্রিপ্টো
বিল্ট-ইন ফাংশনগুলির ব্যবহার (অক্ষম) সক্ষম করুন যা সরাসরি অ্যাক্সেসের অনুমতি দেয়৷
পাওয়ারপিসি আইএসএ-এর 2.07 সংস্করণে যোগ করা ক্রিপ্টোগ্রাফিক নির্দেশাবলী।

-mdirect-চলন
-mno-সরাসরি-সরানো
কোড তৈরি করুন যা ব্যবহার করে (ব্যবহার করে না) এর মধ্যে ডেটা সরানোর নির্দেশাবলী
সাধারণ উদ্দেশ্য রেজিস্টার এবং ভেক্টর/স্কেলার (VSX) রেজিস্টার যা যোগ করা হয়েছে
PowerPC ISA এর সংস্করণ 2.07।

-এমপাওয়ার8-ফিউশন
-mno-power8-ফিউশন
কিছু পূর্ণসংখ্যা ক্রিয়াকলাপ সংলগ্ন রাখে (না রাখে) এমন কোড তৈরি করুন যাতে
নির্দেশাবলী পাওয়ার8 এবং পরবর্তী প্রসেসরগুলিতে একসাথে ফিউজ করা যেতে পারে।

-এমপাওয়ার8-ভেক্টর
-mno-power8-ভেক্টর
ভেক্টর এবং স্কেলার নির্দেশাবলী ব্যবহার করে (ব্যবহার করে না) কোড তৈরি করুন
PowerPC ISA এর 2.07 সংস্করণে যোগ করা হয়েছে। এছাড়াও অন্তর্নির্মিত ফাংশন ব্যবহার সক্রিয় করুন
যেটি ভেক্টর নির্দেশাবলীতে আরও সরাসরি অ্যাক্সেসের অনুমতি দেয়।

-mquad-মেমরি
-mno-quad-মেমরি
অ-পারমাণবিক কোয়াড শব্দ মেমরি নির্দেশাবলী ব্যবহার করে (ব্যবহার করে না) কোড তৈরি করুন।
সার্জারির -mquad-মেমরি বিকল্পের জন্য 64-বিট মোড ব্যবহার করা প্রয়োজন।

-mquad-মেমরি-পারমাণবিক
-mno-quad-মেমরি-পারমাণবিক
পারমাণবিক কোয়াড শব্দ মেমরি নির্দেশাবলী ব্যবহার করে (ব্যবহার করে না) কোড তৈরি করুন। দ্য
-mquad-মেমরি-পারমাণবিক বিকল্পের জন্য 64-বিট মোড ব্যবহার করা প্রয়োজন।

-mfloat-gprs=হ্যাঁ/একক/ডবল/না
-mfloat-gprs
এই স্যুইচটি ফ্লোটিং-পয়েন্ট অপারেশনের জেনারেশনকে সক্ষম বা অক্ষম করে
এটিকে সমর্থন করে এমন আর্কিটেকচারের জন্য সাধারণ-উদ্দেশ্য নিবন্ধন।

যুক্তি হাঁ or একক একক-নির্ভুলতা ফ্লোটিং-পয়েন্ট ব্যবহার করতে সক্ষম করে
অপারেশন।

যুক্তি ডবল একক এবং ডবল-নির্ভুলতা ফ্লোটিং-পয়েন্ট ব্যবহার করতে সক্ষম করে
অপারেশন।

যুক্তি না। সাধারণ-উদ্দেশ্য রেজিস্টারে ফ্লোটিং-পয়েন্ট অপারেশন নিষ্ক্রিয় করে।

এই বিকল্পটি বর্তমানে শুধুমাত্র MPC854x এ উপলব্ধ।

-m32
-m64
ডারউইন এবং SVR32 লক্ষ্যগুলির 64-বিট বা 4-বিট পরিবেশের জন্য কোড তৈরি করুন (সহ
জিএনইউ/লিনাক্স)। 32-বিট এনভায়রনমেন্ট 32 বিট এবং int, লং এবং পয়েন্টার সেট করে
কোড জেনারেট করে যা যেকোনো PowerPC ভেরিয়েন্টে চলে। 64-বিট পরিবেশ int সেট করে
32 বিট এবং দীর্ঘ এবং 64 বিট পয়েন্টার, এবং PowerPC64 এর জন্য কোড তৈরি করে
-mpowerpc64.

-মফুল-টোক
-mno-Fp-in-toc
-ম্নো-এসএম-ইন-টোক
-মিনিমাল-টক
TOC (বিষয়বস্তুর সারণী) এর প্রজন্ম পরিবর্তন করুন, যা প্রত্যেকের জন্য তৈরি করা হয়েছে
এক্সিকিউটেবল ফাইল. দ্য -মফুল-টোক বিকল্পটি ডিফল্টরূপে নির্বাচিত হয়। সেক্ষেত্রে জি.সি.সি
প্রতিটি অনন্য অ-স্বয়ংক্রিয় পরিবর্তনশীল রেফারেন্সের জন্য কমপক্ষে একটি TOC এন্ট্রি বরাদ্দ করে
আপনার প্রোগ্রাম। GCC এছাড়াও TOC-তে ফ্লোটিং-পয়েন্ট ধ্রুবক রাখে। যাইহোক, শুধুমাত্র
16,384টি এন্ট্রি TOC-তে উপলব্ধ।

আপনি যদি একটি লিঙ্কার ত্রুটি বার্তা পান যে আপনি উপলব্ধ উপলভ্য ওভারফ্লো হয়েছে
TOC স্থান, আপনি ব্যবহার করা TOC স্থান পরিমাণ কমাতে পারেন -mno-Fp-in-toc এবং
-ম্নো-এসএম-ইন-টোক অপশন। -mno-Fp-in-toc GCC-কে ফ্লোটিং-পয়েন্ট বসাতে বাধা দেয়
TOC এ ধ্রুবক এবং -ম্নো-এসএম-ইন-টোক GCC কে গণনা করার জন্য কোড তৈরি করতে বাধ্য করে
একটি ঠিকানার যোগফল এবং রান টাইমে একটি ধ্রুবক এই যোগফলটি TOC-তে রাখার পরিবর্তে।
আপনি এই বিকল্পগুলির একটি বা উভয় নির্দিষ্ট করতে পারেন। প্রতিটি জিসিসি খুব উত্পাদন কারণ
TOC স্থান সংরক্ষণের খরচে সামান্য ধীর এবং বড় কোড।

আপনি এই দুটি বিকল্প উল্লেখ করার পরেও যদি TOC-তে স্থান ফুরিয়ে যায়,
উল্লেখ -মিনিমাল-টক পরিবর্তে. এই বিকল্পের কারণে GCC শুধুমাত্র একটি TOC এন্ট্রি করতে পারে
প্রতিটি ফাইল। যখন আপনি এই বিকল্পটি নির্দিষ্ট করেন, GCC কোড তৈরি করে যা ধীর এবং বড় হয়
কিন্তু যা অত্যন্ত সামান্য TOC স্থান ব্যবহার করে। আপনি শুধুমাত্র এই বিকল্পটি ব্যবহার করতে চাইতে পারেন
যেসব ফাইলে কম ঘন ঘন এক্সিকিউট করা কোড থাকে।

-maix64
-maix32
64-বিট AIX ABI এবং কলিং কনভেনশন সক্ষম করুন: 64-বিট পয়েন্টার, 64-বিট "লং" টাইপ, এবং
তাদের সমর্থন করার জন্য প্রয়োজনীয় অবকাঠামো। নির্দিষ্ট করা -maix64 বোঝা -mpowerpc64,
যখন -maix32 64-বিট ABI নিষ্ক্রিয় করে এবং বোঝায় -mno-powerpc64. GCC ডিফল্ট
-maix32.

-mxl-কম্প্যাট
-mno-xl-compat
AIX- ব্যবহার করার সময় IBM XL কম্পাইলার শব্দার্থবিদ্যার সাথে আরও ঘনিষ্ঠভাবে সামঞ্জস্যপূর্ণ কোড তৈরি করুন
সামঞ্জস্যপূর্ণ ABI। এর বাইরে প্রোটোটাইপ করা ফাংশনে ফ্লোটিং-পয়েন্ট আর্গুমেন্ট পাস করুন
আর্গুমেন্ট এফপিআর ছাড়াও স্ট্যাকে সংরক্ষণ এলাকা (RSA) নিবন্ধন করুন। অনুমান করো না
128-বিট দীর্ঘ দ্বিগুণ মানের মধ্যে সবচেয়ে উল্লেখযোগ্য ডবল সঠিকভাবে বৃত্তাকার হয় যখন
মান তুলনা এবং দ্বিগুণ রূপান্তর. দীর্ঘ দ্বিগুণ জন্য XL প্রতীক নাম ব্যবহার করুন
সমর্থন রুটিন।

AIX কলিং কনভেনশন বর্ধিত করা হয়েছিল কিন্তু একটি পরিচালনা করার জন্য প্রাথমিকভাবে নথিভুক্ত করা হয়নি
একটি ফাংশন কল করার অস্পষ্ট K&R C কেস যা এর আর্গুমেন্টের ঠিকানা নেয়
ঘোষণার চেয়ে কম যুক্তি। আইবিএম এক্সএল কম্পাইলার ফ্লোটিং-পয়েন্ট আর্গুমেন্ট অ্যাক্সেস করে
একটি সাবরুটিন ছাড়া কম্পাইল করা হলে স্ট্যাক থেকে RSA-তে ফিট করবেন না
অপ্টিমাইজেশান কারণ স্ট্যাকে সবসময় ফ্লোটিং-পয়েন্ট আর্গুমেন্ট সংরক্ষণ করা হয়
অদক্ষ এবং খুব কমই প্রয়োজন, এই বিকল্পটি ডিফল্টরূপে সক্রিয় নয় এবং শুধুমাত্র
অপ্টিমাইজেশান ছাড়াই IBM XL কম্পাইলার দ্বারা সংকলিত সাবরুটিন কল করার সময় প্রয়োজনীয়।

-এমপিই
সহায়তা আইবিএম আরএস/6000 SP সমান্তরাল পরিবেশ (PE)। ব্যবহার করার জন্য লেখা একটি অ্যাপ্লিকেশন লিঙ্ক করুন
অ্যাপ্লিকেশন চালানোর জন্য সক্রিয় করার জন্য বিশেষ স্টার্টআপ কোড সহ বার্তা পাস। দ্য
সিস্টেমে অবশ্যই স্ট্যান্ডার্ড অবস্থানে PE ইনস্টল থাকতে হবে (/usr/lpp/ppe.poe/), অথবা
চশমা ফাইলের সাথে ওভাররাইড করা আবশ্যক -চশমা = উপযুক্ত নির্দিষ্ট করার বিকল্প
ডিরেক্টরি অবস্থান। সমান্তরাল পরিবেশ থ্রেড সমর্থন করে না, তাই -এমপিই
বিকল্প এবং - থ্রেড বিকল্পটি বেমানান।

ক্ষতিকর-প্রাকৃতিক
ক্ষতিকর শক্তি
AIX, 32-বিট ডারউইন এবং 64-বিট পাওয়ারপিসি GNU/Linux-এ, বিকল্প ক্ষতিকর-প্রাকৃতিক
বৃহত্তর প্রকারের ABI-সংজ্ঞায়িত প্রান্তিককরণকে ওভাররাইড করে, যেমন ফ্লোটিং-পয়েন্ট ডাবলস,
তাদের প্রাকৃতিক আকার-ভিত্তিক সীমানায়। পছন্দ ক্ষতিকর শক্তি জিসিসিকে নির্দেশ দেয়
ABI-নির্দিষ্ট প্রান্তিককরণ নিয়ম অনুসরণ করুন। GCC মানক প্রান্তিককরণে ডিফল্ট
ABI তে সংজ্ঞায়িত করা হয়েছে।

64-বিট ডারউইনে, প্রাকৃতিক প্রান্তিককরণ ডিফল্ট, এবং ক্ষতিকর শক্তি এটি না
সমর্থিত।

-মেমসফট-ফ্লোট
-মহার্ড-ফ্লোট
এমন কোড তৈরি করুন যা ফ্লোটিং-পয়েন্ট রেজিস্টার সেট ব্যবহার করে না (ব্যবহার করে)। সফটওয়্যার
আপনি ব্যবহার করলে ফ্লোটিং-পয়েন্ট এমুলেশন প্রদান করা হয় -মেমসফট-ফ্লোট বিকল্প, এবং পাস
লিঙ্ক করার সময় GCC-এর বিকল্প।

-একটি-ভাসা
-mdouble-ালু
একক- বা ডাবল-নির্ভুল ফ্লোটিং-পয়েন্ট অপারেশনের জন্য কোড তৈরি করুন।
-mdouble-ালু বোঝা -একটি-ভাসা.

-msimple-fpu
হার্ডওয়্যার ফ্লোটিং-পয়েন্ট ইউনিটের জন্য "sqrt" এবং "div" নির্দেশাবলী তৈরি করবেন না।

-mfpu =নাম
ফ্লোটিং-পয়েন্ট ইউনিটের ধরন উল্লেখ করুন। এর জন্য বৈধ মান নাম হয় sp_lite (সমতুল্য
-একটি-ভাসা -msimple-fpu), dp_lite (সমতুল্য -mdouble-ালু -msimple-fpu),
sp_full (সমতুল্য -একটি-ভাসা), এবং dp_full (সমতুল্য -mdouble-ালু).

-mxilinx-fpu
Xilinx PPC 405/440-এ ফ্লোটিং-পয়েন্ট ইউনিটের জন্য অপ্টিমাইজেশন সম্পাদন করুন।

- একাধিক
-mno-একাধিক
কোড তৈরি করুন যা ব্যবহার করে (ব্যবহার করে না) লোড একাধিক শব্দ নির্দেশাবলী এবং
একাধিক শব্দ নির্দেশ সংরক্ষণ করুন। এই নির্দেশাবলী ডিফল্টরূপে উত্পন্ন হয়
POWER সিস্টেম, এবং PowerPC সিস্টেমে তৈরি হয় না। ব্যবহার করবেন না - একাধিক সামান্য উপর-
endian PowerPC সিস্টেম, যেহেতু প্রসেসর থাকা অবস্থায় সেই নির্দেশগুলি কাজ করে না
লিটল-এন্ডিয়ান মোড। ব্যতিক্রমগুলি হল PPC740 এবং PPC750 যা এইগুলিকে অনুমতি দেয়
লিটল-এন্ডিয়ান মোডে নির্দেশাবলী।

-মস্ট্রিং
-mno-স্ট্রিং
লোড স্ট্রিং নির্দেশাবলী এবং স্টোর ব্যবহার করে (ব্যবহার করে না) কোড তৈরি করুন
স্ট্রিং শব্দ নির্দেশাবলী একাধিক নিবন্ধন সংরক্ষণ এবং ছোট ব্লক চালনা করতে. এইগুলো
নির্দেশাবলী ডিফল্টরূপে POWER সিস্টেমে তৈরি হয়, এবং PowerPC-তে তৈরি হয় না
সিস্টেম ব্যবহার করবেন না -মস্ট্রিং লিটল-এন্ডিয়ান পাওয়ারপিসি সিস্টেমে, যেহেতু সেগুলি
প্রসেসর লিটল-এন্ডিয়ান মোডে থাকলে নির্দেশাবলী কাজ করে না। ব্যতিক্রম
হল PPC740 এবং PPC750 যা এই নির্দেশাবলী লিটল-এন্ডিয়ান মোডে অনুমতি দেয়।

-মুপডেট
-mno-আপডেট
কোড তৈরি করুন যা ব্যবহার করে (ব্যবহার করে না) লোড বা স্টোর নির্দেশাবলী যা আপডেট করে
গণনাকৃত মেমরি অবস্থানের ঠিকানায় বেস রেজিস্টার। এই নির্দেশাবলী
ডিফল্টরূপে উৎপন্ন হয়। ব্যবহার করলে -mno-আপডেট, মধ্যে একটি ছোট জানালা আছে
স্ট্যাক পয়েন্টার আপডেট হওয়ার সময় এবং আগের ফ্রেমের ঠিকানা
সংরক্ষিত, যার মানে কোড যা স্ট্যাক ফ্রেমে বাধা বা সংকেত জুড়ে চলে
দূষিত তথ্য পান।

-mavoid-সূচিবদ্ধ-ঠিকানা
-mno-এড়িয়ে যাওয়া-সূচিবদ্ধ-ঠিকানা
সূচীকৃত লোড বা স্টোরের ব্যবহার এড়াতে (এড়াতে না) চেষ্টা করে এমন কোড তৈরি করুন
নির্দেশাবলী এই নির্দেশাবলী পাওয়ার 6 প্রসেসরগুলিতে কর্মক্ষমতা জরিমানা করতে পারে
নির্দিষ্ট পরিস্থিতিতে, যেমন 16M অতিক্রম করে এমন বড় অ্যারের মধ্য দিয়ে যাওয়ার সময়
সীমানা Power6 টার্গেট করার সময় এই বিকল্পটি ডিফল্টরূপে সক্রিয় থাকে এবং নিষ্ক্রিয় করা হয়
অন্যথায়।

-মফিউজড-এমএডিডি
-মনো-ফিউজড-এমএডিডি
এমন কোড তৈরি করুন যা ফ্লোটিং-পয়েন্ট গুন এবং জমা করে (ব্যবহার করে না) ব্যবহার করে
নির্দেশাবলী হার্ডওয়্যার ভাসমান পয়েন্ট হলে এই নির্দেশাবলী ডিফল্টরূপে তৈরি করা হয়
ব্যবহৃত হয়. যন্ত্রনির্ভর -মফিউজড-এমএডিডি বিকল্পটি এখন মেশিনে ম্যাপ করা হয়েছে-
স্বাধীন -ffp-চুক্তি=দ্রুত বিকল্প, এবং -মনো-ফিউজড-এমএডিডি ম্যাপ করা হয়
-ffp-চুক্তি=বন্ধ.

-mmulhw
-mno-mulhw
কোড তৈরি করুন যা ব্যবহার করে (ব্যবহার করে না) অর্ধ-শব্দ গুণিত এবং গুণ-সঞ্চয়
IBM 405, 440, 464 এবং 476 প্রসেসরের নির্দেশাবলী। এই নির্দেশাবলী হল
সেই প্রসেসরগুলিকে লক্ষ্য করার সময় ডিফল্টরূপে উৎপন্ন হয়।

-mdlmzb
-mno-dlmzb
কোড তৈরি করুন যা স্ট্রিং-সার্চ ব্যবহার করে (ব্যবহার করে না) dlmzb আইবিএম-এর নির্দেশ
405, 440, 464 এবং 476 প্রসেসর। এই নির্দেশটি ডিফল্টরূপে তৈরি হয় যখন
যারা প্রসেসর টার্গেট করা.

-mno-বিট-সারিবদ্ধ
-mbit-সারিবদ্ধ
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে কাঠামো এবং ইউনিয়নকে জোর করে না
বিট-ক্ষেত্রের বেস টাইপের সাথে সারিবদ্ধ করার জন্য বিট-ক্ষেত্র রয়েছে।

উদাহরণস্বরূপ, ডিফল্টরূপে 8টি "আনসাইন করা" বিট-ক্ষেত্র ছাড়া আর কিছুই নেই এমন একটি কাঠামো
দৈর্ঘ্য 1 একটি 4-বাইট সীমারেখার সাথে সারিবদ্ধ এবং 4 বাইটের আকার রয়েছে। ব্যবহার করে
-mno-বিট-সারিবদ্ধ, গঠনটি একটি 1-বাইটের সীমানায় সারিবদ্ধ এবং আকারে 1 বাইট।

-mno-কঠোর-সারিবদ্ধ
-mstrict-সারিবদ্ধ
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে অনুমান করা হয় না যে আনলাইনড মেমরি
রেফারেন্স সিস্টেম দ্বারা পরিচালিত হয়.

- পুনরায় স্থানান্তরযোগ্য
-এমনো-রিলোকেটেবল
কোড তৈরি করুন যা একটি স্ট্যাটিক এক্সিকিউটেবলকে একটিতে স্থানান্তরিত করার অনুমতি দেয় (অনুমতি দেয় না)
রান টাইমে ভিন্ন ঠিকানা। একটি সাধারণ এমবেডেড পাওয়ারপিসি সিস্টেম লোডার হওয়া উচিত
".fixup" এ তালিকাভুক্ত ".got2" এবং 4-বাইট অবস্থানের সম্পূর্ণ বিষয়বস্তু স্থানান্তর করুন
বিভাগ, এই বিকল্প দ্বারা উত্পন্ন 32-বিট ঠিকানাগুলির একটি টেবিল। এই কাজ করার জন্য, সব
একসাথে সংযুক্ত বস্তুর সাথে কম্পাইল করা আবশ্যক - পুনরায় স্থানান্তরযোগ্য or -ম্রেলোক্যাটেবল-লিব.
- পুনরায় স্থানান্তরযোগ্য কোড স্ট্যাকটিকে একটি 8-বাইটের সীমানায় সারিবদ্ধ করে।

-ম্রেলোক্যাটেবল-লিব
-mno-রিলোকেটেবল-লিব
মত - পুনরায় স্থানান্তরযোগ্য, -ম্রেলোক্যাটেবল-লিব স্ট্যাটিক অনুমতি দিতে একটি ".fixup" বিভাগ তৈরি করে
এক্সিকিউটেবলগুলি রান টাইমে স্থানান্তরিত হবে, কিন্তু -ম্রেলোক্যাটেবল-লিব ব্যবহার করে না
এর ছোট স্ট্যাক প্রান্তিককরণ - পুনরায় স্থানান্তরযোগ্য. সঙ্গে কম্পাইল অবজেক্ট -ম্রেলোক্যাটেবল-লিব may
এর যেকোন সংমিশ্রণের সাথে সংকলিত বস্তুর সাথে লিঙ্ক করা - পুনরায় স্থানান্তরযোগ্য অপশন।

-mno-toc
-mtoc
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে অনুমান করা হয় না যে রেজিস্টার 2-এ রয়েছে
প্রোগ্রামে ব্যবহৃত ঠিকানাগুলির দিকে নির্দেশ করে একটি বিশ্বব্যাপী অঞ্চলের একটি পয়েন্টার।

- সামান্য
- সামান্য-এন্ডিয়ান
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে প্রসেসরের জন্য সামান্য-তে কোড কম্পাইল করে
এন্ডিয়ান মোড। দ্য - সামান্য-এন্ডিয়ান বিকল্প হিসাবে একই - সামান্য.

-বিগ
-বিগ-এন্ডিয়ান
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে প্রসেসরের জন্য বড়-তে কোড কম্পাইল করে
এন্ডিয়ান মোড। দ্য -বিগ-এন্ডিয়ান বিকল্প হিসাবে একই -বিগ.

-মডিনামিক-নো-পিক
ডারউইন এবং ম্যাক ওএস এক্স সিস্টেমে, কোড কম্পাইল করুন যাতে এটি স্থানান্তরযোগ্য না হয় তবে তা
এর বাহ্যিক রেফারেন্সগুলি স্থানান্তরযোগ্য। ফলাফল কোড জন্য উপযুক্ত
অ্যাপ্লিকেশন, কিন্তু শেয়ার করা লাইব্রেরি নয়।

-একটি-ছবি-বেস
PIC ঠিকানার জন্য ব্যবহৃত রেজিস্টারকে লোড করার পরিবর্তে শুধুমাত্র পঠনযোগ্য হিসাবে বিবেচনা করুন
প্রতিটি ফাংশনের জন্য প্রস্তাবনা। রানটাইম সিস্টেম এটি শুরু করার জন্য দায়ী
কার্যকরী শুরু হওয়ার আগে একটি উপযুক্ত মান দিয়ে নিবন্ধন করুন।

-prioritize-restricted-insns=অগ্রাধিকার
এই বিকল্পটি ডিসপ্যাচ-স্লটে সীমাবদ্ধ অগ্রাধিকারকে নিয়ন্ত্রণ করে
দ্বিতীয় শিডিউল পাসের সময় নির্দেশাবলী। যুক্তি অগ্রাধিকার মান নেয়
0, 1, বা 2 কোন, সর্বোচ্চ, বা দ্বিতীয় সর্বোচ্চ (যথাক্রমে) অগ্রাধিকার প্রদান করা
প্রেরণ-স্লট সীমাবদ্ধ নির্দেশাবলী।

-msched-ব্যয়বহুল-dep=নির্ভরতা_প্রকার
এই বিকল্পটি নিয়ন্ত্রণ করে কোন নির্ভরতাগুলি লক্ষ্যের সময় ব্যয়বহুল বলে বিবেচিত হয়
নির্দেশের সময়সূচী। যুক্তি নির্ভরতা_প্রকার নিম্নলিখিত একটি লাগে
মান:

না। কোন নির্ভরতা ব্যয়বহুল নয়।

সব সমস্ত নির্ভরতা ব্যয়বহুল।

true_store_to_load
স্টোর থেকে লোড পর্যন্ত সত্যিকারের নির্ভরতা ব্যয়বহুল।

স্টোর_টো_লোড
দোকান থেকে লোড কোন নির্ভরতা ব্যয়বহুল.

সংখ্যা
যে কোনো নির্ভরতা যার জন্য লেটেন্সি এর থেকে বেশি বা সমান সংখ্যা ব্যয়বহুল

-মিনসার্ট-শেড-নপস =পরিকল্পনা
এই বিকল্পটি দ্বিতীয় সময় নির্ধারণের সময় কোন NOP সন্নিবেশ স্কিম ব্যবহার করা হয় তা নিয়ন্ত্রণ করে
পাস যুক্তি পরিকল্পনা নিম্নলিখিত মানগুলির মধ্যে একটি নেয়:

না। NOP ঢোকাবেন না।

প্যাড NOPs সঙ্গে প্যাড যে কোনো ডিসপ্যাচ গ্রুপ যে খালি ইস্যু স্লট আছে, অনুযায়ী
শিডিউলারের গ্রুপিং।

regroup_exact
ব্যয়বহুল নির্ভরশীল insns কে আলাদা গোষ্ঠীতে বাধ্য করতে NOP গুলি সন্নিবেশ করান৷ ঠিক ঢোকান
অনুমান অনুযায়ী, একটি নতুন গ্রুপে একটি insn জোর করার জন্য যতগুলি NOPs প্রয়োজন
প্রসেসর গ্রুপিং।

সংখ্যা
ব্যয়বহুল নির্ভরশীল insns কে আলাদা গোষ্ঠীতে বাধ্য করতে NOP গুলি সন্নিবেশ করান৷ ঢোকান সংখ্যা
NOPs একটি নতুন গ্রুপে একটি insn জোরপূর্বক.

-mcall-sysv
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে কলিং কনভেনশন ব্যবহার করে কোড কম্পাইল করে
সিস্টেম V অ্যাপ্লিকেশন বাইনারি ইন্টারফেসের মার্চ 1995 খসড়া মেনে চলুন, পাওয়ারপিসি
প্রসেসর সম্পূরক। আপনি GCC ব্যবহার করে কনফিগার না করা পর্যন্ত এটি ডিফল্ট
powerpc-*-eabiaix.

-mcall-sysv-eabi
-mcall-eabi
উভয় নির্দিষ্ট করুন -mcall-sysv এবং -মেয়াবি অপশন।

-mcall-sysv-noabi
উভয় নির্দিষ্ট করুন -mcall-sysv এবং -এমনো-ইবি অপশন।

-mcall-aixdesc
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে AIX অপারেটিং সিস্টেমের জন্য কোড কম্পাইল করে।

-mcall-linux
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে লিনাক্স-ভিত্তিক GNU-এর জন্য কোড কম্পাইল করা হয়
পদ্ধতি.

-mcall-freebsd
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে FreeBSD অপারেটিং এর জন্য কোড কম্পাইল করে
পদ্ধতি.

-mcall-netbsd
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেম নেটবিএসডি অপারেটিং এর জন্য কোড কম্পাইল করে
পদ্ধতি.

-mcall-openbsd
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে OpenBSD অপারেটিং এর জন্য কোড কম্পাইল করে
পদ্ধতি.

-maix-struct-রিটার্ন
মেমরিতে সমস্ত কাঠামো ফেরত দিন (যেমন AIX ABI দ্বারা নির্দিষ্ট করা হয়েছে)।

-msvr4-struct-রিটার্ন
রেজিস্টারে 8 বাইটের চেয়ে ছোট কাঠামো ফেরত দিন (যেমন SVR4 ABI দ্বারা নির্দিষ্ট করা হয়েছে)।

-মাবি=abi-টাইপ
একটি নির্দিষ্ট এক্সটেনশন সহ বর্তমান ABI প্রসারিত করুন, অথবা এই ধরনের এক্সটেনশন মুছে ফেলুন। বৈধ
মান হয় আলটিভেক, no-altivec, spe, no-spe, ibmlongdouble, ieeelongdouble, elfv1,
elfv2.

-মাবি=স্পে
SPE ABI এক্সটেনশন সহ বর্তমান ABI প্রসারিত করুন। এটি ডিফল্ট ABI পরিবর্তন করে না,
পরিবর্তে এটি বর্তমান ABI-তে SPE ABI এক্সটেনশন যোগ করে।

-মাবি=নো-স্পে
বর্তমান ABI-এর জন্য Book-E SPE ABI এক্সটেনশনগুলি অক্ষম করুন৷

-mabi=ibmlongdouble
IBM বর্ধিত-নির্ভুলতা লং ডবল ব্যবহার করতে বর্তমান ABI পরিবর্তন করুন। এটি একটি পাওয়ারপিসি
32-বিট SYSV ABI বিকল্প।

-mabi=ieeelongdouble
IEEE এক্সটেন্ডেড-প্রিসিশন লং ডবল ব্যবহার করতে বর্তমান ABI পরিবর্তন করুন। এটি একটি পাওয়ারপিসি
32-বিট লিনাক্স এবিআই বিকল্প।

-mabi=elfv1
ELFv1 ABI ব্যবহার করতে বর্তমান ABI পরিবর্তন করুন। এটি বিগ-এন্ডিয়ানের জন্য ডিফল্ট ABI
পাওয়ারপিসি 64-বিট লিনাক্স। ডিফল্ট ABI ওভাররাইড করার জন্য বিশেষ সিস্টেম সমর্থন প্রয়োজন এবং
দর্শনীয় উপায়ে ব্যর্থ হওয়ার সম্ভাবনা রয়েছে।

-mabi=elfv2
ELFv2 ABI ব্যবহার করতে বর্তমান ABI পরিবর্তন করুন। এটি অল্পের জন্য ডিফল্ট ABI-
এন্ডিয়ান পাওয়ারপিসি 64-বিট লিনাক্স। ডিফল্ট ABI ওভাররাইড করার জন্য বিশেষ সিস্টেম প্রয়োজন
সমর্থন এবং দর্শনীয় উপায়ে ব্যর্থ হওয়ার সম্ভাবনা রয়েছে।

-এমপ্রোটোটাইপ
-mno-প্রোটোটাইপ
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে অনুমান করা হয় যে সমস্ত কল পরিবর্তনশীল আর্গুমেন্টে
ফাংশন সঠিকভাবে প্রোটোটাইপ করা হয়. অন্যথায়, কম্পাইলার একটি নির্দেশ সন্নিবেশ করা আবশ্যক
কন্ডিশন কোড রেজিস্টারের বিট 6 সেট বা ক্লিয়ার করতে প্রতিটি নন-প্রোটোটাইপ কল করার আগে
(CR) ফ্লোটিং-পয়েন্টে ফ্লোটিং-পয়েন্টের মানগুলি পাস করা হয়েছে কিনা তা নির্দেশ করতে
ফাংশন পরিবর্তনশীল আর্গুমেন্ট গ্রহণের ক্ষেত্রে নিবন্ধন করে। সঙ্গে -এমপ্রোটোটাইপ, শুধুমাত্র কল
প্রোটোটাইপ ভেরিয়েবল আর্গুমেন্ট ফাংশন সেট বা বিট পরিষ্কার করতে.

-msim
এমবেডেড পাওয়ারপিসি সিস্টেমে, অনুমান করুন যে স্টার্টআপ মডিউল বলা হয় sim-crt0.o এবং
যে স্ট্যান্ডার্ড সি লাইব্রেরি হয় libsim.a এবং libc.a. এই জন্য ডিফল্ট
powerpc-*-eabisim কনফিগারেশনের।

-এমএমভিএমই
এমবেডেড পাওয়ারপিসি সিস্টেমে, অনুমান করুন যে স্টার্টআপ মডিউল বলা হয় crt0.o এবং
স্ট্যান্ডার্ড সি লাইব্রেরি হয় libmvme.a এবং libc.a.

- পাগল
এমবেডেড পাওয়ারপিসি সিস্টেমে, অনুমান করুন যে স্টার্টআপ মডিউল বলা হয় crt0.o এবং
স্ট্যান্ডার্ড সি লাইব্রেরি হয় libads.a এবং libc.a.

- myellowknife
এমবেডেড পাওয়ারপিসি সিস্টেমে, অনুমান করুন যে স্টার্টআপ মডিউল বলা হয় crt0.o এবং
স্ট্যান্ডার্ড সি লাইব্রেরি হয় libyk.a এবং libc.a.

-এমভিএক্সওয়ার্কস
সিস্টেম V.4 এবং এম্বেড করা PowerPC সিস্টেমে, আপনি একটি জন্য কম্পাইল করছেন তা উল্লেখ করুন
VxWorks সিস্টেম।

-সদস্য
এমবেডেড পাওয়ারপিসি সিস্টেমে, সেট করুন PPC_EMB ELF পতাকা হেডারে বিট নির্দেশ করতে
যে eabi বর্ধিত স্থানান্তর ব্যবহার করা হয়।

-মেয়াবি
-এমনো-ইবি
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে এমবেডেডকে মেনে চলে (না)
অ্যাপ্লিকেশন বাইনারি ইন্টারফেস (EABI), যা সিস্টেমে পরিবর্তনের একটি সেট
V.4 স্পেসিফিকেশন। নির্বাচন করা -মেয়াবি মানে স্ট্যাকটি একটি 8-বাইটে সারিবদ্ধ
সীমানা, EABI পরিবেশ সেট আপ করার জন্য একটি ফাংশন "__eabi" কে "প্রধান" থেকে ডাকা হয়,
এবং -msdata বিকল্প দুটি পৃথক ছোট ডেটা নির্দেশ করতে "r2" এবং "r13" উভয়ই ব্যবহার করতে পারে
এলাকা নির্বাচন করা -এমনো-ইবি মানে স্ট্যাক একটি 16-বাইট সীমারেখার সাথে সারিবদ্ধ, না
EABI ইনিশিয়ালাইজেশন ফাংশনকে "প্রধান" থেকে বলা হয়, এবং -msdata বিকল্প শুধুমাত্র ব্যবহার করে
"r13" একটি একক ছোট ডেটা এলাকা নির্দেশ করতে। দ্য -মেয়াবি আপনি যদি বিকল্পটি ডিফল্টরূপে চালু থাকে
যেকোনো একটি ব্যবহার করে GCC কনফিগার করা হয়েছে powerpc*-*-eabi* অপশন।

-msdata=eabi
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে, ছোট ইনিশিয়ালাইজড "const" গ্লোবাল এবং রাখুন
মধ্যে স্ট্যাটিক তথ্য .sdata2 বিভাগ, যা রেজিস্টার "r2" দ্বারা নির্দেশিত হয়। ছোট রাখুন
প্রারম্ভিক নন-"কনস্ট" গ্লোবাল এবং স্ট্যাটিক ডেটা .sdata বিভাগ, যা নির্দেশিত
"r13" নিবন্ধনের মাধ্যমে। ছোট অপ্রবর্তিত গ্লোবাল এবং স্ট্যাটিক ডেটা রাখুন .sbss
বিভাগ, যা সংলগ্ন .sdata অধ্যায়. দ্য -msdata=eabi বিকল্প হয়
সঙ্গে বেমানান - পুনরায় স্থানান্তরযোগ্য বিকল্প। দ্য -msdata=eabi বিকল্পটিও সেট করে
-সদস্য বিকল্প।

-msdata=sysv
সিস্টেম V.4 এবং এম্বেডেড পাওয়ারপিসি সিস্টেমে, ছোট গ্লোবাল এবং স্ট্যাটিক ডেটা রাখুন
.sdata বিভাগ, যা রেজিস্টার "r13" দ্বারা নির্দেশিত হয়। ছোট অপ্রচলিত বিশ্বব্যাপী রাখুন
এবং স্ট্যাটিক ডেটা .sbss বিভাগ, যা সংলগ্ন .sdata অধ্যায়. দ্য
-msdata=sysv বিকল্পের সাথে বেমানান - পুনরায় স্থানান্তরযোগ্য বিকল্প।

-msdata=ডিফল্ট
-msdata
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে, যদি -মেয়াবি ব্যবহার করা হয়, একই কোড কম্পাইল করুন
as -msdata=eabi, অন্যথায় হিসাবে একই কোড কম্পাইল -msdata=sysv.

-msdata=ডেটা
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে, ছোট বৈশ্বিক ডেটা রাখুন .sdata
অধ্যায়. তে ছোট অপ্রচলিত বিশ্বব্যাপী ডেটা রাখুন .sbss অধ্যায়. ব্যবহার করবেন না
যদিও ছোট ডেটা অ্যাড্রেস করতে "r13" নিবন্ধন করুন। এই ডিফল্ট আচরণ যদি না
অন্যান্য -msdata অপশন ব্যবহার করা হয়।

-msdata=কোনটি নয়
-ম্নো-এসডিএটা
এমবেডেড পাওয়ারপিসি সিস্টেমে, সমস্ত প্রারম্ভিক গ্লোবাল এবং স্ট্যাটিক ডেটা তে রাখুন .ডেটা
বিভাগে, এবং সমস্ত অপ্রাথমিক ডেটা .বিএসএস অধ্যায়.

-ব্লক-মুভ-ইনলাইন-সীমা=NUM
ইনলাইন সমস্ত ব্লক মুভ (যেমন "memcpy" বা স্ট্রাকচার কপিতে কল) বা এর চেয়ে কম
সমান NUM বাইট এর জন্য সর্বনিম্ন মান NUM 32-বিট লক্ষ্যে 32 বাইট এবং 64
64-বিট লক্ষ্যে বাইট। ডিফল্ট মান টার্গেট-নির্দিষ্ট।

-G NUM
এমবেডেড পাওয়ারপিসি সিস্টেমে, গ্লোবাল এবং স্ট্যাটিক আইটেম এর থেকে কম বা সমান রাখুন NUM
সাধারণ ডেটা বা BSS বিভাগের পরিবর্তে ছোট ডেটা বা BSS বিভাগে বাইট করুন।
গতানুগতিক, NUM 8. দ্য -G NUM সুইচ এছাড়াও লিঙ্কার পাস করা হয়. সমস্ত মডিউল
একই সঙ্গে কম্পাইল করা উচিত -G NUM মান।

-mregnames
-mno-regnames
সিস্টেম V.4 এবং এমবেডেড পাওয়ারপিসি সিস্টেমে রেজিস্টার নামগুলি নির্গত করে (না)
প্রতীকী ফর্ম ব্যবহার করে সমাবেশ ভাষা আউটপুট।

-মলং কল
-মনো-লংকল
ডিফল্টরূপে ধরে নিন যে সমস্ত কল অনেক দূরে যাতে একটি দীর্ঘ এবং আরও ব্যয়বহুল
কলিং ক্রম প্রয়োজন. এটি 32 মেগাবাইটের বেশি দূরের কলের জন্য প্রয়োজন
(33,554,432 বাইট) বর্তমান অবস্থান থেকে। একটি সংক্ষিপ্ত কল উত্পন্ন হয় যদি
কম্পাইলার জানে যে কলটি এত দূরে হতে পারে না। এই সেটিং দ্বারা ওভাররাইড করা যেতে পারে
"shortcall" ফাংশন অ্যাট্রিবিউট, অথবা "#pragma" দ্বারা দীর্ঘ কল(0) "।

কিছু লিঙ্কার রেঞ্জের বাইরের কল সনাক্ত করতে এবং আঠালো কোড তৈরি করতে সক্ষম
মাছি. এই সিস্টেমগুলিতে, দীর্ঘ কলগুলি অপ্রয়োজনীয় এবং ধীর কোড তৈরি করে। হিসাবে
এই লেখার মধ্যে, AIX লিঙ্কার এটি করতে পারে, যেমনটি PowerPC/64-এর জন্য GNU লিঙ্কার করতে পারে। এটা
32-বিট পাওয়ারপিসি সিস্টেমের জন্যও GNU লিঙ্কারে এই বৈশিষ্ট্যটি যোগ করার পরিকল্পনা করা হয়েছে।

ডারউইন/পিপিসি সিস্টেমে, "#pragma longcall" তৈরি করে "jbsr callee, L42", প্লাস একটি শাখা
দ্বীপ (আঠালো কোড)। দুটি লক্ষ্য ঠিকানা কলী এবং শাখার প্রতিনিধিত্ব করে
দ্বীপ ডারউইন/পিপিসি লিঙ্কার প্রথম ঠিকানা পছন্দ করে এবং একটি "bl callee" তৈরি করে
যদি PPC "bl" নির্দেশ সরাসরি কলে পৌঁছায়; অন্যথায়, লিঙ্কার
শাখা দ্বীপ কল করতে "bl L42" তৈরি করে। শাখা দ্বীপ সংযুক্ত করা হয়
কলিং ফাংশনের বডি; এটি কলির সম্পূর্ণ 32-বিট ঠিকানা গণনা করে এবং
এটা লাফ

Mach-O (ডারউইন) সিস্টেমে, এই বিকল্পটি কম্পাইলার নির্গতকে আঠার দিকে নির্দেশ করে
প্রতিটি সরাসরি কল, এবং ডারউইন লিঙ্কার এটি ব্যবহার বা বাতিল করার সিদ্ধান্ত নেয়।

ভবিষ্যতে, লিঙ্কার পরিচিত হলে GCC সমস্ত লংকল স্পেসিফিকেশন উপেক্ষা করতে পারে
আঠা তৈরি করা।

-mtls-মার্কার
-mno-tls-মার্কার
"__tls_get_addr" তে কলগুলিকে চিহ্নিত করুন (চিহ্নিত করবেন না) ফাংশনটি নির্দিষ্ট করে একটি স্থানান্তর সহ
যুক্তি. স্থানান্তর লিঙ্কারকে নির্ভরযোগ্যভাবে ফাংশন কলের সাথে যুক্ত করার অনুমতি দেয়
TLS অপ্টিমাইজেশানের জন্য যুক্তি সেটআপ নির্দেশাবলী, যা GCC কে আরও ভাল করার অনুমতি দেয়
ক্রম নির্ধারণ করুন।

- থ্রেড
এর সাথে মাল্টিথ্রেডিংয়ের জন্য সমর্থন যোগ করে pthreads লাইব্রেরি এই বিকল্পটির জন্য পতাকা সেট করে
প্রিপ্রসেসর এবং লিঙ্কার উভয়ই।

-mrecip
-mno-রেসিপি
এই বিকল্পটি পারস্পরিক অনুমান এবং পারস্পরিক বর্গমূল অনুমানের ব্যবহার সক্ষম করে
এর পরিবর্তে নির্ভুলতা বাড়ানোর জন্য অতিরিক্ত নিউটন-র্যাফসন পদক্ষেপ সহ নির্দেশাবলী
ভাসমান-বিন্দু আর্গুমেন্টের জন্য একটি ভাগ বা বর্গমূল এবং ভাগ করা। আপনি ব্যবহার করা উচিত
দ্য ফাস্ট-গণিত ব্যবহার করার সময় বিকল্প -mrecip (অথবা কম পক্ষে -ফানসেফ-গণিত-অপ্টিমাইজেশন,
-সসীম-গণিত-শুধুমাত্র, -ফ্রেসিপ্রোকাল-গণিত এবং -fno-ট্র্যাপিং-গণিত) উল্লেখ্য যে যখন
অনুক্রমের থ্রুপুট সাধারণত অ-এর থ্রুপুট থেকে বেশি হয়
পারস্পরিক নির্দেশনা, অনুক্রমের নির্ভুলতা 2 ulp পর্যন্ত হ্রাস করা যেতে পারে
(অর্থাৎ 1.0 এর বিপরীত 0.99999994 সমান) পারস্পরিক বর্গমূলের জন্য।

-mrecip =মনোনীত করা
এই বিকল্পটি নিয়ন্ত্রণ করে কোন পারস্পরিক অনুমান নির্দেশাবলী ব্যবহার করা যেতে পারে। মনোনীত করা ইহা একটি
কমা দ্বারা পৃথক করা বিকল্পগুলির তালিকা, যার আগে একটি "!" হতে পারে। বিকল্পটি উল্টাতে:
"সমস্ত": সমস্ত অনুমান নির্দেশাবলী সক্ষম করুন, "ডিফল্ট": ডিফল্ট নির্দেশাবলী সক্ষম করুন,
সমতুল্য -mrecip, "কিছুই নয়": সমস্ত অনুমান নির্দেশাবলী অক্ষম করুন, এর সমতুল্য৷
-mno-রেসিপি; "div": উভয় একক জন্য পারস্পরিক আনুমানিক নির্দেশাবলী সক্ষম করুন
এবং দ্বিগুণ নির্ভুলতা; "divf": একক-নির্ভুল পারস্পরিক অনুমান সক্ষম করুন
নির্দেশাবলী; "divd": দ্বিগুণ-নির্ভুল পারস্পরিক অনুমান সক্ষম করুন
নির্দেশাবলী; "rsqrt": পারস্পরিক বর্গমূল আনুমানিক নির্দেশাবলী সক্ষম করুন
একক এবং ডবল নির্ভুলতার জন্য; "rsqrtf": একক-নির্ভুলতা পারস্পরিক সক্ষম করুন
বর্গমূল আনুমানিক নির্দেশাবলী; "rsqrtd": ডবল-নির্ভুলতা সক্ষম করুন
পারস্পরিক বর্গমূল আনুমানিক নির্দেশাবলী;

সুতরাং, উদাহরণস্বরূপ, -mrecip=all,!rsqrtd সমস্ত পারস্পরিক অনুমান সক্ষম করে
নির্দেশাবলী, "FRSQRTE", "XSRSQRTEDP", এবং "XVRSQRTEDP" নির্দেশাবলী ছাড়া
যা ডাবল-নির্ভুল পারস্পরিক বর্গমূল গণনা পরিচালনা করে।

-mrecip-নির্ভুলতা
-mno-রেসিপি-নির্ভুলতা
অনুমান করুন (অনুমান করবেন না) যে পারস্পরিক অনুমান নির্দেশাবলী উচ্চতর প্রদান করে-
পাওয়ারপিসি এবিআই দ্বারা বাধ্যতামূলক করার চেয়ে নির্ভুল অনুমান। নির্বাচন করা -mcpu=power6,
-mcpu=power7 or -mcpu=power8 স্বয়ংক্রিয়ভাবে নির্বাচন করে -mrecip-নির্ভুলতা. দ্বিগুন-
নির্ভুলতা বর্গমূল অনুমান নির্দেশাবলী কম-এ ডিফল্টরূপে তৈরি হয় না
যথার্থ মেশিন, যেহেতু তারা একটি অনুমান প্রদান করে না যা তিনের পরে একত্রিত হয়
ধাপ।

-mveclibabi =আদর্শ
একটি বহিরাগত লাইব্রেরি ব্যবহার করে অভ্যন্তরীণ ভেক্টরাইজ করার জন্য ABI প্রকারটি নির্দিষ্ট করে।
বর্তমানে সমর্থিত একমাত্র প্রকার হল "ভর", যা IBM-এর ব্যবহার নির্দিষ্ট করে
ব্যবহার করে অভ্যন্তরীণ ভেক্টরাইজ করার জন্য গাণিতিক ত্বরণ সাবসিস্টেম (MASS) লাইব্রেরি
বহিরাগত লাইব্রেরি। 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",
পাওয়ার2 এর জন্য কোড তৈরি করার সময় "tanhd4", এবং "tanhf7"। উভয় -ফ্রি-ভেক্টরাইজ এবং
-ফানসেফ-গণিত-অপ্টিমাইজেশন এছাড়াও সক্রিয় করা আবশ্যক। MASS লাইব্রেরি হতে হবে
লিঙ্কের সময় নির্দিষ্ট করা হয়েছে।

-mfriz
-এমনো-ফ্রিজ
জেনারেট করুন (জেনারেট করবেন না) "friz" নির্দেশ যখন -ফানসেফ-গণিত-অপ্টিমাইজেশন
বিকল্পটি 64-বিট পূর্ণসংখ্যাতে ফ্লোটিং-পয়েন্ট মানগুলির রাউন্ডিং অপ্টিমাইজ করতে ব্যবহৃত হয় এবং
ফ্লোটিং পয়েন্টে ফিরে যান। "friz" নির্দেশ একই মান ফেরত দেয় না যদি
ফ্লোটিং-পয়েন্ট সংখ্যা একটি পূর্ণসংখ্যার মধ্যে মাপসই করার জন্য খুব বড়।

-পয়েন্টার-টু-নেস্টেড-ফাংশন
-mno-পয়েন্টার-টু-নেস্টেড-ফাংশন
স্ট্যাটিক চেইন রেজিস্টার (r11) কখন
AIX এবং 64-বিট লিনাক্স সিস্টেমে একটি পয়েন্টারের মাধ্যমে কল করা যেখানে একটি ফাংশন পয়েন্টার
একটি 3-শব্দের বর্ণনাকারীর দিকে নির্দেশ করে যা ফাংশনের ঠিকানা, TOC মান লোড করতে হবে
খাতা r2, এবং স্ট্যাটিক চেইন মান রেজিস্টারে লোড করতে হবে r11. দ্য
-পয়েন্টার-টু-নেস্টেড-ফাংশন ডিফল্টরূপে চালু আছে। আপনি পয়েন্টার মাধ্যমে কল করতে পারবেন না
নেস্টেড ফাংশন বা ফাংশনগুলির পয়েন্টার অন্যান্য ভাষায় কম্পাইল করা যা ব্যবহার করে
স্ট্যাটিক চেইন ব্যবহার করলে -mno-পয়েন্টার-টু-নেস্টেড-ফাংশন.

-msave-toc-পরোক্ষ
-mno-সংরক্ষণ-toc-পরোক্ষ
সংরক্ষিত স্ট্যাকের অবস্থানে TOC মান সংরক্ষণ করতে কোড তৈরি করুন (জেনারেট করবেন না)
ফাংশন প্রোলোগে যদি ফাংশনটি AIX এবং 64-বিটের একটি পয়েন্টারের মাধ্যমে কল করে
লিনাক্স সিস্টেম। যদি TOC মানটি প্রস্তাবনায় সংরক্ষিত না হয় তবে এটি ঠিক আগে সংরক্ষিত হয়
পয়েন্টার মাধ্যমে কল. দ্য -mno-সংরক্ষণ-toc-পরোক্ষ বিকল্পটি ডিফল্ট।

-mcompat-Align-parm
-mno-compat- অ্যালাইন-পারম
সর্বোচ্চ প্রান্তিককরণের সাথে কাঠামোর পরামিতিগুলি পাস করতে কোড তৈরি করুন (জেনারেট করবেন না)
64 বিটের, GCC এর পুরানো সংস্করণগুলির সাথে সামঞ্জস্যের জন্য।

GCC এর পুরানো সংস্করণগুলি (4.9.0 এর আগে) ভুলভাবে একটি কাঠামোর প্যারামিটার সারিবদ্ধ করেনি
একটি 128-বিট সীমানায় যখন সেই কাঠামোতে 128-বিট প্রয়োজন এমন একটি সদস্য থাকে
প্রান্তিককরণ GCC এর সাম্প্রতিক সংস্করণে এটি সংশোধন করা হয়েছে। এই বিকল্পটি ব্যবহার করা যেতে পারে
এর পুরানো সংস্করণগুলির সাথে সংকলিত ফাংশনের সাথে সামঞ্জস্যপূর্ণ কোড তৈরি করতে
জিসিসি।

কম্পাইলার এই সংস্করণে, -mcompat-Align-parm ডিফল্ট, যখন ছাড়া
লিনাক্স ELFv2 ABI ব্যবহার করে।

RX অপশন সমূহ

এই কমান্ড-লাইন বিকল্পগুলি RX লক্ষ্যগুলির জন্য সংজ্ঞায়িত করা হয়েছে:

-m64bit-ডাবলস
-m32bit-ডাবলস
"ডাবল" ডেটা টাইপকে 64 বিট করুন (-m64bit-ডাবলস) বা 32 বিট (-m32bit-ডাবলস)
মাপে. ডিফল্ট হয় -m32bit-ডাবলস. বিঃদ্রঃ RX ফ্লোটিং-পয়েন্ট হার্ডওয়্যার শুধুমাত্র কাজ করে
32-বিট মানগুলিতে, তাই ডিফল্ট -m32bit-ডাবলস.

-এফপিইউ
-নোফপু
সক্ষম করে (-এফপিইউ) অথবা নিষ্ক্রিয় করে (-নোফপু) RX ফ্লোটিং-পয়েন্ট হার্ডওয়্যারের ব্যবহার। দ্য
ডিফল্ট জন্য সক্রিয় করা হয় RX600 সিরিজ এবং জন্য নিষ্ক্রিয় RX200 সিরিজ.

ফ্লোটিং-পয়েন্ট নির্দেশাবলী শুধুমাত্র 32-বিট ফ্লোটিং-পয়েন্ট মানগুলির জন্য তৈরি করা হয়,
যাইহোক, তাই FPU হার্ডওয়্যার দ্বিগুণ জন্য ব্যবহার করা হয় না যদি -m64bit-ডাবলস বিকল্প হয়
ব্যবহার করা হয়েছে।

বিঃদ্রঃ যদি -এফপিইউ তারপর বিকল্প সক্রিয় করা হয় -ফানসেফ-গণিত-অপ্টিমাইজেশন এছাড়াও সক্রিয় করা হয়
স্বয়ংক্রিয়ভাবে. এর কারণ হল RX FPU নির্দেশাবলী নিজেরাই অনিরাপদ৷

-mcpu =নাম
লক্ষ্য করার জন্য RX CPU-এর ধরন নির্বাচন করে। বর্তমানে তিন ধরনের সমর্থিত,
জাতিবাচক RX600 এবং RX200 সিরিজ হার্ডওয়্যার এবং নির্দিষ্ট RX610 সিপিইউ. ডিফল্ট হয়
RX600.

মধ্যে শুধুমাত্র পার্থক্য RX600 এবং RX610 যে হয় RX610 সমর্থন করে না
"MVTIPL" নির্দেশ।

সার্জারির RX200 সিরিজের একটি হার্ডওয়্যার ফ্লোটিং-পয়েন্ট ইউনিট নেই এবং তাই -নোফপু সক্রিয় করা হয়
ডিফল্টরূপে যখন এই ধরনের নির্বাচন করা হয়।

-বিগ-এন্ডিয়ান-ডেটা
-মিলিটল-এন্ডিয়ান-ডেটা
বিগ-এন্ডিয়ান ফরম্যাটে ডেটা সংরক্ষণ করুন (কিন্তু কোড নয়)। ডিফল্ট হয়
-মিলিটল-এন্ডিয়ান-ডেটা, অর্থাৎ লিটল-এন্ডিয়ান ফরম্যাটে ডেটা সংরক্ষণ করা।

-msmall-ডেটা-সীমা=N
গ্লোবাল এবং স্ট্যাটিক ভেরিয়েবলের বাইটে সর্বোচ্চ আকার নির্দিষ্ট করে যা স্থাপন করা যেতে পারে
ছোট তথ্য এলাকায়. ছোট ডেটা এলাকা ব্যবহার করে ছোট এবং দ্রুত হতে পারে
কোড, তবে এলাকার আকার সীমিত এবং এটি নিশ্চিত করা প্রোগ্রামারের উপর নির্ভর করে
এলাকা উপচে পড়ে না। এছাড়াও যখন ছোট ডেটা এলাকা ব্যবহার করা হয় তখন RX এর একটি
রেজিস্টার (সাধারণত "r13") এই এলাকায় নির্দেশ করে ব্যবহারের জন্য সংরক্ষিত, তাই এটি নেই
কম্পাইলার দ্বারা ব্যবহারের জন্য আর উপলব্ধ। এটি ধীর এবং/অথবা বড় হতে পারে
কোড যদি এই রেজিস্টারে রাখা না হয়ে ভেরিয়েবলগুলিকে স্ট্যাকের উপর পুশ করা হয়।

দ্রষ্টব্য, সাধারণ ভেরিয়েবল (ভেরিয়েবল যেগুলি আরম্ভ করা হয়নি) এবং ধ্রুবক
ছোট ডেটা এলাকায় স্থাপন করা হয় না কারণ সেগুলি অন্যান্য বিভাগে বরাদ্দ করা হয়
আউটপুট এক্সিকিউটেবল।

ডিফল্ট মান শূন্য, যা এই বৈশিষ্ট্যটি নিষ্ক্রিয় করে। উল্লেখ্য, এই বৈশিষ্ট্যটি নয়
উচ্চতর অপ্টিমাইজেশান স্তরের সাথে ডিফল্টরূপে সক্রিয় (-ও2 ইত্যাদি) কারণে
একটি রেজিস্টার সংরক্ষণের সম্ভাব্য ক্ষতিকর প্রভাব। এটা প্রোগ্রামারের উপর নির্ভর করে
পরীক্ষা করতে এবং এই বৈশিষ্ট্যটি তাদের প্রোগ্রামের জন্য উপকারী কিনা তা আবিষ্কার করতে। দেখা
এর বর্ণনা -mpid প্রকৃত নিবন্ধন কিভাবে একটি বিবরণ জন্য বিকল্প
ছোট ডাটা এলাকার পয়েন্টার ধরে রাখুন।

-msim
-মনো-সিম
সিমুলেটর রানটাইম ব্যবহার করুন। ডিফল্ট হল libgloss বোর্ড-নির্দিষ্ট রানটাইম ব্যবহার করা।

-mas100-সিনট্যাক্স
-mno-as100-সিনট্যাক্স
অ্যাসেম্বলার আউটপুট তৈরি করার সময় একটি সিনট্যাক্স ব্যবহার করুন যা রেনেসাসের AS100 এর সাথে সামঞ্জস্যপূর্ণ
সংযোজনকারী এই সিনট্যাক্সটি GAS অ্যাসেম্বলার দ্বারাও পরিচালনা করা যেতে পারে, তবে এর কিছু আছে
সীমাবদ্ধতা তাই এটি ডিফল্টরূপে তৈরি হয় না।

-mmax-ধ্রুবক-আকার=N
একটি ধ্রুবকের সর্বাধিক আকার, বাইটে, নির্দিষ্ট করে যা একটি অপারেন্ড হিসাবে ব্যবহার করা যেতে পারে৷
একটি RX নির্দেশনা। যদিও RX নির্দেশ সেটটি 4 পর্যন্ত ধ্রুবকের অনুমতি দেয়
নির্দেশাবলীতে ব্যবহার করার জন্য দৈর্ঘ্যের বাইট, একটি দীর্ঘ মান একটি দীর্ঘ সময়ের সমান
নির্দেশ. এইভাবে কিছু পরিস্থিতিতে এর আকার সীমাবদ্ধ করা উপকারী হতে পারে
নির্দেশাবলীতে ব্যবহৃত ধ্রুবক। এর পরিবর্তে অনেক বড় ধ্রুবক
একটি ধ্রুবক পুলে স্থাপন করা হয়েছে এবং রেজিস্টার পরোক্ষের মাধ্যমে উল্লেখ করা হয়েছে।

মূল্য N 0 এবং 4 এর মধ্যে হতে পারে। 0 এর মান (ডিফল্ট) বা 4 এর মানে হল
যেকোনো আকারের ধ্রুবক অনুমোদিত।

-মরেলাক্স
লিঙ্কার শিথিলতা সক্ষম করুন। লিঙ্কার শিথিলকরণ একটি প্রক্রিয়া যেখানে লিঙ্কার চেষ্টা করে
বিভিন্ন নির্দেশাবলীর সংক্ষিপ্ত সংস্করণ খুঁজে একটি প্রোগ্রামের আকার কমাতে।
ডিফল্ট দ্বারা অক্ষম

-মিন্ট-রেজিস্টার=N
দ্রুত বিঘ্নিত হ্যান্ডলার ফাংশনের জন্য রিজার্ভ করার জন্য রেজিস্টারের সংখ্যা উল্লেখ করুন। দ্য
মূল্য N 0 এবং 4 এর মধ্যে হতে পারে। 1 এর মান মানে রেজিস্টার "r13" সংরক্ষিত
দ্রুত বাধা হ্যান্ডলারের একচেটিয়া ব্যবহারের জন্য। 2 রিজার্ভের একটি মান "r13" এবং
"r12"। 3টি রিজার্ভের একটি মান "r13", "r12" এবং "r11" এবং 4টি রিজার্ভের একটি মান "r13"
"r10" এর মাধ্যমে। 0 এর মান, ডিফল্ট, কোনো রেজিস্টার সংরক্ষণ করে না।

-msave-acc-ইন-ইন্টারপ্রেস
নির্দিষ্ট করে যে ইন্টারাপ্ট হ্যান্ডলার ফাংশনগুলিকে সঞ্চয়কারী রেজিস্টার সংরক্ষণ করা উচিত।
এটি শুধুমাত্র তখনই প্রয়োজনীয় যদি সাধারণ কোড সঞ্চয়কারী রেজিস্টার ব্যবহার করতে পারে, উদাহরণস্বরূপ
কারণ এটি 64-বিট গুন সঞ্চালন করে। ডিফল্ট হল সঞ্চয়কারীকে উপেক্ষা করা
এটি হ্যান্ডলারকে দ্রুততর করে তোলে।

-mpid
-mno-pid
অবস্থান স্বাধীন ডেটা তৈরি করতে সক্ষম করে। যখন কোন অ্যাক্সেস সক্রিয়
একটি রেজিস্টারে রাখা একটি বেস ঠিকানা থেকে অফসেটের মাধ্যমে ধ্রুবক ডেটা করা হয়। এই
প্রয়োজন ছাড়াই রান টাইমে ধ্রুবক ডেটার অবস্থান নির্ধারণ করতে দেয়
এক্সিকিউটেবলকে স্থানান্তরিত করতে হবে, যা টাইট সহ এমবেড করা অ্যাপ্লিকেশনগুলির জন্য একটি সুবিধা
স্মৃতির সীমাবদ্ধতা। পরিবর্তন করা যেতে পারে এমন ডেটা এই বিকল্প দ্বারা প্রভাবিত হয় না।

দ্রষ্টব্য, এই বৈশিষ্ট্যটি ব্যবহার করে একটি রেজিস্টার সংরক্ষণ করে, সাধারণত "r13", ধ্রুবক ডেটার জন্য
ভিত্তি ঠিকানা। এর ফলে ধীরগতির এবং/অথবা বড় কোড হতে পারে, বিশেষ করে জটিল
ফাংশন।

ধ্রুবক ডেটা বেস ঠিকানা ধরে রাখার জন্য নির্বাচিত প্রকৃত রেজিস্টার নির্ভর করে কিনা
দ্য -msmall-ডেটা-সীমা এবং / অথবা -মিন্ট-রেজিস্টার কমান্ড-লাইন বিকল্পগুলি সক্রিয় করা হয়েছে।
রেজিস্টার "r13" দিয়ে শুরু করে এবং নিচের দিকে অগ্রসর হলে, প্রথমে রেজিস্টার বরাদ্দ করা হয়
এর প্রয়োজনীয়তা পূরণ করতে -মিন্ট-রেজিস্টার, তারপর -mpid এবং পরিশেষে
-msmall-ডেটা-সীমা. এইভাবে ছোট ডেটা এরিয়া রেজিস্টারের জন্য "r8" হওয়া সম্ভব
যদি উভয় -মিন্ট-রেজিস্টার=4 এবং -mpid কমান্ড লাইনে নির্দিষ্ট করা হয়।

ডিফল্টরূপে এই বৈশিষ্ট্য সক্রিয় করা হয় না. ডিফল্ট এর মাধ্যমে পুনরুদ্ধার করা যেতে পারে -mno-pid
কমান্ড লাইন বিকল্প।

-mno-সতর্ক-একাধিক-দ্রুত-বিঘ্ন
-mwarn-একাধিক-দ্রুত-বিঘ্ন
GCC একটি সতর্ক বার্তা জারি করা থেকে বাধা দেয় যদি এটি একাধিক দ্রুত বাধা পায়
হ্যান্ডলার যখন এটি একটি ফাইল কম্পাইল করা হয়। ডিফল্ট প্রতিটি অতিরিক্ত জন্য একটি সতর্কতা জারি করা হয়
দ্রুত বিঘ্নিত হ্যান্ডলার পাওয়া গেছে, কারণ RX শুধুমাত্র এই ধরনের একটি বাধা সমর্থন করে।

বিঃদ্রঃ: জেনেরিক GCC কমান্ড-লাইন বিকল্প স্থির-REG RX এর বিশেষ গুরুত্ব রয়েছে
পোর্ট যখন "ইন্টারপ্ট" ফাংশন অ্যাট্রিবিউটের সাথে ব্যবহার করা হয়। এই বৈশিষ্ট্য একটি নির্দেশ করে
ফাংশন দ্রুত বাধা প্রক্রিয়া করার উদ্দেশ্যে। GCC নিশ্চিত করে যে এটি শুধুমাত্র রেজিস্টার ব্যবহার করে
"r10", "r11", "r12" এবং/অথবা "r13" এবং শুধুমাত্র প্রদান করে যে এর স্বাভাবিক ব্যবহার
অনুরূপ রেজিস্টার মাধ্যমে সীমাবদ্ধ করা হয়েছে স্থির-REG or -মিন্ট-রেজিস্টার
কমান্ড লাইন বিকল্প।

S / 390 এবং zseries অপশন সমূহ

এই হয় -m S/390 এবং zSeries আর্কিটেকচারের জন্য সংজ্ঞায়িত বিকল্পগুলি।

-মহার্ড-ফ্লোট
-মেমসফট-ফ্লোট
ফ্লোটিং-এর জন্য হার্ডওয়্যার ফ্লোটিং-পয়েন্ট নির্দেশাবলী এবং রেজিস্টার ব্যবহার করুন (ব্যবহার করবেন না)
পয়েন্ট অপারেশন। কখন -মেমসফট-ফ্লোট নির্দিষ্ট করা হয়েছে, এর মধ্যে কাজ করে libgcc.a অভ্যস্ত
ভাসমান-বিন্দু অপারেশন সঞ্চালন. কখন -মহার্ড-ফ্লোট নির্দিষ্ট করা হয়, কম্পাইলার
IEEE ফ্লোটিং-পয়েন্ট নির্দেশাবলী তৈরি করে। এটি ডিফল্ট।

-মহার্ড-ডিএফপি
-এমনো-হার্ড-ডিএফপি
দশমিক-এর জন্য হার্ডওয়্যার দশমিক-ফ্লোটিং-পয়েন্ট নির্দেশাবলী ব্যবহার করুন (ব্যবহার করবেন না)
ফ্লোটিং-পয়েন্ট অপারেশন। কখন -এমনো-হার্ড-ডিএফপি নির্দিষ্ট করা হয়েছে, এর মধ্যে কাজ করে libgcc.a হয়
দশমিক-ফ্লোটিং-পয়েন্ট অপারেশন সঞ্চালনের জন্য ব্যবহৃত হয়। কখন -মহার্ড-ডিএফপি নির্দিষ্ট করা হয়,
কম্পাইলার দশমিক-ফ্লোটিং-পয়েন্ট হার্ডওয়্যার নির্দেশাবলী তৈরি করে। এটি ডিফল্ট
উন্নত -march=z9-ec বা উচ্চতর

-মলং-ডবল-64
-মলং-ডবল-128
এই সুইচগুলি "লং ডবল" টাইপের আকার নিয়ন্ত্রণ করে। 64 বিটের আকার তৈরি করে
"লং ডবল" টাইপ "ডবল" টাইপের সমতুল্য। এটি ডিফল্ট।

-এমব্যাকচেইন
-mno-ব্যাকচেইন
ব্যাকচেইন পয়েন্টার হিসাবে কলারের ফ্রেমের ঠিকানা সংরক্ষণ করুন (সঞ্চয় করবেন না)
কলির স্ট্যাক ফ্রেম। টুল ব্যবহার করে ডিবাগ করার অনুমতি দেওয়ার জন্য একটি ব্যাকচেনের প্রয়োজন হতে পারে
DWARF 2 কল ফ্রেমের তথ্য বুঝতে পারছি না। কখন -mno-প্যাকড-স্ট্যাক হয়
প্রভাব, ব্যাকচেইন পয়েন্টার স্ট্যাক ফ্রেমের নীচে সংরক্ষণ করা হয়; কখন
-প্যাকড-স্ট্যাক কার্যকরী হয়, ব্যাকচেইনটি শীর্ষস্থানীয় শব্দের মধ্যে স্থাপন করা হয়
96/160 বাইট রেজিস্টার সংরক্ষণ এলাকা।

সাধারণভাবে, কোড দিয়ে কম্পাইল করা হয় -এমব্যাকচেইন এর সাথে সংকলিত কোডের সাথে কল-সামঞ্জস্যপূর্ণ
-mmo-ব্যাকচেইন; যাইহোক, ডিবাগিং উদ্দেশ্যে ব্যাকচেইন ব্যবহার সাধারণত প্রয়োজন হয়
পুরো বাইনারি দিয়ে তৈরি করা হয়েছে -এমব্যাকচেইন. এর সংমিশ্রণ লক্ষ্য করুন
-এমব্যাকচেইন, -প্যাকড-স্ট্যাক এবং -মহার্ড-ফ্লোট সমর্থিত নয়. নির্মাণের জন্য ক
লিনাক্স কার্নেল ব্যবহার -মেমসফট-ফ্লোট.

ডিফল্ট হল ব্যাকচেইন বজায় না রাখা।

-প্যাকড-স্ট্যাক
-mno-প্যাকড-স্ট্যাক
প্যাক করা স্ট্যাক লেআউট ব্যবহার করুন (ব্যবহার করবেন না)। কখন -mno-প্যাকড-স্ট্যাক নির্দিষ্ট করা হয়,
কম্পাইলার শুধুমাত্র তাদের জন্য 96/160 বাইট রেজিস্টার সংরক্ষণ এলাকা ব্যবহার করে
ডিফল্ট উদ্দেশ্য; অব্যবহৃত ক্ষেত্রগুলি এখনও স্ট্যাকের স্থান নেয়। কখন -প্যাকড-স্ট্যাক is
উল্লেখিত, রেজিস্টার সংরক্ষণের স্লটগুলি রেজিস্টার সংরক্ষণের শীর্ষে ঘনভাবে প্যাক করা হয়
এলাকা অব্যবহৃত স্থান অন্য উদ্দেশ্যে পুনঃব্যবহার করা হয়, আরও দক্ষ ব্যবহারের জন্য অনুমতি দেয়
উপলব্ধ স্ট্যাক স্থান. যাইহোক, যখন -এমব্যাকচেইন এছাড়াও কার্যকর, শীর্ষে
সংরক্ষণ এলাকার শব্দটি সর্বদা ব্যাকচেইন এবং ফেরত ঠিকানা সংরক্ষণ করতে ব্যবহৃত হয়
register সর্বদা ব্যাকচেইনের নীচে দুটি শব্দ সংরক্ষিত থাকে।

যতক্ষণ পর্যন্ত স্ট্যাক ফ্রেম ব্যাকচেন ব্যবহার করা হয় না, কোড দিয়ে তৈরি করা হয় -প্যাকড-স্ট্যাক
এর সাথে জেনারেট করা কোডের সাথে কল-সামঞ্জস্যপূর্ণ -mno-প্যাকড-স্ট্যাক. উল্লেখ্য যে কিছু অ-এফএসএফ
S/2.95 বা zSeries জেনারেটেড কোডের জন্য GCC 390 এর রিলিজ যা স্ট্যাক ফ্রেম ব্যবহার করে
রান টাইমে ব্যাকচেইন, শুধুমাত্র ডিবাগিং উদ্দেশ্যে নয়। এই ধরনের কোড কল নয়-
সাথে সংকলিত কোডের সাথে সামঞ্জস্যপূর্ণ -প্যাকড-স্ট্যাক. এছাড়াও, নোট করুন যে সমন্বয়
-এমব্যাকচেইন, -প্যাকড-স্ট্যাক এবং -মহার্ড-ফ্লোট সমর্থিত নয়. নির্মাণের জন্য ক
লিনাক্স কার্নেল ব্যবহার -মেমসফট-ফ্লোট.

ডিফল্ট হল প্যাক করা স্ট্যাক লেআউট ব্যবহার না করা।

-msmall-Exec
-ম্নো-স্মল-এক্সেক
সাবরুটিন করার জন্য "ব্রাস" নির্দেশনা ব্যবহার করে কোড জেনারেট করুন (বা জেনারেট করবেন না)
কল এটি শুধুমাত্র তখনই নির্ভরযোগ্যভাবে কাজ করে যদি মোট এক্সিকিউটেবল সাইজ 64k এর বেশি না হয়।
ডিফল্ট হল "বাসর" নির্দেশনা ব্যবহার করা, যাতে এটি নেই
সীমাবদ্ধতা।

-m64
-m31
কখন -m31 নির্দিষ্ট করা হয়েছে, S/390 ABI-এর জন্য GNU/Linux-এর সাথে সঙ্গতিপূর্ণ কোড তৈরি করুন। কখন
-m64 নির্দিষ্ট করা হয়েছে, zSeries ABI-এর জন্য GNU/Linux-এর সাথে সঙ্গতিপূর্ণ কোড তৈরি করুন। এই
GCC কে বিশেষ করে 64-বিট নির্দেশনা তৈরি করতে দেয়। জন্য s390 লক্ষ্য,
ডিফল্ট হয় -m31যখন s390x লক্ষ্য ডিফল্ট থেকে -m64.

- mzarch
-মেসা
কখন - mzarch উল্লেখ করা হয়েছে, নির্দেশাবলী ব্যবহার করে কোড তৈরি করুন
z/স্থাপত্য। কখন -মেসা নির্দিষ্ট করা হয়েছে, নির্দেশাবলী ব্যবহার করে কোড তৈরি করুন
ESA/390 এ উপলব্ধ। মনে রাখবেন যে -মেসা দিয়ে সম্ভব নয় -m64. উৎপন্ন করার সময়
S/390 ABI-এর জন্য GNU/Linux-এর সাথে সঙ্গতিপূর্ণ কোড, ডিফল্ট -মেসা. উৎপন্ন করার সময়
zSeries ABI-এর জন্য GNU/Linux-এর সাথে সঙ্গতিপূর্ণ কোড, ডিফল্ট - mzarch.

-mmvcle
-mno-mvcle
ব্লক করার জন্য "mvcle" নির্দেশনা ব্যবহার করে কোড তৈরি করুন (বা জেনারেট করবেন না)
চলে কখন -mno-mvcle নির্দিষ্ট করা হয়েছে, পরিবর্তে একটি "mvc" লুপ ব্যবহার করুন। এটি ডিফল্ট
আকারের জন্য অপ্টিমাইজ না করা পর্যন্ত।

-এমডিবাগ
-mno-ডিবাগ
কম্পাইল করার সময় অতিরিক্ত ডিবাগ তথ্য মুদ্রণ করুন (বা মুদ্রণ করবেন না)। ডিফল্ট হয়
ডিবাগ তথ্য প্রিন্ট না করার জন্য।

-মার্চ =cpu-টাইপ
চলমান কোড তৈরি করুন cpu-টাইপ, যা একটি প্রতিনিধিত্বকারী একটি সিস্টেমের নাম
নির্দিষ্ট প্রসেসরের ধরন। জন্য সম্ভাব্য মান cpu-টাইপ হয় g5, g6, z900, z990, z9-109,
z9-ec, z10, z196, এবং zEC12. নির্দেশাবলী ব্যবহার করে কোড তৈরি করার সময়
z/আর্কিটেকচার, ডিফল্ট -মার্চ=z900. অন্যথায়, ডিফল্ট হয় -মার্চ=g5.

-mtune =cpu-টাইপ
টিউন টু cpu-টাইপ ABI ব্যতীত জেনারেট করা কোড সম্পর্কে প্রযোজ্য সবকিছু
এবং উপলব্ধ নির্দেশাবলী সেট. এর তালিকা cpu-টাইপ মান জন্য হিসাবে একই
-মার্চ. ডিফল্ট হল এর জন্য ব্যবহৃত মান -মার্চ.

-এমটিপিএফ-ট্রেস
-mno-tpf-ট্রেস
কোড তৈরি করুন যা TPF OS নির্দিষ্ট শাখায় রুটিন ট্রেস করতে যোগ করে (যোগ করে না)
অপারেটিং সিস্টেমে এই বিকল্পটি ডিফল্টরূপে বন্ধ থাকে, এমনকি কম্পাইল করার সময়ও
টিপিএফ ওএস।

-মফিউজড-এমএডিডি
-মনো-ফিউজড-এমএডিডি
এমন কোড তৈরি করুন যা ফ্লোটিং-পয়েন্ট গুন এবং জমা করে (ব্যবহার করে না) ব্যবহার করে
নির্দেশাবলী হার্ডওয়্যার ভাসমান পয়েন্ট হলে এই নির্দেশাবলী ডিফল্টরূপে তৈরি করা হয়
ব্যবহৃত হয়.

-mwarn-framesize=ফ্রেমের আকৃতি
বর্তমান ফাংশন প্রদত্ত ফ্রেমের আকার অতিক্রম করলে একটি সতর্কতা নির্গত করুন। কারণ এই
একটি কম্পাইল-টাইম চেক যখন প্রোগ্রামটি চলে তখন এটি একটি বাস্তব সমস্যা হওয়ার দরকার নেই। এটা
সম্ভবত একটি স্ট্যাক ওভারফ্লো হতে পারে যে ফাংশন সনাক্ত করার উদ্দেশ্যে করা হয়. এটাই
সীমিত স্ট্যাক আকারের পরিবেশে ব্যবহার করা উপযোগী যেমন লিনাক্স কার্নেল।

-mwarn-ডাইনামিকস্ট্যাক
ফাংশন "অ্যালোকা" কল করলে বা গতিশীল আকারের অ্যারে ব্যবহার করলে একটি সতর্কতা নির্গত করুন। এই
সাধারণত সীমিত স্ট্যাকের আকারের সাথে একটি খারাপ ধারণা।

-mstack-guard=স্ট্যাক-গার্ড
-mstack-size=স্ট্যাক আকার
এই বিকল্পগুলি প্রদান করা হলে S/390 ব্যাক এন্ডে অতিরিক্ত নির্দেশাবলী নির্গত করে
ফাংশন প্রলোগ যা স্ট্যাকের আকার হলে একটি ফাঁদ ট্রিগার করে স্ট্যাক-গার্ড উপরে বাইট
স্ট্যাক আকার (মনে রাখবেন যে S/390 এর স্ট্যাক নিচের দিকে বৃদ্ধি পায়)। যদি স্ট্যাক-গার্ড
কম্পাইল করা ফ্রেমের আকারের চেয়ে বড় 2 এর ক্ষুদ্রতম শক্তি বিকল্পটি বাদ দেওয়া হয়েছে
ফাংশন নির্বাচন করা হয়। এই বিকল্পগুলি স্ট্যাক ডিবাগিং সাহায্য করার উদ্দেশ্যে ব্যবহার করা হয়
ওভারফ্লো সমস্যা। অতিরিক্ত নির্গত কোড শুধুমাত্র সামান্য ওভারহেড কারণ এবং
তাই বৃহত্তর কর্মক্ষমতা ছাড়াই উৎপাদনের মতো সিস্টেমে ব্যবহার করা যেতে পারে
অধঃপতন প্রদত্ত মান 2 এবং এর সঠিক ক্ষমতা হতে হবে স্ট্যাক আকার হতে হবে
অপেক্ষা বৃহত্তর স্ট্যাক-গার্ড 64k অতিক্রম না করে। যাতে দক্ষ হতে অতিরিক্ত
কোডটি অনুমান করে যে স্ট্যাকটি মানের সাথে সংযুক্ত একটি ঠিকানায় শুরু হয়
দ্বারা প্রদত্ত স্ট্যাক আকার. দ্য স্ট্যাক-গার্ড বিকল্প শুধুমাত্র সঙ্গে একযোগে ব্যবহার করা যেতে পারে
স্ট্যাক আকার.

-mhotpatch =প্রাক-অর্ধশব্দ,পোস্ট-অর্ধশব্দ
হটপ্যাচ বিকল্পটি সক্রিয় থাকলে, একটি "হট-প্যাচিং" ফাংশন প্রলোগ তৈরি করা হয়
কম্পাইলেশন ইউনিটের সমস্ত ফাংশন। ফাংশন লেবেল প্রদত্ত সঙ্গে প্রিপেন্ড করা হয়
দুই-বাইট NOP নির্দেশাবলীর সংখ্যা (প্রাক-অর্ধশব্দ, সর্বোচ্চ 1000000)। পরে
লেবেল, 2 * পোস্ট-অর্ধশব্দ নির্দেশের মতো বৃহত্তম NOP ব্যবহার করে বাইট যুক্ত করা হয়
আর্কিটেকচার অনুমতি দেয় (সর্বোচ্চ 1000000)।

উভয় আর্গুমেন্ট শূন্য হলে, হটপ্যাচিং অক্ষম করা হয়।

এই বিকল্পটি "হটপ্যাচ" বৈশিষ্ট্য সহ পৃথক ফাংশনের জন্য ওভাররাইড করা যেতে পারে।

স্কোর অপশন সমূহ

এই বিকল্পগুলি স্কোর বাস্তবায়নের জন্য সংজ্ঞায়িত করা হয়েছে:

-মেব
বিগ-এন্ডিয়ান মোডের জন্য কোড কম্পাইল করুন। এটি ডিফল্ট।

-মেল
লিটল-এন্ডিয়ান মোডের জন্য কোড কম্পাইল করুন।

-mnhwloop
"bcnz" নির্দেশাবলীর প্রজন্ম অক্ষম করুন।

-মুলস
আনলাইনড লোড এবং স্টোর নির্দেশাবলী তৈরি করতে সক্ষম করুন।

-ম্ম্যাক
গুণ-সঞ্চয় নির্দেশাবলী ব্যবহার সক্ষম করুন. ডিফল্টরূপে নিষ্ক্রিয়.

-mscore5
টার্গেট আর্কিটেকচার হিসাবে SCORE5 নির্দিষ্ট করুন।

-mscore5u
টার্গেট আর্কিটেকচারের SCORE5U উল্লেখ করুন।

-mscore7
টার্গেট আর্কিটেকচার হিসাবে SCORE7 নির্দিষ্ট করুন। এটি ডিফল্ট।

-mscore7d
টার্গেট আর্কিটেকচার হিসাবে SCORE7D নির্দিষ্ট করুন।

SH অপশন সমূহ

এইগুলো -m SH বাস্তবায়নের জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-m1 SH1 এর জন্য কোড তৈরি করুন।

-m2 SH2 এর জন্য কোড তৈরি করুন।

-m2e
SH2e এর জন্য কোড তৈরি করুন।

-m2a-nofpu
FPU ছাড়া SH2a-এর জন্য বা SH2a-FPU-এর জন্য এমনভাবে কোড তৈরি করুন যাতে
ফ্লোটিং-পয়েন্ট ইউনিট ব্যবহার করা হয় না।

-m2a-একক-শুধু
SH2a-FPU-এর জন্য এমনভাবে কোড তৈরি করুন যাতে কোনো দ্বি-নির্ভুলতা ফ্লোটিং-পয়েন্ট না থাকে
অপারেশন ব্যবহার করা হয়।

-m2a-একক
SH2a-FPU-এর জন্য কোড তৈরি করুন, ধরে নিন যে ফ্লোটিং-পয়েন্ট ইউনিটটি একক-নির্ভুলতায় রয়েছে
ডিফল্টরূপে মোড।

-m2a
SH2a-FPU-এর জন্য কোড তৈরি করুন, ধরে নিন যে ফ্লোটিং-পয়েন্ট ইউনিট দ্বি-নির্ভুলতায় রয়েছে
ডিফল্টরূপে মোড।

-m3 SH3 এর জন্য কোড তৈরি করুন।

-m3e
SH3e এর জন্য কোড তৈরি করুন।

-m4-nofpu
একটি ফ্লোটিং-পয়েন্ট ইউনিট ছাড়াই SH4 এর জন্য কোড তৈরি করুন।

-m4-একক-শুধু
একটি ফ্লোটিং-পয়েন্ট ইউনিট সহ SH4-এর জন্য কোড তৈরি করুন যা শুধুমাত্র একক-কে সমর্থন করে
যথার্থ গাণিতিক

-m4-একক
ভাসমান-পয়েন্ট ইউনিট একক-নির্ভুলতা মোডে রয়েছে অনুমান করে SH4-এর জন্য কোড তৈরি করুন
গতানুগতিক.

-m4 SH4 এর জন্য কোড তৈরি করুন।

-M4-100
SH4-100 এর জন্য কোড তৈরি করুন।

-m4-100-nofpu
SH4-100-এর জন্য এমনভাবে কোড তৈরি করুন যাতে ফ্লোটিং-পয়েন্ট ইউনিট ব্যবহার না হয়।

-m4-100-একক
SH4-100 এর জন্য ফ্লোটিং-পয়েন্ট ইউনিট একক-নির্ভুলতা মোডে আছে অনুমান করে কোড তৈরি করুন
গতানুগতিক.

-m4-100-একক-শুধু
SH4-100-এর জন্য এমনভাবে কোড তৈরি করুন যাতে কোনো দ্বি-নির্ভুলতা ফ্লোটিং-পয়েন্ট না থাকে
অপারেশন ব্যবহার করা হয়।

-M4-200
SH4-200 এর জন্য কোড তৈরি করুন।

-m4-200-nofpu
SH4-200-এর জন্য এমনভাবে কোড তৈরি করুন যাতে ফ্লোটিং-পয়েন্ট ইউনিট না হয়
ব্যবহার করা হয়েছে।

-m4-200-একক
SH4-200 এর জন্য ফ্লোটিং-পয়েন্ট ইউনিট একক-নির্ভুলতা মোডে আছে অনুমান করে কোড তৈরি করুন
গতানুগতিক.

-m4-200-একক-শুধু
SH4-200-এর জন্য এমনভাবে কোড তৈরি করুন যাতে কোনো দ্বি-নির্ভুলতা ফ্লোটিং-পয়েন্ট না থাকে
অপারেশন ব্যবহার করা হয়।

-M4-300
SH4-300 এর জন্য কোড তৈরি করুন।

-m4-300-nofpu
SH4-300-এর জন্য এমনভাবে কোড তৈরি করুন যাতে ফ্লোটিং-পয়েন্ট ইউনিট না হয়
ব্যবহার করা হয়েছে।

-m4-300-একক
SH4-300-এর জন্য এমনভাবে কোড তৈরি করুন যাতে কোনো দ্বি-নির্ভুলতা ফ্লোটিং-পয়েন্ট না থাকে
অপারেশন ব্যবহার করা হয়।

-m4-300-একক-শুধু
SH4-300-এর জন্য এমনভাবে কোড তৈরি করুন যাতে কোনো দ্বি-নির্ভুলতা ফ্লোটিং-পয়েন্ট না থাকে
অপারেশন ব্যবহার করা হয়।

-M4-340
SH4-340 এর জন্য কোড তৈরি করুন (কোন MMU, FPU নেই)।

-M4-500
SH4-500 এর জন্য কোড তৈরি করুন (কোনও FPU নেই)। পাস করে -isa=sh4-nofpu অ্যাসেম্বলারের কাছে।

-m4a-nofpu
SH4al-dsp বা SH4a-এর জন্য এমনভাবে কোড তৈরি করুন যাতে ফ্লোটিং-পয়েন্ট
ইউনিট ব্যবহার করা হয় না।

-m4a-একক-শুধু
SH4a-এর জন্য এমনভাবে কোড তৈরি করুন যাতে কোনো দ্বিগুণ-নির্ভুলতা ফ্লোটিং-পয়েন্ট না থাকে
অপারেশন ব্যবহার করা হয়।

-m4a-একক
SH4a-এর জন্য ফ্লোটিং-পয়েন্ট ইউনিট একক-নির্ভুলতা অনুমান করে কোড তৈরি করুন
ডিফল্টরূপে মোড।

-m4a
SH4a এর জন্য কোড তৈরি করুন।

-m4al
একই রকম -m4a-nofpu, এটি পরোক্ষভাবে পাস যে ছাড়া -ডিএসপি অ্যাসেম্বলারের কাছে। জিসিসি
এই মুহূর্তে কোনো ডিএসপি নির্দেশনা তৈরি করে না।

-m5-32 মিডিয়া
SHmedia এর জন্য 32-বিট কোড তৈরি করুন।

-M5-32Media-nofpu
SHmedia এর জন্য 32-বিট কোড এমনভাবে তৈরি করুন যাতে ফ্লোটিং-পয়েন্ট ইউনিট না হয়
ব্যবহার করা হয়েছে।

-m5-64 মিডিয়া
SHmedia এর জন্য 64-বিট কোড তৈরি করুন।

-M5-64Media-nofpu
SHmedia এর জন্য 64-বিট কোড এমনভাবে তৈরি করুন যাতে ফ্লোটিং-পয়েন্ট ইউনিট না হয়
ব্যবহার করা হয়েছে।

-m5-কম্প্যাক্ট
SHcompact এর জন্য কোড তৈরি করুন।

-m5-কম্প্যাক্ট-নফপু
SHcompact-এর জন্য এমনভাবে কোড তৈরি করুন যাতে ফ্লোটিং-পয়েন্ট ইউনিট ব্যবহার না হয়।

-এমবি বিগ-এন্ডিয়ান মোডে প্রসেসরের জন্য কোড কম্পাইল করুন।

-ml লিটল-এন্ডিয়ান মোডে প্রসেসরের জন্য কোড কম্পাইল করুন।

-mdalign
64-বিট সীমানায় দ্বিগুণ সারিবদ্ধ করুন। মনে রাখবেন এটি কলিং কনভেনশন পরিবর্তন করে,
এবং এইভাবে স্ট্যান্ডার্ড সি লাইব্রেরি থেকে কিছু ফাংশন কাজ করে না যদি না আপনি পুনরায় কম্পাইল করেন
এটি প্রথম দিয়ে -mdalign.

-মরেলাক্স
লিঙ্কের সময় কিছু ঠিকানার রেফারেন্স ছোট করুন, যখন সম্ভব; লিঙ্কার বিকল্প ব্যবহার করে
-বিশ্রাম.

-বিগটেবল
"সুইচ" টেবিলে 32-বিট অফসেট ব্যবহার করুন। ডিফল্ট হল 16-বিট অফসেট ব্যবহার করা।

-এমবিটপস
SH2A-এ বিট ম্যানিপুলেশন নির্দেশাবলীর ব্যবহার সক্ষম করুন।

-mfmovd
"fmovd" নির্দেশের ব্যবহার সক্ষম করুন। চেক করুন -mdalign প্রান্তিককরণ সীমাবদ্ধতার জন্য।

-মরেনেসাস
রেনেসাস দ্বারা সংজ্ঞায়িত কলিং কনভেনশনগুলি মেনে চলুন।

-এমনো-রেনেসাস
রেনেসাস কনভেনশনের আগে GCC-এর জন্য সংজ্ঞায়িত কলিং কনভেনশনগুলি মেনে চলুন
আমরা আছি. এই বিকল্পটি SH টুলচেইনের সমস্ত লক্ষ্যগুলির জন্য ডিফল্ট।

- mnomacsave
"MAC" রেজিস্টারটিকে কল-ক্লোবারড হিসাবে চিহ্নিত করুন, এমনকি যদি -মরেনেসাস দেওয়া হয়.

-মিইইই
-mno-ieee
ফ্লোটিং-পয়েন্ট তুলনার IEEE সম্মতি নিয়ন্ত্রণ করুন, যা হ্যান্ডলিংকে প্রভাবিত করে
এমন ক্ষেত্রে যেখানে তুলনার ফলাফল ক্রমহীন। গতানুগতিক -মিইইই is
অন্তর্নিহিতভাবে সক্রিয়। যদি শুধুমাত্র সীমাবদ্ধ-গণিত সক্রিয় করা হয় -mno-ieee পরোক্ষভাবে সেট করা হয়,
যার ফলে দ্রুত ভাসমান-বিন্দু বৃহত্তর-সমান এবং কম-সমান তুলনা হয়। দ্য
implcit সেটিংস নির্দিষ্ট করে ওভাররাইড করা যেতে পারে -মিইইই or -mno-ieee.

-মিনলাইন-আইসি_ইনভ্যালিডেট
নেস্টেড ফাংশন সেট আপ করার পরে নির্দেশ ক্যাশে এন্ট্রি অবৈধ করতে ইনলাইন কোড
trampolines এই বিকল্পের কোন প্রভাব নেই যদি -মিউজারের মোড কার্যকরী এবং নির্বাচিত
কোড জেনারেশন অপশন (যেমন -m4) "icbi" নির্দেশ ব্যবহার করার অনুমতি দেয় না।
যদি নির্বাচিত কোড জেনারেশন বিকল্পটি "icbi" ব্যবহারের অনুমতি না দেয়
নির্দেশ, এবং -মিউজারের মোড কার্যকর নয়, ইনলাইন কোড ম্যানিপুলেট করে
নির্দেশ ক্যাশে ঠিকানা অ্যারে সরাসরি একটি সহযোগী লেখার সাথে। শুধু এই নয়
রান টাইমে প্রিভিলেজড মোড প্রয়োজন, কিন্তু ক্যাশে লাইন থাকলে এটিও ব্যর্থ হয়
TLB এর মাধ্যমে ম্যাপ করা হয়েছে এবং আনম্যাপ করা হয়েছে।

-মিসাইজ
সমাবেশ কোডে নির্দেশের আকার এবং অবস্থান ডাম্প করুন।

-mpadstruct
এই বিকল্পটি বাতিল করা হয়েছে। এটি 4 বাইটের একাধিক কাঠামো প্যাড করে, যা
SH ABI-এর সাথে বেমানান।

-ম্যাটমিক-মডেল=মডেল
পারমাণবিক ক্রিয়াকলাপের মডেল এবং অতিরিক্ত পরামিতি একটি কমা পৃথক হিসাবে সেট করে
তালিকা পারমাণবিক বিল্ট-ইন ফাংশন সম্পর্কে বিস্তারিত জানার জন্য দেখুন __পারমাণবিক বিল্টিনস. দ্য
নিম্নলিখিত মডেল এবং পরামিতি সমর্থিত:

না
কম্পাইলার জেনারেটেড পারমাণবিক ক্রম নিষ্ক্রিয় করুন এবং পরমাণুর জন্য লাইব্রেরি কল নির্গত করুন
অপারেশন লক্ষ্যটি "sh*-*-linux*" না হলে এটি ডিফল্ট।

soft-gusa
পারমাণবিক বিল্টের জন্য GNU/Linux সামঞ্জস্যপূর্ণ gUSA সফ্টওয়্যার পারমাণবিক ক্রম তৈরি করুন-
ফাংশন মধ্যে উত্পন্ন পারমাণবিক ক্রম থেকে অতিরিক্ত সমর্থন প্রয়োজন
সিস্টেমের বাধা/ব্যতিক্রম হ্যান্ডলিং কোড এবং শুধুমাত্র SH3* এবং এর জন্য উপযুক্ত
SH4* একক-কোর সিস্টেম। এই বিকল্পটি ডিফল্টরূপে সক্রিয় করা হয় যখন লক্ষ্য হয়
"sh*-*-linux*" এবং SH3* বা SH4*। লক্ষ্য SH4A হলে, এই বিকল্পটিও হবে
আংশিকভাবে হার্ডওয়্যার পারমাণবিক নির্দেশাবলী "movli.l" এবং "movco.l" ব্যবহার করুন
আরো দক্ষ কোড তৈরি করুন, যদি না যথাযথ উল্লিখিত আছে.

soft-tcb
সফ্টওয়্যার পারমাণবিক ক্রম তৈরি করুন যা থ্রেড নিয়ন্ত্রণে একটি পরিবর্তনশীল ব্যবহার করে
ব্লক এটি gUSA ক্রমগুলির একটি পরিবর্তন যা SH1* এও ব্যবহার করা যেতে পারে
এবং SH2* লক্ষ্য। উত্পন্ন পারমাণবিক ক্রম থেকে অতিরিক্ত সমর্থন প্রয়োজন
সিস্টেমের বাধা/ব্যতিক্রম হ্যান্ডলিং কোড এবং শুধুমাত্র এর জন্য উপযুক্ত
একক-কোর সিস্টেম। এই মডেল ব্যবহার করার সময়, gbr-অফসেট= প্যারামিটার হতে হবে
পাশাপাশি নির্দিষ্ট করা হয়েছে।

নরম-ইমাস্ক
সফ্টওয়্যার পারমাণবিক সিকোয়েন্স তৈরি করুন যা অস্থায়ীভাবে সেট করে বাধা অক্ষম করে
"SR.IMASK = 1111"। এই মডেলটি তখনই কাজ করে যখন প্রোগ্রামটি সুবিধাপ্রাপ্ত মোডে চলে
এবং শুধুমাত্র একক-কোর সিস্টেমের জন্য উপযুক্ত। থেকে অতিরিক্ত সমর্থন
সিস্টেমের বাধা/ব্যতিক্রম হ্যান্ডলিং কোডের প্রয়োজন নেই। এই মডেল হল
যখন লক্ষ্য "sh*-*-linux*" এবং SH1* বা SH2* হয় তখন ডিফল্টরূপে সক্রিয় করা হয়।

হার্ড-এলএলসিএস
"movli.l" এবং "movco.l" নির্দেশাবলী ব্যবহার করে হার্ডওয়্যার পারমাণবিক ক্রম তৈরি করুন
কেবল. এটি শুধুমাত্র SH4A এ উপলব্ধ এবং মাল্টি-কোর সিস্টেমের জন্য উপযুক্ত।
যেহেতু হার্ডওয়্যার নির্দেশাবলী শুধুমাত্র 32 বিট পারমাণবিক ভেরিয়েবল 8-এ অ্যাক্সেস সমর্থন করে
অথবা 16 বিট ভেরিয়েবল 32 বিট অ্যাক্সেসের সাথে অনুকরণ করা হয়। এই সঙ্গে সংকলিত কোড
বিকল্পটি অন্যান্য সফ্টওয়্যার পারমাণবিক মডেলের সাথে সামঞ্জস্যপূর্ণ হবে
ব্যাঘাত/ব্যতিক্রম হ্যান্ডলিং সিস্টেমগুলি যদি একটি SH4A সিস্টেমে কার্যকর করা হয়। অতিরিক্ত
সিস্টেমের বাধা/ব্যতিক্রম হ্যান্ডলিং কোড থেকে সমর্থন প্রয়োজন হয় না
এই মডেলের জন্য।

gbr-অফসেট=
এই প্যারামিটারটি থ্রেড নিয়ন্ত্রণে ভেরিয়েবলের বাইটে অফসেট নির্দিষ্ট করে
ব্লক গঠন যে উত্পন্ন পারমাণবিক ক্রম দ্বারা ব্যবহার করা উচিত যখন
soft-tcb মডেল নির্বাচন করা হয়েছে। অন্যান্য মডেলের জন্য এই পরামিতি উপেক্ষা করা হয়.
নির্দিষ্ট মানটি অবশ্যই চারটির একটি পূর্ণসংখ্যার গুণিতক এবং 0-1020 পরিসরে হতে হবে৷

যথাযথ
এই পরামিতি একাধিক পারমাণবিক মডেলের মিশ্র ব্যবহার প্রতিরোধ করে, যদিও তারা
সামঞ্জস্যপূর্ণ হবে, এবং কম্পাইলারকে পারমাণবিক ক্রম তৈরি করবে
শুধুমাত্র নির্দিষ্ট মডেল।

-এমটাএস
"__atomic_test_and_set" এর জন্য "tas.b" অপকোড তৈরি করুন। লক্ষ্য করুন যে উপর নির্ভর করে
বিশেষ হার্ডওয়্যার এবং সফ্টওয়্যার কনফিগারেশন এটি সামগ্রিক কর্মক্ষমতা হ্রাস করতে পারে
অপারেন্ড ক্যাশে লাইন ফ্লাশের কারণে যা "tas.b" নির্দেশ দ্বারা নিহিত। চালু
মাল্টি-কোর SH4A প্রসেসর "tas.b" নির্দেশনাটি সতর্কতার সাথে ব্যবহার করা উচিত যেহেতু এটি
নির্দিষ্ট ক্যাশে কনফিগারেশনের জন্য ডেটা দুর্নীতির ফলে হতে পারে।

-mprefergot
অবস্থান-স্বাধীন কোড তৈরি করার সময়, গ্লোবাল অফসেট ব্যবহার করে ফাংশন কল নির্গত করুন
পদ্ধতি লিঙ্কেজ টেবিলের পরিবর্তে টেবিল।

-মিউজারের মোড
-mno-ব্যবহারকারী মোড
কম্পাইলারকে প্রিভিলেজড মোড কোড তৈরি করার অনুমতি (অনুমতি) দেবেন না। নির্দিষ্ট করা
-মিউজারের মোড এছাড়াও বোঝায় -mno-inline-ic_invalidate যদি ইনলাইন কোড কাজ করবে না
ব্যবহারকারী মোডে। -মিউজারের মোড লক্ষ্য "sh*-*-linux*" হলে ডিফল্ট হয়। যদি
লক্ষ্য SH1* বা SH2* -মিউজারের মোড কোন প্রভাব নেই, যেহেতু কোন ব্যবহারকারী মোড নেই।

-মাল্টকস্ট=সংখ্যা
একটি গুণিত insn জন্য অনুমান খরচ সেট করুন.

-mdiv =কৌশল
পূর্ণসংখ্যা বিভাজন ক্রিয়াকলাপের জন্য ব্যবহার করার জন্য বিভাগ কৌশল সেট করুন। এসএইচমিডিয়ার জন্য
কৌশল এর মধ্যে একটি হতে পারে:

fp ফ্লোটিং পয়েন্টে অপারেশন করে। এটি একটি খুব উচ্চ বিলম্ব আছে, কিন্তু প্রয়োজন
শুধুমাত্র কয়েকটি নির্দেশনা, তাই আপনার কোড যথেষ্ট থাকলে এটি একটি ভাল পছন্দ হতে পারে
কম্পাইলারকে ফ্লোটিং-পয়েন্ট নির্ধারণ করার অনুমতি দেওয়ার জন্য সহজে-শোষণযোগ্য ILP
অন্যান্য নির্দেশাবলীর সাথে একসাথে নির্দেশাবলী। শূন্য দ্বারা বিভাজন কারণ a
ফ্লোটিং পয়েন্ট ব্যতিক্রম।

INV ভাজকের বিপরীত গণনা করতে পূর্ণসংখ্যা ক্রিয়াকলাপ ব্যবহার করে এবং তারপরে
লভ্যাংশকে বিপরীতের সাথে গুণ করে। এই কৌশলটি সিএসই এবং উত্তোলনের অনুমতি দেয়
বিপরীত গণনার। শূন্য দ্বারা বিভাজন একটি অনির্দিষ্ট ফলাফল গণনা করে,
কিন্তু ফাঁদ না.

inv:minlat
এর একটি রূপ INV যেখানে, যদি কোন CSE বা উত্তোলনের সুযোগ না পাওয়া যায়, বা যদি
পুরো অপারেশন একই জায়গায় উত্তোলন করা হয়েছে, শেষ পর্যায়ে
বিপরীত গণনা সামগ্রিক কমাতে চূড়ান্ত গুণের সাথে জড়িত
লেটেন্সি, আরো কিছু নির্দেশনা ব্যবহার করার খরচে, এবং এইভাবে কম অফার করে
অন্যান্য কোডের সাথে সময়সূচী করার সুযোগ।

কল
একটি লাইব্রেরি ফাংশন কল করে যা সাধারণত প্রয়োগ করে inv:minlat কৌশল এই
"m5-*media-nofpu" সংকলনের জন্য উচ্চ কোড ঘনত্ব দেয়।

call2
একই লাইব্রেরি ফাংশনের একটি ভিন্ন এন্ট্রি পয়েন্ট ব্যবহার করে, যেখানে এটি অনুমান করে যে a
একটি লুকআপ টেবিলের পয়েন্টার ইতিমধ্যেই সেট আপ করা হয়েছে, যা পয়েন্টার লোড প্রকাশ করে
সিএসই এবং কোড উত্তোলন অপ্টিমাইজেশানে।

inv: কল
inv: call2
inv:fp
ব্যবহার INV প্রাথমিক কোড জেনারেশনের জন্য অ্যালগরিদম, কিন্তু যদি কোড থাকে
অপ্টিমাইজ করা, প্রত্যাবর্তন কল, call2, বা fp কৌশল, যথাক্রমে। মনে রাখবেন যে
শূন্য দ্বারা বিভাজনের সম্ভাব্য-ট্র্যাপিং পার্শ্ব প্রতিক্রিয়া একটি পৃথক দ্বারা বহন করা হয়
নির্দেশ, তাই এটা সম্ভব যে সমস্ত পূর্ণসংখ্যা নির্দেশাবলী উত্তোলন করা হয়,
কিন্তু পার্শ্বপ্রতিক্রিয়ার জন্য চিহ্নিতকারী যেখানে সেখানে থাকে। একটি পুনর্মিলন
সেই ক্ষেত্রে ফ্লোটিং-পয়েন্ট অপারেশন বা কল করা সম্ভব নয়।

inv20u
inv20l
এর বৈকল্পিক inv:minlat কৌশল যে ক্ষেত্রে উল্টো হিসাব করা হয়
গুন থেকে পৃথক করা হয় না, তারা বিভাজনের গতি বাড়ায় যেখানে লভ্যাংশ ফিট করে
20 বিটে (প্লাস সাইন যেখানে প্রযোজ্য) একটি পরীক্ষা সন্নিবেশ করে
এই ক্ষেত্রে অপারেশন; এই পরীক্ষাটি বৃহত্তর লভ্যাংশের ক্ষেত্রে গতি কমিয়ে দেয়।
inv20u এইরকম একটি ছোট লভ্যাংশের ক্ষেত্রে অসম্ভাব্য বলে ধরে নেয়, এবং inv20l
এটা সম্ভবত হতে অনুমান.

SHmedia ব্যতীত অন্য লক্ষ্যগুলির জন্য কৌশল এর মধ্যে একটি হতে পারে:

কল-ডিভ1
একটি লাইব্রেরি ফাংশন কল করে যা একক-পদক্ষেপ বিভাগ নির্দেশনা "div1" ব্যবহার করে
অপারেশন সঞ্চালন। শূন্য দ্বারা বিভাজন একটি অনির্দিষ্ট ফলাফল গণনা করে এবং করে
ফাঁদ না এটি SH4, SH2A এবং SHcompact ছাড়া ডিফল্ট।

কল-এফপি
একটি লাইব্রেরি ফাংশনকে কল করে যা ফ্লোটিং ডাবল নির্ভুলতায় অপারেশন করে
বিন্দু শূন্য দ্বারা বিভাজন একটি ফ্লোটিং-পয়েন্ট ব্যতিক্রম ঘটায়। এটি ডিফল্ট
FPU এর সাথে SHcompact এর জন্য। একটি ডবল নেই যে লক্ষ্যের জন্য এটি নির্দিষ্ট করা
নির্ভুলতা FPU ডিফল্ট হবে "কল-ডিভ1"।

কল টেবিল
একটি লাইব্রেরি ফাংশনকে কল করে যা ছোট ভাজকের জন্য একটি লুকআপ টেবিল ব্যবহার করে এবং
বৃহত্তর ভাজকদের ক্ষেত্রে ক্ষেত্রে পার্থক্য সহ "div1" নির্দেশ। শূন্য দ্বারা বিভাগ
একটি অনির্দিষ্ট ফলাফল গণনা করে এবং ফাঁদে ফেলে না। এটি SH4 এর জন্য ডিফল্ট।
গতিশীল স্থানান্তর নির্দেশাবলী নেই এমন লক্ষ্যগুলির জন্য এটি নির্দিষ্ট করা হবে
ডিফল্ট হিসেবে "কল-ডিভ১"।

যখন একটি বিভাগ কৌশল নির্দিষ্ট করা না থাকে তখন ডিফল্ট কৌশল নির্বাচন করা হবে
বর্তমান লক্ষ্যের উপর ভিত্তি করে। SH2A-এর জন্য ডিফল্ট কৌশল হল "divs" এবং ব্যবহার করা
লাইব্রেরি ফাংশন কলের পরিবর্তে "divu" নির্দেশাবলী।

-ম্যাকুমুলেট-আউটগোয়িং-আর্গস
আশেপাশের পরিবর্তে ফাংশন প্রলোগে আউটগোয়িং আর্গুমেন্টের জন্য একবার জায়গা রিজার্ভ করুন
প্রতিটি কল কার্যক্ষমতা এবং আকারের জন্য সাধারণত উপকারী। এছাড়াও unwinding জন্য প্রয়োজন
শর্তাধীন কোডের চারপাশে স্ট্যাক ফ্রেম পরিবর্তন এড়াতে।

-mdivsi3_libfunc =নাম
32-বিট স্বাক্ষরিত বিভাগের জন্য ব্যবহৃত লাইব্রেরি ফাংশনের নাম এতে সেট করুন নাম. এই
শুধুমাত্র ব্যবহৃত নাম প্রভাবিত করে কল এবং inv: কল বিভাগ কৌশল, এবং
কম্পাইলার এখনও ইনপুট/আউটপুট/ক্লোবারড রেজিস্টারের একই সেট আশা করে যেন এটি
বিকল্প উপস্থিত ছিল না।

-mfixed- রেঞ্জ =রেজিস্টার-পরিসীমা
প্রদত্ত রেজিস্টার পরিসরকে নির্দিষ্ট রেজিস্টার হিসাবে বিবেচনা করে কোড তৈরি করুন। একটি নির্দিষ্ট রেজিস্টার
একটি যা রেজিস্টার বরাদ্দকারী ব্যবহার করতে পারে না। কার্নেল কম্পাইল করার সময় এটি দরকারী
কোড একটি রেজিস্টার পরিসর একটি ড্যাশ দ্বারা পৃথক দুটি রেজিস্টার হিসাবে নির্দিষ্ট করা হয়। একাধিক
রেজিস্টার রেঞ্জ একটি কমা দ্বারা আলাদা করে নির্দিষ্ট করা যেতে পারে।

মাইন্ডেক্সড-অ্যাড্রেসিং
SHmedia32/SHcompact-এর জন্য ইন্ডেক্সড অ্যাড্রেসিং মোডের ব্যবহার সক্ষম করুন। এই শুধুমাত্র
নিরাপদ
ঠিকানা মোড আর্কিটেকচারটি 64-বিট সহ প্রসেসর বাস্তবায়নের অনুমতি দেয়
MMU, যা OS ব্যবহার করতে পারে 32-বিট অ্যাড্রেসিং পেতে, কিন্তু যেহেতু বর্তমান হার্ডওয়্যার নেই
ইমপ্লিমেন্টেশন ইনডেক্সড অ্যাড্রেসিং মোড নিরাপদ করার জন্য এটি বা অন্য কোনো উপায় সমর্থন করে
32-বিট ABI-তে ব্যবহার করার জন্য, ডিফল্ট -mno-সূচীযুক্ত-অ্যাড্রেসিং.

-mgettrcost =সংখ্যা
"gettr" নির্দেশের জন্য অনুমান করা খরচ সেট করুন সংখ্যা. ডিফল্ট হল 2 if
-mpt-স্থির কার্যকর, অন্যথায় 100.

-mpt-স্থির
অনুমান করুন "pt*" নির্দেশাবলী আটকাবে না। এটি সাধারণত আরও ভাল-নির্ধারিত কোড তৈরি করে,
কিন্তু বর্তমান হার্ডওয়্যারে অনিরাপদ। বর্তমান স্থাপত্যের সংজ্ঞা তাই বলে
"ptabs" এবং "ptrel" ফাঁদ যখন 3 এর সাথে লক্ষ্য এবং 3 হয়। এতে আছে
অনিচ্ছাকৃত প্রভাবের আগে এই নির্দেশাবলী নির্ধারণ করা অনিরাপদ করে তোলে
শাখা, বা একটি লুপ থেকে তাদের উত্তোলন. উদাহরণস্বরূপ, "__do_global_ctors", এর একটি অংশ
libgcc যা প্রোগ্রাম স্টার্টআপে কনস্ট্রাক্টর চালায়, একটি তালিকায় ফাংশন কল করে যা
-1 দ্বারা সীমাবদ্ধ। সঙ্গে -mpt-স্থির বিকল্প, "ptabs" পরীক্ষার আগে সম্পন্ন করা হয়
বিরুদ্ধে -1। এর মানে হল যে সমস্ত কনস্ট্রাক্টর একটু বেশি দ্রুত চালায়, কিন্তু যখন
লুপ তালিকার শেষে আসে, প্রোগ্রামটি ক্র্যাশ হয়ে যায় কারণ "ptabs" -1 এ লোড হয়
লক্ষ্য রেজিস্টার।

যেহেতু বর্তমান আর্কিটেকচার বাস্তবায়নকারী কোনো হার্ডওয়্যারের জন্য এই বিকল্পটি অনিরাপদ
স্পেসিফিকেশন, ডিফল্ট হয় -mno-pt-স্থির. সঙ্গে স্পষ্টভাবে উল্লেখ না থাকলে
-mgettrcost, -mno-pt-স্থির এছাড়াও বোঝায় -mgettrcost=100; এই রেজিস্টার deters
সাধারণ পূর্ণসংখ্যা সংরক্ষণের জন্য লক্ষ্য রেজিস্টার ব্যবহার করে বরাদ্দ।

-অবাধ্য-প্রতীক
অনুমান চিহ্নগুলি অবৈধ হতে পারে। কম্পাইলার দ্বারা উত্পন্ন সাধারণ ফাংশন চিহ্ন
"movi"/"shori"/"ptabs" বা "movi"/"shori"/"ptrel" দিয়ে লোড করার জন্য সর্বদা বৈধ, কিন্তু
অ্যাসেম্বলার এবং/অথবা লিঙ্কার কৌশলগুলির সাহায্যে এমন চিহ্নগুলি তৈরি করা সম্ভব যা ঘটায়
ফাঁদে ফেলার জন্য "ptabs" বা "ptrel"। এই বিকল্পটি শুধুমাত্র তখনই অর্থবহ -mno-pt-স্থির হয়
প্রভাব এটি ক্রস-বেসিক-ব্লক CSE, উত্তোলন এবং প্রতীকের সর্বাধিক সময়সূচী প্রতিরোধ করে
লোড ডিফল্ট হয় -mno-অবৈধ-চিহ্ন.

-মব্র্যাঞ্চ-কস্ট =NUM
ধরে NUM একটি শাখা নির্দেশের জন্য খরচ হতে হবে. উচ্চতর সংখ্যা কম্পাইলার তৈরি করে
সম্ভব হলে আরও শাখা-মুক্ত কোড তৈরি করার চেষ্টা করুন। উল্লেখ না থাকলে মান হয়
যে প্রসেসরের জন্য কম্পাইল করা হচ্ছে তার উপর নির্ভর করে নির্বাচন করা হয়েছে।

-mzdcbranch
-mno-zdcbranch
অনুমান (অনুমান করবেন না) যে শূন্য স্থানচ্যুতি শর্তসাপেক্ষ শাখা নির্দেশাবলী "বিটি" এবং
"bf" দ্রুত। যদি -mzdcbranch নির্দিষ্ট করা আছে, কম্পাইলার শূন্য পছন্দ করার চেষ্টা করবে
স্থানচ্যুতি শাখা কোড ক্রম. কোড তৈরি করার সময় এটি ডিফল্টরূপে সক্রিয় থাকে
SH4 এবং SH4A এর জন্য। এটি নির্দিষ্ট করে স্পষ্টভাবে নিষ্ক্রিয় করা যেতে পারে -mno-zdcbranch.

-mcbranchdi
"cbranchdi4" নির্দেশ প্যাটার্ন সক্ষম করুন।

-mcmpeqdi
এমনকি যখন "cmpeqdi_t" নির্দেশ প্যাটার্ন নির্গত করুন -mcbranchdi কার্যকর হয়

-মফিউজড-এমএডিডি
-মনো-ফিউজড-এমএডিডি
এমন কোড তৈরি করুন যা ফ্লোটিং-পয়েন্ট গুন এবং জমা করে (ব্যবহার করে না) ব্যবহার করে
নির্দেশাবলী হার্ডওয়্যার ভাসমান পয়েন্ট হলে এই নির্দেশাবলী ডিফল্টরূপে তৈরি করা হয়
ব্যবহৃত হয়. যন্ত্রনির্ভর -মফিউজড-এমএডিডি বিকল্পটি এখন মেশিনে ম্যাপ করা হয়েছে-
স্বাধীন -ffp-চুক্তি=দ্রুত বিকল্প, এবং -মনো-ফিউজড-এমএডিডি ম্যাপ করা হয়
-ffp-চুক্তি=বন্ধ.

-mfsca
-mno-fsca
সাইন এবং কোসাইনের জন্য কম্পাইলারকে "fsca" নির্দেশনা নির্গত করার অনুমতি দিন বা অননুমোদিত করুন
অনুমান বিকল্প "-mfsca" এর সাথে একত্রে ব্যবহার করা আবশ্যক
"-ফানসেফ-গণিত-অপ্টিমাইজেশান"। কোড তৈরি করার সময় এটি ডিফল্টরূপে সক্রিয় থাকে
SH4A. "-mno-fsca" ব্যবহার করলে সাইন এবং কোসাইন অনুমান নিষ্ক্রিয় হয় এমনকি যদি
"-ফানসেফ-গণিত-অপ্টিমাইজেশন" কার্যকর।

-mfsrra
-mno-fsrra
পারস্পরিক বর্গক্ষেত্রের জন্য কম্পাইলারকে "fsrra" নির্দেশনা নির্গত করার অনুমতি দিন বা অননুমোদিত করুন
মূল অনুমান। বিকল্প "-mfsrra" এর সাথে একত্রে ব্যবহার করা আবশ্যক
"-ফানসেফ-গণিত-অপ্টিমাইজেশান" এবং "-অফিনাইট-গণিত-শুধু"। এটি ডিফল্টরূপে সক্রিয় করা হয় যখন
SH4A এর জন্য কোড তৈরি করা হচ্ছে। "-mno-fsrra" ব্যবহার করে পারস্পরিক বর্গমূল অক্ষম করে
"-ফানসেফ-গণিত-অপ্টিমাইজেশন" এবং "-অফিনাইট-গণিত-শুধু"-তে থাকলেও অনুমান
প্রভাব।

-প্রকাশ করা
শর্তসাপেক্ষ সরানোর নির্দেশের জন্য শূন্য-স্থানচ্যুতি শর্তাধীন শাখা পছন্দ করুন
নিদর্শন এর ফলে SH4 প্রসেসরে দ্রুত কোড আসতে পারে।

সোলারিস 2 অপশন সমূহ

এইগুলো -m বিকল্পগুলি সোলারিস 2 এ সমর্থিত:

-মিম্পুর-টেক্সট
-মিম্পুর-টেক্সট, ছাড়াও ব্যবহৃত - শেয়ার করা হয়েছে, কম্পাইলারকে পাস না করতে বলে -z পাঠ থেকে
একটি শেয়ার্ড অবজেক্ট লিঙ্ক করার সময় লিঙ্কার। এই বিকল্পটি ব্যবহার করে, আপনি অবস্থান লিঙ্ক করতে পারেন-
একটি ভাগ করা বস্তুর মধ্যে নির্ভরশীল কোড।

-মিম্পুর-টেক্সট দমন করে "স্থানান্তরগুলি বরাদ্দযোগ্য তবে অ-লেখার বিপরীতে থাকে৷
বিভাগ" লিঙ্কার ত্রুটি বার্তা। যাইহোক, প্রয়োজনীয় স্থানান্তর কপি-অন-কে ট্রিগার করে।
লিখুন, এবং ভাগ করা বস্তুটি আসলে প্রক্রিয়া জুড়ে ভাগ করা হয় না। পরিবর্তে
ব্যবহার -মিম্পুর-টেক্সট, আপনার সাথে সমস্ত সোর্স কোড কম্পাইল করা উচিত -fpic or -fpic.

এই সুইচগুলি সোলারিস 2-এ উপরেরগুলি ছাড়াও সমর্থিত:

- থ্রেড
POSIX থ্রেড লাইব্রেরি ব্যবহার করে মাল্টিথ্রেডিংয়ের জন্য সমর্থন যোগ করুন। এই বিকল্পটি সেট করে
প্রিপ্রসেসর এবং লিঙ্কার উভয়ের জন্য পতাকা। এই বিকল্পটি থ্রেডকে প্রভাবিত করে না
কম্পাইলার বা এটির সাথে সরবরাহ করা লাইব্রেরিগুলির দ্বারা উত্পাদিত অবজেক্ট কোডের নিরাপত্তা।

- থ্রেড
এই জন্য একটি প্রতিশব্দ - থ্রেড.

SPARC অপশন সমূহ

এইগুলো -m বিকল্পগুলি SPARC-তে সমর্থিত:

-mno-app -regs
-ম্যাপ-রেজেস
নির্দিষ্ট করুন -ম্যাপ-রেজেস গ্লোবাল রেজিস্টার 2 থেকে 4 ব্যবহার করে আউটপুট তৈরি করতে, যা
SPARC SVR4 ABI অ্যাপ্লিকেশনের জন্য সংরক্ষণ করে। গ্লোবাল রেজিস্টারের মতো 1, প্রতিটি বিশ্বব্যাপী
রেজিস্টার 2 থেকে 4 তারপর একটি বরাদ্দযোগ্য রেজিস্টার হিসাবে বিবেচিত হয় যা দ্বারা ক্লোবার করা হয়
ফাংশন কল। এটি ডিফল্ট।

কিছু কর্মক্ষমতা ক্ষতির খরচে সম্পূর্ণরূপে SVR4 ABI-সঙ্গী হতে, নির্দিষ্ট করুন
-mno-app -regs. আপনার এই বিকল্পের সাথে লাইব্রেরি এবং সিস্টেম সফ্টওয়্যার কম্পাইল করা উচিত।

-mflat
-এমনো-ফ্ল্যাট
সঙ্গে -mflat, কম্পাইলার সংরক্ষণ/পুনরুদ্ধার নির্দেশাবলী তৈরি করে না এবং একটি ব্যবহার করে
"ফ্ল্যাট" বা একক রেজিস্টার উইন্ডো মডেল। এই মডেল নিয়মিত সঙ্গে সামঞ্জস্যপূর্ণ
রেজিস্টার উইন্ডো মডেল। স্থানীয় রেজিস্টার এবং ইনপুট রেজিস্টার (0--5) এখনও আছে
"কল-সংরক্ষিত" রেজিস্টার হিসাবে গণ্য করা হয় এবং প্রয়োজন অনুসারে স্ট্যাকে সংরক্ষণ করা হয়।

সঙ্গে -এমনো-ফ্ল্যাট (ডিফল্ট), কম্পাইলার সেভ/রিস্টোর নির্দেশনা তৈরি করে (ব্যতীত
পাতার কাজের জন্য)। এটি স্বাভাবিক অপারেটিং মোড।

-এমএফপিইউ
-মহার্ড-ফ্লোট
ফ্লোটিং-পয়েন্ট নির্দেশাবলী সম্বলিত আউটপুট তৈরি করুন। এটি ডিফল্ট।

-mno-fpu
-মেমসফট-ফ্লোট
ফ্লোটিং পয়েন্টের জন্য লাইব্রেরি কল ধারণকারী আউটপুট তৈরি করুন। সতর্কতা: প্রয়োজনীয়
সমস্ত SPARC টার্গেটের জন্য লাইব্রেরি উপলব্ধ নয়। সাধারনত এর সুবিধা
মেশিনের স্বাভাবিক সি কম্পাইলার ব্যবহার করা হয়, কিন্তু এটি সরাসরি ক্রস-এ করা যায় না
সংকলন উপযুক্ত লাইব্রেরি প্রদানের জন্য আপনাকে অবশ্যই নিজের ব্যবস্থা করতে হবে
ক্রস-সংকলনের জন্য ফাংশন। এমবেডেড লক্ষ্য স্পার্ক-*-আউট এবং স্পারক্লাইট-*-*
সফ্টওয়্যার ফ্লোটিং-পয়েন্ট সমর্থন প্রদান না.

-মেমসফট-ফ্লোট আউটপুট ফাইলে কলিং কনভেনশন পরিবর্তন করে; অতএব, এটা শুধুমাত্র
আপনি কম্পাইল যদি দরকারী সব এই বিকল্প সহ একটি প্রোগ্রামের। বিশেষ করে, আপনি প্রয়োজন
সংকলন libgcc.a, লাইব্রেরি যে GCC এর সাথে আসে, সঙ্গে -মেমসফট-ফ্লোট এই জন্য ক্রম
কাজ করতে.

-মহার্ড-কোয়াড-ফ্লোট
কোয়াড-ওয়ার্ড (লং ডবল) ফ্লোটিং-পয়েন্ট নির্দেশাবলী ধারণকারী আউটপুট তৈরি করুন।

-মেমসফট-কোয়াড-ফ্লোট
কোয়াড-ওয়ার্ড (লং ডবল) ফ্লোটিং-পয়েন্টের জন্য লাইব্রেরি কল ধারণকারী আউটপুট তৈরি করুন
নির্দেশাবলী SPARC ABI-তে নির্দিষ্ট করা ফাংশনগুলিকে বলা হয়৷ এই হল
ডিফল্ট.

এই লেখা পর্যন্ত, এমন কোন SPARC বাস্তবায়ন নেই যার জন্য হার্ডওয়্যার সমর্থন আছে
কোয়াড-শব্দ ভাসমান-বিন্দু নির্দেশাবলী। তারা সকলেই একজনের জন্য একটি ফাঁদ হ্যান্ডলারকে আহ্বান করে
এই নির্দেশাবলী, এবং তারপর ফাঁদ হ্যান্ডলার নির্দেশের প্রভাব অনুকরণ করে।
ওভারহেড ট্র্যাপ হ্যান্ডলারের কারণে, এটি ABI লাইব্রেরি কল করার চেয়ে অনেক ধীর
রুটিন সুতরাং -মেমসফট-কোয়াড-ফ্লোট বিকল্পটি ডিফল্ট।

-mno-unaligned- ডাবলস
-সাম্প্রদায়িক-দ্বৈত
অনুমান করুন যে ডাবলগুলির 8-বাইট প্রান্তিককরণ রয়েছে। এটি ডিফল্ট।

সঙ্গে -সাম্প্রদায়িক-দ্বৈত, GCC অনুমান করে যে ডাবলের 8-বাইট প্রান্তিককরণ আছে শুধুমাত্র যদি তারা
অন্য ধরনের মধ্যে রয়েছে, অথবা যদি তাদের একটি পরম ঠিকানা থাকে। অন্যথায়, এটা
অনুমান করে যে তাদের 4-বাইট প্রান্তিককরণ রয়েছে। এই বিকল্পটি নির্দিষ্ট করা কিছু বিরল এড়িয়ে যায়
অন্যান্য কম্পাইলার দ্বারা উত্পন্ন কোডের সাথে সামঞ্জস্যের সমস্যা। এটা ডিফল্ট নয়
কারণ এর ফলে কর্মক্ষমতা ক্ষতি হয়, বিশেষ করে ফ্লোটিং-পয়েন্ট কোডের জন্য।

-মিউজার-মোড
-mno-ব্যবহারকারী-মোড
শুধুমাত্র সুপারভাইজার মোডে চলতে পারে এমন কোড তৈরি করবেন না। এই শুধুমাত্র জন্য প্রাসঙ্গিক
LEON3 প্রসেসরের জন্য নির্গত "casa" নির্দেশ। ডিফল্ট হয়
-mno-ব্যবহারকারী-মোড.

-mno-দ্রুত-structs
-মফাস্টার-স্ট্রাক্টস
সঙ্গে -মফাস্টার-স্ট্রাক্টস, কম্পাইলার অনুমান করে যে কাঠামোর 8-বাইট থাকা উচিত
প্রান্তিককরণ এটি অনুলিপিগুলির জন্য "ldd" এবং "std" নির্দেশাবলীর জোড়া ব্যবহার করতে সক্ষম করে
স্ট্রাকচার অ্যাসাইনমেন্টে, দ্বিগুণ "ld" এবং "st" জোড়ার জায়গায়। তবে
এই পরিবর্তিত প্রান্তিককরণের ব্যবহার সরাসরি SPARC ABI লঙ্ঘন করে। এইভাবে, এটা উদ্দেশ্য
শুধুমাত্র লক্ষ্যমাত্রায় ব্যবহারের জন্য যেখানে বিকাশকারী স্বীকার করে যে তাদের ফলাফল কোড
ABI এর নিয়মের সাথে সরাসরি সঙ্গতিপূর্ণ নয়।

-mcpu =cpu_type
নির্দেশ সেট, রেজিস্টার সেট, এবং নির্দেশের সময়সূচী পরামিতি সেট করুন
যন্ত্রের প্রকার cpu_type. জন্য সমর্থিত মান cpu_type হয় v7, সরলবর্গীয় চিরহরিৎ বৃক্ষবিশেষ, v8, সুপারস্পার্ক,
হাইপারস্পার্ক, Leon, leon3, leon3v7, স্পারক্লাইট, f930, f934, sparclite86x, স্পার্কলেট,
tsc701, v9, আল্ট্রাস্পার্ক, ultrasparc3, নাইঅ্যাগ্যারা, নায়াগ্রা2, নায়াগ্রা3 এবং নায়াগ্রা4.

নেটিভ সোলারিস এবং GNU/Linux টুলচেইনগুলিও মান সমর্থন করে স্থানীয়, যা নির্বাচন করে
হোস্ট প্রসেসরের জন্য সেরা আর্কিটেকচার বিকল্প। -mcpu=নেটিভ কোন প্রভাব নেই যদি
GCC প্রসেসর চিনতে পারে না।

ডিফল্ট নির্দেশের সময়সূচী পরামিতি একটি নির্বাচন করা মানগুলির জন্য ব্যবহার করা হয়
স্থাপত্য এবং বাস্তবায়ন নয়। এইগুলো v7, v8, স্পারক্লাইট, স্পার্কলেট, v9.

এখানে প্রতিটি সমর্থিত আর্কিটেকচার এবং তাদের সমর্থিত বাস্তবায়নের একটি তালিকা রয়েছে।

v7 cypress, leon3v7

v8 সুপারস্পার্ক, হাইপারস্পার্ক, লিওন, লিওন3

স্পারক্লাইট
f930, f934, sparclite86x

স্পার্কলেট
tsc701

v9 আল্ট্রাস্পার্ক, আল্ট্রাস্পার্ক3, নায়াগ্রা, নায়াগ্রা2, নায়াগ্রা3, নায়াগ্রা4

ডিফল্টরূপে (অন্যথায় কনফিগার করা না থাকলে), GCC এর V7 ভেরিয়েন্টের জন্য কোড তৈরি করে
SPARC আর্কিটেকচার। সঙ্গে -mcpu = সাইপ্রেস, কম্পাইলার অতিরিক্তভাবে এটির জন্য অপ্টিমাইজ করে
সাইপ্রেস CY7C602 চিপ, যেমনটি SPARCStation/SPARCServer 3xx সিরিজে ব্যবহৃত হয়। এই
পুরানো SPARCStation 1, 2, IPX ইত্যাদির জন্যও উপযুক্ত।

সঙ্গে -mcpu=v8, GCC SPARC আর্কিটেকচারের V8 ভেরিয়েন্টের জন্য কোড তৈরি করে। দ্য
V7 কোড থেকে শুধুমাত্র পার্থক্য হল যে কম্পাইলার পূর্ণসংখ্যা সংখ্যা নির্গত করে এবং
পূর্ণসংখ্যা বিভাজন নির্দেশাবলী যা SPARC-V8 তে বিদ্যমান কিন্তু SPARC-V7 তে নেই। সঙ্গে
-mcpu=superparc, কম্পাইলার অতিরিক্তভাবে এটিকে সুপারস্পার্ক চিপের জন্য অপ্টিমাইজ করে, যেমন
SPARCStation 10, 1000 এবং 2000 সিরিজে ব্যবহৃত।

সঙ্গে -mcpu=sparclite, GCC SPARC-এর SPARClite ভেরিয়েন্টের জন্য কোড তৈরি করে
স্থাপত্য এটি পূর্ণসংখ্যা গুন, পূর্ণসংখ্যা ভাগ করার ধাপ এবং স্ক্যান ("ffs") যোগ করে
নির্দেশাবলী যা SPARClite-এ বিদ্যমান কিন্তু SPARC-V7-এ নেই। সঙ্গে -mcpu=f930, দ্য
কম্পাইলার অতিরিক্তভাবে এটিকে Fujitsu MB86930 চিপের জন্য অপ্টিমাইজ করে, যা আসল
SPARClite, কোন FPU ছাড়াই। সঙ্গে -mcpu=f934, কম্পাইলার অতিরিক্তভাবে এটির জন্য অপ্টিমাইজ করে
Fujitsu MB86934 চিপ, যেটি FPU সহ সাম্প্রতিকতম SPARClite।

সঙ্গে -mcpu = স্পার্কলেট, GCC SPARC-এর SPARClet ভেরিয়েন্টের জন্য কোড তৈরি করে
স্থাপত্য এটি পূর্ণসংখ্যা গুন, গুন/জমা, পূর্ণসংখ্যা ভাগ যোগ করে
ধাপ এবং স্ক্যান ("ffs") নির্দেশাবলী যা SPARClet-এ বিদ্যমান কিন্তু SPARC-V7-এ নেই। সঙ্গে
-mcpu=tsc701, কম্পাইলার অতিরিক্ত এটিকে TEMIC SPARClet চিপের জন্য অপ্টিমাইজ করে।

সঙ্গে -mcpu=v9, GCC SPARC আর্কিটেকচারের V9 ভেরিয়েন্টের জন্য কোড তৈরি করে। এই
64-বিট পূর্ণসংখ্যা এবং ফ্লোটিং-পয়েন্ট সরানোর নির্দেশাবলী যোগ করে, 3টি অতিরিক্ত ফ্লোটিং-পয়েন্ট
শর্ত কোড রেজিস্টার এবং শর্তসাপেক্ষ সরানোর নির্দেশাবলী। সঙ্গে -mcpu=আল্ট্রাস্পার্ক,
কম্পাইলার অতিরিক্তভাবে এটিকে সান আল্ট্রাস্পার্ক I/II/IIi চিপগুলির জন্য অপ্টিমাইজ করে। সঙ্গে
-mcpu=ultrasparch3, কম্পাইলার অতিরিক্তভাবে এটিকে সান আল্ট্রাস্পার্কের জন্য অপ্টিমাইজ করে
III/III+/IIIi/IIIi+/IV/IV+ চিপ। সঙ্গে -mcpu=নিয়াগ্রা, অতিরিক্ত কম্পাইলার
সান UltraSPARC T1 চিপগুলির জন্য এটিকে অপ্টিমাইজ করে৷ সঙ্গে -mcpu=নিয়াগ্রা২, কম্পাইলার
উপরন্তু এটি Sun UltraSPARC T2 চিপগুলির জন্য অপ্টিমাইজ করে। সঙ্গে -mcpu=নিয়াগ্রা২, দ্য
কম্পাইলার অতিরিক্তভাবে এটিকে সান আল্ট্রাস্পার্ক টি৩ চিপসের জন্য অপ্টিমাইজ করে। সঙ্গে -mcpu=নিয়াগ্রা২,
কম্পাইলার অতিরিক্তভাবে এটিকে সান আল্ট্রাস্পার্ক T4 চিপগুলির জন্য অপ্টিমাইজ করে।

-mtune =cpu_type
মেশিনের প্রকারের জন্য নির্দেশের সময় নির্ধারণের পরামিতি সেট করুন cpu_type, কিন্তু সেট না
নির্দেশনা সেট বা রেজিস্টার সেট যে বিকল্প -mcpu =cpu_type আছে।

জন্য একই মান -mcpu =cpu_type জন্য ব্যবহার করা যেতে পারে -mtune =cpu_typeতবে একমাত্র
দরকারী মান হল যেগুলি একটি নির্দিষ্ট CPU বাস্তবায়ন নির্বাচন করে। ঐগুলি
সরলবর্গীয় চিরহরিৎ বৃক্ষবিশেষ, সুপারস্পার্ক, হাইপারস্পার্ক, Leon, leon3, leon3v7, f930, f934, sparclite86x,
tsc701, আল্ট্রাস্পার্ক, ultrasparc3, নাইঅ্যাগ্যারা, নায়াগ্রা2, নায়াগ্রা3 এবং নায়াগ্রা4। সঙ্গে
নেটিভ সোলারিস এবং GNU/Linux টুলচেইন, স্থানীয় ব্যবহার করা যেতে পারে।

-mv8plus
-mno-v8plus
সঙ্গে -mv8plus, GCC SPARC-V8+ ABI-এর জন্য কোড তৈরি করে। V8 থেকে পার্থক্য
ABI হল গ্লোবাল এবং আউট রেজিস্টার 64 বিট প্রশস্ত বলে মনে করা হয়। এটি সক্রিয় করা হয়েছে
সমস্ত SPARC-V32 প্রসেসরের জন্য 9-বিট মোডে Solaris-এ ডিফল্টরূপে।

-এমভিএস
-mno-vis
সঙ্গে -এমভিএস, GCC কোড তৈরি করে যা UltraSPARC ভিজ্যুয়ালের সুবিধা নেয়
নির্দেশ সেট এক্সটেনশন. ডিফল্ট হয় -mno-vis.

-mvis2
-mno-vis2
সঙ্গে -mvis2, GCC কোড তৈরি করে যা UltraSPARC-এর 2.0 সংস্করণের সুবিধা নেয়
ভিজ্যুয়াল নির্দেশ সেট এক্সটেনশন. ডিফল্ট হয় -mvis2 যখন একটি সিপিইউ লক্ষ্য করে যে
এই ধরনের নির্দেশাবলী সমর্থন করে, যেমন UltraSPARC-III এবং পরবর্তী। বিন্যাস -mvis2 এছাড়াও
সেট -এমভিএস.

-mvis3
-mno-vis3
সঙ্গে -mvis3, GCC কোড তৈরি করে যা UltraSPARC-এর 3.0 সংস্করণের সুবিধা নেয়
ভিজ্যুয়াল নির্দেশ সেট এক্সটেনশন. ডিফল্ট হয় -mvis3 যখন একটি সিপিইউ লক্ষ্য করে যে
এই ধরনের নির্দেশাবলী সমর্থন করে, যেমন নায়াগ্রা-৩ এবং পরবর্তী। বিন্যাস -mvis3 এছাড়াও সেট
-mvis2 এবং -এমভিএস.

-mcbcond
-mno-cbcond
সঙ্গে -mcbcond, GCC কোড তৈরি করে যা তুলনা-এবং-শাখার সুবিধা নেয়
নির্দেশাবলী, যেমন স্পার্ক আর্কিটেকচার 2011-এ সংজ্ঞায়িত করা হয়েছে। ডিফল্ট হল -mcbcond কখন
একটি সিপিইউকে টার্গেট করা যা এই ধরনের নির্দেশ সমর্থন করে, যেমন niagara-4 এবং পরবর্তীতে।

-mpopc
-mno-popc
সঙ্গে -mpopc, GCC কোড তৈরি করে যা UltraSPARC জনসংখ্যার সুবিধা নেয়
নির্দেশ গণনা। ডিফল্ট হয় -mpopc যখন এই ধরনের সমর্থন করে এমন একটি সিপিইউকে লক্ষ্য করে
নির্দেশাবলী, যেমন নায়াগ্রা-২ এবং পরবর্তী।

-mfmaf
-mno-fmaf
সঙ্গে -mfmaf, GCC কোড তৈরি করে যা UltraSPARC ফিউজড মাল্টিপ্লাই-এর সুবিধা নেয়-
ফ্লোটিং-পয়েন্ট এক্সটেনশন যোগ করুন। ডিফল্ট হয় -mfmaf যখন একটি সিপিইউ লক্ষ্য করে যে
এই ধরনের নির্দেশাবলী সমর্থন করে, যেমন নায়াগ্রা-3 এবং পরবর্তী।

-mfix-at697f
Atmel AT697F প্রসেসরের একক ত্রুটি-বিচ্যুতির জন্য ডকুমেন্টেড ওয়ার্কঅ্যারাউন্ড সক্রিয় করুন
(যা AT13E প্রসেসরের erratum #697 এর সাথে মিলে যায়)।

-mfix-ut699
ফ্লোটিং-পয়েন্ট ত্রুটি-বিচ্যুতি এবং ডেটা ক্যাশের জন্য ডকুমেন্টেড ওয়ার্কঅ্যারাউন্ড সক্রিয় করুন
UT699 প্রসেসরের ত্রুটি-বিচ্যুতি বাতিল করুন।

এইগুলো -m 9-বিটে SPARC-V64 প্রসেসরগুলিতে উপরের ছাড়াও বিকল্পগুলি সমর্থিত
পরিবেশ:

-m32
-m64
একটি 32-বিট বা 64-বিট পরিবেশের জন্য কোড তৈরি করুন। 32-বিট পরিবেশ int সেট করে,
দীর্ঘ এবং 32 বিট পয়েন্টার. 64-বিট পরিবেশ 32 বিট এবং দীর্ঘ এবং int সেট করে
64 বিট পয়েন্টার.

-mcmodel =যে
একটি কোড মডেল সেট করুন

মেডলো
মাঝারি/নিম্ন কোড মডেল: 64-বিট ঠিকানা, প্রোগ্রামগুলি অবশ্যই নিম্ন 32-এ লিঙ্ক করা উচিত
স্মৃতির বিট প্রোগ্রামগুলি স্থিতিশীল বা গতিশীলভাবে লিঙ্ক করা যেতে পারে।

মধ্যম
মাঝারি/মাঝারি কোড মডেল: 64-বিট ঠিকানা, প্রোগ্রামগুলি অবশ্যই নিম্নে লিঙ্ক করা উচিত
44 বিট মেমরি, টেক্সট এবং ডাটা সেগমেন্টের সাইজ 2GB এর কম হতে হবে
ডাটা সেগমেন্টটি টেক্সট সেগমেন্টের 2GB এর মধ্যে থাকা আবশ্যক।

medany
মাঝারি/যেকোনও জায়গায় কোড মডেল: 64-বিট ঠিকানা, প্রোগ্রামগুলি যে কোনও জায়গায় লিঙ্ক করা যেতে পারে
মেমরিতে, টেক্সট এবং ডাটা সেগমেন্টের সাইজ এবং ডাটা 2GB এর কম হতে হবে
সেগমেন্টটি টেক্সট সেগমেন্টের 2GB এর মধ্যে থাকা আবশ্যক।

embedany
এমবেডেড সিস্টেমের জন্য মাঝারি/যেকোনও জায়গায় কোড মডেল: 64-বিট ঠিকানা, পাঠ্য
এবং ডেটা বিভাগগুলি অবশ্যই 2GB-এর কম আকারের হতে হবে, উভয়ই মেমরির যে কোনও জায়গায় শুরু হবে৷
(লিংক সময়ে নির্ধারিত)। গ্লোবাল রেজিস্টার %g4 ডেটার ভিত্তির দিকে নির্দেশ করে
সেগমেন্ট প্রোগ্রামগুলি স্থিরভাবে সংযুক্ত এবং PIC সমর্থিত নয়।

-mmemory-মডেল=মেম-মডেল
প্রসেসরের যেকোন একটিতে মেমরি মডেলটি বলপ্রয়োগ করুন

ডিফল্ট
প্রসেসর এবং অপারেটিং সিস্টেমের জন্য ডিফল্ট মেমরি মডেল।

rmo আরামদায়ক মেমরি অর্ডার

পিএসও আংশিক স্টোর অর্ডার

tso মোট স্টোর অর্ডার

sc অনুক্রমিক সামঞ্জস্য

এই মেমরি মডেলগুলি আনুষ্ঠানিকভাবে Sparc V9 আর্কিটেকচারের পরিশিষ্ট D-এ সংজ্ঞায়িত করা হয়েছে
ম্যানুয়াল, প্রসেসরের "PSTATE.MM" ফিল্ডে সেট করা।

-mstack-পক্ষপাত
-mno-স্ট্যাক-পক্ষপাত
সঙ্গে -mstack-পক্ষপাত, GCC অনুমান করে যে স্ট্যাক পয়েন্টার, এবং ফ্রেম পয়েন্টার উপস্থিত থাকলে,
-2047 দ্বারা অফসেট করা হয় যা স্ট্যাক ফ্রেম রেফারেন্স তৈরি করার সময় আবার যোগ করতে হবে। এই
64-বিট মোডে ডিফল্ট। অন্যথায়, অনুমান করুন যে এই ধরনের কোন অফসেট উপস্থিত নেই।

এসপিএস অপশন সমূহ

এইগুলো -m বিকল্পগুলি SPU-তে সমর্থিত:

-মওয়ার্ন-রিলোক
-মরর-রিলোক
SPU-এর লোডার গতিশীল স্থানান্তর পরিচালনা করে না। ডিফল্টরূপে, GCC একটি দেয়
ত্রুটি যখন এটি কোড তৈরি করে যার জন্য একটি গতিশীল স্থানান্তর প্রয়োজন। -mno-error-reloc
ত্রুটি নিষ্ক্রিয় করে, -মওয়ার্ন-রিলোক পরিবর্তে একটি সতর্কতা তৈরি করে।

-এমএসএফ-ডিএমএ
-মুনসেফ-ডিএমএ
নির্দেশাবলী যেগুলি DMA এর সূচনা বা পরীক্ষা সমাপ্তির সাথে পুনর্বিন্যাস করা উচিত নয়৷
যে মেমরি অ্যাক্সেস করা হচ্ছে তার লোড এবং স্টোরের প্রতি সম্মান। সঙ্গে -মুনসেফ-ডিএমএ
মেমরি অ্যাক্সেস রক্ষা করার জন্য আপনাকে অবশ্যই "অস্থির" কীওয়ার্ড ব্যবহার করতে হবে, তবে এটি হতে পারে
এমন জায়গায় অদক্ষ কোড যেখানে মেমরি পরিবর্তন হয় না। বরং মার্ক
অস্থির হিসাবে মেমরি, আপনি ব্যবহার করতে পারেন -এমএসএফ-ডিএমএ কম্পাইলারকে ডিএমএর চিকিৎসা করতে বলুন
নির্দেশাবলী সম্ভাব্যভাবে সমস্ত মেমরিকে প্রভাবিত করে।

ব্রাঞ্চ-ইঙ্গিত
ডিফল্টরূপে, GCC পাইপলাইন স্টল এড়াতে একটি শাখা ইঙ্গিত নির্দেশনা তৈরি করে
সর্বদা নেওয়া বা সম্ভবত নেওয়া শাখা। একটি ইঙ্গিত 8 এর কাছাকাছি তৈরি হয় না
নির্দেশনা তার শাখা থেকে দূরে। তাদের নিষ্ক্রিয় করার সামান্য কারণ আছে, ছাড়া
ডিবাগ করার উদ্দেশ্যে, বা একটি বস্তুকে একটু ছোট করতে।

-msmall-মেম
-ম্লার্জ-মেম
ডিফল্টরূপে, জিসিসি কোড তৈরি করে এই ধারণা করে যে ঠিকানাগুলি কখনই 18 বিটের চেয়ে বড় নয়।
সঙ্গে -ম্লার্জ-মেম কোড তৈরি করা হয় যা একটি সম্পূর্ণ 32-বিট ঠিকানা অনুমান করে।

-mstdmain
ডিফল্টরূপে, GCC স্টার্টআপ কোডের সাথে লিঙ্ক করে যা SPU-শৈলীর প্রধান ফাংশন ধরে নেয়
ইন্টারফেস (যার একটি অপ্রচলিত পরামিতি তালিকা আছে)। সঙ্গে -mstdmain, GCC লিঙ্ক
স্টার্টআপ কোডের বিরুদ্ধে আপনার প্রোগ্রাম যা একটি C99-স্টাইল ইন্টারফেসকে "প্রধান" হিসেবে ধরে নেয়,
"argv" স্ট্রিংগুলির একটি স্থানীয় অনুলিপি সহ।

-mfixed- রেঞ্জ =রেজিস্টার-পরিসীমা
প্রদত্ত রেজিস্টার পরিসরকে নির্দিষ্ট রেজিস্টার হিসাবে বিবেচনা করে কোড তৈরি করুন। একটি নির্দিষ্ট রেজিস্টার
একটি যা রেজিস্টার বরাদ্দকারী ব্যবহার করতে পারে না। কার্নেল কম্পাইল করার সময় এটি দরকারী
কোড একটি রেজিস্টার পরিসর একটি ড্যাশ দ্বারা পৃথক দুটি রেজিস্টার হিসাবে নির্দিষ্ট করা হয়। একাধিক
রেজিস্টার রেঞ্জ একটি কমা দ্বারা আলাদা করে নির্দিষ্ট করা যেতে পারে।

-mea32
-mea64
কোড কম্পাইল করুন অনুমান করে যে PPU ঠিকানা স্থানের দিকে নির্দেশক "__ea" এর মাধ্যমে অ্যাক্সেস করা হয়েছে
নাম ঠিকানা স্থান কোয়ালিফায়ার হয় 32 বা 64 বিট প্রশস্ত। ডিফল্ট হল 32 বিট।
যেহেতু এটি একটি ABI-পরিবর্তনকারী বিকল্প, তাই একটি এক্সিকিউটেবলের সমস্ত অবজেক্ট কোড কম্পাইল করা আবশ্যক
একই সেটিং সহ।

-maddress-স্পেস-রূপান্তর
-mno-ঠিকানা-স্পেস-রূপান্তর
"__ea" ঠিকানা স্থানটিকে জেনেরিক ঠিকানার সুপারসেট হিসাবে ব্যবহার করার অনুমতি/অনুমতি দিন
স্থান এটি "__ea" এবং জেনেরিক পয়েন্টারের পাশাপাশি সুস্পষ্ট ধরনের কাস্ট সক্ষম করে
"__ea" পয়েন্টারে জেনেরিক পয়েন্টারগুলির অন্তর্নিহিত রূপান্তর। ডিফল্ট অনুমতি দেওয়া হয়
ঠিকানা স্থান পয়েন্টার রূপান্তর.

-mcache-size =ক্যাশে-আকার
এই বিকল্পটি libgcc-এর সংস্করণ নিয়ন্ত্রণ করে যা কম্পাইলার একটি এক্সিকিউটেবলের সাথে লিঙ্ক করে
এবং "__ea" ঠিকানায় ভেরিয়েবল অ্যাক্সেস করার জন্য একটি সফ্টওয়্যার-পরিচালিত ক্যাশে নির্বাচন করে
একটি নির্দিষ্ট ক্যাশে আকার সহ স্থান। জন্য সম্ভাব্য বিকল্প ক্যাশে-আকার হয় 8, 16, 32, 64
এবং 128. ডিফল্ট ক্যাশে সাইজ 64KB।

-ম্যাটমিক-আপডেট
-mno-পরমাণু-আপডেট
এই বিকল্পটি libgcc-এর সংস্করণ নিয়ন্ত্রণ করে যা কম্পাইলার একটি এক্সিকিউটেবলের সাথে লিঙ্ক করে
এবং PPU-সাইড ভেরিয়েবলের সফ্টওয়্যার-পরিচালিত ক্যাশে পারমাণবিক আপডেট হবে কিনা তা নির্বাচন করে
ব্যবহৃত. আপনি যদি পারমাণবিক আপডেট ব্যবহার করেন, তাহলে SPU কোড ব্যবহার করে একটি PPU ভেরিয়েবলে পরিবর্তন হয়
"__ea" নামের অ্যাড্রেস স্পেস কোয়ালিফায়ার অন্যান্য PPU-তে পরিবর্তনের সাথে হস্তক্ষেপ করে না
PPU কোড থেকে একই ক্যাশে লাইনে থাকা ভেরিয়েবল। পরমাণু ব্যবহার না করলে
আপডেট, এই ধরনের হস্তক্ষেপ ঘটতে পারে; যাইহোক, ব্যাক ক্যাশে লাইন লেখা বেশি
দক্ষ. ডিফল্ট আচরণ পারমাণবিক আপডেট ব্যবহার করা হয়.

-mdual-nops
-mdual-nops=n
ডিফল্টরূপে, GCC দ্বৈত সমস্যা বাড়ানোর জন্য nops সন্নিবেশ করায় যখন এটি বৃদ্ধির আশা করে
কর্মক্ষমতা. n 0 থেকে 10 পর্যন্ত একটি মান হতে পারে। একটি ছোট n কম nops সন্নিবেশ. 10 হল
ডিফল্ট, 0 এর মতোই -এমনো-ডুয়াল-নোপস. সঙ্গে অক্ষম -ওএস.

-mhint-max-nops=n
একটি শাখা ইঙ্গিতের জন্য সন্নিবেশ করার জন্য সর্বাধিক সংখ্যক নপ। একটি শাখা ইঙ্গিত কমপক্ষে 8 হতে হবে
শাখা থেকে দূরে নির্দেশ এটি প্রভাবিত করছে. পর্যন্ত জিসিসি সন্নিবেশ করান n nops to
এটি প্রয়োগ করুন, অন্যথায় এটি শাখার ইঙ্গিত তৈরি করে না।

-mhint-max-distance=n
শাখা ইঙ্গিত নির্দেশের এনকোডিং ইঙ্গিতটিকে 256-এর মধ্যে সীমাবদ্ধ করে
শাখার নির্দেশাবলী এটি প্রভাবিত করছে। ডিফল্টরূপে, GCC নিশ্চিত করে যে এটি এর মধ্যে রয়েছে
125.

-msafe-ইঙ্গিত
একটি হার্ডওয়্যার বাগ নিয়ে কাজ করুন যার ফলে SPU অনির্দিষ্টকালের জন্য স্টল হয়ে যায়। ডিফল্টরূপে, GCC
এই স্টলটি ঘটবে না তা নিশ্চিত করতে "hbrp" নির্দেশ সন্নিবেশ করায়।

অপশন সমূহ উন্নত পদ্ধতি V

অন্যদের সাথে সামঞ্জস্যের জন্য এই অতিরিক্ত বিকল্পগুলি সিস্টেম V রিলিজ 4-এ উপলব্ধ
এই সিস্টেমে কম্পাইলার:

-G একটি ভাগ করা বস্তু তৈরি করুন। এটা বাঞ্ছনীয় যে - প্রতীকী or - শেয়ার করা হয়েছে পরিবর্তে ব্যবহার করা হবে।

-কিউ একটি ".ident" অ্যাসেম্বলারে কম্পাইলার দ্বারা ব্যবহৃত প্রতিটি টুলের সংস্করণ সনাক্ত করুন
আউটপুটে নির্দেশিকা।

-কিউএন আউটপুট ফাইলে ".ident" নির্দেশনা যোগ করা থেকে বিরত থাকুন (এটি ডিফল্ট)।

-ওয়াইপি,dirs
ডিরেক্টরি অনুসন্ধান করুন dirs, এবং অন্য কোন, সঙ্গে নির্দিষ্ট লাইব্রেরি জন্য -l.

-ইম,Dir
ডিরেক্টরিতে দেখুন Dir M4 প্রিপ্রসেসর খুঁজে পেতে. অ্যাসেম্বলার এটি ব্যবহার করে
বিকল্প।

টাইল-জিএক্স অপশন সমূহ

এইগুলো -m TILE-Gx-এ বিকল্পগুলি সমর্থিত:

-mcmodel=ছোট
ছোট মডেলের জন্য কোড তৈরি করুন। সরাসরি কলের দূরত্ব 500M পর্যন্ত সীমাবদ্ধ
উভয় দিকে পিসি-সম্পর্কিত ঠিকানা 32 বিট। পরম ঠিকানা সমর্থন
সম্পূর্ণ ঠিকানা পরিসীমা।

-mcmodel=বড়
বড় মডেলের জন্য কোড তৈরি করুন। কল দূরত্বের কোন সীমাবদ্ধতা নেই, পিসি-
আপেক্ষিক ঠিকানা, বা পরম ঠিকানা।

-mcpu =নাম
লক্ষ্য করার জন্য CPU-এর ধরন নির্বাচন করে। বর্তমানে একমাত্র সমর্থিত প্রকার tilegx.

-m32
-m64
একটি 32-বিট বা 64-বিট পরিবেশের জন্য কোড তৈরি করুন। 32-বিট পরিবেশ int সেট করে,
দীর্ঘ, এবং 32 বিট পয়েন্টার. 64-বিট পরিবেশ 32 বিট এবং দীর্ঘ এবং int সেট করে
64 বিট পয়েন্টার.

টাইলপ্রো অপশন সমূহ

এইগুলো -m TILEPro-তে বিকল্পগুলি সমর্থিত:

-mcpu =নাম
লক্ষ্য করার জন্য CPU-এর ধরন নির্বাচন করে। বর্তমানে একমাত্র সমর্থিত প্রকার tilepro.

-m32
একটি 32-বিট পরিবেশের জন্য কোড তৈরি করুন, যা 32 বিটে int, লং এবং পয়েন্টার সেট করে।
এটি একমাত্র সমর্থিত আচরণ তাই পতাকাটি মূলত উপেক্ষা করা হয়।

V850 অপশন সমূহ

এইগুলো -m V850 বাস্তবায়নের জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-মলং-কল
-mno-লং-কল
সমস্ত কলকে দূরে (নিকটে) হিসাবে বিবেচনা করুন। কল অনেক দূরে হতে অনুমান করা হয়,
কম্পাইলার সবসময় একটি রেজিস্টারে ফাংশনের ঠিকানা লোড করে এবং পরোক্ষ কল করে
পয়েন্টারের মাধ্যমে।

-mno-ep
-এমইপি
একই সূচক পয়েন্টার 4 বা তার বেশি ব্যবহার করে এমন মৌলিক ব্লকগুলি অপ্টিমাইজ করবেন না (অপ্টিমাইজ করুন)
"ep" রেজিস্টারে পয়েন্টার কপি করার সময়, এবং ছোট "sld" এবং "sst" ব্যবহার করুন
নির্দেশাবলী দ্য -এমইপি আপনি অপ্টিমাইজ করলে বিকল্পটি ডিফল্টরূপে চালু থাকে।

-mno-prolog-ফাংশন
-mprolog-ফাংশন
প্রস্তাবনাটিতে রেজিস্টার সংরক্ষণ এবং পুনরুদ্ধার করতে বাহ্যিক ফাংশন ব্যবহার করবেন না (ব্যবহার করবেন)
এবং একটি ফাংশনের উপসংহার। বাহ্যিক ফাংশনগুলি ধীর, তবে কম কোড ব্যবহার করে
স্পেস যদি একাধিক ফাংশন একই সংখ্যক রেজিস্টার সংরক্ষণ করে। দ্য
-mprolog-ফাংশন আপনি অপ্টিমাইজ করলে বিকল্পটি ডিফল্টরূপে চালু থাকে।

-এমস্পেস
কোড যতটা সম্ভব ছোট করার চেষ্টা করুন। বর্তমানে, এই শুধু চালু -এমইপি
এবং -mprolog-ফাংশন অপশন।

-mtda =n
স্ট্যাটিক বা গ্লোবাল ভেরিয়েবল রাখুন যার আকার n বাইট বা কম ক্ষুদ্র তথ্য এলাকায়
যে নিবন্ধন "ep" পয়েন্ট. ক্ষুদ্র ডেটা এলাকা মোট 256 বাইট পর্যন্ত ধারণ করতে পারে
(বাইট রেফারেন্সের জন্য 128 বাইট)।

-msda =n
স্ট্যাটিক বা গ্লোবাল ভেরিয়েবল রাখুন যার আকার n ছোট ডেটা এলাকায় বাইট বা কম
যে নিবন্ধন "gp" পয়েন্ট. ছোট ডেটা এলাকা 64 কিলোবাইট পর্যন্ত ধারণ করতে পারে।

-mzda =n
স্ট্যাটিক বা গ্লোবাল ভেরিয়েবল রাখুন যার আকার n প্রথম 32 তে বাইট বা তার কম
কিলোবাইট মেমরি।

-mv850
উল্লেখ করুন যে লক্ষ্য প্রসেসর হল V850.

-MV850E3V5
উল্লেখ করুন যে লক্ষ্য প্রসেসর হল V850E3V5। প্রিপ্রসেসর ধ্রুবক
__v850e3v5__ এই বিকল্পটি ব্যবহার করা হলে সংজ্ঞায়িত করা হয়।

-MV850E2V4
উল্লেখ করুন যে লক্ষ্য প্রসেসর হল V850E3V5। এই জন্য একটি উপনাম
-MV850E3V5 বিকল্প।

-MV850E2V3
উল্লেখ করুন যে লক্ষ্য প্রসেসর হল V850E2V3। প্রিপ্রসেসর ধ্রুবক
__v850e2v3__ এই বিকল্পটি ব্যবহার করা হলে সংজ্ঞায়িত করা হয়।

-mv850e2
উল্লেখ করুন যে লক্ষ্য প্রসেসর হল V850E2। প্রিপ্রসেসর ধ্রুবক __v850e2__
এই বিকল্পটি ব্যবহার করা হলে সংজ্ঞায়িত করা হয়।

-mv850e1
উল্লেখ করুন যে লক্ষ্য প্রসেসর হল V850E1। প্রিপ্রসেসর ধ্রুবক
__v850e1__ এবং __v850e__ এই বিকল্পটি ব্যবহার করা হলে সংজ্ঞায়িত করা হয়।

-mv850es
উল্লেখ করুন যে লক্ষ্য প্রসেসর হল V850ES। এই জন্য একটি উপনাম -mv850e1
বিকল্প।

-mv850e
উল্লেখ করুন যে লক্ষ্য প্রসেসর হল V850E। প্রিপ্রসেসর ধ্রুবক __v850e__
এই বিকল্পটি ব্যবহার করা হলে সংজ্ঞায়িত করা হয়।

যদি না হয় -mv850 না -mv850e না -mv850e1 না -mv850e2 না -MV850E2V3 না -MV850E3V5
সংজ্ঞায়িত করা হয় তারপর একটি ডিফল্ট টার্গেট প্রসেসর নির্বাচন করা হয় এবং প্রাসঙ্গিক __v850*__
প্রিপ্রসেসর ধ্রুবক সংজ্ঞায়িত করা হয়।

প্রিপ্রসেসর ধ্রুবক __v850 এবং __v851__ সর্বদা সংজ্ঞায়িত করা হয়, নির্বিশেষে যা
প্রসেসর বৈকল্পিক লক্ষ্য.

-mdisable-calt
-mno-অক্ষম-কল
এই বিকল্পটি v850e, v850e1, এর জন্য "CALLT" নির্দেশনার প্রজন্মকে দমন করে।
v850 স্থাপত্যের v2e850, v2e3v850 এবং v3e5v850 ফ্লেভার।

এই বিকল্পটি ডিফল্টরূপে সক্রিয় থাকে যখন RH850 ABI ব্যবহার করা হয় (দেখুন -MRH850-ABI), এবং
যখন GCC ABI ব্যবহার করা হয় তখন ডিফল্টরূপে অক্ষম। যদি "CALLT" নির্দেশনা দেওয়া হয়
জেনারেট করা হলে সি প্রিপ্রসেসর চিহ্ন "__V850_CALLT__" সংজ্ঞায়িত করা হবে।

-মরেলাক্স
-মনে-বিশ্রাম
পাস অন (অথবা পাস করবেন না) the -মরেলাক্স অ্যাসেম্বলারের কাছে কমান্ড লাইন বিকল্প।

-মলং-জাম্প
-mno-লং-জাম্পস
পিসি-সম্পর্কিত জাম্প নির্দেশাবলীর প্রজন্মকে অক্ষম (বা পুনরায় সক্ষম করুন)।

-মেমসফট-ফ্লোট
-মহার্ড-ফ্লোট
হার্ডওয়্যার ফ্লোটিং পয়েন্ট নির্দেশাবলীর প্রজন্মকে অক্ষম করুন (বা পুনরায় সক্ষম করুন)৷ এই
বিকল্পটি শুধুমাত্র তাৎপর্যপূর্ণ যখন লক্ষ্য আর্কিটেকচার হয় V850E2V3 অথবা উচ্চতর. যদি
হার্ডওয়্যার ফ্লোটিং পয়েন্ট নির্দেশাবলী তৈরি করা হচ্ছে তারপর সি প্রিপ্রসেসর
প্রতীক "__FPU_OK__" সংজ্ঞায়িত করা হবে, অন্যথায় প্রতীক "__NO_FPU__" হবে
সংজ্ঞায়িত

-ম্লুপ
e3v5 LOOP নির্দেশের ব্যবহার সক্ষম করে। এই নির্দেশের ব্যবহার নয়
ডিফল্টরূপে সক্রিয় করা হয় যখন e3v5 আর্কিটেকচার নির্বাচন করা হয় কারণ এর ব্যবহার এখনও রয়েছে
পরীক্ষামূলক

-MRH850-ABI
-mghs
V850 ABI-এর RH850 সংস্করণের জন্য সমর্থন সক্ষম করে। এটি ডিফল্ট। সঙ্গে
ABI-এর এই সংস্করণে নিম্নলিখিত নিয়মগুলি প্রযোজ্য:

· পূর্ণসংখ্যার আকারের কাঠামো এবং ইউনিয়নগুলি একটি মেমরি পয়েন্টারের মাধ্যমে ফিরে আসে
একটি রেজিস্টার

· বড় কাঠামো এবং ইউনিয়ন (আকারে 8 বাইটের বেশি) মান দ্বারা পাস করা হয়।

· ফাংশন 16-বিট সীমারেখায় সারিবদ্ধ।

· দ্য -m8byte-সারিবদ্ধ কমান্ড লাইন বিকল্প সমর্থিত।

· দ্য -mdisable-calt কমান্ড লাইন বিকল্পটি ডিফল্টরূপে সক্রিয় করা হয়। দ্য
-mno-অক্ষম-কল কমান্ড লাইন বিকল্প সমর্থিত নয়।

যখন ABI-এর এই সংস্করণটি সক্রিয় করা হয় তখন C প্রিপ্রসেসর চিহ্ন "__V850_RH850_ABI__"
সংজ্ঞায়িত করা.

-এমজিসিসি-আবি
V850 ABI-এর পুরানো GCC সংস্করণের জন্য সমর্থন সক্ষম করে৷ ABI এর এই সংস্করণের সাথে
নিম্নলিখিত বিধি প্রযোজ্য:

· পূর্ণসংখ্যা আকারের কাঠামো এবং ইউনিয়নগুলি রেজিস্টার "r10" এ ফেরত দেওয়া হয়।

· বড় কাঠামো এবং ইউনিয়ন (আকারে 8 বাইটের বেশি) রেফারেন্স দ্বারা পাস করা হয়।

· ফাংশনগুলি 32-বিট সীমানায় সারিবদ্ধ করা হয়, যদি না আকারের জন্য অপ্টিমাইজ করা হয়।

· দ্য -m8byte-সারিবদ্ধ কমান্ড লাইন বিকল্প সমর্থিত নয়।

· দ্য -mdisable-calt কমান্ড লাইন বিকল্পটি সমর্থিত কিন্তু ডিফল্টরূপে সক্রিয় নয়।

যখন ABI-এর এই সংস্করণটি সক্রিয় করা হয় তখন C প্রিপ্রসেসর চিহ্ন "__V850_GCC_ABI__"
সংজ্ঞায়িত করা.

-m8byte-সারিবদ্ধ
-mno-8বাইট-সারিবদ্ধ
8-বাইটে সারিবদ্ধ হতে "ডাবলস" এবং "লং লং" প্রকারের জন্য সমর্থন সক্ষম করে
সীমানা. ডিফল্ট হল সব অবজেক্টের সারিবদ্ধকরণকে সর্বাধিক সীমাবদ্ধ করা
4 বাইট. কখন -m8byte-সারিবদ্ধ কার্যত সি প্রিপ্রসেসর চিহ্ন
"__V850_8BYTE_ALIGN__" সংজ্ঞায়িত করা হবে।

-এমবিগ-সুইচ
বড় সুইচ টেবিলের জন্য উপযুক্ত কোড তৈরি করুন। শুধুমাত্র যদি এই বিকল্পটি ব্যবহার করুন
অ্যাসেম্বলার/লিঙ্কার একটি সুইচ টেবিলের মধ্যে রেঞ্জের বাইরের শাখা সম্পর্কে অভিযোগ করে।

-ম্যাপ-রেজেস
এই বিকল্পটি কম্পাইলার দ্বারা উত্পন্ন কোডে r2 এবং r5 ব্যবহার করতে দেয়। এই
সেটিং ডিফল্ট।

-mno-app -regs
এই বিকল্পটি r2 এবং r5 কে নির্দিষ্ট রেজিস্টার হিসাবে গণ্য করে।

ভ্যাক্স অপশন সমূহ

এইগুলো -m VAX-এর জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-মিউনিক্স
ইউনিক্স অ্যাসেম্বলারের নির্দিষ্ট জাম্প নির্দেশনা ("aobleq" এবং তাই) আউটপুট করবেন না
VAX দীর্ঘ পরিসীমা জুড়ে পরিচালনা করতে পারে না জন্য.

-mgnu
GNU অ্যাসেম্বলার হচ্ছে এমন অনুমানে সেই জাম্প নির্দেশাবলী আউটপুট করুন
ব্যবহার করা হয়েছে।

-এমজি ডি-ফরম্যাটের পরিবর্তে জি-ফরম্যাটের ফ্লোটিং-পয়েন্ট নম্বরগুলির জন্য আউটপুট কোড।

VMS অপশন সমূহ

এইগুলো -m VMS বাস্তবায়নের জন্য বিকল্পগুলি সংজ্ঞায়িত করা হয়েছে:

-mvms-রিটার্ন-কোড
"প্রধান" থেকে VMS কন্ডিশন কোড ফেরত দিন। ডিফল্ট হল POSIX-শৈলী শর্ত ফেরত দেওয়া
(যেমন ত্রুটি) কোড।

-mdebug-main =উপসর্গ
যার নাম দিয়ে শুরু হয় সেই প্রথম রুটিনটিকে ফ্ল্যাগ করুন উপসর্গ জন্য প্রধান রুটিন হিসাবে
ডিবাগার

-mmalloc64
64-বিট মেমরি বরাদ্দের রুটিনে ডিফল্ট।

-mpointer-size =আয়তন
পয়েন্টারগুলির ডিফল্ট আকার সেট করুন। জন্য সম্ভাব্য বিকল্প আয়তন হয় 32 or সংক্ষিপ্ত 32 বিটের জন্য
নির্দেশক, 64 or দীর্ঘ 64 বিট পয়েন্টারের জন্য, এবং না। শুধুমাত্র 32 বিট পয়েন্টার সমর্থন করার জন্য।
পরবর্তী বিকল্পটি "pragma pointer_size" অক্ষম করে।

ভিএক্স ওয়ার্কস অপশন সমূহ

এই বিভাগে বিকল্পগুলি সমস্ত VxWorks লক্ষ্যগুলির জন্য সংজ্ঞায়িত করা হয়েছে৷ নির্দিষ্ট বিকল্প
লক্ষ্য হার্ডওয়্যার সেই লক্ষ্যের জন্য অন্যান্য বিকল্পগুলির সাথে তালিকাভুক্ত করা হয়েছে।

-এমআরটিপি
GCC VxWorks কার্নেল এবং রিয়েল টাইম প্রসেস (RTPs) উভয়ের জন্য কোড তৈরি করতে পারে। এই
বিকল্পটি আগের থেকে পরবর্তীতে স্যুইচ করে। এটি প্রিপ্রসেসর ম্যাক্রোকেও সংজ্ঞায়িত করে
"__RTP__"।

-অ-স্থির
স্ট্যাটিক লাইব্রেরির পরিবর্তে শেয়ার্ড লাইব্রেরির বিরুদ্ধে এক্সিকিউটেবল একটি RTP লিঙ্ক করুন। দ্য
অপশন - স্থির এবং - শেয়ার করা হয়েছে RTP-এর জন্যও ব্যবহার করা যেতে পারে; - স্থির ডিফল্ট হয়

-বস্ট্যাটিক
-বিডাইনামিক
এই বিকল্পগুলি লিঙ্কারের কাছে পাঠানো হয়। তারা সঙ্গে সামঞ্জস্যের জন্য সংজ্ঞায়িত করা হয়
দিয়াব।

-Xbind-অলস
ফাংশন কলের অলস বাঁধাই সক্ষম করুন। এই বিকল্পটি সমতুল্য -Wl,-z,এখন এবং এটি হল
ডায়াবের সাথে সামঞ্জস্যের জন্য সংজ্ঞায়িত।

-এক্সবাইন্ড-এখন
ফাংশন কলের অলস বাঁধাই অক্ষম করুন। এই বিকল্পটি ডিফল্ট এবং এর জন্য সংজ্ঞায়িত করা হয়েছে
ডায়াবের সাথে সামঞ্জস্যপূর্ণ।

x86-64 অপশন সমূহ

এই অধীনে তালিকাভুক্ত করা হয়

Xstormy16 অপশন সমূহ

এই বিকল্পগুলি Xstormy16 এর জন্য সংজ্ঞায়িত করা হয়েছে:

-msim
সিমুলেটরের জন্য উপযুক্ত স্টার্টআপ ফাইল এবং লিঙ্কার স্ক্রিপ্ট চয়ন করুন।

এক্সটেনসা অপশন সমূহ

এই বিকল্পগুলি Xtensa লক্ষ্যগুলির জন্য সমর্থিত:

-mconst16
-mno-const16
ধ্রুবক মান লোড করার জন্য "CONST16" নির্দেশাবলীর ব্যবহার সক্ষম বা অক্ষম করুন৷ দ্য
"CONST16" নির্দেশ বর্তমানে Tensilica থেকে একটি আদর্শ বিকল্প নয়। কখন
সক্রিয়, "CONST16" নির্দেশাবলী সর্বদা স্ট্যান্ডার্ড "L32R" এর জায়গায় ব্যবহার করা হয়
নির্দেশাবলী "CONST16" ব্যবহার ডিফল্টরূপে সক্রিয় করা হয় শুধুমাত্র যদি "L32R"
নির্দেশ পাওয়া যায় না।

-মফিউজড-এমএডিডি
-মনো-ফিউজড-এমএডিডি
ফিউজড গুন/যোগ এবং গুণ/বিয়োগ নির্দেশাবলীর ব্যবহার সক্ষম বা নিষ্ক্রিয় করুন
ভাসমান-বিন্দু বিকল্প। ফ্লোটিং-পয়েন্ট বিকল্পটি না থাকলে এটির কোন প্রভাব নেই
সক্রিয় ফিউজড গুন/যোগ এবং গুণ/বিয়োগ নির্দেশাবলী অক্ষম করা বাধ্যতামূলক করে
গুণ এবং যোগ/বিয়োগ করার জন্য পৃথক নির্দেশাবলী ব্যবহার করার জন্য কম্পাইলার।
এটি এমন কিছু ক্ষেত্রে বাঞ্ছনীয় হতে পারে যেখানে কঠোর IEEE 754-সঙ্গী ফলাফল
প্রয়োজনীয়: সংযুক্ত গুণিত যোগ/বিয়োগ নির্দেশাবলী মধ্যবর্তী বৃত্তাকার নয়
ফলাফল, যার ফলে ফলাফল উত্পাদন অধিক দ্বারা নির্দিষ্ট করা থেকে নির্ভুলতা বিট
IEEE স্ট্যান্ডার্ড। ফিউজড গুন যোগ/বিয়োগ নির্দেশাবলী অক্ষম করাও তা নিশ্চিত করে
প্রোগ্রামের আউটপুট কম্পাইলারের গুণিতক এবং একত্রিত করার ক্ষমতার প্রতি সংবেদনশীল নয়
ক্রিয়াকলাপ যোগ/বিয়োগ করুন।

mserialize-অস্থির
-mno-সিরিয়ালাইজ-অস্থির
যখন এই বিকল্পটি সক্রিয় থাকে, GCC "অস্থির" মেমরির আগে "MEMW" নির্দেশাবলী সন্নিবেশ করায়
অনুক্রমিক সামঞ্জস্যের গ্যারান্টি রেফারেন্স। ডিফল্ট হয় mserialize-অস্থির.
ব্যবহার -mno-সিরিয়ালাইজ-অস্থির "MEMW" নির্দেশাবলী বাদ দিতে।

-এমফোর্স-নো-ছবি
লক্ষ্যগুলির জন্য, যেমন GNU/Linux, যেখানে সমস্ত ব্যবহারকারী-মোড Xtensa কোড অবশ্যই অবস্থানে থাকতে হবে-
স্বাধীন কোড (PIC), এই বিকল্পটি কার্নেল কোড কম্পাইল করার জন্য PIC অক্ষম করে।

-মটেক্সট-বিভাগ-আধ্যাত্মিক
-mno-টেক্সট-বিভাগ-আক্ষরিক
আক্ষরিক পুল চিকিত্সা নিয়ন্ত্রণ. ডিফল্ট হয় -mno-টেক্সট-বিভাগ-আক্ষরিক,
যা আউটপুট ফাইলের একটি পৃথক বিভাগে আক্ষরিক রাখে। এই অনুমতি দেয়
আক্ষরিক পুল একটি ডেটা RAM/ROM এ স্থাপন করা হবে এবং এটি লিঙ্কারকে একত্রিত করার অনুমতি দেয়
অপ্রয়োজনীয় আক্ষরিক অপসারণ এবং কোড উন্নত করতে পৃথক অবজেক্ট ফাইল থেকে আক্ষরিক পুল
আকার সঙ্গে -মটেক্সট-বিভাগ-আধ্যাত্মিক, আক্ষরিক টেক্সট বিভাগে ছেদ করা হয়
যাতে তাদের রেফারেন্সের যতটা সম্ভব কাছাকাছি রাখা যায়। এই প্রয়োজন হতে পারে
বড় সমাবেশ ফাইলের জন্য।

-mtarget-lign
-mno-টার্গেট-সারিবদ্ধ
যখন এই বিকল্পটি সক্রিয় থাকে, তখন GCC অ্যাসেম্বলারকে স্বয়ংক্রিয়ভাবে সারিবদ্ধ করার নির্দেশ দেয়
কিছু কোড ঘনত্বের ব্যয়ে শাখা জরিমানা হ্রাস করার নির্দেশাবলী। দ্য
সংযোজনকারী শাখা লক্ষ্য এবং সারিবদ্ধ করার জন্য ঘনত্ব নির্দেশাবলী প্রশস্ত করার চেষ্টা করে
নির্দেশাবলী অনুসরণ কল নির্দেশাবলী. যদি যথেষ্ট পূর্ববর্তী নিরাপদ না থাকে
একটি লক্ষ্য সারিবদ্ধ করার জন্য ঘনত্ব নির্দেশাবলী, কোন প্রসারিত করা হয় না। ডিফল্ট হয়
-mtarget-lign. এই বিকল্পগুলি অটো-সারিবদ্ধ চিকিত্সার উপর প্রভাব ফেলে না
"LOOP" এর মতো নির্দেশাবলী, যা সংযোজনকারী সর্বদা সারিবদ্ধ করে, হয় প্রশস্ত করে
ঘনত্ব নির্দেশাবলী বা NOP নির্দেশাবলী সন্নিবেশ দ্বারা.

-মল্লং কল
-মনো-লং কল
যখন এই বিকল্পটি সক্রিয় থাকে, তখন জিসিসি অ্যাসেম্বলারকে সরাসরি কলগুলি অনুবাদ করার নির্দেশ দেয়৷
পরোক্ষ কলগুলি যদি না এটি নির্ধারণ করতে পারে যে সরাসরি কলের লক্ষ্য
কল নির্দেশ দ্বারা অনুমোদিত পরিসীমা. এই অনুবাদটি সাধারণত কল করার জন্য ঘটে
অন্যান্য সোর্স ফাইলে ফাংশন। বিশেষ করে, অ্যাসেম্বলার একটি সরাসরি অনুবাদ করে
একটি "L32R"-এ "ক্যাল" নির্দেশের পরে একটি "CALLX" নির্দেশ। ডিফল্ট হয়
-মনো-লং কল. এই বিকল্পটি এমন প্রোগ্রামগুলিতে ব্যবহার করা উচিত যেখানে কল টার্গেট করতে পারে
সম্ভাব্য সীমার বাইরে এই বিকল্পটি অ্যাসেম্বলারে প্রয়োগ করা হয়, নয়
কম্পাইলার, তাই GCC দ্বারা উত্পন্ন সমাবেশ কোড এখনও সরাসরি কল দেখায়
নির্দেশাবলী --- প্রকৃত নির্দেশাবলী দেখতে disassembled অবজেক্ট কোড দেখুন।
মনে রাখবেন যে অ্যাসেম্বলার প্রতিটি ক্রস-ফাইল কলের জন্য একটি পরোক্ষ কল ব্যবহার করে, শুধু নয়
যেগুলো সত্যিই পরিসীমার বাইরে।

zseries অপশন সমূহ

এই অধীনে তালিকাভুক্ত করা হয়

অপশন সমূহ উন্নত কোড প্রজন্ম কনভেনশন
এই মেশিন-স্বাধীন বিকল্পগুলি কোডে ব্যবহৃত ইন্টারফেস কনভেনশনগুলিকে নিয়ন্ত্রণ করে
প্রজন্ম।

তাদের বেশিরভাগের ইতিবাচক এবং নেতিবাচক উভয় ফর্ম রয়েছে; এর নেতিবাচক রূপ -ফু is
-fno-foo. নীচের সারণীতে, শুধুমাত্র একটি ফর্ম তালিকাভুক্ত করা হয়েছে---যেটি নয়
ডিফল্ট. আপনি হয় অপসারণ করে অন্য ফর্মটি বের করতে পারেন না- বা এটি যোগ করা।

-fbounds-চেক
সামনের প্রান্তগুলির জন্য যা এটি সমর্থন করে, সূচকগুলি ব্যবহার করা হয়েছে তা পরীক্ষা করতে অতিরিক্ত কোড তৈরি করুন৷
অ্যাক্সেস অ্যারেগুলি ঘোষিত পরিসরের মধ্যে রয়েছে। এটি বর্তমানে শুধুমাত্র দ্বারা সমর্থিত
Java এবং Fortran ফ্রন্ট এন্ড, যেখানে এই অপশনটি ডিফল্ট সত্য এবং মিথ্যা
যথাক্রমে.

-fstack-পুনঃব্যবহার=পুনঃব্যবহার-স্তর
এই বিকল্পটি ব্যবহারকারী ঘোষিত স্থানীয়/স্বয়ংক্রিয় ভেরিয়েবলের জন্য স্ট্যাক স্পেস পুনঃব্যবহার নিয়ন্ত্রণ করে
কম্পাইলার তৈরি অস্থায়ী. Reuse_level হতে পারে সব, নাম_ভার্স, বা না. সব
সমস্ত স্থানীয় ভেরিয়েবল এবং অস্থায়ী জন্য স্ট্যাক পুনঃব্যবহার সক্ষম করে, নাম_ভার্স সক্ষম করে
শুধুমাত্র নাম সহ ব্যবহারকারীর সংজ্ঞায়িত স্থানীয় ভেরিয়েবলের জন্য পুনরায় ব্যবহার করুন, এবং না স্ট্যাক পুনঃব্যবহার অক্ষম করে
সম্পূর্ণরূপে ডিফল্ট মান হল সব. প্রোগ্রামটি প্রসারিত হলে বিকল্পটি প্রয়োজন
একটি স্কোপড লোকাল ভেরিয়েবলের জীবনকাল বা একটি কম্পাইলার অস্থায়ীভাবে উত্পন্ন
ভাষা দ্বারা সংজ্ঞায়িত শেষ বিন্দু। যখন একটি পরিবর্তনশীল জীবনকাল শেষ হয়, এবং যদি
পরিবর্তনশীল মেমরিতে বাস করে, অপ্টিমাইজিং কম্পাইলার এর স্ট্যাক পুনরায় ব্যবহার করার স্বাধীনতা রয়েছে
অন্যান্য অস্থায়ী বা স্কোপ করা স্থানীয় ভেরিয়েবলের সাথে স্থান যার লাইভ পরিসীমা নেই
এটার সাথে ওভারল্যাপ স্থানীয় জীবনকাল প্রসারিত লিগ্যাসি কোডের সাথে ভাঙার সম্ভাবনা রয়েছে
স্ট্যাক পুনঃব্যবহার অপ্টিমাইজেশান।

উদাহরণ স্বরূপ,

int *p;
{
int local1;

p = &local1;
স্থানীয় 1 = 10;
....
}
{
int local2;
স্থানীয় 2 = 20;
...
}

যদি (*p == 10) // লোকাল1-এর সুযোগের বাইরে
{

}

আরেকটি উদাহরণ:

struct A
{
A(int k): i(k), j(k) { }
int i;
int j;
};

একটি *এপি;

void foo (const A&AR)
{
ap = &ar;
}

অকার্যকর বার()
{
foo(A(10)); // টেম্প অবজেক্টের জীবনকাল শেষ হয় যখন foo ফিরে আসে

{
A a(২০১১);
....
}
ap->i+= 10; // এপি রেফারেন্স অফ স্কোপ টেম্প যার স্থান
// a এর সাথে পুনরায় ব্যবহার করা হয়। ap->i এর মান কত?
}

একটি কম্পাইলার তৈরি অস্থায়ী জীবনকাল C++ মান দ্বারা ভালভাবে সংজ্ঞায়িত করা হয়।
যখন একটি অস্থায়ী জীবনকাল শেষ হয়, এবং যদি অস্থায়ী স্মৃতিতে বেঁচে থাকে,
অপ্টিমাইজিং কম্পাইলার এর স্ট্যাক স্পেস অন্যান্য অস্থায়ী বা সাথে পুনরায় ব্যবহার করার স্বাধীনতা রয়েছে
স্কোপড স্থানীয় ভেরিয়েবল যার লাইভ পরিসীমা এটির সাথে ওভারল্যাপ করে না। তবে কিছু
লিগ্যাসি কোড পুরানো কম্পাইলারদের আচরণের উপর নির্ভর করে যেখানে অস্থায়ী স্ট্যাক
স্থান পুনরায় ব্যবহার করা হয় না, আক্রমণাত্মক স্ট্যাক পুনঃব্যবহারের ফলে রানটাইম ত্রুটি হতে পারে। এই
বিকল্পটি অস্থায়ী স্ট্যাক পুনঃব্যবহার অপ্টিমাইজেশন নিয়ন্ত্রণ করতে ব্যবহৃত হয়।

-ftrapv
এই বিকল্পটি যোগ, বিয়োগের উপর স্বাক্ষরিত ওভারফ্লো জন্য ফাঁদ তৈরি করে।
গুণন অপারেশন।

-fwrapv
এই বিকল্পটি কম্পাইলারকে নির্দেশ দেয় যে স্বাক্ষরিত গাণিতিক ওভারফ্লো অনুমান করতে
যোগ, বিয়োগ এবং গুন দুই-পরিপূরক ব্যবহার করে চারপাশে মোড়ানো হয়
প্রতিনিধিত্ব এই পতাকা কিছু অপ্টিমাইজেশান সক্ষম করে এবং অন্যকে অক্ষম করে। এই
জাভা ভাষার প্রয়োজন অনুসারে জাভা ফ্রন্ট এন্ডের জন্য বিকল্পটি ডিফল্টরূপে সক্রিয় থাকে
নির্দিষ্টকরণ।

- ব্যতিক্রম
ব্যতিক্রম হ্যান্ডলিং সক্ষম করুন। ব্যতিক্রমগুলি প্রচার করার জন্য প্রয়োজনীয় অতিরিক্ত কোড তৈরি করে। জন্য
কিছু লক্ষ্যমাত্রা, এর অর্থ হল GCC সমস্ত ফাংশনের জন্য ফ্রেম আনওয়াইন্ড তথ্য তৈরি করে,
যা উল্লেখযোগ্য ডেটা সাইজ ওভারহেড তৈরি করতে পারে, যদিও এটি প্রভাবিত করে না
মৃত্যুদন্ড আপনি যদি এই বিকল্পটি নির্দিষ্ট না করেন, GCC এটিকে ডিফল্টরূপে ভাষাগুলির জন্য সক্রিয় করে
যেমন C++ এর জন্য সাধারণত ব্যতিক্রম পরিচালনার প্রয়োজন হয় এবং এর মতো ভাষার জন্য এটি নিষ্ক্রিয় করে
C যে সাধারণত এটা প্রয়োজন হয় না. যাইহোক, আপনি যখন এই বিকল্প সক্রিয় করতে হবে
সি কোড কম্পাইল করা হচ্ছে যা লিখিত ব্যতিক্রম হ্যান্ডলারের সাথে সঠিকভাবে ইন্টারঅপারেট করতে হবে
C++ এ। আপনি যদি পুরানো C++ কম্পাইল করেন তবে আপনি এই বিকল্পটি নিষ্ক্রিয় করতে চাইতে পারেন
যে প্রোগ্রামগুলি ব্যতিক্রম হ্যান্ডলিং ব্যবহার করে না।

-অ-কল-ব্যতিক্রম
কোড তৈরি করুন যা ফাঁদে ফেলার নির্দেশাবলীকে ব্যতিক্রম ছুঁড়তে দেয়। উল্লেখ্য যে এই
প্ল্যাটফর্ম-নির্দিষ্ট রানটাইম সমর্থন প্রয়োজন যা সর্বত্র বিদ্যমান নয়। তাছাড়া,
এটা শুধুমাত্র অনুমতি দেয় ফাঁদে আটকান ব্যতিক্রম নিক্ষেপ করার নির্দেশাবলী, যেমন মেমরি রেফারেন্স বা
ভাসমান-বিন্দু নির্দেশাবলী। এটি স্বেচ্ছাচারী থেকে ব্যতিক্রম নিক্ষেপ করার অনুমতি দেয় না
সিগন্যাল হ্যান্ডলার যেমন "SIGALRM"।

-ফডিলিট-ডেড-এক্সসেপশনস
সেই নির্দেশাবলী বিবেচনা করুন যা ব্যতিক্রম হতে পারে কিন্তু অন্যথায় অবদান রাখে না
প্রোগ্রামের সঞ্চালন দূরে অপ্টিমাইজ করা যেতে পারে. এই বিকল্পটি ডিফল্টরূপে সক্রিয় করা হয়
অ্যাডা ফ্রন্ট এন্ডের জন্য, অ্যাডা ভাষার স্পেসিফিকেশন দ্বারা অনুমোদিত। অপ্টিমাইজেশান
যে পাসগুলি মৃত ব্যতিক্রমগুলিকে অপসারণ করতে পারে সেগুলি স্বাধীনভাবে বিভিন্ন সময়ে সক্রিয় করা হয়
অপ্টিমাইজেশান স্তর।

-ফানউইন্ড-টেবিল
অনুরূপ, একই, সমতুল্য - ব্যতিক্রম, এটি শুধুমাত্র যে কোনো প্রয়োজনীয় স্ট্যাটিক ডেটা তৈরি করে, কিন্তু
অন্য কোনো উপায়ে জেনারেট করা কোডকে প্রভাবিত করে না। আপনার সাধারণত প্রয়োজন নেই
এই বিকল্পটি সক্রিয় করুন; পরিবর্তে, একটি ল্যাঙ্গুয়েজ প্রসেসর যার জন্য এই হ্যান্ডলিং এর প্রয়োজন হয় সেটিকে সক্ষম করে
আপনার পক্ষ থেকে.

-ফ্যাসিঙ্ক্রোনাস-আনওয়াইন্ড-টেবিল
টার্গেট মেশিন দ্বারা সমর্থিত হলে, DWARF 2 ফর্ম্যাটে unwind টেবিল তৈরি করুন। টেবিল হল
প্রতিটি নির্দেশের সীমানায় সঠিক, তাই এটি থেকে স্ট্যাক আনওয়াইন্ডিংয়ের জন্য ব্যবহার করা যেতে পারে
অ্যাসিঙ্ক্রোনাস ইভেন্ট (যেমন ডিবাগার বা আবর্জনা সংগ্রহকারী)।

-fno-gnu-অনন্য
সাম্প্রতিক GNU অ্যাসেম্বলার এবং C লাইব্রেরি সহ সিস্টেমগুলিতে, C++ কম্পাইলার ব্যবহার করে
টেমপ্লেট স্ট্যাটিক ডেটা সদস্যদের সংজ্ঞা নিশ্চিত করতে "STB_GNU_UNIQUE" বাঁধাই
এবং ইনলাইন ফাংশনে স্ট্যাটিক স্থানীয় ভেরিয়েবলের উপস্থিতিতেও অনন্য
"RTLD_LOCAL"; দুটি ভিন্ন দ্বারা ব্যবহৃত একটি লাইব্রেরির সমস্যা এড়াতে এটি প্রয়োজনীয়
"RTLD_LOCAL" প্লাগইনগুলি তাদের মধ্যে একটি সংজ্ঞার উপর নির্ভর করে এবং তাই৷
প্রতীক বাঁধাই সম্পর্কে অন্য এক সঙ্গে দ্বিমত. কিন্তু এই কারণ
প্রভাবিত DSO-এর জন্য উপেক্ষা করা হবে "dlclose"; যদি আপনার প্রোগ্রাম পুনরায় চালু করার উপর নির্ভর করে
"dlclose" এবং "dlopen" এর মাধ্যমে একটি DSO এর, আপনি ব্যবহার করতে পারেন -fno-gnu-অনন্য.

-fpcc-struct-রিটার্ন
মেমরিতে "সংক্ষিপ্ত" "স্ট্রাকট" এবং "ইউনিয়ন" মানগুলি ফেরত দিন, এর পরিবর্তে দীর্ঘ সময়ের মতো
নিবন্ধন এই কনভেনশন কম দক্ষ, কিন্তু এটি অনুমতি সুবিধা আছে
GCC-সংকলিত ফাইল এবং অন্যান্য কম্পাইলারের সাথে কম্পাইল করা ফাইলগুলির মধ্যে আন্তঃকলযোগ্যতা,
বিশেষ করে পোর্টেবল সি কম্পাইলার (pcc)।

মেমরিতে কাঠামো ফেরানোর জন্য সুনির্দিষ্ট নিয়ম লক্ষ্যের উপর নির্ভর করে
কনফিগারেশন ম্যাক্রো।

সংক্ষিপ্ত কাঠামো এবং ইউনিয়নগুলি হল যেগুলির আকার এবং প্রান্তিককরণ কিছুগুলির সাথে মেলে
পূর্ণসংখ্যার ধরন।

সতর্কতা: এর সাথে সংকলিত কোড -fpcc-struct-রিটার্ন সুইচ বাইনারি সামঞ্জস্যপূর্ণ নয়
এর সাথে সংকলিত কোড সহ -freg-struct-রিটার্ন সুইচ একটি অ-এর সাথে সামঞ্জস্য করতে এটি ব্যবহার করুন
ডিফল্ট অ্যাপ্লিকেশন বাইনারি ইন্টারফেস।

-freg-struct-রিটার্ন
সম্ভব হলে রেজিস্টারে "struct" এবং "ইউনিয়ন" মান ফেরত দিন। এটি আরও কার্যকর
চেয়ে ছোট কাঠামোর জন্য -fpcc-struct-রিটার্ন.

যদি আপনি কোনটি উল্লেখ না করেন -fpcc-struct-রিটার্ন না -freg-struct-রিটার্ন, GCC ডিফল্ট
যে কনভেনশন টার্গেটের জন্য মানক। যদি কোন স্ট্যান্ডার্ড কনভেনশন না থাকে,
GCC ডিফল্ট -fpcc-struct-রিটার্ন, লক্ষ্য ব্যতীত যেখানে GCC প্রধান
কম্পাইলার এই ক্ষেত্রে, আমরা মান নির্বাচন করতে পারি, এবং আমরা আরও দক্ষ বেছে নিতে পারি
রিটার্ন বিকল্প নিবন্ধন.

সতর্কতা: এর সাথে সংকলিত কোড -freg-struct-রিটার্ন সুইচ বাইনারি সামঞ্জস্যপূর্ণ নয়
এর সাথে সংকলিত কোড সহ -fpcc-struct-রিটার্ন সুইচ একটি অ-এর সাথে সামঞ্জস্য করতে এটি ব্যবহার করুন
ডিফল্ট অ্যাপ্লিকেশন বাইনারি ইন্টারফেস।

-ফশোর্ট-এনামস
একটি "enum" টাইপের জন্য বরাদ্দ করুন যতগুলি বাইট এর ঘোষিত পরিসরের জন্য প্রয়োজন
সম্ভাব্য মান। বিশেষভাবে, "enum" প্রকারটি ক্ষুদ্রতম পূর্ণসংখ্যার সমতুল্য
টাইপ যে যথেষ্ট জায়গা আছে.

সতর্কতা: দ্য -ফশোর্ট-এনামস সুইচের ফলে জিসিসি এমন কোড তৈরি করে যা বাইনারি নয়
যে সুইচ ছাড়া উত্পন্ন কোড সঙ্গে সামঞ্জস্যপূর্ণ. একটি অ-এর সাথে সামঞ্জস্য করতে এটি ব্যবহার করুন
ডিফল্ট অ্যাপ্লিকেশন বাইনারি ইন্টারফেস।

-fshort-ডাবল
"ফ্লোট" এর মতো "ডবল" এর জন্য একই আকার ব্যবহার করুন।

সতর্কতা: দ্য -fshort-ডাবল সুইচের ফলে জিসিসি এমন কোড তৈরি করে যা বাইনারি নয়
যে সুইচ ছাড়া উত্পন্ন কোড সঙ্গে সামঞ্জস্যপূর্ণ. একটি অ-এর সাথে সামঞ্জস্য করতে এটি ব্যবহার করুন
ডিফল্ট অ্যাপ্লিকেশন বাইনারি ইন্টারফেস।

-ফশোর্ট-ডাব্লুচার
এর জন্য অন্তর্নিহিত প্রকার ওভাররাইড করুন wchar_t হতে সংক্ষিপ্ত অস্বাক্ষরিত কোন int পরিবর্তে
লক্ষ্যের জন্য ডিফল্ট। এই বিকল্পটি বিল্ডিং প্রোগ্রামের অধীনে চালানোর জন্য দরকারী
মদ.

সতর্কতা: দ্য -ফশোর্ট-ডাব্লুচার সুইচের ফলে জিসিসি এমন কোড তৈরি করে যা বাইনারি নয়
যে সুইচ ছাড়া উত্পন্ন কোড সঙ্গে সামঞ্জস্যপূর্ণ. একটি অ-এর সাথে সামঞ্জস্য করতে এটি ব্যবহার করুন
ডিফল্ট অ্যাপ্লিকেশন বাইনারি ইন্টারফেস।

-fno-সাধারণ
সি কোডে, অপ্রচলিত গ্লোবাল ভেরিয়েবলের বসানো নিয়ন্ত্রণ করে। ইউনিক্স সি কম্পাইলার
ঐতিহ্যগতভাবে বিভিন্ন এ ধরনের ভেরিয়েবলের একাধিক সংজ্ঞা অনুমোদন করেছে
একটি সাধারণ ব্লকে ভেরিয়েবল স্থাপন করে সংকলন ইউনিট। এই আচরণ
দ্বারা নির্দিষ্ট করা হয়েছে - সাধারণ, এবং বেশিরভাগ লক্ষ্যে GCC-এর জন্য ডিফল্ট। অন্য দিকে,
এই আচরণটি আইএসও সি দ্বারা প্রয়োজন হয় না, এবং কিছু লক্ষ্যে একটি গতি বা কোড বহন করতে পারে
পরিবর্তনশীল রেফারেন্সে আকারের শাস্তি। দ্য -fno-সাধারণ বিকল্পটি নির্দিষ্ট করে যে
কম্পাইলারকে অবজেক্টের ডাটা সেকশনে অপ্রবর্তিত গ্লোবাল ভেরিয়েবল রাখা উচিত
ফাইল, সাধারণ ব্লক হিসাবে তাদের তৈরি করার পরিবর্তে। এই প্রভাব আছে যে যদি
একই ভেরিয়েবল ঘোষণা করা হয় ("বহিরাগত" ছাড়া) দুটি ভিন্ন সংকলনে, আপনি একটি পাবেন
আপনি তাদের লিঙ্ক করার সময় একাধিক-সংজ্ঞা ত্রুটি। এই ক্ষেত্রে, আপনি সঙ্গে কম্পাইল করা আবশ্যক
- সাধারণ পরিবর্তে. সঙ্গে কম্পাইলিং -fno-সাধারণ লক্ষ্যবস্তুতে দরকারী যার জন্য এটি
ভাল কর্মক্ষমতা প্রদান করে, অথবা যদি আপনি যাচাই করতে চান যে প্রোগ্রামটি কাজ করবে
অন্যান্য সিস্টেমগুলি যেগুলি সর্বদা অপ্রবর্তিত পরিবর্তনশীল ঘোষণাকে এইভাবে ব্যবহার করে।

-ফনো-ইন্ডেন্ট
উপেক্ষা করুন #পরিচয় নির্দেশ

-ফিনহিবিট-আকার-নির্দেশ
একটি ".size" অ্যাসেম্বলার নির্দেশিকা বা অন্য কিছু যা সমস্যা সৃষ্টি করবে তা আউটপুট করবেন না
যদি ফাংশনটি মাঝখানে বিভক্ত হয়, এবং দুটি অর্ধেক দূরে অবস্থানে স্থাপন করা হয়
স্মৃতিতে আলাদা। কম্পাইল করার সময় এই বিকল্পটি ব্যবহার করা হয় crtstuff.c; আপনার প্রয়োজন হবে না
অন্য কিছুর জন্য এটি ব্যবহার করতে।

-ফভারবোজ-অফল
জেনারেট করা অ্যাসেম্বলি কোডে অতিরিক্ত ভাষ্য তথ্য রাখুন যাতে এটি আরও বেশি হয়
পঠনযোগ্য এই বিকল্পটি সাধারণত শুধুমাত্র তাদেরই কাজে লাগে যাদের আসলে পড়তে হবে
উত্পন্ন সমাবেশ কোড (সম্ভবত কম্পাইলার নিজেই ডিবাগ করার সময়)।

-fno-verbose-asm, ডিফল্ট, অতিরিক্ত তথ্য বাদ দেওয়ার কারণ হয় এবং হয়
দুটি অ্যাসেম্বলার ফাইল তুলনা করার সময় দরকারী।

-frecord-gcc-সুইচ
এই সুইচের ফলে কম্পাইলারকে রেকর্ড করার জন্য ব্যবহার করা কমান্ড লাইনটি তৈরি হয়
অবজেক্ট ফাইল যা তৈরি করা হচ্ছে। এই সুইচ শুধুমাত্র কিছু উপর প্রয়োগ করা হয়
লক্ষ্য এবং রেকর্ডিং এর সঠিক বিন্যাস হল লক্ষ্য এবং বাইনারি ফাইল বিন্যাস
নির্ভরশীল, তবে এটি সাধারণত ASCII পাঠ্য ধারণকারী একটি বিভাগের রূপ নেয়। এই
সুইচ এর সাথে সম্পর্কিত -ফভারবোজ-অফল সুইচ, কিন্তু যে সুইচ শুধুমাত্র রেকর্ড
অ্যাসেম্বলার আউটপুট ফাইলের তথ্য মন্তব্য হিসাবে, তাই এটি কখনই অবজেক্টে পৌঁছায় না
ফাইল আরো দেখুন -গ্রেকর্ড-জিসিসি-সুইচ কম্পাইলার বিকল্পগুলি সংরক্ষণ করার অন্য উপায়ের জন্য
অবজেক্ট ফাইল।

-fpic
একটি শেয়ার্ড লাইব্রেরিতে ব্যবহারের জন্য উপযুক্ত অবস্থান-স্বাধীন কোড (PIC) তৈরি করুন, যদি
লক্ষ্য মেশিনের জন্য সমর্থিত। এই ধরনের কোড একটি মাধ্যমে সমস্ত ধ্রুবক ঠিকানা অ্যাক্সেস করে
গ্লোবাল অফসেট টেবিল (জিওটি)। ডায়নামিক লোডার GOT এন্ট্রিগুলি সমাধান করে যখন
প্রোগ্রাম শুরু হয় (ডাইনামিক লোডার GCC এর অংশ নয়; এটি অপারেটিং এর অংশ
পদ্ধতি). যদি লিঙ্ক করা এক্সিকিউটেবলের জন্য GOT আকার একটি মেশিন-নির্দিষ্ট সর্বোচ্চ অতিক্রম করে
আকার, আপনি লিঙ্কার থেকে একটি ত্রুটির বার্তা পাবেন যা নির্দেশ করে -fpic কাজ করে না; ভিতরে
যে ক্ষেত্রে, সঙ্গে পুনরায় কম্পাইল -fpic পরিবর্তে. (এসপিএআরসি-তে এই সর্বোচ্চ 8k এবং 32k
m68k এবং RS/6000-এ। 386 এর কোন সীমা নেই।)

অবস্থান-স্বাধীন কোডের জন্য বিশেষ সমর্থন প্রয়োজন, এবং তাই শুধুমাত্র কাজ করে
নির্দিষ্ট মেশিন। 386-এর জন্য, GCC সিস্টেম V-এর জন্য PIC সমর্থন করে কিন্তু সূর্যের জন্য নয়
386i. IBM RS/6000-এর জন্য তৈরি করা কোড সর্বদা অবস্থান-স্বাধীন।

যখন এই পতাকা সেট করা হয়, ম্যাক্রো "__pic__" এবং "__PIC__" 1 এ সংজ্ঞায়িত করা হয়।

-fpic
লক্ষ্য মেশিনের জন্য সমর্থিত হলে, অবস্থান-স্বাধীন কোড নির্গত করুন, এর জন্য উপযুক্ত
ডাইনামিক লিঙ্কিং এবং গ্লোবাল অফসেট টেবিলের আকারের কোনো সীমা এড়ানো। এই
বিকল্পটি m68k, PowerPC এবং SPARC-এ একটি পার্থক্য তৈরি করে।

অবস্থান-স্বাধীন কোডের জন্য বিশেষ সমর্থন প্রয়োজন, এবং তাই শুধুমাত্র কাজ করে
নির্দিষ্ট মেশিন।

যখন এই পতাকা সেট করা হয়, ম্যাক্রো "__pic__" এবং "__PIC__" 2 এ সংজ্ঞায়িত করা হয়।

-fpie
-fpie
এই বিকল্পগুলি অনুরূপ -fpic এবং -fpic, কিন্তু অবস্থান স্বাধীন কোড উত্পন্ন
শুধুমাত্র এক্সিকিউটেবলের সাথে লিঙ্ক করা যেতে পারে। সাধারণত এই বিকল্পগুলি যখন ব্যবহার করা হয় -পাই জিসিসি
বিকল্পটি লিঙ্ক করার সময় ব্যবহার করা হয়।

-fpie এবং -fpie উভয়ই ম্যাক্রো "__pie__" এবং "__PIE__" সংজ্ঞায়িত করে। ম্যাক্রো আছে
মান 1 এর জন্য -fpie এবং 2 জন্য -fpie.

-fno-জাম্প-টেবিল
সুইচ স্টেটমেন্টের জন্য জাম্প টেবিল ব্যবহার করবেন না যেখানে এটি আরও দক্ষ হবে
অন্যান্য কোড প্রজন্মের কৌশলগুলির তুলনায়। এই বিকল্পটির সাথে একযোগে ব্যবহার করা হয়
-fpic or -fpic বিল্ডিং কোডের জন্য যা একটি ডায়নামিক লিঙ্কারের অংশ গঠন করে এবং পারে না
একটি জাম্প টেবিলের ঠিকানা উল্লেখ করুন। কিছু লক্ষ্যবস্তুতে, জাম্প টেবিলের প্রয়োজন হয় না
পেয়েছেন এবং এই বিকল্পের প্রয়োজন নেই।

স্থির-REG
নাম রেজিস্টার চিকিৎসা REG একটি নির্দিষ্ট রেজিস্টার হিসাবে; জেনারেটেড কোড কখনই উল্লেখ করা উচিত নয়
এটি (সম্ভবত একটি স্ট্যাক পয়েন্টার, ফ্রেম পয়েন্টার বা অন্য কিছু নির্দিষ্ট ভূমিকা ছাড়া)।

REG একটি রেজিস্টারের নাম হতে হবে। গৃহীত রেজিস্টার নামগুলি মেশিন-নির্দিষ্ট
এবং মেশিনের বিবরণ ম্যাক্রো ফাইলে "REGISTER_NAMES" ম্যাক্রোতে সংজ্ঞায়িত করা হয়েছে৷

এই পতাকার একটি নেতিবাচক ফর্ম নেই, কারণ এটি একটি ত্রিমুখী পছন্দ নির্দিষ্ট করে।

-fcal-ব্যবহৃত-REG
নাম রেজিস্টার চিকিৎসা REG একটি বরাদ্দযোগ্য রেজিস্টার হিসাবে যা ফাংশন দ্বারা ক্লোবার করা হয়
কল এটি অস্থায়ী বা ভেরিয়েবলের জন্য বরাদ্দ করা যেতে পারে যা একটি জুড়ে থাকে না
কল এইভাবে সংকলিত ফাংশনগুলি রেজিস্টার সংরক্ষণ এবং পুনরুদ্ধার করে না REG.

ফ্রেম পয়েন্টার বা স্ট্যাক পয়েন্টারের সাথে এই পতাকা ব্যবহার করা একটি ত্রুটি। এই ব্যবহার
অন্যান্য রেজিস্টারের জন্য পতাকা যা মেশিনের কার্য সম্পাদনে ব্যাপক ভূমিকা রেখেছে
মডেল বিপর্যয়কর ফলাফল উত্পাদন করে।

এই পতাকার একটি নেতিবাচক ফর্ম নেই, কারণ এটি একটি ত্রিমুখী পছন্দ নির্দিষ্ট করে।

-fcal-সংরক্ষিত-REG
নাম রেজিস্টার চিকিৎসা REG ফাংশন দ্বারা সংরক্ষিত একটি বরাদ্দযোগ্য রেজিস্টার হিসাবে। এটা হতে পারে
এমনকি একটি কল জুড়ে বসবাসকারী অস্থায়ী বা ভেরিয়েবলের জন্যও বরাদ্দ করা হয়। ফাংশন
এইভাবে সংকলিত রেজিস্টার সংরক্ষণ এবং পুনরুদ্ধার করুন REG যদি তারা এটি ব্যবহার করে।

ফ্রেম পয়েন্টার বা স্ট্যাক পয়েন্টারের সাথে এই পতাকা ব্যবহার করা একটি ত্রুটি। এই ব্যবহার
অন্যান্য রেজিস্টারের জন্য পতাকা যা মেশিনের কার্য সম্পাদনে ব্যাপক ভূমিকা রেখেছে
মডেল বিপর্যয়কর ফলাফল উত্পাদন করে।

একটি রেজিস্টারের জন্য এই পতাকা ব্যবহার করার ফলে একটি ভিন্ন ধরণের বিপর্যয় ঘটে
ফাংশন মান ফিরে আসতে পারে.

এই পতাকার একটি নেতিবাচক ফর্ম নেই, কারণ এটি একটি ত্রিমুখী পছন্দ নির্দিষ্ট করে।

-fpack-truct [=n]
একটি মান নির্দিষ্ট করা ছাড়া, গর্ত ছাড়াই সমস্ত কাঠামো সদস্যদের একসাথে প্যাক করুন। যখন একটি
মান নির্দিষ্ট করা হয়েছে (যা দুটির একটি ছোট শক্তি হতে হবে), প্যাক কাঠামো সদস্য
এই মান অনুসারে, সর্বাধিক প্রান্তিককরণের প্রতিনিধিত্ব করে (অর্থাৎ, এর সাথে বস্তু
এর চেয়ে বড় ডিফল্ট প্রান্তিককরণ প্রয়োজনীয়তাগুলি সম্ভাব্যভাবে আনলাইন করা আউটপুট
পরবর্তী উপযুক্ত অবস্থান।

সতর্কতা: দ্য -fpack-struct সুইচের ফলে জিসিসি এমন কোড তৈরি করে যা বাইনারি নয়
যে সুইচ ছাড়া উত্পন্ন কোড সঙ্গে সামঞ্জস্যপূর্ণ. উপরন্তু, এটি কোড তৈরি করে
সাবঅপ্টিমাল একটি নন-ডিফল্ট অ্যাপ্লিকেশন বাইনারি ইন্টারফেসের সাথে সামঞ্জস্য করতে এটি ব্যবহার করুন।

-ফিনস্ট্রুমেন্ট-ফাংশন
ফাংশনে প্রবেশ এবং প্রস্থানের জন্য ইন্সট্রুমেন্টেশন কল তৈরি করুন। ঠিক ফাংশন পরে
এন্ট্রি এবং ফাংশন প্রস্থানের ঠিক আগে, নিম্নলিখিত প্রোফাইলিং ফাংশনগুলির সাথে কল করা হয়
বর্তমান ফাংশন এবং এর কল সাইটের ঠিকানা। (কিছু প্ল্যাটফর্মে,
"__builtin_return_address" বর্তমান ফাংশনের বাইরে কাজ করে না, তাই কল সাইট
অন্যথায় প্রোফাইলিং ফাংশনগুলিতে তথ্য উপলব্ধ নাও হতে পারে।)

void __cyg_profile_func_enter (অকার্যকর *this_fn,
অকার্যকর *কল_সাইট);
void __cyg_profile_func_exit (void *this_fn,
অকার্যকর *কল_সাইট);

প্রথম যুক্তি হল বর্তমান ফাংশন শুরুর ঠিকানা, যা হতে পারে
প্রতীক সারণীতে ঠিক দেখলাম।

অন্যান্য ফাংশনে ইনলাইনে প্রসারিত ফাংশনের জন্যও এই ইন্সট্রুমেন্টেশন করা হয়।
প্রোফাইলিং কলগুলি নির্দেশ করে যেখানে ধারণাগতভাবে, ইনলাইন ফাংশনটি প্রবেশ করা হয়েছে এবং৷
প্রস্থান এর মানে হল যে এই ধরনের ফাংশনগুলির ঠিকানাযোগ্য সংস্করণগুলি অবশ্যই উপলব্ধ হতে হবে। যদি
একটি ফাংশনের আপনার সমস্ত ব্যবহার ইনলাইনে প্রসারিত হয়, এর অর্থ একটি অতিরিক্ত সম্প্রসারণ হতে পারে
কোড আকারের। ব্যবহার করলে extern সঙ্গতিপূর্ণভাবে আপনার সি কোড, যেমন একটি ঠিকানাযোগ্য সংস্করণ
ফাংশন প্রদান করা আবশ্যক. (এটি সাধারণত যাইহোক, তবে আপনি যদি ভাগ্যবান হন
এবং অপ্টিমাইজার সর্বদা ইনলাইনে ফাংশনগুলিকে প্রসারিত করে, আপনি হয়ত অর্জিত হতে পারেন
স্ট্যাটিক কপি প্রদান ছাড়া।)

একটি ফাংশনকে "no_instrument_function" এট্রিবিউট দেওয়া হতে পারে, এই ক্ষেত্রে এটি
ইন্সট্রুমেন্টেশন করা হয় না। এটি ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ, প্রোফাইলিংয়ের জন্য
উপরে তালিকাভুক্ত ফাংশন, উচ্চ-অগ্রাধিকার বিঘ্নিত রুটিন, এবং যে কোনও ফাংশন যা থেকে
প্রোফাইলিং ফাংশন নিরাপদে কল করা যাবে না (সম্ভবত সংকেত হ্যান্ডলার, যদি
প্রোফাইলিং রুটিন আউটপুট তৈরি করে বা মেমরি বরাদ্দ করে)।

-ফিনস্ট্রুমেন্ট-ফাংশন-বাদ-ফাইল-তালিকা=ফাইল,ফাইল...
ইন্সট্রুমেন্টেশন থেকে বাদ দেওয়া ফাংশনগুলির তালিকা সেট করুন (বিবরণ দেখুন
এর "-ফিনস্ট্রুমেন্ট-ফাংশন")। যদি একটি ফাংশন সংজ্ঞা ধারণ করা ফাইল মেলে
একটির সাথে ফাইল, তাহলে যে ফাংশন instrumented হয় না. ম্যাচ শেষ হয়
substrings: যদি ফাইল প্যারামিটার ফাইল নামের একটি সাবস্ট্রিং, এটি বিবেচনা করা হয়
একটি ম্যাচ হতে

উদাহরণ স্বরূপ:

-ফিনস্ট্রুমেন্ট-ফাংশন-এক্সক্লুড-ফাইল-লিস্ট=/bits/stl,include/sys

ফাইলে সংজ্ঞায়িত যেকোনো ইনলাইন ফাংশন বাদ দেয় যার পাথনামে "/bits/stl" থাকে বা
"অন্তর্ভুক্ত/sys"।

যদি, কোনো কারণে, আপনি একটি অক্ষর ',' অন্তর্ভুক্ত করতে চান সিম, ',' লিখুন। জন্য
উদাহরণ, "-finstrument-functions-exclude-file-list=',,tmp'" (একক উদ্ধৃতি নোট করুন
বিকল্পকে ঘিরে)।

-ফিনস্ট্রুমেন্ট-ফাংশন-বাদ-ফাংশন-লিস্ট=সিম,সিম...
এটি "-finstrument-functions-exclude-file-list" এর মত, কিন্তু এই বিকল্পটি সেট করে
ইন্সট্রুমেন্টেশন থেকে বাদ দেওয়া ফাংশন নামের তালিকা। ফাংশনের নাম
be matched এর ব্যবহারকারী-দৃশ্যমান নাম, যেমন "ভেক্টর blah(const ভেক্টর &)",
অভ্যন্তরীণ ম্যাঙ্গলড নাম নয় (যেমন, "_Z4blahRSt6vectorIiSaIiEE")। ম্যাচ হয়ে গেছে
সাবস্ট্রিং এর উপর: যদি সিম প্যারামিটার হল ফাংশনের নামের একটি সাবস্ট্রিং, এটি
একটি ম্যাচ হিসাবে বিবেচিত। C99 এবং C++ বর্ধিত শনাক্তকারীর জন্য, ফাংশনের নাম
ইউটিএফ-৮ এ দিতে হবে, সর্বজনীন অক্ষরের নাম ব্যবহার না করে।

-fstack-চেক
আপনি স্ট্যাকের সীমানার বাইরে যান না তা যাচাই করতে কোড তৈরি করুন। আপনি
আপনি একাধিক থ্রেড সহ একটি পরিবেশে চলমান থাকলে এই পতাকাটি নির্দিষ্ট করা উচিত,
কিন্তু স্ট্যাক থেকে আপনাকে খুব কমই এটিকে একক-থ্রেডেড পরিবেশে নির্দিষ্ট করতে হবে
শুধুমাত্র একটি স্ট্যাক থাকলে প্রায় সমস্ত সিস্টেমে ওভারফ্লো স্বয়ংক্রিয়ভাবে সনাক্ত করা হয়।

মনে রাখবেন যে এই সুইচটি আসলে পরীক্ষা করার কারণ হয় না; অপারেটিং
সিস্টেম বা ভাষা রানটাইম তা করতে হবে। সুইচ কোড জেনারেশন ঘটায়
তারা স্ট্যাক প্রসারিত হচ্ছে দেখতে নিশ্চিত করুন.

আপনি অতিরিক্তভাবে একটি স্ট্রিং প্যারামিটার নির্দিষ্ট করতে পারেন: "না" মানে চেক করা নেই, "জেনারিক"
পুরানো-শৈলী চেকিং ব্যবহার জোর করে, "নির্দিষ্ট" মানে সেরা চেকিং ব্যবহার করুন
পদ্ধতি এবং বেয়ার সমতুল্য -fstack-চেক.

ওল্ড-স্টাইল চেকিং হল একটি জেনেরিক মেকানিজম যার জন্য কোন নির্দিষ্ট লক্ষ্য সমর্থনের প্রয়োজন নেই
কম্পাইলার কিন্তু নিম্নলিখিত ত্রুটিগুলির সাথে আসে:

1. বড় বস্তুর জন্য পরিবর্তিত বরাদ্দ কৌশল: তারা সবসময় বরাদ্দ করা হয়
গতিশীলভাবে যদি তাদের আকার একটি নির্দিষ্ট থ্রেশহোল্ড অতিক্রম করে।

2. ফাংশনের স্ট্যাটিক ফ্রেমের আকারের নির্দিষ্ট সীমা: যখন এটি a দ্বারা শীর্ষে থাকে
বিশেষ ফাংশন, স্ট্যাক চেকিং নির্ভরযোগ্য নয় এবং একটি সতর্কতা জারি করা হয়
সংকলক

3. অদক্ষতা: পরিবর্তিত বরাদ্দ কৌশল এবং জেনেরিক উভয়ের কারণে
বাস্তবায়ন, কোড কর্মক্ষমতা বাধাগ্রস্ত হয়.

মনে রাখবেন যে পুরানো-স্টাইল স্ট্যাক চেকিং হল "নির্দিষ্ট" এর জন্য ফলব্যাক পদ্ধতি যদি না হয়
কম্পাইলারে টার্গেট সাপোর্ট যোগ করা হয়েছে।

-ফস্ট্যাক-সীমা-নিবন্ধন =REG
-fstack-সীমা-চিহ্ন=সিম
-fno-স্ট্যাক-সীমা
স্ট্যাক একটি নির্দিষ্ট মান অতিক্রম না হয় তা নিশ্চিত করতে কোড তৈরি করুন
একটি রেজিস্টারের মান বা একটি প্রতীকের ঠিকানা। যদি একটি বড় স্ট্যাকের প্রয়োজন হয়, ক
রান টাইমে সংকেত উত্থাপিত হয়। বেশিরভাগ লক্ষ্যের জন্য, স্ট্যাকের আগে সংকেত উত্থাপিত হয়
সীমানা অতিক্রম করে, তাই বিশেষ না নিয়ে সংকেত ধরা সম্ভব
সতর্কতা.

উদাহরণস্বরূপ, যদি স্ট্যাকটি পরম ঠিকানায় শুরু হয় 0x80000000 এবং নীচের দিকে বৃদ্ধি পায়,
আপনি পতাকা ব্যবহার করতে পারেন -fstack-limit-symbol=__stack_limit এবং
-Wl,--defsym,__stack_limit=0x7ffe0000 128KB এর একটি স্ট্যাক সীমা কার্যকর করতে। মনে রাখবেন যে
এটি শুধুমাত্র GNU লিঙ্কারের সাথে কাজ করতে পারে।

-fsplit-স্ট্যাক
ওভারফ্লো হওয়ার আগে স্ট্যাকটিকে স্বয়ংক্রিয়ভাবে বিভক্ত করতে কোড তৈরি করুন। ফলে
প্রোগ্রামের একটি অসংলগ্ন স্ট্যাক রয়েছে যা শুধুমাত্র উপচে পড়তে পারে যদি প্রোগ্রামটি অক্ষম হয়
আরও মেমরি বরাদ্দ করুন। থ্রেডেড প্রোগ্রাম চালানোর সময় এটি সবচেয়ে উপযোগী
প্রতিটি থ্রেডের জন্য ব্যবহার করার জন্য একটি ভাল স্ট্যাকের আকার গণনা করার আর প্রয়োজন নেই। এই
বর্তমানে শুধুমাত্র GNU/Linux চলমান i386 এবং x86_64 ব্যাক এন্ডের জন্য প্রয়োগ করা হয়েছে।

যখন কোড দিয়ে কম্পাইল করা হয় -fsplit-স্ট্যাক কল কোড ছাড়া সংকলিত -fsplit-স্ট্যাক, সেখানে
পরবর্তী কোড চালানোর জন্য খুব বেশি স্ট্যাক স্পেস উপলব্ধ নাও হতে পারে। যদি সব কম্পাইল
কোড, লাইব্রেরি কোড সহ, সহ -fsplit-স্ট্যাক একটি বিকল্প নয়, তাহলে লিঙ্কার করতে পারেন
এই কলগুলি ঠিক করুন যাতে কোডটি ছাড়াই সংকলিত হয় -fsplit-স্ট্যাক সবসময় একটি বড় আছে
স্ট্যাক GNU binutils রিলিজে গোল্ড লিঙ্কারে এর জন্য সমর্থন প্রয়োগ করা হয়েছে
২০০৮ এবং তারপরে।

- fleading-আন্ডারস্কোর
এই বিকল্প এবং এর প্রতিরূপ, -fno-লিডিং-আন্ডারস্কোর, জোর করে পথ পরিবর্তন করুন সি
চিহ্নগুলি অবজেক্ট ফাইলে উপস্থাপন করা হয়। একটি ব্যবহার উত্তরাধিকার সঙ্গে লিঙ্ক সাহায্য করা হয়
সমাবেশ কোড।

সতর্কতা: দ্য - fleading-আন্ডারস্কোর সুইচের ফলে GCC কোড তৈরি করে যা নয়
সেই সুইচ ছাড়াই জেনারেট করা কোডের সাথে বাইনারি সামঞ্জস্যপূর্ণ। এটি ব্যবহার করুন একটি মেনে চলুন
নন-ডিফল্ট অ্যাপ্লিকেশন বাইনারি ইন্টারফেস। সমস্ত লক্ষ্য সম্পূর্ণ সমর্থন প্রদান করে না
এই সুইচ জন্য.

-ftls-মডেল=মডেল
ব্যবহার করার জন্য থ্রেড-স্থানীয় স্টোরেজ মডেল পরিবর্তন করুন। দ্য মডেল যুক্তি একটি হতে হবে
"গ্লোবাল-ডাইনামিক", "লোকাল-ডাইনামিক", "ইনিশিয়াল-এক্সেক" বা "লোকাল-এক্সেক"।

ছাড়া ডিফল্ট -fpic হল "প্রাথমিক-নির্বাহী"; সঙ্গে -fpic ডিফল্ট হয়
"গ্লোবাল-ডাইনামিক"।

-fvisibility=ডিফল্ট|অভ্যন্তরীণ|লুকানো|সুরক্ষিত
নির্দিষ্ট বিকল্পে ডিফল্ট ELF ইমেজ প্রতীক দৃশ্যমানতা সেট করুন---সমস্ত প্রতীক
কোডের মধ্যে ওভাররাইড করা না হলে এটি দিয়ে চিহ্নিত করা হয়েছে। এই বৈশিষ্ট্য ব্যবহার করতে পারেন খুব
শেয়ার্ড অবজেক্ট লাইব্রেরিগুলির লিঙ্কিং এবং লোডের সময় উল্লেখযোগ্যভাবে উন্নত করুন, আরও উত্পাদন করুন
অপ্টিমাইজ করা কোড, কাছাকাছি-নিখুঁত API রপ্তানি প্রদান করে এবং প্রতীক সংঘর্ষ প্রতিরোধ করে। এটাই
প্রবলভাবে আপনার বিতরণ করা যেকোনো ভাগ করা বস্তুতে আপনি এটি ব্যবহার করার পরামর্শ দিয়েছেন।

নামকরণ সত্ত্বেও, "ডিফল্ট" মানে সর্বদা সর্বজনীন; অর্থাৎ, লিঙ্ক করা উপলব্ধ
ভাগ করা বস্তুর বাইরে থেকে বিরুদ্ধে। "সুরক্ষিত" এবং "অভ্যন্তরীণ" বেশ অকেজো
বাস্তব-বিশ্বের ব্যবহারে তাই একমাত্র সাধারণভাবে ব্যবহৃত বিকল্পটি হল "লুকানো"। ডিফল্ট
if - অদৃশ্যতা নির্দিষ্ট করা নেই "ডিফল্ট", অর্থাৎ, প্রতিটি প্রতীককে সর্বজনীন করুন---এটি
GCC এর পূর্ববর্তী সংস্করণগুলির মতো একই আচরণ ঘটায়।

ELF চিহ্নগুলি সঠিক আছে তা নিশ্চিত করে দেওয়া সুবিধাগুলির একটি ভাল ব্যাখ্যা
উলরিচ ড্রেপারের "হাউ টু রাইট শেয়ার্ড লাইব্রেরি" দ্বারা দৃশ্যমানতা দেওয়া হয়েছে (যা হতে পারে
এ পাওয়া গেছেhttp://people.redhat.com/~drepper/>)---তবে একটি উচ্চতর সমাধান করা হয়েছে
এই বিকল্পের মাধ্যমে লুকানো জিনিস চিহ্নিত করা সম্ভব যখন ডিফল্ট সর্বজনীন করা হয়
ডিফল্ট লুকানো এবং জিনিস সর্বজনীন চিহ্নিত. এটি উইন্ডোজ এবং ডিএলএলগুলির সাথে আদর্শ
সঙ্গে -fvisibility= লুকানো এবং "__attribute__ ((দৃশ্যমানতা("ডিফল্ট")))" এর পরিবর্তে
"__declspec(dllexport)" আপনি অভিন্ন সিনট্যাক্স সহ প্রায় অভিন্ন শব্দার্থবিদ্যা পাবেন।
যারা ক্রস-প্ল্যাটফর্ম প্রকল্পের সাথে কাজ করছেন তাদের জন্য এটি একটি দুর্দান্ত বর।

যারা বিদ্যমান কোডে দৃশ্যমানতা সমর্থন যোগ করছেন তাদের জন্য, আপনি খুঁজে পেতে পারেন #প্রাগমা জিসিসি
দৃষ্টিপাত ব্যবহার. আপনি যে ঘোষণাগুলি সেট করতে চান তা সংযুক্ত করে এটি কাজ করে
এর সাথে দৃশ্যমানতা (উদাহরণস্বরূপ) #প্রাগমা জিসিসি দৃষ্টিপাত ধাক্কা (লুকানো) এবং #প্রাগমা জিসিসি
দৃষ্টিপাত পপ. মনে রাখবেন যে প্রতীক দৃশ্যমানতা দেখা উচিত as অংশ of দ্য
এপিআই ইন্টারফেস চুক্তি এবং এইভাবে সমস্ত নতুন কোড সর্বদা দৃশ্যমানতা নির্দিষ্ট করা উচিত যখন এটি
ডিফল্ট নয়; অর্থাৎ, শুধুমাত্র স্থানীয় DSO-এর মধ্যে ব্যবহারের জন্য ঘোষণা করা উচিত সর্বদা
PLT পরোক্ষ ওভারহেডগুলি এড়াতে স্পষ্টভাবে লুকানো হিসাবে চিহ্নিত করুন---এটি তৈরি করা
প্রচুর পরিমাণে পরিষ্কার কোডের পঠনযোগ্যতা এবং স্ব-ডকুমেন্টেশনে সহায়তা করে। মনে রাখবেন যে
ISO C++ স্পেসিফিকেশন প্রয়োজনীয়তার কারণে, "অপারেটর নতুন" এবং "অপারেটর মুছে ফেলা" আবশ্যক
সর্বদা ডিফল্ট দৃশ্যমানতা হতে হবে।

সচেতন থাকুন যে আপনার প্রকল্পের বাইরের শিরোনাম, বিশেষ করে সিস্টেম হেডার এবং
আপনার ব্যবহার করা অন্য কোনো লাইব্রেরির শিরোনাম, যার সাথে কম্পাইল হওয়ার আশা করা যায় না
ডিফল্ট ছাড়া অন্য দৃশ্যমানতা। আপনাকে স্পষ্টভাবে বলার প্রয়োজন হতে পারে #প্রাগমা জিসিসি
দৃষ্টিপাত ধাক্কা (ডিফল্ট) এই ধরনের কোনো শিরোনাম অন্তর্ভুক্ত করার আগে।

extern ঘোষণা দ্বারা প্রভাবিত হয় না - অদৃশ্যতা, তাই অনেক কোড হতে পারে
সঙ্গে recompiled -fvisibility= লুকানো কোন পরিবর্তন ছাড়া. যাইহোক, এই যে মানে
কোন স্পষ্ট দৃশ্যমানতা ছাড়াই "বহিরাগত" ফাংশনে কল করার জন্য PLT ব্যবহার করা হয়, তাই এটি আরও বেশি
বলার জন্য "__attribute ((দৃশ্যমানতা))" এবং/অথবা "#pragma GCC দৃশ্যমানতা" ব্যবহার করতে কার্যকর
কম্পাইলার যা "বহিরাগত" ঘোষণাগুলিকে লুকানো হিসাবে বিবেচনা করা উচিত।

মনে রাখবেন যে - অদৃশ্যতা C++ অস্পষ্ট লিঙ্কেজ সত্তাকে প্রভাবিত করে। এর মানে হল যে, জন্য
উদাহরণ, DSO-এর মধ্যে নিক্ষিপ্ত একটি ব্যতিক্রম শ্রেণী স্পষ্টভাবে চিহ্নিত করা আবশ্যক
ডিফল্ট দৃশ্যমানতা সহ যাতে টাইপ_তথ্য নোডগুলি ডিএসওগুলির মধ্যে একীভূত হয়।

এই কৌশলগুলির একটি সংক্ষিপ্ত বিবরণ, তাদের সুবিধা এবং কীভাবে সেগুলি ব্যবহার করতে হয়
<http://gcc.gnu.org/wiki/Visibility>.

-fstrict-অস্থির-বিটফিল্ড
এই বিকল্পটি ব্যবহার করা উচিত যদি উদ্বায়ী বিট-ক্ষেত্রগুলিতে অ্যাক্সেস করা হয় (বা অন্য কাঠামো
ক্ষেত্রগুলি, যদিও কম্পাইলার সাধারণত এই প্রকারগুলিকে সম্মান করে) একটি একক ব্যবহার করা উচিত
ক্ষেত্রের প্রকারের প্রস্থের অ্যাক্সেস, সম্ভব হলে একটি প্রাকৃতিক প্রান্তিককরণের সাথে সারিবদ্ধ।
উদাহরণ স্বরূপ, মেমরি-ম্যাপ করা পেরিফেরাল রেজিস্টারের সাথে লক্ষ্যমাত্রাগুলির জন্য এই ধরনের সমস্ত প্রয়োজন হতে পারে
অ্যাক্সেস 16 বিট প্রশস্ত হতে হবে; এই পতাকা দিয়ে আপনি সমস্ত পেরিফেরাল বিট-ক্ষেত্র ঘোষণা করতে পারেন
GCC ব্যবহার করতে বাধ্য করার জন্য "আনসাইনড শর্ট" হিসাবে (এই লক্ষ্যগুলিতে ছোট 16 বিট অনুমান করা হচ্ছে)
16-বিট অ্যাক্সেসের পরিবর্তে, সম্ভবত, আরও দক্ষ 32-বিট অ্যাক্সেস।

এই বিকল্পটি নিষ্ক্রিয় থাকলে, কম্পাইলার সবচেয়ে কার্যকর নির্দেশ ব্যবহার করে। মধ্যে
পূর্ববর্তী উদাহরণ, এটি একটি 32-বিট লোড নির্দেশনা হতে পারে, যদিও এটি অ্যাক্সেস করে
বাইট যাতে বিট-ফিল্ডের কোনো অংশ বা মেমরি-ম্যাপ করা রেজিস্টার থাকে না
আপডেট করা হচ্ছে এর সাথে সম্পর্কহীন।

যদি লক্ষ্যের জন্য কঠোর প্রান্তিককরণের প্রয়োজন হয়, এবং ক্ষেত্রের ধরনকে সম্মান করার প্রয়োজন হবে
এই প্রান্তিককরণ লঙ্ঘন, একটি সতর্কতা জারি করা হয়. যদি ক্ষেত্রের "প্যাকড" বৈশিষ্ট্য থাকে,
ক্ষেত্রের ধরনকে সম্মান না করেই অ্যাক্সেস করা হয়। যদি মাঠে না থাকে
"প্যাকড" অ্যাট্রিবিউট, ফিল্ডের ধরন মেনে অ্যাক্সেস করা হয়। উভয় ক্ষেত্রেই, জি.সি.সি
অনুমান করে যে ব্যবহারকারী টার্গেট হার্ডওয়্যার সম্পর্কে এমন কিছু জানেন যা এটি অজানা।

এই বিকল্পের ডিফল্ট মানটি অ্যাপ্লিকেশন বাইনারি ইন্টারফেস দ্বারা নির্ধারিত হয়
লক্ষ্য প্রসেসর।

-fsync-libcalls
এই বিকল্পটি "__sync" পরিবারের কোনো আউট-অফ-লাইন উদাহরণ কিনা তা নিয়ন্ত্রণ করে
ফাংশনগুলি C++11 "__পরমাণু" ফাংশন পরিবার বাস্তবায়নের জন্য ব্যবহার করা যেতে পারে।

এই বিকল্পের ডিফল্ট মান সক্রিয় করা হয়েছে, এইভাবে বিকল্পটির একমাত্র দরকারী ফর্ম
is -fno-sync-libcalls. এই বিকল্পটি বাস্তবায়নে ব্যবহৃত হয় libatomic
রানটাইম লাইব্রেরি।

পরিবেশ


এই বিভাগটি বিভিন্ন পরিবেশের ভেরিয়েবল বর্ণনা করে যা GCC কীভাবে কাজ করে তা প্রভাবিত করে। কিছু
তাদের মধ্যে বিভিন্ন ধরণের অনুসন্ধান করার সময় ব্যবহার করার জন্য ডিরেক্টরি বা উপসর্গগুলি নির্দিষ্ট করে কাজ করে
ফাইলের। কিছু সংকলন পরিবেশের অন্যান্য দিক নির্দিষ্ট করতে ব্যবহৃত হয়।

নোট করুন যে আপনি বিকল্পগুলি ব্যবহার করে অনুসন্ধান করার জন্য স্থানগুলিও নির্দিষ্ট করতে পারেন যেমন -B, -I এবং -L.
এগুলি এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে নির্দিষ্ট স্থানের উপর প্রাধান্য পায়, যার ফলে
GCC-এর কনফিগারেশন দ্বারা নির্দিষ্ট করাগুলির উপর অগ্রাধিকার নিন।

ল্যাং
Lc_ctype
Lc_messages
Lc_all
এই পরিবেশ ভেরিয়েবলগুলি GCC যেভাবে স্থানীয়করণ তথ্য ব্যবহার করে তা নিয়ন্ত্রণ করে
যা জিসিসিকে বিভিন্ন জাতীয় সম্মেলনের সাথে কাজ করার অনুমতি দেয়। GCC লোকেল পরিদর্শন করে
বিভাগ Lc_ctype এবং Lc_messages যদি এটি করার জন্য কনফিগার করা হয়। এই লোকেল
বিভাগগুলি আপনার ইনস্টলেশন দ্বারা সমর্থিত যে কোনও মান সেট করা যেতে পারে। একটি সাধারণ মান হল
en_GB.UTF-8 ইউনাইটেড কিংডমে ইংরেজির জন্য UTF-8 এ এনকোড করা হয়েছে।

সার্জারির Lc_ctype এনভায়রনমেন্ট ভেরিয়েবল অক্ষর শ্রেণীবিভাগ নির্দিষ্ট করে। জিসিসি এটি ব্যবহার করে
একটি স্ট্রিং মধ্যে অক্ষর সীমানা নির্ধারণ; এটি কিছু মাল্টিবাইটের জন্য প্রয়োজন
এনকোডিং যাতে উদ্ধৃতি এবং এস্কেপ অক্ষর থাকে যা অন্যথায় একটি হিসাবে ব্যাখ্যা করা হয়
স্ট্রিং এন্ড বা এস্কেপ।

সার্জারির Lc_messages এনভায়রনমেন্ট ভেরিয়েবল ডায়াগনস্টিক ব্যবহার করার জন্য ভাষা নির্দিষ্ট করে
বার্তা।

যদি Lc_all এনভায়রনমেন্ট ভেরিয়েবল সেট করা আছে, এটি এর মান ওভাররাইড করে Lc_ctype এবং
Lc_messages; অন্যথায়, Lc_ctype এবং Lc_messages এর মান ডিফল্ট ল্যাং
পরিবেশ সূচক. যদি এই ভেরিয়েবলগুলির একটিও সেট করা না থাকে, GCC ডিফল্ট প্রথাগত হয়
C ইংরেজি আচরণ।

টিএমপিডিআইআর
If টিএমপিডিআইআর সেট করা হয়, এটি অস্থায়ী ফাইলের জন্য ব্যবহার করার জন্য ডিরেক্টরি নির্দিষ্ট করে। জিসিসি ব্যবহার করে
কম্পাইলেশনের এক পর্যায়ের আউটপুট ধরে রাখার জন্য অস্থায়ী ফাইল যা ব্যবহার করা হবে
পরবর্তী পর্যায়ে ইনপুট: উদাহরণস্বরূপ, প্রিপ্রসেসরের আউটপুট, যা
কম্পাইলার সঠিকভাবে ইনপুট করুন।

Gcc_compare_debug
বিন্যাস Gcc_compare_debug পাস করার প্রায় সমতুল্য -fcompare-debug থেকে
কম্পাইলার ড্রাইভার। আরও বিস্তারিত জানার জন্য এই বিকল্পের ডকুমেন্টেশন দেখুন।

Gcc_exec_prefix
If Gcc_exec_prefix সেট করা হয়, এটি নামের মধ্যে ব্যবহার করার জন্য একটি উপসর্গ নির্দিষ্ট করে
কম্পাইলার দ্বারা নির্বাহিত সাবপ্রোগ্রাম। এই উপসর্গটি একত্রিত হলে কোন স্ল্যাশ যোগ করা হয় না
একটি সাবপ্রোগ্রামের নামের সাথে, তবে আপনি একটি উপসর্গ নির্দিষ্ট করতে পারেন যা একটি স্ল্যাশ যদি দিয়ে শেষ হয়
আপনি চান.

If Gcc_exec_prefix সেট করা নেই, জিসিসি ব্যবহার করার জন্য একটি উপযুক্ত উপসর্গ বের করার চেষ্টা করে
এটি যে পাথনামের সাথে আহ্বান করা হয়েছে তার উপর ভিত্তি করে।

GCC যদি নির্দিষ্ট উপসর্গ ব্যবহার করে সাবপ্রোগ্রাম খুঁজে না পায়, তাহলে এটি দেখার চেষ্টা করে
সাবপ্রোগ্রামের জন্য স্বাভাবিক জায়গা।

এর ডিফল্ট মান Gcc_exec_prefix is উপসর্গ/lib/gcc/ কোথায় উপসর্গ এর উপসর্গ
ইনস্টল করা কম্পাইলার। অনেক ক্ষেত্রে উপসর্গ আপনি যখন রান করেন তখন "প্রিফিক্স" এর মান
কনফিগার লিপি.

অন্যান্য উপসর্গ সঙ্গে নির্দিষ্ট -B এই উপসর্গের উপর অগ্রাধিকার নিন।

এই উপসর্গ যেমন ফাইল খুঁজে বের করার জন্য ব্যবহার করা হয় crt0.o যেগুলো লিঙ্ক করার জন্য ব্যবহার করা হয়।

উপরন্তু, উপসর্গ অনুসন্ধান করার জন্য ডিরেক্টরি খুঁজে বের করার জন্য একটি অস্বাভাবিক উপায়ে ব্যবহার করা হয়
হেডার ফাইলের জন্য। প্রতিটি স্ট্যান্ডার্ড ডিরেক্টরির জন্য যার নাম সাধারণত শুরু হয়
সঙ্গে /usr/local/lib/gcc (আরো সঠিকভাবে, এর মান সহ GCC_INCLUDE_DIR), GCC চেষ্টা করে
একটি বিকল্প ডিরেক্টরি তৈরি করতে নির্দিষ্ট উপসর্গ দিয়ে শুরুটি প্রতিস্থাপন করা
নাম এইভাবে, সঙ্গে -বিফু/, GCC অনুসন্ধান foo/বার এটি স্ট্যান্ডার্ড অনুসন্ধান করার ঠিক আগে
ডিরেক্টরি /usr/local/lib/bar. যদি একটি স্ট্যান্ডার্ড ডিরেক্টরি কনফিগার করা দিয়ে শুরু হয়
উপসর্গ তারপর এর মান উপসর্গ দ্বারা প্রতিস্থাপিত হয় Gcc_exec_prefix যখন হেডার খুঁজছেন
ফাইল।

COMPILER_PATH
মুল্য COMPILER_PATH ডিরেক্টরির একটি কোলন-বিচ্ছিন্ন তালিকা, অনেকটা এরকম পাথ.
সাবপ্রোগ্রামগুলি অনুসন্ধান করার সময় GCC এইভাবে নির্দিষ্ট করা ডিরেক্টরিগুলি চেষ্টা করে, যদি এটি না পারে
ব্যবহার করে সাবপ্রোগ্রাম খুঁজুন Gcc_exec_prefix.

LIBRARY_PATH
মুল্য LIBRARY_PATH ডিরেক্টরির একটি কোলন-বিচ্ছিন্ন তালিকা, অনেকটা এরকম পাথ.
যখন একটি নেটিভ কম্পাইলার হিসাবে কনফিগার করা হয়, তখন GCC এইভাবে নির্দিষ্ট করা ডিরেক্টরিগুলি চেষ্টা করে
বিশেষ লিঙ্কার ফাইলগুলির জন্য অনুসন্ধান করা হচ্ছে, যদি এটি তাদের ব্যবহার করে খুঁজে না পায় Gcc_exec_prefix.
GCC ব্যবহার করে লিঙ্ক করা সাধারণ লাইব্রেরিগুলি অনুসন্ধান করার সময় এই ডিরেক্টরিগুলি ব্যবহার করে
জন্য -l বিকল্প (কিন্তু এর সাথে নির্দিষ্ট ডিরেক্টরিগুলি -L প্রথম আসা).

ল্যাং
এই ভেরিয়েবলটি কম্পাইলারকে লোকেল তথ্য পাঠাতে ব্যবহৃত হয়। যার মধ্যে এক উপায়
এই তথ্য ব্যবহার করা হয় অক্ষর সেট যখন অক্ষর ব্যবহার করা হবে নির্ধারণ করা হয়
লিটারেল, স্ট্রিং লিটারেল এবং মন্তব্যগুলি C এবং C++ এ পার্স করা হয়েছে। যখন কম্পাইলার হয়
মাল্টিবাইট অক্ষর অনুমোদন করার জন্য কনফিগার করা হয়েছে, এর জন্য নিম্নলিখিত মানগুলি ল্যাং হয়
স্বীকৃত:

সি-জেআইএস
JIS অক্ষর চিনুন।

সি-এসজেআইএস
SJIS অক্ষর চিনুন।

সি-ইউসিজেপি
EUCJP অক্ষর চিনুন।

If ল্যাং সংজ্ঞায়িত করা হয় না, অথবা যদি এটির অন্য কিছু মান থাকে, তাহলে কম্পাইলার "mblen" ব্যবহার করে
এবং মাল্টিবাইট চিনতে ও অনুবাদ করতে ডিফল্ট লোকেল দ্বারা সংজ্ঞায়িত "mbtowc"
অক্ষর.

কিছু অতিরিক্ত পরিবেশ ভেরিয়েবল প্রিপ্রসেসরের আচরণকে প্রভাবিত করে।

CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
প্রতিটি ভেরিয়েবলের মান হল একটি বিশেষ অক্ষর দ্বারা বিভক্ত ডিরেক্টরিগুলির একটি তালিকা, অনেকটা৷
মত পাথ, যেখানে হেডার ফাইলগুলি সন্ধান করতে হবে। বিশেষ চরিত্র,
"PATH_SEPARATOR", লক্ষ্য-নির্ভর এবং GCC বিল্ড টাইমে নির্ধারিত। মাইক্রোসফটের জন্য
উইন্ডোজ-ভিত্তিক লক্ষ্যগুলি এটি একটি সেমিকোলন, এবং প্রায় সমস্ত অন্যান্য লক্ষ্যগুলির জন্য এটি একটি
কোলন

CPATH অনুসন্ধান করার জন্য ডিরেক্টরিগুলির একটি তালিকা নির্দিষ্ট করে যেমন উল্লেখ করা হয়েছে -Iকিন্তু
সঙ্গে দেওয়া কোনো পাথ পরে -I কমান্ড লাইনে বিকল্প। এই পরিবেশ পরিবর্তনশীল
কোন ভাষা প্রি-প্রসেস করা হচ্ছে তা নির্বিশেষে ব্যবহার করা হয়।

অবশিষ্ট এনভায়রনমেন্ট ভেরিয়েবল শুধুমাত্র প্রিপ্রসেস করার সময় প্রযোজ্য হয়
ভাষা নির্দেশিত। প্রতিটি যেমন অনুসন্ধান করা ডিরেক্টরি একটি তালিকা নির্দিষ্ট করে
দিয়ে নির্দিষ্ট করা হয়েছে -সিস্টেম, কিন্তু কোনো পাথ সঙ্গে দেওয়া পরে -সিস্টেম উপর বিকল্প
কমান্ড লাইন

এই সমস্ত ভেরিয়েবলে, একটি খালি উপাদান কম্পাইলারকে তার বর্তমান অনুসন্ধান করার নির্দেশ দেয়
কাজের ডিরেক্টরি। খালি উপাদানগুলি একটি পথের শুরুতে বা শেষে উপস্থিত হতে পারে। জন্য
উদাহরণস্বরূপ, যদি এর মান CPATH হল ":/special/include", যার প্রভাব একই রকম
-আমি। -আমি/বিশেষ/অন্তর্ভুক্ত.

DEPENDENCIES_OUTPUT
যদি এই ভেরিয়েবল সেট করা থাকে, তাহলে এর মান নির্দিষ্ট করে কিভাবে মেক ভিত্তিক নির্ভরতা আউটপুট করা যায়
কম্পাইলার দ্বারা প্রক্রিয়াকৃত নন-সিস্টেম হেডার ফাইলগুলিতে। সিস্টেম হেডার ফাইল হয়
নির্ভরতা আউটপুটে উপেক্ষা করা হয়।

মুল্য DEPENDENCIES_OUTPUT শুধুমাত্র একটি ফাইলের নাম হতে পারে, এই ক্ষেত্রে নিয়ম তৈরি করুন
উৎস ফাইলের নাম থেকে লক্ষ্যের নাম অনুমান করে সেই ফাইলটিতে লেখা হয়। অথবা
মান ফর্ম থাকতে পারে ফাইল লক্ষ্য, যে ক্ষেত্রে নিয়ম ফাইল লিখিত হয় ফাইল
ব্যবহার লক্ষ্য লক্ষ্য নাম হিসাবে।

অন্য কথায়, এই এনভায়রনমেন্ট ভেরিয়েবলটি বিকল্পগুলিকে একত্রিত করার সমতুল্য -এমএম
এবং -এমএফ, একটি ঐচ্ছিক সঙ্গে -এমটি সুইচ খুব.

SUNPRO_DEPENDENCIES
এই পরিবর্তনশীল হিসাবে একই DEPENDENCIES_OUTPUT (উপরে দেখুন), সেই সিস্টেম ছাড়া
হেডার ফাইলগুলি উপেক্ষা করা হয় না, তাই এটি বোঝায় -M বরং -এমএম। তবে
প্রধান ইনপুট ফাইলের উপর নির্ভরতা বাদ দেওয়া হয়।

onworks.net পরিষেবা ব্যবহার করে অনলাইনে aarch64-linux-gnu-g++-4.8 ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

লিনাক্স কমান্ডগুলি

Ad