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
130 if (op_array->last_literal) { in zend_optimizer_compact_literals()
132 …info = (literal_info*)zend_arena_calloc(&ctx->arena, op_array->last_literal, sizeof(literal_info)); in zend_optimizer_compact_literals()
135 opline = op_array->opcodes; in zend_optimizer_compact_literals()
136 end = opline + op_array->last; in zend_optimizer_compact_literals()
159 op_array); in zend_optimizer_compact_literals()
173 op_array); in zend_optimizer_compact_literals()
199 op_array); in zend_optimizer_compact_literals()
219 op_array); in zend_optimizer_compact_literals()
255 op_array); in zend_optimizer_compact_literals()
278 op_array); in zend_optimizer_compact_literals()
289 if (Z_CACHE_SLOT(op_array->literals[opline->op2.constant]) != (uint32_t)-1) { in zend_optimizer_compact_literals()
290 Z_CACHE_SLOT(op_array->literals[opline->op2.constant]) = cache_size; in zend_optimizer_compact_literals()
322 fprintf(stderr, "File %s func %s\n", op_array->filename->val, in zend_optimizer_compact_literals()
323 op_array->function_name ? op_array->function_name->val : "main"); in zend_optimizer_compact_literals()
324 fprintf(stderr, "Literlas table size %d\n", op_array->last_literal); in zend_optimizer_compact_literals()
326 for (i = 0; i < op_array->last_literal; i++) { in zend_optimizer_compact_literals()
328 ZVAL_COPY_VALUE(&zv, op_array->literals + i); in zend_optimizer_compact_literals()
329 use_copy = zend_make_printable_zval(op_array->literals + i, &zv); in zend_optimizer_compact_literals()
341 zend_hash_init(&hash, op_array->last_literal, NULL, NULL, 0); in zend_optimizer_compact_literals()
342 map = (int*)zend_arena_alloc(&ctx->arena, op_array->last_literal * sizeof(int)); in zend_optimizer_compact_literals()
343 memset(map, 0, op_array->last_literal * sizeof(int)); in zend_optimizer_compact_literals()
344 for (i = 0; i < op_array->last_literal; i++) { in zend_optimizer_compact_literals()
347 zval_dtor(&op_array->literals[i]); in zend_optimizer_compact_literals()
350 switch (Z_TYPE(op_array->literals[i])) { in zend_optimizer_compact_literals()
358 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
367 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
377 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
388 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
396 if ((pos = zend_hash_index_find(&hash, Z_LVAL(op_array->literals[i]))) != NULL) { in zend_optimizer_compact_literals()
401 zend_hash_index_add_new(&hash, Z_LVAL(op_array->literals[i]), &zv); in zend_optimizer_compact_literals()
403 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
410 …if ((pos = zend_hash_str_find(&hash, (char*)&Z_DVAL(op_array->literals[i]), sizeof(double))) != NU… in zend_optimizer_compact_literals()
415 zend_hash_str_add(&hash, (char*)&Z_DVAL(op_array->literals[i]), sizeof(double), &zv); in zend_optimizer_compact_literals()
417 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
427 int key_len = sizeof("$this->") - 1 + Z_STRLEN(op_array->literals[i]); in zend_optimizer_compact_literals()
430 …memcpy(ZSTR_VAL(key) + sizeof("$this->") - 1, Z_STRVAL(op_array->literals[i]), Z_STRLEN(op_array->… in zend_optimizer_compact_literals()
434 … 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()
435 key_len = Z_STRLEN_P(class_name) + sizeof("::") - 1 + Z_STRLEN(op_array->literals[i]); in zend_optimizer_compact_literals()
440 Z_STRVAL(op_array->literals[i]), in zend_optimizer_compact_literals()
441 Z_STRLEN(op_array->literals[i]) + 1); in zend_optimizer_compact_literals()
443 key = zend_string_init(Z_STRVAL(op_array->literals[i]), Z_STRLEN(op_array->literals[i]), 0); in zend_optimizer_compact_literals()
450 Z_TYPE(op_array->literals[i]) == Z_TYPE(op_array->literals[Z_LVAL_P(pos)]) && in zend_optimizer_compact_literals()
455 zval_dtor(&op_array->literals[i]); in zend_optimizer_compact_literals()
459 zval_dtor(&op_array->literals[i]); in zend_optimizer_compact_literals()
470 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
474 Z_CACHE_SLOT(op_array->literals[j]) = cache_size; in zend_optimizer_compact_literals()
481 if (i != j) op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
491 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
499 op_array->last_literal = j; in zend_optimizer_compact_literals()
500 op_array->cache_size = cache_size; in zend_optimizer_compact_literals()
503 opline = op_array->opcodes; in zend_optimizer_compact_literals()
504 end = opline + op_array->last; in zend_optimizer_compact_literals()
519 fprintf(stderr, "Optimized literlas table size %d\n", op_array->last_literal); in zend_optimizer_compact_literals()
521 for (i = 0; i < op_array->last_literal; i++) { in zend_optimizer_compact_literals()
523 ZVAL_COPY_VALUE(&zv, op_array->literals + i); in zend_optimizer_compact_literals()
524 use_copy = zend_make_printable_zval(op_array->literals + i, &zv); in zend_optimizer_compact_literals()