LLVM lld เจฆเฉเจ†เจฐเจพ เจตเจฟเจ•เจธเจค เจฎเฉ‹เจฒเจก เจฌเจฟเจฒเจกเจฐ เจฆเฉ€ เจชเจนเจฟเจฒเฉ€ เจธเจฅเจฟเจฐ เจฐเฉ€เจฒเฉ€เจœเจผ

Rui Ueyama, LLVM lld เจฒเจฟเฉฐเจ•เจฐ เจ…เจคเฉ‡ chibicc เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฆเฉ‡ เจฒเฉ‡เจ–เจ•, เจจเฉ‡ เจจเจตเฉ‡เจ‚ เจ‰เฉฑเจš-เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฎเฉ‹เจฒเจก เจฒเจฟเฉฐเจ•เจฐ เจฆเฉ€ เจชเจนเจฟเจฒเฉ€ เจธเจฅเจฟเจฐ เจฐเฉ€เจฒเฉ€เจœเจผ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเฉ€, เจœเฉ‹ เจ•เจฟ เจ†เจฌเจœเฉˆเจ•เจŸ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจฟเฉฐเจ• เจ•เจฐเจจ เจฆเฉ€ เจ—เจคเฉ€ เจตเจฟเฉฑเจš GNU เจ—เฉ‹เจฒเจก เจ…เจคเฉ‡ LLVM lld เจฒเจฟเฉฐเจ•เจฐเจพเจ‚ เจจเจพเจฒเฉ‹เจ‚ เจ•เจพเจซเจผเฉ€ เจคเฉ‡เจœเจผ เจนเฉˆเฅค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจ‰เจคเจชเจพเจฆเจจ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจคเจฟเจ†เจฐ เจฎเฉฐเจจเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจฒเฉ€เจจเจ•เจธ เจธเจฟเจธเจŸเจฎเจพเจ‚ เจ‰เฉฑเจคเฉ‡ GNU เจฒเจฟเฉฐเจ•เจฐ เจฒเจˆ เจ‡เฉฑเจ• เจคเฉ‡เจœเจผ, เจชเจพเจฐเจฆเจฐเจธเจผเฉ€ เจฌเจฆเจฒ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ…เจ—เจฒเฉ€ เจตเฉฑเจกเฉ€ เจฐเฉ€เจฒเฉ€เจœเจผ เจฆเฉ€เจ†เจ‚ เจฏเฉ‹เจœเจจเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจฎเฉˆเจ•เฉ‹เจธ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเจจเจพ เจธเจผเจพเจฎเจฒ เจนเฉˆ, เจœเจฟเจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจฒเจˆ เจฎเฉ‹เจฒเจก เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃ 'เจคเฉ‡ เจ•เฉฐเจฎ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค

เจฎเฉ‹เจฒเจก เจจเฉ‚เฉฐ C++ (C++20) เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ AGPLv3 เจฆเฉ‡ เจ…เจงเฉ€เจจ เจฒเจพเจ‡เจธเฉฐเจธเจธเจผเฉเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ GPLv3 เจฆเฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒ เจนเฉˆ, เจชเจฐ GPLv2 เจฆเฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจธเจจเฉ‚เฉฐ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเฉ‡เจตเจพเจตเจพเจ‚ เจตเจฟเจ•เจธเจฟเจค เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจ–เฉเฉฑเจฒเฉ‡ เจฌเจฆเจฒเจพเจ… เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ‡เจธ เจšเฉ‹เจฃ เจฆเฉ€ เจตเจฟเจ†เจ–เจฟเจ† เจตเจฟเจ•เจพเจธ เจซเฉฐเจกเจฟเฉฐเจ— เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจ‡เฉฑเจ›เจพ เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ - เจฒเฉ‡เจ–เจ• เจ‡เฉฑเจ• เจ…เจจเฉเจฎเจคเฉ€ เจฒเจพเจ‡เจธเฉฐเจธ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ MIT, เจœเจพเจ‚ AGPL เจคเฉ‹เจ‚ เจธเฉฐเจคเฉเจธเจผเจŸ เจจเจพ เจนเฉ‹เจฃ เจตเจพเจฒเจฟเจ†เจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจตเจชเจพเจฐเจ• เจฒเจพเจ‡เจธเฉˆเจ‚เจธ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ‹เจก เจฆเฉ‡ เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ‡เจšเจฃ เจฒเจˆ เจคเจฟเจ†เจฐ เจนเฉˆเฅค

