LLVM 11.0 ಕಂಪೈಲರ್ ಸೂಟ್‌ನ ಬಿಡುಗಡೆ

ಆರು ತಿಂಗಳ ಅಭಿವೃದ್ಧಿಯ ನಂತರ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ ಯೋಜನೆಯ ಬಿಡುಗಡೆ LLVM 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" - ಪೂರ್ಣಾಂಕ ಪ್ರಕಾರಕ್ಕೆ ನೈಜ ಸ್ಥಿರಾಂಕದ ಸೂಚ್ಯ ಪರಿವರ್ತನೆಯ ಬಗ್ಗೆ ಪೂರ್ವನಿಯೋಜಿತ ಎಚ್ಚರಿಕೆಯಿಂದ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.
  • ARM ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಾಗಿ, ಕಂಪೈಲರ್‌ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ C ಕಾರ್ಯಗಳನ್ನು ಒದಗಿಸಲಾಗಿದೆ (ಅಂತರ್ಗತಗಳು), ಸಮರ್ಥ ವೆಕ್ಟರ್ ಸೂಚನೆಗಳಿಂದ ಬದಲಾಯಿಸಲಾಗಿದೆ ಆರ್ಮ್ 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={ನಿರ್ಲಕ್ಷಿಸಿ, ಮೈಟ್ರಾಪ್, ಕಟ್ಟುನಿಟ್ಟಾದ}" - ಫ್ಲೋಟಿಂಗ್ ಪಾಯಿಂಟ್ ಸಂಖ್ಯೆಗಳಿಗಾಗಿ ವಿನಾಯಿತಿ ಹ್ಯಾಂಡ್ಲರ್ ಮೋಡ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
    • "-ffp-model={precise,strict,fast}" - ಫ್ಲೋಟಿಂಗ್ ಪಾಯಿಂಟ್ ಸಂಖ್ಯೆಗಳಿಗೆ ವಿಶೇಷವಾದ ಆಯ್ಕೆಗಳ ಸರಣಿಗೆ ಪ್ರವೇಶವನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ.
    • "-fpch-codegen" ಮತ್ತು "-fpch-debuginfo" ಕೋಡ್ ಮತ್ತು 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=" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಬಳಸಬಹುದು.
  • ಡೀಫಾಲ್ಟ್ C ಭಾಷಾ ಮಾನದಂಡವನ್ನು gnu11 ರಿಂದ gnu17 ಗೆ ನವೀಕರಿಸಲಾಗಿದೆ.
  • GNU C ವಿಸ್ತರಣೆಗೆ ಪ್ರಾಥಮಿಕ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ "asm ಇನ್ಲೈನ್» ಅಸೆಂಬ್ಲರ್ ಒಳಸೇರಿಸುವಿಕೆಯನ್ನು ಸೇರಿಸಲು. ವಿಸ್ತರಣೆಯನ್ನು ಇನ್ನೂ ವಿಶ್ಲೇಷಿಸಲಾಗುತ್ತಿದೆ, ಆದರೆ ಯಾವುದೇ ರೀತಿಯಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗಿಲ್ಲ.
  • OpenCL ಮತ್ತು CUDA ಬೆಂಬಲದೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ. OpenCL 2.0 ಬ್ಲಾಕ್ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ಸ್‌ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ ಮತ್ತು ಹೊಸ OpenMP 5.0 ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ.
  • ಬಾಹ್ಯ "C" ಮತ್ತು ಎಕ್ಸ್‌ಟರ್ನ್ "C++" ಬ್ಲಾಕ್‌ಗಳೊಳಗೆ ಜೋಡಣೆಗಾಗಿ ಕ್ಲಾಂಗ್-ಫಾರ್ಮ್ಯಾಟ್ ಉಪಯುಕ್ತತೆಗೆ IndentExternBlock ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಸ್ಥಿರ ವಿಶ್ಲೇಷಕವು C++ ನಲ್ಲಿ ಆನುವಂಶಿಕ ಕನ್‌ಸ್ಟ್ರಕ್ಟರ್‌ಗಳ ನಿರ್ವಹಣೆಯನ್ನು ಸುಧಾರಿಸಿದೆ. ಲಾಕ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು alpha.core.C11Lock ಮತ್ತು alpha.fuchsia.Lock ಹೊಸ ಚೆಕ್‌ಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ, putenv, webkit.NoUncountedMemberChecker ಮತ್ತು ವೆಬ್‌ಕಿಟ್ .cplusplus .SmartPtr ಶೂನ್ಯ ಸ್ಮಾರ್ಟ್ ಪಾಯಿಂಟರ್ ಡೆರೆಫರೆನ್ಸ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು.
  • ಲಿಂಟರ್ ಖಣಿಲು-ಅಚ್ಚುಕಟ್ಟಾದ ರಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ ಹೊಸ ಚೆಕ್‌ಗಳ ದೊಡ್ಡ ಭಾಗ.
  • ಕ್ಲಾಂಗ್ಡ್ ಕ್ಯಾಶಿಂಗ್ ಸರ್ವರ್ (ಕ್ಲ್ಯಾಂಗ್ ಸರ್ವರ್) ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಿದೆ ಮತ್ತು ಹೊಸ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಸೇರಿಸಿದೆ.

