Kutolewa kwa kiunganishi cha Mold 1.1, kilichotengenezwa na LLVM lld

Toleo la kiunganishi cha Mold limechapishwa, ambalo linaweza kutumika kama mbadala wa haraka na wa uwazi wa kiunganishi cha GNU kwenye mifumo ya Linux. Mradi huu unatengenezwa na mwandishi wa kiunganishi cha LLVM lld. Kipengele muhimu cha Mold ni kasi ya juu sana ya kuunganisha faili za kitu, dhahiri mbele ya viunganishi vya GNU dhahabu na LLVM lld (kuunganisha katika Mold hufanywa kwa kasi ya nusu tu ya haraka kama kunakili faili na matumizi ya cp). Msimbo umeandikwa katika C++ (C++20) na kusambazwa chini ya leseni ya AGPLv3.

Katika toleo jipya:

  • Usaidizi ulioongezwa wa uboreshaji katika hatua ya kuunganisha (LTO, Uboreshaji wa Wakati wa Kiungo). Uboreshaji wa LTO hutofautiana kwa kuzingatia hali ya faili zote zinazohusika katika mchakato wa kujenga, wakati njia za jadi za uboreshaji huboresha kila faili tofauti na hazizingatii masharti ya kazi za kupiga simu zilizofafanuliwa katika faili nyingine. Ijapokuwa hapo awali, faili za GCC au LLVM za msimbo wa kati (IR) zilipopatikana, viunganishi vinavyolingana vya ld.bfd au ld.lld viliitwa, sasa Mold huchakata faili za IR kwa kujitegemea na hutumia API ya Programu-jalizi ya Linker, inayotumika pia katika GNU ld na GNU. viunga vya dhahabu. Inapowashwa, LTO huwa na kasi kidogo tu kuliko viunganishi vingine kwa sababu muda mwingi hutumiwa kutekeleza uboreshaji wa msimbo badala ya kuunganisha.
  • Usaidizi ulioongezwa wa usanifu wa RISC-V (RV64) kwenye seva pangishi na majukwaa lengwa.
  • Imeongeza chaguo la "--emit-relocs" ili kuwezesha kunakili sehemu za kuhamisha kutoka faili za ingizo hadi faili za kutoa kwa matumizi ya baadaye ya uboreshaji katika hatua ya baada ya kuunganisha.
  • Imeongeza chaguo la "--shuffle-sections" ili kubadilisha mpangilio wa sehemu bila mpangilio kabla ya kurekebisha anwani zao kwenye nafasi ya anwani pepe.
  • Chaguzi zilizoongezwa "--print-dependencies" na "--print-dependencies=full" ili kutoa maelezo katika umbizo la CSV kuhusu utegemezi kati ya faili za ingizo, ambazo, kwa mfano, zinaweza kutumika kuchanganua sababu za miunganisho wakati wa kuunganisha faili za kitu fulani. au wakati wa kutekeleza utegemezi wa kazi ya minification kati ya faili.
  • Imeongezwa "--warn- once" na "--warn-textrel" chaguzi.
  • Imeondoa utegemezi kwa libxxhash.

Chanzo: opennet.ru

Kuongeza maoni