Writing a compiler pass for llvm compiler