Why I cannot use PgmDependenceGraph?

I want to use PgmDependenceGraph pass , but my pass cannot work with PgmDependenceGraph.
I tried again in Hello2 pass, and it could not work also.
The following is I did with llvm/lib/Transforms/Hello.cpp:
  1.insert #include "llvm/Analysis/PgmDependenceGraph.h" in Hello.cpp.
  2.insert AU.addRequired<PgmDependenceGraph>() in the getAnalysisUsage(AnalysisUsage &AU) of Hello2.
        3.made the hello pass, it passed.
        4.do "opt -load /llvm/lib/Debug/libhello.so -hello2 helloTheWorld.bc", and opt gives me:

opt[0x85aaab8]
opt[0x85aacc4]
/lib/tls/libc.so.6[0x420275c8]
opt(std::vector<__gnu_cxx::_Hashtable_node<std::pair<llvm::Value* const, llvm::]
opt(__gnu_cxx::hashtable<std::pair<llvm::Value* const, llvm::DSNodeHandle>, llv]
opt(__gnu_cxx::hashtable<std::pair<llvm::Value* const, llvm::DSNodeHandle>, llv]
opt(__gnu_cxx::hash_map<llvm::Value*, llvm::DSNodeHandle, __gnu_cxx::hash<llvm:]
opt(llvm::DSScalarMap::find(llvm::Value*)+0x1a)[0x84a998e]
opt(llvm::DSGraph::removeDeadNodes(unsigned)+0x3e1)[0x847def5]
opt(llvm::IPModRef::getFuncInfo(llvm::Function const&, bool)+0xf3)[0x85db297]
opt(llvm::IPModRef::run(llvm::Module&)+0xaf)[0x85db189]
opt(llvm::PassManagerTraits<llvm::Module>::runPass(llvm::Pass*, llvm::Module*)+]
opt(llvm::PassManagerT<llvm::Module>::runOnUnit(llvm::Module*)+0x5e4)[0x857fd5c]
opt(llvm::PassManagerTraits<llvm::Module>::run(llvm::Module&)+0x1b)[0x857f3c3]
opt(llvm::PassManager::run(llvm::Module&)+0x1f)[0x85371ad]
opt(main+0x8c0)[0x8358b00]
/lib/tls/libc.so.6(__libc_start_main+0xe4)[0x42015574]
opt(dlopen+0x41)[0x83581b1]
Segmentation fault

Has anybody tell me the reason and what should I do?

Thanks.

Xia

Unfortunately -ipmodref and the -pgmdepgraph passes (both listed as
experimental in the release notes :slight_smile: ) probably don't work. I don't know
of anyone who is actively using them for some time, and as they have no
tests, they have probably bit rotted. Sorry! :frowning:

What are you trying to do? It's quite possible that you can do it with
the normal AliasAnalysis interface...

-Chris