[clang] [lld] [llvm] [LTO] enable `ObjCARCContractPass` only on optimized build (PR #101114)
Peter Rong via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 5 11:52:49 PDT 2024
DataCorrupted wrote:
> The pipeline test changes here still look problematic. Can you make the ObjCARCContract pass preserve the DT?
ObjCARCContractPass can't preserve the DT at static time, it may alter CFG (See more in [this patch](https://reviews.llvm.org/D92808)). Unfortunately, legacy PM won't let us preserve the DT at runtime.
Current situation:
1. ObjCARCContractPass have no overhead on [O3 builds](https://llvm-compile-time-tracker.com/compare.php?from=910292c3ac2ebe43cdbc90223c6c9702128316db&to=8cc8e5d6c6ac9bfc888f3449f7e424678deae8c2&stat=instructions%3Au).
2. On distributed thin-lto builds, the overhead is very small ([on average <0.6%](https://llvm-compile-time-tracker.com/compare.php?from=910292c3ac2ebe43cdbc90223c6c9702128316db&to=8cc8e5d6c6ac9bfc888f3449f7e424678deae8c2&stat=instructions%3Au)
3. What's more, we can’t build Darwin applications using distributed thin-lto without this change. We can gain a huge build speed improvement with distributed thin-lto.
Do you think the compile time regressions are acceptable if this change is restricted to optimized builds, or only enabled for distributed thin-lto builds?
https://github.com/llvm/llvm-project/pull/101114
More information about the cfe-commits
mailing list