[PATCH] D53354: [WIP][NOT FOR COMMIT][PROTOTYPE] clang-scan-deps: dependency scanning tool rough prototype

Alex Lorenz via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 18 16:11:19 PDT 2018


arphaman added a comment.

In https://reviews.llvm.org/D53354#1267376, @whisperity wrote:

> With regards to https://reviews.llvm.org/D53352: you can change the diff related to a patch whilst keeping discuccion and metadata of the diff.


Good point, thanks!

> Please add a generic description to the diff for an easy skimming on what you are accomplishing.

I added the description, thanks.

> If I get this right, your tool will spit out a CPP file that is only include directives and perhaps the related conditional logic, or the final output of your tool is a file list?

It's both, as there are two tools in this patch. The first is the `clang-filter-to-includes` tool, which is wrapper around our source minimization optimization (i.e. it spits out a source with `#includes` and other PP directives). The `clang-scan-deps` tool integrates this optimization into a service-like tool that will produce a set of dependencies for a set of compilation commands. Right now it's mainly a benchmark that compares the speed of the fast scanner to the regular preprocessor invocation.

> This is different than the `-M` flags in a way that it keeps conditions sane, rather than spitting out what includes were used if the input, with regards to the compiler options, was to be compiled?

It's supposed to produce identical output to the run of `-Eonly` with the `-MD` flag. Right now we don't know how we want to expose the dependency set to the clients.

> Have you checked the tool //Include What You Use//? I'm curious in what way the mishappenings of that tool present themselves in yours. There were some challenges not overcome in a good way in IWYU, their readme goes into a bit more detail on this.

I haven't looked into IWYU that much. Could you please elaborate on which mishappenings you think might present themselves here?


Repository:
  rC Clang

https://reviews.llvm.org/D53354





More information about the cfe-commits mailing list