LLVM 11.0 рдХрдВрдкрд╛рдпрд▓рд░ рд╕реВрдЯрдЪреЗ рдкреНрд░рдХрд╛рд╢рди

рд╕рд╣рд╛ рдорд╣рд┐рдиреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдирдВрддрд░ рд╕рд╛рджрд░ рдкреНрд░рдХрд▓реНрдк рдкреНрд░рдХрд╛рд╢рди рдПрд▓рдПрд▓рд╡реНрд╣реАрдПрдо 11.0 тАФ GCC-рд╕реБрд╕рдВрдЧрдд рд╕рд╛рдзрдиреЗ (рдХрдВрдкрд╛рдпрд▓рд░, рдСрдкреНрдЯрд┐рдорд╛рдпрдЭрд░реНрд╕ рдЖрдгрд┐ рдХреЛрдб рдЬрдирд░реЗрдЯрд░), RISC-рд╕рд╛рд░рдЦреНрдпрд╛ рдЖрднрд╛рд╕реА рд╕реВрдЪрдирд╛рдВрдЪреНрдпрд╛ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдмрд┐рдЯрдХреЛрдбрдордзреНрдпреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреЗ (рдорд▓реНрдЯреА-рд▓реЗрд╡реНрд╣рд▓ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рд╕рд┐рд╕реНрдЯрдорд╕рд╣ рд▓реЛ-рд▓реЗрд╡реНрд╣рд▓ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди). рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓рд╛ рд╕реНрдпреВрдбреЛрдХреЛрдб JIT рдХрдВрдкрд╛рдпрд▓рд░ рд╡рд╛рдкрд░реВрди рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рд╡реЗрд│реА рдереЗрдЯ рдорд╢реАрди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.

рдирд╡реАрди рдкреНрд░рдХрд╛рд╢рдирд╛рддреАрд▓ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рдмрджрд▓ рд╣рд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реЛрддрд╛ рдкрд╛рд░реНрд╢реНрд╡рднрд╛рдЧ, рдлреЛрд░рдЯреНрд░рд╛рди рднрд╛рд╖реЗрд╕рд╛рдареА рдлреНрд░рдВрдЯрдПрдВрдб. Flang Fortran 2018, OpenMP 4.5 рдЖрдгрд┐ OpenACC 3.0 рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ, рдкрд░рдВрддреБ рдкреНрд░рдХрд▓реНрдкрд╛рдЪрд╛ рд╡рд┐рдХрд╛рд╕ рдЕрджреНрдпрд╛рдк рдкреВрд░реНрдг рдЭрд╛рд▓реЗрд▓рд╛ рдирд╛рд╣реА рдЖрдгрд┐ рд╕рдореЛрд░рдЪреЗ рдЯреЛрдХ рдХреЛрдб рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдЕрдЪреВрдХрддрд╛ рддрдкрд╛рд╕рдгреНрдпрд╛рдкреБрд░рддреЗ рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗ. LLVM рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдХреЛрдбрдЪреА рдирд┐рд░реНрдорд┐рддреА рдЕрджреНрдпрд╛рдк рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реА рдЖрдгрд┐ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдХреЕрдиреЛрдирд┐рдХрд▓ рдХреЛрдб рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдмрд╛рд╣реНрдп рдлреЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░рдХрдбреЗ рдкрд╛рдард╡рд┐рд▓рд╛ рдЬрд╛рддреЛ.