เจฎเฉ‹เจฒเจก GNU เจฒเจฟเฉฐเจ•เจฐ เจฆเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจฆเจพ เจฌเจนเฉเจค เจ‰เฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจนเฉˆ - เจฒเจฟเฉฐเจ•เจฟเฉฐเจ— เจธเจฟเจฐเจซเจผ cp เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจจเจพเจฒ เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจจ เจจเจพเจฒเฉ‹เจ‚ เจ…เฉฑเจงเฉ€ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจœเจฆเฉ‹เจ‚ เจ•เฉเจฐเฉ‹เจฎ 96 (เจ•เฉ‹เจก เจฆเจพ เจ†เจ•เจพเจฐ 1.89 GB) เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ GNU เจ—เฉ‹เจฒเจก, LLVM lld - 8 เจธเจ•เจฟเฉฐเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ 53-เจ•เฉ‹เจฐ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ 'เจคเฉ‡ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจกเฉ€เจฌเจ—เจฟเจจเจซเฉ‹ เจจเจพเจฒ เจฒเจฟเฉฐเจ• เจ•เจฐเจจ เจฒเจˆ 11.7 เจธเจ•เจฟเฉฐเจŸ เจฒเฉฑเจ—เจฆเฉ‡ เจนเจจ, เจ…เจคเฉ‡ เจฎเฉ‹เจฒเจก เจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ 2.2 เจธเจ•เจฟเฉฐเจŸ (26 เจ—เฉเจฃเจพ เจคเฉ‡เจœเจผ) GNU เจธเฉ‹เจจเจพ)เฅค Clang 13 (3.18 GB) เจจเฉ‚เฉฐ เจฒเจฟเฉฐเจ• เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡, GNU เจ—เฉ‹เจฒเจก เจตเจฟเฉฑเจš 64 เจธเจ•เจฟเฉฐเจŸ, LLVM lld เจตเจฟเฉฑเจš 5.8 เจธเจ•เจฟเฉฐเจŸ, เจ…เจคเฉ‡ เจฎเฉ‹เจฒเจก เจตเจฟเฉฑเจš 2.9 เจธเจ•เจฟเฉฐเจŸ เจฆเจพ เจธเจฎเจพเจ‚ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆเฅค เจซเจพเจ‡เจฐเจซเจพเจ•เจธ 89 (1.64 GB) เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ เจตเฉ‡เจฒเฉ‡, GNU เจ—เฉ‹เจฒเจก เจตเจฟเฉฑเจš 32.9 เจธเจ•เจฟเฉฐเจŸ, LLVM lld เจตเจฟเฉฑเจš 6.8 เจธเจ•เจฟเฉฐเจŸ, เจ…เจคเฉ‡ เจฎเฉ‹เจฒเจก เจตเจฟเฉฑเจš 1.4 เจธเจ•เจฟเฉฐเจŸ เจฒเฉฑเจ—เจฆเฉ‡ เจนเจจเฅค

LLVM lld เจฆเฉเจ†เจฐเจพ เจตเจฟเจ•เจธเจค เจฎเฉ‹เจฒเจก เจฌเจฟเจฒเจกเจฐ เจฆเฉ€ เจชเจนเจฟเจฒเฉ€ เจธเจฅเจฟเจฐ เจฐเฉ€เจฒเฉ€เจœเจผ

