Writing a compiler pass in LLVM