AOP framework for LLVM