Skip to content

Instantly share code, notes, and snippets.

@fh
Last active December 28, 2015 09:59
Show Gist options
  • Save fh/7483360 to your computer and use it in GitHub Desktop.
Save fh/7483360 to your computer and use it in GitHub Desktop.
--- ./Optimizer/block_pass.c 2013-11-14 22:13:53.000000000 +0100
- * defined. We won't apply some optimization patterns for sush variables. */
--- ./Optimizer/compact_literals.c 1970-01-01 01:00:00.000000000 +0100
--- ./Optimizer/optimize_func_calls.c 1970-01-01 01:00:00.000000000 +0100
--- ./Optimizer/pass1_5.c 2013-11-14 22:13:53.000000000 +0100
- * - convert INTI_FCALL_BY_NAME, DO_FCALL_BY_NAME into DO_FCALL
- break;
- case ZEND_INIT_FCALL_BY_NAME:
- if (opline->extended_value == 0 /* not method */ &&
- ZEND_OP1_TYPE(opline) == IS_UNUSED &&
- ZEND_OP2_TYPE(opline) == IS_CONST) {
- if ((opline + 1)->opcode == ZEND_DO_FCALL_BY_NAME &&
- (opline + 1)->extended_value == 0) {
- (opline + 1)->opcode = ZEND_DO_FCALL;
- COPY_NODE((opline + 1)->op1, opline->op2);
- zend_str_tolower(Z_STRVAL(ZEND_OP1_LITERAL(opline + 1)), Z_STRLEN(ZEND_OP1_LITERAL(opline + 1)));
- Z_HASH_P(&ZEND_OP1_LITERAL(opline + 1)) = zend_hash_func(Z_STRVAL(ZEND_OP1_LITERAL(opline + 1)), Z_STRLEN(ZEND_OP1_LITERAL(opline + 1)) + 1);
- op_array->literals[(opline + 1)->op1.constant].cache_slot = op_array->last_cache_slot++;
- MAKE_NOP(opline);
- }
- }
--- ./Optimizer/zend_optimizer.c 2013-11-14 22:13:53.000000000 +0100
- if (i >= CG(context).literals_size) {
- CG(context).literals_size += 16; /* FIXME */
- op_array->literals = (zend_literal*)erealloc(op_array->literals, CG(context).literals_size * sizeof(zend_literal));
- }
-void zend_optimizer(zend_op_array *op_array TSRMLS_DC)
- * - convert INTI_FCALL_BY_NAME + DO_FCALL_BY_NAME into DO_FCALL
--- ./Optimizer/zend_optimizer.h 2013-11-14 22:13:53.000000000 +0100
-#define ZEND_OPTIMIZER_PASS_4 (1<<3)
-#define ZEND_OPTIMIZER_PASS_11 (1<<10)
-void zend_optimizer(zend_op_array *op_array TSRMLS_DC);
-
--- ./ZendAccelerator.c 2013-11-14 22:13:53.000000000 +0100
-#include "TSRM/tsrm_virtual_cwd.h"
-static void accel_op_array_handler(zend_op_array *op_array)
-{
- TSRMLS_FETCH();
-
- if (ZCG(enabled) &&
- accel_startup_ok &&
- ZCSG(accelerator_enabled) &&
- !ZSMMG(memory_exhausted) &&
- !ZCSG(restart_pending)) {
- zend_optimizer(op_array TSRMLS_CC);
- }
-}
-
- accel_op_array_handler, /* op_array handler */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment