ilya-biryukov added inline comments.

================
Comment at: clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp:61
+    /// rely on MR use-case to work properly.
+    llvm::cl::init(false));
+
----------------
ioeric wrote:
> ilya-biryukov wrote:
> > ioeric wrote:
> > > ilya-biryukov wrote:
> > > > ioeric wrote:
> > > > > AFAIK, this flag would basically depend on the executor being used. 
> > > > > If executor can provide information like whether all tasks share 
> > > > > memory, we can make the decision totally based on the selected 
> > > > > executor (i.e. one fewer option).
> > > > That SG. So we could add a virtual method to executor that would 
> > > > provide us with this information and then we can get rid of that 
> > > > option, does that LG?
> > > > However, do we have non-single-binary executor implementations 
> > > > upstream? We need to leave a way to run the code that actually uses 
> > > > YAML serialization to make sure we can experiment when things break.
> > > Sounds good.
> > > 
> > > > However, do we have non-single-binary executor implementations 
> > > > upstream? We need to leave a way to run the code that actually uses 
> > > > YAML serialization to make sure we can experiment when things break.
> > > The framework allows this, so I'm not sure if there is other downstream 
> > > implementations that do this (probably not?). But I don't think we can 
> > > get rid of the YAML serialization at this point because we still dump 
> > > everything to yaml in the end? 
> > I meant the intermediate YAML serialization-deserialization parts.
> > 
> > I'd keep an option to force using the consumer that accumulates YAML 
> > symbols, and only allow to use on-the-fly merge when the tool executor 
> > reports that it is single-process. Would allow to:
> > - Avoid running on-the-fly merge when the executor does not support it 
> > (multi-binary MRs, etc)
> > - Allow to use on-the-fly by default for executors that run in the single 
> > binary.
> > - Allow to run with intermediate serialization even in a single binary if 
> > `-merge-on-the-fly` is specified.
> > 
> > Does that LG?
> IIUC, there will basically be a flag that allows us to force using yaml 
> intermediate serialization, even when the executor supports on-the-fly 
> merging. By default, we use on-the-fly merging whenever possible. If that's 
> the case, SGTM.
The flag is still called `-merge-on-the-fly`, but it's true by default and can 
be set to false to reenable intermediate YAML serialization


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D51155



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

Reply via email to