

A Transformation System for Developing Recursive Programs. Code Generation for a One-Register Machine. Improvements to Graph Coloring Register Allocation. Generation of Optimal Code for Expressions via Factorization. Logic Minimization Techniques with Applications to Cryptology. On the Shortest Linear Straight-Line Program for Computing Linear Forms. On the Complexity of Spill Everywhere under SSA Form. On the Complexity of Register Coalescing. Really Prove? Or Revisiting Register Allocation: Why and How.

Register Allocation: What Does the NP-Completeness Proof of Chaitin et al. An XOR-Based Erasure-Resilient Coding Scheme. EVENODD: an efficient scheme for tolerating double disk failures in RAID architectures.

Code Generation for Expressions with Common Subexpressions. We provide an experimental library, which outperforms Intel's library with an ~8.92 GB/s throughput. Our optimization flow is three-fold: 1) reducing the number of XORs using grammar compression algorithms 2) reducing memory accesses using deforestation, a functional program optimization method and 3) reducing cache misses using the (red-blue) pebble game of program analysis. We formalize such programs as straight-line programs (SLPs) of compiler construction and optimize SLPs using various program optimization techniques. We propose a novel approach based on our observation that XOR-based EC virtually generates programs of a Domain Specific Language for XORing byte arrays.

This paper addresses a significant performance gap between the state-of-the-art XOR-based EC approach (~4.9 GB/s coding throughput) and Intel's high-performance EC library based on another approach (~6.7 GB/s). XOR-based EC is an easy-to-implement method for optimizing EC. Erasure coding (EC) affords data redundancy for large-scale systems.
