αααααΆααααΈααΆαα’αα·ααααααααααααααΆααα½ααα LLVM 22.1.0 ααααΌαααΆαα ααααααΆαα ααΆαααααΎαα§ααααα (αααααα·ααΈα ααααα αααααα·ααΈαααααΎαααααα·αααααΆα αα·ααααααα·ααΈαααααΎαααΌα) αααα ααααααααααα·ααΈαα ααΆαααΈαααΌαααααα·ααααααααααΆαααααΆααα·αααα·αααΌα RISC (αααΆαααΈααα·αααα·αααααα·αααΆααααααΆααααααααααααααΎαααααα·αααααΆαα αααΎαααααα·α)α pseudocode αααααΆααααααΎαα’αΆα ααααΌαααΆααααααααα ααΆαααααΌααααΆαααΈααααααΆαααααα·ααΆααααα αααααΆααααααα±αα α¬ααααΎααααααααα·ααΈα ααααα just-in-time (JIT) ααΎααααΈαααααΎαααΆαααααΆααααΆαααΈααααααααΆαααααα»αα’αα‘α»ααααααααα·ααααα·αααααα·ααΈα αααααα’ααααΎαα αα αααα·ααααΆ LLVM ααααααααααααα»αα’αα·αααααααααα·ααΈα ααααα Clang αααααΆααααααΆααΆααααααααααα·ααΈ C, C++ αα·α Objective-Cα αααα αΆααααααΎαααΆαα½αααΆααΆ 18.x αααααααααααΆαααααΌααα αααααααΆαααααααααααααααααΈ αααααααα ααΆαααΆαα ααααααΆα 0 ("N.0") ααααΌαααΆαααααΎαααα»αα’αα‘α»ααααα’αα·αααααα α αΎααααααααααααΆαααααΌαααααΌαααΆαααΆααααα "N.1"α
ααΆααααααα’αα αααα»α Clang 22 αα½αααΆα:
- ααΆαααααααααΆαααΆαααααααααΆααααΌααΉααααα ααα’αααα αα αΆα (Allocation Tokens) αααααΆαααααααΆααααααα·ααααα·ααΆααααα ααα’αααα αα αΆααααααΆαα’αα»αααααααααααΎαα»αααΆαααΌα ααΆ malloc ααΆαα½αααΉαα§ααααααααααα’ααααααααΆααααα½ααααα ααΌααΉααααα ααα’αα»ααααΆαα±ααααΆαααΆααααα ααα ααΆααααααααααααααΆαα ααΆα ααααΎα±ααααΆαααααΎαααΆαααα ααααΆαα’αααα αα αΆαααΆαααΆαααΆαααα αα·αα’αα»ααααΆαα±ααααΆαααΆαααΆααααΆαααα»αααααααα»αααααα’ααααΎααααααα α¬ααααΌααααααααααααΆ (α§ααΆα ααα ααΆαααααααα·αααααα "αααα " ααΈ "αααααΆαα")α ααΎααααΈααΎαααααΎαααΆα ααΌαααααΎααα "-fsanitize=alloc-token"α
- αααααααα·αααααΆααααααΉαααΆααΆ Cα
- ααα ααααΈααααΆαβααΆαβαααααΆααβαααβαααααβααααααΆαβααααα·ααααα·βαααβαααααΆαααα "defer" ααααΌαβααΆαβα’αα»αααα αααβα’αα»ααααΆαβα±ααβαααααααΆαβααααΌαβααΆαβααααα·ααααα·βαα βαααβαααβαα·ααΆαααΆαβαα αα α»ααααααβα αΆαα ααα ααα "-fdefer-ts" ααααΌαβααΆαβααααααβααΎααααΈβααΎαβααΆαβααΆαααα "defer"α
- α’αα»ααααβαααβααααΆααβααβααΆαα½α __builtin_stack_address() ααααΌαβααΆαβαααααα αααβαααα»αβαααα αΆααβα’αα»ααααβααααααβααααΆβαα βαααα»α GCCα α’αα»ααααβαααβαααα‘ααβα’αΆααααααΆαβαααβαααβαααααβαααααβαααβααβα’αα»ααααβαα αα α»ααααααβαααβα α βααΆ __builtin_stack_address() αα·αβα’αα»ααααβααααβαααααΆααβαααβααΆβα α α
- αααααααΆααααα»αααααΌαααΆααααααΎαα‘αΎααααααΆαααααααααΆα C2y ααΆαααα’ααΆααα
- ααΆαααααααααΆαααΆαααααααααΆααααααα·ααα»ααααααΆαααααα αααα’αα»ααααΆαα±ααα’ααααααααααααααα ααααα·ααα»α αα·αααα ααααΈαααααααΆααα switch αααα’αΆα ααααΌαααΆααααααΆαααα αααα»αααα ααααΈαααααααΆααα break αα·α continue ααΎααααΈαααααααααα·ααα»ααααααααΌαα ααααΈα outer: for (int i = 0; i < IK; ++ i) { for (int j = 0; j < JK; ++ j) { continue; // go to CONT1 continue outer; // go to CONT2 // CONT1 } // CONT2 }
- ααΆαα’αα»αααααααΆααααΌ "__COUNTER__" αααααααΆααααααΆαα½α αααααααΌαααΆααα ααΆα‘αΎαααΎααααΈαααααΎααααααα§ααααααααααα’ααααααααΆααααα½αααα ααααΌαααΆααααααΈα αα·ααα½ααααα αΌααα αααα»ααααααααΆαα ααααααααααααΆαα α ααΌαααααα ααα½α 2147483647 αα ααΆαααααΆααααΌαααααααΌαααΆααααααα ααΆαααΎαααΈαααααααααααααΉααααααΎαααα α»αα
- ααΆααα»αααΆααααααΆα (-Wstatic-in-in-in) αα αααααααΎα’αα»αααααα·αα·αααα α¬α’ααααα ααΆααααα»αα’αα»αααααααααΆααααααΆαααΆ "external inline"α
- αααααααΆααααααΆαααααααααα»ααααααααΆα C23 Cα
- α―αααΆαααααααΆ float.h α₯α‘αΌααααααΆαααααααΆααααΌ FLT_SNAN, DBL_SNAN αα·α LDBL_SNAN αααα’αα»ααααααααα NaN αααααΆαα α»αα αααααααΆ (αααααΆαα±ααααΆαααααΈααΎαααααα αααααααΎαααα»αααααα·ααααα·ααΆαααααααα) αααααΆαααααααα float, double αα·α long doubleα
- ααΆααα½ααα»αααα α»ααααααααααααααα·ααααα αααααααααααααααααΆααααΌαααΆαα αΆαααα»αααΆααααααΆαα αααα»αα―αααΆααααααααΌα ααααΆ ααααα·αααΎαα½αααΆααΆαααΆαααΌα ααααΆα
- ααα "-MG" αααααααΎααΎααααΈαα·αα’αΎααΎα―αααΆαααααααΆαααααΆαααααα»αα’αα‘α»αααααααααααΆαα’αΆαααααααααΌαααΆααααααΈααα ααΆαααααΆα "#embed" α αΎαα₯α‘αΌαααααααααααΆααααα α»α "αααα·αααΎαα―αααΆα" αα ααααααα―αααΆααααααΆααααααΆαααα αααα»αααΆαααααΆα "#embed" ααΆααα
- ααααααβαα·αααβααΆααααβααΉα C ++α
- αααααααΆααααα»αααΆαααααΎααααΆααααΆαα ααααααΆααα ααΆαααααααααα αααα»αααα·αα "constexpr" ααΌα αααααΆααααααΎαα‘αΎααα αααα»αααΆααααααΆαα C++ 2c (C++ 26) ααααΌαααΆαααααααα αααααΆααααααΆ α―αααΆαααααα ααΎαααααααααα₯α‘αΌααααα’αΆα ααΆαααααααααα ααΆαααΆααααααααΌαααΆαα’αα»αααααααααΆααα’αΆαα αα·ααα ααΆααααααααααΆαααα (tuples αα·αααΆααααααΌαααΆαααΆαααααα α‘αΎααα)α constexpr int arr[] = {1, 2}; constexpr auto [x, y] = arr;
- ααΌα ααααααααΌαααααααααααΆα C++20 α₯α‘αΌαααα ααΆαααΉααααααΉαααααΌαααΆααααααααα ααΆαααααααααααααΆααα»ααααααααΌαααΆααααα½ααα·αα·ααα αααα’αα»ααααΆαα±ααααΆαααΆααα·αα·α ααααααΆααααααααΉαααααΌα αα·αααΆααααααααααααα α»ααααα½ααα αααα»αα’αΆαα»αααααααααΌαααααααΎαααα αααα»α concept-ids ααα»αααααα
- ααΆααααααααααα»ααααα½ααΆαααα’αα»αααααααααααΆααααααΆαα½α "__builtin_[lt|gt|le|ge]_synthesizes_from_spaceship" ααΎααααΈααααααααααΆααΎααααα·ααααα·αααααααααα "<", ">", "<=", αα·α ">=" ααααΌαααΆααααααααΈααααα·ααααα·αα "<=>" αααα¬ααα
- αααΆαααΆαααααα "-Wincompatible-pointer-types" ααααΌαααΆαααααΆααααααΌαααΎααααΈαααα αΆαααα α»ααααα½αα±ααααΆααααααΆαα ααΎααααΈαααα‘αααα α₯αα·ααΆαααα»α ααΌαααααΎαααααΎα "-Wno-error=incompatible-pointer-types"α
- ααΆααααααααα»αααΆααααααααΆααααααΆαα½α __builtin_bswapg, __builtin_elementwise_ldex, __builtin_elementwise_fshl, __builtin_elementwise_fshr, __builtin_elementwise_minnumnum, __builtin_elementwise_maxnumnum, __builtin_masked_load, __builtin_masked_expand_load, __builtin_masked_store, __builtin_masked_compress_store, __builtin_masked_gather, __builtin_masked_scatter, αα·α __builtin_dedup_packα α§ααΆα ααα builtin_dedup_pack α’αα»ααααΆαα±ααα’ααααα»ααααα½αα ααααΈαααααΈααααααα αααααααΎ MyTypeList = TypeList<__builtin_dedup_pack β¦>; // ααααααααααααααΉαααΆ TypeList
- αα αααβααααΆααααα α»αβα₯αα·ααΆααβααααα·αααΆααααααβααΆαα½α UBSan (-fsanitize=undefined -fsanitize-trap=undefined) ααααααΆαααΌαα ααα»ααααα α»αα₯α‘αΌααααααααΌαααΆααα½ααααα αΌααα αααα»αααααααΆαααααΆααααα α»ααααααΆααααααΎαα ααα "-fsanitize-debug-trap-reasons" ααααΌαααΆαααααααααΎααααΈαααααΆααααααα·αααααααααΆααααα’α·ααα αααα»αααααααΆαααα α»αα ααΆα’αΆα ααααΌαααΆαααααααα "ααΌαααααΆα" αααααΆααααΆααα·αααααΆααΌαα (α§ααΆα ααα "ααΆαααΌαα ααα½ααααααΎαα ααα»α") αα·α "αααα’α·α" ααΎααααΈαα½ααααα αΌαααααααΆααααα’α·α (α§ααΆα ααα "ααΆαααΌαα ααα½ααααααΎαα ααα»ααααααΆαα αααααααΆαααα»α 'a + b'")α
- ααΆααααααααααα’αααα
αααααααααΈα
- "-f[no-]sanitize-debug-trap-reasons" ααΎααααΈαααααααααααΆααΎα ααα»ααααα’ααααΆααααααΈααΎααααααααΌαααΆααααααααα αααα»αααααααΆαααααΆααααα α»αα¬α’αα αα αααα αααααααΆαα½ααααα "-fsanitize-trap"α
- "-fsanitize=alloc-token", "-falloc-token-max", "-fsanitize-alloc-token-fast-abi", αα·α "-fsanitize-alloc-token-extended" ααΎααααΈαααααααααβααΌααΉαβαααα ααβα’αααα αα αΆαα
- "-fmatrix-memory-layout" ααΎααααΈααααααααααααααα’αααα αα αΆααααααααααααΆααααΈα (α§ααΆα ααα column-major αααααΆαα column-major, row-major αααααΆαα row-major)α
- α₯α‘αΌαααα α’αα»ααααααΆααα»ααααααα "malloc_span" ααααααααΉααα»ααααααα malloc ααα»ααααα’αΆα α’αα»ααααααΆαα ααααα’αα»ααααααααααα‘αααα ααΆααααααααααΌα span αααααΆαααααα·α αα·αααΆααααααΆαααα α α¬ααααα·α αα α α»ααααα αααααααα»αα
- ααΆααααααααα»ααααααα "modular_format" ααΎααααΈααααΎαααΎαααΆαα’αα»αααααααααααΆααααΆααα·αα·αααααααααααΌαααΆαααα’αα»αααα printf αα αααααααΆααα
- α§ααααααα·ααΆαααααα·αα·α αααα αα·ααα·αα·ααααααααΌαααΆααααααΈα ααΆααααα½ααα·αα·αααααααΈααααΌαααΆααααααα (ααΆααααααα’ααΆααααααΉαααααα·αα·α ααααααΆα αααΎα)α
- α’αααβααααααβαααααΆααβαααααβαααααα SSE, AVX αα·α AVX512 ααααΌαβααΆαβααααααβαα βαααα»αβαααααα·ααΈβααΆαααααα X86α ααααβαααααΎαβααααΌαβααΆαβααααααβαααααΆαα CPU Intel αααβααα’ααβααΎβααΈααααΌβααααΆαααααααα Wildcat Lake (-march=wildcatlake) αα·α Nova Lake (-march=novalake)α
- α₯α‘αΌαααα αααααα·ααΈααΆαααααα AArch64 ααΆαααααααααααααααααααΎαααΆα Ampere Computing Ampere1C (ampere1c), Arm C1-Nano (c1-nano), Arm C1-Pro (c1-pro), Arm C1-Premium (c1-premium) αα·α Arm C1-Ultra (c1-ultra)α αα»αααΆααααααααααααααΆααααααΆαα½αααααΌαααΆααααααααααααΆααααΆαααααΆα FCVTZ[US], FCVTN[US], FCVTM[US], FCVTP[US] αα·α FCVTA[US]α ααΆαααΆαααααα»αααΆααα α»αααα (FMV) ααααΌαααΆαααααΎα±ααααΆαααΆααααα·ααααααα α₯α‘αΌααααα’αααααααΎααααΆααα’αΆα αααα½αα’αΆαα·ααΆααααααααα»αααΆαααααααααααΆα
- ααΆαααααααααΆαααΆαααααααααΆααααααΆαααααααα LoongArch32 (LA32R, LA32S)α
- αααααααΆααααααααααααααΎαα‘αΎααααααΆααααααΆαααααααα ARM, AMDGPU, RISC-V, LoongArch64, MIPS, WebAssembly αα·α PowerPCα
ααααα: opennet.ru