ಮುಖ್ಯ ನಾವೀನ್ಯತೆಗಳು LLVM 11.0:

  • ನಿರ್ಮಾಣ ವ್ಯವಸ್ಥೆಯನ್ನು ಪೈಥಾನ್ 3 ಅನ್ನು ಬಳಸಲು ಬದಲಾಯಿಸಲಾಗಿದೆ. ಪೈಥಾನ್ 3 ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ, ಪೈಥಾನ್ 2 ಅನ್ನು ಬಳಸಲು ಹಿಂತಿರುಗಲು ಸಾಧ್ಯವಿದೆ.
  • ಗೋ ಭಾಷೆಗೆ (llgo) ಕಂಪೈಲರ್‌ನೊಂದಿಗೆ ಮುಂಭಾಗದ ತುದಿಯನ್ನು ಬಿಡುಗಡೆಯಿಂದ ಹೊರಗಿಡಲಾಗಿದೆ, ಇದನ್ನು ಭವಿಷ್ಯದಲ್ಲಿ ಪುನರ್ರಚಿಸಬಹುದು.
  • ವೆಕ್ಟರ್-ಫಂಕ್ಷನ್-ಅಬಿ-ವೇರಿಯಂಟ್ ಆಟ್ರಿಬ್ಯೂಟ್ ಅನ್ನು ಮಧ್ಯಂತರ ಪ್ರಾತಿನಿಧ್ಯಕ್ಕೆ (IR) ಸೇರಿಸಲಾಗಿದೆ, ಕರೆಗಳನ್ನು ವೆಕ್ಟರೈಸ್ ಮಾಡಲು ಸ್ಕೇಲಾರ್ ಮತ್ತು ವೆಕ್ಟರ್ ಫಂಕ್ಷನ್‌ಗಳ ನಡುವಿನ ಮ್ಯಾಪಿಂಗ್ ಅನ್ನು ವಿವರಿಸಲು. llvm ::VectorType ನಿಂದ ಎರಡು ಪ್ರತ್ಯೇಕ ವೆಕ್ಟರ್ ವಿಧಗಳಿವೆ llvm :: FixedVectorType ಮತ್ತು llvm :: ScalableVectorType.
  • ಯುಡಿಎಫ್ ಮೌಲ್ಯಗಳನ್ನು ಆಧರಿಸಿ ಕವಲೊಡೆಯುವುದು ಮತ್ತು ಪ್ರಮಾಣಿತ ಲೈಬ್ರರಿ ಕಾರ್ಯಗಳಿಗೆ 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 ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗೆ ಬ್ಯಾಕೆಂಡ್‌ಗೆ ಸೇರಿಸಲಾಗಿದೆ. ARMv8.2-BF16 (BFloat16) ಮತ್ತು ARMv8.6-A ವಿಸ್ತರಣೆಗಳನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ, ಇದರಲ್ಲಿ RMv8.6-ECV (ವರ್ಧಿತ ಕೌಂಟರ್ ವರ್ಚುವಲೈಸೇಶನ್), ARMv8.6-FGT (ಫೈನ್ ಗ್ರೇನ್ಡ್ ಟ್ರ್ಯಾಪ್ಸ್), ARMv8.6-AMU (ಆಕ್ಟಿವಿಟಿ ಮಾನಿಟರೇಶನ್) ಮತ್ತು ARMv8.0-DGH (ಡೇಟಾ ಸಂಗ್ರಹಣೆ ಸುಳಿವು). SVE ವೆಕ್ಟರ್ ಸೂಚನೆಗಳಿಗೆ ಅಂತರ್ನಿರ್ಮಿತ ಕಾರ್ಯಗಳು-ಬೈಂಡಿಂಗ್‌ಗಳಿಗಾಗಿ ಕೋಡ್ ಅನ್ನು ರಚಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸಲಾಗಿದೆ.
  • ಕಾರ್ಟೆಕ್ಸ್-M55, ಕಾರ್ಟೆಕ್ಸ್-A77, ಕಾರ್ಟೆಕ್ಸ್-A78 ಮತ್ತು ಕಾರ್ಟೆಕ್ಸ್-X1 ಪ್ರೊಸೆಸರ್‌ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ARM ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗೆ ಬ್ಯಾಕೆಂಡ್‌ಗೆ ಸೇರಿಸಲಾಗಿದೆ. ವಿಸ್ತರಣೆಗಳನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ
    Armv8.6-A ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಮಲ್ಟಿಪ್ಲೈ ಮತ್ತು RMv8.2-AA32BF16 BFloat16.

  • POWER10 ಪ್ರೊಸೆಸರ್‌ಗಳಿಗಾಗಿ ಕೋಡ್ ಉತ್ಪಾದನೆಗೆ ಬೆಂಬಲವನ್ನು PowerPC ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಾಗಿ ಬ್ಯಾಕೆಂಡ್‌ಗೆ ಸೇರಿಸಲಾಗಿದೆ. ಲೂಪ್ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ ಮತ್ತು ಫ್ಲೋಟಿಂಗ್ ಪಾಯಿಂಟ್ ಬೆಂಬಲವನ್ನು ಸುಧಾರಿಸಲಾಗಿದೆ.
  • RISC-V ಆರ್ಕಿಟೆಕ್ಚರ್‌ನ ಬ್ಯಾಕೆಂಡ್ ಇನ್ನೂ ಅಧಿಕೃತವಾಗಿ ಅನುಮೋದಿಸದ ಪ್ರಾಯೋಗಿಕ ವಿಸ್ತೃತ ಸೂಚನಾ ಸೆಟ್‌ಗಳನ್ನು ಬೆಂಬಲಿಸುವ ಪ್ಯಾಚ್‌ಗಳ ಸ್ವೀಕಾರವನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
  • AVR ಆರ್ಕಿಟೆಕ್ಚರ್‌ನ ಬ್ಯಾಕೆಂಡ್ ಅನ್ನು ಪ್ರಾಯೋಗಿಕ ವರ್ಗದಿಂದ ಸ್ಥಿರಕ್ಕೆ ವರ್ಗಾಯಿಸಲಾಗಿದೆ, ಮೂಲಭೂತ ವಿತರಣೆಯಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ.
  • x86 ಆರ್ಕಿಟೆಕ್ಚರ್‌ನ ಬ್ಯಾಕೆಂಡ್ ಇಂಟೆಲ್ AMX ಮತ್ತು TSXLDTRK ಸೂಚನೆಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ದಾಳಿಯ ವಿರುದ್ಧ ರಕ್ಷಣೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ ಎಲ್ವಿಐ (ಲೋಡ್ ವ್ಯಾಲ್ಯೂ ಇಂಜೆಕ್ಷನ್), ಮತ್ತು CPU ಮೇಲಿನ ಕಾರ್ಯಾಚರಣೆಗಳ ಊಹಾತ್ಮಕ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯಿಂದ ಉಂಟಾಗುವ ದಾಳಿಗಳನ್ನು ತಡೆಯಲು ಸಾಮಾನ್ಯ ಊಹಾತ್ಮಕ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯ ಅಡ್ಡ ಪರಿಣಾಮ ನಿಗ್ರಹ ಕಾರ್ಯವಿಧಾನವನ್ನು ಸಹ ಅಳವಡಿಸುತ್ತದೆ.
  • SystemZ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಾಗಿ ಬ್ಯಾಕೆಂಡ್‌ನಲ್ಲಿ, MemorySanitizer ಮತ್ತು LeakSanitizer ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • Libc++ ಗೆ ಗಣಿತದ ಸ್ಥಿರಾಂಕಗಳೊಂದಿಗೆ ಹೆಡರ್ ಫೈಲ್‌ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ .
  • ವಿಸ್ತರಿಸಲಾಗಿದೆ LLD ಲಿಂಕರ್ ಸಾಮರ್ಥ್ಯಗಳು. "--lto-emit-asm", "--lto-whole-program-visibility", "-print-archive-stats", "-shuffle-sections", " ಸೇರಿಸಿದ ಆಯ್ಕೆಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ELF ಫಾರ್ಮ್ಯಾಟ್‌ಗೆ ಸುಧಾರಿತ ಬೆಂಬಲ -thinlto- ಏಕ-ಮಾಡ್ಯೂಲ್", "-unique", "-rosegment", "-threads=N". ಟ್ರೇಸ್ ಅನ್ನು ಫೈಲ್‌ಗೆ ಉಳಿಸಲು "--ಟೈಮ್-ಟ್ರೇಸ್" ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ನಂತರ ಅದನ್ನು Chrome ನಲ್ಲಿ chrome://tracing interface ಮೂಲಕ ವಿಶ್ಲೇಷಿಸಬಹುದು.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