2004
DOI: 10.1016/j.scico.2004.03.009
|View full text |Cite
|
Sign up to set email alerts
|

Type-safe method inlining

Abstract: In a typed language such as Java, inlining of virtual methods does not always preserve typability. The best known solution to this problem is to insert type casts, which may hurt performance. This paper presents a solution that never hurts performance. The solution is based on a transformation that modifies static type annotations and changes some virtual calls into static calls, which can then be safely inlined. The transformation is parametrised by a flow analysis, and for any analysis that satisfies certain… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
9
0

Year Published

2004
2004
2012
2012

Publication Types

Select...
3
2
1

Relationship

1
5

Authors

Journals

citations
Cited by 6 publications
(9 citation statements)
references
References 29 publications
0
9
0
Order By: Relevance
“…First of all, as already described, the flow analysis used during class loading and JIT compilation is CHA. As demonstrated by Glew and Palsberg [7], CHA is the simplest flow analysis which supports typesafe method inlining in a setting without class loading. Moreover, CHA is fast and therefore an attractive choice for a JIT compiler.…”
Section: Our Resultsmentioning
confidence: 99%
See 3 more Smart Citations
“…First of all, as already described, the flow analysis used during class loading and JIT compilation is CHA. As demonstrated by Glew and Palsberg [7], CHA is the simplest flow analysis which supports typesafe method inlining in a setting without class loading. Moreover, CHA is fast and therefore an attractive choice for a JIT compiler.…”
Section: Our Resultsmentioning
confidence: 99%
“…Our own previous work [7] shows how traditional whole program devirtualisation techniques can be done in a typeability preserving manner without sacrificing performance. Our paper and other work in this area (see [7] for references) has addressed only whole program analysis and optimisation-it does not address dynamic class loading.…”
Section: Type Preservationmentioning
confidence: 99%
See 2 more Smart Citations
“…Moreover, a declaration of a method with the same signature as M must occur in a supertype of the type of E. This latter fact is expressed in rule (4) using Definition 2 by way of an or-constraint. For cast expressions of the form (C)E, rule (21) defines the type of the cast to be C. Moreover, rule (12) states the requirement that the type of E must be a supertype of C 12 . Rules (18)- (22) define the types of variables, parameters, fields, method return types, casts, and allocation sites in the original program.…”
Section: Inferring Type Constraintsmentioning
confidence: 99%