| Age | Commit message (Collapse) | Author | Lines |
|
This fixes #36710 with -crt-static.
|
|
Previously the features specified to LLVM via `-C target-feature` were only
reflected in the `TargetMachine` but this change *also* reflects these and the
base features inside each function itself. This change matches clang and...
Closes rust-lang-nursery/stdsimd#427
|
|
|
|
Emit range metadata on calls returning scalars (fixes #50157)
|
|
Rollup of 9 pull requests
Successful merges:
- #49858 (std: Mark `ptr::Unique` with `#[doc(hidden)]`)
- #49968 (Stabilize dyn trait)
- #50192 (Add some utilities to `libsyntax`)
- #50251 (rustc: Disable threads in LLD for wasm)
- #50263 (rustc: Emit `uwtable` for allocator shims)
- #50269 (Update `parking_lot` dependencies)
- #50273 (Allow #[inline] on closures)
- #50284 (fix search load page failure)
- #50257 (Don't ICE on tuple struct ctor with incorrect arg count)
Failed merges:
|
|
rustc: Emit `uwtable` for allocator shims
This commit emits the `uwtable` attribute to LLVM for platforms that require it
for the allocator shims that we generate to ensure that they can hopefully get
unwound past. This is a stab in the dark at helping
https://bugzilla.mozilla.org/show_bug.cgi?id=1456150 along.
|
|
rustc: Disable threads in LLD for wasm
Upstream bug reports (rustwasm/wasm-bindgen#119) show that this may be the
culprit of odd crashes/hangs. The linker is a tiny fraction of build time anyway
right now so let's disable it and figure out how to possibly reenable it later
if necessary.
|
|
Remove hack around comparisons of i1 values (fixes #40980)
The regression test still passes without that 2 years old hack. The underlying
LLVM bug has probably been fixed upstream since then.
|
|
InternedString
|
|
This commit emits the `uwtable` attribute to LLVM for platforms that require it
for the allocator shims that we generate to ensure that they can hopefully get
unwound past. This is a stab in the dark at helping
https://bugzilla.mozilla.org/show_bug.cgi?id=1456150 along.
|
|
|
|
Treat repr(Rust) univariant fieldless enums as ZSTs
This makes all those enums be represented the same way:
```rust
enum A1 { B1 }
enum A2 { B2 = 0 }
enum A3 { B3, C3(!) }
```
Related to #15747.
Cc @rust-lang/wg-codegen @rust-lang/lang
|
|
|
|
This makes all those enums be represented the same way:
```rust
enum A1 { B1 }
enum A2 { B2 = 0 }
enum A3 { B3, C3(!) }
```
|
|
Upstream bug reports (rustwasm/wasm-bindgen#119) show that this may be the
culprit of odd crashes/hangs. The linker is a tiny fraction of build time anyway
right now so let's disable it and figure out how to possibly reenable it later
if necessary.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Make Binder's field private and clean up its usage
AKA "tour de rustc"
Closes #49814.
|
|
make rustdoc test follow the jobserver limit of threads
fix that to many threads is executing at the same time
when rustdoc test is executed.
|
|
|
|
Don't report compile-time errors for promoteds
Fixes the regression part of #49760, the missing warnings still are missing
r? @eddyb
|
|
threads is executing at the same timewhen rustdoc test is executed.
|
|
|
|
Long ago (#40549) we enabled the `uwtable` attribute on Windows by default
(even with `-C panic=abort`) to allow unwinding binaries for [stack unwinding
information][winstack]. It looks like this same issue is [plaguing][arm1]
Gecko's Android platforms [as well][arm2]. This commit applies the same fix
as #40549 except that this time it's applied for all Android targets.
Generating a `-C panic=abort` binary for `armv7-linux-androideabi` before this
commit generated a number of `cantunwind` functions (detected with `readelf -u`)
but after this commit they all list appropriate unwind information.
Closes #49867
[winstack]: https://bugzilla.mozilla.org/show_bug.cgi?id=1302078
[arm1]: https://bugzilla.mozilla.org/show_bug.cgi?id=1453220
[arm2]: https://bugzilla.mozilla.org/show_bug.cgi?id=1451741
|
|
The regression test still passes without that 2 years old hack. The underlying
LLVM bug has probably been fixed upstream since then.
|
|
This commit increases the dfeault stack size allocated to the
wasm32-unknown-unknown target to 1MB by default. Currently the default stack
size is one wasm page, or 64 kilobytes. This default stack is quite small and
has caused a stack overflow or two in the wild by accident.
The current "best practice" for fixing this is to pass `-Clink-args='-z
stack-size=$bigger'` but that's not great nor always easy to do. A default of
1MB matches more closely with other platforms where it's "pretty big" by
default.
Note that it was tested and if the users uses `-C link-args` to pass a custom
stack size that's still resepected as lld seems to take the first argument, and
where rustc is passing it will always be last.
|
|
Fixes #50041
|
|
|
|
|
|
Stabilize x86/x86_64 SIMD
This commit stabilizes the SIMD in Rust for the x86/x86_64 platforms. Notably
this commit is stabilizing:
* The `std::arch::{x86, x86_64}` modules and the intrinsics contained inside.
* The `is_x86_feature_detected!` macro in the standard library
* The `#[target_feature(enable = "...")]` attribute
* The `#[cfg(target_feature = "...")]` matcher
Stabilization of the module and intrinsics were primarily done in
rust-lang-nursery/stdsimd#414 and the two attribute stabilizations are done in
this commit. The standard library is also tweaked a bit with the new way that
stdsimd is integrated.
Note that other architectures like `std::arch::arm` are not stabilized as part
of this commit, they will likely stabilize in the future after they've been
implemented and fleshed out. Similarly the `std::simd` module is also not being
stabilized in this commit, only `std::arch`. Finally, nothing related to `__m64`
is stabilized in this commit either (MMX), only SSE and up types and intrinsics
are stabilized.
Closes #29717
Closes #44839
Closes #48556
|
|
Use an explicit whitelist for what features are actually stable and can be
enabled.
|
|
feature list
These are already stabilized in 1.26.
|
|
|
|
Don't recurse into allocations, use a global table instead
r? @michaelwoerister
fixes #49663
|
|
Make --emit=metadata output metadata regardless of link
Fixes #40109. I'm not sure whether this condition was important here or not, but I can't see why it is required (removing it doesn't cause the error the comment warns about, so I'm assuming it's safe). If this is too heavy-handed, I can special-case on `OutputType::Metadata`.
r? @nrc
|
|
|
|
… now that #[global_allocator] does not define a symbol for it
|
|
|
|
Even more thread-safety changes
r? @michaelwoerister
|
|
Fix "fp" target feature for AArch64
This fixes the following warning on AArch64:
```
'+fp' is not a recognized feature for this target (ignoring feature)
```
Fixes #49782
|
|
Use sort_by_cached_key where appropriate
A follow-up to https://github.com/rust-lang/rust/pull/48639, converting various slice sorting calls to `sort_by_cached_key` when the key functions are more expensive.
|
|
Move deny(warnings) into rustbuild
This permits easier iteration without having to worry about warnings
being denied.
Fixes #49517
|
|
Use InternedString instead of Symbol for type parameter types (2)
Reduced alternative to #49266. Let's see if this causes a performance regression.
|