summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2020-04-10 16:10:19 +0300
committerDmitry Stogov <dmitry@zend.com>2020-04-10 16:10:19 +0300
commit0a408be0d23170e94f8cccb9c0a6dd5476138145 (patch)
tree242c7d52e0763a3bd302bb64f8e6e667d09655cd
parentd3dda1e0f10c00d6f62891685ad0b5662fd34393 (diff)
downloadphp-git-0a408be0d23170e94f8cccb9c0a6dd5476138145.tar.gz
Separate zend_jit_dump_lifetime_interval() function
-rw-r--r--ext/opcache/jit/zend_jit.c88
1 files changed, 38 insertions, 50 deletions
diff --git a/ext/opcache/jit/zend_jit.c b/ext/opcache/jit/zend_jit.c
index 2ff1b07eec..343b945768 100644
--- a/ext/opcache/jit/zend_jit.c
+++ b/ext/opcache/jit/zend_jit.c
@@ -1692,6 +1692,42 @@ static zend_lifetime_interval* zend_jit_linear_scan(const zend_op_array *op_arra
return handled;
}
+static void zend_jit_dump_lifetime_interval(const zend_op_array *op_array, const zend_ssa *ssa, const zend_lifetime_interval *ival)
+{
+ zend_life_range *range;
+ int var_num = ssa->vars[ival->ssa_var].var;
+
+ fprintf(stderr, "#%d.", ival->ssa_var);
+ zend_dump_var(op_array, (var_num < op_array->last_var ? IS_CV : 0), var_num);
+ fprintf(stderr, ": %u-%u", ival->range.start, ival->range.end);
+ range = ival->range.next;
+ while (range) {
+ fprintf(stderr, ", %u-%u", range->start, range->end);
+ range = range->next;
+ }
+ if (ival->reg != ZREG_NONE) {
+ fprintf(stderr, " (%s)", zend_reg_name[ival->reg]);
+ }
+ if (ival->flags & ZREG_LAST_USE) {
+ fprintf(stderr, " last_use");
+ }
+ if (ival->flags & ZREG_LOAD) {
+ fprintf(stderr, " load");
+ }
+ if (ival->flags & ZREG_STORE) {
+ fprintf(stderr, " store");
+ }
+ if (ival->hint) {
+ var_num = ssa->vars[ival->hint->ssa_var].var;
+ fprintf(stderr, " hint=#%d.", ival->hint->ssa_var);
+ zend_dump_var(op_array, (var_num < op_array->last_var ? IS_CV : 0), var_num);
+ if (ival->hint->reg != ZREG_NONE) {
+ fprintf(stderr, " (%s)", zend_reg_name[ival->hint->reg]);
+ }
+ }
+ fprintf(stderr, "\n");
+}
+
static zend_lifetime_interval** zend_jit_allocate_registers(const zend_op_array *op_array, zend_ssa *ssa)
{
void *checkpoint;
@@ -1752,29 +1788,7 @@ static zend_lifetime_interval** zend_jit_allocate_registers(const zend_op_array
fprintf(stderr, "Live Ranges \"%s\"\n", op_array->function_name ? ZSTR_VAL(op_array->function_name) : "[main]");
ival = list;
while (ival) {
- zend_life_range *range;
- int var_num = ssa->vars[ival->ssa_var].var;
-
- fprintf(stderr, "#%d.", ival->ssa_var);
- zend_dump_var(op_array, (var_num < op_array->last_var ? IS_CV : 0), var_num);
- fprintf(stderr, ": %u-%u", ival->range.start, ival->range.end);
- range = ival->range.next;
- while (range) {
- fprintf(stderr, ", %u-%u", range->start, range->end);
- range = range->next;
- }
- if (ival->flags & ZREG_LOAD) {
- fprintf(stderr, " load");
- }
- if (ival->flags & ZREG_STORE) {
- fprintf(stderr, " store");
- }
- if (ival->hint) {
- var_num = ssa->vars[ival->hint->ssa_var].var;
- fprintf(stderr, " hint=#%d.", ival->hint->ssa_var);
- zend_dump_var(op_array, (var_num < op_array->last_var ? IS_CV : 0), var_num);
- }
- fprintf(stderr, "\n");
+ zend_jit_dump_lifetime_interval(op_array, ssa, ival);
ival = ival->list_next;
}
fprintf(stderr, "\n");
@@ -1917,33 +1931,7 @@ static zend_lifetime_interval** zend_jit_allocate_registers(const zend_op_array
for (i = 0; i < ssa->vars_count; i++) {
ival = intervals[i];
while (ival) {
- zend_life_range *range;
- int var_num = ssa->vars[ival->ssa_var].var;
-
- fprintf(stderr, "#%d.", ival->ssa_var);
- zend_dump_var(op_array, (var_num < op_array->last_var ? IS_CV : 0), var_num);
- fprintf(stderr, ": %u-%u", ival->range.start, ival->range.end);
- range = ival->range.next;
- while (range) {
- fprintf(stderr, ", %u-%u", range->start, range->end);
- range = range->next;
- }
- fprintf(stderr, " (%s)", zend_reg_name[ival->reg]);
- if (ival->flags & ZREG_LOAD) {
- fprintf(stderr, " load");
- }
- if (ival->flags & ZREG_STORE) {
- fprintf(stderr, " store");
- }
- if (ival->hint) {
- var_num = ssa->vars[ival->hint->ssa_var].var;
- fprintf(stderr, " hint=#%d.", ival->hint->ssa_var);
- zend_dump_var(op_array, (var_num < op_array->last_var ? IS_CV : 0), var_num);
- if (ival->hint->reg != ZREG_NONE) {
- fprintf(stderr, " (%s)", zend_reg_name[ival->hint->reg]);
- }
- }
- fprintf(stderr, "\n");
+ zend_jit_dump_lifetime_interval(op_array, ssa, ival);
ival = ival->list_next;
}
}