È stato presentato il backend TPDE-LLVM, che opera da 10 a 20 volte più velocemente di LLVM in modalità senza ottimizzazione

I ricercatori del Politecnico di Monaco hanno pubblicato il toolkit TPDE e il backend per LLVM basato su di esso - TPDE-LLVM, che fornisce la generazione di codice macchina per le architetture x86-64 e AArch64 sulla base della rappresentazione intermedia del codice LLVM-IR. Durante i test, TPDE-LLVM si è rivelato 10-20 volte più veloce del backend LLVM -O0 (generatore di codice senza ottimizzazioni), mantenendo lo stesso livello di prestazioni del codice macchina risultante e un aumento delle dimensioni del 10-30%. I risultati del progetto sono stati pubblicati con licenza Apache 2.0.

TPDE-LLVM è inizialmente mirato a garantire compilazioni con latenze minime e un livello di qualità conforme alla modalità di compilazione senza ottimizzazioni ('-O0'). Il progetto offre uno strumento per l'esecuzione isolata di tpde-llc, una libreria per l'integrazione nelle applicazioni (ad esempio, per implementare funzionalità di JIT compilation) e patch per l'integrazione con Clang e Flang.

È stato presentato il backend TPDE-LLVM, che opera da 10 a 20 volte più velocemente di LLVM in modalità senza ottimizzazione

Il progetto può essere utilizzato come componente di compilazione di base per JIT o per la creazione di build non ottimizzate. TPDE-LLVM si concentra esclusivamente sulla velocità di compilazione e non cerca di competere con i backend ottimizzanti di LLVM, che funzionano sostanzialmente più lentamente rispetto a TPDE-LLVM, ma consentono di generare codice macchina più veloce e compatto (circa 2 volte più veloce e 2 volte più piccolo).

TPDE-LLVM utilizza tre fasi per la generazione del codice:

  • Pulizia e preparazione della rappresentazione intermedia LLVM;
  • Analisi delle informazioni sui cicli e sull'uso delle variabili;
  • Formazione del codice macchina.

È stato presentato il backend TPDE-LLVM, che opera da 10 a 20 volte più velocemente di LLVM in modalità senza ottimizzazione

Si nota che, con il coinvolgimento degli autori di TPDE, nelle versioni 19 e 20 di LLVM sono già state aggiunte ottimizzazioni che hanno consentito di accelerare il funzionamento del backend standard di LLVM del 18% sulla piattaforma x86-64 e del 13% sulla piattaforma ARM64. Secondo gli autori di TPDE, in futuro sarà possibile migliorare ulteriormente il backend di LLVM del 10-20% senza troppa difficoltà, ma ulteriori incrementi delle prestazioni richiederanno cambiamenti significativi. Anche con una revisione sostanziale, è poco probabile che il backend esistente di LLVM possa essere accelerato di 10 volte.

Attualmente, tra gli obiettivi del progetto TPDE c'è il supporto per la rappresentazione intermedia del codice LLVM generata dal frontend Clang nelle modalità di ottimizzazione «-O0» e «-O1». Il trattamento della rappresentazione intermedia creata in modalità «-O2» non è ancora garantito a causa della mancanza di supporto in TPDE per le operazioni vettoriali. È parzialmente supportato il codice intermedio da Flang e dal compilatore Rust.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster