Lines Matching refs:opt

4440 set_bound_node_opt_info(NodeOptInfo* opt, MinMaxLen* mmd)  in set_bound_node_opt_info()  argument
4442 copy_mml(&(opt->exb.mmd), mmd); in set_bound_node_opt_info()
4443 copy_mml(&(opt->expr.mmd), mmd); in set_bound_node_opt_info()
4444 copy_mml(&(opt->map.mmd), mmd); in set_bound_node_opt_info()
4448 clear_node_opt_info(NodeOptInfo* opt) in clear_node_opt_info() argument
4450 clear_mml(&opt->len); in clear_node_opt_info()
4451 clear_opt_anc_info(&opt->anc); in clear_node_opt_info()
4452 clear_opt_exact_info(&opt->exb); in clear_node_opt_info()
4453 clear_opt_exact_info(&opt->exm); in clear_node_opt_info()
4454 clear_opt_exact_info(&opt->expr); in clear_node_opt_info()
4455 clear_opt_map_info(&opt->map); in clear_node_opt_info()
4539 optimize_node_left(Node* node, NodeOptInfo* opt, OptEnv* env) in optimize_node_left() argument
4544 clear_node_opt_info(opt); in optimize_node_left()
4545 set_bound_node_opt_info(opt, &env->mmd); in optimize_node_left()
4560 concat_left_node_opt_info(env->enc, opt, &nopt); in optimize_node_left()
4574 if (nd == node) copy_node_opt_info(opt, &nopt); in optimize_node_left()
4575 else alt_merge_node_opt_info(opt, &nopt, env); in optimize_node_left()
4588 concat_opt_exact_info_str(&opt->exb, sn->s, sn->end, in optimize_node_left()
4591 add_char_opt_map_info(&opt->map, *(sn->s), env->enc); in optimize_node_left()
4593 set_mml(&opt->len, slen, slen); in optimize_node_left()
4603 concat_opt_exact_info_str(&opt->exb, sn->s, sn->end, in optimize_node_left()
4605 opt->exb.ignore_case = 1; in optimize_node_left()
4608 r = add_char_amb_opt_map_info(&opt->map, sn->s, sn->end, in optimize_node_left()
4616 set_mml(&opt->len, slen, max); in optimize_node_left()
4619 if (opt->exb.len == slen) in optimize_node_left()
4620 opt->exb.reach_end = 1; in optimize_node_left()
4635 set_mml(&opt->len, min, max); in optimize_node_left()
4641 add_char_opt_map_info(&opt->map, (UChar )i, env->enc); in optimize_node_left()
4644 set_mml(&opt->len, 1, 1); in optimize_node_left()
4663 add_char_opt_map_info(&opt->map, (UChar )i, env->enc); in optimize_node_left()
4670 add_char_opt_map_info(&opt->map, (UChar )i, env->enc); in optimize_node_left()
4680 set_mml(&opt->len, min, max); in optimize_node_left()
4688 set_mml(&opt->len, min, max); in optimize_node_left()
4700 add_opt_anc_info(&opt->anc, NANCHOR(node)->type); in optimize_node_left()
4710 copy_opt_exact_info(&opt->expr, &nopt.exb); in optimize_node_left()
4712 copy_opt_exact_info(&opt->expr, &nopt.exm); in optimize_node_left()
4714 opt->expr.reach_end = 0; in optimize_node_left()
4717 copy_opt_map_info(&opt->map, &nopt.map); in optimize_node_left()
4738 set_mml(&opt->len, 0, ONIG_INFINITE_DISTANCE); in optimize_node_left()
4754 if (r == 0) set_mml(&opt->len, min, max); in optimize_node_left()
4761 set_mml(&opt->len, 0, ONIG_INFINITE_DISTANCE); in optimize_node_left()
4765 r = optimize_node_left(NCALL(node)->target, opt, env); in optimize_node_left()
4785 add_opt_anc_info(&opt->anc, ANCHOR_ANYCHAR_STAR_ML); in optimize_node_left()
4787 add_opt_anc_info(&opt->anc, ANCHOR_ANYCHAR_STAR); in optimize_node_left()
4792 copy_node_opt_info(opt, &nopt); in optimize_node_left()
4796 ! is_full_opt_exact_info(&opt->exb); i++) { in optimize_node_left()
4797 concat_opt_exact_info(&opt->exb, &nopt.exb, env->enc); in optimize_node_left()
4800 opt->exb.reach_end = 0; in optimize_node_left()
4806 opt->exb.reach_end = 0; in optimize_node_left()
4807 opt->exm.reach_end = 0; in optimize_node_left()
4810 opt->exm.reach_end = 0; in optimize_node_left()
4820 set_mml(&opt->len, min, max); in optimize_node_left()
4834 r = optimize_node_left(en->target, opt, env); in optimize_node_left()
4849 set_mml(&opt->len, min, max); in optimize_node_left()
4854 r = optimize_node_left(en->target, opt, env); in optimize_node_left()
4856 if (is_set_opt_anc_info(&opt->anc, ANCHOR_ANYCHAR_STAR_MASK)) { in optimize_node_left()
4858 remove_opt_anc_info(&opt->anc, ANCHOR_ANYCHAR_STAR_MASK); in optimize_node_left()
4864 r = optimize_node_left(en->target, opt, env); in optimize_node_left()
4962 NodeOptInfo opt; in set_optimize_info_from_tree() local
4971 r = optimize_node_left(node, &opt, &env); in set_optimize_info_from_tree()
4974 reg->anchor = opt.anc.left_anchor & (ANCHOR_BEGIN_BUF | in set_optimize_info_from_tree()
4977 reg->anchor |= opt.anc.right_anchor & (ANCHOR_END_BUF | ANCHOR_SEMI_END_BUF); in set_optimize_info_from_tree()
4980 reg->anchor_dmin = opt.len.min; in set_optimize_info_from_tree()
4981 reg->anchor_dmax = opt.len.max; in set_optimize_info_from_tree()
4984 if (opt.exb.len > 0 || opt.exm.len > 0) { in set_optimize_info_from_tree()
4985 select_opt_exact_info(reg->enc, &opt.exb, &opt.exm); in set_optimize_info_from_tree()
4986 if (opt.map.value > 0 && in set_optimize_info_from_tree()
4987 comp_opt_exact_or_map_info(&opt.exb, &opt.map) > 0) { in set_optimize_info_from_tree()
4991 r = set_optimize_exact_info(reg, &opt.exb); in set_optimize_info_from_tree()
4992 set_sub_anchor(reg, &opt.exb.anc); in set_optimize_info_from_tree()
4995 else if (opt.map.value > 0) { in set_optimize_info_from_tree()
4997 set_optimize_map_info(reg, &opt.map); in set_optimize_info_from_tree()
4998 set_sub_anchor(reg, &opt.map.anc); in set_optimize_info_from_tree()
5001 reg->sub_anchor |= opt.anc.left_anchor & ANCHOR_BEGIN_LINE; in set_optimize_info_from_tree()
5002 if (opt.len.max == 0) in set_optimize_info_from_tree()
5003 reg->sub_anchor |= opt.anc.right_anchor & ANCHOR_END_LINE; in set_optimize_info_from_tree()