19#ifndef ZEND_FUNC_INFO_H
20#define ZEND_FUNC_INFO_H
25#define ZEND_FUNC_INDIRECT_VAR_ACCESS (1<<0)
26#define ZEND_FUNC_HAS_CALLS (1<<1)
27#define ZEND_FUNC_VARARG (1<<2)
28#define ZEND_FUNC_NO_LOOPS (1<<3)
29#define ZEND_FUNC_IRREDUCIBLE (1<<4)
30#define ZEND_FUNC_FREE_LOOP_VAR (1<<5)
31#define ZEND_FUNC_RECURSIVE (1<<7)
32#define ZEND_FUNC_RECURSIVE_DIRECTLY (1<<8)
33#define ZEND_FUNC_RECURSIVE_INDIRECTLY (1<<9)
34#define ZEND_FUNC_HAS_EXTENDED_FCALL (1<<10)
35#define ZEND_FUNC_HAS_EXTENDED_STMT (1<<11)
36#define ZEND_SSA_TSSA (1<<12)
38#define ZEND_FUNC_JIT_ON_FIRST_EXEC (1<<13)
39#define ZEND_FUNC_JIT_ON_PROF_REQUEST (1<<14)
40#define ZEND_FUNC_JIT_ON_HOT_COUNTERS (1<<15)
41#define ZEND_FUNC_JIT_ON_HOT_TRACE (1<<16)
47#define ZEND_FUNC_INFO(op_array) \
48 ((zend_func_info*)((op_array)->reserved[zend_func_info_rid]))
50#define ZEND_SET_FUNC_INFO(op_array, info) do { \
51 zend_func_info** pinfo = (zend_func_info**)&(op_array)->reserved[zend_func_info_rid]; \
zend_function * callee_func
union _zend_function zend_function
uint32_t zend_get_internal_func_info(const zend_function *callee_func, const zend_call_info *call_info, const zend_ssa *ssa)
zend_result zend_func_info_startup(void)
ZEND_API int zend_func_info_rid
zend_result zend_func_info_shutdown(void)
ZEND_API uint32_t zend_get_func_info(const zend_call_info *call_info, const zend_ssa *ssa, zend_class_entry **ce, bool *ce_is_instanceof)
struct _zend_call_info zend_call_info
struct _zend_func_info zend_func_info
struct _zend_class_entry zend_class_entry
struct _zend_ssa zend_ssa
ZEND_RESULT_CODE zend_result