/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 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 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 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 |