ARUN TEWATIA via llvm-dev
2016-May-13 10:52 UTC
[llvm-dev] LLVM CFLAliasAnalysis Inter-Procedural Queries not working
Hello, I am trying to implement inter-procedural alias analysis using CFLAliasAnalysis pass. I am using llvm-3.8.0 version. I tried to use query function of this pass. I passed memory locations of two store instructions of two different local variables from two different functions. These two locations will not alias. But unfortunately, I get an assertion failed message: "Interprocedural queries not supported." I tried debugging this assertion failed message. It is generated from file CFLAliasAnalysis.cpp in query function. assert((!MaybeFnB.hasValue() || *MaybeFnB == *MaybeFnA) && http://llvm.org/docs/doxygen/html/CFLAliasAnalysis_8cpp_source.html In my understanding, CFLAA should allows inter-procedural alias analysis. However, this assertion seems to be contradicting and stops it from executing inter-procedural alias analysis. What am I missing ? Could you please guide me as to how I can use it for inter-procedural alias analysis ? Thanks in advance !! -- *Arun Tewatia* -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160513/7b27a581/attachment.html>
Hal Finkel via llvm-dev
2016-May-13 18:32 UTC
[llvm-dev] LLVM CFLAliasAnalysis Inter-Procedural Queries not working
Hi Arun, CFL-AA does support some limited amount of IPA, but only internally. It is not something you can access explicitly. When analyzing call instructions, internally, it makes use of information about the callee. In general, our AA interface does not support direct interprocedural queries. We've never even defined the semantics for what that would mean. What are you trying to do? -Hal ----- Original Message -----> From: "ARUN TEWATIA via llvm-dev" <llvm-dev at lists.llvm.org> > To: llvm-dev at lists.llvm.org > Sent: Friday, May 13, 2016 5:52:22 AM > Subject: [llvm-dev] LLVM CFLAliasAnalysis Inter-Procedural Queries > not working> Hello,> I am trying to implement inter-procedural alias analysis using > CFLAliasAnalysis pass. I am using llvm-3.8.0 version.> I tried to use query function of this pass. I passed memory locations > of two store instructions of two different local variables from two > different functions. These two locations will not alias.> But unfortunately, I get an assertion failed message: > "Interprocedural queries not supported."> I tried debugging this assertion failed message. It is generated from > file CFLAliasAnalysis.cpp in query function.> assert((!MaybeFnB.hasValue() || *MaybeFnB == *MaybeFnA) &&> http://llvm.org/docs/doxygen/html/CFLAliasAnalysis_8cpp_source.html> In my understanding, CFLAA should allows inter-procedural alias > analysis. However, this assertion seems to be contradicting and > stops it from executing inter-procedural alias analysis. What am I > missing ? Could you please guide me as to how I can use it for > inter-procedural alias analysis ?> Thanks in advance !! > --> Arun Tewatia> _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160513/58f0ce98/attachment.html>