Lines Matching refs:opt

4439 set_bound_node_opt_info(NodeOptInfo* opt, MinMaxLen* mmd)  in set_bound_node_opt_info()  argument
4441 copy_mml(&(opt->exb.mmd), mmd); in set_bound_node_opt_info()
4442 copy_mml(&(opt->expr.mmd), mmd); in set_bound_node_opt_info()
4443 copy_mml(&(opt->map.mmd), mmd); in set_bound_node_opt_info()
4447 clear_node_opt_info(NodeOptInfo* opt) in clear_node_opt_info() argument
4449 clear_mml(&opt->len); in clear_node_opt_info()
4450 clear_opt_anc_info(&opt->anc); in clear_node_opt_info()
4451 clear_opt_exact_info(&opt->exb); in clear_node_opt_info()
4452 clear_opt_exact_info(&opt->exm); in clear_node_opt_info()
4453 clear_opt_exact_info(&opt->expr); in clear_node_opt_info()
4454 clear_opt_map_info(&opt->map); in clear_node_opt_info()
4538 optimize_node_left(Node* node, NodeOptInfo* opt, OptEnv* env) in optimize_node_left() argument
4543 clear_node_opt_info(opt); in optimize_node_left()
4544 set_bound_node_opt_info(opt, &env->mmd); in optimize_node_left()
4559 concat_left_node_opt_info(env->enc, opt, &nopt); in optimize_node_left()
4573 if (nd == node) copy_node_opt_info(opt, &nopt); in optimize_node_left()
4574 else alt_merge_node_opt_info(opt, &nopt, env); in optimize_node_left()
4587 concat_opt_exact_info_str(&opt->exb, sn->s, sn->end, in optimize_node_left()
4590 add_char_opt_map_info(&opt->map, *(sn->s), env->enc); in optimize_node_left()
4592 set_mml(&opt->len, slen, slen); in optimize_node_left()
4602 concat_opt_exact_info_str(&opt->exb, sn->s, sn->end, in optimize_node_left()
4604 opt->exb.ignore_case = 1; in optimize_node_left()
4607 r = add_char_amb_opt_map_info(&opt->map, sn->s, sn->end, in optimize_node_left()
4615 set_mml(&opt->len, slen, max); in optimize_node_left()
4618 if (opt->exb.len == slen) in optimize_node_left()
4619 opt->exb.reach_end = 1; in optimize_node_left()
4634 set_mml(&opt->len, min, max); in optimize_node_left()
4640 add_char_opt_map_info(&opt->map, (UChar )i, env->enc); in optimize_node_left()
4643 set_mml(&opt->len, 1, 1); in optimize_node_left()
4662 add_char_opt_map_info(&opt->map, (UChar )i, env->enc); in optimize_node_left()
4669 add_char_opt_map_info(&opt->map, (UChar )i, env->enc); in optimize_node_left()
4679 set_mml(&opt->len, min, max); in optimize_node_left()
4687 set_mml(&opt->len, min, max); in optimize_node_left()
4699 add_opt_anc_info(&opt->anc, NANCHOR(node)->type); in optimize_node_left()
4709 copy_opt_exact_info(&opt->expr, &nopt.exb); in optimize_node_left()
4711 copy_opt_exact_info(&opt->expr, &nopt.exm); in optimize_node_left()
4713 opt->expr.reach_end = 0; in optimize_node_left()
4716 copy_opt_map_info(&opt->map, &nopt.map); in optimize_node_left()
4737 set_mml(&opt->len, 0, ONIG_INFINITE_DISTANCE); in optimize_node_left()
4753 if (r == 0) set_mml(&opt->len, min, max); in optimize_node_left()
4760 set_mml(&opt->len, 0, ONIG_INFINITE_DISTANCE); in optimize_node_left()
4764 r = optimize_node_left(NCALL(node)->target, opt, env); in optimize_node_left()
4784 add_opt_anc_info(&opt->anc, ANCHOR_ANYCHAR_STAR_ML); in optimize_node_left()
4786 add_opt_anc_info(&opt->anc, ANCHOR_ANYCHAR_STAR); in optimize_node_left()
4791 copy_node_opt_info(opt, &nopt); in optimize_node_left()
4795 ! is_full_opt_exact_info(&opt->exb); i++) { in optimize_node_left()
4796 concat_opt_exact_info(&opt->exb, &nopt.exb, env->enc); in optimize_node_left()
4799 opt->exb.reach_end = 0; in optimize_node_left()
4805 opt->exb.reach_end = 0; in optimize_node_left()
4806 opt->exm.reach_end = 0; in optimize_node_left()
4809 opt->exm.reach_end = 0; in optimize_node_left()
4819 set_mml(&opt->len, min, max); in optimize_node_left()
4833 r = optimize_node_left(en->target, opt, env); in optimize_node_left()
4848 set_mml(&opt->len, min, max); in optimize_node_left()
4853 r = optimize_node_left(en->target, opt, env); in optimize_node_left()
4855 if (is_set_opt_anc_info(&opt->anc, ANCHOR_ANYCHAR_STAR_MASK)) { in optimize_node_left()
4857 remove_opt_anc_info(&opt->anc, ANCHOR_ANYCHAR_STAR_MASK); in optimize_node_left()
4863 r = optimize_node_left(en->target, opt, env); in optimize_node_left()
4961 NodeOptInfo opt; in set_optimize_info_from_tree() local
4970 r = optimize_node_left(node, &opt, &env); in set_optimize_info_from_tree()
4973 reg->anchor = opt.anc.left_anchor & (ANCHOR_BEGIN_BUF | in set_optimize_info_from_tree()
4976 reg->anchor |= opt.anc.right_anchor & (ANCHOR_END_BUF | ANCHOR_SEMI_END_BUF); in set_optimize_info_from_tree()
4979 reg->anchor_dmin = opt.len.min; in set_optimize_info_from_tree()
4980 reg->anchor_dmax = opt.len.max; in set_optimize_info_from_tree()
4983 if (opt.exb.len > 0 || opt.exm.len > 0) { in set_optimize_info_from_tree()
4984 select_opt_exact_info(reg->enc, &opt.exb, &opt.exm); in set_optimize_info_from_tree()
4985 if (opt.map.value > 0 && in set_optimize_info_from_tree()
4986 comp_opt_exact_or_map_info(&opt.exb, &opt.map) > 0) { in set_optimize_info_from_tree()
4990 r = set_optimize_exact_info(reg, &opt.exb); in set_optimize_info_from_tree()
4991 set_sub_anchor(reg, &opt.exb.anc); in set_optimize_info_from_tree()
4994 else if (opt.map.value > 0) { in set_optimize_info_from_tree()
4996 set_optimize_map_info(reg, &opt.map); in set_optimize_info_from_tree()
4997 set_sub_anchor(reg, &opt.map.anc); in set_optimize_info_from_tree()
5000 reg->sub_anchor |= opt.anc.left_anchor & ANCHOR_BEGIN_LINE; in set_optimize_info_from_tree()
5001 if (opt.len.max == 0) in set_optimize_info_from_tree()
5002 reg->sub_anchor |= opt.anc.right_anchor & ANCHOR_END_LINE; in set_optimize_info_from_tree()