Coverage Report

Created: 2026-10-28 06:20

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 © The PHP Group and Contributors.                          |
6
   +----------------------------------------------------------------------+
7
   | This source file is subject to the Modified BSD License that is      |
8
   | bundled with this package in the file LICENSE, and is available      |
9
   | through the World Wide Web at <https://www.php.net/license/>.        |
10
   |                                                                      |
11
   | SPDX-License-Identifier: BSD-3-Clause                                |
12
   +----------------------------------------------------------------------+
13
   | Authors: Dmitry Stogov <dmitry@php.net>                              |
14
   +----------------------------------------------------------------------+
15
*/
16
17
#ifndef _ZEND_BITSET_H_
18
#define _ZEND_BITSET_H_
19
20
#include <stdint.h>
21
#include <stdbool.h>
22
#include <string.h>
23
24
#include "zend_portability.h"
25
#include "zend_long.h"
26
27
typedef zend_ulong *zend_bitset;
28
29
518k
#define ZEND_BITSET_ELM_SIZE sizeof(zend_ulong)
30
31
#if SIZEOF_ZEND_LONG == 4
32
# define ZEND_BITSET_ELM_NUM(n)   ((n) >> 5)
33
# define ZEND_BITSET_BIT_NUM(n)   ((zend_ulong)(n) & Z_UL(0x1f))
34
#elif SIZEOF_ZEND_LONG == 8
35
1.45M
# define ZEND_BITSET_ELM_NUM(n)   ((n) >> 6)
36
1.45M
# define ZEND_BITSET_BIT_NUM(n)   ((zend_ulong)(n) & Z_UL(0x3f))
37
#else
38
# define ZEND_BITSET_ELM_NUM(n)   ((n) / (sizeof(zend_long) * 8))
39
# define ZEND_BITSET_BIT_NUM(n)   ((n) % (sizeof(zend_long) * 8))
40
#endif
41
42
#define ZEND_BITSET_ALLOCA(n, use_heap) \
43
108k
  (zend_bitset)do_alloca((n) * ZEND_BITSET_ELM_SIZE, use_heap)
