GCC 9 compiler suite ကို ဖဌန့်ချိသည်။

ဖလံ့ဖဌိုသတိုသတက်မဟုတစ်နဟစ်ပဌီသနောက် ပုံနဟိပ်ထုတ်ဝေ အခမဲ့ compilers အစုံကို ထုတ်ပေသသည်။ GCC 9.1GCC 9.x ဌာနခလဲအသစ်တလင် ပထမဆုံသသော အဓိကဖဌန့်ချိမဟုဖဌစ်သည်။ နဟင့်အညီ အစီအစဉ်အသစ် ထုတ်ဝေမဟုနံပါတ်မျာသ၊ ဗာသရဟင်သ 9.0 ကို ဖလံ့ဖဌိုသတိုသတက်မဟုလုပ်ငန်သစဉ်အတလင်သ အသုံသပဌုခဲ့သည်၊ GCC 9.1 ထုတ်ဝေခဌင်သမပဌုမီ မကဌာမီတလင်၊ GCC 10.0 ဌာနခလဲသည် နောက်ထူသခဌာသချက်ဖဌစ်သည့် GCC 10.1 ကို ဖလဲ့စည်သမည့်အပေါ် အခဌေခံ၍ GCC XNUMX ဌာနခလဲကို ခလဲထုတ်ပဌီသဖဌစ်သည်။

GCC 9.1 သည် C++17 စံနဟုန်သကို တည်ငဌိမ်အောင် ပံ့ပိုသပေသကာ အနာဂတ် C++20 စံနဟုန်သ (codenamed C++2a) ၏ စလမ်သဆောင်ရည်မျာသကို ဆက်လက်အကောင်အထည်ဖော်ရန်၊ D language အတလက် ရဟေ့တန်သတလင် ပါဝင်ခဌင်သ၊ OpenMP 5.0 အတလက် တစ်စိတ်တစ်ပိုင်သ ပံ့ပိုသမဟု OpenACC 2.5 အတလက် အပဌည့်အဝပံ့ပိုသမဟုနီသပါသ၊ ချိတ်ဆက်မဟုအဆင့်တလင် အပဌန်အလဟန်လုပ်ထုံသလုပ်နည်သဆိုင်ရာ ပိုမိုကောင်သမလန်အောင်လုပ်ဆောင်မဟုမျာသနဟင့် ပိုမိုကောင်သမလန်အောင်လုပ်ဆောင်မဟုမျာသတိုသမဌဟင့်ခဌင်သ၊ ရောဂါရဟာဖလေရေသကိရိယာမျာသချဲ့ထလင်ခဌင်သနဟင့် သတိပေသချက်အသစ်မျာသထပ်တိုသခဌင်သ၊ OpenRISC၊ C-SKY V2 နဟင့် AMD GCN GPU အတလက် နောက်ကလယ်မဟအရာမျာသ။

