diff --git a/llvm/include/llvm-c/Analysis.h b/llvm/include/llvm-c/Analysis.h --- a/llvm/include/llvm-c/Analysis.h +++ b/llvm/include/llvm-c/Analysis.h @@ -54,6 +54,12 @@ void LLVMViewFunctionCFG(LLVMValueRef Fn); void LLVMViewFunctionCFGOnly(LLVMValueRef Fn); +/** + * Create and add the globals mod/ref alias analysis pass to the given pass + * manager. + */ +void LLVMAddGlobalsAAWrapperPass(LLVMPassManagerRef PM); + /** * @} */ diff --git a/llvm/lib/Analysis/Analysis.cpp b/llvm/lib/Analysis/Analysis.cpp --- a/llvm/lib/Analysis/Analysis.cpp +++ b/llvm/lib/Analysis/Analysis.cpp @@ -8,6 +8,8 @@ #include "llvm-c/Analysis.h" #include "llvm-c/Initialization.h" +#include "llvm/Analysis/GlobalsModRef.h" +#include "llvm/IR/LegacyPassManager.h" #include "llvm/IR/Module.h" #include "llvm/IR/Verifier.h" #include "llvm/InitializePasses.h" @@ -135,3 +137,7 @@ Function *F = unwrap(Fn); F->viewCFGOnly(); } + +void LLVMAddGlobalsAAWrapperPass(LLVMPassManagerRef PM) { + unwrap(PM)->add(createGlobalsAAWrapperPass()); +}