Proceedings of the 22nd ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems 2021
DOI: 10.1145/3461648.3463852
|View full text |Cite
|
Sign up to set email alerts
|

HyFM: function merging for free

Abstract: Function merging is an important optimization for reducing code size. The existing state-of-the-art relies on a wellknown sequence alignment algorithm to identify duplicate code across whole functions. However, this algorithm is quadratic in time and space on the number of instructions. This leads to very high time overheads and prohibitive levels of memory usage even for medium-sized benchmarks. For larger programs, it becomes impractical. This is made worse by an overly eager merging approach. All selected p… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
21
0

Year Published

2022
2022
2022
2022

Publication Types

Select...
5

Relationship

4
1

Authors

Journals

citations
Cited by 14 publications
(21 citation statements)
references
References 27 publications
(19 reference statements)
0
21
0
Order By: Relevance
“…In the last few years, there has been a flurry of function merging techniques that rely on Sequence Alignment [6]- [8]. They have significant differences but they all work following these key stages: a) select pairs of similar functions for merging, b) merge each pair of functions by using sequence alignment to identify equivalent code that can be reused by both functions, and c) if deemed profitable, replace the two original functions with the merged function that combines the functionality of both.…”
Section: A Function Merging Via Sequence Alignmentmentioning
confidence: 99%
See 4 more Smart Citations
“…In the last few years, there has been a flurry of function merging techniques that rely on Sequence Alignment [6]- [8]. They have significant differences but they all work following these key stages: a) select pairs of similar functions for merging, b) merge each pair of functions by using sequence alignment to identify equivalent code that can be reused by both functions, and c) if deemed profitable, replace the two original functions with the merged function that combines the functionality of both.…”
Section: A Function Merging Via Sequence Alignmentmentioning
confidence: 99%
“…The execution of mismatched subsequences in the merged function is guarded by an original function identifier but matching subsequences are not guarded and are executed regardless of the function identifier. Figure 1 illustrates the function merging workflow in HyFM [8], which is the stateof-the-art used throughout this paper. Its code alignment strategy works on the basic block level, with a linear alignment algorithm applied on pairs of similar blocks.…”
Section: A Function Merging Via Sequence Alignmentmentioning
confidence: 99%
See 3 more Smart Citations