Skip to content

Commit

Permalink
aot_compile_op_call: Remove a wrong optimization (#2233)
Browse files Browse the repository at this point in the history
Unlike a tail-call, the caller of an ordinary recursive call doesn't
necessarily return immediately.
  • Loading branch information
yamt committed May 24, 2023
1 parent 7c766c2 commit 94204b9
Showing 1 changed file with 1 addition and 5 deletions.
6 changes: 1 addition & 5 deletions core/iwasm/compilation/aot_emit_function.c
Original file line number Diff line number Diff line change
Expand Up @@ -868,10 +868,6 @@ aot_compile_op_call(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
#if LLVM_VERSION_MAJOR >= 14
LLVMTypeRef llvm_func_type;
#endif
bool recursive_call =
(func_ctx == func_ctxes[func_idx - import_func_count]) ? true
: false;

if (comp_ctx->is_indirect_mode) {
LLVMTypeRef func_ptr_type;

Expand Down Expand Up @@ -971,7 +967,7 @@ aot_compile_op_call(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,

/* Check whether there was exception thrown when executing
the function */
if (!tail_call && !recursive_call && comp_ctx->enable_bound_check
if (!tail_call && comp_ctx->enable_bound_check
&& !check_exception_thrown(comp_ctx, func_ctx))
goto fail;
}
Expand Down

0 comments on commit 94204b9

Please sign in to comment.