LLVM 16.0 ಮತ್ತು ಇದು ಬಿಡುಗಡೆಯಾಗಿದೆ ಮತ್ತು ಇವು ಅದರ ಸುದ್ದಿಗಳಾಗಿವೆ

LLVM ಲೋಗೋ

LLVM ಎನ್ನುವುದು ಕಂಪೈಲರ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಮತ್ತು ಹೊಸ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳನ್ನು ನಿರ್ಮಿಸಲು ಮತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಭಾಷೆಗಳನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡುವ ಚೌಕಟ್ಟಾಗಿದೆ.

ಕೇವಲ ಆರು ತಿಂಗಳ ಅಭಿವೃದ್ಧಿಯ ನಂತರ, ಪ್ರಾರಂಭ ಯೋಜನೆಯ ಹೊಸ ಆವೃತ್ತಿ LLVM 16.0, ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಬದಲಾವಣೆಗಳು ಮತ್ತು ಸುಧಾರಣೆಗಳನ್ನು ಅಳವಡಿಸಲಾಗಿರುವ ಆವೃತ್ತಿ.

LLVM ಬಗ್ಗೆ ಪರಿಚಯವಿಲ್ಲದವರಿಗೆ, ನೀವು ಇದನ್ನು ತಿಳಿದಿರಬೇಕು GCC ಹೊಂದಾಣಿಕೆಯ ಕಂಪೈಲರ್ ಆಗಿದೆ (ಕಂಪೈಲರ್‌ಗಳು, ಆಪ್ಟಿಮೈಜರ್‌ಗಳು ಮತ್ತು ಕೋಡ್ ಜನರೇಟರ್‌ಗಳು) ಪ್ರೋಗ್ರಾಂಗಳನ್ನು RISC-ತರಹದ ವರ್ಚುವಲ್ ಸೂಚನಾ ಮಧ್ಯಂತರ ಬಿಟ್‌ಕೋಡ್‌ಗೆ ಕಂಪೈಲ್ ಮಾಡುತ್ತದೆ (ಬಹುಮಟ್ಟದ ಆಪ್ಟಿಮೈಸೇಶನ್ ಸಿಸ್ಟಮ್‌ನೊಂದಿಗೆ ಕಡಿಮೆ-ಮಟ್ಟದ ವರ್ಚುವಲ್ ಯಂತ್ರ).

ರಚಿಸಲಾದ ಸೂಡೊಕೋಡ್ ಅನ್ನು JIT ಕಂಪೈಲರ್ ಮೂಲಕ ಪ್ರೋಗ್ರಾಂ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಸಮಯದಲ್ಲಿ ಯಂತ್ರ ಸೂಚನೆಗಳಾಗಿ ಪರಿವರ್ತಿಸಬಹುದು.

ಎಲ್ಎಲ್ವಿಎಂ 16.0 ನ ಪ್ರಮುಖ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು

ಪ್ರಸ್ತುತಪಡಿಸಲಾದ ಈ ಹೊಸ ಆವೃತ್ತಿಯಲ್ಲಿ, ನಾವು ಹಲವಾರು ಪ್ರಮುಖ ಸುಧಾರಣೆಗಳನ್ನು ಕಾಣಬಹುದು ಕ್ಲಾಂಗ್ 16.0 ರಲ್ಲಿ, ಇದರಲ್ಲಿ ಡೀಫಾಲ್ಟ್ C++/ObjC++ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಎದ್ದು ಕಾಣುತ್ತದೆ gnu++17 ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ (ಹಿಂದೆ gnu++14), ಇದು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ GNU ವಿಸ್ತರಣೆಗಳೊಂದಿಗೆ C++17 ವೈಶಿಷ್ಟ್ಯಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೂಚಿಸುತ್ತದೆ. C++17 ಮಾನದಂಡದಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಅಂಶಗಳ ಬಳಕೆಯನ್ನು LLVM ಕೋಡ್‌ನಲ್ಲಿ ಅನುಮತಿಸಲಾಗಿದೆ.

