Skip to content

Conversation

Lord-McSweeney
Copy link
Collaborator

@Lord-McSweeney Lord-McSweeney commented Jul 4, 2025

We now have an optimizer pass to remove Nops from the final bytecode, and we make use of the vector's type for vector element accesses in the type-aware optimizer when we can.

My version of box2d doesn't use Vector, so here are the stats for a SWF using the Oimo physics library:

ConstructSuper -> Pop: 32.43%

ConstructProp -> ConstructSlot: 100%

FindPropStrict -> GetScriptGlobals: 35.08%
FindPropStrict -> GetOuterScope: 2.66%
FindPropStrict -> GetScopeObject: 62.25%

FindProperty -> GetScopeObject: 99.45%
FindProperty -> GetOuterScope: 0.54%

InitProperty -> SetSlotNoCoerce: 96.83%
InitProperty -> SetSlot: 0.92%
InitProperty -> CallMethod: 1.62%

SetPropertyStatic -> SetSlotNoCoerce: 69.3% (+2.35%)
SetPropertyStatic -> SetSlot: 11.72% (-1.61%)
SetPropertyStatic -> CallMethod: 18.68% (+1.54%)

GetPropertyStatic -> GetSlot: 93.46% (+0.33%)
GetPropertyStatic -> CallNative: 0.14%
GetPropertyStatic -> CallMethod: 5.3% (+0.11%)

CallProperty -> CallMethod: 59.54% (-1.71%)
CallProperty -> CallNative: 33.04% (+1.71%)

CallPropVoid -> CallMethod: 92.93% (+1.97%)
CallPropVoid -> CallNative: 3.24%

Coerce -> Nop: 95.17% (+24.04%)

CoerceD -> Nop: 99.3% (+3.14%)

CoerceU -> Nop: 26.83%

CoerceB -> Nop: 70%

CoerceI -> Nop: 87.33% (+1%)

AsType -> Nop: 100%

ReturnValue -> ReturnValueNoCoerce: 95.05% (+2.12%)

@Lord-McSweeney Lord-McSweeney added A-avm2 Area: AVM2 (ActionScript 3) T-perf Type: Performance Improvements waiting-on-review Waiting on review from a Ruffle team member labels Jul 4, 2025
@Lord-McSweeney Lord-McSweeney removed the waiting-on-review Waiting on review from a Ruffle team member label Jul 21, 2025
@Lord-McSweeney Lord-McSweeney merged commit 4b916ca into ruffle-rs:master Jul 21, 2025
24 checks passed
Hancock33 added a commit to Hancock33/batocera.piboy that referenced this pull request Aug 3, 2025
------------------------------------------------------------------------------------------
dolphin-emu.mk 79a3af2e6e8f905de081489e5d40ef8dd4fc1db5 # Version: Commits on Jul 22, 2025
------------------------------------------------------------------------------------------
Merge pull request #13805 from SuperSamus/vulkan-present-sempahore-reuse-fix

Vulkan: Fix present semaphores reuse,

---------------------------------------------------------------
ruffle.mk nightly-2025-07-22 # Version: Commits on Jul 22, 2025
---------------------------------------------------------------
## What's Changed

* chore: Update translations by @RuffleBuild in ruffle-rs/ruffle#21056

* avm2: More optimizer improvements by @Lord-McSweeney in ruffle-rs/ruffle#20916

**Full Changelog**: ruffle-rs/ruffle@nightly-2025-07-21...nightly-2025-07-22,

--------------------------------------------------------------------------------------
shadps4.mk 1fc9eedbab9d05f8d20f2115d8fa0ff42691f57b # Version: Commits on Jul 21, 2025
--------------------------------------------------------------------------------------
Add default trophy sound (#3271)

* Add default trophy sound

* delete include to removed folder

* remove redundant conditions

* Change trophy sound - credit to Tlarok,

-----------------------------------------------------------------------------------
ymir.mk 8550551c5b9143116791d5ff1ba4bb4ce9f3500f # Version: Commits on Jul 22, 2025
-----------------------------------------------------------------------------------
feat(input): Filter monopolar and bipolar axes to prevent binding gamepad triggers to the analog steering wheel input or gamepad sticks/D-Pad to analog L/R,

-------------------------------------------------------------------------------------------
jazz2-native.mk 9863a0fd13186135ce9c0aa3e0c46280a0911340 # Version: Commits on Jul 21, 2025
-------------------------------------------------------------------------------------------
Fixed build,

----------------------------------------------------------------------------------------
openmohaa.mk c9f13f182c28dfa80d43362ddf5dd4ee8880658e # Version: Commits on Jul 21, 2025
----------------------------------------------------------------------------------------
Make r_swapInterval CVAR_LATCH

This variable is used only when initializing SDL.,

----------------------------------------------------------------------------------------
doomretro.mk f11d18cdc5597abee60ef7cfee5dbef0a6b05694 # Version: Commits on Jul 22, 2025
----------------------------------------------------------------------------------------
Show multiple `DEHACKED` lump warning before autoload info,

-----------------------------------------------------------------------------------
tr1x.mk 7444e10a7abf17c84c6ee555cbc8a183f6f65842 # Version: Commits on Jul 21, 2025
-----------------------------------------------------------------------------------
tr2/data: fix Venice window trigger

Resolves #3559.,

-----------------------------------------------------------------------------------
tr2x.mk 7444e10a7abf17c84c6ee555cbc8a183f6f65842 # Version: Commits on Jul 21, 2025
-----------------------------------------------------------------------------------
tr2/data: fix Venice window trigger

Resolves #3559.,

-----------------------------------------------------------------------------------------------
libretro-sameboy.mk eb38034b76e2e22596118fdf3c5829c5a6a56fe3 # Version: Commits on Jul 21, 2025
-----------------------------------------------------------------------------------------------
Ask for confirmation before reset,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-avm2 Area: AVM2 (ActionScript 3) T-perf Type: Performance Improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants