OOElala: Order-of-evaluation based alias analysis for compiler optimization

5Citations
Citations of this article
9Readers
Mendeley users who have this article in their library.
Get full text

Abstract

In C, the order of evaluation of expressions is unspecified; further for expressions that do not involve function calls, C semantics ensure that there cannot be a data race between two evaluations that can proceed in either order (or concurrently). We explore the optimization opportunity enabled by these non-deterministic expression evaluation semantics in C, and provide a sound compile-time alias analysis to realize the same. Our algorithm is implemented as a part of the Clang/LLVM infrastructure, in a tool called OOElala. Our experimental results demonstrate that the untapped optimization opportunity is significant: code patterns that enable such optimizations are common; the enabled transformations can range from vectorization to improved instruction selection and register allocation; and the resulting speedups can be as high as 2.6x on already-optimized code.

Cited by Powered by Scopus

NOELLE Offers Empowering LLVM Extensions

11Citations
10Readers
Get full text
5Citations
2Readers
2Citations
9Readers

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Cite

CITATION STYLE

APA

Phulia, A., Bhagee, V., & Bansal, S. (2020). OOElala: Order-of-evaluation based alias analysis for compiler optimization. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) (pp. 839–853). Association for Computing Machinery. https://doi.org/10.1145/3385412.3385962

Readers' Seniority

Tooltip

PhD / Post grad / Masters / Doc 2

40%

Researcher 2

40%

Professor / Associate Prof. 1

20%

Readers' Discipline

Tooltip

Computer Science 5

100%

Save time finding and organizing research with Mendeley

Sign up for free