2006
DOI: 10.1016/j.sysarc.2006.03.001
|View full text |Cite
|
Sign up to set email alerts
|

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

Abstract: 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 livenes… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
4
0

Year Published

2007
2007
2020
2020

Publication Types

Select...
3

Relationship

3
0

Authors

Journals

citations
Cited by 3 publications
(4 citation statements)
references
References 12 publications
0
4
0
Order By: Relevance
“…Other work on link-time optimization has targeted program size on the Alpha platform [Debray et al 2000;De Sutter et al 2002, 2005b. In that work, an average code size reduction of 27% was achieved on benchmarks similar to those used in this paper.…”
Section: Program Size Reductionmentioning
confidence: 76%
See 1 more Smart Citation
“…Other work on link-time optimization has targeted program size on the Alpha platform [Debray et al 2000;De Sutter et al 2002, 2005b. In that work, an average code size reduction of 27% was achieved on benchmarks similar to those used in this paper.…”
Section: Program Size Reductionmentioning
confidence: 76%
“…Optimizing linkers have a wholeprogram overview over the compiled object files and precompiled code libraries and optimize them together to produce smaller, faster, or less power-hungry executable binaries. Existing research prototypes such as Squeeze++ [De Sutter et al 2002, 2005bDebray et al 2000 and alto [Muth et al 2001], and commercial tools such as OM [Srivastava and Wall 1994] and Spike [Cohn et al 1997] have shown that significant code size reductions and speedups can indeed be obtained with link-time optimization. Unfortunately for the embedded systems community, these tools all operate in the Tru64Unix workstation and server environment.…”
Section: Introductionmentioning
confidence: 99%
“…To test whether sufficient glue code can be generated to make a fragment set actually factorable, we use a bidirectional, context-sensitive interprocedural liveness analysis [32]. To identify already available constants as input to dispatchers, we perform a flow-sensitive, context-sensitive (k-depth with k=1) constant propagation analysis [33].…”
Section: Actual Factoring Candidatesmentioning
confidence: 99%
“…In such cases, we need to find one or more free (i.e., dead) registers to rename registers before performing the duplication, or to store copies of the original source operand values temporarily. Our prototype finds such free registers by means of a state-of-the-art bidirectional context-sensitive interprocedural liveness analysis [18]. When free registers are found, we can simply use them, as shown in Figure 2(b).…”
Section: Conditional Branch Duplicationmentioning
confidence: 99%