benlangmuir added inline comments.

================
Comment at: 
clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h:224
+  /// a preprocessor. Storage owned by \c ModularDeps.
+  llvm::StringMap<ModuleDeps *> ModuleDepsByID;
+  /// Directly imported prebuilt deps.
----------------
jansvoboda11 wrote:
> I assume you're not using `llvm::DenseMap<ModuleID, ModuleDeps *>` because 
> it's a hassle to implement for custom keys and performance is not a concern, 
> correct? Any other aspects?
No good reason.  I switched it to DenseMap and included the change in 
https://reviews.llvm.org/D132617


================
Comment at: 
clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h:226
+  /// Directly imported prebuilt deps.
+  std::vector<PrebuiltModuleDep> DirectPrebuiltDeps;
+
----------------
jansvoboda11 wrote:
> Would this allow us to remove 
> `ModuleDepCollectorPP::DirectPrebuiltModularDeps`?
I sunk it to MDC in https://reviews.llvm.org/D132617.  It needed to change to 
`MapVector` since we are also uniquing them.


================
Comment at: clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp:358
+  for (auto &&I : DirectPrebuiltModularDeps) {
+    MDC.DirectPrebuiltDeps.emplace_back(I);
+    MDC.Consumer.handlePrebuiltModuleDependency(MDC.DirectPrebuiltDeps.back());
----------------
jansvoboda11 wrote:
> As said in a previous comment, we might avoid the copy by storing this in 
> `MDC` in the first place.
We don't save any copies, since we need to actually store the 
`PrebuiltModuleDep` in `MDC` in order to apply it to a secondary 
CompilerInvocation after the preprocessor etc. is gone.  But I still like 
sinking it down.


================
Comment at: clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp:471
+
+  MDC.setModuleDepsForID(MD.ID, &MD);
   return MD.ID;
----------------
jansvoboda11 wrote:
> Nit: this function might get easier to think about if we did this in one step 
> with the context hash calculation:
> 
> ```
> MDC.associateWithContextHash(MD, CI);
> MDC.addOutputPaths(MD, CI);
> MD.BuildArguments = CI.getCC1CommandLine();
> ```
Good idea, included in https://reviews.llvm.org/D132617


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D132405/new/

https://reviews.llvm.org/D132405

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to