Lines Matching refs:op_array

87                                        zend_op_array  *op_array)  in optimizer_literal_obj_info()  argument
93 if (Z_TYPE(op_array->literals[constant]) == IS_STRING && in optimizer_literal_obj_info()
108 zend_op_array *op_array) in optimizer_literal_class_info() argument
117 void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx *ctx) in zend_optimizer_compact_literals() argument
131 if (op_array->last_literal) { in zend_optimizer_compact_literals()
133 …info = (literal_info*)zend_arena_calloc(&ctx->arena, op_array->last_literal, sizeof(literal_info)); in zend_optimizer_compact_literals()
136 opline = op_array->opcodes; in zend_optimizer_compact_literals()
137 end = opline + op_array->last; in zend_optimizer_compact_literals()
160 op_array); in zend_optimizer_compact_literals()
174 op_array); in zend_optimizer_compact_literals()
200 op_array); in zend_optimizer_compact_literals()
220 op_array); in zend_optimizer_compact_literals()
256 op_array); in zend_optimizer_compact_literals()
279 op_array); in zend_optimizer_compact_literals()
290 if (Z_CACHE_SLOT(op_array->literals[opline->op2.constant]) != (uint32_t)-1) { in zend_optimizer_compact_literals()
291 Z_CACHE_SLOT(op_array->literals[opline->op2.constant]) = cache_size; in zend_optimizer_compact_literals()
323 fprintf(stderr, "File %s func %s\n", op_array->filename->val, in zend_optimizer_compact_literals()
324 op_array->function_name ? op_array->function_name->val : "main"); in zend_optimizer_compact_literals()
325 fprintf(stderr, "Literlas table size %d\n", op_array->last_literal); in zend_optimizer_compact_literals()
327 for (i = 0; i < op_array->last_literal; i++) { in zend_optimizer_compact_literals()
329 ZVAL_COPY_VALUE(&zv, op_array->literals + i); in zend_optimizer_compact_literals()
330 use_copy = zend_make_printable_zval(op_array->literals + i, &zv); in zend_optimizer_compact_literals()
342 zend_hash_init(&hash, op_array->last_literal, NULL, NULL, 0); in zend_optimizer_compact_literals()
343 map = (int*)zend_arena_alloc(&ctx->arena, op_array->last_literal * sizeof(int)); in zend_optimizer_compact_literals()
344 memset(map, 0, op_array->last_literal * sizeof(int)); in zend_optimizer_compact_literals()
345 for (i = 0; i < op_array->last_literal; i++) { in zend_optimizer_compact_literals()
348 zval_ptr_dtor_nogc(&op_array->literals[i]); in zend_optimizer_compact_literals()
351 switch (Z_TYPE(op_array->literals[i])) { in zend_optimizer_compact_literals()
359 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
368 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
378 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
389 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
397 if ((pos = zend_hash_index_find(&hash, Z_LVAL(op_array->literals[i]))) != NULL) { in zend_optimizer_compact_literals()
402 zend_hash_index_add_new(&hash, Z_LVAL(op_array->literals[i]), &zv); in zend_optimizer_compact_literals()
404 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
411 …if ((pos = zend_hash_str_find(&hash, (char*)&Z_DVAL(op_array->literals[i]), sizeof(double))) != NU… in zend_optimizer_compact_literals()
416 zend_hash_str_add(&hash, (char*)&Z_DVAL(op_array->literals[i]), sizeof(double), &zv); in zend_optimizer_compact_literals()
418 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
428 int key_len = sizeof("$this->") - 1 + Z_STRLEN(op_array->literals[i]); in zend_optimizer_compact_literals()
431 …memcpy(ZSTR_VAL(key) + sizeof("$this->") - 1, Z_STRVAL(op_array->literals[i]), Z_STRLEN(op_array->… in zend_optimizer_compact_literals()
435 … zval *class_name = &op_array->literals[(info[i].u.num < i) ? map[info[i].u.num] : info[i].u.num]; in zend_optimizer_compact_literals()
436 key_len = Z_STRLEN_P(class_name) + sizeof("::") - 1 + Z_STRLEN(op_array->literals[i]); in zend_optimizer_compact_literals()
441 Z_STRVAL(op_array->literals[i]), in zend_optimizer_compact_literals()
442 Z_STRLEN(op_array->literals[i]) + 1); in zend_optimizer_compact_literals()
444 key = zend_string_init(Z_STRVAL(op_array->literals[i]), Z_STRLEN(op_array->literals[i]), 0); in zend_optimizer_compact_literals()
451 Z_TYPE(op_array->literals[i]) == Z_TYPE(op_array->literals[Z_LVAL_P(pos)]) && in zend_optimizer_compact_literals()
456 zval_ptr_dtor_nogc(&op_array->literals[i]); in zend_optimizer_compact_literals()
460 zval_ptr_dtor_nogc(&op_array->literals[i]); in zend_optimizer_compact_literals()
471 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
475 Z_CACHE_SLOT(op_array->literals[j]) = cache_size; in zend_optimizer_compact_literals()
482 if (i != j) op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
489 if (zend_hash_num_elements(Z_ARRVAL(op_array->literals[i])) == 0) { in zend_optimizer_compact_literals()
493 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
498 zval_ptr_dtor_nogc(&op_array->literals[i]); in zend_optimizer_compact_literals()
508 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
516 op_array->last_literal = j; in zend_optimizer_compact_literals()
517 op_array->cache_size = cache_size; in zend_optimizer_compact_literals()
520 opline = op_array->opcodes; in zend_optimizer_compact_literals()
521 end = opline + op_array->last; in zend_optimizer_compact_literals()
536 fprintf(stderr, "Optimized literlas table size %d\n", op_array->last_literal); in zend_optimizer_compact_literals()
538 for (i = 0; i < op_array->last_literal; i++) { in zend_optimizer_compact_literals()
540 ZVAL_COPY_VALUE(&zv, op_array->literals + i); in zend_optimizer_compact_literals()
541 use_copy = zend_make_printable_zval(op_array->literals + i, &zv); in zend_optimizer_compact_literals()