A compiler for the Imp language that generates code in LLVM IR