Coverage Report

Created: 2018-07-03 15:31

/home/travis/build/MoarVM/MoarVM/src/strings/normalize.h
Line
Count
Source (jump to first uncovered line)
1
/* Normalization modes. Numbers picked so that:
2
 *  - The LSB tells us whether to do canonical or compatibility normalization
3
 *  - The second bit tells us whether to do canonical normalization
4
 *  - The third bit tells us to go a step further and create synthetic codes
5
 *    for graphemes.
6
 */
7
typedef enum {
8
    MVM_NORMALIZE_NFD   = 0,
9
    MVM_NORMALIZE_NFKD  = 1,
10
    MVM_NORMALIZE_NFC   = 2,
11
    MVM_NORMALIZE_NFKC  = 3,
12
    MVM_NORMALIZE_NFG   = 6
13
} MVMNormalization;
14
15
/* Ways of checking various properties of the normalization form. */
16
119
#define MVM_NORMALIZE_COMPAT_DECOMP(form) (form & 1)
17
154k
#define MVM_NORMALIZE_COMPOSE(form)       (form & 2)
18
51.0k
#define MVM_NORMALIZE_GRAPHEME(form)      (form & 4)
19
20
/* First codepoint where we have to actually do a real check and maybe some
21
 * work when normalizing. */
22
2.77k
#define MVM_NORMALIZE_FIRST_SIG_NFD     0x00C0
23
2.85M
#define MVM_NORMALIZE_FIRST_SIG_NFC     0x0300
24
0
#define MVM_NORMALIZE_FIRST_SIG_NFKD    0x00A0
25
0
#define MVM_NORMALIZE_FIRST_SIG_NFKC    0x00A0
26
27
/* First codepoint with a non-zero canonical combining class. */
28
170k
#define MVM_NORMALIZE_FIRST_NONZERO_CCC 0x300
29
30
/* Streaming Unicode normalizer structure. */
31
struct MVMNormalizer {
32
    /* What form of normalization are we doing? */
33
    MVMNormalization form;
34
35
    /* Current buffer of codepoints we're working to normalize. */
36
    MVMCodepoint *buffer;
37
38
    /* Size of the normalization buffer. */
39
    MVMint32 buffer_size;
40
41
    /* Start offset in the buffer where we're still processing. */
42
    MVMint32 buffer_start;
43
44
    /* End offset in the buffer, and where to add the next thing to process. */
45
    MVMint32 buffer_end;
46
47
    /* End offset in the buffer for things we've normalized and so can return. */
48
    MVMint32 buffer_norm_end;
49
50
    /* The first significant codepoint in this normalization form that we may
51
     * have to do something with. If we see two things beneath the limit in a
52
     * row then we know the first one below it is good to spit out. */
53
    MVMCodepoint first_significant;
54
55
    /* The quickcheck property for the normalization form in question. */
56
    MVMint32 quick_check_property;
57
58
    /* If we should translate the \r\n grapheme to \n (only applicable when
59
     * normalizing to NFG). */
60
    MVMint32 translate_newlines;
61
62
    MVMint32 prepend_buffer;
63
64
    MVMint32 regional_indicator;
65
66
};
67
68
/* Guts-y functions, called by the API level ones below. */
69
MVMint32 MVM_unicode_normalizer_process_codepoint_full(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMCodepoint *out);
70
MVMint32 MVM_unicode_normalizer_process_codepoint_norm_terminator(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMCodepoint *out);
71
72
/* Takes a codepoint to process for normalization as the "in" parameter. If we
73
 * are able to produce one or more normalized codepoints right off, then we
74
 * put it into the location pointed to by "out", and return the number of
75
 * codepoints now available including the one we just passed out. If we can't
76
 * produce a normalized codepoint right now, we return a 0. */
