Skip to content

Conversation

@boomanaiden154
Copy link
Contributor

llvm/llvm-project#168622 adds a new analysis for determining what libcalls are supported by a target. We need to add it to the Halide pass pipeline, otherwise all libcalls are marked unsupported. This results in some memory libcalls being lowered to loops instead, which can increase runtime. This manifested for us as timeouts for the web assembly tests due to the WABT interpreter taking significantly longer to interpret memset loops versus the libcall.

llvm/llvm-project#168622 adds a new analysis for
determining what libcalls are supported by a target. We need to add it
to the Halide pass pipeline, otherwise all libcalls are marked
unsupported. This results in some memory libcalls being lowered to loops
instead, which can increase runtime. This manifested for us as timeouts
for the web assembly tests due to the WABT interpreter taking
significantly longer to interpret memset loops versus the libcall.
@abadams
Copy link
Member

abadams commented Dec 9, 2025

The wasm failures in the other PRs are a timeout in the rfactor tests, and this PR doesn't have them, so it seems reasonable to conclude this PR is the fix for those failures. The arm-32 failure is unrelated (llvm main seems to not currently be building on that platform). I saw a webgpu failure on osx-x86-64 which may or may not have been a flake, so I'm rerunning it to see.

Copy link
Member

@abadams abadams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fix!

@abadams abadams merged commit 52ec2d3 into halide:main Dec 11, 2025
18 of 19 checks passed
@boomanaiden154 boomanaiden154 deleted the runtime-libcall-info branch December 11, 2025 22:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants