  A probabilistic program defines a probability measure over its semantic
structures. One common goal of probabilistic programming languages (PPLs) is to
compute posterior probabilities for arbitrary models and queries, given
observed evidence, using a generic inference engine. Most PPL inference
engines---even the compiled ones---incur significant runtime interpretation
overhead, especially for contingent and open-universe models. This paper
describes Swift, a compiler for the BLOG PPL. Swift-generated code incorporates
optimizations that eliminate interpretation overhead, maintain dynamic
dependencies efficiently, and handle memory management for possible worlds of
varying sizes. Experiments comparing Swift with other PPL engines on a variety
of inference problems demonstrate speedups ranging from 12x to 326x.