77
1.04M
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_process_codepoint(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMCodepoint *out) {
78
1.04M
    /* Control characters in the Latin-1 range are normalization terminators -
79
1.04M
     * that is, we know we can spit out whatever codepoints we have seen so
80
1.04M
     * far in normalized form without having to consider them into the
81
1.04M
     * normalization process. The exception is if we're computing NFG, and
82
1.04M
     * we got \r, which can form a grapheme in the case of \r\n. */
83
1.04M
    if (in < 0x20 || (0x7F <= in && in <= 0x9F) || in == 0xAD) {
84
3.66k
        /* For utf8-c8 synthetic graphemes. May be able to be removed after
85
3.66k
         * changing and further testing of the TODO marked below. */
86
3.66k
        if (MVM_UNLIKELY(in < 0)) {
87
0
            if (MVM_LIKELY(MVM_nfg_get_synthetic_info(tc, in)->is_utf8_c8))
88
0
                return MVM_unicode_normalizer_process_codepoint_norm_terminator(tc, n, in, out);
89
0
            MVM_exception_throw_adhoc(tc, "Internal error: encountered non-utf8-c8 synthetic during normalization");
90
0
        }
91
3.66k
        /* If in isn't \r */
92
3.66k
        if (in != 0x0D || !MVM_NORMALIZE_GRAPHEME(n->form))
93
3.08k
            return MVM_unicode_normalizer_process_codepoint_norm_terminator(tc, n, in, out);
94
3.66k
    }
95
1.04M
96
1.04M
    /* Fast-paths apply when the codepoint to consider is too low to have any
97
1.04M
     * interesting properties in the target normalization form AND
98
1.04M
     * it doesn't follow a prepend character */
99
1.03M
    if (in < n->first_significant && !n->prepend_buffer) {
100
977k
        if (MVM_LIKELY(MVM_NORMALIZE_COMPOSE(n->form))) {
101
975k
            /* For the composition fast path we always have to know that we've
102
975k
            * seen two codepoints in a row that are below those needing a full
103
975k
            * check. Then we can spit out the first one. Exception: we are
104
975k
            * normalizing to graphemes and see \r. */
105
975k
            if (MVM_LIKELY(in != 0x0D || !MVM_NORMALIZE_GRAPHEME(n->form))) {
106
974k
                if (n->buffer_end - n->buffer_start == 1) {
107
933k
                    if (n->buffer[n->buffer_start] < n->first_significant) {
108
932k
                        *out = n->buffer[n->buffer_start];
109
932k
                        n->buffer[n->buffer_start] = in;
110
932k
                        return 1;
111
932k
                    }
112
933k
                }
113
974k
            }
114
975k
        }
115
2.68k
        else {
116
2.68k
            /* For decomposition fast-path, the buffer should be empty. In
117
2.68k
             * that case, we just hand back what we got. */
118
2.68k
            if (n->buffer_start == n->buffer_end) {
119
2.68k
                *out = in;
120
2.68k
                return 1;
121
2.68k
            }
122
2.68k
        }
123
977k
    }
124
1.03M
    /* Fall back to slow path. */
125
101k
    return MVM_unicode_normalizer_process_codepoint_full(tc, n, in, out);
126
1.03M
}
Unexecuted instantiation: reprconv.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: P6str.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: KnowHOWAttributeREPR.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: KnowHOWREPR.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMCFunction.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMHash.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: VMArray.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMString.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: parametric.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: containers.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: P6opaque.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: reprs.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: asyncsocketudp.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: asyncsocket.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: signals.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: filewatchers.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: timers.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: procops.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: dirops.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: fileops.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMIter.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMContinuation.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMMultiCache.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMDLLSym.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMException.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: NFA.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: P6bigint.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMCallCapture.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: SCRef.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMContext.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: syncsocket.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMThread.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: HashAttrStore.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: Uninstantiable.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: P6num.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: P6int.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMStaticFrame.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMCompUnit.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMOSHandle.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMCode.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: bytecodedump.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: nativecall.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: ext.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: dll.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: coerce.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: num.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: loadbytecode.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: hll.c:MVM_unicode_normalizer_process_codepoint
ops.c:MVM_unicode_normalizer_process_codepoint
Line
Count
Source
77
2.95k
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_process_codepoint(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMCodepoint *out) {
78
2.95k
    /* Control characters in the Latin-1 range are normalization terminators -
79
2.95k
     * that is, we know we can spit out whatever codepoints we have seen so
80
2.95k
     * far in normalized form without having to consider them into the
81
2.95k
     * normalization process. The exception is if we're computing NFG, and
82
2.95k
     * we got \r, which can form a grapheme in the case of \r\n. */
83
2.95k
    if (in < 0x20 || (0x7F <= in && in <= 0x9F) || in == 0xAD) {
84
24
        /* For utf8-c8 synthetic graphemes. May be able to be removed after
85
24
         * changing and further testing of the TODO marked below. */
86
24
        if (MVM_UNLIKELY(in < 0)) {
87
0
            if (MVM_LIKELY(MVM_nfg_get_synthetic_info(tc, in)->is_utf8_c8))
88
0
                return MVM_unicode_normalizer_process_codepoint_norm_terminator(tc, n, in, out);
89
0
            MVM_exception_throw_adhoc(tc, "Internal error: encountered non-utf8-c8 synthetic during normalization");
90
0
        }
91
24
        /* If in isn't \r */
92
24
        if (in != 0x0D || !MVM_NORMALIZE_GRAPHEME(n->form))
93
12
            return MVM_unicode_normalizer_process_codepoint_norm_terminator(tc, n, in, out);
94
24
    }
95
2.95k
96
2.95k
    /* Fast-paths apply when the codepoint to consider is too low to have any
97
2.95k
     * interesting properties in the target normalization form AND
98
2.95k
     * it doesn't follow a prepend character */
99
2.93k
    if (in < n->first_significant && !n->prepend_buffer) {
100
2.76k
        if (MVM_LIKELY(MVM_NORMALIZE_COMPOSE(n->form))) {
101
82
            /* For the composition fast path we always have to know that we've
102
82
            * seen two codepoints in a row that are below those needing a full
103
82
            * check. Then we can spit out the first one. Exception: we are
104
82
            * normalizing to graphemes and see \r. */
105
82
            if (MVM_LIKELY(in != 0x0D || !MVM_NORMALIZE_GRAPHEME(n->form))) {
106
70
                if (n->buffer_end - n->buffer_start == 1) {
107
53
                    if (n->buffer[n->buffer_start] < n->first_significant) {
108
53
                        *out = n->buffer[n->buffer_start];
109
53
                        n->buffer[n->buffer_start] = in;
110
53
                        return 1;
111
53
                    }
112
53
                }
113
70
            }
114
82
        }
115
2.68k
        else {
116
2.68k
            /* For decomposition fast-path, the buffer should be empty. In
117
2.68k
             * that case, we just hand back what we got. */
118
2.68k
            if (n->buffer_start == n->buffer_end) {
119
2.68k
                *out = in;
120
2.68k
                return 1;
121
2.68k
            }
122
2.68k
        }
123
2.76k
    }
124
2.93k
    /* Fall back to slow path. */
125
200
    return MVM_unicode_normalizer_process_codepoint_full(tc, n, in, out);
126
2.93k
}
Unexecuted instantiation: threads.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: nativecall_dyncall.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: validation.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: callstack.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: frame.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: bytecode.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: compunit.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: threadcontext.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: interp.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: exceptions.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: callsite.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: roots.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: syncfile.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: eventloop.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: io.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: debug.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: finalize.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: objectid.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: wb.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: gen2.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: collect.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: args.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: worklist.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: allocation.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: orchestrate.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: config.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: debugserver.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: regionalloc.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: fixedsizealloc.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: intcache.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: continuation.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: nfg.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: instrument.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: bigintops.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: shiftjis_codeindex.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: shiftjis.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: windows1252.c:MVM_unicode_normalizer_process_codepoint
utf16.c:MVM_unicode_normalizer_process_codepoint
Line
Count
Source
77
1
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_process_codepoint(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMCodepoint *out) {
78
1
    /* Control characters in the Latin-1 range are normalization terminators -
79
1
     * that is, we know we can spit out whatever codepoints we have seen so
80
1
     * far in normalized form without having to consider them into the
81
1
     * normalization process. The exception is if we're computing NFG, and
82
1
     * we got \r, which can form a grapheme in the case of \r\n. */
83
1
    if (in < 0x20 || (0x7F <= in && in <= 0x9F) || in == 0xAD) {
84
0
        /* For utf8-c8 synthetic graphemes. May be able to be removed after
85
0
         * changing and further testing of the TODO marked below. */
86
0
        if (MVM_UNLIKELY(in < 0)) {
87
0
            if (MVM_LIKELY(MVM_nfg_get_synthetic_info(tc, in)->is_utf8_c8))
88
0
                return MVM_unicode_normalizer_process_codepoint_norm_terminator(tc, n, in, out);
89
0
            MVM_exception_throw_adhoc(tc, "Internal error: encountered non-utf8-c8 synthetic during normalization");
90
0
        }
91
0
        /* If in isn't \r */
92
0
        if (in != 0x0D || !MVM_NORMALIZE_GRAPHEME(n->form))
93
0
            return MVM_unicode_normalizer_process_codepoint_norm_terminator(tc, n, in, out);
94
0
    }
95
1
96
1
    /* Fast-paths apply when the codepoint to consider is too low to have any
97
1
     * interesting properties in the target normalization form AND
98
1
     * it doesn't follow a prepend character */
99
1
    if (in < n->first_significant && !n->prepend_buffer) {
100
1
        if (MVM_LIKELY(MVM_NORMALIZE_COMPOSE(n->form))) {
101
1
            /* For the composition fast path we always have to know that we've
102
1
            * seen two codepoints in a row that are below those needing a full
103
1
            * check. Then we can spit out the first one. Exception: we are
104
1
            * normalizing to graphemes and see \r. */
105
1
            if (MVM_LIKELY(in != 0x0D || !MVM_NORMALIZE_GRAPHEME(n->form))) {
106
1
                if (n->buffer_end - n->buffer_start == 1) {
107
0
                    if (n->buffer[n->buffer_start] < n->first_significant) {
108
0
                        *out = n->buffer[n->buffer_start];
109
0
                        n->buffer[n->buffer_start] = in;
110
0
                        return 1;
111
0
                    }
112
0
                }
113
1
            }
114
1
        }
115
0
        else {
116
0
            /* For decomposition fast-path, the buffer should be empty. In
117
0
             * that case, we just hand back what we got. */
118
0
            if (n->buffer_start == n->buffer_end) {
119
0
                *out = in;
120
0
                return 1;
121
0
            }
122
0
        }
123
1
    }
124
1
    /* Fall back to slow path. */
125
1
    return MVM_unicode_normalizer_process_codepoint_full(tc, n, in, out);
126
1
}
Unexecuted instantiation: latin1.c:MVM_unicode_normalizer_process_codepoint
normalize.c:MVM_unicode_normalizer_process_codepoint
Line
Count
Source
77
119
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_process_codepoint(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMCodepoint *out) {
78
119
    /* Control characters in the Latin-1 range are normalization terminators -
79
119
     * that is, we know we can spit out whatever codepoints we have seen so
80
119
     * far in normalized form without having to consider them into the
81
119
     * normalization process. The exception is if we're computing NFG, and
82
119
     * we got \r, which can form a grapheme in the case of \r\n. */
83
119
    if (in < 0x20 || (0x7F <= in && in <= 0x9F) || in == 0xAD) {
84
74
        /* For utf8-c8 synthetic graphemes. May be able to be removed after
85
74
         * changing and further testing of the TODO marked below. */
86
74
        if (MVM_UNLIKELY(in < 0)) {
87
0
            if (MVM_LIKELY(MVM_nfg_get_synthetic_info(tc, in)->is_utf8_c8))
88
0
                return MVM_unicode_normalizer_process_codepoint_norm_terminator(tc, n, in, out);
89
0
            MVM_exception_throw_adhoc(tc, "Internal error: encountered non-utf8-c8 synthetic during normalization");
90
0
        }
91
74
        /* If in isn't \r */
92
74
        if (in != 0x0D || !MVM_NORMALIZE_GRAPHEME(n->form))
93
37
            return MVM_unicode_normalizer_process_codepoint_norm_terminator(tc, n, in, out);
94
74
    }
95
119
96
119
    /* Fast-paths apply when the codepoint to consider is too low to have any
97
119
     * interesting properties in the target normalization form AND
98
119
     * it doesn't follow a prepend character */
99
82
    if (in < n->first_significant && !n->prepend_buffer) {
100
51
        if (MVM_LIKELY(MVM_NORMALIZE_COMPOSE(n->form))) {
101
51
            /* For the composition fast path we always have to know that we've
102
51
            * seen two codepoints in a row that are below those needing a full
103
51
            * check. Then we can spit out the first one. Exception: we are
104
51
            * normalizing to graphemes and see \r. */
105
51
            if (MVM_LIKELY(in != 0x0D || !MVM_NORMALIZE_GRAPHEME(n->form))) {
106
14
                if (n->buffer_end - n->buffer_start == 1) {
107
1
                    if (n->buffer[n->buffer_start] < n->first_significant) {
108
1
                        *out = n->buffer[n->buffer_start];
109
1
                        n->buffer[n->buffer_start] = in;
110
1
                        return 1;
111
1
                    }
112
1
                }
113
14
            }
114
51
        }
115
0
        else {
116
0
            /* For decomposition fast-path, the buffer should be empty. In
117
0
             * that case, we just hand back what we got. */
118
0
            if (n->buffer_start == n->buffer_end) {
119
0
                *out = in;
120
0
                return 1;
121
0
            }
122
0
        }
123
51
    }
124
82
    /* Fall back to slow path. */
125
81
    return MVM_unicode_normalizer_process_codepoint_full(tc, n, in, out);
126
82
}
Unexecuted instantiation: unicode.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: profile.c:MVM_unicode_normalizer_process_codepoint
utf8_c8.c:MVM_unicode_normalizer_process_codepoint
Line
Count
Source
77
766k
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_process_codepoint(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMCodepoint *out) {
78
766k
    /* Control characters in the Latin-1 range are normalization terminators -
79
766k
     * that is, we know we can spit out whatever codepoints we have seen so
80
766k
     * far in normalized form without having to consider them into the
81
766k
     * normalization process. The exception is if we're computing NFG, and
82
766k
     * we got \r, which can form a grapheme in the case of \r\n. */
83
766k
    if (in < 0x20 || (0x7F <= in && in <= 0x9F) || in == 0xAD) {
84
432
        /* For utf8-c8 synthetic graphemes. May be able to be removed after
85
432
         * changing and further testing of the TODO marked below. */
86
432
        if (MVM_UNLIKELY(in < 0)) {
87
0
            if (MVM_LIKELY(MVM_nfg_get_synthetic_info(tc, in)->is_utf8_c8))
88
0
                return MVM_unicode_normalizer_process_codepoint_norm_terminator(tc, n, in, out);
89
0
            MVM_exception_throw_adhoc(tc, "Internal error: encountered non-utf8-c8 synthetic during normalization");
90
0
        }
91
432
        /* If in isn't \r */
92
432
        if (in != 0x0D || !MVM_NORMALIZE_GRAPHEME(n->form))
93
432
            return MVM_unicode_normalizer_process_codepoint_norm_terminator(tc, n, in, out);
94
432
    }
95
766k
96
766k
    /* Fast-paths apply when the codepoint to consider is too low to have any
97
766k
     * interesting properties in the target normalization form AND
98
766k
     * it doesn't follow a prepend character */
99
766k
    if (in < n->first_significant && !n->prepend_buffer) {
100
766k
        if (MVM_LIKELY(MVM_NORMALIZE_COMPOSE(n->form))) {
101
766k
            /* For the composition fast path we always have to know that we've
102
766k
            * seen two codepoints in a row that are below those needing a full
103
766k
            * check. Then we can spit out the first one. Exception: we are
104
766k
            * normalizing to graphemes and see \r. */
105
766k
            if (MVM_LIKELY(in != 0x0D || !MVM_NORMALIZE_GRAPHEME(n->form))) {
106
766k
                if (n->buffer_end - n->buffer_start == 1) {
107
747k
                    if (n->buffer[n->buffer_start] < n->first_significant) {
108
747k
                        *out = n->buffer[n->buffer_start];
109
747k
                        n->buffer[n->buffer_start] = in;
110
747k
                        return 1;
111
747k
                    }
112
747k
                }
113
766k
            }
114
766k
        }
115
0
        else {
116
0
            /* For decomposition fast-path, the buffer should be empty. In
117
0
             * that case, we just hand back what we got. */
118
0
            if (n->buffer_start == n->buffer_end) {
119
0
                *out = in;
120
0
                return 1;
121
0
            }
122
0
        }
123
766k
    }
124
766k
    /* Fall back to slow path. */
125
18.8k
    return MVM_unicode_normalizer_process_codepoint_full(tc, n, in, out);
126
766k
}
utf8.c:MVM_unicode_normalizer_process_codepoint
Line
Count
Source
77
270k
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_process_codepoint(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMCodepoint *out) {
78
270k
    /* Control characters in the Latin-1 range are normalization terminators -
79
270k
     * that is, we know we can spit out whatever codepoints we have seen so
80
270k
     * far in normalized form without having to consider them into the
81
270k
     * normalization process. The exception is if we're computing NFG, and
82
270k
     * we got \r, which can form a grapheme in the case of \r\n. */
83
270k
    if (in < 0x20 || (0x7F <= in && in <= 0x9F) || in == 0xAD) {
84
3.13k
        /* For utf8-c8 synthetic graphemes. May be able to be removed after
85
3.13k
         * changing and further testing of the TODO marked below. */
86
3.13k
        if (MVM_UNLIKELY(in < 0)) {
87
0
            if (MVM_LIKELY(MVM_nfg_get_synthetic_info(tc, in)->is_utf8_c8))
88
0
                return MVM_unicode_normalizer_process_codepoint_norm_terminator(tc, n, in, out);
89
0
            MVM_exception_throw_adhoc(tc, "Internal error: encountered non-utf8-c8 synthetic during normalization");
90
0
        }
91
3.13k
        /* If in isn't \r */
92
3.13k
        if (in != 0x0D || !MVM_NORMALIZE_GRAPHEME(n->form))
93
2.60k
            return MVM_unicode_normalizer_process_codepoint_norm_terminator(tc, n, in, out);
94
3.13k
    }
95
270k
96
270k
    /* Fast-paths apply when the codepoint to consider is too low to have any
97
270k
     * interesting properties in the target normalization form AND
98
270k
     * it doesn't follow a prepend character */
99
268k
    if (in < n->first_significant && !n->prepend_buffer) {
100
208k
        if (MVM_LIKELY(MVM_NORMALIZE_COMPOSE(n->form))) {
101
208k
            /* For the composition fast path we always have to know that we've
102
208k
            * seen two codepoints in a row that are below those needing a full
103
208k
            * check. Then we can spit out the first one. Exception: we are
104
208k
            * normalizing to graphemes and see \r. */
105
208k
            if (MVM_LIKELY(in != 0x0D || !MVM_NORMALIZE_GRAPHEME(n->form))) {
106
208k
                if (n->buffer_end - n->buffer_start == 1) {
107
185k
                    if (n->buffer[n->buffer_start] < n->first_significant) {
108
185k
                        *out = n->buffer[n->buffer_start];
109
185k
                        n->buffer[n->buffer_start] = in;
110
185k
                        return 1;
111
185k
                    }
112
185k
                }
113
208k
            }
114
208k
        }
115
0
        else {
116
0
            /* For decomposition fast-path, the buffer should be empty. In
117
0
             * that case, we just hand back what we got. */
118
0
            if (n->buffer_start == n->buffer_end) {
119
0
                *out = in;
120
0
                return 1;
121
0
            }
122
0
        }
123
208k
    }
124
268k
    /* Fall back to slow path. */
125
82.4k
    return MVM_unicode_normalizer_process_codepoint_full(tc, n, in, out);
126
268k
}
Unexecuted instantiation: parse_num.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: ascii.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: decode_stream.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: plugin.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: arg_guard.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: plan.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: stats.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: time.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: NativeCall.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: arch.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: emit.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: interface.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: linear_scan.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: tile.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: expr.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: compile.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: label.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: CPointer.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: mmap.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: moar.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: memmem32.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: random.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: sys.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: line_coverage.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: crossthreadwrite.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: telemeh.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: heapsnapshot.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMAsyncTask.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: bootstrap.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: 6model.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMStaticFrameSpesh.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMSpeshLog.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: Decoder.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MultiDimArray.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: NativeRef.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: CPPStruct.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: MVMNull.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: iterator.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: ConcBlockingQueue.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: Semaphore.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: ConditionVariable.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: ReentrantMutex.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: CUnion.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: CStruct.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: CArray.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: CStr.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: worker.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: serialization.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: sc.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: lookup.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: osr.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: inline.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: threshold.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: log.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: deopt.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: dead_bb_elimination.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: optimize.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: manipulate.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: candidate.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: codegen.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: graph.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: dump.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: driver.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: compiler.c:MVM_unicode_normalizer_process_codepoint
Unexecuted instantiation: facts.c:MVM_unicode_normalizer_process_codepoint
127
128
/* Grapheme version of the above. Note that this exists mostly for API clarity
129
 * rather than adding any semantics; the normalizer must be configured to
130
 * produce NFG to get synthetics out. */
