Rollup of 9 pull requests - #161706
Conversation
LLVM 24 stopped using llvm::Any here to avoid heap allocations in PassInstrumentation.
Before, LargeDataThreshold was only set via `LLVMRustCreateTargetMachine`. When LTO is enabled, this information is required to be passed into the generated LLVM module IR files since the LTO linker spins up its own TargetMachine and otherwise has no knowledge of the LargeDataThreshold. Currently, `-Z large-data-threshold` has no affect at all when compiling with LTO. This commit makes sure that if `-Z large-data-threshold` is passed and not 0, it is preserved and stored into the generated LLVM IR.
The essential problem is that, with this table: ```text one | ----| a | b | c a | b | a | b a | ``` And this logic: ```rust let too_many_pipes = divider_count > expected_cells + 1; ``` `expected_cells + 1` winds up as 2, so you get this warning: ```text error: unused content after last table cell --> $DIR/invalid_markdown_table.rs:81:14 | LL | //! a | b | c | ^^^^^^ this content is discarded error: unused content after last table cell --> $DIR/invalid_markdown_table.rs:83:14 | LL | //! a | b | | ^^^^ this content is discarded error: unused content after last table cell --> $DIR/invalid_markdown_table.rs:85:14 | LL | //! a | b | ^^ this content is discarded ``` We really want our warning to give the suggest-escaping flow, like this: ```text error: table row has too many columns --> $DIR/invalid_markdown_table.rs:81:13 | LL | //! a | b | c | ^ any content after this column divider is discarded | = help: to escape `|` characters in tables, add a `\` before them like `\|` error: table row has too many columns --> $DIR/invalid_markdown_table.rs:83:13 | LL | //! a | b | | ^ any content after this column divider is discarded | = help: to escape `|` characters in tables, add a `\` before them like `\|` error: unused content after last table cell --> $DIR/invalid_markdown_table.rs:85:14 | LL | //! a | b | ^^ this content is discarded ``` By only scanning the text between the end of the last cell and the row, instead of doing the entire row, we don't have to re-implement as much of pulldown-cmark's logic.
Previously, the code unwrapped large_data_threshold with a default of 0 and sets it in the LLVM module if it is != 0. Instead, we should simply check if large_data_threshold has a value.
bootstrap: don't LTO C dependencies on aarch64 Since rust-lang#161535 apparently may take a while, let's land something to un-break Miri: we know that on aarch64-linux, shipping pure-LTO object files is a bad idea as we can't assume the user has an LTO-capable linker. r? @Kobzol Cc @weihanglo
…, r=GuillaumeGomez rustdoc: fix issue preventing "read more" links from generating. fixes rust-lang#161300
…nagisa Pass LargeDataThreshold to LLVM module IR Before, LargeDataThreshold was only set via `LLVMRustCreateTargetMachine`. When LTO is enabled, this information is required to be passed into the generated LLVM module IR files since the LTO linker spins up its own TargetMachine and otherwise has no knowledge of the LargeDataThreshold. Currently, `-Z large-data-threshold` has no affect at all when compiling with LTO. This commit makes sure that if `-Z large-data-threshold` is passed and not 0, it is preserved and stored into the generated LLVM IR.
…=GuillaumeGomez rustdoc: Nuke `--passes=list` and defossilize the passes infrastructure `--passes` and `--no-defaults` were deprecated and made noops years ago except that `--passes list` still prints all passes in a human-readable format as if users could still somehow make use of that information. Removing this useless functionality allows for some small simplifications (and longer term, it would enable us to further rewrite the way we represent internal passes w/o having to worry about it possibly affecting the CLI). Given that the output of `--passes list` is *clearly* meant for human consumption only (I mean, just look at it), I hold the opinion that this removal doesn't need an FCP. And even if there were scripts somewhere out there that try to parse this output I think it would be okay to break them.
…t-links-url, r=GuillaumeGomez Check `redundant_explicit_links` against generated URLs Fixes rust-lang#155458. `rustdoc::redundant_explicit_links` checked explicit link destinations by resolving both the label and the destination as intra-doc paths. That misses links written as local rustdoc page URLs, such as `struct.B.html`, because those URLs do not appear in `doc_link_resolutions`. This PR keeps the existing path-resolution check and falls back to comparing the explicit destination with the local href that rustdoc would generate for the resolved label.
…able_cell, r=Urgau,notriddle,camelid Add new `invalid_markdown_table` rustdoc lint Fixes rust-lang#159186. r? @Urgau
…=cuviper PassWrapper: handle LLVM 24 change in function types LLVM 24 stopped using llvm::Any here [to avoid heap allocations](llvm/llvm-project@fa23198) in PassInstrumentation. @rustbot label: +llvm-main
…k-fix, r=cuviper Check for missing rustfmt in the stdarch intrinsic test step sooner Found [here](rust-lang#161422 (comment)). r? cuviper
…re, r=ChrisDenton Don't treat slashes as path seps after drive letters in verbatim paths Treat slashes as just a regular character in `\\?\C:/path\somewhere`. This mirrors how slashes are treated afterwards, e.g. in `\\?\C:\path/somewhere`, which has a component `path/somewhere`, rather than `path`, `somewhere`. Likewise, drive letters followed by `/` do not denote a `VerbatimDisk`, but an arbitrary `Verbatim` path: The prefix of `\\?\C:/path\somewhere` is `\\?\C:/path`. Fixes rust-lang#161651
|
@bors r+ p=5 |
This comment has been minimized.
This comment has been minimized.
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing e776960 (parent) -> 9bb55c8 (this PR) Test differencesShow 15 test diffsStage 1
Stage 2
Additionally, 2 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 9bb55c8c865411b7d9dea6ff743e583d510d89f5 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (9bb55c8): comparison URL. Overall result: ❌ regressions - please read:Our benchmarks found a performance regression caused by this PR. Next Steps:
@rustbot label: +perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary 6.7%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary -2.7%, secondary 0.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 471.419s -> 476.471s (1.07%) |
|
📌 Perf builds for each rolled up PR:
parent commit: e7769602ac In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
|
@rust-timer triage 51502e8 823287b ff4bc60 |
#146529 51502e8 rustdoc: Nuke
|
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
7.2% | [7.2%, 7.2%] | 1 |
| Regressions ❌ (secondary) |
5.3% | [5.3%, 5.3%] | 1 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | 7.2% | [7.2%, 7.2%] | 1 |
Cycles
Results (primary -3.0%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
-3.0% | [-3.0%, -3.0%] | 1 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | -3.0% | [-3.0%, -3.0%] | 1 |
Binary size
Results (primary -0.1%, secondary -0.1%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
-0.1% | [-0.2%, -0.0%] | 79 |
| Improvements ✅ (secondary) |
-0.1% | [-0.2%, -0.0%] | 66 |
| All ❌✅ (primary) | -0.1% | [-0.2%, -0.0%] | 79 |
#156009 823287b Check redundant_explicit_links against generated URLs
Instruction count
This perf run didn't have relevant results for this metric.
Max RSS (memory usage)
Results (primary -0.4%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
2.8% | [2.8%, 2.8%] | 1 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
-3.7% | [-3.7%, -3.7%] | 1 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | -0.4% | [-3.7%, 2.8%] | 2 |
Cycles
Results (primary -3.5%, secondary 17.5%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
17.5% | [17.5%, 17.5%] | 1 |
| Improvements ✅ (primary) |
-3.5% | [-3.5%, -3.5%] | 1 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | -3.5% | [-3.5%, -3.5%] | 1 |
Binary size
Results (primary -0.0%, secondary -0.0%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
-0.0% | [-0.0%, -0.0%] | 4 |
| Improvements ✅ (secondary) |
-0.0% | [-0.0%, -0.0%] | 2 |
| All ❌✅ (primary) | -0.0% | [-0.0%, -0.0%] | 4 |
#159583 ff4bc60 Add new invalid_markdown_table rustdoc lint
Instruction count
Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
0.5% | [0.5%, 0.6%] | 2 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | 0.5% | [0.5%, 0.6%] | 2 |
Max RSS (memory usage)
Results (primary 7.8%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
7.8% | [7.8%, 7.8%] | 1 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | 7.8% | [7.8%, 7.8%] | 1 |
Cycles
Results (primary -2.9%, secondary -2.3%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
-2.9% | [-2.9%, -2.9%] | 1 |
| Improvements ✅ (secondary) |
-2.3% | [-2.3%, -2.3%] | 1 |
| All ❌✅ (primary) | -2.9% | [-2.9%, -2.9%] | 1 |
Binary size
This perf run didn't have relevant results for this metric.
Successful merges:
--passes=listand defossilize the passes infrastructure #146529 (rustdoc: Nuke--passes=listand defossilize the passes infrastructure)redundant_explicit_linksagainst generated URLs #156009 (Checkredundant_explicit_linksagainst generated URLs)invalid_markdown_tablerustdoc lint #159583 (Add newinvalid_markdown_tablerustdoc lint)Failed merges:
box_patterns#156749 (removebox_patterns)r? @ghost
Create a similar rollup