vogelsgesang wrote:

My 2cts:

I think it would be best for clang-users, if HALO / coroutine optimizations 
work out-of-the-box in as many cases as possible.

Unfortunately, it seems we have an "either-or" decision here. Either, the 
"thin-lto + HALO" work out-of-the-box or the llc-code-generation works 
out-of-the-box. Afaict, thin-lto is the more common use case compared to 
calling llc directly. At least there seems to be documentation for 
[thin-lto](https://clang.llvm.org/docs/ThinLTO.html) but not for the llc use 
case?

As a normal C++ programmer and clang user, I doubt that I would ever find the 
`-defer-thinlto-prelink-coro-split` setting, in particular given that this 
commit does not add any documentation for it. As such, I would be stuck without 
cross-TU link-time HALO optimizations. At the same time, I would expect people 
which use custom llc-based compilation to be more experienced with setting up 
an LLVM toolchain, and more enabled to figure out about the existince of the 
flag.

All of this is to say: I think the default should be flipped. **By default, 
coro-split should be deferred to post-link** (such that the more common 
thin-lto setup can apply HALO out-of-the-box). More advanced users, who call 
llc directly, can still use a flag to defer coro-split.

In addition, some documentation would be great (e.g. mentioning the newly 
introduced flag in https://clang.llvm.org/docs/ThinLTO.html and 
https://llvm.org/docs/Coroutines.html

https://github.com/llvm/llvm-project/pull/107153
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to