-
Notifications
You must be signed in to change notification settings - Fork 749
Interp/Fast-JIT optimization #1378
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
lum1n0us
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A little confused.
Use pointer comparison instead of struct memory comparison. When using call_indirect, type comparison is required. I optimized the speed of type comparison, and changed type structure memory comparison to pointer comparison.
core/iwasm/interpreter/wasm_loader.c
Outdated
| return node->str; | ||
| } | ||
|
|
||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should also apply same changes to wasm_mini_loader.c, which can be compiled with 'cmake -DWAMR_BUILD_MINI_LOADER=1`.
whitch stores the number of type references
xujuntwt95329
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
in wasm_interp_fast.c and wasm_interp_classic.c
when "globals" initialization fails, the memory allocated is not released, resulting in memory leakage
Normalize wasm types, for the two wasm types, if their parameter types and result types are the same, we only save one copy, so as to reduce the footprint and simplify the type comparison in opcode CALL_INDIRECT. And fix issue in interpreter globals_instantiate, and remove used codes.
Normalize wasm types, for the two wasm types, if their parameter types and result types are the same, we only save one copy, so as to reduce the footprint and simplify the type comparison in opcode CALL_INDIRECT. And fix issue in interpreter globals_instantiate, and remove used codes.
refine wasm_type_equal for call_indirect for intel internal #402
To Wenyong for code review, there is a bug in code and it cannot pass the case of spec (call_indirect.wast) while using these parameters:
Build iwasm with compile flags with-DWAMR_BUILD_TARGET=X86_64-DWAMR_BUILD_INTERP=0-DWAMR_BUILD_FAST_INTERP=0-DWAMR_BUILD_JIT=1-DWAMR_BUILD_AOT=1-DWAMR_BUILD_SPEC_TEST=1-DWAMR_BUILD_BULK_MEMORY=1-DWAMR_BUILD_MULTI_MODULE=0-DWAMR_BUILD_REF_TYPES=1-DWAMR_BUILD_SIMD=0 for spec testNamespace(aot_flag=False, cases=[], clean_up_flag=True, gc_flag=False, multi_module_flag=False, multi_thread_flag=False, parl_flag=False, sgx_flag=False, simd_flag=False, target='X86_64', verbose_flag=True, xip_flag=False)`