673 papers · page 11 of 34
Nicholas Ng, Nobuko Yoshida
Go is a programming language developed at Google, with channel-based concurrent features based on CSP. Go can detect global communication deadlocks at runtime when all threads of execution are blocked, but deadlocks in other paths of execution could be undetected. We present a ne…
Phitchaya Mangpo Phothilimthana, Aditya Thakur, Rastislav Bodík, Dinakar Dhurjati
Developing an optimizing compiler backend remains a laborious process, especially for nontraditional ISAs that have been appearing recently. Superoptimization sidesteps the need for many code transformations by searching for the most optimal instruction sequence semantically equi…
François Pottier
Given an LR(1) automaton, what are the states in which an error can be detected? For each such "error state", what is a minimal input sentence that causes an error in this state? We propose an algorithm that answers these questions. This allows building a collection of pairs of a…
Samyam Rajbhandari, Jinsung Kim, Sriram Krishnamoorthy, Louis-Noël Pouchet, Fabrice Rastello, Robert J. Harrison, P. Sadayappan
Loop fusion is a key program transformation for data locality optimization that is implemented in production compilers. But optimizing compilers for imperative languages currently cannot ex- ploit fusion opportunities across a set of recursive tree traversal computations with pro…
Bruno Rodrigues, Fernando Magno Quintão Pereira, Diego F. Aranha
Information flow analyses traditionally use the Program Dependence Graph (PDG) as a supporting data-structure. This graph relies on Ferrante et al.'s notion of control dependences to represent implicit flows of information. A limitation of this approach is that it may create O(|I…
Aravind Sankar, Soham Chakraborty, V. Krishna Nandivada
May-Happen-in-Parallel (MHP) analysis is becoming the backbone of many of the parallel analyses and optimizations. In this paper, we present new approaches to do MHP analysis for X10-like languages that support async-finish-atomic parallelism. We present a fast incremental MHP al…
Bernhard Scholz, Herbert Jordan, Pavle Subotic, Till Westmann
Designing and crafting a static program analysis is challenging due to the complexity of the task at hand. Among the challenges are modelling the semantics of the input language, finding suitable abstractions for the analysis, and handwriting efficient code for the analysis in a …
Vineet Singh, Rajiv Gupta, Iulian Neamtiu
Specification-based data structure verification is a powerful debugging technique. In this work we combine specification-based data structure verification with automatic detection of faulty program statements that corrupt data structures. The user specifies the consistency constr…
Yulei Sui, Jingling Xue
This paper presents SVF, a tool that enables scalable and precise interprocedural Static Value-Flow analysis for C programs by leveraging recent advances in sparse analysis. SVF, which is fully implemented in LLVM, allows value-flow construction and pointer analysis to be perform…
Haowei Wu, Shengqian Yang, Atanas Rountev
For static analysis researchers, Android software presents a wide variety of interesting challenges. The target of our work is static detection of energy-drain defects in Android applications. The management of energy-intensive resources (e.g., GPS) creates various opportunities …
Minjia Zhang, Swarnendu Biswas, Michael D. Bond
It is notoriously difficult to achieve both correctness and scalability for many shared-memory parallel programs. To improve correctness and scalability, researchers have developed various kinds of parallel runtime support such as multithreaded record & replay and software transa…
Hilmar Ackermann, Christoph Reichenbach, Christian Müller, Yannis Smaragdakis
Abstract elided by the publisher.
Ali Afroozeh, Anastasia Izmaylova
Abstract elided by the publisher.
Nicholas Allen, Bernhard Scholz, Padmanabhan Krishnan
Abstract elided by the publisher.
Timothy Bourke, Jean-Louis Colaço, Bruno Pagano, Cédric Pasteur, Marc Pouzet
Abstract elided by the publisher.
Sebastian Buchwald
Abstract elided by the publisher.
Alain Darte, Alexandre Isoard
Loop tiling is a loop transformation widely used to improve spatial and temporal data locality, to increase computation granularity, and to enable blocking algorithms, which are particularly useful when offloading kernels on computing units with smaller memories. When caches are …
Delphine Demange, David Pichardie, Léo Stefanesco
Abstract elided by the publisher.
Nicholas Hollingum, Bernhard Scholz
Abstract elided by the publisher.
Nicholas Ng, José Gabriel de Figueiredo Coutinho, Nobuko Yoshida
Abstract elided by the publisher.