Commit Graph

122794 Commits

Author SHA1 Message Date
Rich Kadel
5239a68e72 add spans to injected coverage counters
added regions with counter expressions and counters.

Added codegen_llvm/coverageinfo mod for upcoming coverage map

Move coverage region collection to CodegenCx finalization

Moved from `query coverageinfo` (renamed from `query coverage_data`),
as discussed in the PR at:

https://github.com/rust-lang/rust/pull/73684#issuecomment-649882503

Address merge conflict in MIR instrument_coverage test

The MIR test output format changed for int types.

moved debug messages out of block.rs

This makes the block.rs calls to add coverage mapping data to the
CodegenCx much more concise and readable.

move coverage intrinsic handling into llvm impl

I realized that having half of the coverage intrinsic handling in
`rustc_codegen_ssa` and half in `rustc_codegen_llvm` meant that any
non-llvm backend would be bound to the same decisions about how the
coverage-related MIR terminators should be handled.

To fix this, I moved the non-codegen portion of coverage intrinsic
handling into its own trait, and implemented it in `rustc_codegen_llvm`
alongside `codegen_intrinsic_call`.

I also added the (required?) stubs for the new intrinsics to
`IntrepretCx::emulate_intrinsic()`, to ensure calls to this function do
not fail if called with these new but known intrinsics.

address PR Feedback on 28 June 2020 2:48pm PDT
2020-06-29 12:31:25 -07:00
LeSeulArtichaut
dd346987e9
Fix Zulip topic format 2020-06-29 18:06:15 +02:00
Pietro Albini
c8f2dd0d3b
Revert "ci: allow gating gha on everything but macOS"
This reverts commit 8bc3122311.
2020-06-29 17:20:01 +02:00
Alex Crichton
3dfbf0bc73 rustbuild: Move compiler-builtins build logic to manifest
This commit moves the compiler-builtins-specific build logic from
`src/bootstrap/bin/rustc.rs` into the workspace `Cargo.toml`'s
`[profile]` configuration. Now that rust-lang/cargo#7253 is fixed we can
ensure that Cargo knows about debug assertions settings, and it can also
be configured to specifically disable debug assertions unconditionally
for compiler-builtins. This should improve rebuild logic when
debug-assertions settings change and also improve build-std integration
where Cargo externally now has an avenue to learn how to build
compiler-builtins as well.
2020-06-29 06:53:56 -07:00
bors
0ca7f74dbd Auto merge of #73391 - pickfire:liballoc-panic-doc, r=Mark-Simulacrum
Add liballoc doc panic detail according to RawVec
2020-06-29 12:00:31 +00:00
bors
c86039b333 Auto merge of #73032 - yoshuawuyts:stabilize-leading_trailing_ones, r=Amanieu
stabilize leading_trailing_ones

This PR stabilizes the `leading_trailing_ones` feature. It's been available on nightly since the start of the year, and hasn't had any issues since. It seems unlikely we'll want to change this, so following up on @djc's suggestion in https://github.com/rust-lang/rust/issues/57969#issuecomment-638405264 I'd like to put forward this PR to stabilize the feature and make it part of `1.46.0`. Thanks!

cc/ @djc @rust-lang/libs
2020-06-29 00:43:19 +00:00
pierwill
49662726af Add newline to rustc MultiSpan docs
Also adds back-ticks when referring to the contents of this collection.
2020-06-28 15:40:10 -07:00
bors
c977b8775d Auto merge of #72437 - ecstatic-morse:stabilize-const-if-match, r=oli-obk
Stabilize `#![feature(const_if_match)]`

