From: fennecdjay Date: Sun, 20 Jan 2019 20:22:58 +0000 (+0100) Subject: :art: Pure optimization X-Git-Tag: nightly~2762^2~6 X-Git-Url: http://10.11.0.4:5575/?a=commitdiff_plain;h=5acee7a427c481744a32bf897994466115a48918;p=gwion.git :art: Pure optimization --- diff --git a/src/emit/emit.c b/src/emit/emit.c index 67b1648b..8b59dbb1 100644 --- a/src/emit/emit.c +++ b/src/emit/emit.c @@ -715,9 +715,12 @@ static inline void stack_alloc_this(const Emitter emit) { static m_bool scoped_stmt(const Emitter emit, const Stmt stmt, const m_bool pop) { ++emit->env->scope; emit_push_scope(emit); - emit_add_instr(emit, GcIni); + const m_bool pure = SAFE_FLAG(emit->env->func, pure); + if(!pure) + emit_add_instr(emit, GcIni); CHECK_BB(emit_stmt(emit, stmt, pop)) - emit_add_instr(emit, GcEnd); + if(!pure) + emit_add_instr(emit, GcEnd); emit_pop_scope(emit); --emit->env->scope; return GW_OK;