summaryrefslogtreecommitdiff
path: root/ext/opcache/Optimizer/zend_dump.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2020-03-25 12:42:04 +0300
committerDmitry Stogov <dmitry@zend.com>2020-03-25 14:26:42 +0300
commit0684b9fcdcad4f0f02d40d763f5fa7751eb561bb (patch)
tree3b148bee35e3ad8b616af1369bcf048012cb90d1 /ext/opcache/Optimizer/zend_dump.c
parenta524785d5d26be1608404e439652ba11839755eb (diff)
downloadphp-git-0684b9fcdcad4f0f02d40d763f5fa7751eb561bb.tar.gz
Always print numeric opline numbers
Diffstat (limited to 'ext/opcache/Optimizer/zend_dump.c')
-rw-r--r--ext/opcache/Optimizer/zend_dump.c123
1 files changed, 26 insertions, 97 deletions
diff --git a/ext/opcache/Optimizer/zend_dump.c b/ext/opcache/Optimizer/zend_dump.c
index e14ea642b5..e06128457a 100644
--- a/ext/opcache/Optimizer/zend_dump.c
+++ b/ext/opcache/Optimizer/zend_dump.c
@@ -605,10 +605,8 @@ void zend_dump_op(const zend_op_array *op_array, const zend_basic_block *b, cons
if (ZEND_VM_OP_JMP_ADDR == (op1_flags & ZEND_VM_OP_MASK)) {
if (b) {
fprintf(stderr, " BB%d", b->successors[n++]);
- } else if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " %04u", (uint32_t)(OP_JMP_ADDR(opline, opline->op1) - op_array->opcodes));
} else {
- fprintf(stderr, " L%u", (uint32_t)(OP_JMP_ADDR(opline, opline->op1) - op_array->opcodes));
+ fprintf(stderr, " %04u", (uint32_t)(OP_JMP_ADDR(opline, opline->op1) - op_array->opcodes));
}
} else {
zend_dump_unused_op(opline, opline->op1, op1_flags);
@@ -630,10 +628,8 @@ void zend_dump_op(const zend_op_array *op_array, const zend_basic_block *b, cons
}
if (b) {
fprintf(stderr, " BB%d,", b->successors[n++]);
- } else if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " %04u,", (uint32_t)ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, Z_LVAL_P(zv)));
} else {
- fprintf(stderr, " L%u,", (uint32_t)ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, Z_LVAL_P(zv)));
+ fprintf(stderr, " %04u,", (uint32_t)ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, Z_LVAL_P(zv)));
}
} ZEND_HASH_FOREACH_END();
fprintf(stderr, " default:");
@@ -667,10 +663,8 @@ void zend_dump_op(const zend_op_array *op_array, const zend_basic_block *b, cons
if (opline->opcode != ZEND_CATCH || !(opline->extended_value & ZEND_LAST_CATCH)) {
if (b) {
fprintf(stderr, " BB%d", b->successors[n++]);
- } else if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " %04u", (uint32_t)(OP_JMP_ADDR(opline, opline->op2) - op_array->opcodes));
} else {
- fprintf(stderr, " L%u", (uint32_t)(OP_JMP_ADDR(opline, opline->op2) - op_array->opcodes));
+ fprintf(stderr, " %04u", (uint32_t)(OP_JMP_ADDR(opline, opline->op2) - op_array->opcodes));
}
}
} else {
@@ -681,10 +675,8 @@ void zend_dump_op(const zend_op_array *op_array, const zend_basic_block *b, cons
if (ZEND_VM_EXT_JMP_ADDR == (flags & ZEND_VM_EXT_MASK)) {
if (b) {
fprintf(stderr, " BB%d", b->successors[n++]);
- } else if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " %04u", (uint32_t)ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value));
} else {
- fprintf(stderr, " L%u", (uint32_t)ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value));
+ fprintf(stderr, " %04u", (uint32_t)ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value));
}
}
if (opline->result_type == IS_CONST) {
@@ -724,15 +716,8 @@ static void zend_dump_op_line(const zend_op_array *op_array, const zend_basic_bl
const zend_ssa *ssa = NULL;
zend_ssa_op *ssa_op = NULL;
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- len = fprintf(stderr, "%04u", (uint32_t)(opline - op_array->opcodes));
- fprintf(stderr, "%*c", 5-len, ' ');
- } else if (!b) {
- len = fprintf(stderr, "L%u (%u):", (uint32_t)(opline - op_array->opcodes), opline->lineno);
- fprintf(stderr, "%*c", 12-len, ' ');
- } else {
- fprintf(stderr, "%*c", 12-len, ' ');
- }
+ len = fprintf(stderr, "%04u", (uint32_t)(opline - op_array->opcodes));
+ fprintf(stderr, "%*c", 5-len, ' ');
if (dump_flags & ZEND_DUMP_SSA) {
ssa = (const zend_ssa*)data;
@@ -749,10 +734,7 @@ static void zend_dump_block_info(const zend_cfg *cfg, int n, uint32_t dump_flags
{
zend_basic_block *b = cfg->blocks + n;
- fprintf(stderr, "BB%d:", n);
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, "\n ;");
- }
+ fprintf(stderr, "BB%d:\n ;", n);
if (b->flags & ZEND_BB_START) {
fprintf(stderr, " start");
}
@@ -806,10 +788,7 @@ static void zend_dump_block_info(const zend_cfg *cfg, int n, uint32_t dump_flags
int *p = cfg->predecessors + b->predecessor_offset;
int *end = p + b->predecessors_count;
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " ");
- }
- fprintf(stderr, " ; from=(BB%d", *p);
+ fprintf(stderr, " ; from=(BB%d", *p);
for (p++; p < end; p++) {
fprintf(stderr, ", BB%d", *p);
}
@@ -818,10 +797,7 @@ static void zend_dump_block_info(const zend_cfg *cfg, int n, uint32_t dump_flags
if (b->successors_count > 0) {
int s;
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " ");
- }
- fprintf(stderr, " ; to=(BB%d", b->successors[0]);
+ fprintf(stderr, " ; to=(BB%d", b->successors[0]);
for (s = 1; s < b->successors_count; s++) {
fprintf(stderr, ", BB%d", b->successors[s]);
}
@@ -829,29 +805,17 @@ static void zend_dump_block_info(const zend_cfg *cfg, int n, uint32_t dump_flags
}
if (b->idom >= 0) {
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " ");
- }
- fprintf(stderr, " ; idom=BB%d\n", b->idom);
+ fprintf(stderr, " ; idom=BB%d\n", b->idom);
}
if (b->level >= 0) {
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " ");
- }
- fprintf(stderr, " ; level=%d\n", b->level);
+ fprintf(stderr, " ; level=%d\n", b->level);
}
if (b->loop_header >= 0) {
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " ");
- }
- fprintf(stderr, " ; loop_header=%d\n", b->loop_header);
+ fprintf(stderr, " ; loop_header=%d\n", b->loop_header);
}
if (b->children >= 0) {
int j = b->children;
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " ");
- }
- fprintf(stderr, " ; children=(BB%d", j);
+ fprintf(stderr, " ; children=(BB%d", j);
j = cfg->blocks[j].next_child;
while (j >= 0) {
fprintf(stderr, ", BB%d", j);
@@ -870,11 +834,7 @@ static void zend_dump_block_header(const zend_cfg *cfg, const zend_op_array *op_
do {
int j;
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " ");
- } else {
- fprintf(stderr, " ");
- }
+ fprintf(stderr, " ");
zend_dump_ssa_var(op_array, ssa, p->ssa_var, 0, p->var, dump_flags);
if (p->pi < 0) {
fprintf(stderr, " = Phi(");
@@ -945,11 +905,7 @@ void zend_dump_op_array(const zend_op_array *op_array, uint32_t dump_flags, cons
fprintf(stderr, "\n");
zend_dump_op_array_name(op_array);
- fprintf(stderr, ":");
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, "\n ");
- }
- fprintf(stderr, " ; (lines=%d, args=%d",
+ fprintf(stderr, ":\n ; (lines=%d, args=%d",
op_array->last,
op_array->num_args);
if (func_info && func_info->num_args >= 0) {
@@ -1008,24 +964,15 @@ void zend_dump_op_array(const zend_op_array *op_array, uint32_t dump_flags, cons
}
fprintf(stderr, ")\n");
if (msg) {
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " ");
- }
- fprintf(stderr, " ; (%s)\n", msg);
- }
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " ");
+ fprintf(stderr, " ; (%s)\n", msg);
}
- fprintf(stderr, " ; %s:%u-%u\n", op_array->filename->val, op_array->line_start, op_array->line_end);
+ fprintf(stderr, " ; %s:%u-%u\n", op_array->filename->val, op_array->line_start, op_array->line_end);
if (func_info && func_info->num_args > 0) {
uint32_t j;
for (j = 0; j < MIN(op_array->num_args, func_info->num_args ); j++) {
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " ");
- }
- fprintf(stderr, " ; arg %d ", j);
+ fprintf(stderr, " ; arg %d ", j);
zend_dump_type_info(func_info->arg_info[j].info.type, func_info->arg_info[j].info.ce, func_info->arg_info[j].info.is_instanceof, dump_flags);
zend_dump_range(&func_info->arg_info[j].info.range);
fprintf(stderr, "\n");
@@ -1033,10 +980,7 @@ void zend_dump_op_array(const zend_op_array *op_array, uint32_t dump_flags, cons
}
if (func_info) {
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " ");
- }
- fprintf(stderr, " ; return ");
+ fprintf(stderr, " ; return ");
zend_dump_type_info(func_info->return_info.type, func_info->return_info.ce, func_info->return_info.is_instanceof, dump_flags);
zend_dump_range(&func_info->return_info.range);
fprintf(stderr, "\n");
@@ -1044,10 +988,7 @@ void zend_dump_op_array(const zend_op_array *op_array, uint32_t dump_flags, cons
if (ssa && ssa->var_info) {
for (i = 0; i < op_array->last_var; i++) {
- if (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) {
- fprintf(stderr, " ");
- }
- fprintf(stderr, " ; ");
+ fprintf(stderr, " ; ");
zend_dump_ssa_var(op_array, ssa, i, IS_CV, i, dump_flags);
fprintf(stderr, "\n");
}
@@ -1076,9 +1017,7 @@ void zend_dump_op_array(const zend_op_array *op_array, uint32_t dump_flags, cons
fprintf(stderr, "LIVE RANGES:\n");
for (i = 0; i < op_array->last_live_range; i++) {
fprintf(stderr,
- (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) ?
- " %u: %04u - %04u " :
- " %u: L%u - L%u ",
+ " %u: %04u - %04u ",
EX_VAR_TO_NUM(op_array->live_range[i].var & ~ZEND_LIVE_MASK),
op_array->live_range[i].start,
op_array->live_range[i].end);
@@ -1138,9 +1077,7 @@ void zend_dump_op_array(const zend_op_array *op_array, uint32_t dump_flags, cons
fprintf(stderr, "LIVE RANGES:\n");
for (i = 0; i < op_array->last_live_range; i++) {
fprintf(stderr,
- (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) ?
- " %u: %04u - %04u " :
- " %u: L%u - L%u ",
+ " %u: %04u - %04u ",
EX_VAR_TO_NUM(op_array->live_range[i].var & ~ZEND_LIVE_MASK),
op_array->live_range[i].start,
op_array->live_range[i].end);
@@ -1167,34 +1104,26 @@ void zend_dump_op_array(const zend_op_array *op_array, uint32_t dump_flags, cons
fprintf(stderr, "EXCEPTION TABLE:\n");
for (i = 0; i < op_array->last_try_catch; i++) {
fprintf(stderr,
- (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) ?
- " %04u" :
- " L%u",
+ " %04u",
op_array->try_catch_array[i].try_op);
if (op_array->try_catch_array[i].catch_op) {
fprintf(stderr,
- (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) ?
- ", %04u" :
- ", L%u",
+ ", %04u",
op_array->try_catch_array[i].catch_op);
} else {
fprintf(stderr, ", -");
}
if (op_array->try_catch_array[i].finally_op) {
fprintf(stderr,
- (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) ?
- ", %04u" :
- ", L%u",
+ ", %04u",
op_array->try_catch_array[i].finally_op);
} else {
fprintf(stderr, ", -");
}
if (op_array->try_catch_array[i].finally_end) {
fprintf(stderr,
- (dump_flags & ZEND_DUMP_NUMERIC_OPLINES) ?
- ", %04u" :
- ", L%u\n",
+ ", %04u",
op_array->try_catch_array[i].finally_end);
} else {
fprintf(stderr, ", -\n");