Skip to content

gpio-thin regressed +9% code size under synth 0.49 (all other gust drivers shrank; effects unchanged) #846

Description

@avrabe

Summary

Re-dissolving the gust thin drivers with synth 0.49.0 (from 0.11.50) is
net-positive on code size — but gpio-thin regressed +9% while every other
driver shrank or held. Register effects are unchanged (verified: the driver's
Renode content-gate passes with the new object), so this is a pure codegen size
regression
, not a correctness issue.

Measured (text bytes, --target cortex-m3 --all-exports --relocatable)

driver 0.11.50 0.49.0 Δ
spi 494 454 −8%
wdg 660 648 −2%
i2c 992 974 −2%
pwm 728 706 −3%
adc 754 740 −2%
can 804 796 −1%
dac 686 678 −1%
timer 212 212 0
uart 254 254 0
gpio 490 534 +9%

Pipeline: loom optimize <wasm> --passes inline --attestation false | synth compile --target cortex-m3 --all-exports --relocatable (loom 1.1.14→1.2.0 alongside).

Ask

gpio-thin is the outlier. A synth disasm diff of the 0.11 vs 0.49 gpio object
should show which pass added the bytes — likely a case where a 0.49 codegen change
(some other opt) outweighs the #686 shift-mask-elision win for this particular pin
bit-arithmetic shape. Not blocking adoption (still 0-SRAM, effects identical), but
worth understanding since gpio is the smallest/simplest driver and regressed most.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions