php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_call_graph.h
Go to the documentation of this file.
1/*
2 +----------------------------------------------------------------------+
3 | Zend Engine, Call Graph |
4 +----------------------------------------------------------------------+
5 | Copyright (c) The PHP Group |
6 +----------------------------------------------------------------------+
7 | This source file is subject to version 3.01 of the PHP license, |
8 | that is bundled with this package in the file LICENSE, and is |
9 | available through the world-wide-web at the following url: |
10 | https://www.php.net/license/3_01.txt |
11 | If you did not receive a copy of the PHP license and are unable to |
12 | obtain it through the world-wide-web, please send a note to |
13 | license@php.net so we can mail you a copy immediately. |
14 +----------------------------------------------------------------------+
15 | Authors: Dmitry Stogov <dmitry@php.net> |
16 +----------------------------------------------------------------------+
17*/
18
19#ifndef ZEND_CALL_GRAPH_H
20#define ZEND_CALL_GRAPH_H
21
22#include "zend_ssa.h"
23#include "zend_func_info.h"
24#include "zend_optimizer.h"
25
29
38 bool send_unpack; /* Parameters passed by SEND_UNPACK or SEND_ARRAY */
39 bool named_args; /* Function has named arguments */
40 bool is_prototype; /* An overridden child method may be called */
41 bool is_frameless; /* A frameless function sends arguments through operands */
42 int num_args; /* Number of arguments, excluding named and variadic arguments */
44};
45
47 int num;
48 uint32_t flags;
49 zend_ssa ssa; /* Static Single Assignment Form */
50 zend_call_info *caller_info; /* where this function is called from */
51 zend_call_info *callee_info; /* which functions are called from this one */
52 zend_call_info **call_map; /* Call info associated with init/call/send opnum */
54};
55
61
63
67ZEND_API void zend_analyze_calls(zend_arena **arena, zend_script *script, uint32_t build_flags, zend_op_array *op_array, zend_func_info *func_info);
68
70
71#endif /* ZEND_CALL_GRAPH_H */
char * arena
Definition php_bcmath.h:37
zend_func_info * func_infos
zend_op_array ** op_arrays
zend_op_array * caller_op_array
zend_op * caller_call_opline
zend_send_arg_info arg_info[1]
zend_call_info * next_caller
zend_function * callee_func
zend_call_info * next_callee
zend_op * caller_init_opline
zend_ssa_var_info return_info
zend_call_info * callee_info
zend_call_info ** call_map
zend_call_info * caller_info
struct _zend_arena zend_arena
Definition zend_arena.h:26
ZEND_API zend_call_info ** zend_build_call_map(zend_arena **arena, zend_func_info *info, const zend_op_array *op_array)
ZEND_API void zend_analyze_calls(zend_arena **arena, zend_script *script, uint32_t build_flags, zend_op_array *op_array, zend_func_info *func_info)
ZEND_API void zend_build_call_graph(zend_arena **arena, zend_script *script, zend_call_graph *call_graph)
ZEND_API void zend_analyze_call_graph(zend_arena **arena, zend_script *script, zend_call_graph *call_graph)
struct _zend_call_graph zend_call_graph
struct _zend_send_arg_info zend_send_arg_info
struct _zend_op zend_op
struct _zend_op_array zend_op_array
#define ZEND_API
union _zend_function zend_function
struct _zend_call_info zend_call_info
struct _zend_func_info zend_func_info
struct _zend_script zend_script
#define END_EXTERN_C()
#define BEGIN_EXTERN_C()
struct _zend_ssa zend_ssa
struct _zend_ssa_var_info zend_ssa_var_info