рд╕реБрдзрд╛рд░рдгрд╛ рдХреНрд▓реЕрдВрдЧ 11.0 рдордзреНрдпреЗ:

  • рдЕрдореВрд░реНрдд рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рд╡реГрдХреНрд╖ рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА (рдПрдПрд╕рдЯреА) рддреБрдЯрд▓реЗрд▓реНрдпрд╛ C++ рдХреЛрдбрд╕рд╛рдареА, рдЬреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рддреНрд░реБрдЯреАрдВрдЪреЗ рдирд┐рджрд╛рди рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдЖрдгрд┐ рдХреНрд▓реЕрдВрдЧ-рдЯрд┐рдбреА рдЖрдгрд┐ рдХреНрд▓реЕрдВрдЧрдб рд╕рд╛рд░рдЦреНрдпрд╛ рдмрд╛рд╣реНрдп рдЙрдкрдпреБрдХреНрддрддрд╛рдВрдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рд╣рд┐рддреА рдкреНрд░рджрд╛рди рдХрд░рддреЛ. рд╣реЗ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп C++ рдХреЛрдбрд╕рд╛рдареА рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ "-Xclang -f[no-]recovery-ast" рдкрд░реНрдпрд╛рдпрд╛рдВрджреНрд╡рд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
  • рдирд╡реАрди рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рдореЛрдб рдЬреЛрдбрд▓реЗ:
    • тАЬ-Wpointer-to-int-castтАЭ рд╣рд╛ рд╕рд░реНрд╡ рд╕рдВрднрд╛рд╡реНрдп рдореВрд▓реНрдпреЗ рд╕рд╛рдорд╛рд╡реВрди рди рдШреЗрдгрд╛рд░реНтАНрдпрд╛ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░ рдЗрдВрдЯрд╡рд░ рдкреЙрдЗрдВрдЯрд░ рдХрд╛рд╕реНрдЯ рдХрд░рдгреНрдпрд╛рдмрджреНрджрд▓ рдЪреЗрддрд╛рд╡рдгреАрдВрдЪрд╛ рдПрдХ рдЧрдЯ рдЖрд╣реЗ.
    • "-Wuninitialized-const-reference" - "const" рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рд╣ рд╕рдВрджрд░реНрдн рдпреБрдХреНрддрд┐рд╡рд╛рдж рд╕реНрд╡реАрдХрд╛рд░рдгрд╛рд░реНтАНрдпрд╛ рдлрдВрдХреНрд╢рди рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдордзреНрдпреЗ рд╕реБрд░реВ рди рдХреЗрд▓реЗрд▓реЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдкрд╛рд╕ рдХрд░рдгреНрдпрд╛рдмрджреНрджрд▓ рдЪреЗрддрд╛рд╡рдгреА.
    • "-Wimplicit-const-int-float-conversion" - рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░рд╛рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рд░рд╛рдВрдХрд╛рдЪреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг рдмрджреНрджрд▓ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЪреЗрддрд╛рд╡рдгреАрджреНрд╡рд╛рд░реЗ рд╕рдХреНрд╖рдо.
  • рдПрдЖрд░рдПрдо рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА, рдХрдВрдкрд╛рдЗрд▓рд░рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рд╕реА рдлрдВрдХреНрд╢рдиреНрд╕ рдкреНрд░рджрд╛рди рдХреЗрд▓реА рдЬрд╛рддрд╛рдд (рдЕрдВрддрд░реНрдорди), рдХрд╛рд░реНрдпрдХреНрд╖рдо рд╡реЗрдХреНрдЯрд░ рд╕реВрдЪрдирд╛ рдЖрд░реНрдо v8.1-M MVE рдЖрдгрд┐ CDE рджреНрд╡рд╛рд░реЗ рдмрджрд▓рд▓реЗ. рдЙрдкрд▓рдмреНрдз рдлрдВрдХреНрд╢рдиреНрд╕ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реНрд╕ arm_mve.h рдЖрдгрд┐ arm_cde.h рдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗрдд.
  • рдЬреЛрдбрд▓реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪрд╛ рдПрдХ рд╕рдВрдЪ _ExtInt(N), рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрд╕реЗ рдкреНрд░рдХрд╛рд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ рдЬреЗ рджреЛрдирдЪреНрдпрд╛ рд╢рдХреНрддреАрдВрдЪреЗ рдЧреБрдгрд╛рдХрд╛рд░ рдирд╛рд╣реАрдд, рдЬреНрдпрд╛рд╡рд░ FPGA/HLS рд╡рд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, _ExtInt(7) 7 рдмрд┐рдЯреНрд╕рдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЕрд╕рд▓реЗрд▓рд╛ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЛ.
  • ARM SVE (рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╡реЗрдХреНрдЯрд░ рдПрдХреНрд╕реНрдЯреЗрдВрд╢рди) рдирд┐рд░реНрджреЗрд╢рд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЕрдВрдЧрднреВрдд C рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгрд╛рд░реЗ рдореЕрдХреНрд░реЛ рдЬреЛрдбрд▓реЗ:
    __ARM_FEATURE_SVE, __ARM_FEATURE_SVE_BF16,
    __ARM_FEATURE_SVE_MATMUL_FP32, __ARM_FEATURE_SVE_MATMUL_FP64,
    __ARM_FEATURE_SVE_MATMUL_INT8,
    __ARM_FEATURE_SVE2, __ARM_FEATURE_SVE2_AES,
    __ARM_FEATURE_SVE2_BITPERM,
    __ARM_FEATURE_SVE2_SHA3,
    __ARM_FEATURE_SVE2_SM4. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░реНрдпрд╛рдп "-march=armv64-a+sve" рд╕реЗрдЯ рдХрд░реВрди AArch8 рдХреЛрдб рдЬрдирд░реЗрдЯ рдХрд░рддрд╛рдирд╛ __ARM_FEATURE_SVE рдореЕрдХреНрд░реЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

  • "-O" рдзреНрд╡рдЬ рдЖрддрд╛ "-O1" рдРрд╡рдЬреА "-O2" рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдореЛрдбрдиреЗ рдУрд│рдЦрд▓рд╛ рдЬрд╛рддреЛ.
  • рдирд╡реАрди рдХрдВрдкрд╛рдЗрд▓рд░ рдзреНрд╡рдЬ рдЬреЛрдбрд▓реЗ:
    • "-fstack-clash-protection" - рд╡рд┐рд░реБрджреНрдз рд╕рдВрд░рдХреНрд╖рдг рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╕реНрдЯреЕрдХ рдЖрдгрд┐ рд╣рд┐рдкрдЪреЗ рдЫреЗрджрдирдмрд┐рдВрджреВ.
    • "-ffp-exception-behavior={ignore,maytrap,strict}" - рддреБрдореНрд╣рд╛рд▓рд╛ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдирдВрдмрд░рд╕рд╛рдареА рдЕрдкрд╡рд╛рдж рд╣рдБрдбрд▓рд░ рдореЛрдб рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.
    • "-ffp-model={precise,strict,fast}" - рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдирдВрдмрд░рд╕рд╛рдареА рд╡рд┐рд╢реЗрд╖ рдкрд░реНрдпрд╛рдпрд╛рдВрдЪреНрдпрд╛ рдорд╛рд▓рд┐рдХреЗрддреАрд▓ рдкреНрд░рд╡реЗрд╢ рд╕реБрд▓рдн рдХрд░рддреЗ.
    • "-fpch-codegen" рдЖрдгрд┐ "-fpch-debuginfo" рдХреЛрдб рдЖрдгрд┐ рдбреАрдмрдЧрд┐рдирдлреЛрд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реНрд╕рд╕рд╣ рдкреНрд░реАрдХрдореНрдкрд╛рдЗрд▓ рдХреЗрд▓реЗрд▓реЗ рд╣реЗрдбрд░ (PCH) рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.
    • рдХрд╡реНрд╣рд░реЗрдЬ рдЪрд╛рдЪрдгреА рдкрд╛рдВрдврд▒реНрдпрд╛ рдЖрдгрд┐ рдХрд╛рд│реНрдпрд╛ рдпрд╛рджреНрдпрд╛ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА тАЬ-fsanitize-coverage-allowlistтАЭ рдЖрдгрд┐ тАЬ-fsanitize-coverage-blocklistтАЭ.
    • TLS (рдереНрд░реЗрдб-рд▓реЛрдХрд▓ рд╕реНрдЯреЛрд░реЗрдЬ) рдЖрдХрд╛рд░ рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА тАЬ-mtls-size={12,24,32,48}тАЭ.
    • рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ RISC-V рд╡рд┐рд╕реНрддрд╛рд░ рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА "-menable-experimental-extension".
  • C рд╕рд╛рдареА рдбреАрдлреЙрд▓реНрдЯ рдореЛрдб "-fno-common" рдЖрд╣реЗ, рдЬреЛ рдХрд╛рд╣реА рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдЧреНрд▓реЛрдмрд▓ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдордзреНрдпреЗ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдкреНрд░рд╡реЗрд╢рд╛рд╕рд╛рдареА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ.
  • рдбрд┐рдлреЙрд▓реНрдЯ рдореЙрдбреНрдпреВрд▓ рдХреЕрд╢реЗ /tmp рд╡рд░реВрди ~/.cache рдбрд┐рд░реЗрдХреНрдЯреНрд░реАрдордзреНрдпреЗ рд╣рд▓рд╡рдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗ. рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА тАЬ-fmodules-cache-path=тАЭ рдзреНрд╡рдЬ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.
  • рдбреАрдлреЙрд▓реНрдЯ рд╕реА рднрд╛рд╖рд╛ рдорд╛рдирдХ gnu11 рд╡рд░реВрди gnu17 рдордзреНрдпреЗ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ.
  • GNU C рд╡рд┐рд╕реНрддрд╛рд░рд╛рд╕рд╛рдареА рдкреНрд░рд╛рдердорд┐рдХ рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ "asm рдЗрдирд▓рд╛рдЗрди┬╗ рдЕрд╕реЗрдВрдмрд▓рд░ рдЗрдиреНрд╕рд░реНрдЯ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА. рд╡рд┐рд╕реНрддрд╛рд░рд╛рдЪреЗ рдЕрджреНрдпрд╛рдк рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗрд▓реЗ рдЬрд╛рдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд╛рд░реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реА.
  • OpenCL рдЖрдгрд┐ CUDA рд╕рдорд░реНрдердирд╛рд╢реА рдирд┐рдЧрдбреАрдд рдХреНрд╖рдорддрд╛рдВрдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ. OpenCL 2.0 рдмреНрд▓реЙрдХ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЖрдгрд┐ рдирд╡реАрди OpenMP 5.0 рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реА.
  • рдмрд╛рд╣реНрдп "C" рдЖрдгрд┐ рдмрд╛рд╣реНрдп "C++" рдмреНрд▓реЙрдХреНрд╕рдордзреНрдпреЗ рд╕рдВрд░реЗрдЦрдирд╛рд╕рд╛рдареА рдХреНрд▓реЕрдВрдЧ-рдлреЙрд░реНрдореЗрдЯ рдпреБрдЯрд┐рд▓рд┐рдЯреАрдордзреНрдпреЗ IndentExternBlock рдкрд░реНрдпрд╛рдп рдЬреЛрдбрд▓рд╛.
  • рд╕реНрдЯреЕрдЯрд┐рдХ рдЕреЕрдирд╛рд▓рд╛рдпрдЭрд░рдиреЗ C++ рдордзреАрд▓ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдб рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕рдЪреА рд╣рд╛рддрд╛рд│рдгреА рд╕реБрдзрд╛рд░рд▓реА рдЖрд╣реЗ. рд▓реЙрдХ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рдирд╡реАрди рдЪреЗрдХ alpha.core.C11Lock рдЖрдгрд┐ alpha.fuchsia.Lock, putenv рдЪрд╛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рдкрд░ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА alpha.security.cert.pos.34c, webkit.NoUncountedMemberChecker рдЖрдгрд┐ webkit.RefCntblBaseVirtualDtor рд╕рдорд╕реНрдпрд╛ рд╢реЛрдзрдгреНрдпрд╛рдпреЛрдЧреНрдп рдирд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдЬреЛрдбрд▓реЗ. .cplusplus .SmartPtr null smart pointer dereference рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА.
  • рдордзреНрдпреЗ linter clang-рдиреАрдЯрдиреЗрдЯрдХрд╛ рдЬреЛрдбрд▓реЗ рдирд╡реАрди рдзрдирд╛рджреЗрд╢рд╛рдВрдЪрд╛ рдореЛрдард╛ рднрд╛рдЧ.
  • clangd рдХреЕрд╢рд┐рдВрдЧ рд╕рд░реНрд╡реНрд╣рд░ (Clang Server) рдиреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдирд╡реАрди рдирд┐рджрд╛рди рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реНрдпрд╛ рдЖрд╣реЗрдд.

