Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Add tests for raw-dylib with vectorcall, and fix vectorcall code generation #99476

Merged
merged 1 commit into from
Aug 1, 2022

Conversation

dpaoliello
Copy link
Contributor

  • Adds tests for using raw-dylib (Tracking issue for RFC 2627: #[link(kind="raw-dylib")] #58713) with vectorcall.
  • Fixed code generation for vectorcall (parameters have to be marked with InReg, just like fastcall).
  • Enabled running the raw-dylib fastcall tests when using MSVC (since I had to add support in the test for running MSVC-only tests since GCC doesn't support vectorcall).

@rustbot rustbot added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Jul 19, 2022
@rust-highfive
Copy link
Contributor

r? @cjgillot

(rust-highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jul 19, 2022
@dpaoliello dpaoliello force-pushed the rawdylibvectorcall branch from 8ebc023 to f213727 Compare July 20, 2022 17:58
@dpaoliello
Copy link
Contributor Author

r? @luqmana

@luqmana
Copy link
Member

luqmana commented Jul 22, 2022

LGTM but don't have r+ bits, so r? @petrochenkov or @michaelwoerister who've reviewed previous raw-dylib PRs

@bors
Copy link
Collaborator

bors commented Jul 26, 2022

☔ The latest upstream changes (presumably #98989) made this pull request unmergeable. Please resolve the merge conflicts.

@dpaoliello dpaoliello force-pushed the rawdylibvectorcall branch from f213727 to 722d67d Compare July 26, 2022 21:12
@dpaoliello
Copy link
Contributor Author

r? @michaelwoerister

@michaelwoerister
Copy link
Member

Thanks for the PR, @dpaoliello! I cross-checked the code of X86_32ABIInfo::shouldPrimitiveUseInReg() in Clang and it looks like __fastcall and __vectorcall are indeed treated the same way there. The tests look good to me too.

@bors r+

@bors
Copy link
Collaborator

bors commented Aug 1, 2022

📌 Commit 722d67d has been approved by michaelwoerister

It is now in the queue for this repository.

@bors 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-review Status: Awaiting review from the assignee but also interested parties. labels Aug 1, 2022
@michaelwoerister
Copy link
Member

@bors rollup=never (modifies MSVC-only run-make tests)

@bors
Copy link
Collaborator

bors commented Aug 1, 2022

⌛ Testing commit 722d67d with merge 6bd0054b26a250470fbce3a4f9e9a72d99be277a...

@bors
Copy link
Collaborator

bors commented Aug 1, 2022

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 1, 2022
@rust-log-analyzer
Copy link
Collaborator

A job failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)

@dpaoliello
Copy link
Contributor Author

@michaelwoerister looks like one of the builds timed out (dist-aarch64-apple failed with The operation was canceled after 1h 50min without any other error messages), can you please requeue this?

@wesleywiser
Copy link
Member

@bors retry

@bors 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-review Status: Awaiting review from the assignee but also interested parties. labels Aug 1, 2022
@bors
Copy link
Collaborator

bors commented Aug 1, 2022

⌛ Testing commit 722d67d with merge 6b92c2f647d8d9c2219c14f84225516b223d1bf7...

@rust-log-analyzer
Copy link
Collaborator

A job failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)

@wesleywiser
Copy link
Member

fatal: unable to access 'https://github.com/rust-lang/cargo.git/': Could not resolve host: github.com

@bors retry

@bors
Copy link
Collaborator

bors commented Aug 1, 2022

⌛ Testing commit 722d67d with merge fe33428...

@bors
Copy link
Collaborator

bors commented Aug 1, 2022

☀️ Test successful - checks-actions
Approved by: michaelwoerister
Pushing fe33428 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Aug 1, 2022
@bors bors merged commit fe33428 into rust-lang:master Aug 1, 2022
@rustbot rustbot added this to the 1.64.0 milestone Aug 1, 2022
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (fe33428): comparison url.

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results
  • Primary benchmarks: 🎉 relevant improvements found
  • Secondary benchmarks: no relevant changes found
mean1 max count2
Regressions 😿
(primary)
N/A N/A 0
Regressions 😿
(secondary)
N/A N/A 0
Improvements 🎉
(primary)
-2.4% -2.6% 2
Improvements 🎉
(secondary)
N/A N/A 0
All 😿🎉 (primary) -2.4% -2.6% 2

Cycles

Results
  • Primary benchmarks: no relevant changes found
  • Secondary benchmarks: 😿 relevant regression found
mean1 max count2
Regressions 😿
(primary)
N/A N/A 0
Regressions 😿
(secondary)
2.6% 2.6% 1
Improvements 🎉
(primary)
N/A N/A 0
Improvements 🎉
(secondary)
N/A N/A 0
All 😿🎉 (primary) N/A N/A 0

If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf.

@rustbot label: -perf-regression

Footnotes

  1. the arithmetic mean of the percent change 2

  2. number of relevant changes 2

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants