[cfe-dev] Cross Translation Unit Support in Clang

Manuel Klimek via cfe-dev cfe-dev at lists.llvm.org
Thu Jun 22 03:10:48 PDT 2017


For clang tooling, I don't really expect us to do cross-TU AST loading
outside of what modules will provide, as that inherently doesn't scale.
Instead, we usually design pipelined approaches where the first "scan" over
the codebase provides data which are reduced to the information needed for
the tool.

That said, I can't predict the future, and people have expressed interest
in that functionality, so
a) I agree it's a good idea to add and
b) I think it's a good fit for libtooling

Cheers,
/Manuel


On Thu, Jun 22, 2017 at 11:58 AM Aleksei Sidorin <a.sidorin at samsung.com>
wrote:

> Hello Gabor,
>
> Internally, we have created XTU module inside clang (lib/XTU). I think
> it is the best way because importing is not related to analyzer
> directly. We're not going to use it outside of CSA but I think future
> users should have such possibility.
>
> 22.06.2017 12:41, Gábor Horváth пишет:
> > Hi!
> >
> > It looks like there is a consensus to accept the cross translation
> > unit analysis patch into the clang static analyzer:
> > https://reviews.llvm.org/D30691
> >
> > There is one part of the patch that is independent of the static
> > analyzer. The logic which can look up a function in an index and load
> > a serialized AST that contains the definition of the function.
> > The lookup is cached, and after the AST is loaded, the function
> > definition will be merged into the original AST.
> >
> > Right now, in the current patch, this functionality is in the
> > ASTContext. This is definitely not the right place to put this. So the
> > question is, do you plan to utilize similar functionality in Clang
> > tooling or clang tidy?
> >
> > If yes, we might end up creating a new module for that (or add it to
> > an existing commonly used one like libtooling?). If no, we will move
> > the corresponding code to the static analyzer.
> >
> > What do you think?
> >
> > In case you are interested in how it works, you can check out the
> > EuroLLVM talk:
> > http://llvm.org/devmtg/2017-03//2017/02/20/accepted-sessions.html#7
> >
> > Regards,
> > Gábor
>
>
> --
> Best regards,
> Aleksei Sidorin,
> SRR, Samsung Electronics
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170622/91f55fc0/attachment.html>


More information about the cfe-dev mailing list