-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[AIX] change AIX default codemodel=large #133811
Conversation
These commits modify compiler targets. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. We feel this will provide a more sensible default for modern applications, and the additional large codemodel access patterns have reduced impact on modern CPU generations
r? jieyouxu |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. AIX is tier 3, so this needs no other procedure.
Tagging this as compat relnotes just for FYI but I don't expect bug reports based on
@rustbot label +relnotes |
@bors r+ rollup |
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#132937 (a release operation synchronizes with an acquire operation) - rust-lang#133681 (improve TagEncoding::Niche docs, sanity check, and UB checks) - rust-lang#133726 (Add `core::arch::breakpoint` and test) - rust-lang#133768 (Remove `generic_associated_types_extended` feature gate) - rust-lang#133811 ([AIX] change AIX default codemodel=large) - rust-lang#133812 (Update wasm-component-ld to 0.5.11) - rust-lang#133813 (compiletest: explain that UI tests are expected not to compile by default) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#133811 - mustartt:change-default-codemodel, r=jieyouxu [AIX] change AIX default codemodel=large On AIX, for most libraries, we run out of Table of Contents (TOC) offsets very quickly due to the default 16-bit offset limit. We want the large code model should be used as the default to provide more TOC entries so the end user does not have to specify `-Ccode-model=large` for all their packages. This is even more of an issue with ThinLTO as the ThinLTO globals can very quickly use all available TOC entry. In addition, on AIX, code with different code-model across different compilation units will not cause undefined behavior, so this is safe to do.
On AIX, for most libraries, we run out of Table of Contents (TOC) offsets very quickly due to the default 16-bit offset limit. We want the large code model should be used as the default to provide more TOC entries so the end user does not have to specify
-Ccode-model=large
for all their packages. This is even more of an issue with ThinLTO as the ThinLTO globals can very quickly use all available TOC entry.In addition, on AIX, code with different code-model across different compilation units will not cause undefined behavior, so this is safe to do.