| Age | Commit message (Collapse) | Author | Lines |
|
|
|
We use a new MemFlags bitflags type to merge some store code paths.
|
|
Fixes #50371.
|
|
initialization.
|
|
Add some groundwork for cross-language LTO.
Implements part of #49879:
- Adds a `-Z cross-lang-lto` flag to rustc
- Makes sure that bitcode is embedded in object files if the flag is set.
This should already allow for using cross language LTO for staticlibs (where one has to invoke the linker manually anyway). However, `rustc` will not try to enable LTO for its own linker invocations yet.
r? @alexcrichton
|
|
Refer https://github.com/rust-lang/rust/issues/49938
Previously tagged unions' tag was refered to as a discr(iminant).
Here the changes use tag instead which is the correct terminology
when refering to the memory representation of tagged unions.
|
|
|
|
|
|
|
|
|
|
rustc: return iterators from Terminator(Kind)::successors(_mut).
Minor cleanup (and potentially speedup) prompted by @nnethercote's `SmallVec` experiments.
This PR assumes `.count()` and `.nth(i)` on `iter::Chain<option::IntoIter, slice::Iter(Mut)>` are `O(1)`, but otherwise all of the uses appear to immediately iterate through the successors.
r? @nikomatsakis
|
|
Remove some unused code
|
|
|
|
Introduce RangeInclusive::{new, start, end} methods and make the fields private.
cc #49022
|
|
Add force-frame-pointer flag to allow control of frame pointer ommision
Rebase of #47152 plus some changes suggested by https://github.com/rust-lang/rust/issues/48785.
Fixes #11906
r? @nikomatsakis
|
|
We apparently used to generate bad/incomplete debug info causing
debuggers not to find symbols of stack allocated variables. This was
somehow worked around by having frame pointers.
With the current codegen, this seems no longer necessary, so we can
remove the code that force-enables frame pointers whenever debug info
is requested.
Since certain situations, like profiling code profit from having frame
pointers, we add a -Cforce-frame-pointers flag to always enable frame
pointers.
Fixes #11906
|
|
Mark functions returning uninhabited types as noreturn
|
|
|
|
|
|
|
|
|
|
|
|
Added new()/start()/end() methods to RangeInclusive.
Changed the lowering of `..=` to use RangeInclusive::new().
|
|
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
|