Parser: Fix spans of explicit self arg idents
rustdoc: hide private traits in strip-private pass

Fix #16563
enable parallel codegen by default

Enable parallel codegen (2 units) by default when --opt-level is 0 or 1.  This
gives a minor speedup on large crates (~10%), with only a tiny slowdown (~2%)
for small ones (which usually build in under a second regardless).  The current
default (no parallelization) is used when the user requests optimization
(--opt-level 2 or 3), and when the user has enabled LTO (which is incompatible
with parallel codegen).

This commit also changes the rust build system to use parallel codegen
when appropriate.  This means codegen-units=4 for stage0 always, and
also for stage1 and stage2 when configured with --disable-optimize.
(Other settings use codegen-units=1 for stage1 and stage2, to get
maximum performance for release binaries.)  The build system also sets
codegen-units=1 for compiletest tests (compiletest does its own
parallelization) and uses the same setting as stage2 for crate tests.
Adjust orphan rules to consider all input types, not just self type.

Fixes #18222.
Add test for issue #17594
auto merge of #18213 : pcwalton/rust/pcg-default, r=aturon

Enable parallel codegen (2 units) by default when --opt-level is 0 or 1.  This
gives a minor speedup on large crates (~10%), with only a tiny slowdown (~2%)
for small ones (which usually build in under a second regardless).  The current
default (no parallelization) is used when the user requests optimization
(--opt-level 2 or 3), and when the user has enabled LTO (which is incompatible
with parallel codegen).

This commit also changes the rust build system to use parallel codegen
when appropriate.  This means codegen-units=4 for stage0 always, and
also for stage1 and stage2 when configured with --disable-optimize.
(Other settings use codegen-units=1 for stage1 and stage2, to get
maximum performance for release binaries.)  The build system also sets
codegen-units=1 for compiletest tests (compiletest does its own
parallelization) and uses the same setting as stage2 for crate tests.

r? @aturon
auto merge of #18141 : phildawes/rust/master, r=brson

Hello! I noticed spans are wrong for the PatIdents of self args. (I use spans a lot in racer)
debuginfo: Gate all LLDB debuginfo tests on a minimum LLDB version being available
debuginfo: Make some path LLDB-related paths in the test runner absolute to help the build bots.
debuginfo: Enable LLDB test suite on Darwin.
debuginfo: Let LLDB tests run in parallel again since our min-supported version has no problems with that.
debuginfo: Print more output in lldb_batchmode.py for better error logs.
auto merge of #18223 : nikomatsakis/rust/coherence-orphan-18222, r=pcwalton

Adjust orphan rules to consider all input types, not just self type.

Fixes #18222.

r? @pcwalton
Guide: Adapt range values to variable name
auto merge of #18230 : cakebaker/rust/adapt_range_value_to_variable_name, r=steveklabnik

 The variable name <code>one_to_one_hundred</code> implies that it will contain a collection with the values from 1 to 100, but the collection contains the values from 0 to 99. This patch changes the ranges to produce a collection with the values from 1 to 100.
auto merge of #17846 : tomjakubowski/rust/rustdoc-hide-private-traits, r=alexcrichton

Fix #16563
auto merge of #18092 : michaelwoerister/rust/lldb-test-versioning, r=alexcrichton

Now that there are build bots with a stable enough LLDB version on OSX we can finally let the tests run on every PR!
:joy_cat:
auto merge of #18224 : nikomatsakis/rust/issue-17594, r=alexcrichton

Add test for issue #17594

Fixes #17594