Tuning applications for multi-core systems involve subtle concepts and target-dependent optimizations. New languages are being designed to express concurrency and locality without reference ticular architecture. But compiling such abstractions into efficient code requires a portable, intermediate representation: this is essential for modular composition (separate compilation), for optimization frameworks independent of the source language, and for just-in-time compilation of bytecode languages. An intermediate representation is also essential to library and other baseline computing ucture developers who cannot afford the abstraction penalty of higher-level languages. But efficiency is nothing if it ruins productivity of the few available experts. Efficiency programmers need an alternative to fragile, ad-hoc optimizations built upon non-deterministic primitives. This paper introduces Erbium, an intermediate representation for compilers, a low-level language for efficiency programmers,...