Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation 2020
DOI: 10.1145/3385412.3386030
|View full text |Cite
|
Sign up to set email alerts
|

Effective function merging in the SSA form

Abstract: Function merging is an important optimization for reducing code size. This technique eliminates redundant code across functions by merging them into a single function. While initially limited to identical or trivially similar functions, the most recent approach can identify all merging opportunities in arbitrary pairs of functions. However, this approach has a serious limitation which prevents it from reaching its full potential. Because it cannot handle phi-nodes, the state-of-the-art applies register demotio… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
10
0

Year Published

2021
2021
2023
2023

Publication Types

Select...
6
1

Relationship

2
5

Authors

Journals

citations
Cited by 22 publications
(10 citation statements)
references
References 20 publications
(12 reference statements)
0
10
0
Order By: Relevance
“…The cost of each instruction comes from querying this compiler's built-in cost model, which provides a cost estimation that approximates the size of an IR instruction when lowered to the target machine. We use the code-size cost model provided by LLVM's targettransformation interface (TTI), which is used in the decision making of most optimizations [11], [25].…”
Section: F Profitability Analysismentioning
confidence: 99%
“…The cost of each instruction comes from querying this compiler's built-in cost model, which provides a cost estimation that approximates the size of an IR instruction when lowered to the target machine. We use the code-size cost model provided by LLVM's targettransformation interface (TTI), which is used in the decision making of most optimizations [11], [25].…”
Section: F Profitability Analysismentioning
confidence: 99%
“…Infeasible paths are also caused by the conflicting clauses found within certain paths. Moreover, infeasible paths could potentially be associated with conditional statements specific to a variable (which is also one of the major causes of the inability to access specific aspects of a program [19,20]). Therefore, to improve the outcomes of the static analysis, a detection stage of the feasible paths within the source code should be in place.…”
Section: Background 21 Static Analysismentioning
confidence: 99%
“…However, this representation introduces a complication at join points of different flow branches. To solve this problem, a φ function is used in places where we could not pinpoint the exact variable "version" [19,20]. A code corresponding to the φ function usage and a simplified graph excerpt are shown in Figure 2b.…”
Section: Background 21 Static Analysismentioning
confidence: 99%
“…FMSA and SalSSa [21,22] were recently introduced as LLVM [14] compilation transformations that target code reduction for embedded devices. Work prior to FMSA is only able to merge equal functions whereas FMSA is able to merge functions with different argument lists, returned values and references as well as differing control flow.…”
Section: Featurementioning
confidence: 99%
“…Finally, neither FMSA nor other function merging approaches have been used for accelerator merging. Both the function merging and the Early-DSE related-work [11,21,22] demonstrate their results on the SPEC CPU2006 suite, and we include these applications in this paper for comparison.…”
Section: Featurementioning
confidence: 99%