working on LLVM IR generation