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

Transmute intrinsics #6692

Merged
merged 16 commits into from
Nov 14, 2024
Merged

Transmute intrinsics #6692

merged 16 commits into from
Nov 14, 2024

Conversation

xunilrj
Copy link
Contributor

@xunilrj xunilrj commented Nov 4, 2024

Description

This PR implements the __transmute intrinsic. As Rust this intrinsic should be a no-op semantically equal to a pointer cast. Although this PR does not aim that it is 100% no-op yet.

At the moment some trade-offs were taken:

1 - References, pointers etc... are not allowed at the moment;
2 - u16 and u32 actually occupy 64bits. To allow transmute to work in complex aggregates, this PR is accepting them as u64. Doing otherwise would forbid __transmute to be no-op. Specially in complex aggregates;

Checklist

  • I have linked to any relevant issues.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have updated the documentation where relevant (API docs, the reference, and the Sway book).
  • I have added tests that prove my fix is effective or that my feature works.
  • I have added (or requested a maintainer to add) the necessary Breaking* or New Feature labels where relevant.
  • I have done my best to ensure that my PR adheres to the Fuel Labs Code Review Standards.
  • I have requested a review from the relevant team or maintainers.

@xunilrj xunilrj force-pushed the xunilrj/transmute-intrinsics branch from 50afe41 to 73a4be0 Compare November 4, 2024 22:39
Copy link

codspeed-hq bot commented Nov 4, 2024

CodSpeed Performance Report

Merging #6692 will not alter performance

Comparing xunilrj/transmute-intrinsics (c351393) with master (f7fa086)

Summary

✅ 22 untouched benchmarks

@xunilrj xunilrj force-pushed the xunilrj/transmute-intrinsics branch 3 times, most recently from 386909e to 6c83607 Compare November 12, 2024 09:24
@xunilrj xunilrj force-pushed the xunilrj/transmute-intrinsics branch from a49593b to 50e70b1 Compare November 13, 2024 19:35
@xunilrj xunilrj self-assigned this Nov 13, 2024
@xunilrj xunilrj marked this pull request as ready for review November 13, 2024 21:32
@xunilrj xunilrj requested a review from a team as a code owner November 13, 2024 21:32
@xunilrj xunilrj changed the title transmute intrinsics Transmute intrinsics Nov 14, 2024
@xunilrj xunilrj merged commit 9951c1d into master Nov 14, 2024
41 checks passed
@xunilrj xunilrj deleted the xunilrj/transmute-intrinsics branch November 14, 2024 16:02
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants