How to get Alias Set Information?

Hi, all

I know LLVM has including several implementation of alias anlaysis. Now I
want to get the conservative alias set information, or maybe alias set information.
I print the alias result through command " opt -print-alias-sets -biasicaa … ",
and I found the basic alias analysis does’t consider the global values, so
if I want to get the maybe alias set information of all variables including global variabels,
which alias analysis pass is better for me?

In addition, should I get the alias set information through AliasSetTracker?
Now, I am trying to use AliasSetTracker with Basic Alias Analysis as follow:

PassManager pm;
pm.add(…); // add other passes
aliasInfo = createBasicAliasAnalysisPass();
pm.add(aliasInfo);
pm.run(*module);
aliasTracker = new AliasSetTracker(aliasInfo->getAnalysis());

// For testing this implementation, I using the next code to print the alias set by
// simulating the code in AliasSetPrinter.

for (Module::iterator MIt = module->begin(); MIt != module->end(); ++MIt) {
for (Function::iterator FIt = MIt->begin(); FIt != MIt->end(); ++FIt) {
for (BasicBlock::iterator BIt = FIt->begin(); BIt != FIt->end(); ++BIt) {
aliasTracker->add(&BIt); //**
}
}
aliasTracker->print()
}

However, the program crushed at line “***” with the next backtrace information.
So how should I correctly get the alias set information?

0 klee 0x0000000000edc9af
1 klee 0x0000000000edceb9
2 libpthread.so.0 0x00007f2da192bcb0
3 klee 0x0000000000ce327f llvm::AliasSet::aliasesPointer(llvm::Value const*, unsigned long, llvm::MDNode const*, llvm::AliasAnalysis&) const + 95
4 klee 0x0000000000ce73d7 llvm::AliasSetTracker::findAliasSetForPointer(llvm::Value const*, unsigned long, llvm::MDNode const*) + 167
5 klee 0x0000000000ce865a llvm::AliasSetTracker::getAliasSetForPointer(llvm::Value*, unsigned long, llvm::MDNode const*, bool*) + 3562
6 klee 0x0000000000ce8b58 llvm::AliasSetTracker::add(llvm::LoadInst*) + 200
7 klee 0x00000000006480fd klee::Executor::printAliasSet() + 125
8 klee 0x000000000067744e klee::Executor::run(klee::ExecutionState&) + 878
9 klee 0x00000000006793ce klee::Executor::runFunctionAsMain(llvm::Function*, int, char**, char**, std::vector<int, std::allocator >) + 2446
10 klee 0x0000000000635356 main + 10774
11 libc.so.6 0x00007f2da0b6776d __libc_start_main + 237
12 klee 0x00000000006408f1
Command terminated by signal 11