about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2021-01-24Reduce log level used by tracing instrumentation from info to debugTomasz Miąsko-7/+7
2021-01-24Auto merge of #81250 - sivadeilra:remove_xp_compat, r=joshtriplett,m-ou-sebors-145/+81
Remove delay-binding for Win XP and Vista The minimum supported Windows version is now Windows 7. Windows XP and Windows Vista are no longer supported; both are already broken, and require extra steps to use. This commit removes the delayed-binding support for Windows API functions that are present on all supported Windows targets. This has several benefits: Removes needless complexity. Removes a load and dynamic call on hot paths in mutex acquire / release. This may have performance benefits. * "Drop official support for Windows XP" https://github.com/rust-lang/compiler-team/issues/378 * "Firefox has ended support for Windows XP and Vista" https://support.mozilla.org/en-US/kb/end-support-windows-xp-and-vista
2021-01-24Auto merge of #80838 - nagisa:nagisa/stack-probe-type, r=cuviperbors-87/+205
Target stack-probe support configurable finely This adds capability to configure the target's stack probe support in a more precise manner than just on/off. In particular now we allow choosing between always inline-asm, always call or either one of those depending on the LLVM version. Note that this removes the ability to turn off the generation of the stack-probe attribute. This is valid to replace it with inline-asm for all targets because `probe-stack="inline-asm"` will not generate any machine code on targets that do not currently support stack probes. This makes support for stack probes on targets that don't have any right now automatic with LLVM upgrades in the future. (This is valid to do based on the fact that clang unconditionally sets this attribute when `-fstack-clash-protection` is used, AFAICT) cc #77885 r? `@cuviper`
2021-01-24Auto merge of #80919 - cjgillot:defkey-span, r=oli-obkbors-265/+305
Generate metadata by iterating on DefId instead of traversing the HIR tree 1/N Sample from #80347.
2021-01-24Auto merge of #80594 - bjorn3:abi_refactor3, r=petrochenkovbors-95/+118
Various ABI refactorings This includes changes to the rust abi and various refactorings that will hopefully make it easier to use the abi handling infrastructure of rustc in cg_clif. There are several refactorings that I haven't done. I am opening this draft PR to check that I haven't broken any non x86_64 architectures. r? `@ghost`
2021-01-24Auto merge of #79811 - Aaron1011:expn-data-disambig, r=petrochenkovbors-14/+173
Add disambiugator to ExpnData I still need to write a bunch of comments. Opening to see how bad the perf impact is. cc https://github.com/rust-lang/rust/issues/79560
2021-01-23Auto merge of #81304 - jonas-schievink:rollup-d9kuugm, r=jonas-schievinkbors-111/+433
Rollup of 15 pull requests Successful merges: - #79841 (More clear documentation for NonNull<T>) - #81072 (PlaceRef::ty: use method call syntax) - #81130 (Edit rustc_middle::dep_graph module documentation) - #81170 (Avoid hash_slice in VecDeque's Hash implementation) - #81243 (mir: Improve size_of handling when arg is unsized) - #81245 (Update cargo) - #81249 (Lower closure prototype after its body.) - #81252 (Add more self-profile info to rustc_resolve) - #81275 (Fix <unknown> queries and add more timing info to render_html) - #81281 (Inline methods of Path and OsString) - #81283 (Note library tracking issue template in tracking issue template.) - #81285 (Remove special casing of rustdoc in rustc_lint) - #81288 (rustdoc: Fix visibility of trait and impl items) - #81298 (replace RefCell with Cell in FnCtxt) - #81301 (Fix small typo) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2021-01-23Add disambiugator to ExpnDataAaron Hill-14/+173
Due to macro expansion, its possible to end up with two distinct `ExpnId`s that have the same `ExpnData` contents. This violates the contract of `HashStable`, since two unequal `ExpnId`s will end up with equal `Fingerprint`s. This commit adds a `disambiguator` field to `ExpnData`, which is used to force two otherwise-equivalent `ExpnData`s to be distinct.
2021-01-23Rollup merge of #81301 - davidgu:patch-1, r=jonas-schievinkJonas Schievink-1/+1
Fix small typo Fractional part of `12.34e56` seems to be incorrectly stated as '45' and not '34'
2021-01-23Rollup merge of #81298 - lcnr:big-money-big-prices, r=oli-obkJonas Schievink-23/+18
replace RefCell with Cell in FnCtxt small cleanup
2021-01-23Rollup merge of #81288 - camelid:fix-trait-item-vis, r=jyn514Jonas Schievink-2/+51
rustdoc: Fix visibility of trait and impl items Fixes #81274. r? `@jyn514`
2021-01-23Rollup merge of #81283 - m-ou-se:tracking-issue-note, r=Mark-SimulacrumJonas Schievink-0/+2
Note library tracking issue template in tracking issue template.
2021-01-23Rollup merge of #81281 - a1phyr:inline_path, r=dtolnayJonas Schievink-0/+103
Inline methods of Path and OsString These methods are not generic, and therefore aren't candidates for cross-crate inlining without an `#[inline]` attribute.
2021-01-23Rollup merge of #81275 - jyn514:time-render, r=wesleywiserJonas Schievink-35/+48
Fix <unknown> queries and add more timing info to render_html Closes https://github.com/rust-lang/rust/issues/81251. ## Fix `<unknown>` queries This happened because `alloc_query_strings` was never called. ## Add more timing info to render_html This still has some issues I'm not sure how to work out: - `create_renderer` and `renderer_after_krate` aren't shown by default. I want something like `verbose_generic_activity_with_arg`, but it doesn't exist. I'm also not sure how to show activities that aren't on by default - I tried `-Z self-profile -Z self-profile-args=all`, but it didn't show up. r? `@wesleywiser`
2021-01-23Rollup merge of #81252 - jyn514:resolve-timing, r=petrochenkovJonas Schievink-10/+8
Add more self-profile info to rustc_resolve The idea is to help me find out where the time is being spent in compiling the docs for `windows-rs`: https://github.com/microsoft/windows-rs/issues/420#issuecomment-764991646
2021-01-23Rollup merge of #81249 - cjgillot:issue-79537, r=oli-obkJonas Schievink-13/+86
Lower closure prototype after its body. Fixes #79537. r? `@Mark-Simulacrum`
2021-01-23Rollup merge of #81245 - ehuss:update-cargo, r=ehussJonas Schievink-0/+1
Update cargo 5 commits in a73e5b7d567c3036b296fc6b33ed52c5edcd882e..783bc43c660bf39c1e562c8c429b32078ad3099b 2021-01-12 23:45:39 +0000 to 2021-01-20 19:02:26 +0000 - Fix some issues with `cargo doc` and the new feature resolver. (rust-lang/cargo#9077) - Implement support for rust-version field in project metadata (rust-lang/cargo#8037) - Fix a bug in Cargo's cyclic dep graph detection (rust-lang/cargo#9075) - Typo correction: artifcats -&gt; artifacts (rust-lang/cargo#9081) - Remove stray backtick from doc (rust-lang/cargo#9079)
2021-01-23Rollup merge of #81243 - osa1:fix_80742_2, r=RalfJungJonas Schievink-3/+35
mir: Improve size_of handling when arg is unsized As discussed on Zulip with `@RalfJung.`
2021-01-23Rollup merge of #81170 - xfix:vecdeque-bug-fix, r=sfacklerJonas Schievink-3/+47
Avoid hash_slice in VecDeque's Hash implementation Fixes #80303.
2021-01-23Rollup merge of #81130 - pierwill:edit-depnode, r=jyn514Jonas Schievink-7/+10
Edit rustc_middle::dep_graph module documentation This is similar to work approved and then closed in https://github.com/rust-lang/rust/pull/80325 due to a bad rebase.
2021-01-23Rollup merge of #81072 - RalfJung:place-ref-ty, r=oli-obkJonas Schievink-8/+10
PlaceRef::ty: use method call syntax
2021-01-23Rollup merge of #79841 - fintelia:patch-6, r=kennytmJonas Schievink-6/+13
More clear documentation for NonNull<T> Rephrase and hopefully clarify the discussion of covariance in `NonNull<T>` documentation. I'm very much not an expert so someone should definitely double check the correctness of what I'm saying. At the same time, the new language makes more sense to me, so hopefully it also is more logical to others whose knowledge of covariance basically begins and ends with the [Rustonomicon chapter](https://doc.rust-lang.org/nomicon/subtyping.html). Related to #48929.
2021-01-23Fix small typoDavid-1/+1
2021-01-23Fix review commentsbjorn3-7/+6
2021-01-23Calculate self-profile strings in `Compiler::enter` instead in codegenJoshua Nelson-16/+16
This avoids each tool having to separately find and call `self_profile_alloc_strings`. - Don't compute the global context if it hasn't yet been computed This avoids giving extraneous errors about unresolved names if an error occurs during parsing.
2021-01-23Add more timing info to render_htmlJoshua Nelson-13/+31
- Show `create_renderer` and `renderer_after_crate` by default - Don't rewrite `extra_verbose_generic_activity`
2021-01-23Auto merge of #80579 - RalfJung:no-fallible-promotion, r=oli-obkbors-333/+331
avoid promoting division, modulo and indexing operations that could fail For division, `x / y` will still be promoted if `y` is a non-zero integer literal; however, `1/(1+1)` will not be promoted any more. While at it, also see if we can reject promoting floating-point arithmetic (which are [complicated](https://github.com/rust-lang/unsafe-code-guidelines/issues/237) so maybe we should not promote them). This will need a crater run to see if there's code out there that relies on these things being promoted. If we can land this, promoteds in `fn`/`const fn` cannot fail to evaluate any more, which should let us do some simplifications in codegen/Miri! Cc https://github.com/rust-lang/rfcs/pull/3027 Fixes https://github.com/rust-lang/rust/issues/61821 r? `@oli-obk`
2021-01-23Allow to query the HIR crate node.Camille GILLOT-5/+4
2021-01-23Fix proc macro crate encoding.Camille GILLOT-2/+9
2021-01-23Filter stability.Camille GILLOT-3/+40
2021-01-23Iterate on deprecation.Camille GILLOT-10/+1
2021-01-23Iterate on const_stability.Camille GILLOT-4/+1
2021-01-23Iterate on stability.Camille GILLOT-14/+2
2021-01-23Iterate DefId to encode expn_that_defined.Camille GILLOT-4/+1
2021-01-23Iterate DefId to encode attributes.Camille GILLOT-17/+4
2021-01-23Iterate DefId to encode visibility.Camille GILLOT-10/+38
2021-01-23Iterate to encode def_kind.Camille GILLOT-72/+57
2021-01-23Iterate DefId to encode spans.Camille GILLOT-21/+25
2021-01-23Encode DefKind directly.Camille GILLOT-142/+160
2021-01-23Infallible version of def_span.Camille GILLOT-37/+39
2021-01-23Add some comments to PassModebjorn3-0/+6
2021-01-23replace RefCell with Cell in FnCtxtBastian Kauschke-23/+18
2021-01-23Never create an temporary PassMode::Direct when it is not a valid pass mode ↵bjorn3-50/+46
for a type
2021-01-23Move some code aroundbjorn3-55/+76
2021-01-23Use PassMode::Pair by default for Abi::ScalarPair for all abi's and in ↵bjorn3-18/+21
return position Abi::ScalarPair is only ever used for types that don't have a stable layout anyway so this doesn't break any FFI. It does however reduce the amount of special casing on the abi outside of the code responsible for abi specific adjustments to the pass mode.
2021-01-23Remove unused dependencybjorn3-2/+0
2021-01-23Auto merge of #80715 - JulianKnodt:skip_opt, r=nagisabors-7/+27
Change branching in `iter.skip()` Optimize branching in `Skip`, which was brought up in #80416. This assumes that if `next` is called, it's likely that there will be more calls to `next`, and the branch for skip will only be hit once thus it's unlikely to take that path. Even w/o the `unlikely` intrinsic, it compiles more efficiently, I believe because the path where `next` is called is always taken. It should be noted there are very few places in the compiler where `Skip` is used, so probably won't have a noticeable perf impact. [New impl](https://godbolt.org/z/85rdj4) [Old impl](https://godbolt.org/z/Wc74rh) [Some additional asm examples](https://godbolt.org/z/feKzoz) although they really don't have a ton of difference between them.
2021-01-23Auto merge of #80065 - b-naber:parse-angle-arg-diagnostics, r=petrochenkovbors-88/+169
Improve diagnostics when parsing angle args https://github.com/rust-lang/rust/pull/79266 introduced parsing of generic arguments in associated type constraints, this however resulted in possibly very confusing error messages in cases in which closing angle brackets were missing such as in `Vec<(u32, _, _) = vec![]`, which outputs an incorrectly parsed equality constraint error, as noted by `@cynecx.` This PR tries to provide better error messages in such cases. r? `@petrochenkov`
2021-01-23Auto merge of #76391 - danii:master, r=cuviperbors-3681/+3777
Split up core/test/iter.rs into multiple files This PR removes the `// ignore-tidy-filelength` at the top of [iter.rs](https://github.com/rust-lang/rust/blob/04f44fb9232dc960d213d0df4a203c387215a5ff/library/core/tests/iter.rs) by splitting it into several sub files. I have split the file per test, based on what I felt the test was really trying to test. Addresses issue #60302. - [associated_util.rs](https://github.com/rust-lang/rust/blob/d29180a8ed2752c5dfa2bca1d28ca05dc9bf6bf1/library/core/tests/iter/associated_util.rs) - For testing the module level functions. (Maybe should be renamed?) - [collection.rs](https://github.com/rust-lang/rust/blob/d29180a8ed2752c5dfa2bca1d28ca05dc9bf6bf1/library/core/tests/iter/collection.rs) - For testing methods that use the values of all the items in an iterator, and creates one value from them, whether it be a Vec of all the values, or a number that represents the sum. - [mod.rs](https://github.com/rust-lang/rust/blob/d29180a8ed2752c5dfa2bca1d28ca05dc9bf6bf1/library/core/tests/iter/mod.rs) - For utility structs used in all tests, and other tests I didn't know where to place. - [range.rs](https://github.com/rust-lang/rust/blob/d29180a8ed2752c5dfa2bca1d28ca05dc9bf6bf1/library/core/tests/iter/range.rs) - For testing ranges. - [transformation.rs](https://github.com/rust-lang/rust/blob/d29180a8ed2752c5dfa2bca1d28ca05dc9bf6bf1/library/core/tests/iter/transformation.rs) - For testing methods that transform all the values in an iterator. - [util.rs](https://github.com/rust-lang/rust/blob/d29180a8ed2752c5dfa2bca1d28ca05dc9bf6bf1/library/core/tests/iter/util.rs) - For testing methods that provide utility in more specific use cases. "Programatically" ----------------------- You may have noticed I "Programatically" split up the file. [This is how](https://gist.github.com/danii/a58b3bcafa9faf1c3e4b01ad7495baf4) I managed to do that. 😛 Hope that's fine.
2021-01-22rustdoc: Fix visibility of trait and impl itemsCamelid-2/+51