WebAssembly / WebAssembly/wasi-sdk

Huge code bloat with wasi-sdk-23

Open
#460 14 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
CMake
Stars
1.6k
Forks
237
Avg merge
18h 26m
Merged PRs (30d)
5

Description

Hi,

I've just updated my benchmark binaries to compile with 23, instead of 22. I'm seeing code size changes that I don't understand, maybe changes in how the libraries are built? Has anyone noticed similar changes? Below is my git pull log which caught my attention!

cheers,
Sam

 benchmarks/adobe/wasm/functionobjects.wasm         | Bin 508408 -> 646733 bytes
 benchmarks/adobe/wasm/loop_unroll.wasm             | Bin 477734 -> 631955 bytes
 benchmarks/adobe/wasm/stepanov_vector.wasm         | Bin 122282 -> 274559 bytes
 benchmarks/aha/wasm/aha.wasm                       | Bin 33029 -> 152764 bytes
 benchmarks/alac/wasm/encode.wasm                   | Bin 163918 -> 374160 bytes
 benchmarks/bullet/wasm/1000-convex.wasm            | Bin 889848 -> 1080895 bytes
 benchmarks/bullet/wasm/1000-stack.wasm             | Bin 889847 -> 1080894 bytes
 benchmarks/bullet/wasm/136-ragdolls.wasm           | Bin 889849 -> 1080896 bytes
 benchmarks/bullet/wasm/3000-fall.wasm              | Bin 889846 -> 1080893 bytes
 benchmarks/bullet/wasm/convex-trimesh.wasm         | Bin 889851 -> 1080898 bytes
 benchmarks/bullet/wasm/prim-trimesh.wasm           | Bin 889849 -> 1080896 bytes
 benchmarks/bullet/wasm/raytests.wasm               | Bin 889845 -> 1080892 bytes
 benchmarks/jetstream2/wasm/float-mm.wasm           | Bin 21266 -> 102339 bytes
 benchmarks/jetstream2/wasm/gcc-loops.wasm          | Bin 2415704 -> 2777604 bytes
 benchmarks/jetstream2/wasm/hashset.wasm            | Bin 2716050 -> 3078733 bytes
 benchmarks/jetstream2/wasm/quicksort.wasm          | Bin 20233 -> 104079 bytes
 benchmarks/jetstream2/wasm/richards.wasm           | Bin 29787 -> 150670 bytes
 benchmarks/llama2/wasm/run.wasm                    | Bin 91974 -> 364223 bytes
 benchmarks/lzma/wasm/lzma.wasm                     | Bin 79858 -> 202837 bytes  
 benchmarks/meshoptimizer/wasm/codecbench.wasm      | Bin 93145 -> 219666 bytes   
 benchmarks/minisat/wasm/minisat.wasm               | Bin 120254 -> 361591 bytes
 benchmarks/oggenc/wasm/oggenc.wasm                 | Bin 1198354 -> 1491969 bytes
 benchmarks/olden/wasm/bisort.wasm                  | Bin 30221 -> 150810 bytes
 benchmarks/olden/wasm/em3d.wasm                    | Bin 32955 -> 157059 bytes
 benchmarks/olden/wasm/health.wasm                  | Bin 31865 -> 154573 bytes
 benchmarks/olden/wasm/mst.wasm                     | Bin 31427 -> 152016 bytes   
 benchmarks/olden/wasm/perimeter.wasm               | Bin 30454 -> 148273 bytes
 benchmarks/olden/wasm/power.wasm                   | Bin 32960 -> 152747 bytes   
 benchmarks/olden/wasm/treeadd.wasm                 | Bin 29255 -> 149844 bytes  
 benchmarks/olden/wasm/tsp.wasm                     | Bin 36749 -> 162879 bytes 
 benchmarks/olden/wasm/voronoi.wasm                 | Bin 46459 -> 175376 bytes 
 benchmarks/pairlocalalign/wasm/pairlocalalign.wasm | Bin 297406 -> 579510 bytes
 benchmarks/peanut-gb/wasm/peanut-gb.wasm           | Bin 146626 -> 245030 bytes
 benchmarks/pocket-nn/wasm/pocketnn.wasm            | Bin 2435239 -> 2797863 bytes
 benchmarks/polybench/wasm/2mm.wasm                 | Bin 33802 -> 154904 bytes   
 benchmarks/polybench/wasm/3mm.wasm                 | Bin 34214 -> 155316 bytes 
 benchmarks/polybench/wasm/adi.wasm                 | Bin 33920 -> 155022 bytes 
 benchmarks/polybench/wasm/atax.wasm                | Bin 33041 -> 154143 bytes   
 benchmarks/polybench/wasm/bicg.wasm                | Bin 32687 -> 153789 bytes
 benchmarks/polybench/wasm/cholesky.wasm            | Bin 33011 -> 154113 bytes
 benchmarks/polybench/wasm/correlation.wasm         | Bin 34013 -> 155115 bytes
 benchmarks/polybench/wasm/covariance.wasm          | Bin 33598 -> 154700 bytes
 benchmarks/polybench/wasm/doitgen.wasm             | Bin 33348 -> 154450 bytes
 benchmarks/polybench/wasm/durbin.wasm              | Bin 33498 -> 154600 bytes
 benchmarks/polybench/wasm/dynprog.wasm             | Bin 33953 -> 155055 bytes
 benchmarks/polybench/wasm/fdtd-2d.wasm             | Bin 34449 -> 155551 bytes
 benchmarks/polybench/wasm/floyd-warshall.wasm      | Bin 32575 -> 153677 bytes
 benchmarks/polybench/wasm/gemm.wasm                | Bin 33111 -> 154213 bytes
 benchmarks/polybench/wasm/gemver.wasm              | Bin 34009 -> 155111 bytes
 benchmarks/polybench/wasm/gesummv.wasm             | Bin 32724 -> 153826 bytes
 benchmarks/polybench/wasm/gramschmidt.wasm         | Bin 33973 -> 155075 bytes
 benchmarks/polybench/wasm/jacobi-1d-imper.wasm     | Bin 32894 -> 153996 bytes
 benchmarks/polybench/wasm/jacobi-2d-imper.wasm     | Bin 33088 -> 154190 bytes
 benchmarks/polybench/wasm/lu.wasm                  | Bin 32943 -> 154045 bytes
 benchmarks/polybench/wasm/ludcmp.wasm              | Bin 33955 -> 155057 bytes
 benchmarks/polybench/wasm/mvt.wasm                 | Bin 33158 -> 154260 bytes
 benchmarks/polybench/wasm/reg_detect.wasm          | Bin 37088 -> 158190 bytes
 benchmarks/polybench/wasm/seidel-2d.wasm           | Bin 32531 -> 153633 bytes
 benchmarks/polybench/wasm/symm.wasm                | Bin 33087 -> 154189 bytes
 benchmarks/polybench/wasm/syr2k.wasm               | Bin 33416 -> 154518 bytes
 benchmarks/polybench/wasm/syrk.wasm                | Bin 33047 -> 154149 bytes
 benchmarks/polybench/wasm/trisolv.wasm             | Bin 32509 -> 153611 bytes
 benchmarks/polybench/wasm/trmm.wasm                | Bin 32845 -> 153947 bytes
 benchmarks/quickjs/wasm/quickjs.wasm               | Bin 928646 -> 1272433 bytes
 benchmarks/raytracing/wasm/ray.wasm                | Bin 2399738 -> 2762424 bytes
 benchmarks/raytracing/wasm/smallpt.wasm            | Bin 96937 -> 317912 bytes
 benchmarks/raytracing/wasm/sphereflake.wasm        | Bin 2399958 -> 2762644 bytes
 benchmarks/shootout/wasm/binarytrees.wasm          | Bin 32025 -> 154471 bytes
 benchmarks/shootout/wasm/fannkuchredux.wasm        | Bin 30707 -> 150624 bytes
 benchmarks/shootout/wasm/fasta.wasm                | Bin 49609 -> 203531 bytes
 benchmarks/shootout/wasm/meteor.wasm               | Bin 2403848 -> 2766607 bytes
 benchmarks/shootout/wasm/nbody.wasm                | Bin 32955 -> 150771 bytes
 benchmarks/shootout/wasm/spectralnorm.wasm         | Bin 2396611 -> 2760153 bytes
 benchmarks/spec2017/wasm/508.namd_r.wasm           | Bin 926211 -> 1207218 bytes
 benchmarks/spec2017/wasm/525.x264_r.wasm           | Bin 668771 -> 984164 bytes
 benchmarks/spec2017/wasm/531.deepsjeng_r.wasm      | Bin 141565 -> 392130 bytes
 benchmarks/spec2017/wasm/544.nab_r.wasm            | Bin 188731 -> 490742 bytes
 benchmarks/spiff/wasm/spiff.wasm                   | Bin 69690 -> 287388 bytes
 benchmarks/sqlite3/wasm/sqlite3.wasm               | Bin 1395264 -> 1704213 bytes
 benchmarks/tramp3d-v4/wasm/tramp3d-v4.wasm         | Bin 4768150 -> 5157573 bytes
 benchmarks/tsvc/wasm/tsvc.wasm                     | Bin 231640 -> 364655 bytes
 benchmarks/wasm3/wasm/wasm3.wasm                   | Bin 179305 -> 434474 bytes
 benchmarks/zlib-bench/wasm/zlib-bench.wasm         | Bin 2856892 -> 3218373 bytes

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the listed benchmarks//wasm/.wasm outputs built with wasi-sdk-22 and wasi-sdk-23, then inspect the SDK or library build changes that could explain the size increases. Done means identifying the cause of the regression and documenting or validating a fix against representative benchmark binaries.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, wasm
Domain
build-system, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.