Look into optimizing EVM and Cross-VM Bridge. This issue can be used to track some ideas for potential optimizations and progress.
So far, I looked into reducing conversion overhead and will look into other areas for potential optimizations.
Reduce Conversion Overhead
We can reduce conversion overhead between EVM functions and internal EVM functions.
I listed potential optimizations on Slack about reducing conversion overhead between EVM functions and EVM internal functions.
See "Quick Hits" (below) and for other optimizations (low-hanging fruit and self-explanatory).
Quick Hits
These quick-hits are less complex optimizations that I referred to as "low-hanging fruit" and didn't list individually on Friday morning (Feb 6, 2026).
Additional quick-hits I found after Feb 6, 2026 are marked with 🆕.
Other Optimizations
Other optimizations for us to look into:
Non-Optimization Work
The Cadence team needs to update or add new metering kinds as needed.
I think @janezpodhostnik will need to assign weights to newly added metering kinds.
Caveats
Some optimizations will involve native Go code. As @janezpodhostnik noted in Feb 9 Execution Meeting, if an optimization uses native Go code, we need to recalibrate for fees to reflect the improved efficiency.
Schedule
On February 20, 2026, I was asked to pause this work to help with a more time-sensitive project due at the end of February 2026.
Look into optimizing EVM and Cross-VM Bridge. This issue can be used to track some ideas for potential optimizations and progress.
So far, I looked into reducing conversion overhead and will look into other areas for potential optimizations.
Reduce Conversion Overhead
We can reduce conversion overhead between EVM functions and internal EVM functions.
I listed potential optimizations on Slack about reducing conversion overhead between EVM functions and EVM internal functions.
Optimize internal function calls that receive EVMAddress as Cadence
ArrayValueby using a different data type. AnArrayValuewith 20 elements requires 20 individual conversions.[Flow EVM] Optimize by creating wrapper functions to reduce conversion overhead #8405
EVM.encodeABIWithSignatureandCadenceOwnedAccount.call.@m-Peter Modify contracts to use the optimized functions introduced by [Flow EVM] Optimize by creating wrapper functions to reduce conversion overhead #8405.
Optimize copying of Cadence ArrayValue representing a Go byte slice under the hood. There are other internal EVM functions that create an ArrayValue from a Go byte slice or copy an ArrayValue representing a Go byte slice. We can optimize these types of operations in Atree and Cadence.
See "Quick Hits" (below) and for other optimizations (low-hanging fruit and self-explanatory).
Quick Hits
These quick-hits are less complex optimizations that I referred to as "low-hanging fruit" and didn't list individually on Friday morning (Feb 6, 2026).
Additional quick-hits I found after Feb 6, 2026 are marked with 🆕.
Other Optimizations
Other optimizations for us to look into:
Non-Optimization Work
The Cadence team needs to update or add new metering kinds as needed.
I think @janezpodhostnik will need to assign weights to newly added metering kinds.
Caveats
Some optimizations will involve native Go code. As @janezpodhostnik noted in Feb 9 Execution Meeting, if an optimization uses native Go code, we need to recalibrate for fees to reflect the improved efficiency.
Schedule
On February 20, 2026, I was asked to pause this work to help with a more time-sensitive project due at the end of February 2026.