Checkpoint: basic implementation of struct allocation hoisting within loop bodies.
Checkpoint: Limit struct allocation hoisting to function arguments that don't escape (for now).