เบซเบผเบฑเบเบเบฒเบเบซเบปเบเปเบเบทเบญเบเบเบญเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒ, เบเบฒเบเบเปเบญเบเปเบเบเบเบฒเบ LLVM 13.0 เปเบเปเบเบทเบเบเปเบฒเบชเบฐเปเบซเบเบต - เบเบธเบเปเบเบทเปเบญเบเบกเบทเบเบตเปเปเบเบปเปเบฒเบเบฑเบเปเบเปเบเบฑเบ GCC (compilers, optimizers เปเบฅเบฐ code generator) เบเบตเปเบฅเบงเบเบฅเบงเบกเบเบฑเบเบเบฒเปเบเบเบเบฒเบเปเบเบปเปเบฒเปเบเปเบ bitcode เบฅเบฐเบเบฑเบเบเบฒเบเบเบฒเบเบเบญเบเบเปเบฒเปเบเบฐเบเปเบฒ virtual เบเปเบฒเบเบเบท RISC (เปเบเบทเปเบญเบ virtual เบฅเบฐเบเบฑเบเบเปเปเบฒเบเบตเปเบกเบต a. เบฅเบฐเบเบปเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบซเบผเบฒเบเบฅเบฐเบเบฑเบ). เบฅเบฐเบซเบฑเบ pseudocode เบเบตเปเบชเปเบฒเบเบเบถเปเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฝเบเปเบเบเปเบเปเบเบปเบงเบชเบฑเบเบฅเบงเบก JIT เปเบเบปเปเบฒเปเบเปเบเบเปเบฒเปเบเบฐเบเปเบฒเบเบญเบเปเบเบทเปเบญเบเบเบฑเบเปเบเบเบเบปเบเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเปเบเบตเบเปเบเบเบเบฒเบ.
เบเบฒเบเบเบฑเบเบเบธเบเปเบ Clang 13.0:
- เบเบฐเบเบดเบเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเปเบเบซเบฒเบเบเบตเปเบฎเบฑเบเบเบฐเบเบฑเบ (เบเบฒเบเปเบเบซเบฒ subroutine เปเบเบเบญเบเบเปเบฒเบเบเบญเบเบเบฒเบเบเปเบฒเบเบฒเบ, เบเบฐเบเบญเบเปเบเบฑเบ recursion เบซเบฒเบเบเปเบฒเบซเบฒเบเบงเปเบฒ subroutine เปเบเบซเบฒเบเบปเบงเบกเบฑเบเปเบญเบ). เบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเปเบเบซเบฒเบเบเบตเปเบฎเบฑเบเบเบฐเบเบฑเบเปเบกเปเบเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ "[[clang::musttail]]" เปเบ C++ เปเบฅเบฐ "__attribute__((musttail))" เปเบ C, เปเบเปเปเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบ "เบเบฑเบเบเบทเบ". เบเบธเบเบเบฐเบชเบปเบกเบเบฑเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบเบเบเบฒเบเบเปเบฒเปเบเปเบฅเบฐเบซเบฑเบเปเบเบปเปเบฒเปเบเปเบ iteration เบฎเบฒเบเบเบฝเบเปเบเบทเปเบญเบเปเบงเบเบเบฐเบขเบฑเบเบเบฒเบเบเปเบฅเบดเปเบเบ stack.
- "เบเบฒเบโเบเปเบฒโเปเบเปโ" เบเบฒเบโเบเบฐโเบเบฒเบโเปเบฅเบฐโเบเบฒเบโเบเบฐโเบซเบเบฒเบ clang เบชเบฐโเบซเบเบญเบโเบเบฒเบโเบชเบฐโเบซเบเบฑเบโเบชเบฐโเบซเบเบนเบโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบเปเบฒโเบเบปเบโเบเบธเบโเบฅเบฑเบโเบชเบฐโเบเบฐโเปเบเบ C++ 11 เบเบฒเบโเบเปเบฒโเปเบเปโเบฎเบนเบโเปเบเบ "[[]]โ"โ.
- เปเบเบตเปเบกเบเบธเบ "-Wreserved-identifier" เปเบเบทเปเบญเบชเบฐเปเบเบเบเปเบฒเปเบเบทเบญเบเปเบกเบทเปเบญเบเปเบฒเบเบฅเบฐเบเบธเบเบปเบงเบฅเบฐเบเบธเบเบตเปเบชเบฐเบซเบเบงเบเปเบงเปเปเบเบฅเบฐเบซเบฑเบเบเบนเปเปเบเป.
- เปเบเบตเปเบก "-Wunused-but-set-parameter" เปเบฅเบฐ "-Wunused-but-set-variable" เบเบธเบเปเบเบทเปเบญเบชเบฐเปเบเบเบเปเบฒเปเบเบทเบญเบเบเปเบฒเบเบฒเบฅเบฒเบกเบดเปเบเบตเบซเบผเบทเบเบปเบงเปเบเบเบทเบเบเบฑเปเบเปเบเปเบเปเปเปเบเปเปเบเป.
- เปเบเบตเปเบกเบเบธเบ "-Wnull-pointer-subtraction" เปเบเบทเปเบญเบญเบญเบเบเปเบฒเปเบเบทเบญเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบฅเบฐเบซเบฑเบเบญเบฒเบเบเบฐเปเบเบฐเบเปเบฒเบเบถเบเบเบดเบเปเบฒเบเบตเปเบเปเปเปเบเปเบเปเบฒเบเบปเบเปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเบเปเบฒเปเบเปเบเบปเบงเบเบตเป null เปเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฒเบเบฅเบปเบ.
- เปเบเบตเปเบกเบเบธเบ "-fstack-usage" เปเบเบทเปเบญเบชเปเบฒเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเปเบเบฅเปเบฅเบฐเบซเบฑเบเปเบเบฑเบเปเบเบฅเป ".su" เปเบเบตเปเบกเปเบเบตเบกเบเบตเปเบกเบตเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเบฐเบซเบเบฒเบเบเบญเบ stack frames เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบซเบเปเบฒเบเบตเปเบเปเบฒเบเบปเบเปเบเปเบเบฅเปเบเบตเปเบเปเบฒเบฅเบฑเบเบเปเบฒเปเบเบตเบเบเบฒเบ.
- เบเบฐเปเบเบเบเบปเบเบเบฐเบฅเบดเบเปเบซเบกเปเปเบเปเบเบทเบเปเบเบตเปเบกเปเบเบปเปเบฒเปเบเปเบเบทเปเบญเบเบงเบดเปเบเบฒเบฐเบชเบฐเบเบดเบ - "sarif-html", เปเบเบดเปเบเบเปเบฒเปเบเบชเบนเปเบเบฒเบเบชเปเบฒเบเบเบปเบเบฅเบฒเบเบเบฒเบเบเปเบญเบกเปเบเบฑเบเปเบเบฎเบนเบเปเบเบ HTML เปเบฅเบฐ Sarif. เปเบเบตเปเบกเบเบฒเบเบเบงเบเบชเบญเบ allocClassWithName เปเปเป. เปเบกเบทเปเบญเบฅเบฐเบเบธเบเบปเบงเปเบฅเบทเบญเบ "-analyzer-display-progress", เปเบงเบฅเบฒเบเบฒเบเบงเบดเปเบเบฒเบฐเบเบญเบเปเบเปเบฅเบฐเบเบฑเบเบเบฑเบเบเบฐเบชเบฐเปเบเบ. เปเบเบทเปเบญเบเบงเบดเปเบเบฒเบฐเบเบปเบงเบเบตเปเบญเบฑเบเบชเบฐเบฅเบดเบเบฐ (alpha.cplusplus.SmartPtr) เปเบเบทเบญเบเบเปเบญเบกเปเบฅเปเบง.
- เบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ OpenCL เปเบเปเบเบทเบเบเบฐเบซเบเบฒเบเบญเบญเบ. เปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเบชเปเบงเบเบเบฐเบซเบเบฒเบเปเบซเบกเป cl_khr_integer_dot_product, cl_khr_extended_bit_ops, __cl_clang_bitfields เปเบฅเบฐ __cl_clang_non_portable_kernel_param_types. เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเปเปเบเปเบฒเบเบปเบ OpenCL 3.0 เปเบเปเบชเบทเบเบเปเป. เบชเบณเบฅเบฑเบ C, เบชเบฐเปเบเบฒเบฐ OpenCL 1.2 เปเบกเปเบเปเบเปเบเบฒเบกเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ เปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒเบฅเบธเปเบเบญเบทเปเบเบเบทเบเปเบฅเบทเบญเบเบขเปเบฒเบเบเบฐเปเบเปเบ. เบชเปเบฒเบฅเบฑเบ C++, เบเบฒเบเบฎเบญเบเบฎเบฑเบเปเบเบฅเปเบเบตเปเบกเบตเบเบฒเบกเบชเบฐเบเบธเบ โ.clcppโ เปเบเปเบเบทเบเปเบเบตเปเบก.
- เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเปเบฒเบชเบฑเปเบเบเบฒเบเบซเบฑเบเปเบเบฑเบ loop ("#pragma omp unrol" เปเบฅเบฐ "#pragma omp tile") เบเบตเปเบเปเบฒเบเบปเบเปเบงเปเปเบ OpenMP 5.1 เบชเบฐเปเบเบฒเบฐเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบ.
- เบเบฒเบเปเบฅเบทเบญเบเบเบตเปเปเบเบตเปเบกเปเบเบปเปเบฒเปเบเบเบฒเบเบเปเบฒเปเบเปเบฎเบนเบเปเบเบ clang: SpacesInLineCommentPrefix เปเบเบทเปเบญเบเปเบฒเบเบปเบเบเปเบฒเบเบงเบเบเปเบญเบเบเปเบญเบเบเปเบฒเปเบซเบฑเบ, IndentAccessModifiers, LambdaBodyIndentation เปเบฅเบฐ PPIndentWidth เปเบเบทเปเบญเบเบงเบเบเบธเบกเบเบฒเบเบเบฑเบเบฅเบฝเบเบเบญเบเบฅเบฒเบเบเบฒเบ, เบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบญเบ lambda เปเบฅเบฐเบเปเบฒเบชเบฑเปเบ preprocessor. เบเบงเบฒเบกโเปเบเบฑเบโเปเบโเปเบเปโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบเบฑเบโเบฅเบฝเบโเบฅเปเบฒโเบเบฑเบโเบเบญเบโเปเบเบฅโเป header (SortIncludesโ) เปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบฐโเบซเบเบฒเบโ. เปเบเบตเปเบกเบเบฒเบเบฎเบญเบเบฎเบฑเบเบเบฒเบเบเบฑเบเบฎเบนเบเปเบเบเปเบเบฅเป JSON.
- เบชเปเบงเบเปเบซเบเปเบเบญเบเบเบฒเบเบเบงเบเบชเบญเบเปเบซเบกเปเปเบเปเบเบทเบเปเบเบตเปเบกเปเบเบปเปเบฒเปเบ linter clang-tidy.
เบเบฐเบงเบฑเบเบเบฐเบเปเบฒเบซเบผเบฑเบเปเบ LLVM 13.0:
- เปเบเปเปเบเบตเปเบกเบเบฒเบเปเบฅเบทเบญเบ โ-ehcontguardโ เปเบเบทเปเบญเปเบเปเปเบเบเปเบเปเบฅเบเบต CET (Windows Control-flow Enforcement Technology) เปเบเบทเปเบญเบเปเบญเบเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบนเบเบฎเบตเบเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบเปเบเปเปเบเบฑเบเบเบดเบ Return-Oriented Programming (ROP) เปเบเบเบฑเปเบเบเบญเบเบเบฒเบเบเบฑเบเบเบฒเบเบเปเปเบเบปเบเปเบงเบฑเปเบ.
- เปเบเบเบเบฒเบ debuginfo-test เปเบเปเบเบทเบเบเปเบฝเบเบเบทเปเปเบเบฑเบ cross-project-tests เปเบฅเบฐเบเบทเบเบญเบญเบเปเบเบเบกเบฒเปเบเบทเปเบญเบเบปเบเบชเบญเบเบญเบปเบเบเบฐเบเบญเบเบเบฒเบเปเบเบเบเบฒเบเบเปเบฒเบเป, เบเปเปเบเปเบฒเบเบฑเบเบเปเปเบกเบนเบเบเบฒเบเบเบตเบเบฑเบ.
- เบฅเบฐเบเบปเบเบเบฒเบเบเบฐเบเบญเบเบเบฒเบเบชเบฐเบซเบเบญเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบฒเบเปเบเบเบขเบฒเบเบซเบผเบฒเบ, เบเบปเบงเบขเปเบฒเบ, เบซเบเบถเปเบเบเบตเปเบกเบตเปเบเบทเปเบญเบเปเบเป, เปเบฅเบฐเบญเบตเบเบญเบฑเบเบซเบเบถเปเบเบกเบตเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒ.
- เปเบเบเปเบฒเบเบซเบผเบฑเบเบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒ AArch64, เบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเบฐเบซเบเบฒเบ Armv9-A RME (Realm Management Extension) เปเบฅเบฐ SME (Scalable Matrix Extension) เปเบกเปเบเบเบฐเบเบดเบเบฑเบเบขเบนเปเปเบเบเบปเบงเบเบฐเบเบญเบ.
- เบเบฒเบเบฎเบญเบเบฎเบฑเบ ISA V68/HVX เปเบเปเบเบทเบเปเบเบตเปเบกเปเบชเป backend เบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒ Hexagon.
- x86 backend เปเบเปเบเบฑเบเบเบธเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเปเบเปเบเบเปเบเบต AMD Zen 3.
- เปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบ GFX1013 RDNA2 APU เบเบฑเบ AMDGPU backend.
- Libc++ เบชเบทเบเบเปเปเบเบฐเบเบดเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเปเบซเบกเปเบเบญเบเบกเบฒเบเบเบฐเบเบฒเบ C ++20 เปเบฅเบฐ C ++2b, เบฅเบงเบกเบเบฑเบเบเบฒเบเบชเปเบฒเปเบฅเบฑเบเบเบญเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ "เปเบเบงเบเบงเบฒเบกเบเบดเบ". เปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบ std::filesystem เบชเปเบฒเบฅเบฑเบเปเบงเบเบต Windows เบเบตเปเบญเบตเบเปเบชเป MinGW. เปเบเบเปเบเบฅเปเบชเปเบงเบเบซเบปเบงเปเบฅเปเบง , เปเบฅเบฐ . เปเบเบตเปเบกเบเบปเบงเปเบฅเบทเบญเบเบเบฒเบเบเปเปเบชเปเบฒเบ LIBCXX_ENABLE_INCOMPLETE_FEATURES เปเบเบทเปเบญเบเบดเบเบเบฒเบเปเบเปเบเบฒเบเปเบเบฅเปเบชเปเบงเบเบซเบปเบงเบเบตเปเบเปเปเปเบเปเบเบฐเบเบดเบเบฑเบเบขเปเบฒเบเปเบเบฑเบกเบชเปเบงเบ.
- เบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบญเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเป LLD เปเบเปเบเบทเบเบเบฐเบซเบเบฒเบเบญเบญเบ, เปเบเบดเปเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเปเบเปเบเบเปเบเบต Big-endian Aarch64 เปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบ, เปเบฅเบฐ backend Mach-O เปเบเปเบเบทเบเบเปเบฒเปเบเบชเบนเปเบชเบฐเบเบฒเบเบฐเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเบทเปเบญเบกเบเปเปเปเบเบเบเบฒเบเบเบปเบเบเบฐเบเบด. เบฅเบงเบกเบกเบตเบเบฒเบเบเบฑเบเบเบธเบเบเบตเปเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเปเบเบทเปเบญเบกเบเปเป Glibc เปเบเบเปเบเป LLD.
- เบเบปเบเบเบฐเปเบซเบเบเบเบญเบ llvm-mca (เปเบเบทเปเบญเบเบงเบดเปเบเบฒเบฐเบฅเบฐเบซเบฑเบเปเบเบทเปเบญเบเบเบฑเบ) เปเบเปเปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเปเบเปเบเบเปเบเบตเบเบตเปเบเบฐเบเบดเบเบฑเบเบเปเบฒเปเบเบฐเบเปเบฒเบเบฒเบกเบฅเปเบฒเบเบฑเบ (เบเปเป superscalar เปเบเบเปเบฒเบชเบฑเปเบ), เปเบเบฑเปเบ ARM Cortex-A55.
- LLDB debugger เบชเปเบฒเบฅเบฑเบเปเบเบฅเบฐเบเบฐเบเบญเบก AArch64 เบชเบฐเบซเบเบญเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบขเปเบฒเบเปเบเบฑเบกเบเบตเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบชเบนเบเบขเบทเบเบขเบฑเบเบเบปเบงเบเบตเป, MTE (MemTag, Memory Tagging Extension) เปเบฅเบฐ SVE registers. เบเปเบฒเบชเบฑเปเบเปเบเบตเปเบกเปเบเบตเบกเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบนเบเบกเบฑเบ tags เบเบฑเบเปเบเปเบฅเบฐเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฑเบเบชเบฑเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบฅเบฐเบเบฑเบเบเบฑเปเบเบเบฒเบเบเบงเบเบชเบญเบเบเบปเบงเบเบตเปเปเบเปเบงเบฅเบฒเบเบตเปเปเบเบปเปเบฒเปเบเบดเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ, เปเบเบดเปเบเบเปเบญเบเบเปเบฝเบงเบเปเบญเบเบเบฑเบเปเบเบฑเบเบเบตเปเบเบทเบเบเปเบญเบ.
- Debugger LLDB เปเบฅเบฐ frontend เบชเปเบฒเบฅเบฑเบเบเบฒเบชเบฒ Fortran - Flang เปเบเปเบเบทเบเปเบเบตเปเบกเปเบเบปเปเบฒเปเบเบเบฒเบเบเบฐเบเบญเบ binary เบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบเปเบเบเบเบฒเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru