dexonsmith added a subscriber: jansvoboda11.
dexonsmith added a comment.

In D102633#2773578 <https://reviews.llvm.org/D102633#2773578>, @aganea wrote:

> In D102633#2769762 <https://reviews.llvm.org/D102633#2769762>, @arphaman 
> wrote:
>
>> It might be good for @aganea to take a look as well.
>
> Thanks! I actually work with @saudi, I already took a look at the patch 
> before uploading. However I'm stil torn about running one of the workers on 
> the main thread. I fear that we could have random errors because of the stack 
> size of the "main" thread could be different from the stack size of the 
> "satellite" threads. There's 99.99% chance that this won't happen, but I'd 
> prefer that behavior to be explicit.
>
> We could have:
>
>   -j0: use all hardware threads
>   -j1: don't use multi-threading, run all the tasks on the main thread
>   -jN: use the specified number of threads
>
> The rationale is that we're using clang-scan-deps as-a-DLL in Fastbuild, to 
> extract the dependencies. Since Fastbuild already has its own thread pool 
> management, we call into clang-scan-deps with -j1 from different Fastbuild 
> threads (but keeping the `DependencyScanningService` alive between calls). It 
> would great if each call to clang-scan-deps wouldn't create a extra new 
> thread.
>
> Perhaps any of you would like to comment? +@mehdi_amini

Seems like if you want/need a DLL you should be using a library interface not 
the tool interface. If you can't / don't want to use the C++ API in 
clang/lib/Tooling, then we should push out a C API. Maybe you can confirm that 
https://github.com/apple/llvm-project/blob/apple/main/clang/include/clang-c/Dependencies.h
 in libclang will work for your needs? It landed on the fork just because it 
was experimental and libclang has a stable API promise, but I think the names 
of the functions make that clear enough -- e.g., 
`clang_experimental_DependencyScannerWorker_create_v0` seems well-enough named 
that no one expects permanent compatibility -- and it seems pretty awkward to 
be using the tool as a DLL to work around not having this in tree. Then your 
FastBuild can directly manage the service and the workers. WDYT?

@arphaman / @Bigcheese / @jansvoboda11 , thoughts?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D102633

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D102633: [... Alexandre Ganea via Phabricator via cfe-commits
    • [PATCH] D1026... Duncan P. N. Exon Smith via Phabricator via cfe-commits
    • [PATCH] D1026... Alexandre Ganea via Phabricator via cfe-commits

Reply via email to