[clang-scan-deps] Implementation of dependency scanner over minimized sourcesThis commit implements the fast dependency scanning mode in clang-scan-deps: thepreprocessing is done on files that are
[clang-scan-deps] Implementation of dependency scanner over minimized sourcesThis commit implements the fast dependency scanning mode in clang-scan-deps: thepreprocessing is done on files that are minimized using the dependency directives source minimizer.A shared file system cache is used to ensure that the file system requests and source minimizationis performed only once. The cache assumes that the underlying filesystem won't change during the courseof the scan (or if it will, it will not affect the output), and it can't be evicted. This means that theservice and workers can be used for a single run of a dependency scanner, and can't be reused across multiple,incremental runs. This is something that we'll most likely support in the future though.Note that the driver still utilizes the underlying real filesystem.This commit is also still missing the fast skipped PP block skipping optimization that I mentioned at EuroLLVM talk.Additionally, the file manager is still not reused by the threads as well.Differential Revision: https://reviews.llvm.org/D63907llvm-svn: 368086
show more ...