Lines Matching refs:compiler_common

377 struct compiler_common {  struct
666 …e_char_range(const regex_char_t *regex_string, int length, struct compiler_common *compiler_common) in parse_char_range() argument
668 struct stack* stack = &compiler_common->stack; in parse_char_range()
693 compiler_common->dfa_size += 2; in parse_char_range()
701 compiler_common->dfa_size++; in parse_char_range()
751 compiler_common->dfa_size += 2; in parse_char_range()
756 compiler_common->dfa_size++; in parse_char_range()
765 …ic int parse(const regex_char_t *regex_string, int length, struct compiler_common *compiler_common) in parse() argument
772 struct stack* stack = &compiler_common->stack; in parse()
776 compiler_common->dfa_size = 2; in parse()
782 compiler_common->flags |= REGEX_MATCH_BEGIN; in parse()
787 …if ((compiler_common->flags & (REGEX_MATCH_BEGIN | REGEX_NEWLINE)) == (REGEX_MATCH_BEGIN | REGEX_N… in parse()
789 compiler_common->flags &= ~REGEX_MATCH_BEGIN; in parse()
790 compiler_common->flags |= REGEX_FAKE_MATCH_BEGIN; in parse()
794 compiler_common->dfa_size++; in parse()
808 compiler_common->dfa_size++; in parse()
814 if (compiler_common->flags & REGEX_NEWLINE) { in parse()
819 compiler_common->dfa_size += 2; in parse()
824 compiler_common->dfa_size += 2; in parse()
847 compiler_common->dfa_size += 2; in parse()
855 compiler_common->dfa_size += 2; in parse()
864 compiler_common->dfa_size++; in parse()
868 tmp = parse_iterator(regex_string, length, stack, &compiler_common->dfa_size, begin); in parse()
881 compiler_common->dfa_size++; in parse()
886 tmp = parse_char_range(regex_string, length, compiler_common); in parse()
902 compiler_common->flags |= REGEX_MATCH_END; in parse()
908 compiler_common->dfa_size++; in parse()
918 …if ((compiler_common->flags & (REGEX_MATCH_END | REGEX_NEWLINE)) == (REGEX_MATCH_END | REGEX_NEWLI… in parse()
920 compiler_common->flags &= ~REGEX_MATCH_END; in parse()
921 compiler_common->flags |= REGEX_FAKE_MATCH_END; in parse()
925 compiler_common->dfa_size++; in parse()
976 static int generate_transitions(struct compiler_common *compiler_common) in generate_transitions() argument
978 struct stack *stack = &compiler_common->stack; in generate_transitions()
979 struct stack *depth = &compiler_common->depth; in generate_transitions()
984compiler_common->dfa_transitions = SLJIT_MALLOC(sizeof(struct stack_item) * compiler_common->dfa_s… in generate_transitions()
985 if (!compiler_common->dfa_transitions) in generate_transitions()
989 transitions_ptr = compiler_common->dfa_transitions + compiler_common->dfa_size; in generate_transitions()
1003 transitions_ptr = handle_iteratives(transitions_ptr, compiler_common->dfa_transitions, depth); in generate_transitions()
1010 if (stack_push(depth, type_close_br, transitions_ptr - compiler_common->dfa_transitions)) in generate_transitions()
1017 SLJIT_ASSERT(compiler_common->dfa_transitions[item->value].type == type_jump); in generate_transitions()
1020 item->value = transitions_ptr - compiler_common->dfa_transitions; in generate_transitions()
1026 item->value = transitions_ptr - compiler_common->dfa_transitions; in generate_transitions()
1035 if (stack_push(depth, item->type, transitions_ptr - compiler_common->dfa_transitions)) in generate_transitions()
1044 transitions_ptr = handle_iteratives(transitions_ptr, compiler_common->dfa_transitions, depth); in generate_transitions()
1053 SLJIT_ASSERT(compiler_common->dfa_transitions == transitions_ptr); in generate_transitions()
1062 static void verbose_transitions(struct compiler_common *compiler_common) in verbose_transitions() argument
1064 struct stack_item *transitions_ptr = compiler_common->dfa_transitions; in verbose_transitions()
1065 struct stack_item *transitions_end = transitions_ptr + compiler_common->dfa_size; in verbose_transitions()
1066 struct stack_item *search_states_ptr = compiler_common->search_states; in verbose_transitions()
1144 …if (!(compiler_common->flags & (REGEX_MATCH_BEGIN | REGEX_MATCH_END | REGEX_NEWLINE | REGEX_ID_CHE… in verbose_transitions()
1146 if (compiler_common->flags & REGEX_MATCH_BEGIN) in verbose_transitions()
1148 if (compiler_common->flags & REGEX_MATCH_END) in verbose_transitions()
1150 if (compiler_common->flags & REGEX_NEWLINE) in verbose_transitions()
1152 if (compiler_common->flags & REGEX_ID_CHECK) in verbose_transitions()
1154 if (compiler_common->flags & REGEX_FAKE_MATCH_BEGIN) in verbose_transitions()
1156 if (compiler_common->flags & REGEX_FAKE_MATCH_END) in verbose_transitions()
1158 if (compiler_common->longest_range_size > 0) in verbose_transitions()
1159 printf("(longest range: %ld) ", (long)compiler_common->longest_range_size); in verbose_transitions()
1169 static int generate_search_states(struct compiler_common *compiler_common) in generate_search_states() argument
1171 struct stack_item *transitions_ptr = compiler_common->dfa_transitions; in generate_search_states()
1172 struct stack_item *transitions_end = transitions_ptr + compiler_common->dfa_size; in generate_search_states()
1176 compiler_common->terms_size = !(compiler_common->flags & REGEX_FAKE_MATCH_END) ? 1 : 2; in generate_search_states()
1177 compiler_common->longest_range_size = 0; in generate_search_states()
1178compiler_common->search_states = SLJIT_MALLOC(sizeof(struct stack_item) * compiler_common->dfa_siz… in generate_search_states()
1179 if (!compiler_common->search_states) in generate_search_states()
1182 search_states_ptr = compiler_common->search_states; in generate_search_states()
1191 search_states_ptr->type = compiler_common->terms_size++; in generate_search_states()
1198 search_states_ptr->type = compiler_common->terms_size++; in generate_search_states()
1204 compiler_common->flags |= REGEX_ID_CHECK; in generate_search_states()
1209 search_states_ptr->type = compiler_common->terms_size; in generate_search_states()
1214 search_states_ptr->type = compiler_common->terms_size++; in generate_search_states()
1216 if (compiler_common->longest_range_size < search_states_ptr - rng_start) in generate_search_states()
1217 compiler_common->longest_range_size = search_states_ptr - rng_start; in generate_search_states()
1231 static int trace_transitions(int from, struct compiler_common *compiler_common) in trace_transitions() argument
1234 struct stack *stack = &compiler_common->stack; in trace_transitions()
1235 struct stack *depth = &compiler_common->depth; in trace_transitions()
1236 struct stack_item *dfa_transitions = compiler_common->dfa_transitions; in trace_transitions()
1237 struct stack_item *search_states = compiler_common->search_states; in trace_transitions()
1313 static int compile_uncond_tran(struct compiler_common *compiler_common, int reg) in compile_uncond_tran() argument
1315 struct sljit_compiler *compiler = compiler_common->compiler; in compile_uncond_tran()
1316 struct stack *stack = &compiler_common->stack; in compile_uncond_tran()
1317 struct stack_item *search_states = compiler_common->search_states; in compile_uncond_tran()
1318 int flags = compiler_common->flags; in compile_uncond_tran()
1319 sljit_sw no_states = compiler_common->no_states; in compile_uncond_tran()
1323 if (reg != R_CURR_STATE || !(compiler_common->flags & REGEX_FAKE_MATCH_BEGIN)) { in compile_uncond_tran()
1324 CHECK(trace_transitions(0, compiler_common)); in compile_uncond_tran()
1327 CHECK(trace_transitions(1, compiler_common)); in compile_uncond_tran()
1354 …SLJIT_ASSERT(compiler_common->dfa_transitions[1].type == type_newline && !compiler_common->dfa_tra… in compile_uncond_tran()
1371 static int compile_cond_tran(struct compiler_common *compiler_common, sljit_sw curr_index) in compile_cond_tran() argument
1373 struct sljit_compiler *compiler = compiler_common->compiler; in compile_cond_tran()
1374 struct stack *stack = &compiler_common->stack; in compile_cond_tran()
1375 struct stack_item *search_states = compiler_common->search_states; in compile_cond_tran()
1387 flags = compiler_common->flags; in compile_cond_tran()
1388 no_states = compiler_common->no_states; in compile_cond_tran()
1540 static int compile_end_check(struct compiler_common *compiler_common, struct sljit_label *end_check… in compile_end_check() argument
1542 struct sljit_compiler *compiler = compiler_common->compiler; in compile_end_check()
1557 if (!(compiler_common->flags & REGEX_MATCH_BEGIN)) { in compile_end_check()
1559 …EMIT_CMP(jump, !(compiler_common->flags & REGEX_MATCH_NON_GREEDY) ? SLJIT_LESS : SLJIT_LESS_EQUAL,… in compile_end_check()
1563 if (!(compiler_common->flags & (REGEX_FAKE_MATCH_BEGIN | REGEX_FAKE_MATCH_END))) { in compile_end_check()
1567 …if ((compiler_common->flags & (REGEX_FAKE_MATCH_BEGIN | REGEX_FAKE_MATCH_END)) == (REGEX_FAKE_MATC… in compile_end_check()
1574 if (compiler_common->flags & REGEX_ID_CHECK) { in compile_end_check()
1599 …EMIT_CMP(clear_states_jump, !(compiler_common->flags & REGEX_MATCH_NON_GREEDY) ? SLJIT_GREATER : S… in compile_end_check()
1623 if (compiler_common->flags & REGEX_ID_CHECK) { in compile_end_check()
1632 static int compile_leave_fast_forward(struct compiler_common *compiler_common, struct sljit_label *… in compile_leave_fast_forward() argument
1634 struct sljit_compiler *compiler = compiler_common->compiler; in compile_leave_fast_forward()
1635 struct stack *stack = &compiler_common->stack; in compile_leave_fast_forward()
1636 struct stack_item *dfa_transitions = compiler_common->dfa_transitions; in compile_leave_fast_forward()
1637 struct stack_item *search_states = compiler_common->search_states; in compile_leave_fast_forward()
1694 static int compile_newline_check(struct compiler_common *compiler_common, sljit_sw ind) in compile_newline_check() argument
1696 struct sljit_compiler *compiler = compiler_common->compiler; in compile_newline_check()
1707 no_states = compiler_common->no_states; in compile_newline_check()
1708 offset = TERM_OFFSET_OF(compiler_common->search_states[ind].type, 1); in compile_newline_check()
1733 static sljit_sw compile_range_check(struct compiler_common *compiler_common, sljit_sw ind) in compile_range_check() argument
1735 struct sljit_compiler *compiler = compiler_common->compiler; in compile_range_check()
1736 struct stack_item *dfa_transitions = compiler_common->dfa_transitions; in compile_range_check()
1737 struct sljit_jump **range_jump_list = compiler_common->range_jump_list; in compile_range_check()
1778 no_states = compiler_common->no_states; in compile_range_check()
1779 offset = TERM_OFFSET_OF(compiler_common->search_states[ind].type, 1); in compile_range_check()
1785 range_set_label(compiler_common->range_jump_list, label); in compile_range_check()
1787 *compiler_common->range_jump_list = NULL; in compile_range_check()
1804 #define TERM_OFFSET_OF(ind, offs) (((ind) * compiler_common.no_states + (offs)) * sizeof(sljit_sw))
1807 CHECK(sljit_emit_op1(compiler_common.compiler, type, arg1, arg2, arg3, arg4))
1810 CHECK(sljit_emit_op2(compiler_common.compiler, type, arg1, arg2, arg3, arg4, arg5, arg6))
1813 label = sljit_emit_label(compiler_common.compiler); \
1817 jump = sljit_emit_jump(compiler_common.compiler, type); \
1821 jump = sljit_emit_cmp(compiler_common.compiler, type, arg1, arg2, arg3, arg4); \
1837 struct compiler_common compiler_common; in regex_compile() local
1859compiler_common.flags = re_flags & (REGEX_MATCH_BEGIN | REGEX_MATCH_END | REGEX_MATCH_NON_GREEDY |… in regex_compile()
1861compiler_common.flags = re_flags & (REGEX_MATCH_BEGIN | REGEX_MATCH_END | REGEX_MATCH_NON_GREEDY |… in regex_compile()
1866 error_code = parse(regex_string, length, &compiler_common); in regex_compile()
1868 stack_destroy(&compiler_common.stack); in regex_compile()
1875 error_code = generate_transitions(&compiler_common); in regex_compile()
1876 stack_destroy(&compiler_common.stack); in regex_compile()
1877 stack_destroy(&compiler_common.depth); in regex_compile()
1879 if (compiler_common.dfa_transitions) in regex_compile()
1880 SLJIT_FREE(compiler_common.dfa_transitions, NULL); in regex_compile()
1887 error_code = generate_search_states(&compiler_common); in regex_compile()
1889 SLJIT_FREE(compiler_common.dfa_transitions, NULL); in regex_compile()
1896 if (compiler_common.flags & REGEX_MATCH_VERBOSE) in regex_compile()
1897 verbose_transitions(&compiler_common); in regex_compile()
1901 stack_init(&compiler_common.stack); in regex_compile()
1902 stack_init(&compiler_common.depth); in regex_compile()
1904 compiler_common.machine = NULL; in regex_compile()
1905 compiler_common.compiler = NULL; in regex_compile()
1906 compiler_common.range_jump_list = NULL; in regex_compile()
1910compiler_common.machine = (struct regex_machine*)SLJIT_MALLOC(sizeof(struct regex_machine) + (comp… in regex_compile()
1911 CHECK(!compiler_common.machine); in regex_compile()
1913 compiler_common.compiler = sljit_create_compiler(NULL); in regex_compile()
1914 CHECK(!compiler_common.compiler); in regex_compile()
1916 if (compiler_common.longest_range_size > 0) { in regex_compile()
1917compiler_common.range_jump_list = (struct sljit_jump**)SLJIT_MALLOC(sizeof(struct sljit_jump*) * c… in regex_compile()
1918 CHECK(!compiler_common.range_jump_list); in regex_compile()
1921 if ((compiler_common.flags & REGEX_ID_CHECK) && !(compiler_common.flags & REGEX_MATCH_BEGIN)) in regex_compile()
1922 compiler_common.no_states = 4; in regex_compile()
1923 else if (!(compiler_common.flags & REGEX_ID_CHECK) && (compiler_common.flags & REGEX_MATCH_BEGIN)) in regex_compile()
1924 compiler_common.no_states = 2; in regex_compile()
1926 compiler_common.no_states = 3; in regex_compile()
1928 compiler_common.machine->flags = compiler_common.flags; in regex_compile()
1929 compiler_common.machine->no_states = compiler_common.no_states; in regex_compile()
1930 compiler_common.machine->size = compiler_common.machine->no_states * compiler_common.terms_size; in regex_compile()
1935 if (!(compiler_common.flags & REGEX_FAKE_MATCH_BEGIN)) { in regex_compile()
1936 CHECK(trace_transitions(0, &compiler_common)); in regex_compile()
1937 while (compiler_common.stack.count > 0) { in regex_compile()
1938 ind = stack_pop(&compiler_common.stack)->value; in regex_compile()
1939 if (compiler_common.search_states[ind].type == 0) { in regex_compile()
1940 SLJIT_ASSERT(compiler_common.dfa_transitions[ind].type == type_end); in regex_compile()
1942 empty_match_id = compiler_common.search_states[ind].value; in regex_compile()
1944 else if (compiler_common.search_states[ind].type > 0) { in regex_compile()
1945 SLJIT_ASSERT(compiler_common.dfa_transitions[ind].type != type_end); in regex_compile()
1946 …if (compiler_common.dfa_transitions[ind].type == type_rng_start && compiler_common.dfa_transitions… in regex_compile()
1949 compiler_common.search_states[ind].value = -1; in regex_compile()
1953 SLJIT_ASSERT(compiler_common.dfa_transitions[1].type == type_newline); in regex_compile()
1954 CHECK(trace_transitions(1, &compiler_common)); in regex_compile()
1955 while (compiler_common.stack.count > 0) { in regex_compile()
1956 ind = stack_pop(&compiler_common.stack)->value; in regex_compile()
1957 if (compiler_common.search_states[ind].type == 0) { in regex_compile()
1958 SLJIT_ASSERT(compiler_common.dfa_transitions[ind].type == type_end); in regex_compile()
1960 empty_match_id = compiler_common.search_states[ind].value; in regex_compile()
1962 compiler_common.search_states[ind].value = -1; in regex_compile()
1967 CHECK(sljit_emit_enter(compiler_common.compiler, 0, 3, 5, 5, 0, 0, 0)); in regex_compile()
1986 if (compiler_common.flags & REGEX_MATCH_VERBOSE) in regex_compile()
1992 compiler_common.machine->entry_addrs[0] = (sljit_uw)label; in regex_compile()
2000 if (!(compiler_common.flags & REGEX_MATCH_END)) { in regex_compile()
2008 if (!(compiler_common.flags & REGEX_MATCH_END) || (compiler_common.flags & REGEX_MATCH_BEGIN)) { in regex_compile()
2009 if (!(compiler_common.flags & REGEX_MATCH_BEGIN)) { in regex_compile()
2022 if (!(compiler_common.flags & REGEX_MATCH_BEGIN) && suggest_fast_forward) { in regex_compile()
2041 if (compiler_common.flags & REGEX_MATCH_VERBOSE) { in regex_compile()
2043 CHECK(trace_transitions(0, &compiler_common)); in regex_compile()
2044 while (compiler_common.stack.count > 0) { in regex_compile()
2045 ind = stack_pop(&compiler_common.stack)->value; in regex_compile()
2046 if (compiler_common.search_states[ind].type >= 0) in regex_compile()
2047 …printf("-> (%3d:%3d) ", compiler_common.search_states[ind].type, compiler_common.search_states[ind… in regex_compile()
2048 compiler_common.search_states[ind].value = -1; in regex_compile()
2055 if (!(compiler_common.flags & REGEX_MATCH_BEGIN)) { in regex_compile()
2057 if (!(compiler_common.flags & REGEX_MATCH_END)) { in regex_compile()
2062 CHECK(compile_uncond_tran(&compiler_common, R_NEXT_STATE)); in regex_compile()
2064 …CHECK(sljit_emit_ijump(compiler_common.compiler, SLJIT_JUMP, SLJIT_MEM2(R_CURR_STATE, R_TEMP), 0)); in regex_compile()
2066 if (!(compiler_common.flags & REGEX_MATCH_END)) { in regex_compile()
2074 CHECK(sljit_emit_ijump(compiler_common.compiler, SLJIT_JUMP, SLJIT_MEM2(R_CURR_STATE, R_TEMP), 0)); in regex_compile()
2089 CHECK(trace_transitions(0, &compiler_common)); in regex_compile()
2090 while (compiler_common.stack.count > 0) { in regex_compile()
2091 ind = stack_pop(&compiler_common.stack)->value; in regex_compile()
2092 if (compiler_common.search_states[ind].type >= 0) { in regex_compile()
2093 …EMIT_OP1(SLJIT_MOV, SLJIT_MEM1(R_CURR_STATE), TERM_OFFSET_OF(compiler_common.search_states[ind].ty… in regex_compile()
2095 compiler_common.search_states[ind].value = -1; in regex_compile()
2126 CHECK(trace_transitions(0, &compiler_common)); in regex_compile()
2127 CHECK(compile_leave_fast_forward(&compiler_common, fast_forward_label)); in regex_compile()
2145 …if (!(compiler_common.flags & REGEX_MATCH_NON_GREEDY) || !(compiler_common.flags & REGEX_MATCH_BEG… in regex_compile()
2146 CHECK(compile_end_check(&compiler_common, end_check_label)); in regex_compile()
2152 if (compiler_common.flags & REGEX_ID_CHECK) { in regex_compile()
2165 if (!(compiler_common.flags & REGEX_MATCH_BEGIN)) { in regex_compile()
2188 CHECK(sljit_emit_return(compiler_common.compiler, SLJIT_UNUSED, 0, 0)); in regex_compile()
2190 for (ind = 1; ind < compiler_common.dfa_size - 1; ind++) { in regex_compile()
2191 if (compiler_common.search_states[ind].type >= 0) { in regex_compile()
2192 SLJIT_ASSERT(compiler_common.search_states[ind].type < compiler_common.terms_size); in regex_compile()
2194 compiler_common.machine->entry_addrs[compiler_common.search_states[ind].type] = (sljit_uw)label; in regex_compile()
2196 if (compiler_common.dfa_transitions[ind].type == type_char) { in regex_compile()
2197 …EMIT_CMP(jump, SLJIT_NOT_EQUAL, R_CURR_CHAR, 0, SLJIT_IMM, compiler_common.dfa_transitions[ind].va… in regex_compile()
2199 else if (compiler_common.dfa_transitions[ind].type == type_rng_start) { in regex_compile()
2200 ind = compile_range_check(&compiler_common, ind); in regex_compile()
2204 SLJIT_ASSERT(compiler_common.dfa_transitions[ind].type == type_newline); in regex_compile()
2205 CHECK(compile_newline_check(&compiler_common, ind)); in regex_compile()
2208 CHECK(trace_transitions(ind, &compiler_common)); in regex_compile()
2210 if (compiler_common.flags & REGEX_MATCH_VERBOSE) in regex_compile()
2211 printf("(%3d): ", compiler_common.search_states[ind].type); in regex_compile()
2213 CHECK(compile_cond_tran(&compiler_common, compiler_common.search_states[ind].type)); in regex_compile()
2215 if (compiler_common.dfa_transitions[ind].type == type_char) { in regex_compile()
2219 else if (compiler_common.dfa_transitions[ind].type == type_rng_end) { in regex_compile()
2221 range_set_label(compiler_common.range_jump_list, label); in regex_compile()
2224 SLJIT_ASSERT(compiler_common.dfa_transitions[ind].type == type_newline); in regex_compile()
2228 …EMIT_OP1(SLJIT_MOV, R_TEMP, 0, SLJIT_MEM1(R_CURR_STATE), TERM_OFFSET_OF(compiler_common.search_sta… in regex_compile()
2229 …EMIT_OP1(SLJIT_MOV, SLJIT_MEM1(R_CURR_STATE), TERM_OFFSET_OF(compiler_common.search_states[ind].ty… in regex_compile()
2230 …CHECK(sljit_emit_ijump(compiler_common.compiler, SLJIT_JUMP, SLJIT_MEM2(R_CURR_STATE, R_TEMP), 0)); in regex_compile()
2234 if (ind == compiler_common.dfa_size - 1) { in regex_compile()
2237 CHECK(sljit_emit_enter(compiler_common.compiler, 0, 2, 3, 3, 0, 0, 0)); in regex_compile()
2248 …1(SLJIT_S1), SLJIT_OFFSETOF(struct regex_match, index), SLJIT_IMM, !(compiler_common.flags & REGEX… in regex_compile()
2250 if (!(compiler_common.flags & REGEX_MATCH_NON_GREEDY) || empty_match_id == -1) { in regex_compile()
2253 if (!(compiler_common.flags & REGEX_MATCH_BEGIN)) { in regex_compile()
2257 CHECK(compile_uncond_tran(&compiler_common, R_CURR_STATE)); in regex_compile()
2262 CHECK(sljit_emit_return(compiler_common.compiler, SLJIT_MOV, R_NEXT_HEAD, 0)); in regex_compile()
2264 compiler_common.machine->continue_match = sljit_generate_code(compiler_common.compiler); in regex_compile()
2266 compiler_common.machine->u.init_match = (void*)(sljit_sw)sljit_get_label_addr(label); in regex_compile()
2268 …sljit_set_function_context(&compiler_common.machine->u.init_match, &compiler_common.machine->conte… in regex_compile()
2271 if (compiler_common.flags & REGEX_MATCH_VERBOSE) in regex_compile()
2272 …printf("Continue match: %p Init match: %p\n\n", compiler_common.machine->continue_match, compiler_… in regex_compile()
2274 if (compiler_common.machine->continue_match) { in regex_compile()
2275 for (ind = 0; ind < compiler_common.terms_size; ++ind) in regex_compile()
2276compiler_common.machine->entry_addrs[ind] = sljit_get_label_addr((struct sljit_label*)compiler_com… in regex_compile()
2282 stack_destroy(&compiler_common.stack); in regex_compile()
2283 stack_destroy(&compiler_common.depth); in regex_compile()
2284 SLJIT_FREE(compiler_common.dfa_transitions, NULL); in regex_compile()
2285 SLJIT_FREE(compiler_common.search_states, NULL); in regex_compile()
2286 if (compiler_common.range_jump_list) in regex_compile()
2287 SLJIT_FREE(compiler_common.range_jump_list, NULL); in regex_compile()
2288 if (compiler_common.compiler) in regex_compile()
2289 sljit_free_compiler(compiler_common.compiler); in regex_compile()
2291 return compiler_common.machine; in regex_compile()
2293 if (compiler_common.machine) { in regex_compile()
2294 SLJIT_FREE(compiler_common.machine, NULL); in regex_compile()