Abstract
This paper presents an analysis for bounds checking of array subscripts that lifts checking assertions to program level under the form of an arbitrarily-complex predicate (inspector), whose runtime evaluation guards the execution of the code of interest. Separating the predicate from the computation makes it more amenable to optimization, and allows it to be split into a cascade of sufficient conditions of increasing complexity that optimizes the commoninspection path. While synthesizing the bounds checking invariant resembles type checking techniques, we rely on compiler simplification and runtime evaluation rather than employing complex inference and annotation systems that might discourage the nonspecialist user. We integrate the analysis in the compiler's repertoire of Futhark: a purely-functional core language supporting mapreduce nested parallelism on regular arrays, and show how the highlevel language invariants enable a relatively straightforward analysis. Finally, we report a qualitative evaluation of our technique on three real-world applications from the financial domain that indicates that the runtime overhead of predicates is negligible..
Originalsprog | Engelsk |
---|---|
Titel | Proceedings of ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming |
Antal sider | 7 |
Forlag | Association for Computing Machinery |
Publikationsdato | 9 jun. 2014 |
Sider | 88-94 |
ISBN (Trykt) | 978-1-4503-2937-8 |
DOI | |
Status | Udgivet - 9 jun. 2014 |
Begivenhed | ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming 2014 - Edinburgh, Storbritannien Varighed: 12 jun. 2014 → 13 jun. 2014 |
Konference
Konference | ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming 2014 |
---|---|
Land/Område | Storbritannien |
By | Edinburgh |
Periode | 12/06/2014 → 13/06/2014 |