131
1.04M
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_process_codepoint_to_grapheme(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMGrapheme32 *out) {
132
1.04M
    assert(sizeof(MVMCodepoint) == sizeof(MVMGrapheme32));
133
1.04M
    return MVM_unicode_normalizer_process_codepoint(tc, n, in, (MVMGrapheme32 *)out);
134
1.04M
}
Unexecuted instantiation: reprs.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: reprconv.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: containers.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: parametric.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMString.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: VMArray.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMHash.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMCFunction.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: KnowHOWREPR.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: asyncsocketudp.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: asyncsocket.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: signals.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: filewatchers.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: timers.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: procops.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: dirops.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: fileops.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: syncsocket.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: syncfile.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: HashAttrStore.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMDLLSym.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMException.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: NFA.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: P6bigint.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMCallCapture.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: SCRef.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMContext.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMIter.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMThread.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: KnowHOWAttributeREPR.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: Uninstantiable.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: P6num.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: P6int.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMStaticFrame.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMCompUnit.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMOSHandle.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMCode.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: P6opaque.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: P6str.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: callstack.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: dll.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: coerce.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: num.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: loadbytecode.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: hll.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
ops.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Line
Count
Source
131
2.95k
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_process_codepoint_to_grapheme(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMGrapheme32 *out) {
132
2.95k
    assert(sizeof(MVMCodepoint) == sizeof(MVMGrapheme32));
133
2.95k
    return MVM_unicode_normalizer_process_codepoint(tc, n, in, (MVMGrapheme32 *)out);
134
2.95k
}
Unexecuted instantiation: threads.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: bytecodedump.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: validation.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: ext.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: frame.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: bytecode.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: compunit.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: threadcontext.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: interp.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: exceptions.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: args.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: callsite.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: emit.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: allocation.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: io.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: debug.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: finalize.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: objectid.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: wb.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: gen2.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: collect.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: roots.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: worklist.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: eventloop.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: orchestrate.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: config.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: debugserver.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: regionalloc.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: fixedsizealloc.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: intcache.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: continuation.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: nativecall_dyncall.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: nativecall.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
utf8.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Line
Count
Source
131
270k
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_process_codepoint_to_grapheme(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMGrapheme32 *out) {
132
270k
    assert(sizeof(MVMCodepoint) == sizeof(MVMGrapheme32));
133
270k
    return MVM_unicode_normalizer_process_codepoint(tc, n, in, (MVMGrapheme32 *)out);
134
270k
}
Unexecuted instantiation: shiftjis_codeindex.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: shiftjis.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: windows1252.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
utf16.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Line
Count
Source
131
1
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_process_codepoint_to_grapheme(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMGrapheme32 *out) {
132
1
    assert(sizeof(MVMCodepoint) == sizeof(MVMGrapheme32));
133
1
    return MVM_unicode_normalizer_process_codepoint(tc, n, in, (MVMGrapheme32 *)out);
134
1
}
Unexecuted instantiation: latin1.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
normalize.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Line
Count
Source
131
117
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_process_codepoint_to_grapheme(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMGrapheme32 *out) {
132
117
    assert(sizeof(MVMCodepoint) == sizeof(MVMGrapheme32));
133
117
    return MVM_unicode_normalizer_process_codepoint(tc, n, in, (MVMGrapheme32 *)out);
134
117
}
Unexecuted instantiation: unicode.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: nfg.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
utf8_c8.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Line
Count
Source
131
766k
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_process_codepoint_to_grapheme(MVMThreadContext *tc, MVMNormalizer *n, MVMCodepoint in, MVMGrapheme32 *out) {
132
766k
    assert(sizeof(MVMCodepoint) == sizeof(MVMGrapheme32));
133
766k
    return MVM_unicode_normalizer_process_codepoint(tc, n, in, (MVMGrapheme32 *)out);
134
766k
}
Unexecuted instantiation: bigintops.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: parse_num.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: ascii.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: decode_stream.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: plugin.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: arg_guard.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: plan.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: stats.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: worker.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: iterator.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: moar.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: arch.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: interface.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: linear_scan.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: tile.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: expr.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: compile.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: label.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: time.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: mmap.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMContinuation.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: memmem32.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: random.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: sys.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: line_coverage.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: crossthreadwrite.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: telemeh.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: heapsnapshot.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: profile.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: instrument.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: Semaphore.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMStaticFrameSpesh.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMSpeshLog.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: Decoder.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MultiDimArray.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: NativeRef.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: CPPStruct.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMNull.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMAsyncTask.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: ConcBlockingQueue.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: osr.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: ConditionVariable.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: ReentrantMutex.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: CUnion.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: CStruct.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: CArray.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: CStr.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: CPointer.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: NativeCall.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: MVMMultiCache.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: bootstrap.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: lookup.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: inline.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: threshold.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: log.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: deopt.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: dead_bb_elimination.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: optimize.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: facts.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: manipulate.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: candidate.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: codegen.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: graph.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: dump.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: driver.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: compiler.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: serialization.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: sc.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
Unexecuted instantiation: 6model.c:MVM_unicode_normalizer_process_codepoint_to_grapheme
135
136
/* Push a number of codepoints into the "to normalize" buffer. */
137
void MVM_unicode_normalizer_push_codepoints(MVMThreadContext *tc, MVMNormalizer *n, const MVMCodepoint *in, MVMint32 num_codepoints);
138
139
/* Get the number of codepoints/graphemes ready to fetch. */
140
50.2k
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_available(MVMThreadContext *tc, MVMNormalizer *n) {
141
50.2k
    return n->buffer_norm_end - n->buffer_start;
142
50.2k
}
Unexecuted instantiation: args.c:MVM_unicode_normalizer_available
Unexecuted instantiation: callsite.c:MVM_unicode_normalizer_available
Unexecuted instantiation: reprs.c:MVM_unicode_normalizer_available
Unexecuted instantiation: KnowHOWAttributeREPR.c:MVM_unicode_normalizer_available
Unexecuted instantiation: KnowHOWREPR.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMCFunction.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMHash.c:MVM_unicode_normalizer_available
Unexecuted instantiation: VMArray.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMString.c:MVM_unicode_normalizer_available
Unexecuted instantiation: parametric.c:MVM_unicode_normalizer_available
Unexecuted instantiation: containers.c:MVM_unicode_normalizer_available
Unexecuted instantiation: reprconv.c:MVM_unicode_normalizer_available
Unexecuted instantiation: P6str.c:MVM_unicode_normalizer_available
Unexecuted instantiation: asyncsocketudp.c:MVM_unicode_normalizer_available
Unexecuted instantiation: asyncsocket.c:MVM_unicode_normalizer_available
Unexecuted instantiation: signals.c:MVM_unicode_normalizer_available
Unexecuted instantiation: filewatchers.c:MVM_unicode_normalizer_available
Unexecuted instantiation: timers.c:MVM_unicode_normalizer_available
Unexecuted instantiation: procops.c:MVM_unicode_normalizer_available
Unexecuted instantiation: dirops.c:MVM_unicode_normalizer_available
Unexecuted instantiation: fileops.c:MVM_unicode_normalizer_available
Unexecuted instantiation: syncsocket.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMThread.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMMultiCache.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMDLLSym.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMException.c:MVM_unicode_normalizer_available
Unexecuted instantiation: NFA.c:MVM_unicode_normalizer_available
Unexecuted instantiation: P6bigint.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMCallCapture.c:MVM_unicode_normalizer_available
Unexecuted instantiation: SCRef.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMContext.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMIter.c:MVM_unicode_normalizer_available
Unexecuted instantiation: syncfile.c:MVM_unicode_normalizer_available
Unexecuted instantiation: HashAttrStore.c:MVM_unicode_normalizer_available
Unexecuted instantiation: Uninstantiable.c:MVM_unicode_normalizer_available
Unexecuted instantiation: P6num.c:MVM_unicode_normalizer_available
Unexecuted instantiation: P6int.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMStaticFrame.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMCompUnit.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMOSHandle.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMCode.c:MVM_unicode_normalizer_available
Unexecuted instantiation: P6opaque.c:MVM_unicode_normalizer_available
Unexecuted instantiation: bytecodedump.c:MVM_unicode_normalizer_available
Unexecuted instantiation: nativecall.c:MVM_unicode_normalizer_available
Unexecuted instantiation: ext.c:MVM_unicode_normalizer_available
Unexecuted instantiation: dll.c:MVM_unicode_normalizer_available
Unexecuted instantiation: coerce.c:MVM_unicode_normalizer_available
Unexecuted instantiation: num.c:MVM_unicode_normalizer_available
Unexecuted instantiation: loadbytecode.c:MVM_unicode_normalizer_available
Unexecuted instantiation: hll.c:MVM_unicode_normalizer_available
ops.c:MVM_unicode_normalizer_available
Line
Count
Source
140
161
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_available(MVMThreadContext *tc, MVMNormalizer *n) {
141
161
    return n->buffer_norm_end - n->buffer_start;
142
161
}
Unexecuted instantiation: threads.c:MVM_unicode_normalizer_available
Unexecuted instantiation: nativecall_dyncall.c:MVM_unicode_normalizer_available
Unexecuted instantiation: validation.c:MVM_unicode_normalizer_available
Unexecuted instantiation: callstack.c:MVM_unicode_normalizer_available
Unexecuted instantiation: frame.c:MVM_unicode_normalizer_available
Unexecuted instantiation: bytecode.c:MVM_unicode_normalizer_available
Unexecuted instantiation: compunit.c:MVM_unicode_normalizer_available
Unexecuted instantiation: threadcontext.c:MVM_unicode_normalizer_available
Unexecuted instantiation: interp.c:MVM_unicode_normalizer_available
Unexecuted instantiation: exceptions.c:MVM_unicode_normalizer_available
Unexecuted instantiation: arch.c:MVM_unicode_normalizer_available
Unexecuted instantiation: worklist.c:MVM_unicode_normalizer_available
Unexecuted instantiation: eventloop.c:MVM_unicode_normalizer_available
Unexecuted instantiation: io.c:MVM_unicode_normalizer_available
Unexecuted instantiation: debug.c:MVM_unicode_normalizer_available
Unexecuted instantiation: finalize.c:MVM_unicode_normalizer_available
Unexecuted instantiation: objectid.c:MVM_unicode_normalizer_available
Unexecuted instantiation: wb.c:MVM_unicode_normalizer_available
Unexecuted instantiation: gen2.c:MVM_unicode_normalizer_available
Unexecuted instantiation: collect.c:MVM_unicode_normalizer_available
Unexecuted instantiation: roots.c:MVM_unicode_normalizer_available
Unexecuted instantiation: emit.c:MVM_unicode_normalizer_available
Unexecuted instantiation: allocation.c:MVM_unicode_normalizer_available
Unexecuted instantiation: orchestrate.c:MVM_unicode_normalizer_available
Unexecuted instantiation: config.c:MVM_unicode_normalizer_available
Unexecuted instantiation: debugserver.c:MVM_unicode_normalizer_available
Unexecuted instantiation: regionalloc.c:MVM_unicode_normalizer_available
Unexecuted instantiation: fixedsizealloc.c:MVM_unicode_normalizer_available
Unexecuted instantiation: intcache.c:MVM_unicode_normalizer_available
Unexecuted instantiation: continuation.c:MVM_unicode_normalizer_available
utf8_c8.c:MVM_unicode_normalizer_available
Line
Count
Source
140
18.5k
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_available(MVMThreadContext *tc, MVMNormalizer *n) {
141
18.5k
    return n->buffer_norm_end - n->buffer_start;
142
18.5k
}
Unexecuted instantiation: bigintops.c:MVM_unicode_normalizer_available
Unexecuted instantiation: shiftjis_codeindex.c:MVM_unicode_normalizer_available
Unexecuted instantiation: shiftjis.c:MVM_unicode_normalizer_available
Unexecuted instantiation: windows1252.c:MVM_unicode_normalizer_available
utf16.c:MVM_unicode_normalizer_available
Line
Count
Source
140
1
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_available(MVMThreadContext *tc, MVMNormalizer *n) {
141
1
    return n->buffer_norm_end - n->buffer_start;
142
1
}
Unexecuted instantiation: latin1.c:MVM_unicode_normalizer_available
normalize.c:MVM_unicode_normalizer_available
Line
Count
Source
140
3.43k
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_available(MVMThreadContext *tc, MVMNormalizer *n) {
141
3.43k
    return n->buffer_norm_end - n->buffer_start;
142
3.43k
}
Unexecuted instantiation: unicode.c:MVM_unicode_normalizer_available
Unexecuted instantiation: nfg.c:MVM_unicode_normalizer_available
Unexecuted instantiation: instrument.c:MVM_unicode_normalizer_available
utf8.c:MVM_unicode_normalizer_available
Line
Count
Source
140
27.7k
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_available(MVMThreadContext *tc, MVMNormalizer *n) {
141
27.7k
    return n->buffer_norm_end - n->buffer_start;
142
27.7k
}
Unexecuted instantiation: parse_num.c:MVM_unicode_normalizer_available
Unexecuted instantiation: ascii.c:MVM_unicode_normalizer_available
decode_stream.c:MVM_unicode_normalizer_available
Line
Count
Source
140
244
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_available(MVMThreadContext *tc, MVMNormalizer *n) {
141
244
    return n->buffer_norm_end - n->buffer_start;
142
244
}
Unexecuted instantiation: plugin.c:MVM_unicode_normalizer_available
Unexecuted instantiation: arg_guard.c:MVM_unicode_normalizer_available
Unexecuted instantiation: plan.c:MVM_unicode_normalizer_available
Unexecuted instantiation: stats.c:MVM_unicode_normalizer_available
Unexecuted instantiation: worker.c:MVM_unicode_normalizer_available
Unexecuted instantiation: moar.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMContinuation.c:MVM_unicode_normalizer_available
Unexecuted instantiation: interface.c:MVM_unicode_normalizer_available
Unexecuted instantiation: linear_scan.c:MVM_unicode_normalizer_available
Unexecuted instantiation: tile.c:MVM_unicode_normalizer_available
Unexecuted instantiation: expr.c:MVM_unicode_normalizer_available
Unexecuted instantiation: compile.c:MVM_unicode_normalizer_available
Unexecuted instantiation: label.c:MVM_unicode_normalizer_available
Unexecuted instantiation: time.c:MVM_unicode_normalizer_available
Unexecuted instantiation: mmap.c:MVM_unicode_normalizer_available
Unexecuted instantiation: NativeCall.c:MVM_unicode_normalizer_available
Unexecuted instantiation: memmem32.c:MVM_unicode_normalizer_available
Unexecuted instantiation: random.c:MVM_unicode_normalizer_available
Unexecuted instantiation: sys.c:MVM_unicode_normalizer_available
Unexecuted instantiation: line_coverage.c:MVM_unicode_normalizer_available
Unexecuted instantiation: crossthreadwrite.c:MVM_unicode_normalizer_available
Unexecuted instantiation: telemeh.c:MVM_unicode_normalizer_available
Unexecuted instantiation: heapsnapshot.c:MVM_unicode_normalizer_available
Unexecuted instantiation: profile.c:MVM_unicode_normalizer_available
Unexecuted instantiation: ConcBlockingQueue.c:MVM_unicode_normalizer_available
Unexecuted instantiation: 6model.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMStaticFrameSpesh.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMSpeshLog.c:MVM_unicode_normalizer_available
Unexecuted instantiation: Decoder.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MultiDimArray.c:MVM_unicode_normalizer_available
Unexecuted instantiation: NativeRef.c:MVM_unicode_normalizer_available
Unexecuted instantiation: CPPStruct.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMNull.c:MVM_unicode_normalizer_available
Unexecuted instantiation: MVMAsyncTask.c:MVM_unicode_normalizer_available
Unexecuted instantiation: lookup.c:MVM_unicode_normalizer_available
Unexecuted instantiation: Semaphore.c:MVM_unicode_normalizer_available
Unexecuted instantiation: ConditionVariable.c:MVM_unicode_normalizer_available
Unexecuted instantiation: ReentrantMutex.c:MVM_unicode_normalizer_available
Unexecuted instantiation: CUnion.c:MVM_unicode_normalizer_available
Unexecuted instantiation: CStruct.c:MVM_unicode_normalizer_available
Unexecuted instantiation: CArray.c:MVM_unicode_normalizer_available
Unexecuted instantiation: CStr.c:MVM_unicode_normalizer_available
Unexecuted instantiation: CPointer.c:MVM_unicode_normalizer_available
Unexecuted instantiation: iterator.c:MVM_unicode_normalizer_available
Unexecuted instantiation: sc.c:MVM_unicode_normalizer_available
Unexecuted instantiation: bootstrap.c:MVM_unicode_normalizer_available
Unexecuted instantiation: osr.c:MVM_unicode_normalizer_available
Unexecuted instantiation: inline.c:MVM_unicode_normalizer_available
Unexecuted instantiation: threshold.c:MVM_unicode_normalizer_available
Unexecuted instantiation: log.c:MVM_unicode_normalizer_available
Unexecuted instantiation: deopt.c:MVM_unicode_normalizer_available
Unexecuted instantiation: dead_bb_elimination.c:MVM_unicode_normalizer_available
Unexecuted instantiation: optimize.c:MVM_unicode_normalizer_available
Unexecuted instantiation: facts.c:MVM_unicode_normalizer_available
Unexecuted instantiation: candidate.c:MVM_unicode_normalizer_available
Unexecuted instantiation: codegen.c:MVM_unicode_normalizer_available
Unexecuted instantiation: graph.c:MVM_unicode_normalizer_available
Unexecuted instantiation: dump.c:MVM_unicode_normalizer_available
Unexecuted instantiation: driver.c:MVM_unicode_normalizer_available
Unexecuted instantiation: compiler.c:MVM_unicode_normalizer_available
Unexecuted instantiation: serialization.c:MVM_unicode_normalizer_available
Unexecuted instantiation: manipulate.c:MVM_unicode_normalizer_available
143
144
/* Get the number of codepoints/graphemes ready to fetch. */
145
254
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_empty(MVMThreadContext *tc, MVMNormalizer *n) {
146
254
    return n->buffer_end == n->buffer_start;
147
254
}
Unexecuted instantiation: reprs.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: reprconv.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: containers.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: parametric.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMString.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: VMArray.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMHash.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMCFunction.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: KnowHOWREPR.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: asyncsocketudp.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: asyncsocket.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: signals.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: filewatchers.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: timers.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: procops.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: dirops.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: fileops.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: syncsocket.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: lookup.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: HashAttrStore.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMDLLSym.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMException.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: NFA.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: P6bigint.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMCallCapture.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: SCRef.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMContext.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMIter.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMThread.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: KnowHOWAttributeREPR.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: Uninstantiable.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: P6num.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: P6int.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMStaticFrame.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMCompUnit.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMOSHandle.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMCode.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: P6opaque.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: P6str.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: validation.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: ext.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: dll.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: coerce.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: num.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: loadbytecode.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: hll.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: ops.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: threads.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: bytecodedump.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: nativecall.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: callstack.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: frame.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: bytecode.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: compunit.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: threadcontext.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: interp.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: exceptions.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: args.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: callsite.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: worklist.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: eventloop.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: io.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: debug.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: finalize.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: objectid.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: wb.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: gen2.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: collect.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: roots.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: syncfile.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: allocation.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: orchestrate.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: config.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: debugserver.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: regionalloc.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: fixedsizealloc.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: intcache.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: continuation.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: nativecall_dyncall.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: nfg.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: instrument.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: bigintops.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: shiftjis_codeindex.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: shiftjis.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: windows1252.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: utf16.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: latin1.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: normalize.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: unicode.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: profile.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: utf8_c8.c:MVM_unicode_normalizer_empty
utf8.c:MVM_unicode_normalizer_empty
Line
Count
Source
145
243
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_empty(MVMThreadContext *tc, MVMNormalizer *n) {
146
243
    return n->buffer_end == n->buffer_start;
147
243
}
Unexecuted instantiation: parse_num.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: ascii.c:MVM_unicode_normalizer_empty
decode_stream.c:MVM_unicode_normalizer_empty
Line
Count
Source
145
11
MVM_STATIC_INLINE MVMint32 MVM_unicode_normalizer_empty(MVMThreadContext *tc, MVMNormalizer *n) {
146
11
    return n->buffer_end == n->buffer_start;
147
11
}
Unexecuted instantiation: plugin.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: arg_guard.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: plan.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: stats.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: time.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMMultiCache.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: arch.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: emit.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: interface.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: linear_scan.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: tile.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: expr.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: compile.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: label.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMContinuation.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: mmap.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: moar.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: memmem32.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: random.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: sys.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: line_coverage.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: crossthreadwrite.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: telemeh.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: heapsnapshot.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: Semaphore.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMStaticFrameSpesh.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMSpeshLog.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: Decoder.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MultiDimArray.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: NativeRef.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: CPPStruct.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMNull.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: MVMAsyncTask.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: ConcBlockingQueue.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: iterator.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: ConditionVariable.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: ReentrantMutex.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: CUnion.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: CStruct.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: CArray.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: CStr.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: CPointer.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: NativeCall.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: worker.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: bootstrap.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: 6model.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: osr.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: inline.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: threshold.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: log.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: deopt.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: dead_bb_elimination.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: optimize.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: facts.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: candidate.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: codegen.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: graph.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: dump.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: driver.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: compiler.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: serialization.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: sc.c:MVM_unicode_normalizer_empty
Unexecuted instantiation: manipulate.c:MVM_unicode_normalizer_empty
148
149
/* Indicate that we've reached the end of the input stream. Any codepoints
150
 * left to normalize now can be. */
