Commit Graph
16 Commits
Author SHA1 Message Date
James RingandGitHub 70b35f9e60 Check for WASM_ENABLE_SIMDE in a couple more places (#4266)
For WAMR users who don't use cmake, it's possible that WASM_ENABLE_SIMD
is set when WASM_ENABLE_SIMDE isn't. This was causing build failures.
2025-05-14 10:58:19 +08:00
James RingandGitHub c48dd5ccd7 Don't call os_thread_get_stack_boundary unless we actually use it (#4264)
Previously, if the user sets their own stack boundary, we still compute
the thread stack boundary (which is expensive), then immediately discard
the result. This change makes the expensive call only if we need it for
sure.
2025-05-09 17:14:33 +08:00
James RingandGitHub 6424122d6b fix format specifier warning on 32bit builds (#4177) 2025-04-02 12:30:45 +08:00
James RingandGitHub c30e65ba5d include bh_platform.h (#4135)
This should guarantee that the various macros required by
wasm_proposal.c are defined even if the build system does not supply
them to the compiler command.
2025-03-17 14:22:46 +08:00
James RingandGitHub 8ac06490db Set thread information earlier in exec_env creation (#3967)
For boundary checking, WAMR calls `pthread_attr_np`, which is
unfortunately quite slow on Linux when not called on the main thread
(see https://github.com/bytecodealliance/wasm-micro-runtime/issues/3966
for discussion).

This change moves the cost of stack bounds checking earlier in the
wasm_exec_env creation process. The idea is that it's perhaps better to
pay the price when creating the execution environment rather than in the
first function call.

The original code is left in place inside
`call_wasm_with_hw_bound_check` in case the `wasm_exec_env` is created
via `wasm_runtime_spawn_exec_env`.
2024-12-24 07:25:52 +08:00
James RingandGitHub 838dd81e68 don't return an uninitialized trap if argv_to_results fails (#3935)
Currently, if argv_to_results fails (e.g. because an unsupported type is
encountered), an non-null trap with an uninitialized message is
returned.
2024-11-28 11:50:44 +08:00
James RingandGitHub e09613c722 support WASM_FUNCREF return type in argv_to_results (#3936) 2024-11-28 11:50:16 +08:00
James RingandGitHub dbdf3df60b Use plain assignment rather than bh_memcpy_s (#3924) 2024-11-24 11:32:34 +08:00
James RingandGitHub 00c2aa10a8 Drop declarative elements on module instantiation (#3922) 2024-11-24 11:30:00 +08:00
James RingandGitHub 226bf22f9e GlobalValueSet was moved to IRPartitionLayer recently, but we have a local definition anyway (#3899) 2024-11-13 15:11:33 +08:00
James RingandGitHub fdda259d36 Fix linked global initialization in multimodule (#3905)
While resolving linked globals in multi-module mode, WAMR tries to copy
the linked global's initial value into the destination global in the
current module.  However, a bug in the implementation causes the copy to
be done from the InitializerExpression struct, not from its WASMValue
field.

This did not come up in WAMR's spec test runner because those are built
with WASM_ENABLE_SPEC_TEST, which means these globals are resolved as
builtins, not linked globals, which goes through a different (presumably
not faulty) path.
2024-11-13 14:52:27 +08:00
James RingandGitHub 3ad95303d6 Fix quadratic runtime for duplicate export name detection (#3861)
Previously, the loader would check the name of a new export against all
existing exports, leading to a quadratic running time.

This change makes the loader parse the entire export section. The
exports are then sorted by name, then adjacent exports are checked for
uniqueness.
2024-10-21 11:02:30 +08:00
James RingandGitHub 6b4d8aae2a Emit load_addr and load_size if WAMR_ENABLE_COMPILER is set (#3835)
Currently, the open-source builds of wamrc set WASM_ENABLE_DUMP_CALL_STACK,
which causes these two fields to be emitted. They are required by aot_emit_exception.c.

Internally at Google, we don't enable call stack dumps, so we've been using the
attached patch to make sure the fields are emitted anyway.
2024-10-08 09:28:24 +08:00
James RingandGitHub 0c4b2da048 aot_comp_option.h: Add missing stdint.h header (#3834) 2024-10-08 06:35:46 +08:00
James RingandGitHub 5cc94e59ec Improve posix mmap retry logic (#3714)
- Only retry on EAGAIN, ENOMEM or EINTR.
- On EINTR, don't count it against the retry budget, just keep retrying.
  EINTR can happen in bursts.
- Log the errno on failure, and don't conditionalize that logging on
  BH_ENABLE_TRACE_MMAP. In other parts of the code, error logging is not
  conditional on that define, while turning on that tracing define makes
  things overly verbose.
2024-09-03 11:03:24 +08:00
James RingandGitHub b845e2ede4 Add missing headers in bh_atomic.h and aot_llvm_extra.cpp (#3715) 2024-08-16 06:56:49 +08:00