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).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.
https://hdl.handle.net/10589/59183