Lines Matching refs:ctx

44 void zend_optimizer_collect_constant(zend_optimizer_ctx *ctx, zval *name, zval* value)  in zend_optimizer_collect_constant()  argument
46 if (!ctx->constants) { in zend_optimizer_collect_constant()
47 ctx->constants = zend_arena_alloc(&ctx->arena, sizeof(HashTable)); in zend_optimizer_collect_constant()
48 zend_hash_init(ctx->constants, 16, NULL, zval_ptr_dtor_nogc, 0); in zend_optimizer_collect_constant()
51 if (zend_hash_add(ctx->constants, Z_STR_P(name), value)) { in zend_optimizer_collect_constant()
960 zend_optimizer_ctx *ctx) in zend_optimize() argument
966 if (ctx->debug_level & ZEND_DUMP_BEFORE_OPTIMIZER) { in zend_optimize()
978 if (ZEND_OPTIMIZER_PASS_1 & ctx->optimization_level) { in zend_optimize()
979 zend_optimizer_pass1(op_array, ctx); in zend_optimize()
980 if (ctx->debug_level & ZEND_DUMP_AFTER_PASS_1) { in zend_optimize()
988 if (ZEND_OPTIMIZER_PASS_3 & ctx->optimization_level) { in zend_optimize()
989 zend_optimizer_pass3(op_array, ctx); in zend_optimize()
990 if (ctx->debug_level & ZEND_DUMP_AFTER_PASS_3) { in zend_optimize()
998 if (ZEND_OPTIMIZER_PASS_4 & ctx->optimization_level) { in zend_optimize()
999 zend_optimize_func_calls(op_array, ctx); in zend_optimize()
1000 if (ctx->debug_level & ZEND_DUMP_AFTER_PASS_4) { in zend_optimize()
1008 if (ZEND_OPTIMIZER_PASS_5 & ctx->optimization_level) { in zend_optimize()
1009 zend_optimize_cfg(op_array, ctx); in zend_optimize()
1010 if (ctx->debug_level & ZEND_DUMP_AFTER_PASS_5) { in zend_optimize()
1018 if ((ZEND_OPTIMIZER_PASS_6 & ctx->optimization_level) && in zend_optimize()
1019 !(ZEND_OPTIMIZER_PASS_7 & ctx->optimization_level)) { in zend_optimize()
1020 zend_optimize_dfa(op_array, ctx); in zend_optimize()
1021 if (ctx->debug_level & ZEND_DUMP_AFTER_PASS_6) { in zend_optimize()
1029 if ((ZEND_OPTIMIZER_PASS_9 & ctx->optimization_level) && in zend_optimize()
1030 !(ZEND_OPTIMIZER_PASS_7 & ctx->optimization_level)) { in zend_optimize()
1031 zend_optimize_temporary_variables(op_array, ctx); in zend_optimize()
1032 if (ctx->debug_level & ZEND_DUMP_AFTER_PASS_9) { in zend_optimize()
1040 …if (((ZEND_OPTIMIZER_PASS_10|ZEND_OPTIMIZER_PASS_5) & ctx->optimization_level) == ZEND_OPTIMIZER_P… in zend_optimize()
1041 zend_optimizer_nop_removal(op_array, ctx); in zend_optimize()
1042 if (ctx->debug_level & ZEND_DUMP_AFTER_PASS_10) { in zend_optimize()
1050 if ((ZEND_OPTIMIZER_PASS_11 & ctx->optimization_level) && in zend_optimize()
1051 (!(ZEND_OPTIMIZER_PASS_6 & ctx->optimization_level) || in zend_optimize()
1052 !(ZEND_OPTIMIZER_PASS_7 & ctx->optimization_level))) { in zend_optimize()
1053 zend_optimizer_compact_literals(op_array, ctx); in zend_optimize()
1054 if (ctx->debug_level & ZEND_DUMP_AFTER_PASS_11) { in zend_optimize()
1059 if ((ZEND_OPTIMIZER_PASS_13 & ctx->optimization_level) && in zend_optimize()
1060 (!(ZEND_OPTIMIZER_PASS_6 & ctx->optimization_level) || in zend_optimize()
1061 !(ZEND_OPTIMIZER_PASS_7 & ctx->optimization_level))) { in zend_optimize()
1063 if (ctx->debug_level & ZEND_DUMP_AFTER_PASS_13) { in zend_optimize()
1068 if (ZEND_OPTIMIZER_PASS_7 & ctx->optimization_level) { in zend_optimize()
1072 if (ctx->debug_level & ZEND_DUMP_AFTER_OPTIMIZER) { in zend_optimize()
1338 zend_optimizer_ctx *ctx) in zend_optimize_op_array() argument
1344 zend_optimize(op_array, ctx); in zend_optimize_op_array()
1354 static void zend_adjust_fcall_stack_size(zend_op_array *op_array, zend_optimizer_ctx *ctx) in zend_adjust_fcall_stack_size() argument
1364 &ctx->script->function_table, in zend_adjust_fcall_stack_size()
1460 static void zend_optimizer_call_registered_passes(zend_script *script, void *ctx) { in zend_optimizer_call_registered_passes() argument
1466 zend_optimizer_registered_passes.pass[i](script, ctx); in zend_optimizer_call_registered_passes()
1474 zend_optimizer_ctx ctx; in zend_optimize_script() local
1477 ctx.arena = zend_arena_create(64 * 1024); in zend_optimize_script()
1478 ctx.script = script; in zend_optimize_script()
1479 ctx.constants = NULL; in zend_optimize_script()
1480 ctx.optimization_level = optimization_level; in zend_optimize_script()
1481 ctx.debug_level = debug_level; in zend_optimize_script()
1487 zend_build_call_graph(&ctx.arena, script, &call_graph); in zend_optimize_script()
1494 zend_optimize(call_graph.op_arrays[i], &ctx); in zend_optimize_script()
1497 zend_analyze_call_graph(&ctx.arena, script, &call_graph); in zend_optimize_script()
1502 func_info->call_map = zend_build_call_map(&ctx.arena, func_info, call_graph.op_arrays[i]); in zend_optimize_script()
1512 if (zend_dfa_analyze_op_array(call_graph.op_arrays[i], &ctx, &func_info->ssa) == SUCCESS) { in zend_optimize_script()
1524 zend_dfa_optimize_op_array(call_graph.op_arrays[i], &ctx, &func_info->ssa, func_info->call_map); in zend_optimize_script()
1536 zend_optimize_temporary_variables(call_graph.op_arrays[i], &ctx); in zend_optimize_script()
1545 zend_optimizer_compact_literals(call_graph.op_arrays[i], &ctx); in zend_optimize_script()
1587 zend_foreach_op_array(script, step_optimize_op_array, &ctx); in zend_optimize_script()
1590 zend_foreach_op_array(script, step_adjust_fcall_stack_size, &ctx); in zend_optimize_script()
1619 zend_optimizer_call_registered_passes(script, &ctx); in zend_optimize_script()
1626 if (ctx.constants) { in zend_optimize_script()
1627 zend_hash_destroy(ctx.constants); in zend_optimize_script()
1629 zend_arena_destroy(ctx.arena); in zend_optimize_script()