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.

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

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free