php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_dfg.h
Go to the documentation of this file.
1/*
2 +----------------------------------------------------------------------+
3 | Zend Engine, DFG - Data Flow 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_DFG_H
20#define ZEND_DFG_H
21
22#include "zend_bitset.h"
23#include "zend_cfg.h"
24
34
35#define DFG_BITSET(set, set_size, block_num) \
36 ((set) + ((block_num) * (set_size)))
37
38#define DFG_SET(set, set_size, block_num, var_num) \
39 zend_bitset_incl(DFG_BITSET(set, set_size, block_num), (var_num))
40
41#define DFG_ISSET(set, set_size, block_num, var_num) \
42 zend_bitset_in(DFG_BITSET(set, set_size, block_num), (var_num))
43
45
46void zend_build_dfg(const zend_op_array *op_array, const zend_cfg *cfg, zend_dfg *dfg, uint32_t build_flags);
47ZEND_API void zend_dfg_add_use_def_op(const zend_op_array *op_array, const zend_op *opline, uint32_t build_flags, zend_bitset use, zend_bitset def);
48
50
51#endif /* ZEND_DFG_H */
zend_bitset def
Definition zend_dfg.h:29
uint32_t size
Definition zend_dfg.h:27
zend_bitset use
Definition zend_dfg.h:30
zend_bitset tmp
Definition zend_dfg.h:28
zend_bitset in
Definition zend_dfg.h:31
int vars
Definition zend_dfg.h:26
zend_bitset out
Definition zend_dfg.h:32
zend_ulong * zend_bitset
Definition zend_bitset.h:29
struct _zend_cfg zend_cfg
struct _zend_op zend_op
struct _zend_op_array zend_op_array
#define ZEND_API
void zend_build_dfg(const zend_op_array *op_array, const zend_cfg *cfg, zend_dfg *dfg, uint32_t build_flags)
Definition zend_dfg.c:252
ZEND_API void zend_dfg_add_use_def_op(const zend_op_array *op_array, const zend_op *opline, uint32_t build_flags, zend_bitset use, zend_bitset def)
Definition zend_dfg.c:246
struct _zend_dfg zend_dfg
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)
#define END_EXTERN_C()
#define BEGIN_EXTERN_C()