Coverage Report

Created: 2026-01-18 06:48

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/php-src/Zend/zend_bitset.h
Line
Count
Source
1
/*
2
   +----------------------------------------------------------------------+
3
   | Zend OPcache JIT                                                     |
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_BITSET_H_
20
#define _ZEND_BITSET_H_
21
22
#include <stdint.h>
23
#include <stdbool.h>
24
#include <string.h>
25
26
#include "zend_portability.h"
27
#include "zend_long.h"
28
29
typedef zend_ulong *zend_bitset;
30
31
69.9k
#define ZEND_BITSET_ELM_SIZE sizeof(zend_ulong)
32
33
#if SIZEOF_ZEND_LONG == 4
34
# define ZEND_BITSET_ELM_NUM(n)   ((n) >> 5)
35
# define ZEND_BITSET_BIT_NUM(n)   ((zend_ulong)(n) & Z_UL(0x1f))
36
#elif SIZEOF_ZEND_LONG == 8
37
407k
# define ZEND_BITSET_ELM_NUM(n)   ((n) >> 6)
38
407k
# define ZEND_BITSET_BIT_NUM(n)   ((zend_ulong)(n) & Z_UL(0x3f))
39
#else
40
# define ZEND_BITSET_ELM_NUM(n)   ((n) / (sizeof(zend_long) * 8))
41
# define ZEND_BITSET_BIT_NUM(n)   ((n) % (sizeof(zend_long) * 8))
42
#endif
43
44
#define ZEND_BITSET_ALLOCA(n, use_heap) \
45
613
  (zend_bitset)do_alloca((n) * ZEND_BITSET_ELM_SIZE, use_heap)
46
47
/* Number of trailing zero bits (0x01 -> 0; 0x40 -> 6; 0x00 -> LEN) */
48
ZEND_ATTRIBUTE_CONST static zend_always_inline int zend_ulong_ntz(zend_ulong num)
49
32.8k
{
50
32.8k
#if (defined(__GNUC__) || __has_builtin(__builtin_ctzl)) \
51
32.8k
  && SIZEOF_ZEND_LONG == SIZEOF_LONG && defined(PHP_HAVE_BUILTIN_CTZL)
52
32.8k
  return __builtin_ctzl(num);
53
#elif (defined(__GNUC__) || __has_builtin(__builtin_ctzll)) && defined(PHP_HAVE_BUILTIN_CTZLL)
54
  return __builtin_ctzll(num);
55
#elif defined(_WIN32)
56
  unsigned long index;
57
58
#if defined(_WIN64)
59
  if (!BitScanForward64(&index, num)) {
60
#else
61
  if (!BitScanForward(&index, num)) {
62
#endif
63
    return SIZEOF_ZEND_LONG * 8;
64
  }
65
66
  return (int) index;
67
#else
68
  int n;
69
70
  if (num == Z_UL(0)) return SIZEOF_ZEND_LONG * 8;
71
72
  n = 1;
73
#if SIZEOF_ZEND_LONG == 8
74
  if ((num & 0xffffffff) == 0) {n += 32; num = num >> Z_UL(32);}
75
#endif
76
  if ((num & 0x0000ffff) == 0) {n += 16; num = num >> 16;}
77
  if ((num & 0x000000ff) == 0) {n +=  8; num = num >>  8;}
78
  if ((num & 0x0000000f) == 0) {n +=  4; num = num >>  4;}
79
  if ((num & 0x00000003) == 0) {n +=  2; num = num >>  2;}
80
  return n - (num & 1);
81
#endif
82
32.8k
}
Unexecuted instantiation: zend_jit.c:zend_ulong_ntz
Unexecuted instantiation: array.c:zend_ulong_ntz
Unexecuted instantiation: math.c:zend_ulong_ntz
Unexecuted instantiation: string.c:zend_ulong_ntz
Unexecuted instantiation: block_pass.c:zend_ulong_ntz
Unexecuted instantiation: compact_vars.c:zend_ulong_ntz
dce.c:zend_ulong_ntz
Line
Count
Source
49
4.92k
{
50
4.92k
#if (defined(__GNUC__) || __has_builtin(__builtin_ctzl)) \
51
4.92k
  && SIZEOF_ZEND_LONG == SIZEOF_LONG && defined(PHP_HAVE_BUILTIN_CTZL)
52
4.92k
  return __builtin_ctzl(num);
53
#elif (defined(__GNUC__) || __has_builtin(__builtin_ctzll)) && defined(PHP_HAVE_BUILTIN_CTZLL)
54
  return __builtin_ctzll(num);
55
#elif defined(_WIN32)
56
  unsigned long index;
57
58
#if defined(_WIN64)
59
  if (!BitScanForward64(&index, num)) {
60
#else
61
  if (!BitScanForward(&index, num)) {
62
#endif
63
    return SIZEOF_ZEND_LONG * 8;
64
  }
65
66
  return (int) index;
67
#else
68
  int n;
69
70
  if (num == Z_UL(0)) return SIZEOF_ZEND_LONG * 8;
71
72
  n = 1;
73
#if SIZEOF_ZEND_LONG == 8
74
  if ((num & 0xffffffff) == 0) {n += 32; num = num >> Z_UL(32);}
75
#endif
76
  if ((num & 0x0000ffff) == 0) {n += 16; num = num >> 16;}
77
  if ((num & 0x000000ff) == 0) {n +=  8; num = num >>  8;}
78
  if ((num & 0x0000000f) == 0) {n +=  4; num = num >>  4;}
79
  if ((num & 0x00000003) == 0) {n +=  2; num = num >>  2;}
80
  return n - (num & 1);
81
#endif
82
4.92k
}
Unexecuted instantiation: dfa_pass.c:zend_ulong_ntz
Unexecuted instantiation: escape_analysis.c:zend_ulong_ntz
Unexecuted instantiation: optimize_temp_vars_5.c:zend_ulong_ntz
Unexecuted instantiation: sccp.c:zend_ulong_ntz
scdf.c:zend_ulong_ntz
Line
Count
Source
49
4.24k
{
50
4.24k
#if (defined(__GNUC__) || __has_builtin(__builtin_ctzl)) \
51
4.24k
  && SIZEOF_ZEND_LONG == SIZEOF_LONG && defined(PHP_HAVE_BUILTIN_CTZL)
52
4.24k
  return __builtin_ctzl(num);
53
#elif (defined(__GNUC__) || __has_builtin(__builtin_ctzll)) && defined(PHP_HAVE_BUILTIN_CTZLL)
54
  return __builtin_ctzll(num);
55
#elif defined(_WIN32)
56
  unsigned long index;
57
58
#if defined(_WIN64)
59
  if (!BitScanForward64(&index, num)) {
60
#else
61
  if (!BitScanForward(&index, num)) {
62
#endif
63
    return SIZEOF_ZEND_LONG * 8;
64
  }
65
66
  return (int) index;
67
#else
68
  int n;
69
70
  if (num == Z_UL(0)) return SIZEOF_ZEND_LONG * 8;
71
72
  n = 1;
73
#if SIZEOF_ZEND_LONG == 8
74
  if ((num & 0xffffffff) == 0) {n += 32; num = num >> Z_UL(32);}
75
#endif
76
  if ((num & 0x0000ffff) == 0) {n += 16; num = num >> 16;}
77
  if ((num & 0x000000ff) == 0) {n +=  8; num = num >>  8;}
78
  if ((num & 0x0000000f) == 0) {n +=  4; num = num >>  4;}
79
  if ((num & 0x00000003) == 0) {n +=  2; num = num >>  2;}
80
  return n - (num & 1);
81
#endif
82
4.24k
}
Unexecuted instantiation: zend_call_graph.c:zend_ulong_ntz
Unexecuted instantiation: zend_cfg.c:zend_ulong_ntz
Unexecuted instantiation: zend_dfg.c:zend_ulong_ntz
Unexecuted instantiation: zend_dump.c:zend_ulong_ntz
Unexecuted instantiation: zend_func_info.c:zend_ulong_ntz
zend_inference.c:zend_ulong_ntz
Line
Count
Source
49
23.7k
{
50
23.7k
#if (defined(__GNUC__) || __has_builtin(__builtin_ctzl)) \
51
23.7k
  && SIZEOF_ZEND_LONG == SIZEOF_LONG && defined(PHP_HAVE_BUILTIN_CTZL)
52
23.7k
  return __builtin_ctzl(num);
53
#elif (defined(__GNUC__) || __has_builtin(__builtin_ctzll)) && defined(PHP_HAVE_BUILTIN_CTZLL)
54
  return __builtin_ctzll(num);
55
#elif defined(_WIN32)
56
  unsigned long index;
57
58
#if defined(_WIN64)
59
  if (!BitScanForward64(&index, num)) {
60
#else
61
  if (!BitScanForward(&index, num)) {
62
#endif
63
    return SIZEOF_ZEND_LONG * 8;
64
  }
65
66
  return (int) index;
67
#else
68
  int n;
69
70
  if (num == Z_UL(0)) return SIZEOF_ZEND_LONG * 8;
71
72
  n = 1;
73
#if SIZEOF_ZEND_LONG == 8
74
  if ((num & 0xffffffff) == 0) {n += 32; num = num >> Z_UL(32);}
75
#endif
76
  if ((num & 0x0000ffff) == 0) {n += 16; num = num >> 16;}
77
  if ((num & 0x000000ff) == 0) {n +=  8; num = num >>  8;}
78
  if ((num & 0x0000000f) == 0) {n +=  4; num = num >>  4;}
79
  if ((num & 0x00000003) == 0) {n +=  2; num = num >>  2;}
80
  return n - (num & 1);
81
#endif
82
23.7k
}
Unexecuted instantiation: zend_optimizer.c:zend_ulong_ntz
Unexecuted instantiation: zend_ssa.c:zend_ulong_ntz
Unexecuted instantiation: zend_alloc.c:zend_ulong_ntz
83
84
/* Number of leading zero bits (Undefined for zero) */
85
ZEND_ATTRIBUTE_CONST static zend_always_inline int zend_ulong_nlz(zend_ulong num)
86
0
{
87
0
#if (defined(__GNUC__) || __has_builtin(__builtin_clzl)) \
88
0
  && SIZEOF_ZEND_LONG == SIZEOF_LONG && defined(PHP_HAVE_BUILTIN_CLZL)
89
0
  return __builtin_clzl(num);
90
#elif (defined(__GNUC__) || __has_builtin(__builtin_clzll)) && defined(PHP_HAVE_BUILTIN_CLZLL)
91
  return __builtin_clzll(num);
92
#elif defined(_WIN32)
93
  unsigned long index;
94
95
#if defined(_WIN64)
96
  if (!BitScanReverse64(&index, num)) {
97
#else
98
  if (!BitScanReverse(&index, num)) {
99
#endif
100
    return SIZEOF_ZEND_LONG * 8;
101
  }
102
103
  return (int) (SIZEOF_ZEND_LONG * 8 - 1)- index;
104
#else
105
  zend_ulong x;
106
  int n;
107
108
#if SIZEOF_ZEND_LONG == 8
109
  n = 64;
110
  x = num >> 32; if (x != 0) {n -= 32; num = x;}
111
#else
112
  n = 32;
113
#endif
114
  x = num >> 16; if (x != 0) {n -= 16; num = x;}
115
  x = num >> 8;  if (x != 0) {n -=  8; num = x;}
116
  x = num >> 4;  if (x != 0) {n -=  4; num = x;}
117
  x = num >> 2;  if (x != 0) {n -=  2; num = x;}
118
  x = num >> 1;  if (x != 0) return n - 2;
119
  return n - num;
120
#endif
121
0
}
Unexecuted instantiation: zend_jit.c:zend_ulong_nlz
Unexecuted instantiation: array.c:zend_ulong_nlz
Unexecuted instantiation: math.c:zend_ulong_nlz
Unexecuted instantiation: string.c:zend_ulong_nlz
Unexecuted instantiation: block_pass.c:zend_ulong_nlz
Unexecuted instantiation: compact_vars.c:zend_ulong_nlz
Unexecuted instantiation: dce.c:zend_ulong_nlz
Unexecuted instantiation: dfa_pass.c:zend_ulong_nlz
Unexecuted instantiation: escape_analysis.c:zend_ulong_nlz
Unexecuted instantiation: optimize_temp_vars_5.c:zend_ulong_nlz
Unexecuted instantiation: sccp.c:zend_ulong_nlz
Unexecuted instantiation: scdf.c:zend_ulong_nlz
Unexecuted instantiation: zend_call_graph.c:zend_ulong_nlz
Unexecuted instantiation: zend_cfg.c:zend_ulong_nlz
Unexecuted instantiation: zend_dfg.c:zend_ulong_nlz
Unexecuted instantiation: zend_dump.c:zend_ulong_nlz
Unexecuted instantiation: zend_func_info.c:zend_ulong_nlz
Unexecuted instantiation: zend_inference.c:zend_ulong_nlz
Unexecuted instantiation: zend_optimizer.c:zend_ulong_nlz
Unexecuted instantiation: zend_ssa.c:zend_ulong_nlz
Unexecuted instantiation: zend_alloc.c:zend_ulong_nlz
122
123
/* Returns the number of zend_ulong words needed to store a bitset that is N
124
   bits long.  */
125
static inline uint32_t zend_bitset_len(uint32_t n)
126
5.19k
{
127
5.19k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
128
5.19k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_len
Unexecuted instantiation: array.c:zend_bitset_len
Unexecuted instantiation: math.c:zend_bitset_len
Unexecuted instantiation: string.c:zend_bitset_len
block_pass.c:zend_bitset_len
Line
Count
Source
126
422
{
127
422
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
128
422
}
compact_vars.c:zend_bitset_len
Line
Count
Source
126
196
{
127
196
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
128
196
}
dce.c:zend_bitset_len
Line
Count
Source
126
318
{
127
318
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
128
318
}
Unexecuted instantiation: dfa_pass.c:zend_bitset_len
Unexecuted instantiation: escape_analysis.c:zend_bitset_len
optimize_temp_vars_5.c:zend_bitset_len
Line
Count
Source
126
196
{
127
196
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
128
196
}
Unexecuted instantiation: sccp.c:zend_bitset_len
scdf.c:zend_bitset_len
Line
Count
Source
126
636
{
127
636
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
128
636
}
zend_call_graph.c:zend_bitset_len
Line
Count
Source
126
99
{
127
99
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
128
99
}
zend_cfg.c:zend_bitset_len
Line
Count
Source
126
1.52k
{
127
1.52k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
128
1.52k
}
zend_dfg.c:zend_bitset_len
Line
Count
Source
126
159
{
127
159
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
128
159
}
Unexecuted instantiation: zend_dump.c:zend_bitset_len
Unexecuted instantiation: zend_func_info.c:zend_bitset_len
zend_inference.c:zend_bitset_len
Line
Count
Source
126
1.48k
{
127
1.48k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
128
1.48k
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_len
zend_ssa.c:zend_bitset_len
Line
Count
Source
126
159
{
127
159
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
128
159
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_len
129
130
static inline bool zend_bitset_in(zend_bitset set, uint32_t n)
131
2.39M
{
132
2.39M
  return ZEND_BIT_TEST(set, n);
133
2.39M
}
Unexecuted instantiation: zend_jit.c:zend_bitset_in
Unexecuted instantiation: array.c:zend_bitset_in
Unexecuted instantiation: math.c:zend_bitset_in
Unexecuted instantiation: string.c:zend_bitset_in
block_pass.c:zend_bitset_in
Line
Count
Source
131
36.9k
{
132
36.9k
  return ZEND_BIT_TEST(set, n);
133
36.9k
}
compact_vars.c:zend_bitset_in
Line
Count
Source
131
5.90k
{
132
5.90k
  return ZEND_BIT_TEST(set, n);
133
5.90k
}
dce.c:zend_bitset_in
Line
Count
Source
131
33.7k
{
132
33.7k
  return ZEND_BIT_TEST(set, n);
133
33.7k
}
Unexecuted instantiation: dfa_pass.c:zend_bitset_in
Unexecuted instantiation: escape_analysis.c:zend_bitset_in
optimize_temp_vars_5.c:zend_bitset_in
Line
Count
Source
131
2.24M
{
132
2.24M
  return ZEND_BIT_TEST(set, n);
133
2.24M
}
sccp.c:zend_bitset_in
Line
Count
Source
131
8.71k
{
132
8.71k
  return ZEND_BIT_TEST(set, n);
133
8.71k
}
scdf.c:zend_bitset_in
Line
Count
Source
131
20.1k
{
132
20.1k
  return ZEND_BIT_TEST(set, n);
133
20.1k
}
zend_call_graph.c:zend_bitset_in
Line
Count
Source
131
41
{
132
41
  return ZEND_BIT_TEST(set, n);
133
41
}
zend_cfg.c:zend_bitset_in
Line
Count
Source
131
29.0k
{
132
29.0k
  return ZEND_BIT_TEST(set, n);
133
29.0k
}
zend_dfg.c:zend_bitset_in
Line
Count
Source
131
21.3k
{
132
21.3k
  return ZEND_BIT_TEST(set, n);
133
21.3k
}
Unexecuted instantiation: zend_dump.c:zend_bitset_in
Unexecuted instantiation: zend_func_info.c:zend_bitset_in
zend_inference.c:zend_bitset_in
Line
Count
Source
131
989
{
132
989
  return ZEND_BIT_TEST(set, n);
133
989
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_in
zend_ssa.c:zend_bitset_in
Line
Count
Source
131
1.52k
{
132
1.52k
  return ZEND_BIT_TEST(set, n);
133
1.52k
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_in
134
135
static inline void zend_bitset_incl(zend_bitset set, uint32_t n)
136
278k
{
137
278k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
138
278k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_incl
Unexecuted instantiation: array.c:zend_bitset_incl
Unexecuted instantiation: math.c:zend_bitset_incl
Unexecuted instantiation: string.c:zend_bitset_incl
block_pass.c:zend_bitset_incl
Line
Count
Source
136
37.8k
{
137
37.8k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
138
37.8k
}
compact_vars.c:zend_bitset_incl
Line
Count
Source
136
40.3k
{
137
40.3k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
138
40.3k
}
dce.c:zend_bitset_incl
Line
Count
Source
136
22.9k
{
137
22.9k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
138
22.9k
}
Unexecuted instantiation: dfa_pass.c:zend_bitset_incl
Unexecuted instantiation: escape_analysis.c:zend_bitset_incl
optimize_temp_vars_5.c:zend_bitset_incl
Line
Count
Source
136
10.4k
{
137
10.4k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
138
10.4k
}
sccp.c:zend_bitset_incl
Line
Count
Source
136
28.7k
{
137
28.7k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
138
28.7k
}
scdf.c:zend_bitset_incl
Line
Count
Source
136
14.5k
{
137
14.5k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
138
14.5k
}
zend_call_graph.c:zend_bitset_incl
Line
Count
Source
136
41
{
137
41
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
138
41
}
zend_cfg.c:zend_bitset_incl
Line
Count
Source
136
17.8k
{
137
17.8k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
138
17.8k
}
zend_dfg.c:zend_bitset_incl
Line
Count
Source
136
36.8k
{
137
36.8k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
138
36.8k
}
Unexecuted instantiation: zend_dump.c:zend_bitset_incl
Unexecuted instantiation: zend_func_info.c:zend_bitset_incl
zend_inference.c:zend_bitset_incl
Line
Count
Source
136
67.0k
{
137
67.0k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
138
67.0k
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_incl
zend_ssa.c:zend_bitset_incl
Line
Count
Source
136
1.49k
{
137
1.49k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
138
1.49k
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_incl
139
140
static inline void zend_bitset_excl(zend_bitset set, uint32_t n)
141
128k
{
142
128k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
143
128k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_excl
Unexecuted instantiation: array.c:zend_bitset_excl
Unexecuted instantiation: math.c:zend_bitset_excl
Unexecuted instantiation: string.c:zend_bitset_excl
block_pass.c:zend_bitset_excl
Line
Count
Source
141
11.4k
{
142
11.4k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
143
11.4k
}
Unexecuted instantiation: compact_vars.c:zend_bitset_excl
dce.c:zend_bitset_excl
Line
Count
Source
141
30.8k
{
142
30.8k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
143
30.8k
}
Unexecuted instantiation: dfa_pass.c:zend_bitset_excl
Unexecuted instantiation: escape_analysis.c:zend_bitset_excl
optimize_temp_vars_5.c:zend_bitset_excl
Line
Count
Source
141
10.4k
{
142
10.4k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
143
10.4k
}
Unexecuted instantiation: sccp.c:zend_bitset_excl
scdf.c:zend_bitset_excl
Line
Count
Source
141
30.4k
{
142
30.4k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
143
30.4k
}
Unexecuted instantiation: zend_call_graph.c:zend_bitset_excl
Unexecuted instantiation: zend_cfg.c:zend_bitset_excl
zend_dfg.c:zend_bitset_excl
Line
Count
Source
141
4.87k
{
142
4.87k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
143
4.87k
}
Unexecuted instantiation: zend_dump.c:zend_bitset_excl
Unexecuted instantiation: zend_func_info.c:zend_bitset_excl
zend_inference.c:zend_bitset_excl
Line
Count
Source
141
40.8k
{
142
40.8k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
143
40.8k
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_excl
Unexecuted instantiation: zend_ssa.c:zend_bitset_excl
Unexecuted instantiation: zend_alloc.c:zend_bitset_excl
144
145
static inline void zend_bitset_clear(zend_bitset set, uint32_t len)
146
3.75k
{
147
3.75k
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
148
3.75k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_clear
Unexecuted instantiation: array.c:zend_bitset_clear
Unexecuted instantiation: math.c:zend_bitset_clear
Unexecuted instantiation: string.c:zend_bitset_clear
block_pass.c:zend_bitset_clear
Line
Count
Source
146
2.70k
{
147
2.70k
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
148
2.70k
}
compact_vars.c:zend_bitset_clear
Line
Count
Source
146
196
{
147
196
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
148
196
}
Unexecuted instantiation: dce.c:zend_bitset_clear
Unexecuted instantiation: dfa_pass.c:zend_bitset_clear
Unexecuted instantiation: escape_analysis.c:zend_bitset_clear
optimize_temp_vars_5.c:zend_bitset_clear
Line
Count
Source
146
196
{
147
196
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
148
196
}
Unexecuted instantiation: sccp.c:zend_bitset_clear
Unexecuted instantiation: scdf.c:zend_bitset_clear
Unexecuted instantiation: zend_call_graph.c:zend_bitset_clear
zend_cfg.c:zend_bitset_clear
Line
Count
Source
146
107
{
147
107
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
148
107
}
zend_dfg.c:zend_bitset_clear
Line
Count
Source
146
160
{
147
160
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
148
160
}
Unexecuted instantiation: zend_dump.c:zend_bitset_clear
Unexecuted instantiation: zend_func_info.c:zend_bitset_clear
zend_inference.c:zend_bitset_clear
Line
Count
Source
146
231
{
147
231
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
148
231
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_clear
zend_ssa.c:zend_bitset_clear
Line
Count
Source
146
159
{
147
159
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
148
159
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_clear
149
150
static inline bool zend_bitset_empty(zend_bitset set, uint32_t len)
151
34.2k
{
152
34.2k
  uint32_t i;
153
411k
  for (i = 0; i < len; i++) {
154
407k
    if (set[i]) {
155
30.5k
      return 0;
156
30.5k
    }
157
407k
  }
158
3.60k
  return 1;
159
34.2k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_empty
Unexecuted instantiation: array.c:zend_bitset_empty
Unexecuted instantiation: math.c:zend_bitset_empty
Unexecuted instantiation: string.c:zend_bitset_empty
Unexecuted instantiation: block_pass.c:zend_bitset_empty
Unexecuted instantiation: compact_vars.c:zend_bitset_empty
dce.c:zend_bitset_empty
Line
Count
Source
151
404
{
152
404
  uint32_t i;
153
1.82k
  for (i = 0; i < len; i++) {
154
1.47k
    if (set[i]) {
155
56
      return 0;
156
56
    }
157
1.47k
  }
158
348
  return 1;
159
404
}
Unexecuted instantiation: dfa_pass.c:zend_bitset_empty
Unexecuted instantiation: escape_analysis.c:zend_bitset_empty
Unexecuted instantiation: optimize_temp_vars_5.c:zend_bitset_empty
Unexecuted instantiation: sccp.c:zend_bitset_empty
scdf.c:zend_bitset_empty
Line
Count
Source
151
999
{
152
999
  uint32_t i;
153
3.04k
  for (i = 0; i < len; i++) {
154
2.24k
    if (set[i]) {
155
203
      return 0;
156
203
    }
157
2.24k
  }
158
796
  return 1;
159
999
}
Unexecuted instantiation: zend_call_graph.c:zend_bitset_empty
Unexecuted instantiation: zend_cfg.c:zend_bitset_empty
zend_dfg.c:zend_bitset_empty
Line
Count
Source
151
5.02k
{
152
5.02k
  uint32_t i;
153
5.23k
  for (i = 0; i < len; i++) {
154
5.07k
    if (set[i]) {
155
4.87k
      return 0;
156
4.87k
    }
157
5.07k
  }
158
159
  return 1;
159
5.02k
}
Unexecuted instantiation: zend_dump.c:zend_bitset_empty
Unexecuted instantiation: zend_func_info.c:zend_bitset_empty
zend_inference.c:zend_bitset_empty
Line
Count
Source
151
23.8k
{
152
23.8k
  uint32_t i;
153
371k
  for (i = 0; i < len; i++) {
154
371k
    if (set[i]) {
155
23.7k
      return 0;
156
23.7k
    }
157
371k
  }
158
159
  return 1;
159
23.8k
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_empty
zend_ssa.c:zend_bitset_empty
Line
Count
Source
151
3.90k
{
152
3.90k
  uint32_t i;
153
29.8k
  for (i = 0; i < len; i++) {
154
27.7k
    if (set[i]) {
155
1.75k
      return 0;
156
1.75k
    }
157
27.7k
  }
158
2.14k
  return 1;
159
3.90k
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_empty
160
161
static inline void zend_bitset_fill(zend_bitset set, uint32_t len)
162
0
{
163
0
  memset(set, 0xff, len * ZEND_BITSET_ELM_SIZE);
164
0
}
Unexecuted instantiation: zend_jit.c:zend_bitset_fill
Unexecuted instantiation: array.c:zend_bitset_fill
Unexecuted instantiation: math.c:zend_bitset_fill
Unexecuted instantiation: string.c:zend_bitset_fill
Unexecuted instantiation: block_pass.c:zend_bitset_fill
Unexecuted instantiation: compact_vars.c:zend_bitset_fill
Unexecuted instantiation: dce.c:zend_bitset_fill
Unexecuted instantiation: dfa_pass.c:zend_bitset_fill
Unexecuted instantiation: escape_analysis.c:zend_bitset_fill
Unexecuted instantiation: optimize_temp_vars_5.c:zend_bitset_fill
Unexecuted instantiation: sccp.c:zend_bitset_fill
Unexecuted instantiation: scdf.c:zend_bitset_fill
Unexecuted instantiation: zend_call_graph.c:zend_bitset_fill
Unexecuted instantiation: zend_cfg.c:zend_bitset_fill
Unexecuted instantiation: zend_dfg.c:zend_bitset_fill
Unexecuted instantiation: zend_dump.c:zend_bitset_fill
Unexecuted instantiation: zend_func_info.c:zend_bitset_fill
Unexecuted instantiation: zend_inference.c:zend_bitset_fill
Unexecuted instantiation: zend_optimizer.c:zend_bitset_fill
Unexecuted instantiation: zend_ssa.c:zend_bitset_fill
Unexecuted instantiation: zend_alloc.c:zend_bitset_fill
165
166
static inline bool zend_bitset_equal(zend_bitset set1, zend_bitset set2, uint32_t len)
167
4.87k
{
168
4.87k
    return memcmp(set1, set2, len * ZEND_BITSET_ELM_SIZE) == 0;
169
4.87k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_equal
Unexecuted instantiation: array.c:zend_bitset_equal
Unexecuted instantiation: math.c:zend_bitset_equal
Unexecuted instantiation: string.c:zend_bitset_equal
Unexecuted instantiation: block_pass.c:zend_bitset_equal
Unexecuted instantiation: compact_vars.c:zend_bitset_equal
Unexecuted instantiation: dce.c:zend_bitset_equal
Unexecuted instantiation: dfa_pass.c:zend_bitset_equal
Unexecuted instantiation: escape_analysis.c:zend_bitset_equal
Unexecuted instantiation: optimize_temp_vars_5.c:zend_bitset_equal
Unexecuted instantiation: sccp.c:zend_bitset_equal
Unexecuted instantiation: scdf.c:zend_bitset_equal
Unexecuted instantiation: zend_call_graph.c:zend_bitset_equal
Unexecuted instantiation: zend_cfg.c:zend_bitset_equal
zend_dfg.c:zend_bitset_equal
Line
Count
Source
167
4.87k
{
168
4.87k
    return memcmp(set1, set2, len * ZEND_BITSET_ELM_SIZE) == 0;
169
4.87k
}
Unexecuted instantiation: zend_dump.c:zend_bitset_equal
Unexecuted instantiation: zend_func_info.c:zend_bitset_equal
Unexecuted instantiation: zend_inference.c:zend_bitset_equal
Unexecuted instantiation: zend_optimizer.c:zend_bitset_equal
Unexecuted instantiation: zend_ssa.c:zend_bitset_equal
Unexecuted instantiation: zend_alloc.c:zend_bitset_equal
170
171
static inline void zend_bitset_copy(zend_bitset set1, zend_bitset set2, uint32_t len)
172
11.6k
{
173
11.6k
    memcpy(set1, set2, len * ZEND_BITSET_ELM_SIZE);
174
11.6k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_copy
Unexecuted instantiation: array.c:zend_bitset_copy
Unexecuted instantiation: math.c:zend_bitset_copy
Unexecuted instantiation: string.c:zend_bitset_copy
block_pass.c:zend_bitset_copy
Line
Count
Source
172
2.47k
{
173
2.47k
    memcpy(set1, set2, len * ZEND_BITSET_ELM_SIZE);
174
2.47k
}
Unexecuted instantiation: compact_vars.c:zend_bitset_copy
Unexecuted instantiation: dce.c:zend_bitset_copy
Unexecuted instantiation: dfa_pass.c:zend_bitset_copy
Unexecuted instantiation: escape_analysis.c:zend_bitset_copy
Unexecuted instantiation: optimize_temp_vars_5.c:zend_bitset_copy
Unexecuted instantiation: sccp.c:zend_bitset_copy
Unexecuted instantiation: scdf.c:zend_bitset_copy
Unexecuted instantiation: zend_call_graph.c:zend_bitset_copy
Unexecuted instantiation: zend_cfg.c:zend_bitset_copy
zend_dfg.c:zend_bitset_copy
Line
Count
Source
172
9.17k
{
173
9.17k
    memcpy(set1, set2, len * ZEND_BITSET_ELM_SIZE);
174
9.17k
}
Unexecuted instantiation: zend_dump.c:zend_bitset_copy
Unexecuted instantiation: zend_func_info.c:zend_bitset_copy
Unexecuted instantiation: zend_inference.c:zend_bitset_copy
Unexecuted instantiation: zend_optimizer.c:zend_bitset_copy
Unexecuted instantiation: zend_ssa.c:zend_bitset_copy
Unexecuted instantiation: zend_alloc.c:zend_bitset_copy
175
176
static inline void zend_bitset_intersection(zend_bitset set1, zend_bitset set2, uint32_t len)
177
0
{
178
0
    uint32_t i;
179
180
0
    for (i = 0; i < len; i++) {
181
0
    set1[i] &= set2[i];
182
0
  }
183
0
}
Unexecuted instantiation: zend_jit.c:zend_bitset_intersection
Unexecuted instantiation: array.c:zend_bitset_intersection
Unexecuted instantiation: math.c:zend_bitset_intersection
Unexecuted instantiation: string.c:zend_bitset_intersection
Unexecuted instantiation: block_pass.c:zend_bitset_intersection
Unexecuted instantiation: compact_vars.c:zend_bitset_intersection
Unexecuted instantiation: dce.c:zend_bitset_intersection
Unexecuted instantiation: dfa_pass.c:zend_bitset_intersection
Unexecuted instantiation: escape_analysis.c:zend_bitset_intersection
Unexecuted instantiation: optimize_temp_vars_5.c:zend_bitset_intersection
Unexecuted instantiation: sccp.c:zend_bitset_intersection
Unexecuted instantiation: scdf.c:zend_bitset_intersection
Unexecuted instantiation: zend_call_graph.c:zend_bitset_intersection
Unexecuted instantiation: zend_cfg.c:zend_bitset_intersection
Unexecuted instantiation: zend_dfg.c:zend_bitset_intersection
Unexecuted instantiation: zend_dump.c:zend_bitset_intersection
Unexecuted instantiation: zend_func_info.c:zend_bitset_intersection
Unexecuted instantiation: zend_inference.c:zend_bitset_intersection
Unexecuted instantiation: zend_optimizer.c:zend_bitset_intersection
Unexecuted instantiation: zend_ssa.c:zend_bitset_intersection
Unexecuted instantiation: zend_alloc.c:zend_bitset_intersection
184
185
static inline void zend_bitset_union(zend_bitset set1, zend_bitset set2, uint32_t len)
186
5.99k
{
187
5.99k
  uint32_t i;
188
189
82.7k
  for (i = 0; i < len; i++) {
190
76.7k
    set1[i] |= set2[i];
191
76.7k
  }
192
5.99k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_union
Unexecuted instantiation: array.c:zend_bitset_union
Unexecuted instantiation: math.c:zend_bitset_union
Unexecuted instantiation: string.c:zend_bitset_union
block_pass.c:zend_bitset_union
Line
Count
Source
186
1.95k
{
187
1.95k
  uint32_t i;
188
189
26.7k
  for (i = 0; i < len; i++) {
190
24.8k
    set1[i] |= set2[i];
191
24.8k
  }
192
1.95k
}
Unexecuted instantiation: compact_vars.c:zend_bitset_union
Unexecuted instantiation: dce.c:zend_bitset_union
Unexecuted instantiation: dfa_pass.c:zend_bitset_union
Unexecuted instantiation: escape_analysis.c:zend_bitset_union
Unexecuted instantiation: optimize_temp_vars_5.c:zend_bitset_union
Unexecuted instantiation: sccp.c:zend_bitset_union
Unexecuted instantiation: scdf.c:zend_bitset_union
Unexecuted instantiation: zend_call_graph.c:zend_bitset_union
Unexecuted instantiation: zend_cfg.c:zend_bitset_union
zend_dfg.c:zend_bitset_union
Line
Count
Source
186
2.29k
{
187
2.29k
  uint32_t i;
188
189
29.8k
  for (i = 0; i < len; i++) {
190
27.5k
    set1[i] |= set2[i];
191
27.5k
  }
192
2.29k
}
Unexecuted instantiation: zend_dump.c:zend_bitset_union
Unexecuted instantiation: zend_func_info.c:zend_bitset_union
Unexecuted instantiation: zend_inference.c:zend_bitset_union
Unexecuted instantiation: zend_optimizer.c:zend_bitset_union
zend_ssa.c:zend_bitset_union
Line
Count
Source
186
1.74k
{
187
1.74k
  uint32_t i;
188
189
26.0k
  for (i = 0; i < len; i++) {
190
24.3k
    set1[i] |= set2[i];
191
24.3k
  }
192
1.74k
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_union
193
194
static inline void zend_bitset_difference(zend_bitset set1, zend_bitset set2, uint32_t len)
195
0
{
196
0
  uint32_t i;
197
0
198
0
  for (i = 0; i < len; i++) {
199
0
    set1[i] = set1[i] & ~set2[i];
200
0
  }
201
0
}
Unexecuted instantiation: zend_jit.c:zend_bitset_difference
Unexecuted instantiation: array.c:zend_bitset_difference
Unexecuted instantiation: math.c:zend_bitset_difference
Unexecuted instantiation: string.c:zend_bitset_difference
Unexecuted instantiation: block_pass.c:zend_bitset_difference
Unexecuted instantiation: compact_vars.c:zend_bitset_difference
Unexecuted instantiation: dce.c:zend_bitset_difference
Unexecuted instantiation: dfa_pass.c:zend_bitset_difference
Unexecuted instantiation: escape_analysis.c:zend_bitset_difference
Unexecuted instantiation: optimize_temp_vars_5.c:zend_bitset_difference
Unexecuted instantiation: sccp.c:zend_bitset_difference
Unexecuted instantiation: scdf.c:zend_bitset_difference
Unexecuted instantiation: zend_call_graph.c:zend_bitset_difference
Unexecuted instantiation: zend_cfg.c:zend_bitset_difference
Unexecuted instantiation: zend_dfg.c:zend_bitset_difference
Unexecuted instantiation: zend_dump.c:zend_bitset_difference
Unexecuted instantiation: zend_func_info.c:zend_bitset_difference
Unexecuted instantiation: zend_inference.c:zend_bitset_difference
Unexecuted instantiation: zend_optimizer.c:zend_bitset_difference
Unexecuted instantiation: zend_ssa.c:zend_bitset_difference
Unexecuted instantiation: zend_alloc.c:zend_bitset_difference
202
203
static inline void zend_bitset_union_with_intersection(zend_bitset set1, zend_bitset set2, zend_bitset set3, zend_bitset set4, uint32_t len)
204
5.36k
{
205
5.36k
  uint32_t i;
206
207
66.6k
  for (i = 0; i < len; i++) {
208
61.2k
    set1[i] = set2[i] | (set3[i] & set4[i]);
209
61.2k
  }
210
5.36k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_union_with_intersection
Unexecuted instantiation: array.c:zend_bitset_union_with_intersection
Unexecuted instantiation: math.c:zend_bitset_union_with_intersection
Unexecuted instantiation: string.c:zend_bitset_union_with_intersection
Unexecuted instantiation: block_pass.c:zend_bitset_union_with_intersection
Unexecuted instantiation: compact_vars.c:zend_bitset_union_with_intersection
Unexecuted instantiation: dce.c:zend_bitset_union_with_intersection
Unexecuted instantiation: dfa_pass.c:zend_bitset_union_with_intersection
Unexecuted instantiation: escape_analysis.c:zend_bitset_union_with_intersection
Unexecuted instantiation: optimize_temp_vars_5.c:zend_bitset_union_with_intersection
Unexecuted instantiation: sccp.c:zend_bitset_union_with_intersection
Unexecuted instantiation: scdf.c:zend_bitset_union_with_intersection
Unexecuted instantiation: zend_call_graph.c:zend_bitset_union_with_intersection
Unexecuted instantiation: zend_cfg.c:zend_bitset_union_with_intersection
Unexecuted instantiation: zend_dfg.c:zend_bitset_union_with_intersection
Unexecuted instantiation: zend_dump.c:zend_bitset_union_with_intersection
Unexecuted instantiation: zend_func_info.c:zend_bitset_union_with_intersection
Unexecuted instantiation: zend_inference.c:zend_bitset_union_with_intersection
Unexecuted instantiation: zend_optimizer.c:zend_bitset_union_with_intersection
zend_ssa.c:zend_bitset_union_with_intersection
Line
Count
Source
204
5.36k
{
205
5.36k
  uint32_t i;
206
207
66.6k
  for (i = 0; i < len; i++) {
208
61.2k
    set1[i] = set2[i] | (set3[i] & set4[i]);
209
61.2k
  }
210
5.36k
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_union_with_intersection
211
212
static inline void zend_bitset_union_with_difference(zend_bitset set1, zend_bitset set2, zend_bitset set3, zend_bitset set4, uint32_t len)
213
4.87k
{
214
4.87k
  uint32_t i;
215
216
60.5k
  for (i = 0; i < len; i++) {
217
55.6k
    set1[i] = set2[i] | (set3[i] & ~set4[i]);
218
55.6k
  }
219
4.87k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_union_with_difference
Unexecuted instantiation: array.c:zend_bitset_union_with_difference
Unexecuted instantiation: math.c:zend_bitset_union_with_difference
Unexecuted instantiation: string.c:zend_bitset_union_with_difference
Unexecuted instantiation: block_pass.c:zend_bitset_union_with_difference
Unexecuted instantiation: compact_vars.c:zend_bitset_union_with_difference
Unexecuted instantiation: dce.c:zend_bitset_union_with_difference
Unexecuted instantiation: dfa_pass.c:zend_bitset_union_with_difference
Unexecuted instantiation: escape_analysis.c:zend_bitset_union_with_difference
Unexecuted instantiation: optimize_temp_vars_5.c:zend_bitset_union_with_difference
Unexecuted instantiation: sccp.c:zend_bitset_union_with_difference
Unexecuted instantiation: scdf.c:zend_bitset_union_with_difference
Unexecuted instantiation: zend_call_graph.c:zend_bitset_union_with_difference
Unexecuted instantiation: zend_cfg.c:zend_bitset_union_with_difference
zend_dfg.c:zend_bitset_union_with_difference
Line
Count
Source
213
4.87k
{
214
4.87k
  uint32_t i;
215
216
60.5k
  for (i = 0; i < len; i++) {
217
55.6k
    set1[i] = set2[i] | (set3[i] & ~set4[i]);
218
55.6k
  }
219
4.87k
}
Unexecuted instantiation: zend_dump.c:zend_bitset_union_with_difference
Unexecuted instantiation: zend_func_info.c:zend_bitset_union_with_difference
Unexecuted instantiation: zend_inference.c:zend_bitset_union_with_difference
Unexecuted instantiation: zend_optimizer.c:zend_bitset_union_with_difference
Unexecuted instantiation: zend_ssa.c:zend_bitset_union_with_difference
Unexecuted instantiation: zend_alloc.c:zend_bitset_union_with_difference
220
221
static inline bool zend_bitset_subset(zend_bitset set1, zend_bitset set2, uint32_t len)
222
3.56k
{
223
3.56k
  uint32_t i;
224
225
28.7k
  for (i = 0; i < len; i++) {
226
26.9k
    if (set1[i] & ~set2[i]) {
227
1.74k
      return 0;
228
1.74k
    }
229
26.9k
  }
230
1.82k
  return 1;
231
3.56k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_subset
Unexecuted instantiation: array.c:zend_bitset_subset
Unexecuted instantiation: math.c:zend_bitset_subset
Unexecuted instantiation: string.c:zend_bitset_subset
Unexecuted instantiation: block_pass.c:zend_bitset_subset
Unexecuted instantiation: compact_vars.c:zend_bitset_subset
Unexecuted instantiation: dce.c:zend_bitset_subset
Unexecuted instantiation: dfa_pass.c:zend_bitset_subset
Unexecuted instantiation: escape_analysis.c:zend_bitset_subset
Unexecuted instantiation: optimize_temp_vars_5.c:zend_bitset_subset
Unexecuted instantiation: sccp.c:zend_bitset_subset
Unexecuted instantiation: scdf.c:zend_bitset_subset
Unexecuted instantiation: zend_call_graph.c:zend_bitset_subset
Unexecuted instantiation: zend_cfg.c:zend_bitset_subset
Unexecuted instantiation: zend_dfg.c:zend_bitset_subset
Unexecuted instantiation: zend_dump.c:zend_bitset_subset
Unexecuted instantiation: zend_func_info.c:zend_bitset_subset
Unexecuted instantiation: zend_inference.c:zend_bitset_subset
Unexecuted instantiation: zend_optimizer.c:zend_bitset_subset
zend_ssa.c:zend_bitset_subset
Line
Count
Source
222
3.56k
{
223
3.56k
  uint32_t i;
224
225
28.7k
  for (i = 0; i < len; i++) {
226
26.9k
    if (set1[i] & ~set2[i]) {
227
1.74k
      return 0;
228
1.74k
    }
229
26.9k
  }
230
1.82k
  return 1;
231
3.56k
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_subset
232
233
static inline int zend_bitset_first(zend_bitset set, uint32_t len)
234
33.7k
{
235
33.7k
  uint32_t i;
236
237
486k
  for (i = 0; i < len; i++) {
238
485k
    if (set[i]) {
239
32.8k
      return ZEND_BITSET_ELM_SIZE * 8 * i + zend_ulong_ntz(set[i]);
240
32.8k
    }
241
485k
  }
242
880
  return -1; /* empty set */
243
33.7k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_first
Unexecuted instantiation: array.c:zend_bitset_first
Unexecuted instantiation: math.c:zend_bitset_first
Unexecuted instantiation: string.c:zend_bitset_first
Unexecuted instantiation: block_pass.c:zend_bitset_first
Unexecuted instantiation: compact_vars.c:zend_bitset_first
dce.c:zend_bitset_first
Line
Count
Source
234
5.19k
{
235
5.19k
  uint32_t i;
236
237
97.9k
  for (i = 0; i < len; i++) {
238
97.6k
    if (set[i]) {
239
4.92k
      return ZEND_BITSET_ELM_SIZE * 8 * i + zend_ulong_ntz(set[i]);
240
4.92k
    }
241
97.6k
  }
242
271
  return -1; /* empty set */
243
5.19k
}
Unexecuted instantiation: dfa_pass.c:zend_bitset_first
Unexecuted instantiation: escape_analysis.c:zend_bitset_first
Unexecuted instantiation: optimize_temp_vars_5.c:zend_bitset_first
Unexecuted instantiation: sccp.c:zend_bitset_first
scdf.c:zend_bitset_first
Line
Count
Source
234
4.85k
{
235
4.85k
  uint32_t i;
236
237
17.7k
  for (i = 0; i < len; i++) {
238
17.0k
    if (set[i]) {
239
4.24k
      return ZEND_BITSET_ELM_SIZE * 8 * i + zend_ulong_ntz(set[i]);
240
4.24k
    }
241
17.0k
  }
242
609
  return -1; /* empty set */
243
4.85k
}
Unexecuted instantiation: zend_call_graph.c:zend_bitset_first
Unexecuted instantiation: zend_cfg.c:zend_bitset_first
Unexecuted instantiation: zend_dfg.c:zend_bitset_first
Unexecuted instantiation: zend_dump.c:zend_bitset_first
Unexecuted instantiation: zend_func_info.c:zend_bitset_first
zend_inference.c:zend_bitset_first
Line
Count
Source
234
23.7k
{
235
23.7k
  uint32_t i;
236
237
370k
  for (i = 0; i < len; i++) {
238
370k
    if (set[i]) {
239
23.7k
      return ZEND_BITSET_ELM_SIZE * 8 * i + zend_ulong_ntz(set[i]);
240
23.7k
    }
241
370k
  }
242
0
  return -1; /* empty set */
243
23.7k
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_first
Unexecuted instantiation: zend_ssa.c:zend_bitset_first
Unexecuted instantiation: zend_alloc.c:zend_bitset_first
244
245
static inline int zend_bitset_last(zend_bitset set, uint32_t len)
246
4.87k
{
247
4.87k
  uint32_t i = len;
248
249
18.8k
  while (i > 0) {
250
18.8k
    i--;
251
18.8k
    if (set[i]) {
252
4.87k
      int j = ZEND_BITSET_ELM_SIZE * 8 * i - 1;
253
4.87k
      zend_ulong x = set[i];
254
143k
      while (x != Z_UL(0)) {
255
138k
        x = x >> Z_UL(1);
256
138k
        j++;
257
138k
      }
258
4.87k
      return j;
259
4.87k
    }
260
18.8k
  }
261
0
  return -1; /* empty set */
262
4.87k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_last
Unexecuted instantiation: array.c:zend_bitset_last
Unexecuted instantiation: math.c:zend_bitset_last
Unexecuted instantiation: string.c:zend_bitset_last
Unexecuted instantiation: block_pass.c:zend_bitset_last
Unexecuted instantiation: compact_vars.c:zend_bitset_last
Unexecuted instantiation: dce.c:zend_bitset_last
Unexecuted instantiation: dfa_pass.c:zend_bitset_last
Unexecuted instantiation: escape_analysis.c:zend_bitset_last
Unexecuted instantiation: optimize_temp_vars_5.c:zend_bitset_last
Unexecuted instantiation: sccp.c:zend_bitset_last
Unexecuted instantiation: scdf.c:zend_bitset_last
Unexecuted instantiation: zend_call_graph.c:zend_bitset_last
Unexecuted instantiation: zend_cfg.c:zend_bitset_last
zend_dfg.c:zend_bitset_last
Line
Count
Source
246
4.87k
{
247
4.87k
  uint32_t i = len;
248
249
18.8k
  while (i > 0) {
250
18.8k
    i--;
251
18.8k
    if (set[i]) {
252
4.87k
      int j = ZEND_BITSET_ELM_SIZE * 8 * i - 1;
253
4.87k
      zend_ulong x = set[i];
254
143k
      while (x != Z_UL(0)) {
255
138k
        x = x >> Z_UL(1);
256
138k
        j++;
257
138k
      }
258
4.87k
      return j;
259
4.87k
    }
260
18.8k
  }
261
0
  return -1; /* empty set */
262
4.87k
}
Unexecuted instantiation: zend_dump.c:zend_bitset_last
Unexecuted instantiation: zend_func_info.c:zend_bitset_last
Unexecuted instantiation: zend_inference.c:zend_bitset_last
Unexecuted instantiation: zend_optimizer.c:zend_bitset_last
Unexecuted instantiation: zend_ssa.c:zend_bitset_last
Unexecuted instantiation: zend_alloc.c:zend_bitset_last
263
264
7.89k
#define ZEND_BITSET_FOREACH(set, len, bit) do { \
265
7.89k
  zend_bitset _set = (set); \
266
7.89k
  uint32_t _i, _len = (len); \
267
110k
  for (_i = 0; _i < _len; _i++) { \
268
102k
    zend_ulong _x = _set[_i]; \
269
102k
    if (_x) { \
270
6.41k
      (bit) = ZEND_BITSET_ELM_SIZE * 8 * _i; \
271
230k
      for (; _x != 0; _x >>= Z_UL(1), (bit)++) { \
272
224k
        if (!(_x & Z_UL(1))) continue;
273
274
1.75k
#define ZEND_BITSET_REVERSE_FOREACH(set, len, bit) do { \
275
1.75k
  zend_bitset _set = (set); \
276
1.75k
  uint32_t _i = (len); \
277
1.75k
  zend_ulong _test = Z_UL(1) << (ZEND_BITSET_ELM_SIZE * 8 - 1); \
278
26.1k
  while (_i-- > 0) { \
279
24.3k
    zend_ulong _x = _set[_i]; \
280
24.3k
    if (_x) { \
281
2.95k
      (bit) = ZEND_BITSET_ELM_SIZE * 8 * (_i + 1) - 1; \
282
143k
      for (; _x != 0; _x <<= Z_UL(1), (bit)--) { \
283
140k
        if (!(_x & _test)) continue; \
284
285
#define ZEND_BITSET_FOREACH_END() \
286
21.3k
      } \
287
9.36k
    } \
288
126k
  } \
289
9.65k
} while (0)
290
291
10.0k
static inline int zend_bitset_pop_first(zend_bitset set, uint32_t len) {
292
10.0k
  int i = zend_bitset_first(set, len);
293
10.0k
  if (i >= 0) {
294
9.16k
    zend_bitset_excl(set, i);
295
9.16k
  }
296
10.0k
  return i;
297
10.0k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_pop_first
Unexecuted instantiation: array.c:zend_bitset_pop_first
Unexecuted instantiation: math.c:zend_bitset_pop_first
Unexecuted instantiation: string.c:zend_bitset_pop_first
Unexecuted instantiation: block_pass.c:zend_bitset_pop_first
Unexecuted instantiation: compact_vars.c:zend_bitset_pop_first
dce.c:zend_bitset_pop_first
Line
Count
Source
291
5.19k
static inline int zend_bitset_pop_first(zend_bitset set, uint32_t len) {
292
5.19k
  int i = zend_bitset_first(set, len);
293
5.19k
  if (i >= 0) {
294
4.92k
    zend_bitset_excl(set, i);
295
4.92k
  }
296
5.19k
  return i;
297
5.19k
}
Unexecuted instantiation: dfa_pass.c:zend_bitset_pop_first
Unexecuted instantiation: escape_analysis.c:zend_bitset_pop_first
Unexecuted instantiation: optimize_temp_vars_5.c:zend_bitset_pop_first
Unexecuted instantiation: sccp.c:zend_bitset_pop_first
scdf.c:zend_bitset_pop_first
Line
Count
Source
291
4.85k
static inline int zend_bitset_pop_first(zend_bitset set, uint32_t len) {
292
4.85k
  int i = zend_bitset_first(set, len);
293
4.85k
  if (i >= 0) {
294
4.24k
    zend_bitset_excl(set, i);
295
4.24k
  }
296
4.85k
  return i;
297
4.85k
}
Unexecuted instantiation: zend_call_graph.c:zend_bitset_pop_first
Unexecuted instantiation: zend_cfg.c:zend_bitset_pop_first
Unexecuted instantiation: zend_dfg.c:zend_bitset_pop_first
Unexecuted instantiation: zend_dump.c:zend_bitset_pop_first
Unexecuted instantiation: zend_func_info.c:zend_bitset_pop_first
Unexecuted instantiation: zend_inference.c:zend_bitset_pop_first
Unexecuted instantiation: zend_optimizer.c:zend_bitset_pop_first
Unexecuted instantiation: zend_ssa.c:zend_bitset_pop_first
Unexecuted instantiation: zend_alloc.c:zend_bitset_pop_first
298
299
#endif /* _ZEND_BITSET_H_ */