151
void MVM_unicode_normalizer_eof(MVMThreadContext *tc, MVMNormalizer *n);
152
153
/* Get a normalized codepoint; should only ever be called if there are some
154
 * known to be available, either because normalize_to_codepoint returned a
155
 * value greater than 1, or normalize_available returned a non-zero value. */
156
3.38k
MVM_STATIC_INLINE MVMCodepoint MVM_unicode_normalizer_get_codepoint(MVMThreadContext *tc, MVMNormalizer *n) {
157
3.38k
    if (n->buffer_norm_end == n->buffer_start)
158
0
        MVM_exception_throw_adhoc(tc, "Normalization: illegal call to get codepoint");
159
3.38k
    return n->buffer[n->buffer_start++];
160
3.38k
}
Unexecuted instantiation: manipulate.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: candidate.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: codegen.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: graph.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: dump.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: driver.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: compiler.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: serialization.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: sc.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: facts.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: optimize.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: dead_bb_elimination.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: deopt.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: log.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: threshold.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: inline.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: osr.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: lookup.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: iterator.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: ConcBlockingQueue.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: NativeCall.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: CPointer.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: CStr.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: CArray.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: CStruct.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: CUnion.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: ReentrantMutex.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: ConditionVariable.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: Semaphore.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: bootstrap.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMAsyncTask.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMNull.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: CPPStruct.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: NativeRef.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MultiDimArray.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: Decoder.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMSpeshLog.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMStaticFrameSpesh.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: 6model.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: time.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: heapsnapshot.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: telemeh.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: crossthreadwrite.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: line_coverage.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: sys.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: random.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: memmem32.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: moar.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: mmap.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: profile.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: label.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: compile.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: expr.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: tile.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: linear_scan.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: interface.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: emit.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: arch.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: callsite.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: nfg.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: stats.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: plan.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: arg_guard.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: plugin.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: decode_stream.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: ascii.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: parse_num.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: utf8.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: utf8_c8.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: worker.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: unicode.c:MVM_unicode_normalizer_get_codepoint
normalize.c:MVM_unicode_normalizer_get_codepoint
Line
Count
Source
156
3.38k
MVM_STATIC_INLINE MVMCodepoint MVM_unicode_normalizer_get_codepoint(MVMThreadContext *tc, MVMNormalizer *n) {
157
3.38k
    if (n->buffer_norm_end == n->buffer_start)
158
0
        MVM_exception_throw_adhoc(tc, "Normalization: illegal call to get codepoint");
159
3.38k
    return n->buffer[n->buffer_start++];
160
3.38k
}
Unexecuted instantiation: latin1.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: utf16.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: windows1252.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: shiftjis.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: shiftjis_codeindex.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: bigintops.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: instrument.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: roots.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: continuation.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: intcache.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: fixedsizealloc.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: regionalloc.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: debugserver.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: config.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: orchestrate.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: allocation.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: worklist.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: nativecall.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: collect.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: gen2.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: wb.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: objectid.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: finalize.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: debug.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: io.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: eventloop.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: syncfile.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: validation.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMContinuation.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: args.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: exceptions.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: interp.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: threadcontext.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: compunit.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: bytecode.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: frame.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: callstack.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: nativecall_dyncall.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: bytecodedump.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: threads.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: ops.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: hll.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: loadbytecode.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: num.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: coerce.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: dll.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: ext.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMThread.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: P6opaque.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMCode.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMOSHandle.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMCompUnit.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMStaticFrame.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: P6int.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: P6num.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: Uninstantiable.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: HashAttrStore.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: fileops.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMIter.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMContext.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: SCRef.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMCallCapture.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: P6bigint.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: NFA.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMException.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMDLLSym.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMMultiCache.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: signals.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: P6str.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: dirops.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: procops.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: timers.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: filewatchers.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: asyncsocket.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: asyncsocketudp.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: reprs.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: reprconv.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: parametric.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: syncsocket.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: KnowHOWAttributeREPR.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: KnowHOWREPR.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMCFunction.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMHash.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: VMArray.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: MVMString.c:MVM_unicode_normalizer_get_codepoint
Unexecuted instantiation: containers.c:MVM_unicode_normalizer_get_codepoint
161
162
/* Grapheme version of the above. Note that this exists mostly for API clarity
163
 * rather than adding any semantics; the normalizer must be configured to
164
 * produce NFG to get synthetics out. */
