Questo elaborato di tesi si propone essere un miglioramento di un compilatore preesistente che si basa sull'infrastruttura di compilatori LLVM ovvero una collezione di tecnologie che facilitano ed aiutano le fasi della compilazione e forniscono toolchain modulari e riusabili. Il compilatore si poneva a completamento di un lavoro di sviluppo di una famiglia di frontend per LLVM scritti in linguaggio C, C++, Objective C e Objective C++ con lo scopo di fornire migliori diagnostiche, migliore integrazione con gli IDE, una licenza compatibile con i prodotti commerciali e un compilatore leggero e veloce facile da sviluppare e mantenere. Il compilatore originale è continuamente in sviluppo ed è considerato un prodotto di qualità per le architetture basate su ARM e su X86 a 32/64 bit; è un'ottima soluzione per la source analysis o per tool basati su source-to-source transformation. Fra le caratteristiche principali del compilatore clang vi sono un basso consumo di memoria, una rapida compilazione, presenza di diagnostiche espressive e una compatibilità con il compilatore GCC. Principalmente lo scopo di questo lavoro di tesi è stato quello di modificare, integrare e ottimizzare la parte backend del compilatore in modo da renderlo compatibile alla compilazione di programmi destinati al processore Cell Broadband Engine (Cell BE) dell'architettura della Play Station 3. Di conseguenza abbiamo reso l'applicativo più efficiente editandolo, in modo da poter rendere funzionali i programmi pensati originalmente per sfruttare le risorse del microprocessore Cell della PS3. Infi ne abbiamo testato i miglioramenti introdotti che hanno sensibilmente incrementato l'e cienza dello strumento software in termini di memoria allocata e di tempo trascorso. Il seguente elaborato è strutturato con un'esauriente presentazione del contesto nel quale si trova (Capitolo 2 e Capitolo 3), abbracciando pian piano i formalismi e gli strumenti utilizzati, per poi andare a toccare con mano l'applicativo (Capitolo 5) e le modi che introdotte (Capitolo 4). Infi ne a corredo delle modifiche introdotte sono presentati alcuni esperimenti e ffettuati (Capitolo 5), evidenziando le migliorie introdotte, i colli di bottiglia ed eventuali sviluppi futuri (Capitolo 6).

Verso una infrastruttura di compilazione per Cell BE basata su LLVM

MARTINELLI, DANIELE
2011/2012

Abstract

Questo elaborato di tesi si propone essere un miglioramento di un compilatore preesistente che si basa sull'infrastruttura di compilatori LLVM ovvero una collezione di tecnologie che facilitano ed aiutano le fasi della compilazione e forniscono toolchain modulari e riusabili. Il compilatore si poneva a completamento di un lavoro di sviluppo di una famiglia di frontend per LLVM scritti in linguaggio C, C++, Objective C e Objective C++ con lo scopo di fornire migliori diagnostiche, migliore integrazione con gli IDE, una licenza compatibile con i prodotti commerciali e un compilatore leggero e veloce facile da sviluppare e mantenere. Il compilatore originale è continuamente in sviluppo ed è considerato un prodotto di qualità per le architetture basate su ARM e su X86 a 32/64 bit; è un'ottima soluzione per la source analysis o per tool basati su source-to-source transformation. Fra le caratteristiche principali del compilatore clang vi sono un basso consumo di memoria, una rapida compilazione, presenza di diagnostiche espressive e una compatibilità con il compilatore GCC. Principalmente lo scopo di questo lavoro di tesi è stato quello di modificare, integrare e ottimizzare la parte backend del compilatore in modo da renderlo compatibile alla compilazione di programmi destinati al processore Cell Broadband Engine (Cell BE) dell'architettura della Play Station 3. Di conseguenza abbiamo reso l'applicativo più efficiente editandolo, in modo da poter rendere funzionali i programmi pensati originalmente per sfruttare le risorse del microprocessore Cell della PS3. Infi ne abbiamo testato i miglioramenti introdotti che hanno sensibilmente incrementato l'e cienza dello strumento software in termini di memoria allocata e di tempo trascorso. Il seguente elaborato è strutturato con un'esauriente presentazione del contesto nel quale si trova (Capitolo 2 e Capitolo 3), abbracciando pian piano i formalismi e gli strumenti utilizzati, per poi andare a toccare con mano l'applicativo (Capitolo 5) e le modi che introdotte (Capitolo 4). Infi ne a corredo delle modifiche introdotte sono presentati alcuni esperimenti e ffettuati (Capitolo 5), evidenziando le migliorie introdotte, i colli di bottiglia ed eventuali sviluppi futuri (Capitolo 6).
ING V - Scuola di Ingegneria dell'Informazione
25-lug-2012
2011/2012
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2012_07_Martinelli.PDF

accessibile in internet per tutti

Descrizione: Testo della tesi
Dimensione 1.23 MB
Formato Adobe PDF
1.23 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/59183