2020
DOI: 10.1145/3428288
|View full text |Cite
|
Sign up to set email alerts
|

Contextual dispatch for function specialization

Abstract: In order to generate efficient code, dynamic language compilers often need information, such as dynamic types, not readily available in the program source. Leveraging a mixture of static and dynamic information, these compilers speculate on the missing information. Within one compilation unit, they specialize the generated code to the previously observed behaviors, betting that past is prologue. When speculation fails, the execution must jump back to unoptimized code. In this paper, we propose an approach to f… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
6
0

Year Published

2020
2020
2022
2022

Publication Types

Select...
4
3

Relationship

4
3

Authors

Journals

citations
Cited by 11 publications
(6 citation statements)
references
References 37 publications
0
6
0
Order By: Relevance
“…1 Measurements are recorded repeatedly and we keep a historical record to spot unstable behavior. For some of the experiments we use the major benchmarks from the Ř benchmark suite [12].…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…1 Measurements are recorded repeatedly and we keep a historical record to spot unstable behavior. For some of the experiments we use the major benchmarks from the Ř benchmark suite [12].…”
Section: Discussionmentioning
confidence: 99%
“…For instance, if an assumption fails, as above, because a list holds floating point numbers rather than integers, then the continuation can be specialized to handle floats. In subsequent executions, if the same OSR point is reached, the continuation to invoke will be selected by using context dispatch [12]. If no previously compiled continuation matches the execution context, then a new one will be compiled.…”
Section: Introductionmentioning
confidence: 99%
“…In future work, we want to investigate in more detail how calls relate to each other. Traditional inlining and the work of Flückiger et al [6] show that calling context can be used to enable optimizations, and also to reduce call overhead. Since the performance of many large applications is dominated by calls, it seems relevant to investigate further how call relations can be exploited to reduce call overhead.…”
Section: Discussionmentioning
confidence: 99%
“…Some programs are variants; they use different implementations to solve the same problem. The suite and Ř baseline performance is discussed in detail by Flückiger et al [2020a]. This pre-existing suite was also expanded and three benchmarks were added to show potential performance improvements to be gained through use of the profiler.…”
Section: Discussionmentioning
confidence: 99%

Sampling Optimized Code for Type Feedback

Flückiger,
Wälchli,
Krynski
et al. 2020
Preprint
Self Cite