ychen added a comment.

In D127259#3590127 <https://reviews.llvm.org/D127259#3590127>, @rnk wrote:

> I think Richard had some concerns in the other review that this may not be 
> enough to really guarantee initialization order within the TU. I couldn't say 
> either way, I shouldn't review this code. Conceptually, this change seems 
> small enough to me. Can we ask @aaron.ballman to take a look?

@rnk, thanks. @rsmith, please correct me if I'm wrong. I think the current 
approach is relying on two things: partial ordering in `llvm.global_ctors` 
entries (this is also needed to fix 
https://github.com/llvm/llvm-project/issues/55804, D127233 
<https://reviews.llvm.org/D127233>, I could submit a follow-up patch to either 
make IR verifier check the order is not unexpected changed or simply check the 
order is maintained by GlobalOpt) and a linker that picks the *first* COMDAT 
consistently (this is not guaranteed but generally true for major linkers for a 
long time). The alternative is to coalesce `llvm.global_ctors` entries with 
order requirements into a single dynamic initialization function, however, as 
already being discussed, this has code size and startup time overhead. We could 
discuss the partial ordering in `llvm.global_ctors` entries in D127233 
<https://reviews.llvm.org/D127233>.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D127259

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

Reply via email to