Details
- Reviewers
arphaman kousikk - Commits
- rG53947a577ead: [clang][clang-scan-deps] Aggregate the full dependency information.
rG3299f974dc3b: [clang][clang-scan-deps] Aggregate the full dependency information.
rG356a4b433bf7: [clang][clang-scan-deps] Aggregate the full dependency information.
rGf978ea498309: [clang][clang-scan-deps] Aggregate the full dependency information.
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h | ||
---|---|---|
32 | Are the strings supposed to represent the module names here? For C++20 modules, will a single string be enough to represent both the module's name and its partition name? | |
100 | Can you add a comment on how AlreadySeen is supposed to be used. Are clients expected to update it once they get more dependencies? |
clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h | ||
---|---|---|
32 | If it's a partition the module name will just contain a :. | |
100 | Will do. I'm still working out exactly how AlreadySeen should work. Ideally it would be shared across all workers of the same DependencyScanningService, but that needs thread synchronization and could have rather high overhead. The current model is that it's per worker, and you should expect to need to deduplicate modules across workers. |
clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp | ||
---|---|---|
109 | What if Opts.Targets is empty? |
clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp | ||
---|---|---|
109 | If I recall correctly, Opts.Targets can never be empty. I gets set to <basename>.o if it would be empty. |
clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp | ||
---|---|---|
109 | What I mean is, what if the client didn't request a dependency file in the original compilation command? ScanDeps worker currently has a fake "clang-scan-deps dependency" target that it adds if the target is empty, but I do't think that should be reported as an output file. |
clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp | ||
---|---|---|
109 | Ah, I see now. This is only needed for the compilation database case (as that's the only way to map back to a compile command), it's not needed if you're calling getFullDependencies directly. I can remove it for now, but I'm not really sure what to replace it with. |
clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp | ||
---|---|---|
29 | @Bigcheese It looks like there's some duplication in argument logic between this function and getAdditionalCommandLine. Can it be factored out into one function? |
Refactored FullDependencies::getAdditionalCommandLine and ModuleDeps::getFullCommandLine to share code.
Build result: pass - 60692 tests passed, 0 failed and 726 were skipped.
Log files: console-log.txt, CMakeCache.txt
Are the strings supposed to represent the module names here? For C++20 modules, will a single string be enough to represent both the module's name and its partition name?