2003
DOI: 10.1016/s0167-6423(02)00134-x
|View full text |Cite
|
Sign up to set email alerts
|

Eliminating dead code on recursive data

Abstract: This paper describes a general and powerful method for dead code analysis and elimination in the presence of recursive data constructions. We represent partially dead recursive data using liveness patterns based on general regular tree grammars extended with the notion of live and dead, and we formulate the analysis as computing liveness patterns at all program points based on program semantics. This analysis yields a most precise liveness pattern for the data at each program point, which i s signi cantly more… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
6
0

Year Published

2007
2007
2024
2024

Publication Types

Select...
3
3
2

Relationship

0
8

Authors

Journals

citations
Cited by 16 publications
(6 citation statements)
references
References 34 publications
0
6
0
Order By: Relevance
“…Code analysis and code quality improvement have long been dynamic research areas within software engineering research. Efforts have targeted from unused variables [33] or dead-code elimination in recursive data [18] to parallel programs [16].…”
Section: Related Workmentioning
confidence: 99%
“…Code analysis and code quality improvement have long been dynamic research areas within software engineering research. Efforts have targeted from unused variables [33] or dead-code elimination in recursive data [18] to parallel programs [16].…”
Section: Related Workmentioning
confidence: 99%
“…. , e k ) is "strictly" necessary to obtain the value of e. The counterpart of this notion has been studied in a number of different analysis techniques such as dead code analysis (Liu and Stoller 2002), unneededness analysis (Hughes 1988), absence analysis (Cousot and Cousot 1994), filtering analysis (Leuschel and Sørensen 1996), or useless analysis (Wand and Siveroni 1999). Also, similar techniques to detect and remove parts of a program which are computationally irrelevant have been investigated in the past: program specialization (Alpuente et al 1997;Alpuente et al 1998;Alpuente et al 1999;Leuschel and Martens 1995;Pettorossi and Proietti 1994;Pettorossi and Proietti 1996a), slicing (Gouranton 1998;Schoenig and Ducasse 1996;Reps and Turnidge 1996;Szilagyi et al 2002;Tip 1995;Weiser 1984), compile-time garbage collection (Jones and Métayer 1989;Park and Goldberg 1992;Knoop et al 1994), and dead code removal (Berardi et al 2000;Kobayashi 2000;Liu and Stoller 2002).…”
Section: Examplementioning
confidence: 99%
“…All these works address the problem of safe elimination of dead variables but heavily handle data structures. A notable exception is Liu and Stoller (2002), where Liu and Stoller discuss how to safely eliminate dead code in the presence of recursive data structures by applying a methodology based on regular tree grammars. Unfortunately, the method in Liu and Stoller (2002) does not apply to achieve the optimization pursued in our running example applast.…”
Section: Example 21mentioning
confidence: 99%
See 1 more Smart Citation
“…However, none of these analyses have been context sensitive, an aspect we have found crucial to our application. Dead-assignment elimination through partially-dead data structures has been studied by Liu and Stoller and by Reps [22,27]. Both these works support recursive liveness patterns, a capability missing in SCF.…”
Section: Related Workmentioning
confidence: 99%