Bounds checking: an instance of hybrid analysis

9 Citationer (Scopus)

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..

OriginalsprogEngelsk
TitelProceedings of ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming
Antal sider7
ForlagAssociation for Computing Machinery
Publikationsdato9 jun. 2014
Sider88-94
ISBN (Trykt)978-1-4503-2937-8
DOI
StatusUdgivet - 9 jun. 2014
BegivenhedACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming 2014 - Edinburgh, Storbritannien
Varighed: 12 jun. 201413 jun. 2014

Konference

KonferenceACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming 2014
Land/OmrådeStorbritannien
ByEdinburgh
Periode12/06/201413/06/2014

Citationsformater