Quoting from the [stabilization report](https://github.com/rust-lang/rust/issues/49146#issuecomment-616301045):

> `if` and `match` expressions as well as the short-circuiting logic operators `&&` and `||` will become legal in all [const contexts](https://doc.rust-lang.org/reference/const_eval.html#const-context). A const context is any of the following:
>
> - The initializer of a `const`, `static`, `static mut` or enum discriminant.
> - The body of a `const fn`.
> - The value of a const generic (nightly only).
> - The length of an array type (`[u8; 3]`) or an array repeat expression (`[0u8; 3]`).
>
> Furthermore, the short-circuiting logic operators will no longer be lowered to their bitwise equivalents (`&` and `|` respectively) in `const` and `static` initializers (see #57175). As a result, `let` bindings can be used alongside short-circuiting logic in those initializers.

Resolves #49146.

Ideally, we would resolve 🐳 #66753 before this lands on stable, so it might be worth pushing this back a release. Also, this means we should get the process started for #52000, otherwise people will have no recourse except recursion for iterative `const fn`.

r? @oli-obk
2020-06-28 20:47:52 +00:00
pierwill
40c74a7eb7 Edit cursor.prev() method docs in lexer
Fix missing punctuation
2020-06-28 13:24:17 -07:00
pierwill
49c1018d13 Fix markdown rendering in librustc_lexer docs
Use back-ticks instead of quotation marks in docs for the block comment
variant of TokenKind.
2020-06-28 13:19:59 -07:00
Alexis Bourget
4224313e2b Fix small nits 2020-06-28 20:48:53 +02:00
Alexis Bourget
dfd454bd38 Apply suggestions, reformulating some paragraphs and improving some examples 2020-06-28 20:20:32 +02:00
Dylan MacKenzie
8509b6951a Use LocalDefId in HIR const-checker 2020-06-28 10:13:04 -07:00
Dylan MacKenzie
1b28f94fbb Remove ignore-tidy-filelength 2020-06-28 10:08:12 -07:00
Dylan MacKenzie
d84f0c8d32 Update tests 2020-06-28 10:08:12 -07:00
Dylan MacKenzie
7c46e42512 Stop checking for while and loop in a const context 2020-06-28 10:08:11 -07:00
Dylan MacKenzie
5bed94cda4 Remove uses of const_loop in rustc 2020-06-28 10:08:11 -07:00
Dylan MacKenzie
86e1555e9f Mark const_loop feature gate as accepted 2020-06-28 10:08:11 -07:00
Dylan MacKenzie
565be31504 Require allow_internal_unstable in HIR const-checker 2020-06-28 10:08:10 -07:00
Dylan MacKenzie
69a5cb1592 Remove const_if_match from unstable book 2020-06-28 10:08:10 -07:00
Dylan MacKenzie
d6139f76c0 Update tests 2020-06-28 10:08:10 -07:00
Dylan MacKenzie
696084c764 HIR const-checking 2020-06-28 10:08:10 -07:00
Dylan MacKenzie
4c2383810b MIR const-checking 2020-06-28 10:08:09 -07:00
Dylan MacKenzie
48ebd2cdb8 Remove const_if_match feature gate from libraries 2020-06-28 10:08:09 -07:00
Dylan MacKenzie
f33a75c20c Remove control_flow_destroyed and properly lower && and || 2020-06-28 10:08:09 -07:00
Dylan MacKenzie
66f0cef1b1 Mark feature gate as accepted 2020-06-28 10:08:09 -07:00
bors
2f517ce6f2 Auto merge of #73838 - Manishearth:rollup-jj57e84, r=Manishearth
Rollup of 9 pull requests

Successful merges:

 - #73577 (Add partition_point)
 - #73757 (Const prop: erase all block-only locals at the end of every block)
 - #73774 (Make liveness more precise for assignments to fields)
 - #73795 (Add some `const_compare_raw_pointers`-related regression tests)
 - #73800 (Forward Hash::write_iN to Hash::write_uN)
 - #73813 (Rename two `Resolver` traits)
 - #73817 (Rename clashing_extern_decl to clashing_extern_declarations.)
 - #73826 (Fix docstring typo)
 - #73833 (Remove GlobalCtxt::enter_local)

Failed merges:

r? @ghost
2020-06-28 16:44:29 +00:00
Manish Goregaokar
117b734ad6
Rollup merge of #73833 - bjorn3:remove_gcx_enter_local, r=matthewjasper
Remove GlobalCtxt::enter_local
2020-06-28 08:30:36 -07:00
Manish Goregaokar
5304511fbc
Rollup merge of #73826 - cjrh:cjrh-patch-1, r=jonas-schievink
Fix docstring typo
2020-06-28 08:30:34 -07:00
Manish Goregaokar
8b92eecbc2
Rollup merge of #73817 - jumbatm:rename-to-clashing-extern-declarations, r=petrochenkov
Rename clashing_extern_decl to clashing_extern_declarations.

Rename clashing_extern_decl to clashing_extern_declarations to bring in-line with lint naming conventions.

Fixes #73802.

r? @petrochenkov
2020-06-28 08:30:33 -07:00
Manish Goregaokar
dd81139927
Rollup merge of #73813 - petrochenkov:restrait, r=davidtwco
Rename two `Resolver` traits

`trait Resolver` -> `trait ResolverExpand` for the resolver interface available from expansion.
`trait Resolver` -> `trait ResolverAstLowering` for the resolver interface available from AST lowering.

Addresses https://github.com/rust-lang/rust/pull/73587#discussion_r443242556
2020-06-28 08:30:31 -07:00
Manish Goregaokar
95da53f7fd
Rollup merge of #73800 - nikic:hash_i, r=kennytm
Forward Hash::write_iN to Hash::write_uN

The `Hasher::write_iN()` methods should forward to `Hasher::write_uN()`, because some Hasher implementations implement only the `write_uN()` variants, with the expectation that `write_iN()` will use the same implementation. Most notably, this is the case for the [FxHasher](5e09ea0a1c/src/lib.rs (L111)) used by rustc itself.

This used to be the case previously, but was broken in #59982. As the PR description makes no mention of this particular change, I assume it was unintentional.

In a local test, this mitigates the regression from #73526 on at least one test-case (cc @cuviper), because we're no longer at the mercy of `FxHasher::write()` getting inlined to get reasonable performance.
2020-06-28 08:30:29 -07:00
Manish Goregaokar
2c1b732961
Rollup merge of #73795 - JohnTitor:tests-for-const-fn-ptrs, r=oli-obk
Add some `const_compare_raw_pointers`-related regression tests

Closes #71381
Closes #71382
Closes #71611
Closes #72352

r? @oli-obk, the author of #73398
2020-06-28 08:30:27 -07:00
Manish Goregaokar
3f826a8974
Rollup merge of #73774 - ecstatic-morse:liveness-of-projections, r=oli-obk
Make liveness more precise for assignments to fields

Previously, we were too conservative and `x.field = 4` was treated as a "use" of `x`. Now it neither kills `x` (since other fields of `x` may still be live) nor marks it as live.

cc @jonas-schievink, who ran into this problem.
2020-06-28 08:30:25 -07:00
Manish Goregaokar
ccc1bf79c8
Rollup merge of #73757 - oli-obk:const_prop_hardening, r=wesleywiser
Const prop: erase all block-only locals at the end of every block

I messed up this erasure in https://github.com/rust-lang/rust/pull/73656#discussion_r446040140. I think it is too fragile to have the previous scheme. Let's benchmark the new scheme and see what happens.

r? @wesleywiser

cc @felix91gr
2020-06-28 08:30:24 -07:00
Manish Goregaokar
ec4898977a
Rollup merge of #73577 - VillSnow:master, r=Amanieu
Add partition_point

Add partition_point in C++.
Although existing binary_search in rust does not suitable when the slice has multiple hits,
this function returns exact point of partition.
The definition of this function is very clear and able to accept general matter, therefore you can easily get index which you want like lower/upper_bound.

https://github.com/rust-lang/rfcs/issues/2184
2020-06-28 08:30:22 -07:00
Charles Lew
e8f5785bfc Split and expand nonstandard-style lints unicode unit test. 2020-06-28 23:28:43 +08:00
Alexis Bourget
e611a3fb84 Apply suggestions from code review 2020-06-28 17:20:27 +02:00
VillSnow
6f8ad3b208
Update src/libcore/slice/mod.rs
Co-authored-by: Amanieu d'Antras <amanieu@gmail.com>
2020-06-28 21:31:05 +09:00
Oliver Scherer
b9f4e0dbfd Erase all block-only locals at the end of every block, even if they have not been touched. 2020-06-28 12:03:19 +02:00
bjorn3
4d978af297 Remove GlobalCtxt::enter_local 2020-06-28 11:43:10 +02:00
VillSnow
60f2ba2403 Update tracking issue number 2020-06-28 17:39:03 +09:00
bors
25687caa2e Auto merge of #73830 - Manishearth:rollup-8k68ysm, r=Manishearth
Rollup of 10 pull requests

Successful merges:

 - #72796 (MIR sanity check: validate types on assignment)
 - #73243 (Add documentation to point to `File::open` or `OpenOptions::open` instead of `is_file` to check read/write possibility)
 - #73525 (Prepare for LLVM 11)
 - #73672 (Adds a clearer message for when the async keyword is missing from a f…)
 - #73708 (Explain move errors that occur due to method calls involving `self` (take two))
 - #73758 (improper_ctypes: fix remaining `Reveal:All`)
 - #73763 (errors: use `-Z terminal-width` in JSON emitter)
 - #73796 (replace more `DefId`s with `LocalDefId`)
 - #73797 (fix typo in self-profile.md)
 - #73809 (Add links to fs::DirEntry::metadata)

Failed merges:

r? @ghost
2020-06-28 08:26:22 +00:00
VillSnow
d720a19e2a Update doc comment 2020-06-28 16:45:56 +09:00
VillSnow
83d599826f Merge branch 'master' of https://github.com/VillSnow/rust 2020-06-28 16:27:41 +09:00
VillSnow
9335787657
Update src/libcore/slice/mod.rs
Co-authored-by: Lukas Kalbertodt <lukas.kalbertodt@gmail.com>
2020-06-28 16:26:47 +09:00
VillSnow
52f976236f Add comment on use of unsafe 2020-06-28 16:25:33 +09:00
pierwill
4595fa8a1b Fix comma in debug_assert! docs 2020-06-28 00:08:53 -07:00
Manish Goregaokar
cdb59d9041
Rollup merge of #73809 - robyoung:docs/add-links-to-DirEntry-metadata, r=hanna-kruppe
Add links to fs::DirEntry::metadata

`fs::DirEntry::metadata` doesn't traverse symlinks. It is not immediately clear what to do if you do want to traverse symlinks. This change adds links to the two other `metadata` functions that will follow symlinks.
2020-06-27 22:30:06 -07:00
Manish Goregaokar
dc843a8c6d
Rollup merge of #73797 - atetubou:patch-1, r=jonas-schievink
fix typo in self-profile.md
2020-06-27 22:30:05 -07:00