skip to main content
10.1145/3033019acmotherconferencesBook PagePublication PagesccConference Proceedingsconference-collections
CC 2017: Proceedings of the 26th International Conference on Compiler Construction
ACM2017 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
CC '17: Compiler Construction Austin TX USA February 5 - 6, 2017
ISBN:
978-1-4503-5233-8
Published:
05 February 2017
Recommend ACM DL
ALREADY A SUBSCRIBER?SIGN IN

Reflects downloads up to 02 Mar 2025Bibliometrics
Abstract

No abstract available.

Skip Table Of Content Section
SESSION: Concurrency and Parallelism
research-article
Partially redundant fence elimination for x86, ARM, and power processors

We show how partial redundancy elimination (PRE) can be instantiated to perform provably correct fence elimination for multi-threaded programs running on top of the x86, ARM and IBM Power relaxed memory models. We have implemented our algorithm in the ...

research-article
Lightweight data race detection for production runs

To detect data races that harm production systems, program analysis must target production runs. However, sound and precise data race detection adds too much run-time overhead for use in production systems. Even existing approaches that provide ...

research-article
Optimized two-level parallelization for GPU accelerators using the polyhedral model

While GPUs play an increasingly important role in today's high-performance computers, optimizing GPU performance continues to impose large burdens upon programmers. A major challenge in optimizing codes for GPUs stems from the two levels of hardware ...

research-article
Optimization space pruning without regrets

Many computationally-intensive algorithms benefit from the wide parallelism offered by Graphical Processing Units (GPUs). However, the search for a close-to-optimal implementation remains extremely tedious due to the specialization and complexity of GPU ...

SESSION: Compilers
research-article
Compile-time function memoization

Memoization is the technique of saving the results of computations so that future executions can be omitted when the same inputs repeat. Recent work showed that memoization can be applied to dynamically linked pure functions using a load-time technique ...

research-article
One compiler: deoptimization to optimized code

A multi-tier virtual machine (VM) deoptimizes and transfers last-tier execution to the first-tier execution when a speculative optimization is invalidated. The first-tier target of deoptimization is either an interpreter or code compiled by a baseline ...

research-article
Static optimization in PHP 7

PHP is a dynamically typed programming language commonly used for the server-side implementation of web applications. Approachability and ease of deployment have made PHP one of the most widely used scripting languages for the web, powering important ...

research-article
Public Access
From functional programs to pipelined dataflow circuits

We present a translation from programs expressed in a functional IR into dataflow networks as an intermediate step within a Haskell-to-Hardware compiler. Our networks exploit pipeline parallelism, particularly across multiple tail-recursive calls, via ...

SESSION: Types
research-article
Public Access
Granullar: gradual nullable types for Java

Object-oriented languages like Java and C# allow the null value for all references. This supports many flexible patterns, but has led to many errors, security vulnerabilities, and system crashes. % Static type systems can prevent null-pointer ...

research-article
Open Access
Let it recover: multiparty protocol-induced recovery

Fault-tolerant communication systems rely on recovery strategies which are often error-prone (e.g. a programmer manually specifies recovery strategies) or inefficient (e.g. the whole system is restarted from the beginning). This paper proposes a static ...

SESSION: Program Analysis
research-article
Public Access
Data structure-aware heap partitioning

There are many applications of program (or heap) partitioning, such as computation offloading, region-based memory management, and OS-driven memory locality optimizations. Although these applications are conceptually different, fundamentally, they must ...

research-article
Dynamic symbolic execution for polymorphism

Symbolic execution is an important program analysis technique that provides auxiliary execution semantics to execute programs with symbolic rather than concrete values. There has been much recent interest in symbolic execution for automatic test case ...

research-article
Public Access
rev.ng: a unified binary analysis framework to recover CFGs and function boundaries

Static binary analysis is a key tool to assess the security of third-party binaries and legacy programs. Most forms of binary analysis rely on the availability of two key pieces of information: the program's control-flow graph and function boundaries. ...

Contributors
  • Saarland University

Index Terms

  1. Proceedings of the 26th International Conference on Compiler Construction

    Recommendations