mirror of
https://github.com/php/php-src.git
synced 2024-09-30 06:16:08 +00:00
c2fea2a46d
To avoid inserting phis that are only relevant with rc inference enabled. Suprisingly, this affects only 0.8% of phis.
60 lines
2.0 KiB
C
60 lines
2.0 KiB
C
/*
|
|
+----------------------------------------------------------------------+
|
|
| Zend Engine, DFG - Data Flow Graph |
|
|
+----------------------------------------------------------------------+
|
|
| Copyright (c) 1998-2016 The PHP Group |
|
|
+----------------------------------------------------------------------+
|
|
| This source file is subject to version 3.01 of the PHP license, |
|
|
| that is bundled with this package in the file LICENSE, and is |
|
|
| available through the world-wide-web at the following url: |
|
|
| http://www.php.net/license/3_01.txt |
|
|
| If you did not receive a copy of the PHP license and are unable to |
|
|
| obtain it through the world-wide-web, please send a note to |
|
|
| license@php.net so we can mail you a copy immediately. |
|
|
+----------------------------------------------------------------------+
|
|
| Authors: Dmitry Stogov <dmitry@zend.com> |
|
|
+----------------------------------------------------------------------+
|
|
*/
|
|
|
|
#ifndef ZEND_DFG_H
|
|
#define ZEND_DFG_H
|
|
|
|
#include "zend_bitset.h"
|
|
#include "zend_cfg.h"
|
|
|
|
typedef struct _zend_dfg {
|
|
int vars;
|
|
uint32_t size;
|
|
zend_bitset tmp;
|
|
zend_bitset gen;
|
|
zend_bitset def;
|
|
zend_bitset use;
|
|
zend_bitset in;
|
|
zend_bitset out;
|
|
} zend_dfg;
|
|
|
|
#define DFG_BITSET(set, set_size, block_num) \
|
|
((set) + ((block_num) * (set_size)))
|
|
|
|
#define DFG_SET(set, set_size, block_num, var_num) \
|
|
zend_bitset_incl(DFG_BITSET(set, set_size, block_num), (var_num))
|
|
|
|
#define DFG_ISSET(set, set_size, block_num, var_num) \
|
|
zend_bitset_in(DFG_BITSET(set, set_size, block_num), (var_num))
|
|
|
|
BEGIN_EXTERN_C()
|
|
|
|
int zend_build_dfg(const zend_op_array *op_array, const zend_cfg *cfg, zend_dfg *dfg, uint32_t build_flags);
|
|
|
|
END_EXTERN_C()
|
|
|
|
#endif /* ZEND_DFG_H */
|
|
|
|
/*
|
|
* Local variables:
|
|
* tab-width: 4
|
|
* c-basic-offset: 4
|
|
* indent-tabs-mode: t
|
|
* End:
|
|
*/
|