Abstract | ||
---|---|---|
The Single Instruction, Multiple Data (SIMD) execution model has been receiving renewed attention recently. This awareness stems from the rise of graphics processing units (GPUs) as a powerful alternative for parallel computing. Many compiler optimizations have been recently proposed for this hardware, but register allocation is a field yet to be explored. In this context, this paper describes a register spiller for SIMD machines that capitalizes on the opportunity to share identical data between threads. It provides two different benefits: first, it uses less memory, as more spilled values are shared among threads. Second, it improves the access times to spilled values. We have implemented our proposed allocator in the Ocelot open source compiler, and have been able to speedup the code produced by this framework by 21%. Although we have designed our algorithm on top of a linear scan register allocator, we claim that our ideas can be easily adapted to fit the necessities of other register allocators. |
Year | DOI | Venue |
---|---|---|
2012 | 10.1007/978-3-642-33182-4_3 | SBLP |
Keywords | Field | DocType |
ocelot open source compiler,register allocation,simd machine,compiler optimizations,spill code placement,single instruction,proposed allocator,register spiller,multiple data,register allocator,register allocators | Shared memory,Register allocation,Computer science,Parallel computing,SIMD,Optimizing compiler,Thread (computing),Compiler,Execution model,Allocator | Conference |
Citations | PageRank | References |
4 | 0.45 | 24 |
Authors | ||
4 |
Name | Order | Citations | PageRank |
---|---|---|---|
Diogo Nunes Sampaio | 1 | 4 | 0.79 |
Elie Gedeon | 2 | 4 | 0.45 |
Fernando Magno Quintão Pereira | 3 | 216 | 20.03 |
Sylvain Collange | 4 | 166 | 18.07 |