aboutsummaryrefslogtreecommitdiff
path: root/src/stage1/ir_print.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-06-27 19:05:51 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-06-27 19:11:55 -0700
commita71d00a4d504edfdb09cd169d29ca1bbc0b909c4 (patch)
tree1b4f5a419ee46ccc26d605f00109f026d9a40c26 /src/stage1/ir_print.cpp
parent0b8bd9b2b4f609fb4ae7d31da7e7a0fd4f5ad987 (diff)
downloadzig-a71d00a4d504edfdb09cd169d29ca1bbc0b909c4.tar.gz
zig-a71d00a4d504edfdb09cd169d29ca1bbc0b909c4.zip
std.crypto.25519.field: avoid excessive inlining
This valid zig code produces reasonable LLVM IR, however, on the wasm32-wasi target, when using the wasmtime runtime, the number of locals of the `isSquare` function exceeds 50000, causing wasmtime to refuse to execute the binary. The `inline` keyword in Zig is intended to be used only where it is semantically necessary; not as an optimization hint. Otherwise, this may produce unwanted binary bloat for the -OReleaseSmall use case. In the future, it is possible that we may end up with both `inline` keyword, which operates as it does in status quo, and additionally `callconv(.inline_hint)` which has no semantic impact, but may be observed by optimization passes. In this commit, I also cleaned up `isSquare` by eliminating an unnecessary mutable variable, replacing it with several local constants. Closes #11947.
Diffstat (limited to 'src/stage1/ir_print.cpp')
0 files changed, 0 insertions, 0 deletions