ಎದ್ದು ಕಾಣುವ ಮತ್ತೊಂದು ಬದಲಾವಣೆಯೆಂದರೆ ಅದನ್ನು ಸೇರಿಸಲಾಗಿದೆ Cortex-A715, Cortex-X3 ಮತ್ತು Neoverse CPU ಗಳಿಗೆ ಬೆಂಬಲ V2, Armv8.3 ವಿಸ್ತರಣೆಗಳು ಮತ್ತು AArch64 ಬ್ಯಾಕೆಂಡ್‌ಗೆ ಬಹು-ಆವೃತ್ತಿ ವೈಶಿಷ್ಟ್ಯಗಳು.
La ವೇದಿಕೆ ಹೊಂದಾಣಿಕೆ Armv2, Armv2A, Armv3 ಮತ್ತು Armv3M ಅನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ ARM ಆರ್ಕಿಟೆಕ್ಚರ್ ಬ್ಯಾಕೆಂಡ್‌ನಲ್ಲಿ, ಸರಿಯಾದ ಕೋಡ್ ಉತ್ಪಾದನೆಯನ್ನು ಖಾತರಿಪಡಿಸಲಾಗಿಲ್ಲ. ಸಂಕೀರ್ಣ ಸಂಖ್ಯೆಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಸೂಚನೆಗಳಿಗಾಗಿ ಕೋಡ್ ಅನ್ನು ರಚಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ ಮತ್ತು ಸೇರಿಸಲಾಗಿದೆ ವಾಸ್ತುಶಿಲ್ಪಗಳಿಗೆ ಬೆಂಬಲ ಸೂಚನಾ ಸೆಟ್ಗಳ (ISA) AMX-FP16, CMPCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-X86 ಬ್ಯಾಕೆಂಡ್‌ಗೆ ಪರಿವರ್ತಿಸಿ.

ಅದರ ಪಕ್ಕದಲ್ಲಿ, LLVM ನಿರ್ಮಿಸಲು ಅಗತ್ಯತೆಗಳನ್ನು ಹೆಚ್ಚಿಸಲಾಗಿದೆ, ಬಿಲ್ಡ್ ಈಗ C++17 ಸ್ಟ್ಯಾಂಡರ್ಡ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗಬೇಕು, ಅಂದರೆ ಬಿಲ್ಡ್‌ಗೆ ಕನಿಷ್ಠ GCC 7.1, ಕ್ಲಾಂಗ್ 5.0, Apple ಕ್ಲಾಂಗ್ 10.0 ಅಥವಾ ವಿಷುಯಲ್ ಸ್ಟುಡಿಯೋ 2019 16.7 ಅಗತ್ಯವಿದೆ.

ಮತ್ತೊಂದೆಡೆ, ಇದು ಹೈಲೈಟ್ ಮಾಡುತ್ತದೆ MIPS, PowerPC ಮತ್ತು RISC-V ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಿಗಾಗಿ ಸುಧಾರಿತ ಬ್ಯಾಕೆಂಡ್‌ಗಳು, ಹಾಗೆಯೇ LLDB ಡೀಬಗ್ಗರ್‌ಗೆ LoongArch ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಾಗಿ 64-ಬಿಟ್ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್‌ಗಳನ್ನು ಡೀಬಗ್ ಮಾಡಲು ಬೆಂಬಲ ಮತ್ತು COFF ಡೀಬಗ್ ಮಾಡುವ ಚಿಹ್ನೆಗಳ ಸುಧಾರಿತ ನಿರ್ವಹಣೆ.