165
48.3k
MVM_STATIC_INLINE MVMGrapheme32 MVM_unicode_normalizer_get_grapheme(MVMThreadContext *tc, MVMNormalizer *n) {
166
48.3k
    assert(sizeof(MVMCodepoint) == sizeof(MVMGrapheme32));
167
48.3k
    if (n->buffer_norm_end == n->buffer_start)
168
0
        MVM_exception_throw_adhoc(tc, "Normalization: illegal call to get grapheme");
169
48.3k
    return (MVMGrapheme32)n->buffer[n->buffer_start++];
170
48.3k
}
Unexecuted instantiation: bootstrap.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: ConcBlockingQueue.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: sc.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: serialization.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: compiler.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: driver.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: dump.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: graph.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: codegen.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: candidate.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: manipulate.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: facts.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: optimize.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: dead_bb_elimination.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: deopt.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: log.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: threshold.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: inline.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: osr.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: lookup.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: ConditionVariable.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMContinuation.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: arch.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: NativeCall.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: CPointer.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: CStr.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: CArray.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: CStruct.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: CUnion.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: ReentrantMutex.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: 6model.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: Semaphore.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMAsyncTask.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMNull.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: CPPStruct.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: NativeRef.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MultiDimArray.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: Decoder.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMSpeshLog.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMStaticFrameSpesh.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: mmap.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: profile.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: heapsnapshot.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: telemeh.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: crossthreadwrite.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: line_coverage.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: sys.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: random.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: memmem32.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: moar.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: instrument.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: time.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: label.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: compile.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: expr.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: tile.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: linear_scan.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: interface.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: emit.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: iterator.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: nfg.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: stats.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: plan.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: arg_guard.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: plugin.c:MVM_unicode_normalizer_get_grapheme
decode_stream.c:MVM_unicode_normalizer_get_grapheme
Line
Count
Source
165
27
MVM_STATIC_INLINE MVMGrapheme32 MVM_unicode_normalizer_get_grapheme(MVMThreadContext *tc, MVMNormalizer *n) {
166
27
    assert(sizeof(MVMCodepoint) == sizeof(MVMGrapheme32));
167
27
    if (n->buffer_norm_end == n->buffer_start)
168
0
        MVM_exception_throw_adhoc(tc, "Normalization: illegal call to get grapheme");
169
27
    return (MVMGrapheme32)n->buffer[n->buffer_start++];
170
27
}
Unexecuted instantiation: ascii.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: parse_num.c:MVM_unicode_normalizer_get_grapheme
utf8.c:MVM_unicode_normalizer_get_grapheme
Line
Count
Source
165
28.9k
MVM_STATIC_INLINE MVMGrapheme32 MVM_unicode_normalizer_get_grapheme(MVMThreadContext *tc, MVMNormalizer *n) {
166
28.9k
    assert(sizeof(MVMCodepoint) == sizeof(MVMGrapheme32));
167
28.9k
    if (n->buffer_norm_end == n->buffer_start)
168
0
        MVM_exception_throw_adhoc(tc, "Normalization: illegal call to get grapheme");
169
28.9k
    return (MVMGrapheme32)n->buffer[n->buffer_start++];
170
28.9k
}
utf8_c8.c:MVM_unicode_normalizer_get_grapheme
Line
Count
Source
165
18.8k
MVM_STATIC_INLINE MVMGrapheme32 MVM_unicode_normalizer_get_grapheme(MVMThreadContext *tc, MVMNormalizer *n) {
166
18.8k
    assert(sizeof(MVMCodepoint) == sizeof(MVMGrapheme32));
167
18.8k
    if (n->buffer_norm_end == n->buffer_start)
168
0
        MVM_exception_throw_adhoc(tc, "Normalization: illegal call to get grapheme");
169
18.8k
    return (MVMGrapheme32)n->buffer[n->buffer_start++];
170
18.8k
}
Unexecuted instantiation: worker.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: unicode.c:MVM_unicode_normalizer_get_grapheme
normalize.c:MVM_unicode_normalizer_get_grapheme
Line
Count
Source
165
21
MVM_STATIC_INLINE MVMGrapheme32 MVM_unicode_normalizer_get_grapheme(MVMThreadContext *tc, MVMNormalizer *n) {
166
21
    assert(sizeof(MVMCodepoint) == sizeof(MVMGrapheme32));
167
21
    if (n->buffer_norm_end == n->buffer_start)
168
0
        MVM_exception_throw_adhoc(tc, "Normalization: illegal call to get grapheme");
169
21
    return (MVMGrapheme32)n->buffer[n->buffer_start++];
170
21
}
Unexecuted instantiation: latin1.c:MVM_unicode_normalizer_get_grapheme
utf16.c:MVM_unicode_normalizer_get_grapheme
Line
Count
Source
165
1
MVM_STATIC_INLINE MVMGrapheme32 MVM_unicode_normalizer_get_grapheme(MVMThreadContext *tc, MVMNormalizer *n) {
166
1
    assert(sizeof(MVMCodepoint) == sizeof(MVMGrapheme32));
167
1
    if (n->buffer_norm_end == n->buffer_start)
168
0
        MVM_exception_throw_adhoc(tc, "Normalization: illegal call to get grapheme");
169
1
    return (MVMGrapheme32)n->buffer[n->buffer_start++];
170
1
}
Unexecuted instantiation: windows1252.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: shiftjis.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: shiftjis_codeindex.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: bigintops.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: worklist.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: nativecall_dyncall.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: continuation.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: intcache.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: fixedsizealloc.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: regionalloc.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: debugserver.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: config.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: orchestrate.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: allocation.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: nativecall.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: roots.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: collect.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: gen2.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: wb.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: objectid.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: finalize.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: debug.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: io.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: eventloop.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: validation.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: callsite.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: args.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: exceptions.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: interp.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: threadcontext.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: compunit.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: bytecode.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: frame.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: callstack.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: syncfile.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: bytecodedump.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: threads.c:MVM_unicode_normalizer_get_grapheme
ops.c:MVM_unicode_normalizer_get_grapheme
Line
Count
Source
165
484
MVM_STATIC_INLINE MVMGrapheme32 MVM_unicode_normalizer_get_grapheme(MVMThreadContext *tc, MVMNormalizer *n) {
166
484
    assert(sizeof(MVMCodepoint) == sizeof(MVMGrapheme32));
167
484
    if (n->buffer_norm_end == n->buffer_start)
168
0
        MVM_exception_throw_adhoc(tc, "Normalization: illegal call to get grapheme");
169
484
    return (MVMGrapheme32)n->buffer[n->buffer_start++];
170
484
}
Unexecuted instantiation: hll.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: loadbytecode.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: num.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: coerce.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: dll.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: ext.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: HashAttrStore.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: P6str.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: P6opaque.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMCode.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMOSHandle.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMCompUnit.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMStaticFrame.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: P6int.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: P6num.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: Uninstantiable.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: KnowHOWAttributeREPR.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMThread.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMIter.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMContext.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: SCRef.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMCallCapture.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: P6bigint.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: NFA.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMException.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMDLLSym.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: reprs.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: syncsocket.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: fileops.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: dirops.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: procops.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: timers.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: filewatchers.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: signals.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: asyncsocket.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: asyncsocketudp.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMMultiCache.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: reprconv.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: containers.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: parametric.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMString.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: VMArray.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMHash.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: MVMCFunction.c:MVM_unicode_normalizer_get_grapheme
Unexecuted instantiation: KnowHOWREPR.c:MVM_unicode_normalizer_get_grapheme
171
172
/* Setup and teardown of the MVMNormalizer struct. */
173
MVMNormalization MVM_unicode_normalizer_form(MVMThreadContext *tc, MVMint64 form_in);
174
void MVM_unicode_normalizer_init(MVMThreadContext *tc, MVMNormalizer *n, MVMNormalization norm);
175
void MVM_unicode_normalizer_translate_newlines(MVMThreadContext *tc, MVMNormalizer *n);
176
void MVM_unicode_normalizer_cleanup(MVMThreadContext *tc, MVMNormalizer *n);
177
178
/* High-level normalize implementation, working from an input array of
179
 * codepoints and producing an output array of codepoints. */