рдореБрдЦреНрдп рдирд╡рдХрд▓реНрдкрдирд╛ LLVM 11.0:

  • рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯреАрдо Python 3 рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрд╡рд┐рдЪ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ. Python 3 рдЙрдкрд▓рдмреНрдз рдирд╕рд▓реНрдпрд╛рд╕, Python 2 рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рд░реЛрд▓рдмреЕрдХ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ.
  • рдЧреЛ рд▓рдБрдЧреНрд╡реЗрдЬ (llgo) рд╕рд╛рдареА рдХрдВрдкрд╛рдЗрд▓рд░рд╕рд╣ рдлреНрд░рдВрдЯ рдПрдВрдб рд░рд┐рд▓реАрдЭрдордзреВрди рд╡рдЧрд│рдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗ, рдЬреНрдпрд╛рдЪреА рднрд╡рд┐рд╖реНрдпрд╛рдд рдкреБрдирд░реНрд░рдЪрдирд╛ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ.
  • рд╡реНрд╣реЗрдХреНрдЯрд░-рдлрдВрдХреНрд╢рди-рдЕрдмреА-рд╡реНрд╣реЗрд░рд┐рдПрдВрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдкреНрд░реЗрдЭреЗрдВрдЯреЗрд╢рди (рдЖрдпрдЖрд░) рдордзреНрдпреЗ рдЬреЛрдбрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ рдЬреНрдпрд╛рдореБрд│реЗ рдХреЙрд▓ рд╡реНрд╣реЗрдХреНрдЯрд░рд╛рдЗрдЬ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреЗрд▓рд░ рдЖрдгрд┐ рд╡реЗрдХреНрдЯрд░ рдлрдВрдХреНрд╢рдиреНрд╕рдордзреАрд▓ рдореЕрдкрд┐рдВрдЧрдЪреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЬрд╛рддреЗ. llvm::VectorType рд╡рд░реВрди llvm::FixedVectorType рдЖрдгрд┐ llvm::ScalableVectorType рдЕрд╕реЗ рджреЛрди рд╡реЗрдЧрд│реЗ рд╡реЗрдХреНрдЯрд░ рдкреНрд░рдХрд╛рд░ рдЖрд╣реЗрдд.
  • udef рдореВрд▓реНрдпрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╢рд╛рдЦрд╛ рдХрд░рдгреЗ рдЖрдгрд┐ рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реА рдлрдВрдХреНрд╢рдиреНрд╕рдордзреНрдпреЗ undef рдореВрд▓реНрдпреЗ рдкрд╛рд╕ рдХрд░рдгреЗ рд╣реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд░реНрддрди рдореНрд╣рдгреВрди рдУрд│рдЦрд▓реЗ рдЬрд╛рддреЗ. IN
    memset/memcpy/memmove undef рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкрд╛рд╕ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ, рдкрд░рдВрддреБ рдЖрдХрд╛рд░рд╛рд╕рд╣ рдкреЕрд░рд╛рдореАрдЯрд░ рд╢реВрдиреНрдп рдЕрд╕рд▓реНрдпрд╛рд╕.

  • LLJIT рдиреЗ LLJIT::initialize рдЖрдгрд┐ LLJIT::deinitialize рдкрджреНрдзрддреАрдВрджреНрд╡рд╛рд░реЗ рд╕реНрдЯреЕрдЯрд┐рдХ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдпрдЭреЗрд╢рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ. StaticLibraryDefinitionGenerator рдХреНрд▓рд╛рд╕ рд╡рд╛рдкрд░реВрди JITDylib рдордзреНрдпреЗ рд╕реНрдЯреЕрдЯрд┐рдХ рд▓рд╛рдпрдмреНрд░рд░реА рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ. рд╕рд╛рдареА C API рдЬреЛрдбрд▓реЗ ORCv2 (JIT рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА API).
  • Cortex-A64, Cortex-A34, Cortex-A77 рдЖрдгрд┐ Cortex-X78 рдкреНрд░реЛрд╕реЗрд╕рд░рд╕рд╛рдареА рд╕рдорд░реНрдерди AArch1 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдмреЕрдХрдПрдВрдбрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. RMv8.2-BF16 (BFloat16) рдЖрдгрд┐ ARMv8.6-A рд╡рд┐рд╕реНрддрд╛рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ, рдЬреНрдпрд╛рдд RMv8.6-ECV (рд╡рд░реНрдзрд┐рдд рдХрд╛рдЙрдВрдЯрд░ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рди), ARMv8.6-FGT (рдлрд╛рдИрди рдЧреНрд░реЗрдиреНрдб рдЯреНрд░реЕрдкреНрд╕), ARMv8.6-AMU (рдЕреЕрдХреНрдЯрд┐рд╡реНрд╣рд┐рдЯреА рдореЙрдирд┐рдЯрд░реНрд╕) рдЖрднрд╛рд╕реА рдЖрдгрд┐ ARMv8.0-DGH (рдбреЗрдЯрд╛ рдЧреЛрд│рд╛ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЗрд╢рд╛рд░рд╛). SVE рд╡реЗрдХреНрдЯрд░ рд╕реВрдЪрдирд╛рдВрдордзреНрдпреЗ рдЕрдВрдЧрднреВрдд рдлрдВрдХреНрд╢рдиреНрд╕-рдмрд╛рдЗрдВрдбрд┐рдВрдЧрд╕рд╛рдареА рдХреЛрдб рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХреЗрд▓реА рдЖрд╣реЗ.
  • Cortex-M55, Cortex-A77, Cortex-A78 рдЖрдгрд┐ Cortex-X1 рдкреНрд░реЛрд╕реЗрд╕рд░рд╕рд╛рдареА рд╕рдорд░реНрдерди ARM рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдмреЕрдХрдПрдВрдбрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рд╡рд┐рд╕реНрддрд╛рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ
    Armv8.6-A рдореЕрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрд╛рдХрд╛рд░ рдЖрдгрд┐ RMv8.2-AA32BF16 BFloat16.

  • рдкреЙрд╡рд░рдкреАрд╕реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА POWER10 рдкреНрд░реЛрд╕реЗрд╕рд░рд╕рд╛рдареА рдХреЛрдб рдирд┐рд░реНрдорд┐рддреАрд╕рд╛рдареА рд╕рдорд░реНрдерди рдмреЕрдХрдПрдВрдбрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рд▓реВрдк рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╕рдорд░реНрдерди рд╕реБрдзрд╛рд░рд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ.
  • RISC-V рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдмреЕрдХрдПрдВрдб рдкреЕрдЪреЗрд╕ рд╕реНрд╡реАрдХрд╛рд░рдгреНрдпрд╛рд╕ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ рдЬреЗ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕реВрдЪрдирд╛ рд╕рдВрдЪрд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрддрд╛рдд рдЬреНрдпрд╛рдВрдирд╛ рдЕрджреНрдпрд╛рдк рдЕрдзрд┐рдХреГрддрдкрдгреЗ рдорд╛рдиреНрдпрддрд╛ рджрд┐рд▓реА рдЧреЗрд▓реА рдирд╛рд╣реА.
  • AVR рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдмреЕрдХрдПрдВрдб рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╢реНрд░реЗрдгреАрддреВрди рд╕реНрдерд┐рд░рд╡рд░ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдореВрд▓рднреВрдд рд╡рд┐рддрд░рдгрд╛рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.
  • x86 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдмреЕрдХрдПрдВрдб Intel AMX рдЖрдгрд┐ TSXLDTRK рд╕реВрдЪрдирд╛рдВрдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ. рд╣рд▓реНрд▓реНрдпрд╛рдВрдкрд╛рд╕реВрди рд╕рдВрд░рдХреНрд╖рдг рдЬреЛрдбрд▓реЗ LVI (рд▓реЛрдб рд╡реНрд╣реЕрд▓реНрдпреВ рдЗрдВрдЬреЗрдХреНрд╢рди), рдЖрдгрд┐ рд╕реАрдкреАрдпреВрд╡рд░реАрд▓ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рд╕рдЯреНрдЯреЗрдмрд╛рдЬ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдореБрд│реЗ рд╣реЛрдгрд╛рд░реЗ рд╣рд▓реНрд▓реЗ рд░реЛрдЦрдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдЯреНрдЯрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рд╕рдкреНрд░реЗрд╢рди рдпрдВрддреНрд░рдгрд╛ рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ.
  • SystemZ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдмреЕрдХрдПрдВрдбрдордзреНрдпреЗ, рдореЗрдорд░реА рд╕реЕрдирд┐рдЯрд╛рдпрдЭрд░ рдЖрдгрд┐ рд▓реАрдХ рд╕реЕрдирд┐рдЯрд╛рдпрдЭрд░рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ.
  • Libc++ рдордзреНрдпреЗ рдЧрдгрд┐рддреАрдп рд╕реНрдерд┐рд░рд╛рдВрдХрд╛рдВрд╕рд╣ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдлрд╛рдЗрд▓рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ .
  • рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдПрд▓рдПрд▓рдбреА рд▓рд┐рдВрдХрд░ рдХреНрд╖рдорддрд╛. "--lto-emit-asm", "--lto-рд╕рдВрдкреВрд░реНрдг-рдкреНрд░реЛрдЧреНрд░рд╛рдо-рджреГрд╢реНрдпрддрд╛", "-print-archive-stats", "-shuffle-sections", " рдЬреЛрдбрд▓реЗрд▓реНрдпрд╛ рдкрд░реНрдпрд╛рдпрд╛рдВрд╕рд╣ ELF рдлреЙрд░рдореЕрдЯрд╕рд╛рдареА рд╕реБрдзрд╛рд░рд┐рдд рд╕рдорд░реНрдерди. -рдерд┐рдирд▓реНрдЯреЛ- рд╕рд┐рдВрдЧрд▓-рдореЙрдбреНрдпреВрд▓", "-рдЕрдирдиреНрдп", "-рд░реЛрд╕реЗрдЧрдореЗрдВрдЯ", "-рдереНрд░реЗрдбреНрд╕=рдПрди". рдлрд╛рдИрд▓рдордзреНрдпреЗ рдЯреНрд░реЗрд╕ рд╕реЗрд╡реНрд╣ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА "--time-trace" рдкрд░реНрдпрд╛рдп рдЬреЛрдбрд▓рд╛, рдЬреНрдпрд╛рдЪреЗ рдирдВрддрд░ Chrome рдордзреАрд▓ chrome://tracing рдЗрдВрдЯрд░рдлреЗрд╕рджреНрд╡рд╛рд░реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