Migrate run-make/pgo-branch-weights
to rmake
by Oneirical · Pull Request #125165 · rust-lang/rust (original) (raw)
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation158 Commits1 Checks6 Files changed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})
Part of #121876 and the associated Google Summer of Code project.
This is a scary one and I expect things to break. Set as draft, because this isn't ready.
- There is this comment here, which suggests the test is excluded from the testing process due to a platform specific issue? I can't see anything here that would cause this test to not run...
// FIXME(mati865): MinGW GCC miscompiles compiler-rt profiling library but with Clang it works
// properly. Since we only have GCC on the CI ignore the test for now."
EDIT: This is specific to Windows-gnu.
- The Makefile has this line:
ifneq (,$(findstring x86,$(TARGET)))
COMMON_FLAGS=-Clink-args=-fuse-ld=gold
I honestly can't tell whether this is checking if the target IS x86, or IS NOT. EDIT: It's checking if it IS x86.
- I don't know why the Makefile was trying to pass an argument directly in the Makefile instead of setting that "aaaaaaaaaaaa2bbbbbbbbbbbb2bbbbbbbbbbbbbbbbcc" input as a variable in the Rust program directly. I changed that, let me know if that was wrong.
- Trying to rewrite
cat "$(TMPDIR)/interesting.ll" | "$(LLVM_FILECHECK)" filecheck-patterns.txt
resulted in some butchery. For starters, intools.mk
, LLVM_FILECHECK corrects its own backslashes on Windows distributions, but there is no further mention of it, so I assume this is a preset environment variable... but is it really? Then, the command itself uses a Standard Input and a passed input file as an argument simultaneously, according to the documentation.
try-job: aarch64-gnu
r? @jieyouxu
rustbot has assigned @jieyouxu.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.
Use r?
to explicitly pick a reviewer
rustbot added A-testsuite
Area: The testsuite used to check the correctness of rustc
Status: Awaiting review from the assignee but also interested parties.
Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
labels
This comment has been minimized.
- There is this comment here, which suggests the test is excluded from the testing process due to a platform specific issue? I can't see anything here that would cause this test to not run...
// FIXME(mati865): MinGW GCC miscompiles compiler-rt profiling library but with Clang it works
// properly. Since we only have GCC on the CI ignore the test for now."
it's the # ignore-windows-gnu
in the makefile, which is where this mingw gcc bug is expected to happen, according to the comment
Yeah, run-make Makefiles have # <directive-name>
directives. What's funny about them like the old-format // <directive-name>
directive in Rust code is that you can sneak in a directive in a comment block, e.g.
This is a comment block that has a starting line,
ignore-windows in the middle of the sentence,
and hello world in the end of the sentence.
Here # ignore-windows
is a (Makefile) directive.
Ah, I was wondering if that comment meant the test did not run at all... I am equally soothed that my work on this one was not wasted, and worried that this means it will have to be fully understood to proceed...
It does use features found in other tests, though, so this should make the other tests using LLVM instrumentation much easier to port.
EDIT: That does mean that the LLVM_FILECHECK part that fixes Windows path to use slashes won't have to be ported over in this test, since Windows is already getting ignored. Not sure if that mattered in the first place.
EDIT 2: Not Windows, Windows-gnu.
This comment has been minimized.
This comment has been minimized.
Member
lqd commented
• Loading
since Windows is already getting ignored
To clarify, windows-gnu is ignored, not windows-msvc (the main windows target), or the other windows targets.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
I'll take a closer took tomorrow
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Feel free to ping me if you need any PR CI runs (i.e. try jobs) for various platforms.
This comment has been minimized.
Feel free to ping me if you need any PR CI runs (i.e. try jobs) for various platforms.
@jieyouxu I might need some try jobs for windows-gnu (once CI is green). The description has been changed already.
This comment has been minimized.
bors added a commit to rust-lang-ci/rust that referenced this pull request
Migrate run-make/pgo-branch-weights
to rmake
Part of rust-lang#121876 and the associated Google Summer of Code project.
This is a scary one and I expect things to break. Set as draft, because this isn't ready.
- There is this comment here, which suggests the test is excluded from the testing process due to a platform specific issue? I can't see anything here that would cause this test to not run...
// FIXME(mati865): MinGW GCC miscompiles compiler-rt profiling library but with Clang it works // properly. Since we only have GCC on the CI ignore the test for now."
EDIT: This is specific to Windows-gnu.
- The Makefile has this line:
ifneq (,$(findstring x86,$(TARGET)))
COMMON_FLAGS=-Clink-args=-fuse-ld=gold
I honestly can't tell whether this is checking if the target IS x86, or IS NOT. EDIT: It's checking if it IS x86.
I don't know why the Makefile was trying to pass an argument directly in the Makefile instead of setting that "aaaaaaaaaaaa2bbbbbbbbbbbb2bbbbbbbbbbbbbbbbcc" input as a variable in the Rust program directly. I changed that, let me know if that was wrong.
Trying to rewrite
cat "$(TMPDIR)/interesting.ll" | "$(LLVM_FILECHECK)" filecheck-patterns.txt
resulted in some butchery. For starters, intools.mk
, LLVM_FILECHECK corrects its own backslashes on Windows distributions, but there is no further mention of it, so I assume this is a preset environment variable... but is it really? Then, the command itself uses a Standard Input and a passed input file as an argument simultaneously, according to the documentation.
try-job: aarch64-gnu
☀️ Try build successful - checks-actions
Build commit: 55dde6a (55dde6a6ff40e83623f3ce7ae7f38dc65332cb17
)
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some minor nits, but otherwise looks good
Changes implemented. I'm slightly worried that the bors try success was not real and was caused by the CI outage of yesterday, but I suppose we're about to find out.
We'll see in full CI.
@bors rollup=iffy
@bors delegate+ (r=me after CI is green)
✌️ @Oneirical, you can now approve this pull request!
If @jieyouxu told you to "r=me
" after making some further change, please make that change, then do @bors r=@jieyouxu
📌 Commit 17b0771 has been approved by jieyouxu
It is now in the queue for this repository.
bors added S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
and removed S-waiting-on-author
Status: This is awaiting some action (such as code changes or more information) from the author.
labels
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request
…eyouxu
Migrate run-make/pgo-branch-weights
to rmake
Part of rust-lang#121876 and the associated Google Summer of Code project.
This is a scary one and I expect things to break. Set as draft, because this isn't ready.
- There is this comment here, which suggests the test is excluded from the testing process due to a platform specific issue? I can't see anything here that would cause this test to not run...
// FIXME(mati865): MinGW GCC miscompiles compiler-rt profiling library but with Clang it works // properly. Since we only have GCC on the CI ignore the test for now."
EDIT: This is specific to Windows-gnu.
- The Makefile has this line:
ifneq (,$(findstring x86,$(TARGET)))
COMMON_FLAGS=-Clink-args=-fuse-ld=gold
I honestly can't tell whether this is checking if the target IS x86, or IS NOT. EDIT: It's checking if it IS x86.
I don't know why the Makefile was trying to pass an argument directly in the Makefile instead of setting that "aaaaaaaaaaaa2bbbbbbbbbbbb2bbbbbbbbbbbbbbbbcc" input as a variable in the Rust program directly. I changed that, let me know if that was wrong.
Trying to rewrite
cat "$(TMPDIR)/interesting.ll" | "$(LLVM_FILECHECK)" filecheck-patterns.txt
resulted in some butchery. For starters, intools.mk
, LLVM_FILECHECK corrects its own backslashes on Windows distributions, but there is no further mention of it, so I assume this is a preset environment variable... but is it really? Then, the command itself uses a Standard Input and a passed input file as an argument simultaneously, according to the documentation.
try-job: aarch64-gnu
bors added a commit to rust-lang-ci/rust that referenced this pull request
…kingjubilee
Rollup of 11 pull requests
Successful merges:
- rust-lang#125165 (Migrate
run-make/pgo-branch-weights
tormake
) - rust-lang#125674 (Rewrite
symlinked-extern
,symlinked-rlib
andsymlinked-libraries
run-make
tests inrmake.rs
format) - rust-lang#125688 (Walk into alias-eq nested goals even if normalization fails)
- rust-lang#126142 (Harmonize using root or leaf obligation in trait error reporting)
- rust-lang#126303 (Urls to docs in rust_hir)
- rust-lang#126328 (Add Option::is_none_or)
- rust-lang#126337 (Add test for walking order dependent opaque type behaviour)
- rust-lang#126351 (std::unix::fs::link using direct linkat call for Solaris.)
- rust-lang#126353 (Move
MatchAgainstFreshVars
to old solver) - rust-lang#126356 (docs(rustc): Improve discoverable of Cargo docs)
- rust-lang#126362 (Make
try_from_target_usize
method public)
r? @ghost
@rustbot
modify labels: rollup
bors mentioned this pull request
Finished benchmarking commit (f6b4b71): comparison URL.
Overall result: no relevant changes - no action needed
@rustbot label: -perf-regression
Instruction count
This benchmark run did not return any relevant results for this metric.
Max RSS (memory usage)
Results (primary 1.9%)
This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
mean | range | count | |
---|---|---|---|
Regressions ❌ (primary) | 3.2% | [2.3%, 4.7%] | 3 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -2.3% | [-2.3%, -2.3%] | 1 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 1.9% | [-2.3%, 4.7%] | 4 |
Cycles
Results (secondary -2.1%)
This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
mean | range | count | |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | -2.1% | [-2.1%, -2.1%] | 1 |
All ❌✅ (primary) | - | - | 0 |
Binary size
This benchmark run did not return any relevant results for this metric.
Bootstrap: 672.648s -> 671.891s (-0.11%)
Artifact size: 320.29 MiB -> 320.29 MiB (0.00%)
Rejyr mentioned this pull request
jieyouxu added a commit to jieyouxu/rust that referenced this pull request
… r=jieyouxu
Remove unused llvm_readobj.rs
in run-make-support
llvm_readobj.rs
seems unused from the migration to llvm.rs
in rust-lang#125165.
Also, llvm.rs
was missing the drop bombs (rust-lang#125752) in llvm_readobj.rs
.
Part of rust-lang#121876.
r? @jieyouxu
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request
Rollup merge of rust-lang#126536 - Rejyr:remove-unused-run-make-file, r=jieyouxu
Remove unused llvm_readobj.rs
in run-make-support
llvm_readobj.rs
seems unused from the migration to llvm.rs
in rust-lang#125165.
Also, llvm.rs
was missing the drop bombs (rust-lang#125752) in llvm_readobj.rs
.
Part of rust-lang#121876.
r? @jieyouxu
Labels
Area: port run-make Makefiles to rmake.rs
Area: The testsuite used to check the correctness of rustc
This PR was explicitly merged by bors.
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
Relevant to the infrastructure team, which will review and decide on the PR/issue.