180
void MVM_unicode_normalize_codepoints(MVMThreadContext *tc, const MVMObject *in, MVMObject *out, MVMNormalization form);
181
182
/* High-level function to produces an NFG string from an input array of
183
 * codepoints. */
184
MVMString * MVM_unicode_codepoints_to_nfg_string(MVMThreadContext *tc,const MVMObject *codes);
185
MVMString * MVM_unicode_codepoints_c_array_to_nfg_string(MVMThreadContext *tc, MVMCodepoint * cp_v, MVMint64 cp_count);
186
187
/* High-level function to produce an array of codepoints from a string. */
188
void MVM_unicode_string_to_codepoints(MVMThreadContext *tc, MVMString *s, MVMNormalization form, MVMObject *out);
189
190
/* faster atoi function */
191
52
MVM_STATIC_INLINE MVMint32 fast_atoi( const char * dec_str ) {
192
52
    MVMint32 value = 0;
193
104
    while( *dec_str ) {
194
52
        value = value*10 + (*dec_str++ - '0');
195
52
    }
196
52
    return value;
197
52
}
Unexecuted instantiation: reprs.c:fast_atoi
Unexecuted instantiation: KnowHOWAttributeREPR.c:fast_atoi
Unexecuted instantiation: KnowHOWREPR.c:fast_atoi
Unexecuted instantiation: MVMCFunction.c:fast_atoi
Unexecuted instantiation: MVMHash.c:fast_atoi
Unexecuted instantiation: VMArray.c:fast_atoi
Unexecuted instantiation: MVMString.c:fast_atoi
Unexecuted instantiation: parametric.c:fast_atoi
Unexecuted instantiation: containers.c:fast_atoi
Unexecuted instantiation: reprconv.c:fast_atoi
Unexecuted instantiation: P6str.c:fast_atoi
Unexecuted instantiation: asyncsocketudp.c:fast_atoi
Unexecuted instantiation: asyncsocket.c:fast_atoi
Unexecuted instantiation: signals.c:fast_atoi
Unexecuted instantiation: filewatchers.c:fast_atoi
Unexecuted instantiation: timers.c:fast_atoi
Unexecuted instantiation: procops.c:fast_atoi
Unexecuted instantiation: dirops.c:fast_atoi
Unexecuted instantiation: fileops.c:fast_atoi
Unexecuted instantiation: syncsocket.c:fast_atoi
Unexecuted instantiation: MVMThread.c:fast_atoi
Unexecuted instantiation: MVMMultiCache.c:fast_atoi
Unexecuted instantiation: MVMDLLSym.c:fast_atoi
Unexecuted instantiation: MVMException.c:fast_atoi
Unexecuted instantiation: NFA.c:fast_atoi
Unexecuted instantiation: P6bigint.c:fast_atoi
Unexecuted instantiation: MVMCallCapture.c:fast_atoi
Unexecuted instantiation: SCRef.c:fast_atoi
Unexecuted instantiation: MVMContext.c:fast_atoi
Unexecuted instantiation: MVMIter.c:fast_atoi
Unexecuted instantiation: syncfile.c:fast_atoi
Unexecuted instantiation: HashAttrStore.c:fast_atoi
Unexecuted instantiation: Uninstantiable.c:fast_atoi
Unexecuted instantiation: P6num.c:fast_atoi
Unexecuted instantiation: P6int.c:fast_atoi
Unexecuted instantiation: MVMStaticFrame.c:fast_atoi
Unexecuted instantiation: MVMCompUnit.c:fast_atoi
Unexecuted instantiation: MVMOSHandle.c:fast_atoi
Unexecuted instantiation: MVMCode.c:fast_atoi
Unexecuted instantiation: P6opaque.c:fast_atoi
Unexecuted instantiation: bytecodedump.c:fast_atoi
Unexecuted instantiation: nativecall.c:fast_atoi
Unexecuted instantiation: ext.c:fast_atoi
Unexecuted instantiation: dll.c:fast_atoi
coerce.c:fast_atoi
Line
Count
Source
191
4
MVM_STATIC_INLINE MVMint32 fast_atoi( const char * dec_str ) {
192
4
    MVMint32 value = 0;
193
8
    while( *dec_str ) {
194
4
        value = value*10 + (*dec_str++ - '0');
195
4
    }
196
4
    return value;
197
4
}
Unexecuted instantiation: num.c:fast_atoi
Unexecuted instantiation: loadbytecode.c:fast_atoi
Unexecuted instantiation: hll.c:fast_atoi
Unexecuted instantiation: ops.c:fast_atoi
Unexecuted instantiation: threads.c:fast_atoi
Unexecuted instantiation: nativecall_dyncall.c:fast_atoi
Unexecuted instantiation: validation.c:fast_atoi
Unexecuted instantiation: callstack.c:fast_atoi
Unexecuted instantiation: frame.c:fast_atoi
Unexecuted instantiation: bytecode.c:fast_atoi
Unexecuted instantiation: compunit.c:fast_atoi
Unexecuted instantiation: threadcontext.c:fast_atoi
Unexecuted instantiation: interp.c:fast_atoi
Unexecuted instantiation: exceptions.c:fast_atoi
Unexecuted instantiation: args.c:fast_atoi
Unexecuted instantiation: worklist.c:fast_atoi
Unexecuted instantiation: eventloop.c:fast_atoi
Unexecuted instantiation: io.c:fast_atoi
Unexecuted instantiation: debug.c:fast_atoi
Unexecuted instantiation: finalize.c:fast_atoi
Unexecuted instantiation: objectid.c:fast_atoi
Unexecuted instantiation: wb.c:fast_atoi
Unexecuted instantiation: gen2.c:fast_atoi
Unexecuted instantiation: collect.c:fast_atoi
Unexecuted instantiation: roots.c:fast_atoi
Unexecuted instantiation: MVMContinuation.c:fast_atoi
Unexecuted instantiation: allocation.c:fast_atoi
Unexecuted instantiation: orchestrate.c:fast_atoi
Unexecuted instantiation: config.c:fast_atoi
Unexecuted instantiation: debugserver.c:fast_atoi
Unexecuted instantiation: regionalloc.c:fast_atoi
Unexecuted instantiation: fixedsizealloc.c:fast_atoi
Unexecuted instantiation: intcache.c:fast_atoi
Unexecuted instantiation: continuation.c:fast_atoi
Unexecuted instantiation: utf8_c8.c:fast_atoi
bigintops.c:fast_atoi
Line
Count
Source
191
4
MVM_STATIC_INLINE MVMint32 fast_atoi( const char * dec_str ) {
192
4
    MVMint32 value = 0;
193
8
    while( *dec_str ) {
194
4
        value = value*10 + (*dec_str++ - '0');
195
4
    }
196
4
    return value;
197
4
}
Unexecuted instantiation: shiftjis_codeindex.c:fast_atoi
Unexecuted instantiation: shiftjis.c:fast_atoi
Unexecuted instantiation: windows1252.c:fast_atoi
Unexecuted instantiation: utf16.c:fast_atoi
Unexecuted instantiation: latin1.c:fast_atoi
Unexecuted instantiation: normalize.c:fast_atoi
Unexecuted instantiation: unicode.c:fast_atoi
Unexecuted instantiation: nfg.c:fast_atoi
Unexecuted instantiation: instrument.c:fast_atoi
Unexecuted instantiation: utf8.c:fast_atoi
parse_num.c:fast_atoi
Line
Count
Source
191
44
MVM_STATIC_INLINE MVMint32 fast_atoi( const char * dec_str ) {
192
44
    MVMint32 value = 0;
193
88
    while( *dec_str ) {
194
44
        value = value*10 + (*dec_str++ - '0');
195
44
    }
196
44
    return value;
197
44
}
Unexecuted instantiation: ascii.c:fast_atoi
Unexecuted instantiation: decode_stream.c:fast_atoi
Unexecuted instantiation: plugin.c:fast_atoi
Unexecuted instantiation: arg_guard.c:fast_atoi
Unexecuted instantiation: plan.c:fast_atoi
Unexecuted instantiation: stats.c:fast_atoi
Unexecuted instantiation: worker.c:fast_atoi
Unexecuted instantiation: mmap.c:fast_atoi
Unexecuted instantiation: arch.c:fast_atoi
Unexecuted instantiation: emit.c:fast_atoi
Unexecuted instantiation: interface.c:fast_atoi
Unexecuted instantiation: linear_scan.c:fast_atoi
Unexecuted instantiation: tile.c:fast_atoi
Unexecuted instantiation: expr.c:fast_atoi
Unexecuted instantiation: compile.c:fast_atoi
Unexecuted instantiation: label.c:fast_atoi
Unexecuted instantiation: time.c:fast_atoi
Unexecuted instantiation: iterator.c:fast_atoi
Unexecuted instantiation: moar.c:fast_atoi
Unexecuted instantiation: memmem32.c:fast_atoi
Unexecuted instantiation: random.c:fast_atoi
Unexecuted instantiation: sys.c:fast_atoi
Unexecuted instantiation: line_coverage.c:fast_atoi
Unexecuted instantiation: crossthreadwrite.c:fast_atoi
Unexecuted instantiation: telemeh.c:fast_atoi
Unexecuted instantiation: heapsnapshot.c:fast_atoi
Unexecuted instantiation: profile.c:fast_atoi
Unexecuted instantiation: ConcBlockingQueue.c:fast_atoi
Unexecuted instantiation: 6model.c:fast_atoi
Unexecuted instantiation: MVMStaticFrameSpesh.c:fast_atoi
Unexecuted instantiation: MVMSpeshLog.c:fast_atoi
Unexecuted instantiation: Decoder.c:fast_atoi
Unexecuted instantiation: MultiDimArray.c:fast_atoi
Unexecuted instantiation: NativeRef.c:fast_atoi
Unexecuted instantiation: CPPStruct.c:fast_atoi
Unexecuted instantiation: MVMNull.c:fast_atoi
Unexecuted instantiation: MVMAsyncTask.c:fast_atoi
Unexecuted instantiation: bootstrap.c:fast_atoi
Unexecuted instantiation: Semaphore.c:fast_atoi
Unexecuted instantiation: ConditionVariable.c:fast_atoi
Unexecuted instantiation: ReentrantMutex.c:fast_atoi
Unexecuted instantiation: CUnion.c:fast_atoi
Unexecuted instantiation: CStruct.c:fast_atoi
Unexecuted instantiation: CArray.c:fast_atoi
Unexecuted instantiation: CStr.c:fast_atoi
Unexecuted instantiation: CPointer.c:fast_atoi
Unexecuted instantiation: NativeCall.c:fast_atoi
Unexecuted instantiation: manipulate.c:fast_atoi
Unexecuted instantiation: lookup.c:fast_atoi
Unexecuted instantiation: osr.c:fast_atoi
Unexecuted instantiation: inline.c:fast_atoi
Unexecuted instantiation: threshold.c:fast_atoi
Unexecuted instantiation: log.c:fast_atoi
Unexecuted instantiation: deopt.c:fast_atoi
Unexecuted instantiation: dead_bb_elimination.c:fast_atoi
Unexecuted instantiation: optimize.c:fast_atoi
Unexecuted instantiation: facts.c:fast_atoi
Unexecuted instantiation: callsite.c:fast_atoi
Unexecuted instantiation: candidate.c:fast_atoi
Unexecuted instantiation: codegen.c:fast_atoi
Unexecuted instantiation: graph.c:fast_atoi
Unexecuted instantiation: dump.c:fast_atoi
Unexecuted instantiation: driver.c:fast_atoi
Unexecuted instantiation: compiler.c:fast_atoi
Unexecuted instantiation: serialization.c:fast_atoi
Unexecuted instantiation: sc.c:fast_atoi
198
MVMint64 MVM_unicode_relative_ccc(MVMThreadContext *tc, MVMCodepoint cp);
199
MVMint32 MVM_unicode_normalize_should_break(MVMThreadContext *tc, MVMCodepoint a, MVMCodepoint b, MVMNormalizer *norm);
200
MVMint64 MVM_unicode_relative_ccc(MVMThreadContext *tc, MVMCodepoint cp);
201
MVMint32 MVM_string_is_control_full(MVMThreadContext *tc, MVMCodepoint in);
202
/* Function for choosing the appropriate line-ending grapheme depending on if
203
 * newline translation is enabled. */
