ilya-biryukov marked 4 inline comments as done. ilya-biryukov added inline comments.
================ Comment at: lib/Tooling/InterpolatingCompilationDatabase.cpp:133 + assert(TraitsComputed && "calling transferTo on moved-from object"); + const CommandTraits &T = getTraits(); + CompileCommand Result = T.Cmd; ---------------- sammccall wrote: > I think you're overthinking things with the memoization here (of course I say > this as the person who underthought it!) > > AIUI, the problem is that *eagerly* parsing all the compile commands takes 3x > as long as reading them, which hurts startup time with big > `compile_commands.json`. > > But I think we can afford to just parse them when `transferTo` is called, > without memoization. (Remember we only hit this code path when querying a > file *not in the CDB*, so it should never get called in a tight loop). > > The benefit of slightly reducing the latency of`getCompileCommand` for > unknown files when we happen to pick the same template file for the second > time... it's unclear to me, and the code would be easier to follow without it. Totally agree, memoization does not buy us much here. Repository: rC Clang https://reviews.llvm.org/D51314 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits