2002
DOI: 10.1007/3-540-45937-5_21
|View full text |Cite
|
Sign up to set email alerts
|

Effective Enhancement of Loop Versioning in Java

Abstract: Abstract. Run-time exception checking is required by the Java Language Specification (JLS). Though providing higher software reliability, that mechanism negatively affects performance of Java programs, especially those computationally intensive. This paper pursues loop versioning, a simple program transformation which often helps to avoid the checking overhead. Basing upon the Java Memory Model precisely defined in JLS, the work proposes a set of sufficient conditions for applicability of loop versioning. Scal… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2004
2004
2007
2007

Publication Types

Select...
2
1

Relationship

0
3

Authors

Journals

citations
Cited by 3 publications
(3 citation statements)
references
References 14 publications
0
3
0
Order By: Relevance
“…For example, loop versioning [Suganuma et al 2000;Mikheev et al 2002] is an optimization technique for hoisting the array bound exception checking code for an individual array access outside a loop by providing two copies of the loop: the unoptimized loop, where exception checking code is retained as in the original loop, and the optimized loop, where all array exception checking code is eliminated. Guard code is provided to examine the whole range of the index against the bound of the arrays accessed within the loop.…”
Section: Discussionmentioning
confidence: 99%
“…For example, loop versioning [Suganuma et al 2000;Mikheev et al 2002] is an optimization technique for hoisting the array bound exception checking code for an individual array access outside a loop by providing two copies of the loop: the unoptimized loop, where exception checking code is retained as in the original loop, and the optimized loop, where all array exception checking code is eliminated. Guard code is provided to examine the whole range of the index against the bound of the arrays accessed within the loop.…”
Section: Discussionmentioning
confidence: 99%
“…A common solution to this problem uses loop versioning (see for example [11]). An optimized version of the loop without bounds checks is executed when it is known that the checks are unnecessary, and the unmodified loop with bounds checks is executed otherwise.…”
Section: Loop-invariant Checksmentioning
confidence: 99%
“…We perform two kinds of loop optimizations: loop versioning and loop simplification. Loop versioning [1,17] is a technique to eliminate the exception-checking code within a loop by creating two versions of the loop: an optimized loop and an unoptimized loop. Guard code is provided at the loop entry for checking the possibility of raising an exception within the loop, and-depending on the result of the entry check-either the optimized loop or the unoptimized loop is selected at runtime.…”
Section: Loop Optimizationsmentioning
confidence: 99%