2014
DOI: 10.1145/2714064.2660229
|View full text |Cite
|
Sign up to set email alerts
|

Space-efficient multi-versioning for input-adaptive feedback-driven program optimizations

Abstract: Function versioning is an approach to addressing inputsensitivity of program optimizations. A major side effect of it is notable code size increase, which has been hindering its broad applications to large code bases and space-stringent environments. In this paper, we initiate a systematic exploration into the problem, providing answers to some fundamental questions: Given a space constraint, to which function we should apply versioning? How many versions of a function should we include in the final executable… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2

Citation Types

0
2
0

Year Published

2016
2016
2017
2017

Publication Types

Select...
2

Relationship

0
2

Authors

Journals

citations
Cited by 2 publications
(2 citation statements)
references
References 27 publications
0
2
0
Order By: Relevance
“…Zhou et al [7] present a space-efficient multi-versioning algorithm targeting large code bases and space limited environments, focusing on good performance improvements with only small size increase. They do not investigate the impact of code size increases on performance and cache behavior in detail, and target primarily space-restricted embedded systems rather than multi-core parallel environments.…”
Section: Related Workmentioning
confidence: 99%
“…Zhou et al [7] present a space-efficient multi-versioning algorithm targeting large code bases and space limited environments, focusing on good performance improvements with only small size increase. They do not investigate the impact of code size increases on performance and cache behavior in detail, and target primarily space-restricted embedded systems rather than multi-core parallel environments.…”
Section: Related Workmentioning
confidence: 99%
“…Software multi-versioning was proposed to reduce the overhead of code instrumentation [4,8,10,14,16,30], for checking program correctness [14], for loop parallelization, for automatic, speculative optimizations [7,19,29], or to optimize the execution for different inputs [41,46]. The technique periodically switches between highoverhead instrumenting versions and more efficient original or optimized versions [4,8,10,16].…”
Section: Related Workmentioning
confidence: 99%