From ea33189d220c7fc0884848571635abe3cddd2f4d Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sun, 5 Jul 2015 20:58:38 +0800 Subject: [PATCH] Removed useless TsTop --- Zend/zend_compile.c | 1 - Zend/zend_opcode.c | 24 ++++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 44a4c77ceb8..1761f9e61ab 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -6276,7 +6276,6 @@ void zend_compile_silence(znode *result, zend_ast *ast) /* {{{ */ { zend_ast *expr_ast = ast->child[0]; znode silence_node; - zend_brk_cont_element *brk_cont_element; zend_emit_op_tmp(&silence_node, ZEND_BEGIN_SILENCE, NULL, NULL); diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index 3b2b4b7a0f4..6f69fddefd0 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -860,16 +860,15 @@ typedef struct _op_var_info { ZEND_API uint32_t *generate_var_liveliness_info(zend_op_array *op_array) { + uint32_t i, op_live_total = 0; void *checkpoint = zend_arena_checkpoint(CG(arena)); - var_live_info **TsTop = zend_arena_alloc(&CG(arena), sizeof(var_live_info *) * op_array->T); - var_live_info **Ts = zend_arena_alloc(&CG(arena), sizeof(var_live_info *) * op_array->T); - int i, op_live_total = 0; uint32_t *info, info_off = op_array->last + 1; + var_live_info **Ts = zend_arena_alloc(&CG(arena), sizeof(var_live_info *) * op_array->T); op_var_info *opTsTop = zend_arena_alloc(&CG(arena), sizeof(op_var_info) * (op_array->last + 1)); op_var_info **opTs = zend_arena_alloc(&CG(arena), sizeof(op_var_info *) * (op_array->last + 1)); for (i = 0; i < op_array->T; i++) { - TsTop[i] = Ts[i] = zend_arena_alloc(&CG(arena), sizeof(var_live_info)); + Ts[i] = zend_arena_alloc(&CG(arena), sizeof(var_live_info)); Ts[i]->next = NULL; Ts[i]->start = Ts[i]->end = -1; } @@ -903,12 +902,13 @@ ZEND_API uint32_t *generate_var_liveliness_info(zend_op_array *op_array) && cur_op->opcode != ZEND_DECLARE_ANON_CLASS && cur_op->opcode != ZEND_DECLARE_ANON_INHERITED_CLASS) { var_live_info *T = Ts[cur_op->result.var]; - if (~T->end) { - T = Ts[cur_op->result.var] = T->next = zend_arena_alloc(&CG(arena), sizeof(var_live_info)); - T->next = NULL; + if (T->end != -1) { + Ts[cur_op->result.var] = zend_arena_alloc(&CG(arena), sizeof(var_live_info)); + Ts[cur_op->result.var]->next = T; + T = Ts[cur_op->result.var]; T->start = T->end = -1; } - if (!~T->start) { + if (T->start == -1) { /* Objects created via ZEND_NEW are only fully initialized after the DO_FCALL (constructor call) */ if (cur_op->opcode == ZEND_NEW) { T->start = cur_op->op2.opline_num - 1; @@ -933,7 +933,7 @@ ZEND_API uint32_t *generate_var_liveliness_info(zend_op_array *op_array) && cur_op->opcode != ZEND_BIND_TRAITS && cur_op->opcode != ZEND_VERIFY_ABSTRACT_CLASS) { var_live_info *T = Ts[cur_op->op1.var]; - if (~T->start) { + if (T->start != -1) { T->end = cur_op - op_array->opcodes; if (cur_op->opcode == ZEND_OP_DATA) { T->end--; @@ -951,7 +951,7 @@ ZEND_API uint32_t *generate_var_liveliness_info(zend_op_array *op_array) && cur_op->opcode != ZEND_ISSET_ISEMPTY_VAR && cur_op->opcode != ZEND_INSTANCEOF) { var_live_info *T = Ts[cur_op->op2.var]; - if (~T->start) { + if (T->start != -1) { T->end = cur_op - op_array->opcodes; if (cur_op->opcode == ZEND_OP_DATA) { T->end--; @@ -962,7 +962,7 @@ ZEND_API uint32_t *generate_var_liveliness_info(zend_op_array *op_array) for (i = 0; i < op_array->T; i++) { int j; - var_live_info *T = TsTop[i]; + var_live_info *T = Ts[i]; do { if (!~T->start) { @@ -974,7 +974,7 @@ ZEND_API uint32_t *generate_var_liveliness_info(zend_op_array *op_array) for (j = T->start + 1; j < T->end; j++) { if (op_array->opcodes[j].opcode != ZEND_THROW) { op_var_info *opT = opTs[j]; - if (~opT->var) { + if (opT->var != -1) { opT = opTs[j] = opT->next = zend_arena_alloc(&CG(arena), sizeof(op_var_info)); opT->next = NULL; }