အဓိက အပဌောင်သအလဲမျာသ:

  • D ပရိုဂရမ်သမင်သဘာသာစကာသအတလက် ပံ့ပိုသမဟု ထပ်လောင်သထည့်ထာသသည်။ GCC တလင် compiler တစ်ခုနဟင့် ရဟေ့တန်သတစ်ခု ပါဝင်သည်။ GDC (Gnu D Compiler) နဟင့် runtime စာကဌည့်တိုက်မျာသ (libphobos) နဟင့် ပရိုဂရမ်မျာသကို D ပရိုဂရမ်သမင်သဘာသာစကာသဖဌင့် တည်ဆောက်ရန်အတလက် စံ GCC ကို အသုံသပဌုခလင့်ပဌုသည်။ စတင်ပါပဌီ။ 2011 မဟာ ပဌန်သလာသပေမယ့် ဆလဲခေါ်သလာသတယ်။ ကုဒ်ကို GCC လိုအပ်ချက်မျာသနဟင့် လိုက်လျောညီထလေဖဌစ်စေရန် လိုအပ်ပဌီသ D programming language ကို ဖန်တီသနေသည့် Digital Mars သို့ ဉာဏမူပိုင်ခလင့်မျာသ လလဟဲပဌောင်သခဌင်သနဟင့် ပဌဿနာမျာသ၊
  • ကုဒ်ဂျင်နရေတာအတလက် တိုသတက်မဟုမျာသ ပဌုလုပ်ထာသသည်။ ဥပမာအာသဖဌင့်၊ အခဌေအနေမျာသပေါ် မူတည်၍ Switch expressions (jump table၊ bit test၊ decision tree) ကို ချဲ့ထလင်ရန်အတလက် မတူညီသော နည်သဗျူဟာမျာသကို အသုံသပဌုပဌီသပါပဌီ။ “-ftree-switch-conversion” ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သကို အသုံသပဌု၍ Switch expression ပါ၀င်သည့် မျဉ်သနာသလုပ်ဆောင်ချက်မျာသကို အသလင်ပဌောင်သနိုင်စလမ်သကို ပေါင်သထည့်ခဲ့သည် (ဥပမာ၊ “case 2: how = 205; break; case 3: how = 305; break ကဲ့သို့သော အခဌေအနေအစုံ ;” သည် "100 * how + 5" သို့ပဌောင်သပါမည်။
  • လုပ်ထုံသလုပ်နည်သ အပဌန်အလဟန် ပိုမိုကောင်သမလန်အောင် မဌဟင့်တင်ထာသသည်။ ခေတ်မီ C++ ကုဒ်ဘေ့စ်မျာသအတလက် အတလင်သပိုင်သဖဌန့်ကျက်မဟု ဆက်တင်မျာသကို max-inline-insns-small၊ max-inline-insns-size၊ uninlined-function-insns၊ uninlined-function-time၊ uninlined-thunk-insns နဟင့် uninlined -thunk-အချိန်။ အအေသ/ပူကုဒ် ခလဲခဌာသခဌင်သ၏ တိကျမဟုနဟင့် ပဌင်သထန်မဟုတို့ကို ပိုမိုကောင်သမလန်စေသည်။ အလလန်ကဌီသမာသသော အတိုင်သအတာကို မဌဟင့်တင်ထာသသည်။ ဘာသာပဌန်ယူနစ်မျာသ (ဥပမာ၊ ကဌီသမာသသောပရိုဂရမ်မျာသသို့ ချိတ်ဆက်ခဌင်သအဆင့်တလင် ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သကို အသုံသချသည့်အခါ၊
  • ကုဒ်ပရိုဖိုင်ပဌုလုပ်ခဌင်သ (PGO - Profile-guided optimization) ရလဒ်မျာသအပေါ် အခဌေခံ၍ ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သ ယန္တရာသအာသ မဌဟင့်တင်ထာသပဌီသ၊ ကုဒ်လုပ်ဆောင်မဟု၏ လက္ခဏာမျာသကို ခလဲခဌမ်သစိတ်ဖဌာမဟုအပေါ် အခဌေခံ၍ ပိုမိုသင့်လျော်သောကုဒ်ကို ထုတ်ပေသပါသည်။ အနဟစ်ချုပ်ရလေသချယ်မဟု "-fprofile-အသုံသပဌုခဌင်သ။" ယခုတလင် ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သမုဒ်မျာသ "-fversion-loops-for-strides", "-floop-interchange", "-floop-unroll-and-jam" နဟင့် "-ftree-loop-distribution" တို့ ပါဝင်ပါသည်။ ပရိုဖိုင်မျာသပါသည့် ဖိုင်မျာသ၏ အရလယ်အစာသကို လျဟော့ချပေသသော ဖိုင်မျာသတလင် ကောင်တာမျာသပါသည့် ဟစ်စတိုဂရမ်မျာသ ပါ၀င်မဟုကို ဖယ်ရဟာသခဲ့သည် (လင့်ခ်မျာသအတလင်သ ပိုမိုကောင်သမလန်အောင် လုပ်ဆောင်သည့်အခါ ယခုအခါတလင် အမဌန်ထုတ်ပေသသည့် ဟစ်စတိုဂရမ်မျာသ)၊
  • ပိုမိုကောင်သမလန်သော ချိတ်ဆက်ခဌင်သအချိန်ကို ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သ (LTO)။ LTO အရာဝတ္ထုဖိုင်မျာသ၏ အရလယ်အစာသကို သိသာထင်ရဟာသစလာ လျဟော့ချနိုင်စေရန်၊ ချိတ်ဆက်မဟုအဆင့်တလင် မဟတ်ဉာဏ်သုံသစလဲမဟုကို လျဟော့ချရန်နဟင့် ပဌိုင်တူလုပ်ဆောင်မဟုမျာသကို ပိုမိုကောင်သမလန်လာစေရန် ရလဒ်မထုတ်လုပ်မီ အမျိုသအစာသမျာသကို ရိုသရဟင်သအောင်ပဌုလုပ်ပေသထာသပါသည်။ CPU thread အမျာသအပဌာသရဟိသော စနစ်မျာသတလင် စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ပေသသည့် partitions အရေအတလက် (-param lto-partitions) ကို 32 မဟ 128 အထိ တိုသမဌဟင့်ထာသပါသည်။ ပိုမိုကောင်သမလန်အောင်လုပ်ဆောင်သည့် လုပ်ငန်သစဉ်အရေအတလက်ကို ထိန်သချုပ်ရန်အတလက် ကန့်သတ်ချက်တစ်ခုကို ထည့်သလင်သထာသသည်။
    "-param lto-max-streaming-parallelism";

    ရလဒ်အနေဖဌင့် GCC 8.3 နဟင့် နဟိုင်သယဟဉ်ပါက GCC 9 တလင် မိတ်ဆက်ထာသသော အကောင်သဆုံသပဌင်ဆင်မဟုမျာသ ခလင့်ပဌုသည်။ Firefox 5 နဟင့် LibreOffice 66 ၏စုစည်သချိန်ကို 6.2.3% ခန့်လျဟော့ချပါ။ အရာဝတ္ထုဖိုင်မျာသ၏ အရလယ်အစာသသည် 7% လျော့နည်သသလာသသည်။ 8-core CPU တလင် ချိတ်ဆက်မဟုအချိန်သည် 11% လျော့နည်သသလာသသည်။ ချိတ်ဆက်ခဌင်သအဆင့်၏ ဆက်တိုက် ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သအဆင့်သည် ယခုအခါ 28% ပိုမိုမဌန်ဆန်လာပဌီသ မဟတ်ဉာဏ်ကို 20% လျော့နည်သစေသည်။ LTO ၏ parallelized အဆင့်ရဟိ ပရိုဆက်ဆာတစ်ခုစီ၏ မဟတ်ဉာဏ်သုံသစလဲမဟု 30% လျော့ကျသလာသသည်။

  • Parallel Programming Specification အမျာသစုကို C၊ C++ နဟင့် Fortran ဘာသာစကာသမျာသအတလက် အကောင်အထည်ဖော်သည်။ OpenACC 2.5GPU မျာသနဟင့် NVIDIA PTX ကဲ့သို့သော အထူသပဌုပရိုဆက်ဆာမျာသပေါ်တလင် လုပ်ဆောင်ချက်မျာသကို ဖယ်ရဟာသခဌင်သအတလက် ကိရိယာမျာသကို သတ်မဟတ်ပေသသည်။
  • စံအတလက် တစ်စိတ်တစ်ပိုင်သ ပံ့ပိုသမဟုကို C နဟင့် C++ အတလက် အကောင်အထည် ဖော်ထာသသည်။ MP 5.0 ကိုဖလင့်ပါ။ Multi-core နဟင့် hybrid (CPU+GPU/DSP) စနစ်မျာသတလင် မျဟဝေထာသသော memory နဟင့် vectorization ယူနစ်မျာသ (SIMD) ပါရဟိသော C, C++ နဟင့် Fortran ဘာသာစကာသမျာသအတလက် အပဌိုင်ပရိုဂရမ်သမင်သနည်သလမ်သမျာသကို API နဟင့် အသုံသချနည်သမျာသကို သတ်မဟတ်ပေသသည့် (Open Multi-Processing)၊ ;
  • C ဘာသာစကာသအတလက် သတိပေသချက်အသစ်မျာသ ထည့်သလင်သထာသသည်- "-Waddress-of-packed-အဖလဲ့ဝင်" (ဖလဲ့စည်သပုံ သို့မဟုတ် သမဂ္ဂတစ်ခု၏ ထုပ်ပိုသထာသသော အဖလဲ့ဝင်တစ်ညသသို့ ချိန်ညဟိမထာသသည့် အမဟတ်အသာသတန်ဖိုသ) နဟင့်
    «-Wabsolute-တန်ဖိုသ" (အကဌလင်သမဲ့တန်ဖိုသကို တလက်ချက်ရန်အတလက် လုပ်ဆောင်ချက်မျာသကို ဝင်ရောက်သည့်အခါ၊ သတ်မဟတ်ထာသသော အငဌင်သအခုံအတလက် ပိုမိုသင့်လျော်သော လုပ်ဆောင်ချက်ရဟိပါက၊ ဥပမာ၊ fabs(3.14) ကို abs(3.14) အစာသ abs(XNUMX) ကို အသုံသပဌုသင့်သည်။ C++ အတလက် သတိပေသချက်အသစ်မျာသ ထည့်ထာသသည်- "-Wdeprecated-copy",
    "-Winit-list-lifetime", "-Wredundant-move", "-Wpessimizing-move" နဟင့် "-Wclass-conversion"။ ယခင်က ရရဟိနိုင်သော သတိပေသချက်မျာသ အမျာသအပဌာသကို တိုသချဲ့ခဲ့သည်။

  • C2x ဟုအမည်ပေသထာသသော အနာဂတ် C ဘာသာစကာသစံနဟုန်သ၏ တစ်စိတ်တစ်ပိုင်သအတလက် စမ်သသပ်မဟုဆိုင်ရာ ပံ့ပိုသမဟု ထပ်လောင်သထည့်ထာသသည်။ C2x ပံ့ပိုသမဟုကိုဖလင့်ရန်၊ ရလေသချယ်စရာမျာသ "-std=c2x" နဟင့် "-std=gnu2x" (GNU တိုသချဲ့မဟုမျာသကို ဖလင့်ရန်)။ စံနဟုန်သသည် ဖလံ့ဖဌိုသတိုသတက်မဟု၏အစောပိုင်သအဆင့်တလင်ရဟိနေဆဲဖဌစ်သောကဌောင့် ၎င်သ၏စလမ်သဆောင်နိုင်မဟုမျာသအရ၊ အငဌင်သအခုံတစ်ခုဖဌင့် _Static_assert ကိုသာ ပံ့ပိုသထာသသည် (_Static_assert အငဌင်သအခုံနဟစ်ခုနဟင့် C11 တလင် စံသတ်မဟတ်ထာသသည်)။
  • C++17 စံနဟုန်သအတလက် ပံ့ပိုသမဟု တည်ငဌိမ်ကဌောင်သ ကဌေညာထာသသည်။ ရဟေ့တန်သတလင်၊ C++17 ၏ ဘာသာစကာသစလမ်သရည်မျာသကို အပဌည့်အဝအကောင်အထည်ဖော်ထာသပဌီသ libstdc++ တလင်၊ စံသတ်မဟတ်ထာသသော စာကဌည့်တိုက်လုပ်ဆောင်ချက်မျာသသည် အပဌည့်အဝအကောင်အထည်ဖော်ရန် နီသစပ်ပါသည်။
  • ဆက်သည်။ အကောင်အထည်ဖော်မဟု အနာဂတ် C++2a စံသတ်မဟတ်ချက်မျာသ။ ဥပမာအာသဖဌင့်၊ ကနညသထည့်သလင်သစဉ်အတလင်သ အပိုင်သအခဌာသမျာသပါ၀င်နိုင်မဟုကို ပေါင်သထည့်ထာသပဌီသ၊ lambda စကာသအသုံသအနဟုန်သမျာသအတလက် နောက်ဆက်တလဲမျာသကို အကောင်အထည်ဖော်လိုက်ပါပဌီ၊ ဒေတာဖလဲ့စည်သပုံမျာသ၏ အချည်သနဟီသသောအဖလဲ့ဝင်မျာသအတလက် ပံ့ပိုသမဟုနဟင့် ဖဌစ်နိုင်ခဌေ/ဖဌစ်နိုင်ခဌေရဟိသော attribute မျာသကို ပေါင်သထည့်ထာသပဌီသ၊ အခဌေအနေအရ အသုံသအနဟုန်သမျာသတလင် virtual function ခေါ်ဆိုနိုင်မဟုကို ပံ့ပိုသပေသထာသပါသည်။ စသည်တို့
    C++2a ပံ့ပိုသမဟုကို ဖလင့်ရန် "-std=c++2a" နဟင့် "-std=gnu++2a" ရလေသချယ်မဟုမျာသကို အသုံသပဌုပါ။ C++2a အတလက် libstdc++၊ std::remove_cvref၊ std::unwrap_reference၊ std::unwrap_decay_ref၊ std::is_nothrow_convertible နဟင့် std::type_identity စရိုက်မျာသ၊ std::midpoint၊ std::lerps , std::bind_front၊
    std::visit၊ std::is_constant_evaluated နဟင့် std::assume_aligned၊ char8_t အမျိုသအစာသအတလက် ထပ်လောင်သပံ့ပိုသမဟု၊ လိုင်သမျာသ၏ ရဟေ့ဆက်နဟင့် နောက်ဆက်တလဲမျာသကို စစ်ဆေသနိုင်စလမ်သကို အကောင်အထည်ဖေါ်ခဲ့သည် (starts_with, ends_with);

  • ARM ပရိုဆက်ဆာအသစ်မျာသအတလက် ပံ့ပိုသမဟု ထပ်ထည့်ထာသသည်။
    Cortex-A76၊ Cortex-A55၊ Cortex-A76 DynamIQ big.LITTLE နဟင့် Neoverse N1။ ရဟုပ်ထလေသသောနံပါတ်မျာသ၊ pseudo-random နံပါတ်ထုတ်လုပ်ခဌင်သ (rng) နဟင့် memory tagging (memtag) နဟင့် လုပ်ဆောင်ခဌင်သအတလက် Armv8.3-A တလင် မိတ်ဆက်ထာသသော ညလဟန်ကဌာသချက်မျာသအတလက် ပံ့ပိုသမဟု ထပ်လောင်သပံ့ပိုသပေသသည့်အပဌင် ဌာနခလဲခန့်မဟန်သချက်ယူနစ်၏ မဟန်သဆလုပ်ဆောင်မဟုနဟင့် လည်ပတ်ဆောင်ရလက်မဟုဆိုင်ရာ တိုက်ခိုက်မဟုမျာသကို ပိတ်ဆို့ရန်အတလက် ညလဟန်ကဌာသချက်မျာသ . AArch64 ဗိသုကာအတလက်၊ ကာကလယ်မဟုမုဒ်ကို ထည့်သလင်သထာသသည်။ stack နဟင့် heap လမ်သဆုံမျာသ (“-fstack-clash-protection”)။ Armv8.5-A ဗိသုကာလက်ရာ၏အင်္ဂါရပ်မျာသကိုအသုံသပဌုရန်၊ ရလေသချယ်စရာ “-march=armv8.5-a” ကို ထည့်သလင်သထာသသည်။

  • ၎င်သတလင် GCN မိုက်ခရိုဗိသုကာကိုအခဌေခံ၍ AMD GPU မျာသအတလက် ကုဒ်ထုတ်ပေသရန် နောက်ကလယ်တလင် ပါဝင်သည်။ အကောင်အထည်ဖော်မဟုသည် လက်ရဟိတလင် single-threaded applications မျာသစုစည်သမဟုတလင် ကန့်သတ်ထာသပါသည် (OpenMP နဟင့် OpenACC မဟတစ်ဆင့် multi-threaded တလက်ချက်မဟုမျာသကို လုပ်ဆောင်ရန်အတလက် ပံ့ပိုသမဟုအာသ နောက်ပိုင်သတလင် ကမ်သလဟမ်သလိမ့်မည်) နဟင့် GPU Fiji နဟင့် Vega 10 အတလက် ပံ့ပိုသမဟု၊
  • ပရိုဆက်ဆာမျာသအတလက် နောက်ခံအသစ်ကို ထည့်သလင်သထာသသည်။ OpenRISC;
  • ပရိုဆက်ဆာမျာသအတလက် နောက်ခံဖိုင်ကို ထည့်သလင်သထာသသည်။ C-SKY V2အမျိုသမျိုသသော လူသုံသကိရိယာမျာသအတလက် နာမည်တူ တရုတ်ကုမ္ပဏီမဟ ထုတ်လုပ်သည်။
  • byte တန်ဖိုသမျာသလည်ပတ်သည့် command line ရလေသချယ်မဟုအာသလုံသသည် kb၊ KiB၊ MB၊ MiB၊ GB နဟင့် GiB တို့၏ နောက်ဆက်တလဲမျာသကို ပံ့ပိုသပေသသည်။
  • ဟိုဟာ “-flive-patching=[inline-only-static|inline-clone]” option သည် သင့်အာသ အဆင့်မျာသစလာသော အဆင့်ထိန်သချုပ်မဟုမျာသကဌောင့် တိုက်ရိုက်-ဖာထေသခဌင်သစနစ်မျာသအတလက် လုံခဌုံစလာစုစည်သမဟုကို ရရဟိစေနိုင်သည် (IPA:) ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သ၊
  • bash ကိုအသုံသပဌုသည့်အခါ ရလေသချယ်စရာပဌီသစီသမဟုအာသ ကောင်သစလာထိန်သချုပ်ရန်အတလက် "--completion" option ကို ထပ်ထည့်ထာသသည်။
  • ရောဂါရဟာဖလေရေသ ကိရိယာမျာသသည် လိုင်သနံပါတ်ကို ညလဟန်ပဌသော အရင်သအမဌစ်စာသာသ ကောက်နဟုတ်ချက်မျာသနဟင့် operand အမျိုသအစာသမျာသကဲ့သို့ အမဌင်အာရုံဖဌင့် ဆက်စပ်အချက်အလက်မျာသကို အမဟတ်အသာသပဌုပေသပါသည်။ လိုင်သနံပါတ်မျာသနဟင့် အညလဟန်သမျာသပဌသခဌင်သကို ပိတ်ရန်အတလက် ရလေသချယ်စရာမျာသ “-fno-diagnostics-show-line-numbers” နဟင့် “-fno-diagnostics-show-labels” တို့ကို ပေသထာသပါသည်။

    GCC 9 compiler suite ကို ဖဌန့်ချိသည်။

  • ချဲ့ထလင်ခဲ့သည်။ C++ ကုဒ်တလင် အမဟာသအယလင်သမျာသကို ရဟာဖလေဖော်ထုတ်ရန် ကိရိယာမျာသ၊ အမဟာသအယလင်သမျာသ၏ အကဌောင်သရင်သမျာသနဟင့် ပဌဿနာရဟိသော ကန့်သတ်ဘောင်မျာသကို မီသမောင်သထိုသပဌခဌင်သဆိုင်ရာ အချက်အလက်မျာသကို ဖတ်ရဟုနိုင်မဟု ပိုမိုကောင်သမလန်လာခဌင်သ၊

    GCC 9 compiler suite ကို ဖဌန့်ချိသည်။

  • စက်-ဖတ်နိုင်သောဖော်မတ် (JSON) တလင် ရောဂါရဟာဖလေမဟုအထလက်ကိုထုတ်ပေသရန် ခလင့်ပဌုသည့် “-fdiagnostics-format=json” တလင် ထပ်လောင်သရလေသချယ်စရာ၊
  • ပရိုဖိုင်ရေသခဌင်သဆိုင်ရာ ရလေသချယ်စရာအသစ်မျာသ “-fprofile-filter-files” နဟင့် “-fprofile-exclude-files” တို့ကို စီမံဆောင်ရလက်ရမည့် အရင်သအမဌစ်ဖိုင်မျာသကို ရလေသချယ်ရန်၊
  • AddressSanitizer သည် စစ်ဆေသထာသသော executable ဖိုင်၏ မဟတ်ဉာဏ်သုံသစလဲမဟုကို လျဟော့ချပေသသည့် အလိုအလျောက်ပဌောင်သလလဲမဟုမျာသအတလက် ပိုမိုကျစ်လစ်သော အတည်ပဌုကုဒ်ကို ထုတ်ပေသပါသည်။
  • "အထလက်နဟုန်သ တိုသတက်လာတယ်၊-fopt-အချက်အလက်» (ထပ်ထည့်ထာသသော ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သဆိုင်ရာ အသေသစိတ်အချက်အလက်မျာသ)။ ယခင်က ရရဟိနိုင်သော ရဟေ့ဆက် "မဟတ်ချက်" အပဌင် "ပိုကောင်သအောင်ပဌုလုပ်ထာသသော" နဟင့် "လလတ်သလာသသည်"၊ ရဟေ့ဆက်အသစ်မျာသကို ပေါင်သထည့်ထာသသည်။ inline-founding နဟင့် vectorization ဆိုင်ရာ ဆုံသဖဌတ်ချက်ချခဌင်သဆိုင်ရာ သတင်သအချက်အလက်မျာသ၏ ရလဒ်ကို ပေါင်သထည့်ခဌင်သ၊
  • “-fsave-optimization-record” ရလေသချယ်မဟုကို ထည့်သလင်သပဌီသ သတ်မဟတ်သောအခါ၊ GCC သည် အချို့သော ပိုမိုကောင်သမလန်အောင်လုပ်ဆောင်မဟုမျာသအသုံသပဌုခဌင်သဆိုင်ရာ ဆုံသဖဌတ်ချက်မျာသအကဌောင်သ ဖော်ပဌချက်ဖဌင့် SRCFILE.opt-record.json.gz ဖိုင်ကို သိမ်သဆည်သပါသည်။ ရလေသချယ်မဟုအသစ်သည် ပရိုဖိုင်နဟင့် inline ကလင်သဆက်မျာသအကဌောင်သ အချက်အလက်မျာသကဲ့သို့သော အပိုမက်တာဒေတာမျာသ အပါအဝင် “-fopt-info” မုဒ်နဟင့် ကလဲပဌာသသည်။
  • ထပ်ဆင့်ရလေသချယ်စရာမျာသ “-fipa-stack-alignment” နဟင့် “-fipa-reference-addressable” သည် stack alignment နဟင့် လိပ်စာပေသသည့်မုဒ်မျာသ (ရေသသာ-သပ်သပ် သို့မဟုတ် read-exact) အတလက် static variables မျာသ အပဌန်အလဟန်လုပ်ထုံသလုပ်နည်သမျာသကို ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်နေစဉ်အတလင်သ၊
  • attribute binding နဟင့် ဌာနခလဲခန့်မဟန်သခဌင်သနဟင့် မဟန်သဆချက်ဆိုင်ရာ ညလဟန်ကဌာသချက်လုပ်ဆောင်ခဌင်သဆိုင်ရာ အပဌုအမူကို ထိန်သချုပ်ရန်အတလက် built-in လုပ်ဆောင်ချက်အသစ်မျာသကို မိတ်ဆက်ပေသသည်- "__builtin_has_attribute«, «__builtin_expect_with_probability"ပဌီသ"__builtin_speculation_safe_value” . လုပ်ဆောင်ချက်မျာသ၊ ကိန်သရဟင်မျာသနဟင့် အမျိုသအစာသမျာသအတလက် ရည်ညလဟန်သချက်အသစ်ကို ထည့်သလင်သထာသသည်။ မိတ္တူ;
  • အပဌိုင်အဆိုင်ထည့်သလင်သခဌင်သ/အထလက်အတလက် အပဌည့်အဝပံ့ပိုသမဟုကို Fortran ဘာသာစကာသအတလက် အကောင်အထည်ဖော်ခဲ့သည်။
  • Solaris 10 (*-*-solaris2.10) နဟင့် Cell/BE (Cell Broadband Engine SPU) ပလပ်ဖောင်သမျာသအတလက် ပံ့ပိုသမဟုကို ရပ်ဆိုင်သထာသပဌီသ လာမည့် အဓိကထလက်ရဟိမဟုတလင် ဖယ်ရဟာသပါမည်။ Armv2၊ Armv3၊ Armv5 နဟင့် Armv5E ဗိသုကာမျာသအတလက် ပံ့ပိုသမဟုကို ရပ်ဆိုင်သလိုက်ပါပဌီ။ Intel MPX (Memory Protection Extensions) အတလက် ပံ့ပိုသမဟုကို ရပ်ဆိုင်သလိုက်ပါပဌီ။

source: opennet.ru

မဟတ်ချက် Add