204
0
MVM_STATIC_INLINE MVMGrapheme32 MVM_unicode_normalizer_translated_crlf(MVMThreadContext *tc, MVMNormalizer *n) {
205
0
    return n->translate_newlines
206
0
        ? '\n'
207
0
        : MVM_nfg_crlf_grapheme(tc);
208
0
}
Unexecuted instantiation: reprs.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: KnowHOWAttributeREPR.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: KnowHOWREPR.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMCFunction.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMHash.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: VMArray.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMString.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: parametric.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: containers.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: reprconv.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: P6str.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: asyncsocketudp.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: asyncsocket.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: signals.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: filewatchers.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: timers.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: procops.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: dirops.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: fileops.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: syncsocket.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMThread.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMMultiCache.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMDLLSym.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMException.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: NFA.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: P6bigint.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMCallCapture.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: SCRef.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMContext.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMIter.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: syncfile.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: HashAttrStore.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: Uninstantiable.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: P6num.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: P6int.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMStaticFrame.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMCompUnit.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMOSHandle.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMCode.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: P6opaque.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: bytecodedump.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: nativecall.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: ext.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: dll.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: coerce.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: num.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: loadbytecode.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: hll.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: ops.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: threads.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: nativecall_dyncall.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: validation.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: callstack.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: frame.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: bytecode.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: compunit.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: threadcontext.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: interp.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: exceptions.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: args.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: worklist.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: eventloop.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: io.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: debug.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: finalize.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: objectid.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: wb.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: gen2.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: collect.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: roots.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMContinuation.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: allocation.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: orchestrate.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: config.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: debugserver.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: regionalloc.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: fixedsizealloc.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: intcache.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: continuation.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: utf8_c8.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: bigintops.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: shiftjis_codeindex.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: shiftjis.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: windows1252.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: utf16.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: latin1.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: normalize.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: unicode.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: nfg.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: instrument.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: utf8.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: parse_num.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: ascii.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: decode_stream.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: plugin.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: arg_guard.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: plan.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: stats.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: worker.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: mmap.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: arch.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: emit.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: interface.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: linear_scan.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: tile.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: expr.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: compile.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: label.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: time.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: iterator.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: moar.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: memmem32.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: random.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: sys.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: line_coverage.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: crossthreadwrite.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: telemeh.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: heapsnapshot.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: profile.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: ConcBlockingQueue.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: 6model.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMStaticFrameSpesh.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMSpeshLog.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: Decoder.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MultiDimArray.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: NativeRef.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: CPPStruct.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMNull.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: MVMAsyncTask.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: bootstrap.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: Semaphore.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: ConditionVariable.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: ReentrantMutex.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: CUnion.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: CStruct.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: CArray.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: CStr.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: CPointer.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: NativeCall.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: manipulate.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: lookup.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: osr.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: inline.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: threshold.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: log.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: deopt.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: dead_bb_elimination.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: optimize.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: facts.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: callsite.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: candidate.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: codegen.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: graph.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: dump.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: driver.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: compiler.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: serialization.c:MVM_unicode_normalizer_translated_crlf
Unexecuted instantiation: sc.c:MVM_unicode_normalizer_translated_crlf