Branch Coverage

xs/util.cc
Criterion Covered Total %
branch 254 1064 23.8


line true false branch
21 92 5 if (SvOBJECT(ref)) {
23 92 0 return string_view(HvNAME(stash), HvNAMELEN(stash)) == "XLog::Module";
92 0 return string_view(HvNAME(stash), HvNAMELEN(stash)) == "XLog::Module";
0 92 return string_view(HvNAME(stash), HvNAMELEN(stash)) == "XLog::Module";
0 0 return string_view(HvNAME(stash), HvNAMELEN(stash)) == "XLog::Module";
92 0 return string_view(HvNAME(stash), HvNAMELEN(stash)) == "XLog::Module";
0 92 return string_view(HvNAME(stash), HvNAMELEN(stash)) == "XLog::Module";
92 0 return string_view(HvNAME(stash), HvNAMELEN(stash)) == "XLog::Module";
92 0 return string_view(HvNAME(stash), HvNAMELEN(stash)) == "XLog::Module";
0 92 return string_view(HvNAME(stash), HvNAMELEN(stash)) == "XLog::Module";
0 0 return string_view(HvNAME(stash), HvNAMELEN(stash)) == "XLog::Module";
92 0 return string_view(HvNAME(stash), HvNAMELEN(stash)) == "XLog::Module";
0 92 return string_view(HvNAME(stash), HvNAMELEN(stash)) == "XLog::Module";
92 0 return string_view(HvNAME(stash), HvNAMELEN(stash)) == "XLog::Module";
30 186 15 if (module) return module;
36 32 0 auto pkg = Stash(name);
37 32 0 if (pkg) {
38 32 0 auto val = pkg.fetch("xlog_module").scalar();
32 0 auto val = pkg.fetch("xlog_module").scalar();
39 13 19 if (val && val.is_object_ref()) {
7 6 if (val && val.is_object_ref()) {
7 25 if (val && val.is_object_ref()) {
40 7 0 Object o = val;
26 6 Object o = val;
41 7 0 if (o.stash().name() == "XLog::Module") {
7 0 if (o.stash().name() == "XLog::Module") {
6 1 if (o.stash().name() == "XLog::Module") {
42 6 0 module = xs::in(o);
43 6 0 module_obj = o;
44 1 6 break;
48 9 17 if (!name.length()) break; // stop after main::
49 17 0 auto pos = name.rfind("::");
50 10 7 if (pos == string_view::npos) { // look in main::
54 7 0 name = name.substr(0, pos);
57 9 6 if (!module) module = &::panda_log_module;
58 15 0 stash.payload_attach((void*)module, module_obj, &module_cache_marker);
65 189 12 if (depth == 0) {
66 189 0 stash = CopSTASH(PL_curcop);
70 12 0 const PERL_CONTEXT *cx = caller_cx(depth, &dbcx);
71 12 0 if (cx) {
72 0 12 if ((CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT)) {
0 0 if ((CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT)) {
80 12 0 if (has_gv) {
81 12 0 xs::Sub sub(dbcx->blk_sub.cv);
82 12 0 stash = sub.glob().effective_stash();
12 0 stash = sub.glob().effective_stash();
85 0 0 else stash = CopSTASH(cx->blk_oldcop);
89 0 201 if (!stash) return &::panda_log_module;
91 201 0 return get_module_by_namespace(stash);
201 0 return get_module_by_namespace(stash);
99 0 0 skip = p();
0 0 skip = p();
0 0 skip = p();
0 0 skip = p();
6 0 skip = p();
0 0 skip = p();
0 0 skip = p();
2 0 skip = p();
0 0 skip = p();
0 0 skip = p();
0 0 skip = p();
0 0 skip = p();
19 0 skip = p();
4 0 skip = p();
0 0 skip = p();
0 0 skip = p();
4 0 skip = p();
0 0 skip = p();
0 0 skip = p();
0 0 skip = p();
0 0 skip = p();
7 0 skip = p();
4 0 skip = p();
0 0 skip = p();
0 0 skip = p();
4 0 skip = p();
0 0 skip = p();
4 0 skip = p();
14 0 skip = p();
4 0 skip = p();
0 0 skip = p();
0 0 skip = p();
0 0 skip = p();
0 0 skip = p();
0 3 skip = p();
8 0 skip = p();
0 0 skip = p();
14 0 skip = p();
6 0 skip = p();
101 0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
3 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
3 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
0 0 croak_sv(newSVpvn_flags(ex.c_str(), ex.length(), SVf_UTF8 | SVs_TEMP));
103 0 0 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
0 6 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
2 0 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
0 19 if (skip) {
0 4 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
4 0 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
0 7 if (skip) {
0 4 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
4 0 if (skip) {
0 0 if (skip) {
2 2 if (skip) {
5 9 if (skip) {
2 2 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
0 0 if (skip) {
4 4 if (skip) {
0 0 if (skip) {
2 12 if (skip) {
2 4 if (skip) {
105 0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
4 2 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
4 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
10 4 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
10 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
4 4 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
4 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
4 2 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
4 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
10 5 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
10 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
4 2 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
4 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
14 4 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
14 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
0 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
6 2 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
6 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
6 2 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
6 0 while (OpHAS_SIBLING(cur_op)) { cur_op = OpSIBLING(cur_op); }
106 0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
4 2 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
8 4 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
8 4 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
4 2 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
10 5 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
4 2 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
8 4 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
0 0 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
4 2 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
4 2 while (cur_op->op_type != OP_ENTERSUB) { cur_op = cur_op->op_next; }
109 0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 3 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
0 0 return PL_ppaddr[PL_op->op_type](aTHX);
115 66 37 if (mod_sv) {
116 66 0 if (mod_sv && SvROK(mod_sv)) {
42 24 if (mod_sv && SvROK(mod_sv)) {
119 42 0 if (ok) {
124 61 39 if (!module) module = resolve_module(0);
131 38 0 if (op->op_type == OP_CONST) return cSVOPx_sv(op);
136 69 0 if (op->op_type == OP_PADSV) return PAD_SVl(op->op_targ);
141 12 0 if (OP_TYPE_IS_OR_WAS(op, OP_RV2SV)) {
12 0 if (OP_TYPE_IS_OR_WAS(op, OP_RV2SV)) {
12 0 if (OP_TYPE_IS_OR_WAS(op, OP_RV2SV)) {
143 12 0 if (gvop->op_type == OP_GVSV) {
145 12 0 if (SvTYPE(gv) == SVt_PVGV) {
161 0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
7 0 return pp_maybe_skip(check);
4 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
4 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
168 0 0 auto sv = access::padsv(OpSIBLING(PL_op));
0 0 auto sv = access::padsv(OpSIBLING(PL_op));
0 0 auto sv = access::padsv(OpSIBLING(PL_op));
19 0 auto sv = access::padsv(OpSIBLING(PL_op));
4 0 auto sv = access::padsv(OpSIBLING(PL_op));
0 0 auto sv = access::padsv(OpSIBLING(PL_op));
0 0 auto sv = access::padsv(OpSIBLING(PL_op));
4 0 auto sv = access::padsv(OpSIBLING(PL_op));
0 0 auto sv = access::padsv(OpSIBLING(PL_op));
171 0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
19 0 return pp_maybe_skip(check);
4 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
4 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
179 0 0 auto sv = access::rv2sv(OpSIBLING(PL_op));
0 0 auto sv = access::rv2sv(OpSIBLING(PL_op));
0 0 auto sv = access::rv2sv(OpSIBLING(PL_op));
0 0 auto sv = access::rv2sv(OpSIBLING(PL_op));
6 0 auto sv = access::rv2sv(OpSIBLING(PL_op));
0 0 auto sv = access::rv2sv(OpSIBLING(PL_op));
0 0 auto sv = access::rv2sv(OpSIBLING(PL_op));
2 0 auto sv = access::rv2sv(OpSIBLING(PL_op));
0 0 auto sv = access::rv2sv(OpSIBLING(PL_op));
180 0 0 if (sv) skip = final_check(level, sv);
0 0 if (sv) skip = final_check(level, sv);
0 0 if (sv) skip = final_check(level, sv);
0 0 if (sv) skip = final_check(level, sv);
6 0 if (sv) skip = final_check(level, sv);
0 0 if (sv) skip = final_check(level, sv);
0 0 if (sv) skip = final_check(level, sv);
2 0 if (sv) skip = final_check(level, sv);
0 0 if (sv) skip = final_check(level, sv);
183 0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
6 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
2 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
214 53 0 if (sv) {
215 50 3 int l = SvIV(sv);
216 53 0 if (l >= (int)Level::VerboseDebug && l <= (int)Level::Emergency) return LevelOption((Level)l);
53 0 if (l >= (int)Level::VerboseDebug && l <= (int)Level::Emergency) return LevelOption((Level)l);
243 20 0 static SV* get (OP* op_prev) { return access::constsv(OpSIBLING(op_prev)); }
246 11 0 static SV* get (OP* op_prev) { return access::padsv(OpSIBLING(op_prev)); }
249 0 0 static SV* get (OP* op_prev) { return access::rv2sv(OpSIBLING(op_prev)); }
260 4 0 auto op = OpSIBLING(PL_op);
14 0 auto op = OpSIBLING(PL_op);
4 0 auto op = OpSIBLING(PL_op);
0 0 auto op = OpSIBLING(PL_op);
0 0 auto op = OpSIBLING(PL_op);
0 0 auto op = OpSIBLING(PL_op);
0 0 auto op = OpSIBLING(PL_op);
3 0 auto op = OpSIBLING(PL_op);
8 0 auto op = OpSIBLING(PL_op);
0 0 auto op = OpSIBLING(PL_op);
14 0 auto op = OpSIBLING(PL_op);
6 0 auto op = OpSIBLING(PL_op);
262 4 0 auto level_option = GetLevel::get(op);
14 0 auto level_option = GetLevel::get(op);
4 0 auto level_option = GetLevel::get(op);
0 0 auto level_option = GetLevel::get(op);
0 0 auto level_option = GetLevel::get(op);
0 0 auto level_option = GetLevel::get(op);
0 0 auto level_option = GetLevel::get(op);
3 0 auto level_option = GetLevel::get(op);
8 0 auto level_option = GetLevel::get(op);
0 0 auto level_option = GetLevel::get(op);
14 0 auto level_option = GetLevel::get(op);
6 0 auto level_option = GetLevel::get(op);
263 4 0 if (level_option) {
14 0 if (level_option) {
4 0 if (level_option) {
0 0 if (level_option) {
0 0 if (level_option) {
0 0 if (level_option) {
0 0 if (level_option) {
3 0 if (level_option) {
8 0 if (level_option) {
0 0 if (level_option) {
14 0 if (level_option) {
6 0 if (level_option) {
264 0 0 auto sv_module = GetModule::get(op);
0 0 auto sv_module = GetModule::get(op);
0 0 auto sv_module = GetModule::get(op);
0 0 auto sv_module = GetModule::get(op);
3 0 auto sv_module = GetModule::get(op);
8 0 auto sv_module = GetModule::get(op);
0 0 auto sv_module = GetModule::get(op);
14 0 auto sv_module = GetModule::get(op);
6 0 auto sv_module = GetModule::get(op);
265 4 0 skip = final_check(level_option.value(), sv_module);
14 0 skip = final_check(level_option.value(), sv_module);
4 0 skip = final_check(level_option.value(), sv_module);
0 0 skip = final_check(level_option.value(), sv_module);
0 0 skip = final_check(level_option.value(), sv_module);
0 0 skip = final_check(level_option.value(), sv_module);
0 0 skip = final_check(level_option.value(), sv_module);
0 3 skip = final_check(level_option.value(), sv_module);
8 0 skip = final_check(level_option.value(), sv_module);
0 0 skip = final_check(level_option.value(), sv_module);
14 0 skip = final_check(level_option.value(), sv_module);
6 0 skip = final_check(level_option.value(), sv_module);
269 4 0 return pp_maybe_skip(check);
14 0 return pp_maybe_skip(check);
4 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
8 0 return pp_maybe_skip(check);
0 0 return pp_maybe_skip(check);
14 0 return pp_maybe_skip(check);
6 0 return pp_maybe_skip(check);
309 0 85 if (already_optimized) return;
315 2 83 if (op->op_type != OP_ENTERSUB) return;
319 166 0 while(ok && args_op->op_type == OP_NULL) {
83 83 while(ok && args_op->op_type == OP_NULL) {
330 3 80 if ((type != OP_PUSHMARK) && (type != OP_PADRANGE)) return;
0 3 if ((type != OP_PUSHMARK) && (type != OP_PADRANGE)) return;
333 83 0 if ((args_op->op_ppaddr != PL_ppaddr[type]) || (args_op->op_spare & 1)) return;
0 83 if ((args_op->op_ppaddr != PL_ppaddr[type]) || (args_op->op_spare & 1)) return;
336 0 83 if (!OpHAS_SIBLING(args_op)) return;
339 83 0 OP *cur_op = OpSIBLING(args_op);
340 118 66 while(OpHAS_SIBLING(cur_op) && (args.size() < module_pos) && !OP_TYPE_IS_OR_WAS(cur_op,OP_RV2CV)){
101 17 while(OpHAS_SIBLING(cur_op) && (args.size() < module_pos) && !OP_TYPE_IS_OR_WAS(cur_op,OP_RV2CV)){
101 0 while(OpHAS_SIBLING(cur_op) && (args.size() < module_pos) && !OP_TYPE_IS_OR_WAS(cur_op,OP_RV2CV)){
8 93 while(OpHAS_SIBLING(cur_op) && (args.size() < module_pos) && !OP_TYPE_IS_OR_WAS(cur_op,OP_RV2CV)){
8 0 while(OpHAS_SIBLING(cur_op) && (args.size() < module_pos) && !OP_TYPE_IS_OR_WAS(cur_op,OP_RV2CV)){
93 0 while(OpHAS_SIBLING(cur_op) && (args.size() < module_pos) && !OP_TYPE_IS_OR_WAS(cur_op,OP_RV2CV)){
101 83 while(OpHAS_SIBLING(cur_op) && (args.size() < module_pos) && !OP_TYPE_IS_OR_WAS(cur_op,OP_RV2CV)){
341 8 93 args.push_back(cur_op->op_type == OP_NULL ? cur_op->op_targ : cur_op->op_type);
101 0 args.push_back(cur_op->op_type == OP_NULL ? cur_op->op_targ : cur_op->op_type);
342 101 0 cur_op = OpSIBLING(cur_op);
345 13 83 while((args.size() < module_pos)) args.push_back(OP_NA);
13 0 while((args.size() < module_pos)) args.push_back(OP_NA);
346 83 0 backend_t backend = optimizer(args);
347 76 7 if (backend != nullptr) {
373 31 0 optimize(2, optimizer);
31 0 optimize(2, optimizer);
388 54 0 optimize(1, optimizer);
54 0 optimize(1, optimizer);