44
45
/* Number of trailing zero bits (0x01 -> 0; 0x40 -> 6; 0x00 -> LEN) */
46
ZEND_ATTRIBUTE_CONST static zend_always_inline int zend_ulong_ntz(zend_ulong num)
47
105k
{
48
105k
#if (defined(__GNUC__) || __has_builtin(__builtin_ctzl)) \
49
105k
  && SIZEOF_ZEND_LONG == SIZEOF_LONG && defined(PHP_HAVE_BUILTIN_CTZL)
50
105k
  return __builtin_ctzl(num);
51
#elif (defined(__GNUC__) || __has_builtin(__builtin_ctzll)) && defined(PHP_HAVE_BUILTIN_CTZLL)
52
  return __builtin_ctzll(num);
53
#elif defined(_WIN32)
54
  unsigned long index;
55
56
#if defined(_WIN64)
57
  if (!BitScanForward64(&index, num)) {
58
#else
59
  if (!BitScanForward(&index, num)) {
60
#endif
61
    return SIZEOF_ZEND_LONG * 8;
62
  }
63
64
  return (int) index;
65
#else
66
  int n;
67
68
  if (num == Z_UL(0)) return SIZEOF_ZEND_LONG * 8;
69
70
  n = 1;
71
#if SIZEOF_ZEND_LONG == 8
72
  if ((num & 0xffffffff) == 0) {n += 32; num = num >> Z_UL(32);}
73
#endif
74
  if ((num & 0x0000ffff) == 0) {n += 16; num = num >> 16;}
75
  if ((num & 0x000000ff) == 0) {n +=  8; num = num >>  8;}
76
  if ((num & 0x0000000f) == 0) {n +=  4; num = num >>  4;}
77
  if ((num & 0x00000003) == 0) {n +=  2; num = num >>  2;}
78
  return n - (num & 1);
79
#endif
80
105k
}
Unexecuted instantiation: zend_jit.c:zend_ulong_ntz
Unexecuted instantiation: array.c:zend_ulong_ntz
html.c:zend_ulong_ntz
Line
Count
Source
47
2
{
48
2
#if (defined(__GNUC__) || __has_builtin(__builtin_ctzl)) \
49
2
  && SIZEOF_ZEND_LONG == SIZEOF_LONG && defined(PHP_HAVE_BUILTIN_CTZL)
50
2
  return __builtin_ctzl(num);
51
#elif (defined(__GNUC__) || __has_builtin(__builtin_ctzll)) && defined(PHP_HAVE_BUILTIN_CTZLL)
52
  return __builtin_ctzll(num);
53
#elif defined(_WIN32)
54
  unsigned long index;
55
56
#if defined(_WIN64)
57
  if (!BitScanForward64(&index, num)) {
58
#else
59
  if (!BitScanForward(&index, num)) {
60
#endif
61
    return SIZEOF_ZEND_LONG * 8;
62
  }
63
64
  return (int) index;
65
#else
66
  int n;
67
68
  if (num == Z_UL(0)) return SIZEOF_ZEND_LONG * 8;
69
70
  n = 1;
71
#if SIZEOF_ZEND_LONG == 8
72
  if ((num & 0xffffffff) == 0) {n += 32; num = num >> Z_UL(32);}
73
#endif
74
  if ((num & 0x0000ffff) == 0) {n += 16; num = num >> 16;}
75
  if ((num & 0x000000ff) == 0) {n +=  8; num = num >>  8;}
76
  if ((num & 0x0000000f) == 0) {n +=  4; num = num >>  4;}
77
  if ((num & 0x00000003) == 0) {n +=  2; num = num >>  2;}
78
  return n - (num & 1);
79
#endif
80
2
}
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
47
1.95k
{
48
1.95k
#if (defined(__GNUC__) || __has_builtin(__builtin_ctzl)) \
49
1.95k
  && SIZEOF_ZEND_LONG == SIZEOF_LONG && defined(PHP_HAVE_BUILTIN_CTZL)
50
1.95k
  return __builtin_ctzl(num);
51
#elif (defined(__GNUC__) || __has_builtin(__builtin_ctzll)) && defined(PHP_HAVE_BUILTIN_CTZLL)
52
  return __builtin_ctzll(num);
53
#elif defined(_WIN32)
54
  unsigned long index;
55
56
#if defined(_WIN64)
57
  if (!BitScanForward64(&index, num)) {
58
#else
59
  if (!BitScanForward(&index, num)) {
60
#endif
61
    return SIZEOF_ZEND_LONG * 8;
62
  }
63
64
  return (int) index;
65
#else
66
  int n;
67
68
  if (num == Z_UL(0)) return SIZEOF_ZEND_LONG * 8;
69
70
  n = 1;
71
#if SIZEOF_ZEND_LONG == 8
72
  if ((num & 0xffffffff) == 0) {n += 32; num = num >> Z_UL(32);}
73
#endif
74
  if ((num & 0x0000ffff) == 0) {n += 16; num = num >> 16;}
75
  if ((num & 0x000000ff) == 0) {n +=  8; num = num >>  8;}
76
  if ((num & 0x0000000f) == 0) {n +=  4; num = num >>  4;}
77
  if ((num & 0x00000003) == 0) {n +=  2; num = num >>  2;}
78
  return n - (num & 1);
79
#endif
80
1.95k
}
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
47
31.0k
{
48
31.0k
#if (defined(__GNUC__) || __has_builtin(__builtin_ctzl)) \
49
31.0k
  && SIZEOF_ZEND_LONG == SIZEOF_LONG && defined(PHP_HAVE_BUILTIN_CTZL)
50
31.0k
  return __builtin_ctzl(num);
51
#elif (defined(__GNUC__) || __has_builtin(__builtin_ctzll)) && defined(PHP_HAVE_BUILTIN_CTZLL)
52
  return __builtin_ctzll(num);
53
#elif defined(_WIN32)
54
  unsigned long index;
55
56
#if defined(_WIN64)
57
  if (!BitScanForward64(&index, num)) {
58
#else
59
  if (!BitScanForward(&index, num)) {
60
#endif
61
    return SIZEOF_ZEND_LONG * 8;
62
  }
63
64
  return (int) index;
65
#else
66
  int n;
67
68
  if (num == Z_UL(0)) return SIZEOF_ZEND_LONG * 8;
69
70
  n = 1;
71
#if SIZEOF_ZEND_LONG == 8
72
  if ((num & 0xffffffff) == 0) {n += 32; num = num >> Z_UL(32);}
73
#endif
74
  if ((num & 0x0000ffff) == 0) {n += 16; num = num >> 16;}
75
  if ((num & 0x000000ff) == 0) {n +=  8; num = num >>  8;}
76
  if ((num & 0x0000000f) == 0) {n +=  4; num = num >>  4;}
77
  if ((num & 0x00000003) == 0) {n +=  2; num = num >>  2;}
78
  return n - (num & 1);
79
#endif
80
31.0k
}
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
47
72.3k
{
48
72.3k
#if (defined(__GNUC__) || __has_builtin(__builtin_ctzl)) \
49
72.3k
  && SIZEOF_ZEND_LONG == SIZEOF_LONG && defined(PHP_HAVE_BUILTIN_CTZL)
50
72.3k
  return __builtin_ctzl(num);
51
#elif (defined(__GNUC__) || __has_builtin(__builtin_ctzll)) && defined(PHP_HAVE_BUILTIN_CTZLL)
52
  return __builtin_ctzll(num);
53
#elif defined(_WIN32)
54
  unsigned long index;
55
56
#if defined(_WIN64)
57
  if (!BitScanForward64(&index, num)) {
58
#else
59
  if (!BitScanForward(&index, num)) {
60
#endif
61
    return SIZEOF_ZEND_LONG * 8;
62
  }
63
64
  return (int) index;
65
#else
66
  int n;
67
68
  if (num == Z_UL(0)) return SIZEOF_ZEND_LONG * 8;
69
70
  n = 1;
71
#if SIZEOF_ZEND_LONG == 8
72
  if ((num & 0xffffffff) == 0) {n += 32; num = num >> Z_UL(32);}
73
#endif
74
  if ((num & 0x0000ffff) == 0) {n += 16; num = num >> 16;}
75
  if ((num & 0x000000ff) == 0) {n +=  8; num = num >>  8;}
76
  if ((num & 0x0000000f) == 0) {n +=  4; num = num >>  4;}
77
  if ((num & 0x00000003) == 0) {n +=  2; num = num >>  2;}
78
  return n - (num & 1);
79
#endif
80
72.3k
}
Unexecuted instantiation: zend_optimizer.c:zend_ulong_ntz
Unexecuted instantiation: zend_ssa.c:zend_ulong_ntz
Unexecuted instantiation: zend_alloc.c:zend_ulong_ntz
81
82
/* Number of leading zero bits (Undefined for zero) */
83
ZEND_ATTRIBUTE_CONST static zend_always_inline int zend_ulong_nlz(zend_ulong num)
84
0
{
85
0
#if (defined(__GNUC__) || __has_builtin(__builtin_clzl)) \
86
0
  && SIZEOF_ZEND_LONG == SIZEOF_LONG && defined(PHP_HAVE_BUILTIN_CLZL)
87
0
  return __builtin_clzl(num);
88
#elif (defined(__GNUC__) || __has_builtin(__builtin_clzll)) && defined(PHP_HAVE_BUILTIN_CLZLL)
89
  return __builtin_clzll(num);
90
#elif defined(_WIN32)
91
  unsigned long index;
92
93
#if defined(_WIN64)
94
  if (!BitScanReverse64(&index, num)) {
95
#else
96
  if (!BitScanReverse(&index, num)) {
97
#endif
98
    return SIZEOF_ZEND_LONG * 8;
99
  }
100
101
  return (int) (SIZEOF_ZEND_LONG * 8 - 1)- index;
102
#else
103
  zend_ulong x;
104
  int n;
105
106
#if SIZEOF_ZEND_LONG == 8
107
  n = 64;
108
  x = num >> 32; if (x != 0) {n -= 32; num = x;}
109
#else
110
  n = 32;
111
#endif
112
  x = num >> 16; if (x != 0) {n -= 16; num = x;}
113
  x = num >> 8;  if (x != 0) {n -=  8; num = x;}
114
  x = num >> 4;  if (x != 0) {n -=  4; num = x;}
115
  x = num >> 2;  if (x != 0) {n -=  2; num = x;}
116
  x = num >> 1;  if (x != 0) return n - 2;
117
  return n - num;
118
#endif
119
0
}
Unexecuted instantiation: zend_jit.c:zend_ulong_nlz
Unexecuted instantiation: array.c:zend_ulong_nlz
Unexecuted instantiation: html.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
120
121
/* Returns the number of zend_ulong words needed to store a bitset that is N
122
   bits long.  */
123
static inline uint32_t zend_bitset_len(uint32_t n)
124
705k
{
125
705k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
126
705k
}
zend_jit.c:zend_bitset_len
Line
Count
Source
124
14.6k
{
125
14.6k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
126
14.6k
}
Unexecuted instantiation: array.c:zend_bitset_len
Unexecuted instantiation: html.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
124
48.8k
{
125
48.8k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
126
48.8k
}
compact_vars.c:zend_bitset_len
Line
Count
Source
124
25.9k
{
125
25.9k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
126
25.9k
}
dce.c:zend_bitset_len
Line
Count
Source
124
49.5k
{
125
49.5k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
126
49.5k
}
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
124
25.9k
{
125
25.9k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
126
25.9k
}
Unexecuted instantiation: sccp.c:zend_bitset_len
scdf.c:zend_bitset_len
Line
Count
Source
124
99.1k
{
125
99.1k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
126
99.1k
}
zend_call_graph.c:zend_bitset_len
Line
Count
Source
124
32.5k
{
125
32.5k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
126
32.5k
}
zend_cfg.c:zend_bitset_len
Line
Count
Source
124
206k
{
125
206k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
126
206k
}
zend_dfg.c:zend_bitset_len
Line
Count
Source
124
24.9k
{
125
24.9k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
126
24.9k
}
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
124
153k
{
125
153k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
126
153k
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_len
zend_ssa.c:zend_bitset_len
Line
Count
Source
124
24.9k
{
125
24.9k
  return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
126
24.9k
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_len
127
128
static inline bool zend_bitset_in(zend_bitset set, uint32_t n)
129
735k
{
130
735k
  return ZEND_BIT_TEST(set, n);
131
735k
}
zend_jit.c:zend_bitset_in
Line
Count
Source
129
18.3k
{
130
18.3k
  return ZEND_BIT_TEST(set, n);
131
18.3k
}
Unexecuted instantiation: array.c:zend_bitset_in
Unexecuted instantiation: html.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
129
90.3k
{
130
90.3k
  return ZEND_BIT_TEST(set, n);
131
90.3k
}
compact_vars.c:zend_bitset_in
Line
Count
Source
129
47.5k
{
130
47.5k
  return ZEND_BIT_TEST(set, n);
131
47.5k
}
dce.c:zend_bitset_in
Line
Count
Source
129
155k
{
130
155k
  return ZEND_BIT_TEST(set, n);
131
155k
}
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
129
106k
{
130
106k
  return ZEND_BIT_TEST(set, n);
131
106k
}
sccp.c:zend_bitset_in
Line
Count
Source
129
4.74k
{
130
4.74k
  return ZEND_BIT_TEST(set, n);
131
4.74k
}
scdf.c:zend_bitset_in
Line
Count
Source
129
58.1k
{
130
58.1k
  return ZEND_BIT_TEST(set, n);
131
58.1k
}
zend_call_graph.c:zend_bitset_in
Line
Count
Source
129
142
{
130
142
  return ZEND_BIT_TEST(set, n);
131
142
}
zend_cfg.c:zend_bitset_in
Line
Count
Source
129
177k
{
130
177k
  return ZEND_BIT_TEST(set, n);
131
177k
}
zend_dfg.c:zend_bitset_in
Line
Count
Source
129
76.0k
{
130
76.0k
  return ZEND_BIT_TEST(set, n);
131
76.0k
}
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
129
133
{
130
133
  return ZEND_BIT_TEST(set, n);
131
133
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_in
zend_ssa.c:zend_bitset_in
Line
Count
Source
129
512
{
130
512
  return ZEND_BIT_TEST(set, n);
131
512
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_in
132
133
static inline void zend_bitset_incl(zend_bitset set, uint32_t n)
134
947k
{
135
947k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
136
947k
}
zend_jit.c:zend_bitset_incl
Line
Count
Source
134
12.1k
{
135
12.1k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
136
12.1k
}
Unexecuted instantiation: array.c:zend_bitset_incl
Unexecuted instantiation: html.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
134
86.3k
{
135
86.3k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
136
86.3k
}
compact_vars.c:zend_bitset_incl
Line
Count
Source
134
140k
{
135
140k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
136
140k
}
dce.c:zend_bitset_incl
Line
Count
Source
134
66.6k
{
135
66.6k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
136
66.6k
}
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
134
63.5k
{
135
63.5k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
136
63.5k
}
sccp.c:zend_bitset_incl
Line
Count
Source
134
69.0k
{
135
69.0k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
136
69.0k
}
scdf.c:zend_bitset_incl
Line
Count
Source
134
97.8k
{
135
97.8k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
136
97.8k
}
zend_call_graph.c:zend_bitset_incl
Line
Count
Source
134
142
{
135
142
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
136
142
}
zend_cfg.c:zend_bitset_incl
Line
Count
Source
134
149k
{
135
149k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
136
149k
}
zend_dfg.c:zend_bitset_incl
Line
Count
Source
134
120k
{
135
120k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
136
120k
}
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
134
140k
{
135
140k
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
136
140k
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_incl
zend_ssa.c:zend_bitset_incl
Line
Count
Source
134
290
{
135
290
  set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
136
290
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_incl
137
138
static inline void zend_bitset_excl(zend_bitset set, uint32_t n)
139
505k
{
140
505k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
141
505k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_excl
Unexecuted instantiation: array.c:zend_bitset_excl
Unexecuted instantiation: html.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
139
71.0k
{
140
71.0k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
141
71.0k
}
Unexecuted instantiation: compact_vars.c:zend_bitset_excl
dce.c:zend_bitset_excl
Line
Count
Source
139
63.1k
{
140
63.1k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
141
63.1k
}
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
139
63.5k
{
140
63.5k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
141
63.5k
}
Unexecuted instantiation: sccp.c:zend_bitset_excl
scdf.c:zend_bitset_excl
Line
Count
Source
139
182k
{
140
182k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
141
182k
}
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
139
32.6k
{
140
32.6k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
141
32.6k
}
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
139
92.7k
{
140
92.7k
  set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
141
92.7k
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_excl
Unexecuted instantiation: zend_ssa.c:zend_bitset_excl
Unexecuted instantiation: zend_alloc.c:zend_bitset_excl
142
143
static inline void zend_bitset_clear(zend_bitset set, uint32_t len)
144
182k
{
145
182k
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
146
182k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_clear
Unexecuted instantiation: array.c:zend_bitset_clear
Unexecuted instantiation: html.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
144
55.0k
{
145
55.0k
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
146
55.0k
}
compact_vars.c:zend_bitset_clear
Line
Count
Source
144
25.9k
{
145
25.9k
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
146
25.9k
}
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
144
25.9k
{
145
25.9k
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
146
25.9k
}
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
144
1.57k
{
145
1.57k
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
146
1.57k
}
zend_dfg.c:zend_bitset_clear
Line
Count
Source
144
24.2k
{
145
24.2k
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
146
24.2k
}
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
144
24.8k
{
145
24.8k
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
146
24.8k
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_clear
zend_ssa.c:zend_bitset_clear
Line
Count
Source
144
24.9k
{
145
24.9k
  memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
146
24.9k
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_clear
147
148
static inline bool zend_bitset_empty(zend_bitset set, uint32_t len)
149
387k
{
150
387k
  uint32_t i;
151
617k
  for (i = 0; i < len; i++) {
152
363k
    if (set[i]) {
153
133k
      return 0;
154
133k
    }
155
363k
  }
156
254k
  return 1;
157
387k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_empty
Unexecuted instantiation: array.c:zend_bitset_empty
Unexecuted instantiation: html.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
149
52.0k
{
150
52.0k
  uint32_t i;
151
97.7k
  for (i = 0; i < len; i++) {
152
47.0k
    if (set[i]) {
153
1.26k
      return 0;
154
1.26k
    }
155
47.0k
  }
156
50.7k
  return 1;
157
52.0k
}
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
149
148k
{
150
148k
  uint32_t i;
151
262k
  for (i = 0; i < len; i++) {
152
138k
    if (set[i]) {
153
24.8k
      return 0;
154
24.8k
    }
155
138k
  }
156
123k
  return 1;
157
148k
}
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
149
57.5k
{
150
57.5k
  uint32_t i;
151
82.4k
  for (i = 0; i < len; i++) {
152
57.5k
    if (set[i]) {
153
32.6k
      return 0;
154
32.6k
    }
155
57.5k
  }
156
24.9k
  return 1;
157
57.5k
}
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
149
97.2k
{
150
97.2k
  uint32_t i;
151
117k
  for (i = 0; i < len; i++) {
152
92.1k
    if (set[i]) {
153
72.3k
      return 0;
154
72.3k
    }
155
92.1k
  }
156
24.9k
  return 1;
157
97.2k
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_empty
zend_ssa.c:zend_bitset_empty
Line
Count
Source
149
31.7k
{
150
31.7k
  uint32_t i;
151
57.6k
  for (i = 0; i < len; i++) {
152
27.9k
    if (set[i]) {
153
2.05k
      return 0;
154
2.05k
    }
155
27.9k
  }
156
29.6k
  return 1;
157
31.7k
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_empty
158
159
static inline void zend_bitset_fill(zend_bitset set, uint32_t len)
160
0
{
161
0
  memset(set, 0xff, len * ZEND_BITSET_ELM_SIZE);
162
0
}
Unexecuted instantiation: zend_jit.c:zend_bitset_fill
Unexecuted instantiation: array.c:zend_bitset_fill
Unexecuted instantiation: html.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
163
164
static inline bool zend_bitset_equal(zend_bitset set1, zend_bitset set2, uint32_t len)
165
32.6k
{
166
32.6k
    return memcmp(set1, set2, len * ZEND_BITSET_ELM_SIZE) == 0;
167
32.6k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_equal
Unexecuted instantiation: array.c:zend_bitset_equal
Unexecuted instantiation: html.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
165
32.6k
{
166
32.6k
    return memcmp(set1, set2, len * ZEND_BITSET_ELM_SIZE) == 0;
167
32.6k
}
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
168
169
static inline void zend_bitset_copy(zend_bitset set1, zend_bitset set2, uint32_t len)
170
45.3k
{
171
45.3k
    memcpy(set1, set2, len * ZEND_BITSET_ELM_SIZE);
172
45.3k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_copy
Unexecuted instantiation: array.c:zend_bitset_copy
Unexecuted instantiation: html.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
170
27.7k
{
171
27.7k
    memcpy(set1, set2, len * ZEND_BITSET_ELM_SIZE);
172
27.7k
}
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
170
17.6k
{
171
17.6k
    memcpy(set1, set2, len * ZEND_BITSET_ELM_SIZE);
172
17.6k
}
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
173
174
static inline void zend_bitset_intersection(zend_bitset set1, zend_bitset set2, uint32_t len)
175
13
{
176
13
    uint32_t i;
177
178
26
    for (i = 0; i < len; i++) {
179
13
    set1[i] &= set2[i];
180
13
  }
181
13
}
zend_jit.c:zend_bitset_intersection
Line
Count
Source
175
13
{
176
13
    uint32_t i;
177
178
26
    for (i = 0; i < len; i++) {
179
13
    set1[i] &= set2[i];
180
13
  }
181
13
}
Unexecuted instantiation: array.c:zend_bitset_intersection
Unexecuted instantiation: html.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
182
183
static inline void zend_bitset_union(zend_bitset set1, zend_bitset set2, uint32_t len)
184
8.55k
{
185
8.55k
  uint32_t i;
186
187
17.1k
  for (i = 0; i < len; i++) {
188
8.55k
    set1[i] |= set2[i];
189
8.55k
  }
190
8.55k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_union
Unexecuted instantiation: array.c:zend_bitset_union
Unexecuted instantiation: html.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
184
3.46k
{
185
3.46k
  uint32_t i;
186
187
6.93k
  for (i = 0; i < len; i++) {
188
3.46k
    set1[i] |= set2[i];
189
3.46k
  }
190
3.46k
}
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
184
3.44k
{
185
3.44k
  uint32_t i;
186
187
6.89k
  for (i = 0; i < len; i++) {
188
3.44k
    set1[i] |= set2[i];
189
3.44k
  }
190
3.44k
}
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
184
1.63k
{
185
1.63k
  uint32_t i;
186
187
3.27k
  for (i = 0; i < len; i++) {
188
1.63k
    set1[i] |= set2[i];
189
1.63k
  }
190
1.63k
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_union
191
192
static inline void zend_bitset_difference(zend_bitset set1, zend_bitset set2, uint32_t len)
193
0
{
194
0
  uint32_t i;
195
0
196
0
  for (i = 0; i < len; i++) {
197
0
    set1[i] = set1[i] & ~set2[i];
198
0
  }
199
0
}
Unexecuted instantiation: zend_jit.c:zend_bitset_difference
Unexecuted instantiation: array.c:zend_bitset_difference
Unexecuted instantiation: html.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
200
201
static inline void zend_bitset_union_with_intersection(zend_bitset set1, zend_bitset set2, zend_bitset set3, zend_bitset set4, uint32_t len)
202
7.67k
{
203
7.67k
  uint32_t i;
204
205
15.2k
  for (i = 0; i < len; i++) {
206
7.59k
    set1[i] = set2[i] | (set3[i] & set4[i]);
207
7.59k
  }
208
7.67k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_union_with_intersection
Unexecuted instantiation: array.c:zend_bitset_union_with_intersection
Unexecuted instantiation: html.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
202
7.67k
{
203
7.67k
  uint32_t i;
204
205
15.2k
  for (i = 0; i < len; i++) {
206
7.59k
    set1[i] = set2[i] | (set3[i] & set4[i]);
207
7.59k
  }
208
7.67k
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_union_with_intersection
209
210
static inline void zend_bitset_union_with_difference(zend_bitset set1, zend_bitset set2, zend_bitset set3, zend_bitset set4, uint32_t len)
211
32.6k
{
212
32.6k
  uint32_t i;
213
214
61.3k
  for (i = 0; i < len; i++) {
215
28.7k
    set1[i] = set2[i] | (set3[i] & ~set4[i]);
216
28.7k
  }
217
32.6k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_union_with_difference
Unexecuted instantiation: array.c:zend_bitset_union_with_difference
Unexecuted instantiation: html.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
211
32.6k
{
212
32.6k
  uint32_t i;
213
214
61.3k
  for (i = 0; i < len; i++) {
215
28.7k
    set1[i] = set2[i] | (set3[i] & ~set4[i]);
216
28.7k
  }
217
32.6k
}
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
218
219
static inline bool zend_bitset_subset(zend_bitset set1, zend_bitset set2, uint32_t len)
220
4.97k
{
221
4.97k
  uint32_t i;
222
223
8.23k
  for (i = 0; i < len; i++) {
224
4.89k
    if (set1[i] & ~set2[i]) {
225
1.63k
      return 0;
226
1.63k
    }
227
4.89k
  }
228
3.33k
  return 1;
229
4.97k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_subset
Unexecuted instantiation: array.c:zend_bitset_subset
Unexecuted instantiation: html.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
220
4.97k
{
221
4.97k
  uint32_t i;
222
223
8.23k
  for (i = 0; i < len; i++) {
224
4.89k
    if (set1[i] & ~set2[i]) {
225
1.63k
      return 0;
226
1.63k
    }
227
4.89k
  }
228
3.33k
  return 1;
229
4.97k
}
Unexecuted instantiation: zend_alloc.c:zend_bitset_subset
230
231
static inline int zend_bitset_first(zend_bitset set, uint32_t len)
232
207k
{
233
207k
  uint32_t i;
234
235
298k
  for (i = 0; i < len; i++) {
236
197k
    if (set[i]) {
237
105k
      return ZEND_BITSET_ELM_SIZE * 8 * i + zend_ulong_ntz(set[i]);
238
105k
    }
239
197k
  }
240
101k
  return -1; /* empty set */
241
207k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_first
Unexecuted instantiation: array.c:zend_bitset_first
Unexecuted instantiation: html.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
232
29.2k
{
233
29.2k
  uint32_t i;
234
235
51.5k
  for (i = 0; i < len; i++) {
236
24.2k
    if (set[i]) {
237
1.95k
      return ZEND_BITSET_ELM_SIZE * 8 * i + zend_ulong_ntz(set[i]);
238
1.95k
    }
239
24.2k
  }
240
27.3k
  return -1; /* empty set */
241
29.2k
}
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
232
105k
{
233
105k
  uint32_t i;
234
235
175k
  for (i = 0; i < len; i++) {
236
100k
    if (set[i]) {
237
31.0k
      return ZEND_BITSET_ELM_SIZE * 8 * i + zend_ulong_ntz(set[i]);
238
31.0k
    }
239
100k
  }
240
74.4k
  return -1; /* empty set */
241
105k
}
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
232
72.3k
{
233
72.3k
  uint32_t i;
234
235
72.3k
  for (i = 0; i < len; i++) {
236
72.3k
    if (set[i]) {
237
72.3k
      return ZEND_BITSET_ELM_SIZE * 8 * i + zend_ulong_ntz(set[i]);
238
72.3k
    }
239
72.3k
  }
240
0
  return -1; /* empty set */
241
72.3k
}
Unexecuted instantiation: zend_optimizer.c:zend_bitset_first
Unexecuted instantiation: zend_ssa.c:zend_bitset_first
Unexecuted instantiation: zend_alloc.c:zend_bitset_first
242
243
static inline int zend_bitset_last(zend_bitset set, uint32_t len)
244
32.6k
{
245
32.6k
  uint32_t i = len;
246
247
32.6k
  while (i > 0) {
248
32.6k
    i--;
249
32.6k
    if (set[i]) {
250
32.6k
      int j = ZEND_BITSET_ELM_SIZE * 8 * i - 1;
251
32.6k
      zend_ulong x = set[i];
252
81.0k
      while (x != Z_UL(0)) {
253
48.4k
        x = x >> Z_UL(1);
254
48.4k
        j++;
255
48.4k
      }
256
32.6k
      return j;
257
32.6k
    }
258
32.6k
  }
259
0
  return -1; /* empty set */
260
32.6k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_last
Unexecuted instantiation: array.c:zend_bitset_last
Unexecuted instantiation: html.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
244
32.6k
{
245
32.6k
  uint32_t i = len;
246
247
32.6k
  while (i > 0) {
248
32.6k
    i--;
249
32.6k
    if (set[i]) {
250
32.6k
      int j = ZEND_BITSET_ELM_SIZE * 8 * i - 1;
251
32.6k
      zend_ulong x = set[i];
252
81.0k
      while (x != Z_UL(0)) {
253
48.4k
        x = x >> Z_UL(1);
254
48.4k
        j++;
255
48.4k
      }
256
32.6k
      return j;
257
32.6k
    }
258
32.6k
  }
259
0
  return -1; /* empty set */
260
32.6k
}
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
261
262
74.1k
#define ZEND_BITSET_FOREACH(set, len, bit) do { \
263
74.1k
  zend_bitset _set = (set); \
264
74.1k
  uint32_t _i, _len = (len); \
265
143k
  for (_i = 0; _i < _len; _i++) { \
266
69.0k
    zend_ulong _x = _set[_i]; \
267
69.0k
    if (_x) { \
268
15.9k
      (bit) = ZEND_BITSET_ELM_SIZE * 8 * _i; \
269
92.0k
      for (; _x != 0; _x >>= Z_UL(1), (bit)++) { \
270
76.1k
        if (!(_x & Z_UL(1))) continue;
271
272
2.05k
#define ZEND_BITSET_REVERSE_FOREACH(set, len, bit) do { \
273
2.05k
  zend_bitset _set = (set); \
274
2.05k
  uint32_t _i = (len); \
275
2.05k
  zend_ulong _test = Z_UL(1) << (ZEND_BITSET_ELM_SIZE * 8 - 1); \
276
4.11k
  while (_i-- > 0) { \
277
2.05k
    zend_ulong _x = _set[_i]; \
278
2.05k
    if (_x) { \
279
2.05k
      (bit) = ZEND_BITSET_ELM_SIZE * 8 * (_i + 1) - 1; \
280
128k
      for (; _x != 0; _x <<= Z_UL(1), (bit)--) { \
281
126k
        if (!(_x & _test)) continue; \
282
283
#define ZEND_BITSET_FOREACH_END() \
284
29.5k
      } \
285
17.9k
    } \
286
71.0k
  } \
287
76.2k
} while (0)
288
289
134k
static inline int zend_bitset_pop_first(zend_bitset set, uint32_t len) {
290
134k
  int i = zend_bitset_first(set, len);
291
134k
  if (i >= 0) {
292
33.0k
    zend_bitset_excl(set, i);
293
33.0k
  }
294
134k
  return i;
295
134k
}
Unexecuted instantiation: zend_jit.c:zend_bitset_pop_first
Unexecuted instantiation: array.c:zend_bitset_pop_first
Unexecuted instantiation: html.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
289
29.2k
static inline int zend_bitset_pop_first(zend_bitset set, uint32_t len) {
290
29.2k
  int i = zend_bitset_first(set, len);
291
29.2k
  if (i >= 0) {
292
1.95k
    zend_bitset_excl(set, i);
293
1.95k
  }
294
29.2k
  return i;
295
29.2k
}
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
289
105k
static inline int zend_bitset_pop_first(zend_bitset set, uint32_t len) {
290
105k
  int i = zend_bitset_first(set, len);
291
105k
  if (i >= 0) {
292
31.0k
    zend_bitset_excl(set, i);
293
31.0k
  }
294
105k
  return i;
295
105k
}
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
296
297
#endif /* _ZEND_BITSET_H_ */