about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2018-05-03Add mailmap entry for Chris VittalChristopher Vittal-0/+1
I use both Chris and Christopher in git configs and other places.
2018-05-03Auto merge of #50391 - nnethercote:escape_unicode, r=eddybbors-11/+5
Use escape_default() for strings in LitKind::token(). This avoids converting every char to \u{...} form, which bloats the resulting strings unnecessarily. It also provides consistency with the existing escape_default() calls in LitKind::token() used for raw string literals, char literals, and raw byte char literals. There are two benefits from this change. - Compilation is faster. Most of the rustc-perf benchmarks see a non-trivial speedup, particularly for incremental rebuilds, with the best speedup over 13%, and multiple others over 10%. - Generated rlibs are smaller. An extreme example is libfutures.rlib, which shrinks from 2073306 bytes to 1765927 bytes, a 15% reduction. r? @jseyfried <details><summary>Here are full numbers for all the rustc-perf runs where the improvement was > 1%.</summary> ``` regex-check avg: -11.1% min: -13.4% max: -5.5% futures-check avg: -7.6% min: -11.4% max: -3.5% futures-opt avg: -6.3% min: -10.3% max: -2.3% futures avg: -6.6% min: -10.3% max: -2.8% regex-opt avg: -4.7% min: -10.2% max: -0.4% regex avg: -5.3% min: -10.2% max: -1.2% hyper-check avg: -4.8% min: -6.6% max: -2.7% encoding-check avg: -4.1% min: -5.5% max: -2.5% issue-46449-check avg: -4.7% min: -5.2% max: -4.1% clap-rs-check avg: -2.9% min: -5.2% max: -1.1% hyper avg: -3.0% min: -5.1% max: -0.8% parser-check avg: -4.2% min: -4.9% max: -3.2% hyper-opt avg: -2.6% min: -4.9% max: -0.3% encoding-opt avg: -2.3% min: -4.6% max: -0.5% encoding avg: -2.5% min: -4.4% max: -0.6% issue-46449 avg: -2.3% min: -4.4% max: -1.8% issue-46449-opt avg: -1.7% min: -4.3% max: -0.9% clap-rs-opt avg: -1.6% min: -4.2% max: -0.2% serde-check avg: -1.4% min: -4.1% max: -0.2% clap-rs avg: -1.6% min: -3.9% max: -0.7% unify-linearly-check avg: -3.2% min: -3.7% max: -2.7% serde avg: -1.1% min: -3.5% max: -0.1% regression-31157-check avg: -2.6% min: -3.4% max: -1.6% helloworld-check avg: -2.5% min: -3.4% max: -0.6% serde-opt avg: -1.3% min: -3.3% max: -0.5% tokio-webpush-simple-check avg: -2.4% min: -3.2% max: -1.8% piston-image-check avg: -1.7% min: -3.2% max: -0.9% deeply-nested-opt avg: -1.5% min: -3.0% max: -0.6% deeply-nested-check avg: -1.9% min: -2.9% max: -0.4% deeply-nested avg: -1.9% min: -2.9% max: -1.2% syn-check avg: -1.8% min: -2.8% max: -0.6% coercions avg: -0.5% min: -2.8% max: 0.4% syn-opt avg: -0.9% min: -2.4% max: -0.1% syn avg: -1.1% min: -2.2% max: -0.3% parser-opt avg: -1.9% min: -2.1% max: -1.6% parser avg: -1.9% min: -2.1% max: -1.6% style-servo-check avg: -1.3% min: -2.0% max: -0.8% regression-31157-opt avg: -0.8% min: -2.0% max: 0.0% piston-image avg: -0.7% min: -1.8% max: -0.2% piston-image-opt avg: -0.6% min: -1.8% max: -0.0% regression-31157 avg: -1.0% min: -1.7% max: -0.3% html5ever-opt avg: -0.6% min: -1.5% max: -0.1% unify-linearly-opt avg: -1.3% min: -1.5% max: -1.1% unify-linearly avg: -1.3% min: -1.4% max: -1.2% tokio-webpush-simple-opt avg: -0.4% min: -1.2% max: -0.0% helloworld-opt avg: -1.0% min: -1.1% max: -0.6% helloworld avg: -1.0% min: -1.1% max: -0.7% inflate-opt avg: -0.3% min: -1.1% max: 0.1% html5ever-check avg: -0.6% min: -1.0% max: -0.3% inflate-check avg: -0.3% min: -1.0% max: -0.1% ``` </details>
2018-05-03Auto merge of #50378 - varkor:repr-align-max-29, r=eddybbors-9/+23
Reduce maximum repr(align(N)) to 2^29 The current maximum `repr(align(N))` alignment is larger than the maximum alignment accepted by LLVM, which can cause issues for huge values of `N`, as seen in #49492. Fixes #49492. r? @rkruppe
2018-05-03Auto merge of #50369 - pftbest:unicode, r=SimonSapinbors-8/+8
Fix a warning in libcore on 16bit targets. This code is assuming that usize >= 32bits, but it is not the case on 16bit targets. It is producing a warning that can fail the compilation on MSP430 if deny(warnings) is enabled. It is very unlikely that someone would actually use this code on a microcontroller, but since unicode was merged into libcore we have to compile it on 16bit targets. I've tried to make sure that the code stays the same on x86, here is an assembly comparison: https://godbolt.org/g/wFw7dZ r? @SimonSapin
2018-05-03Remove parse::escape_default().Nicholas Nethercote-7/+3
str::escape_default() can be used instead.
2018-05-03Use escape_default() for strings in LitKind::token().Nicholas Nethercote-4/+2
This avoids converting every char to \u{...} form, which bloats the resulting strings unnecessarily. It also provides consistency with the existing escape_default() calls in LitKind::token() used for raw string literals, char literals, and raw byte char literals. There are two benefits from this change. - Compilation is faster. Most of the rustc-perf benchmarks see a non-trivial speedup, particularly for incremental rebuilds, with the best speedup over 13%, and multiple others over 10%. - Generated rlibs are smaller. An extreme example is libfutures.rlib, which shrinks from 2073306 bytes to 1765927 bytes, a 15% reduction.
2018-05-02Auto merge of #50355 - petrochenkov:50187, r=oli-obkbors-36/+122
Fix an unresolved import issue with enabled `use_extern_macros` This is a kinda ugly special-purpose solution that will break if we suddenly add a fourth namespace, but I hope to come up with something more general if I get to import resolution refactoring this summer. Fixes https://github.com/rust-lang/rust/issues/50187 thus removing a blocker for stabilization of `use_extern_macros`
2018-05-02Auto merge of #50354 - varkor:initial-field-alignment-c-int, r=eddybbors-2/+108
Correct initial field alignment for repr(C)/repr(int) Fixes #50098 following https://github.com/rust-lang/rust/issues/50098#issuecomment-385497333. (I wasn't sure which kind of test was best suited here — I picked run-pass simply because that was convenient, but if codegen is more appropriate, let me know and I'll change it.) r? @eddyb
2018-05-02Auto merge of #49943 - pnkfelix:fix-issue-49918, r=nikomatsakisbors-40/+106
Treat generators as if they have an arbitrary destructor Conservatively assume dropping a generator touches its upvars, via locals' destructors. Fix #49918
2018-05-02Auto merge of #50339 - nnethercote:lazy-Printer-buf, r=michaelwoeristerbors-7/+23
Extend Printer::buf on demand. So that 55 entries (at 48 bytes each) don't need to be eagerly initialized on creation. This speeds up numerous rust-perf benchmark runs, by up to 3%. ``` crates.io-check avg: -2.4% min: -3.7% max: -1.1% encoding-check avg: -2.1% min: -2.9% max: -1.2% crates.io-opt avg: -1.3% min: -2.7% max: -0.1% crates.io avg: -1.4% min: -2.7% max: -0.3% encoding-opt avg: -1.1% min: -2.5% max: 0.1% encoding avg: -1.3% min: -2.4% max: -0.3% hyper-check avg: -1.7% min: -2.3% max: -0.9% regex-check avg: -1.5% min: -1.9% max: -0.7% piston-image-check avg: -0.9% min: -1.8% max: -0.5% hyper avg: -1.0% min: -1.7% max: -0.3% hyper-opt avg: -0.9% min: -1.7% max: -0.1% syn-check avg: -1.0% min: -1.5% max: -0.6% clap-rs avg: -0.3% min: -1.5% max: 0.2% regex-opt avg: -0.6% min: -1.5% max: -0.0% regression-31157-check avg: -1.1% min: -1.4% max: -0.7% regex avg: -0.7% min: -1.3% max: -0.1% clap-rs-check avg: -0.5% min: -1.2% max: 0.1% syn-opt avg: -0.5% min: -1.1% max: -0.1% syn avg: -0.5% min: -1.1% max: -0.2% serde-opt avg: -0.3% min: -1.1% max: 0.1% piston-image-opt avg: -0.4% min: -1.1% max: -0.0% piston-image avg: -0.4% min: -1.0% max: -0.0% ```
2018-05-02Auto merge of #50329 - Zoxc:opt-3, r=alexcrichtonbors-8/+0
Set opt-level to 3 r? @alexcrichton
2018-05-02Auto merge of #50282 - fitzgen:run-more-passes-on-constant-mir, r=nikomatsakisbors-48/+2
Run more passes on constant mir Not very familiar with this code, but everything seems to be working! r? @eddyb
2018-05-02Auto merge of #50278 - eddyb:mir-succ-iter, r=nikomatsakisbors-89/+85
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
2018-05-01Auto merge of #50379 - nrc:update, r=alexcrichtonbors-32/+49
Update RLS r? @alexcrichton Fixes RLS tests (broken by Cargo update) and enables nightly release
2018-05-02Update RLS and RustfmtNick Cameron-32/+49
2018-05-01Auto merge of #49982 - petrochenkov:noreex, r=alexcrichtonbors-712/+290
Remove unstable `macro_reexport` It's subsumed by `feature(use_extern_macros)` and `pub use` cc https://github.com/rust-lang/rust/issues/35896 closes https://github.com/rust-lang/rust/issues/29638 closes https://github.com/rust-lang/rust/issues/38951
2018-05-01Reduce the maximum alignment to repr(align(1 << 29))varkor-8/+11
This brings it into line with LLVM's maximum permitted alignment.
2018-05-01Add E0589 to the error indexvarkor-1/+12
2018-05-01Update ui/generator tests to reflect changes from new generator drop rules.Felix S. Klock II-32/+74
2018-05-01Conservatively assume dropping a generator touches its upvars, via locals' ↵Felix S. Klock II-8/+32
dtors. This is meant to address rust-lang/rust#49918. Review feedback: put back comment justifying skipping interior traversal. Review feedback: dropck generators like trait objects: all their upvars must outlive the generator itself, so just create a DtorckConstraint saying so.
2018-05-01Add a print_types_sizes regression testvarkor-0/+47
2018-05-01Auto merge of #50374 - petrochenkov:pypath, r=Mark-Simulacrumbors-2/+10
rustbuild: Normalize paths coming from Python slightly Fixes #49785
2018-05-01rustbuild: Normalize paths coming from Python slightlyVadim Petrochenkov-2/+10
Fixes #49785
2018-05-01Add repr(u8) to the testvarkor-0/+16
2018-05-01Correct initial field alignment for repr(C)/repr(int)varkor-2/+45
2018-05-01Auto merge of #49789 - petrochenkov:prelext, r=nikomatsakisbors-8/+204
Module experiments: Add one more prelude layer for extern crate names passed with `--extern` Implements one item from https://internals.rust-lang.org/t/the-great-module-adventure-continues/6678/183 When some name is looked up in lexical scope (`name`, i.e. not module-relative scope `some_mod::name` or `::name`), it's searched roughly in the next order: - local variables - items in unnamed blocks - items in the current module - :sparkles: NEW! :sparkles: crate names passed with `--extern` ("extern prelude") - standard library prelude (`Vec`, `drop`) - language prelude (built-in types like `u8`, `str`, etc) The last two layers contain a limited set of names controlled by us and not arbitrary user-defined names like upper layers. We want to be able to add new names into these two layers without breaking user code, so "extern prelude" names have higher priority than std prelude and built-in types. This is a one-time breaking change, that's why it would be nice to run this through crater. Practical impact is expected to be minimal though due to stylistic reasons (there are not many `Uppercase` crates) and due to the way how primitive types are resolved (https://github.com/rust-lang/rust/pull/32131).
2018-05-01Fix a warning in libcore on 16bit targets.Vadzim Dambrouski-8/+8
This code is assuming that usize >= 32bits, but it is not the case on 16bit targets. It is producing a warning that will fail the compilation on MSP430 if deny(warnings) is enabled. It is very unlikely that someone would actually use this code on a microcontroller, but since unicode was merged into libcore we have compile it on 16bit targets.
2018-05-01Fix an error from "unused" lint + Fix rebaseVadim Petrochenkov-82/+75
2018-05-01Give removal reasons to removed featuresVadim Petrochenkov-36/+46
2018-05-01Remove `macro_reexport`Vadim Petrochenkov-677/+252
It's subsumed by `feature(use_extern_macros)` and `pub use`
2018-05-01Auto merge of #50198 - oli-obk:const_prop, r=eddybbors-727/+270
Remove some unused code
2018-05-01Merge adjacent write! invocationsOliver Schneider-4/+1
2018-05-01rustc: return impl Iterator from Terminator(Kind)::successors(_mut).Eduard-Mihai Burtescu-89/+85
2018-05-01Auto merge of #49724 - kennytm:range-inc-start-end-methods, r=Kimundibors-54/+139
Introduce RangeInclusive::{new, start, end} methods and make the fields private. cc #49022
2018-05-01Auto merge of #48786 - nagisa:fp, r=nikomatsakisbors-5/+31
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
2018-05-01Force frame pointers for the backtrace testSimonas Kazlauskas-0/+1
2018-05-01Don’t eliminate frame pointers on apple by defaultSimonas Kazlauskas-0/+2
2018-05-01Rework force-frame-pointerSimonas Kazlauskas-6/+9
This reworks the force-frame-pointer PR to explicitly only consider the value of the flag if it is provided, and use a target default otherwise. Something that was tried but not kept was renaming the flag to `frame-pointer`, because for flag `frame-pointer=no`, there is no guarante, that LLVM will elide *all* the frame pointers; oposite of what the literal reading of the flag would suggest.
2018-05-01Don't force-enable frame pointers when generating debug infoBjörn Steinbrink-3/+23
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
2018-05-01Set opt-level to 3John Kåre Alsaker-8/+0
2018-05-01Auto merge of #50304 - nox:uninhabited-output, r=eddybbors-9/+19
Mark functions returning uninhabited types as noreturn
2018-05-01Auto merge of #50197 - nikomatsakis:skolemize-out-of-tcx, r=eddybbors-35/+36
move skolemized regions into global tcx Experimental branch to move skolemized regions into global tcx. This is probably not what we want long term but may be convenient to unblock @sgrif in the short term. I'd like to do a perf run, though the main concern I guess would be memory usage. r? @eddyb
2018-05-01Better support for import resolution in 3 namespacesVadim Petrochenkov-22/+107
2018-05-01resolve (cleanup): Get rid of `Option` in `PerNS`Vadim Petrochenkov-14/+15
2018-04-30Auto merge of #48925 - zackmdavis:fn_must_stabilize, r=nikomatsakisbors-337/+167
stabilize `#[must_use]` for functions and must-use comparison operators (RFC 1940) r? @nikomatsakis
2018-04-30put ReSkolemized into the global tcxNiko Matsakis-8/+13
2018-04-30make needs_infer specific to inference variablesNiko Matsakis-11/+23
Notably, excluding ReSkolemized
2018-05-01new() should be const; start()/end() after iteration is unspecified.kennytm-1/+17
2018-05-01Removed direct field usage of RangeInclusive in rustc itself.kennytm-48/+45
2018-04-30remove some (apparently) dead codeNiko Matsakis-16/+0