ಇತರ ಬದಲಾವಣೆಗಳಲ್ಲಿ ಅದು ಎದ್ದು ಕಾಣುತ್ತದೆ:

  • Libc++ ಲೈಬ್ರರಿಯಲ್ಲಿ, C++20 ಮತ್ತು C++23 ಮಾನದಂಡಗಳ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದರ ಮೇಲೆ ಮುಖ್ಯ ಕಾರ್ಯವನ್ನು ಕೇಂದ್ರೀಕರಿಸಲಾಗಿದೆ.
  • ವಿಳಾಸ ಸ್ಥಳಾಂತರ ಸ್ಕ್ಯಾನ್ ಮತ್ತು ವಿಭಾಗ ಪ್ರಾರಂಭಿಕ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಸಮಾನಾಂತರಗೊಳಿಸುವ ಮೂಲಕ LDD ಲಿಂಕರ್‌ನಲ್ಲಿ ಲಿಂಕ್ ಸಮಯವನ್ನು ಗಣನೀಯವಾಗಿ ಕಡಿಮೆ ಮಾಡಲಾಗಿದೆ. ZSTD ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ವಿಭಾಗ ಸಂಕೋಚನಕ್ಕೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • C++20 ಮಾನದಂಡದೊಂದಿಗೆ ಅಳವಡಿಸಲಾದ ಸುಧಾರಿತ ಕಾರ್ಯಗಳನ್ನು ಸಹ ಹೈಲೈಟ್ ಮಾಡಲಾಗಿದೆ.
  • ಲ್ಯಾಂಬ್ಡಾ ಕಾರ್ಯಗಳಲ್ಲಿ ರಚನಾತ್ಮಕ ಲಿಂಕ್‌ಗಳನ್ನು ಸೆರೆಹಿಡಿಯಿರಿ.
  • ಅಭಿವ್ಯಕ್ತಿಗಳಲ್ಲಿ ಸಮಾನತೆಯ ನಿರ್ವಾಹಕರು.
  • ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಟೈಪ್ ನೇಮ್ ಕೀವರ್ಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದಿರುವ ಸಾಮರ್ಥ್ಯ,
  • ಆವರಣಗಳ ನಡುವೆ ಸೇರಿಸಲಾದ ಆರಂಭದ ಅನುಮತಿ ("Aggr(val1, val2)").
  • ಭವಿಷ್ಯದ C++2b ಮಾನದಂಡದಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಕಾರ್ಯಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗಿದೆ.
  • char8_t ಪ್ರಕಾರದೊಂದಿಗೆ ಬೆಂಬಲವನ್ನು ಒದಗಿಸಲಾಗಿದೆ,
  • "\N{...}" ನಲ್ಲಿ ಬಳಕೆಗೆ ಅನುಮತಿಸಲಾದ ಅಕ್ಷರಗಳ ವ್ಯಾಪ್ತಿಯನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ,
  • constexpr ಎಂದು ಘೋಷಿಸಲಾದ ಕಾರ್ಯಗಳಲ್ಲಿ "ಸ್ಥಾಯೀ constexpr" ಎಂದು ಘೋಷಿಸಲಾದ ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಭವಿಷ್ಯದ C2x C ಮಾನದಂಡದಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಕಾರ್ಯಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗಿದೆ:
  • ಬಹು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ (ಡೀಫಾಲ್ಟ್ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ಗಳನ್ನು ಮೊದಲು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ, ನಂತರ “–config=” ಫ್ಲ್ಯಾಗ್ ಮೂಲಕ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ, ಅದನ್ನು ಈಗ ಅನೇಕ ಬಾರಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು).
  • ಡೀಫಾಲ್ಟ್ ಕಾನ್ಫಿಗರ್ ಫೈಲ್‌ಗಳ ಲೋಡ್ ಕ್ರಮವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ: ಕ್ಲಾಂಗ್ ಮೊದಲು ಫೈಲ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ - .cfg ಮತ್ತು ಅದನ್ನು ಕಂಡುಹಿಡಿಯಲಾಗದಿದ್ದರೆ, ಅದು ಎರಡು ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ .cfg ಮತ್ತು .cfg.
  • ವಾಡಿಕೆಯ ಫ್ರೇಮ್ ಜೋಡಿಸಲಾದ ವಿತರಣೆಗಾಗಿ ಹೊಸ ಬಿಲ್ಡ್ ಫ್ಲ್ಯಾಗ್ "-fcoro-aligned-allocation" ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಪ್ರಮಾಣಿತ C++ ಮಾಡ್ಯೂಲ್‌ಗಳ ಏಕ-ಹಂತದ ನಿರ್ಮಾಣ ಮಾದರಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು "-fmodule-output" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಲೇಔಟ್‌ನೊಂದಿಗೆ ಸಮಸ್ಯೆಗಳನ್ನು ನಿವಾರಿಸಲು "-Rpass-analysis=stack-frame-layout" ಮೋಡ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಹೊಸ __attribute__((target_version("cpu_features"))) ಗುಣಲಕ್ಷಣವನ್ನು ಸೇರಿಸಲಾಗಿದೆ ಮತ್ತು AA ಮೂಲಕ ಒದಗಿಸಲಾದ ನಿರ್ದಿಷ್ಟ ಆವೃತ್ತಿಯ ವೈಶಿಷ್ಟ್ಯಗಳ CPU ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಲು __attribute__((target_clones("cpu_features1″,"cpu_features2",...)) ಗುಣಲಕ್ಷಣದ ಕಾರ್ಯವನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ .
  • ಸುಧಾರಿತ ರೋಗನಿರ್ಣಯ ಸಾಧನಗಳು:
  • ಒಂದು ಬಿಟ್ ಸಹಿ ಮಾಡಿದ ಬಿಟ್‌ಫೀಲ್ಡ್‌ಗೆ ಒಂದನ್ನು ನಿಯೋಜಿಸುವಾಗ ಸೂಚ್ಯವಾದ ಮೊಟಕುಗೊಳಿಸುವಿಕೆಯನ್ನು ಹಿಡಿಯಲು "-Wsingle-bit-bitfield-constant-conversion" ಎಂಬ ಎಚ್ಚರಿಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಅನ್ಇನಿಶಿಯಲೈಸ್ಡ್ constexpr ವೇರಿಯೇಬಲ್‌ಗಳಿಗಾಗಿ ವಿಸ್ತೃತ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ಸ್.
  • ಕಾರ್ಯ ಪ್ರಕಾರಗಳನ್ನು ಬಿತ್ತರಿಸುವಾಗ ಸಂಭಾವ್ಯ ಸಮಸ್ಯೆಗಳನ್ನು ಹಿಡಿಯಲು "-Wcast-function-type-strict" ಮತ್ತು "-Wincompatible-function-pointer-types-strict" ಎಚ್ಚರಿಕೆಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ.

ಅಂತಿಮವಾಗಿ ಇದರ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಲು ನೀವು ಆಸಕ್ತಿ ಹೊಂದಿದ್ದರೆ, ನೀವು ವಿವರಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು ಕೆಳಗಿನ ಲಿಂಕ್.


ನಿಮ್ಮ ಅಭಿಪ್ರಾಯವನ್ನು ಬಿಡಿ

ನಿಮ್ಮ ಈಮೇಲ್ ವಿಳಾಸ ಪ್ರಕಟವಾದ ಆಗುವುದಿಲ್ಲ. ಅಗತ್ಯವಿರುವ ಜಾಗ ಗುರುತಿಸಲಾಗಿದೆ *

*

*

  1. ಡೇಟಾಗೆ ಜವಾಬ್ದಾರಿ: AB ಇಂಟರ್ನೆಟ್ ನೆಟ್ವರ್ಕ್ಸ್ 2008 SL
  2. ಡೇಟಾದ ಉದ್ದೇಶ: ನಿಯಂತ್ರಣ SPAM, ಕಾಮೆಂಟ್ ನಿರ್ವಹಣೆ.
  3. ಕಾನೂನುಬದ್ಧತೆ: ನಿಮ್ಮ ಒಪ್ಪಿಗೆ
  4. ಡೇಟಾದ ಸಂವಹನ: ಕಾನೂನುಬದ್ಧ ಬಾಧ್ಯತೆಯನ್ನು ಹೊರತುಪಡಿಸಿ ಡೇಟಾವನ್ನು ಮೂರನೇ ವ್ಯಕ್ತಿಗಳಿಗೆ ಸಂವಹನ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
  5. ಡೇಟಾ ಸಂಗ್ರಹಣೆ: ಆಕ್ಸೆಂಟಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು (ಇಯು) ಹೋಸ್ಟ್ ಮಾಡಿದ ಡೇಟಾಬೇಸ್
  6. ಹಕ್ಕುಗಳು: ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನೀವು ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು, ಮರುಪಡೆಯಬಹುದು ಮತ್ತು ಅಳಿಸಬಹುದು.