people | publications | software

Software developed by our group is available below.

A Model Checker for C11/C++11 Atomics

Irvine Research Compiler

The Irvine Research Compiler (IRC) compiles a subset of Java source into C. It was designed to support research projects that crosscut both the compiler frontend and the runtime system. It is straightforward to develop new features that require extending both the source language and the runtime system. It contains support for Bamboo, Bristlecone, Software Transactional Memory, Distributed Transactional Memory, standard threaded Java, and Disjointness analysis. It contains a precise copying garbage collector.

Benchmarks for Distributed Transactional Memory

Benchmarks that were designed to evaluate our Distributed Transactional Memory(DSTM) system. It can be compiled using our IRC.

Please contact for more information.

Java STAMP Benchmark Suite Version 0.5

Java ports of the STAMP benchmark suite. They are written in the IRC dialect of Java and can be compiled with the STM support of IRC.

Please contact for more information.

Data Structure Repair Version 0.5

Data structure repair compiler.

Please contact for more information.

Transactional I/O Library Version 2 (Complete rewrite)

Transactional I/O Library Version 0.5

Library for Transactional File Access. Implements a file API that can be used inside of transactions. Works with the DSTM2 transactional memory implementation.

Please contact for more information.

Transaction Simulator Version 0.6

Transaction Simulator Version 0.5

Discrete event simulator for software transactional memory. It supports simulating various contention management policies to understand the tradeoffs of various contention management policies independent of the overheads of the transactional memory implementation.
Traces for JStamp

Please contact for more information.

View Compiler Version 1.0

Views are a novel language extension which enables developers to declaratively specify fine-grained (sub-object-level) locking policies. Provide static support for detecting many race conditions. Work done with Patrick Lam.

Please contact for more information.


Garm is a tool that can enforce data access policies on arbitrary binaries. It uses the Valgrind binary rewriting engine to rewrite binaries to maintain the provenance of data and then uses the provenance information to enforce policies. It can trace provenance across application boundaries and enforce policies across application boundaries. It uses fine-grained encryption to prevent accesses that bypass Garm's enforcement layer.

Please contact for more information.

people | publications | software