Change search
ReferencesLink to record
Permanent link

Direct link
An LLVM Back-end for REPLICA: Code Generation for a Multi-core VLIWProcessor with Chaining
Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
2012 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesisAlternative title
Ett LLVM Back-end för REPLICA : Kodgenerering för en Flerkärning VLIW Processor med Kedjade Instruktioner (Swedish)
Abstract [en]

REPLICA is a PRAM-NUMA hybrid architecture, with support for instructionlevel parallelism as a VLIW architecture. REPLICA can also chain instructionsso that the output from an earlier instruction can be used as input to a laterinstruction in the same execution step.

There are plans in the REPLICA project to develop a new C-based program-ming language, compilers and libraries to speed up development of parallel pro-grams. We have developed a LLVM back-end as a part of the REPLICA projectthat can be used to generate code for the REPLICA architecture. We have alsocreated a simple optimization algorithm to make better use of REPLICAs supportfor instruction level parallelism. Some changes to Clang, LLVMs front-end forC/C++/Objective-C, was also necessary so that we could use assembler in-liningin our REPLICA programs.

Using Clang to compile C-code to LLVMs internal representation and LLVMwith our REPLICA back-end to transform LLVMs internal representation intoMBTAC1 assembler.

Abstract [sv]

REPLICA är en VLIW liknande PRAM-NUMA arkitektur, med möjlighet för attkedja ihop instruktioner så att resultat från tidigare instruktioner kan användassom indata till nästa instruktion i samma exekveringssteg.

Inom REPLICA projetet finns planer på att utecklar ett nytt C-baserat pro-grammeringsspråk, kompilatorer och bibliotek för att snabbba upp utvecklingen avparallella program. Som en del av REPLICA projektet har vi utvecklat ett kompi-lator back-end för LLVM som kan användas för att generera kod till REPLICA. Vihar även utvecklat en enklare optimerings algoritm för att bättre utnyttja REPLI-CAs förmåga för instruktions parallelisering. Vi har även gjort ändringar i Clang,LLVMs front-end för C/C++/Objective-C, så att vi kan använda inline assembleri REPLICA program.

Med Clang kan man kompilera C-kod till LLVMs interna representation somi sin tur genom LLVM och REPLICA back-end kan omvandlas till MBTAC3 as-sembler.

Place, publisher, year, edition, pages
2012. , 78 p.
Keyword [en]
National Category
Computer Science
URN: urn:nbn:se:liu:diva-77405ISRN: LIU-IDA/LITH-EX-A-12/007-SEOAI: diva2:526735
Subject / course
Computer and information science at the Institute of Technology
2012-02-06, Donald Knuth, Linköpings Universitet, Campus Valla, Linköping, 20:31 (Swedish)
Available from: 2012-05-15 Created: 2012-05-14 Last updated: 2012-05-15Bibliographically approved

Open Access in DiVA

fulltext(1855 kB)605 downloads
File information
File name FULLTEXT01.pdfFile size 1855 kBChecksum SHA-512
Type fulltextMimetype application/pdf

Search in DiVA

By author/editor
Åkesson, Daniel
By organisation
PELAB - Programming Environment LaboratoryThe Institute of Technology
Computer Science

Search outside of DiVA

GoogleGoogle Scholar
Total: 605 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

Total: 506 hits
ReferencesLink to record
Permanent link

Direct link