Skip to content

Excessive compile time compiling huge element segment #14260

Description

@alexcrichton

Compiling this module in Wasmtime: foo.wasm.txt (it's not actually txt) currently takes ~1s:

$ time wasmtime compile foo.wasm
wasmtime compile foo.wasm  0.99s user 0.24s system 99% cpu 1.235 total

The reason for this is that the module has a massive element segment full of null function expressions. This is effectively unrolled into a giant CLIF function that then takes quite awhile to compile.

Note though that optimizations actually improve the compile time of this function:

$ time wasmtime compile foo.wasm -O opt-level=0
wasmtime compile foo.wasm -O opt-level=0  1.29s user 0.27s system 99% cpu 1.566 total

I'm not sure how best to handle this, but it's timing out our fuzzers currently. I figured I'd file this so we can at least track it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    fuzz-bugBugs found by a fuzzer

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions