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<AliasAnalysis>()); // 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<int> >) + 2446 10 klee 0x0000000000635356 main + 10774 11 libc.so.6 0x00007f2da0b6776d __libc_start_main + 237 12 klee 0x00000000006408f1 Command terminated by signal 11 Thank you all in advance! -------------------------------------------- Qiuping Yi Institute Of Software Chinese Academy of Sciences -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150129/98cacfc9/attachment.html>