เจฌเจฟเจฒเจก เจŸเจพเจˆเจฎ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจฃเจพ เจกเฉ€เจฌเฉฑเจ—เจฟเฉฐเจ— เจ…เจคเฉ‡ เจŸเฉˆเจธเจŸเจฟเฉฐเจ— เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฆเฉŒเจฐเจพเจจ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš เจ‰เจกเฉ€เจ• เจจเฉ‚เฉฐ เจ˜เจŸเจพ เจ•เฉ‡ เจตเฉฑเจกเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจฆเฉ€ เจธเจนเฉ‚เจฒเจค เจตเจฟเฉฑเจš เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจธเฉเจงเจพเจฐ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจฎเฉ‹เจฒเจก เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจชเฉเจฐเฉ‡เจฐเจฃเจพ เจนเจฐเฉ‡เจ• เจ•เฉ‹เจก เจคเจฌเจฆเฉ€เจฒเฉ€ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฒเจฟเฉฐเจ• เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฐเจคเจœเจผเจพเจฐ เจ•เจฐเจจ เจฆเฉ€ เจจเจฟเจฐเจพเจธเจผเจพ, เจฎเจฒเจŸเฉ€-เจ•เฉ‹เจฐ เจธเจฟเจธเจŸเจฎเจพเจ‚ 'เจคเฉ‡ เจฎเฉŒเจœเฉ‚เจฆเจพ เจฒเจฟเฉฐเจ•เจฐเจพเจ‚ เจฆเฉ€ เจฎเจพเฉœเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€, เจ…เจคเฉ‡ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจฎเจพเจกเจฒเจพเจ‚ เจฆเจพ เจธเจนเจพเจฐเจพ เจฒเจ เจฌเจฟเจจเจพเจ‚ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเฉฑเจ–เจฐเฉ‡ เจฒเจฟเฉฐเจ•เจฟเฉฐเจ— เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจ เจฆเฉ€ เจ‡เฉฑเจ›เจพ เจธเฉ€เฅค เจตเจงเจฆเฉ€ เจฒเจฟเฉฐเจ•เจฟเฉฐเจ— เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡.

เจฎเฉ‹เจฒเจก เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจˆเจฒเจฐ-เจคเจฟเจ†เจฐ เจ†เจฌเจœเฉˆเจ•เจŸ เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจธเฉฐเจ–เจฟเจ† เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจฒเจฟเฉฐเจ• เจ•เจฐเจจ เจฆเฉ€ เจ‰เฉฑเจš เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจคเฉ‡เจœเจผ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ, เจ‰เจชเจฒเจฌเจง CPU เจ•เฉ‹เจฐเจพเจ‚ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจธเจฐเจ—เจฐเจฎ เจธเจฎเจพเจจเจคเจพ เจ…เจคเฉ‡ เจตเจงเฉ‡เจฐเฉ‡ เจ•เฉเจธเจผเจฒ เจกเฉ‡เจŸเจพ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฎเฉ‹เจฒเจก เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจจ, เจ†เจฌเจœเฉˆเจ•เจŸ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ€-เจฒเฉ‹เจก เจ•เจฐเจจ, เจ…เฉฑเจ–เจฐ เจฐเฉˆเจœเจผเฉ‹เจฒเจฟเจŠเจธเจผเจจ เจฒเจˆ เจคเฉ‡เจœเจผ เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ, เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจฅเฉเจฐเฉˆเฉฑเจก เจตเจฟเฉฑเจš เจฐเฉ€เจฒเฉ‹เจ•เฉ‡เจธเจผเจจ เจŸเฉ‡เจฌเจฒ เจจเฉ‚เฉฐ เจธเจ•เฉˆเจจ เจ•เจฐเจจ, เจ…เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจฆเฉเจนเจฐเจพเจ‰เจฃ เจตเจพเจฒเฉ‡ เจตเจฟเจฒเฉ€เจจ เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉฑเจŸเจฃ เจฆเฉŒเจฐเจพเจจ เจคเฉ€เจฌเจฐ เจ—เจฃเจจเจพ เจ•เจฐเจจ เจฒเจˆ เจคเจ•เจจเฉ€เจ•เจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