Checkpointing. Breaking llvm backend into separate files.