Sciweavers

JSA
2006

Bidirectional liveness analysis, or how less than half of the Alpha's registers are used

13 years 11 months ago
Bidirectional liveness analysis, or how less than half of the Alpha's registers are used
Interprocedural data flow analyses of executable programs suffer from the conservative assumptions that need to be made because no precise control flow graph is available and because registers are spilled onto the stack. This paper discusses the exploitation of calling-conventions in executable code data flow analyses to avoid the propagation of the conservative assumptions throughout a program. Based on this exploitation, the existing backward liveness analyses are improved, and a complementary forward liveness analysis is proposed. For the SPECint2000 programs compiled for the Alpha architecture, the combined forward and improved backward analysis on average finds 62% more free registers than the existing stateof-the-art liveness analysis. With the improved analysis, we are able to show that on average less than half of the registers of the RISC Alpha architecture are used. This contradicts the common wisdom that compilers can exploit large, uniform register files as found on RISC a...
Bjorn De Sutter, Bruno De Bus, Koen De Bosschere
Added 13 Dec 2010
Updated 13 Dec 2010
Type Journal
Year 2006
Where JSA
Authors Bjorn De Sutter, Bruno De Bus, Koen De Bosschere
Comments (0)