Avatar for the FuelLabs user
FuelLabs
sway
BlogDocsChangelog

Performance History

Latest Results

Split AST to ASM compilation phase to AST -> IR -> ASM (#7713) ## Description This PR splits the `compile_ast_to_asm` compilation phase into two distinctive phases: `compile_ast_to_ir` and `compile_ir_to_asm`. This gives us additional metrics and more insight into how much time each phase is taking. It also allows us to run `forc check` up to the ASM generation phase to collect compilation errors that occur only at the IR stage, if we want to do it. Currently, some checks like, e.g., purity are done at the IR generation stage and are, e.g., not available to LSP which uses `check`. If we decide to extend the `check` phase, this will be done in a separate PR. ## Checklist - [ ] I have linked to any relevant issues. - [x] 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). - [ ] If my change requires substantial documentation changes, I have [requested support from the DevRel team](https://github.com/FuelLabs/devrel-requests/issues/new/choose) - [ ] 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. - [x] I have done my best to ensure that my PR adheres to [the Fuel Labs Code Review Standards](https://github.com/FuelLabs/rfcs/blob/master/text/code-standards/external-contributors.md). - [x] I have requested a review from the relevant team or maintainers.
master
2 hours ago
Split AST to ASM compilation phase to AST -> IR -> ASM
ironcev/split-ast-to-asm-compilation-phase
3 hours ago
remove pending println
xunilrj/inline-spill-prediction
9 hours ago
fix typo
xunilrj/inline-spill-prediction
16 hours ago
update tests
xunilrj/inline-spill-prediction
17 hours ago
Fix `copy_prop_reverse` cycle detection (#7702) ## Description This PR solves a bug when a valid `sway` code generates a cycle of `memcpys`. One simple example is the `e2e` test at `test/src/e2e_vm_tests/test_programs/should_pass/language/references/arg_ref_mut_return_by_value`. The IR generated is something like: ``` v35v1 = get_local __ptr { u64 }, s, !30 ... v76v1 = load v35v1, !33 br block0(v76v1), !33 block0(mut v71v1: { u64 }): v38v1 = get_local __ptr { u64 }, s, !41 store v71v1 to v38v1, !41 ``` We end-up copying `s` into itself. The issue that this caused was that `copy_prop_reverse` inside the `memcpyopt` was hanging forever. Now, `copy_prop_reverse` cycle detection is more robust and detect any cycle, but we just bail all the optimizations as before. To mark future improvements, I have add some optimizations I found at https://github.com/FuelLabs/sway/issues/7282#issuecomment-5196527165, and have put some TODOS around the code pointing to this issue. ## Checklist - [x] I have linked to any relevant issues. - [x] 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). - [ ] If my change requires substantial documentation changes, I have [requested support from the DevRel team](https://github.com/FuelLabs/devrel-requests/issues/new/choose) - [ ] 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. - [x] I have done my best to ensure that my PR adheres to [the Fuel Labs Code Review Standards](https://github.com/FuelLabs/rfcs/blob/master/text/code-standards/external-contributors.md). - [x] I have requested a review from the relevant team or maintainers. --------- Co-authored-by: Igor Rončević <ironcev@hotmail.com>
master
18 hours ago

Latest Branches

CodSpeed Performance Gauge
0%
Split AST to ASM compilation phase to AST -> IR -> ASM#7713
1 day ago
81bae38
ironcev/split-ast-to-asm-compilation-phase
CodSpeed Performance Gauge
0%
Improve `inline` heuristic to avoid the final inlined function to be too big#7710
9 hours ago
3fb2358
xunilrj/inline-spill-prediction
CodSpeed Performance Gauge
0%
© 2026 CodSpeed Technology
Home Terms Privacy Docs