Refined Input, Degraded Output: The Counterintuitive World of Compiler Behavior

5Citations
Citations of this article
6Readers
Mendeley users who have this article in their library.

Abstract

To optimize a program, a compiler needs precise information about it. Significant effort is dedicated to improving the ability of compilers to analyze programs, with the expectation that more information results in better optimization. But this assumption does not always hold: due to unexpected interactions between compiler components and phase ordering issues, sometimes more information leads to worse optimization. This can lead to wasted research and engineering effort whenever compilers cannot efficiently leverage additional information. In this work, we systematically examine the extent to which additional information can be detrimental to compilers. We consider two types of information: dead code, i.e., whether a program location is unreachable, and value ranges, i.e., the possible values a variable can take at a specific program location. Given a seed program, we refine it with additional information and check whether this degrades the output. Based on this approach, we develop a fully automated and effective testing method for identifying such issues, and through an extensive evaluation and analysis, we quantify their existence and prevalence in widely used compilers. In particular, we have reported 59 cases in GCC and LLVM, of which 55 have been confirmed or fixed so far, highlighting the practical relevance and value of our findings. This work's fresh perspective opens up a new direction in understanding and improving compilers.

References Powered by Scopus

Finding and understanding bugs in C compilers

833Citations
214Readers
Get full text
410Citations
130Readers
Get full text

Cited by Powered by Scopus

0Citations
N/AReaders
Get full text

Efficient Code Causes Inefficiency in Compiler Optimizations

0Citations
N/AReaders
Get full text

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Cite

CITATION STYLE

APA

Theodoridis, T., & Su, Z. (2024). Refined Input, Degraded Output: The Counterintuitive World of Compiler Behavior. Proceedings of the ACM on Programming Languages, 8. https://doi.org/10.1145/3656404

Readers over time

‘24‘2501234

Readers' Seniority

Tooltip

PhD / Post grad / Masters / Doc 2

50%

Researcher 2

50%

Readers' Discipline

Tooltip

Computer Science 4

100%

Article Metrics

Tooltip
Social Media
Shares, Likes & Comments: 1

Save time finding and organizing research with Mendeley

Sign up for free
0