Predicting a sequence of upcoming function calls is important for optimizing programs written in modern managed languages (e.g., Java, Javascript, C#.) Existing function call predictions are mainly built on statistical patterns, suitable for predicting a single call but not a sequence of calls. This paper presents a new way to enable call sequence prediction, which exploits program structures through Probabilistic Calling Automata (PCA), a new program representation that captures both the inherent ensuing relations among function calls, and the probabilistic nature of execution paths. It shows that PCA-based prediction outperforms existing predictions, yielding substantial speedup when being applied to guide Just-In-Time compilation. By enabling accurate, efficient call sequence prediction for the first time, PCA-based predictors open up many new opportunities for dynamic program optimizations.
%0 Conference Paper
%1 Zhao:14:CSP
%A Zhao, Zhijia
%A Wu, Bo
%A Zhou, Mingzhou
%A Ding, Yufei
%A Sun, Jianhua
%A Shen, Xipeng
%A Wu, Youfeng
%B Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications
%D 2014
%I Association for Computing Machinery
%K CallGraph automata call calling compilation dynamic function just-in-time optimizations parallel prediction probabilistic sequence
%P 745--762
%R 10.1145/2660193.2660221
%T Call Sequence Prediction through Probabilistic Calling Automata
%X Predicting a sequence of upcoming function calls is important for optimizing programs written in modern managed languages (e.g., Java, Javascript, C#.) Existing function call predictions are mainly built on statistical patterns, suitable for predicting a single call but not a sequence of calls. This paper presents a new way to enable call sequence prediction, which exploits program structures through Probabilistic Calling Automata (PCA), a new program representation that captures both the inherent ensuing relations among function calls, and the probabilistic nature of execution paths. It shows that PCA-based prediction outperforms existing predictions, yielding substantial speedup when being applied to guide Just-In-Time compilation. By enabling accurate, efficient call sequence prediction for the first time, PCA-based predictors open up many new opportunities for dynamic program optimizations.
%@ 9781450325851
@inproceedings{Zhao:14:CSP,
abstract = {Predicting a sequence of upcoming function calls is important for optimizing programs written in modern managed languages (e.g., Java, Javascript, C#.) Existing function call predictions are mainly built on statistical patterns, suitable for predicting a single call but not a sequence of calls. This paper presents a new way to enable call sequence prediction, which exploits program structures through Probabilistic Calling Automata (PCA), a new program representation that captures both the inherent ensuing relations among function calls, and the probabilistic nature of execution paths. It shows that PCA-based prediction outperforms existing predictions, yielding substantial speedup when being applied to guide Just-In-Time compilation. By enabling accurate, efficient call sequence prediction for the first time, PCA-based predictors open up many new opportunities for dynamic program optimizations.},
added-at = {2021-03-21T15:24:53.000+0100},
author = {Zhao, Zhijia and Wu, Bo and Zhou, Mingzhou and Ding, Yufei and Sun, Jianhua and Shen, Xipeng and Wu, Youfeng},
biburl = {https://www.bibsonomy.org/bibtex/20f152f401033cf4f5cf4405d634b408b/gron},
booktitle = {Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications},
doi = {10.1145/2660193.2660221},
interhash = {f4a065c3153c42392ecd4541d902336c},
intrahash = {0f152f401033cf4f5cf4405d634b408b},
isbn = {9781450325851},
keywords = {CallGraph automata call calling compilation dynamic function just-in-time optimizations parallel prediction probabilistic sequence},
location = {Portland, Oregon, USA},
numpages = {18},
pages = {745--762},
publisher = {Association for Computing Machinery},
series = {OOPSLA '14},
timestamp = {2021-03-21T15:24:53.000+0100},
title = {{Call Sequence Prediction through Probabilistic Calling Automata}},
year = 2014
}