MOP framework for LLVM