#include "zend_inference.h"
#include "zend_dump.h"
-#ifndef HAVE_DFA_PASS
-# define HAVE_DFA_PASS 1
-#endif
-
static void zend_optimizer_zval_dtor_wrapper(zval *zvalue)
{
zval_ptr_dtor_nogc(zvalue);
}
}
-#if HAVE_DFA_PASS
/* pass 6:
* - DFA optimization
*/
zend_dump_op_array(op_array, 0, "after pass 6", NULL);
}
}
-#endif
/* pass 9:
* - Optimize temp variables usage
}
}
-#if HAVE_DFA_PASS
static void zend_redo_pass_two_ex(zend_op_array *op_array, zend_ssa *ssa)
{
zend_op *opline, *end;
opline++;
}
}
-#endif
static void zend_optimize_op_array(zend_op_array *op_array,
zend_optimizer_ctx *ctx)
zend_redo_pass_two(op_array);
if (op_array->live_range) {
-#if HAVE_DFA_PASS
if ((ZEND_OPTIMIZER_PASS_6 & ctx->optimization_level) &&
(ZEND_OPTIMIZER_PASS_7 & ctx->optimization_level)) {
return;
}
-#endif
zend_recalc_live_ranges(op_array, NULL);
}
}
}
}
-#if HAVE_DFA_PASS
static void zend_adjust_fcall_stack_size_graph(zend_op_array *op_array)
{
zend_func_info *func_info = ZEND_FUNC_INFO(op_array);
}
return 1;
}
-#endif
int zend_optimize_script(zend_script *script, zend_long optimization_level, zend_long debug_level)
{
zend_op_array *op_array;
zend_string *name;
zend_optimizer_ctx ctx;
-#if HAVE_DFA_PASS
zend_call_graph call_graph;
-#endif
ctx.arena = zend_arena_create(64 * 1024);
ctx.script = script;
} ZEND_HASH_FOREACH_END();
} ZEND_HASH_FOREACH_END();
-#if HAVE_DFA_PASS
if ((ZEND_OPTIMIZER_PASS_6 & optimization_level) &&
(ZEND_OPTIMIZER_PASS_7 & optimization_level) &&
zend_build_call_graph(&ctx.arena, script, ZEND_RT_CONSTANTS, &call_graph) == SUCCESS) {
}
zend_arena_release(&ctx.arena, checkpoint);
- } else
-#endif
-
- if (ZEND_OPTIMIZER_PASS_12 & optimization_level) {
+ } else if (ZEND_OPTIMIZER_PASS_12 & optimization_level) {
zend_adjust_fcall_stack_size(&script->main_op_array, &ctx);
ZEND_HASH_FOREACH_PTR(&script->function_table, op_array) {