[cfe-commits] r77943 - in /cfe/trunk: include/clang/Analysis/PathSensitive/AnalysisManager.h lib/Frontend/AnalysisConsumer.cpp

Zhongxing Xu xuzhongxing at gmail.com
Mon Aug 3 18:24:09 PDT 2009


On Tue, Aug 4, 2009 at 2:08 AM, Ted Kremenek<kremenek at apple.com> wrote:
> On Aug 2, 2009, at 8:13 PM, Zhongxing Xu wrote:
>
> Author: zhongxingxu
> Date: Sun Aug  2 22:13:46 2009
> New Revision: 77943
>
> URL: http://llvm.org/viewvc/llvm-project?rev=77943&view=rev
> Log:
> Create only one AnalysisManager for each translation unit. In HandleCode(),
> reset the current analysis context of the AnalysisManager.
>
> Hi Zhongxing,
> I was thinking about this, and is there a reason that AnalysisManager needs
> to know about the current analysis context?  To me the notion of a "current
> context" seems limited and unnecessary.  When we start analyzing a function
> or method, can we not simply create an AnalysisContext on-the-fly that
> references AnalysisManager?

I think this is the goal. We can pass the entry Decl* to
ActionGRExprEngine() and create the AnalysisContext on-the-fly.

> Ideally, we want a nice separation between the management of analysis data
> and the driving of analysis logic.  This reduces complexity, potential bugs,
> and also enable us to make AnalysisManager reentrant.  For example, I see no
> reason why a single AnalysisManager couldn't be used to analyze multiple
> functions in parallel, especially if its main task is to manage data.
> Ted




More information about the cfe-commits mailing list