22#ifndef ZEND_OPTIMIZER_H
23#define ZEND_OPTIMIZER_H
28#define ZEND_OPTIMIZER_PASS_1 (1<<0)
29#define ZEND_OPTIMIZER_PASS_2 (1<<1)
30#define ZEND_OPTIMIZER_PASS_3 (1<<2)
31#define ZEND_OPTIMIZER_PASS_4 (1<<3)
32#define ZEND_OPTIMIZER_PASS_5 (1<<4)
33#define ZEND_OPTIMIZER_PASS_6 (1<<5)
34#define ZEND_OPTIMIZER_PASS_7 (1<<6)
35#define ZEND_OPTIMIZER_PASS_8 (1<<7)
36#define ZEND_OPTIMIZER_PASS_9 (1<<8)
37#define ZEND_OPTIMIZER_PASS_10 (1<<9)
38#define ZEND_OPTIMIZER_PASS_11 (1<<10)
39#define ZEND_OPTIMIZER_PASS_12 (1<<11)
40#define ZEND_OPTIMIZER_PASS_13 (1<<12)
41#define ZEND_OPTIMIZER_PASS_14 (1<<13)
42#define ZEND_OPTIMIZER_PASS_15 (1<<14)
43#define ZEND_OPTIMIZER_PASS_16 (1<<15)
45#define ZEND_OPTIMIZER_IGNORE_OVERLOADING (1<<16)
47#define ZEND_OPTIMIZER_NARROW_TO_DOUBLE (1<<17)
49#define ZEND_OPTIMIZER_ALL_PASSES 0x7FFFFFFF
51#define DEFAULT_OPTIMIZATION_LEVEL "0x7FFEBFFF"
54#define ZEND_DUMP_AFTER_PASS_1 ZEND_OPTIMIZER_PASS_1
55#define ZEND_DUMP_AFTER_PASS_2 ZEND_OPTIMIZER_PASS_2
56#define ZEND_DUMP_AFTER_PASS_3 ZEND_OPTIMIZER_PASS_3
57#define ZEND_DUMP_AFTER_PASS_4 ZEND_OPTIMIZER_PASS_4
58#define ZEND_DUMP_AFTER_PASS_5 ZEND_OPTIMIZER_PASS_5
59#define ZEND_DUMP_AFTER_PASS_6 ZEND_OPTIMIZER_PASS_6
60#define ZEND_DUMP_AFTER_PASS_7 ZEND_OPTIMIZER_PASS_7
61#define ZEND_DUMP_AFTER_PASS_8 ZEND_OPTIMIZER_PASS_8
62#define ZEND_DUMP_AFTER_PASS_9 ZEND_OPTIMIZER_PASS_9
63#define ZEND_DUMP_AFTER_PASS_10 ZEND_OPTIMIZER_PASS_10
64#define ZEND_DUMP_AFTER_PASS_11 ZEND_OPTIMIZER_PASS_11
65#define ZEND_DUMP_AFTER_PASS_12 ZEND_OPTIMIZER_PASS_12
66#define ZEND_DUMP_AFTER_PASS_13 ZEND_OPTIMIZER_PASS_13
67#define ZEND_DUMP_AFTER_PASS_14 ZEND_OPTIMIZER_PASS_14
69#define ZEND_DUMP_BEFORE_OPTIMIZER (1<<16)
70#define ZEND_DUMP_AFTER_OPTIMIZER (1<<17)
72#define ZEND_DUMP_BEFORE_BLOCK_PASS (1<<18)
73#define ZEND_DUMP_AFTER_BLOCK_PASS (1<<19)
74#define ZEND_DUMP_BLOCK_PASS_VARS (1<<20)
76#define ZEND_DUMP_BEFORE_DFA_PASS (1<<21)
77#define ZEND_DUMP_AFTER_DFA_PASS (1<<22)
78#define ZEND_DUMP_DFA_CFG (1<<23)
79#define ZEND_DUMP_DFA_DOMINATORS (1<<24)
80#define ZEND_DUMP_DFA_LIVENESS (1<<25)
81#define ZEND_DUMP_DFA_PHI (1<<26)
82#define ZEND_DUMP_DFA_SSA (1<<27)
83#define ZEND_DUMP_DFA_SSA_VARS (1<<28)
84#define ZEND_DUMP_SCCP (1<<29)
#define pass(a, b, c, mul)
zend_op_array main_op_array
struct _zend_op_array zend_op_array
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)
struct _zend_string zend_string
ZEND_API void zend_optimize_script(zend_script *script, zend_long optimization_level, zend_long debug_level)
zend_result zend_optimizer_startup(void)
zend_result zend_optimizer_shutdown(void)
ZEND_API int zend_optimizer_register_pass(zend_optimizer_pass_t pass)
ZEND_API void zend_optimizer_unregister_pass(int idx)
struct _zend_script zend_script
void(* zend_optimizer_pass_t)(zend_script *, void *context)
struct _zend_array HashTable
ZEND_RESULT_CODE zend_result