Skip to content

Instantly share code, notes, and snippets.

@llllllllll
Last active July 23, 2021 05:41
Show Gist options
  • Save llllllllll/b3ccc744e88c5bf0ee4e2c16c6fcdebf to your computer and use it in GitHub Desktop.
Save llllllllll/b3ccc744e88c5bf0ee4e2c16c6fcdebf to your computer and use it in GitHub Desktop.
msgspec notes

Initial Observations

The provided benchmark script is using Python's timeit module for benchmarking. I noticed that I was getting very different results between runs even with the same compiler, so I first switched to pyperf to attempt to get more stable results.

I am not sure if there is a Python API for pyperf, so I started by writing a small bash wrapper for benchmark:

#!/usr/bin/bash

benchmark="twitter"
do_setup=0
perf=
asan=

while getopts "spab:" o;do
    case "$o" in
        b)
            benchmark="$OPTARG"
            ;;
        s)
            do_setup=1
            ;;
        p)
            perf="perf record --call-graph dwarf -e cycles,cycle_activity.stalls_total"
            ;;
        a)
            asan="env LD_PRELOAD=/usr/lib/libasan.so"
    esac
done

path="$benchmark.json"

if [[ do_setup -ne 0 ]];then
    echo "Downloading $path..."
    curl -L "https://github.com/ijl/orjson/raw/master/data/$path.xz" | \
        xz --decompress > $path
fi

echo "Benchmark: $path"
$perf pyperf timeit -s \
       "import json; d = json.load(open('$path')); import msgspec; f = msgspec.JSONEncoder().encode" \
       'f(d)'

Constant Environment

(venv) [joe@jevnik msgspec]$ python --version
Python 3.9.6
(venv) [joe@jevnik msgspec]$ lscpu
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         39 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  8
  On-line CPU(s) list:   0-7
Vendor ID:               GenuineIntel
  Model name:            Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
    CPU family:          6
    Model:               94
    Thread(s) per core:  2
    Core(s) per socket:  4
    Socket(s):           1
    Stepping:            3
    CPU max MHz:         4200.0000
    CPU min MHz:         800.0000
    BogoMIPS:            8003.30
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fx
                         sr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts re
                         p_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est
                         tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdr
                         and lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti tpr_shadow vnmi flexpriority e
                         pt vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap
                          clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_
                         act_window hwp_epp
Virtualization features:
  Virtualization:        VT-x
Caches (sum of all):
  L1d:                   128 KiB (4 instances)
  L1i:                   128 KiB (4 instances)
  L2:                    1 MiB (4 instances)
  L3:                    8 MiB (1 instance)
NUMA:
  NUMA node(s):          1
  NUMA node0 CPU(s):     0-7
Vulnerabilities:
  Itlb multihit:         KVM: Mitigation: VMX disabled
  L1tf:                  Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerable
  Mds:                   Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable
  Meltdown:              Mitigation; PTI
  Spec store bypass:     Vulnerable
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Full generic retpoline, STIBP disabled, RSB filling
  Srbds:                 Vulnerable: No microcode
  Tsx async abort:       Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable
(venv) [joe@jevnik msgspec]$ sudo cpupower frequency-set -g performance
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
Setting cpu: 4
Setting cpu: 5
Setting cpu: 6
Setting cpu: 7

First runs

Even with a more reliable benchmark, I wanted to run each sequence 5 times to start to prove to myself that I had a stable result.

gcc-11.1.0

gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC -I/home/joe/projects/python/msgspec/venv/include -I/usr/include/python3.9 -c msgspec/core.c -o build/temp.linux-x86_64-3.9/msgspec/core.o

Note

My system gcc is gcc-11.1.0

$ for n in `seq 5`;do ./benchmark -b twitter;done
Benchmark: twitter.json
.....................
Mean +- std dev: 489 us +- 6 us
Benchmark: twitter.json
.....................
Mean +- std dev: 489 us +- 5 us
Benchmark: twitter.json
.....................
Mean +- std dev: 487 us +- 3 us
Benchmark: twitter.json
.....................
Mean +- std dev: 490 us +- 5 us
Benchmark: twitter.json
.....................
Mean +- std dev: 488 us +- 5 us

$ for n in `seq 5`;do ./benchmark -b canada;done
Benchmark: canada.json
.....................
Mean +- std dev: 4.56 ms +- 0.03 ms
Benchmark: canada.json
.....................
Mean +- std dev: 4.57 ms +- 0.03 ms
Benchmark: canada.json
.....................
Mean +- std dev: 4.57 ms +- 0.05 ms
Benchmark: canada.json
.....................
Mean +- std dev: 4.57 ms +- 0.05 ms
Benchmark: canada.json
.....................
Mean +- std dev: 4.58 ms +- 0.04 ms

gcc-10.2.0

gcc-10 -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC -I/home/joe/projects/python/msgspec/venv/include -I/usr/include/python3.9 -c msgspec/core.c -o build/temp.linux-x86_64-3.9/msgspec/core.o
$ for n in `seq 5`;do ./benchmark -b twitter;done
Benchmark: twitter.json
.....................
Mean +- std dev: 489 us +- 7 us
Benchmark: twitter.json
.....................
Mean +- std dev: 485 us +- 4 us
Benchmark: twitter.json
.....................
Mean +- std dev: 488 us +- 4 us
Benchmark: twitter.json
.....................
Mean +- std dev: 487 us +- 13 us
Benchmark: twitter.json
.....................
Mean +- std dev: 487 us +- 6 us

$ for n in `seq 5`;do ./benchmark -b canada;done
Benchmark: canada.json
.....................
Mean +- std dev: 4.55 ms +- 0.02 ms
Benchmark: canada.json
.....................
Mean +- std dev: 4.56 ms +- 0.04 ms
Benchmark: canada.json
.....................
Mean +- std dev: 4.56 ms +- 0.02 ms
Benchmark: canada.json
.....................
Mean +- std dev: 4.56 ms +- 0.03 ms
Benchmark: canada.json
.....................
Mean +- std dev: 4.57 ms +- 0.05 ms

clang-12.0.1

clang -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC -I/home/joe/projects/python/msgspec/venv/include -I/usr/include/python3.9 -c msgspec/core.c -o build/temp.linux-x86_64-3.9/msgspec/core.o
$ for n in `seq 5`;do ./benchmark -b twitter;done
Benchmark: twitter.json
.....................
Mean +- std dev: 476 us +- 4 us
Benchmark: twitter.json
.....................
Mean +- std dev: 474 us +- 3 us
Benchmark: twitter.json
.....................
Mean +- std dev: 475 us +- 5 us
Benchmark: twitter.json
.....................
Mean +- std dev: 476 us +- 12 us
Benchmark: twitter.json
.....................
Mean +- std dev: 475 us +- 4 us

$ for n in `seq 5`;do ./benchmark -b canada;done
Benchmark: canada.json
.....................
Mean +- std dev: 4.26 ms +- 0.07 ms
Benchmark: canada.json
.....................
Mean +- std dev: 4.24 ms +- 0.02 ms
Benchmark: canada.json
.....................
Mean +- std dev: 4.25 ms +- 0.06 ms
Benchmark: canada.json
.....................
Mean +- std dev: 4.27 ms +- 0.06 ms
Benchmark: canada.json
.....................
Mean +- std dev: 4.26 ms +- 0.05 ms

Next Steps

Before I investigated the code further, I wanted to make sure that the existing code was not using any undefined behavior (UB), so I did a gcc build with address sanitizer (asan) and undefined-behavior sanitizer (ubsan) to ensure that the code was not relying on any UB that the compilers were handling differently.

I changed the compiler flags to:

diff --git a/setup.py b/setup.py
index 844c53c..b0de70f 100644
--- a/setup.py
+++ b/setup.py
@@ -4,7 +4,14 @@ import versioneer
 from setuptools import setup
 from setuptools.extension import Extension

-ext_modules = [Extension("msgspec.core", [os.path.join("msgspec", "core.c")])]
+ext_modules = [
+    Extension(
+        "msgspec.core",
+        [os.path.join("msgspec", "core.c")],
+        extra_compile_args=['-fsanitize=address', '-fsanitize=undefined'],
+        extra_link_args=['-lasan', '-lubsan'],
+    )
+]

 setup(
     name="msgspec",

I did an instrumented run with:

$ PYTHONMALLOC=malloc LD_PRELOAD=/usr/lib/libasan.so python -c "import json; d = json.load(open('twitter.json')); import msgspec; f = msgspec.JSONEncoder().encode; f(d)"

There were a few leaks detected, but this is standard in Python and I don't believe it was anything more than odds and ends global structures that Python uses. I did not see any ubsan violations with gcc, so I tried clang and got the same results.

Warnings

I noticed that there were a few warnings that gcc was providing, and also noticed that I was not compiling with -Wextra, so I decided to turn on -Wextra and then disable a few warnings that are annoying when writing CPython extensions:

extra_compile_args=[
    '-Wextra',
    '-Wno-unused-parameter',
    '-Wno-missing-field-initializers',
]

Here is a sample of some warnings that seemed harmless but maybe indicate the code isn't doing what is expected:

msgspec/core.c: In function ‘mp_decode_any’:
msgspec/core.c:3525:25: warning: comparison is always true due to limited range of data type [-Wtype-limits]
 3525 |     if (-32 <= op && op <= 127) {
      |                         ^~
msgspec/core.c:3534:21: warning: comparison is always true due to limited range of data type [-Wtype-limits]
 3534 |     else if ('\x80' <= op && op <= '\x8f') {
      |                     ^~
msgspec/core.c: In function ‘mp_skip’:
msgspec/core.c:3647:25: warning: comparison is always true due to limited range of data type [-Wtype-limits]
 3647 |     if (-32 <= op && op <= 127) {
      |                         ^~
msgspec/core.c:3656:21: warning: comparison is always true due to limited range of data type [-Wtype-limits]
 3656 |     else if ('\x80' <= op && op <= '\x8f') {
      |                     ^~
msgspec/core.c: In function ‘mp_validation_error’:
msgspec/core.c:3761:25: warning: comparison is always true due to limited range of data type [-Wtype-limits]
 3761 |     if (-32 <= op && op <= 127) {

There are also some warnings about possible uninitialized values; however, these seems top be false positives:

msgspec/core.c: In function ‘mp_decode_any’:
msgspec/core.c:3292:12: warning: ‘s’ may be used uninitialized in this function [-Wmaybe-uninitialized]
 3292 |     return PyFloat_FromDouble(_PyFloat_Unpack8((unsigned char *)s, 0));
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
msgspec/core.c:3290:11: note: ‘s’ was declared here
 3290 |     char *s;
      |           ^

perf

With stable benchmarks, ubsan passing, and code checked, I decided to dig into the hotspots to see what the major differences were.

I started with the twitter example because I thought I would have the most to offer in the more Python object heavy workload and because ryu already seems pretty well optimized.

I ran the benchmark under perf and recorded the cycles (the default) but also the stalls to see places where we the CPU was not able to make progress because it was waiting for something. You can open the result of perf with perf report; however, I like an open source tool called hotspot to look through perf results. The biggest hotspot by far was json_encode_str, which by itself consumed almost 50% of the total cycles in the run and almost 25% of the stalls.

Now we can focus our search to a single function and see where we might make improvements

Code Analysis

I started by just reading the source for this function. My first impression was that this function has an incredibly "branchy" inner loop for what should be "mostly memcpy". Next I wanted to look through the generated code for this function, which I extracted with:

$ objdump --no-addresses --source --disassemble=json_encode_str msgspec/core.cpython-39-x86_64-linux-gnu.so  > gcc11-json_encode_str

The generated code has lots of jumps inside this hot loop, which is not good. All these jumps will prevent the CPU from doing things as fast as can, because it will end up bottlenecked reading data from main memory, which is slow.

To get some more insight into how the compiler is understanding this function, I needed to dump some of the gcc internal state. gcc can emit information about the code after every pass that it does, and one of the output formats is a graphviz formatted .dot file. The only pass I cared about was the final, fully optimized and inlined pass, so I selected that I wanted this pass with -fdump-rtl-final, which means dump the rtl (register transfer language, the lowest level gcc intermediate representation) pass named "final", which is the last pass unless you have plugins running. I also wanted a graph, not just raw rtl, so I also passed -fdump-tree-optimized-graph=graph which says to dump the optimized passes in a graph format and write the data to a file named graph.dot.

The full command line used was:

gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC -I/home/joe/projects/python/msgspec/venv/include -I/usr/include/python3.9 -c msgspec/core.c -o build/temp.linux-x86_64-3.9/msgspec/core.o -fdump-rtl-final -fdump-tree-optimized-graph=graph

Unfortunately, this writes out all of the functions, so we need to find the cluster for the function we care about. I wrote a little Python to do this:

def isolate_function(in_, out, func):
    start = 'subgraph "cluster_%s" {\n' % func
    end = '}\n'
    with open(in_) as f:
        lines = [
          'digraph "small.graph" {\n',
          'overlap=false;\n',
        ]
        for line in f:
            if line == start:
                lines.append(line)
                break
        for line in f:
            lines.append(line)
            if line == end:
                break
        lines.append(end)
        content = ''.join(lines)
        with open(out, 'w') as f: f.write(content)

The results are shown in original.svg.

This representation breaks down the code into basic blocks and shows the control flow edges between them. Each edge is annotated with a predicted likelihood, where blue edges are unconditional. With a little squinting, we can match this form up with our original source code if we consider what the result of inlining will be.

Optimizations

First Attempt

The first thing to notice is just how many branches we have in this loop, the control flow is not simple! Having a small loop (in terms of generated code size) that fits in cache is very important for optimal performance

The first thing I wanted to do was help the compiler generate better code around mp_write in our loop, so I told gcc to always inline the function to potentially unlock optimizations based on earlier passes before the decision to inline would be made.

To do this, we can annotate mp_write with __attribute__((always_inline)) which is respected by both gcc and clang.

This alone gives us a pretty decent change with gcc11:

Benchmark: twitter.json
.....................
Mean +- std dev: 477 us +- 5 us

A 2.5% speedup from just a one line change!

Looking at the graph from the original code, another thing I noticed was that the compiler was assuming that the required > self->max_output_len condition was being weighed equally, which we know is definitely not true.

To tell the compiler what we know, I used __builtin_expect, a gcc compiler intrinsic. This intrinsic is usually wrapped with LIKELY and UNLIKELY macros, like:

#define MP_LIKELY(pred) __builtin_expect(!!(pred), 1)
#define MP_UNLIKELY(pred) __builtin_expect(!!(pred), 0)

This small change gives another small performance improvement:

Benchmark: twitter.json
.....................
Mean +- std dev: 473 us +- 5 us

The full diff at this point is:

diff --git a/msgspec/core.c b/msgspec/core.c
index 90017f0..f084f4f 100644
--- a/msgspec/core.c
+++ b/msgspec/core.c
@@ -8,6 +8,11 @@

 #include "ryu.h"

+#define MP_LIKELY(pred) __builtin_expect(!!(pred), 1)
+#define MP_UNLIKELY(pred) __builtin_expect(!!(pred), 0)
+
+#define MP_INLINE __attribute__((always_inline))
+
 #if PY_VERSION_HEX < 0x03090000
 #define IS_TRACKED _PyObject_GC_IS_TRACKED
 #define CALL_ONE_ARG(fn, arg) PyObject_CallFunctionObjArgs((fn), (arg), NULL)
@@ -2137,11 +2142,11 @@ mp_ensure_space(EncoderState *self, Py_ssize_t size) {
     return 0;
 }

-static inline int
+MP_INLINE static inline int
 mp_write(EncoderState *self, const char *s, Py_ssize_t n)
 {
     Py_ssize_t required = self->output_len + n;
-    if (required > self->max_output_len) {
+    if (MP_UNLIKELY(required > self->max_output_len)) {
         if (mp_resize(self, required) < 0) return -1;
     }
     memcpy(self->output_buffer_raw + self->output_len, s, n);

These changes yield a noticeably different graph in the dot files, so we know that the compiler does see these as different functions. The graph at this stage is shown in opt-1.svg This at least makes me believe that my understanding of what is going on is correct because we are making progress.

Second Attempt

The next bit of branching that I see in our loop is the type check in the resize code. I am talking about the is_bytes checks in mp_resize. Resizing is unexpected, but it does happen in the loop with a sufficiently large file, so I decided to think about how to remove these conditions.

My thought was that we don't need to branch at all here, instead we just need to remember what kind of buffer we have when we set it. To do this, I added a function pointer in the EncoderState struct which points to a function which either resizes bytes objects or bytearray objects. This function pointer can be used to avoid all the extra branching we have, and further get the resizing code out of the way to make the loop smaller.

The diff to do this was:

diff --git a/msgspec/core.c b/msgspec/core.c
index f084f4f..4ee348c 100644
--- a/msgspec/core.c
+++ b/msgspec/core.c
@@ -1990,6 +1990,8 @@ typedef struct EncoderState {
     char *output_buffer_raw;    /* raw pointer to output_buffer internal buffer */
     Py_ssize_t output_len;      /* Length of output_buffer */
     Py_ssize_t max_output_len;  /* Allocation size of output_buffer */
+
+    char* (*resize_output_buffer)(PyObject**, Py_ssize_t);
 } EncoderState;


@@ -2113,24 +2115,32 @@ enum mp_code {
     MP_EXT32 = '\xc9',
 };

+static char*
+mp_resize_bytes(PyObject** output_buffer, Py_ssize_t size)
+{
+    int status = _PyBytes_Resize(output_buffer, size);
+    if (status < 0) return NULL;
+    return PyBytes_AS_STRING(*output_buffer);
+}
+
+static char*
+mp_resize_bytearray(PyObject** output_buffer, Py_ssize_t size)
+{
+    int status = PyByteArray_Resize(*output_buffer, size);
+    if (status < 0) return NULL;
+    return PyByteArray_AS_STRING(*output_buffer);
+}
+
+
 static int
-mp_resize(EncoderState *self, Py_ssize_t size)
+mp_resize(EncoderState *self, Py_ssize_t size)
 {
-    int status;
-    bool is_bytes = PyBytes_CheckExact(self->output_buffer);
     self->max_output_len = Py_MAX(8, 2 * size);
-    status = (
-        is_bytes ? _PyBytes_Resize(&self->output_buffer, self->max_output_len)
-                 : PyByteArray_Resize(self->output_buffer, self->max_output_len)
-    );
-    if (status < 0) return -1;
-    if (is_bytes) {
-        self->output_buffer_raw = PyBytes_AS_STRING(self->output_buffer);
-    }
-    else {
-        self->output_buffer_raw = PyByteArray_AS_STRING(self->output_buffer);
-    }
-    return status;
+    char* new_buf = self->resize_output_buffer(&self->output_buffer,
+                                               self->max_output_len);
+    if (new_buf == NULL) return -1;
+    self->output_buffer_raw = new_buf;
+    return 0;
 }

 static inline int
@@ -2834,6 +2844,7 @@ Encoder_encode_into(Encoder *self, PyObject *const *args, Py_ssize_t nargs)
     self->state.output_buffer_raw = PyByteArray_AS_STRING(buf);
     self->state.output_len = offset;
     self->state.max_output_len = buf_size;
+    self->state.resize_output_buffer = mp_resize_bytearray;

     status = mp_encode(&(self->state), obj);

@@ -2871,6 +2882,7 @@ encode_common(
         state->output_buffer = PyBytes_FromStringAndSize(NULL, state->max_output_len);
         if (state->output_buffer == NULL) return NULL;
         state->output_buffer_raw = PyBytes_AS_STRING(state->output_buffer);
+        state->resize_output_buffer = mp_resize_bytes;
     }

     status = encode(state, args[0]);
@@ -3022,6 +3034,7 @@ msgspec_encode(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
     state.output_buffer = PyBytes_FromStringAndSize(NULL, state.max_output_len);
     if (state.output_buffer == NULL) return NULL;
     state.output_buffer_raw = PyBytes_AS_STRING(state.output_buffer);
+    state.resize_output_buffer = mp_resize_bytes;

     status = mp_encode(&state, args[0]);

This change gives a pretty good improvement over our last effort:

Benchmark: twitter.json
.....................
Mean +- std dev: 465 us +- 5 us

The thing that still bothers me about this is I feel like resizing is a rare enough event that we don't even need any of the mp_resize code in our loop, we can just do a call when this uncommon thing happens. We can get the compiler to never inline our function when this happens with a small edit:

diff --git a/msgspec/core.c b/msgspec/core.c
index 4ee348c..78b1917 100644
--- a/msgspec/core.c
+++ b/msgspec/core.c
@@ -12,6 +12,7 @@
 #define MP_UNLIKELY(pred) __builtin_expect(!!(pred), 0)

 #define MP_INLINE __attribute__((always_inline))
+#define MP_NOINLINE __attribute__((noinline))

 #if PY_VERSION_HEX < 0x03090000
 #define IS_TRACKED _PyObject_GC_IS_TRACKED
@@ -2143,6 +2144,12 @@ mp_resize(EncoderState *self, Py_ssize_t size)
     return 0;
 }

+MP_NOINLINE static int
+mp_resize_cold(EncoderState *self, Py_ssize_t size)
+{
+    return mp_resize(self, size);
+}
+
 static inline int
 mp_ensure_space(EncoderState *self, Py_ssize_t size) {
     Py_ssize_t required = self->output_len + size;
@@ -2157,7 +2164,7 @@ mp_write(EncoderState *self, const char *s, Py_ssize_t n)
 {
     Py_ssize_t required = self->output_len + n;
     if (MP_UNLIKELY(required > self->max_output_len)) {
-        if (mp_resize(self, required) < 0) return -1;
+        if (mp_resize_cold(self, required) < 0) return -1;
     }
     memcpy(self->output_buffer_raw + self->output_len, s, n);
     self->output_len += n;

Now, our generated code will push the resizing out of line entirely, which is great!

Benchmark: twitter.json
.....................
Mean +- std dev: 463 us +- 3 us

This isn't a great improvement; however, it is something and it adds up. I also thought it was funny to show a case where disabling inlining is actually a performance improvement.

I also confirmed that the effect we saw earlier was not just dominated by this noinline change, and having both of these is actually still an improvement over just having one by itself.

At this point, we have gotten gcc generating 5.3% faster code, which is faster than our initial clang measurements, so let's make sure we didn't make clang slower:

Benchmark: twitter.json
.....................
Mean +- std dev: 429 us +- 4 us

Clang seems to have done even better with these optimizations! I don't know what the equivalent tree visualizations are for clang, so I am not sure how to look into the clang internal state here.

Third Attempt

Looking at the graph on opt-2.svg, I still see a lot of duplication between the two branches of the two kinds of escaped characters. The two blocks leaving bb 17 are bb 18, the hex-encoded version, and bb 22, the \\ encoded version.

We can actually share a ton of code here by pre-initializing the escaped array with a common prefix: {'\\', escape, '0', '0'}, which also happens to be a single word which can be stored in an immediate (when escape == 'u') which appears right with the instructions.

I did a little shuffling here:

diff --git a/msgspec/core.c b/msgspec/core.c
index 78b1917..3b59be4 100644
--- a/msgspec/core.c
+++ b/msgspec/core.c
@@ -4984,15 +4984,14 @@ json_encode_str(EncoderState *self, PyObject *obj) {
         }

         /* Write the escaped character */
+        size_t size = escape == 'u' ? 6 : 2;
+        char escaped[6] = {'\\', escape, '0', '0'};
         if (escape == 'u') {
-            const char* hex = "0123456789abcdef";
-            char escaped[6] = {'\\', 'u', '0', '0', hex[c >> 4], hex[c & 0xF]};
-            if (mp_write(self, escaped, 6) < 0) return -1;
-        }
-        else {
-            char escaped[2] = {'\\', escape};
-            if (mp_write(self, escaped, 2) < 0) return -1;
+            static const char* const hex = "0123456789abcdef";
+            escaped[4] = hex[c >> 4];
+            escaped[5] = hex[c & 0xF];
         }
+        if (mp_write(self, escaped, size) < 0) return -1;
         start = i + 1;
     }
     /* Write the last unescaped fragment (if any) */

Which let's us share a single mp_write call, and efficiently load the prefix on the escaped array. There is now one bit of dead work, which is the that we will write {'0', '0'} into the buffer for the non-u case; however, this is implemented with a 2-byte store of 0x3030, which will never be read, so it is quite fast.

This is actually a pretty big improvement for gcc, but a pessimization for clang (over the previous best), so I think clang is not doing the same sharing here.

# gcc 11.1.0
Benchmark: twitter.json
.....................
Mean +- std dev: 455 us +- 4 us

# clang-12.0.1
Benchmark: twitter.json
.....................
Mean +- std dev: 449 us +- 4 us

But, now the there isn't much of a difference between the two compilers!

Closing

I didn't exactly help you figure out what the difference between gcc and clang was, but hopefully this helps you think about optimizing C code. This can be continued to keep trying to squeeze performance out of the existing code. Also, the graph visualization then compare generated code can be used to compare what different versions of gcc do with the same code, which is a good way to get a real understanding of how the compilers are treating the code differently.

digraph "small.graph" {
overlap=false;
subgraph "cluster_json_encode_str" {
style="dashed";
color="black";
label="json_encode_str ()";
subgraph cluster_220_1 {
style="filled";
color="darkgreen";
fillcolor="grey88";
label="loop 1";
labeljust=l;
penwidth=2;
fn_220_basic_block_16 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1044213921\<bb\ 16\>:\l\
|#\ start_370\ =\ PHI\ \<start_22(52),\ 0(15)\>\l\
|#\ prephitmp_256\ =\ PHI\ \<prephitmp_346(52),\ _58(15)\>\l\
|#\ prephitmp_253\ =\ PHI\ \<prephitmp_349(52),\ len.49_64(15)\>\l\
|#\ ivtmp.1187_391\ =\ PHI\ \<ivtmp.1187_390(52),\ 0(15)\>\l\
|i_358\ =\ (Py_ssize_t)\ ivtmp.1187_391;\l\
|#\ DEBUG\ start\ =\>\ start_370\l\
|#\ DEBUG\ i\ =\>\ i_358\l\
|#\ DEBUG\ BEGIN_STMT\l\
|c_36\ =\ MEM[(const\ char\ *)_395\ +\ ivtmp.1187_391\ *\ 1];\l\
|#\ DEBUG\ c\ =\>\ c_36\l\
|#\ DEBUG\ BEGIN_STMT\l\
|c.47_4\ =\ (unsigned\ char)\ c_36;\l\
|_5\ =\ (int)\ c.47_4;\l\
|escape_37\ =\ escape_table[_5];\l\
|#\ DEBUG\ escape\ =\>\ escape_37\l\
|#\ DEBUG\ BEGIN_STMT\l\
|pretmp_338\ =\ self_35(D)-\>max_output_len;\l\
|if\ (escape_37\ ==\ 0)\l\
\ \ goto\ \<bb\ 17\>;\ [33.00%]\l\
else\l\
\ \ goto\ \<bb\ 18\>;\ [67.00%]\l\
}"];
fn_220_basic_block_17 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:344590592\<bb\ 17\>:\l\
|_386\ =\ ivtmp.1187_391\ +\ 1;\l\
|_385\ =\ (long\ int)\ _386;\l\
goto\ \<bb\ 52\>;\ [100.00%]\l\
}"];
fn_220_basic_block_18 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:699623329\<bb\ 18\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (i_358\ \>\ start_370)\l\
\ \ goto\ \<bb\ 19\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 29\>;\ [50.00%]\l\
}"];
fn_220_basic_block_52 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1043448021\<bb\ 52\>:\l\
|#\ start_22\ =\ PHI\ \<start_370(17),\ _387(51)\>\l\
|#\ prephitmp_349\ =\ PHI\ \<prephitmp_253(17),\ pretmp_312(51)\>\l\
|#\ prephitmp_347\ =\ PHI\ \<_385(17),\ _387(51)\>\l\
|#\ prephitmp_346\ =\ PHI\ \<prephitmp_256(17),\ prephitmp_350(51)\>\l\
|#\ DEBUG\ start\ =\>\ start_22\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ start\ =\>\ start_22\l\
|#\ DEBUG\ i\ =\>\ i_358\ +\ 1\l\
|#\ DEBUG\ BEGIN_STMT\l\
|ivtmp.1187_390\ =\ ivtmp.1187_391\ +\ 1;\l\
|if\ (prephitmp_347\ \<\ prephitmp_349)\l\
\ \ goto\ \<bb\ 16\>;\ [97.25%]\l\
else\l\
\ \ goto\ \<bb\ 53\>;\ [2.75%]\l\
}"];
fn_220_basic_block_19 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:349811664\<bb\ 19\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_6\ =\ i_358\ -\ start_370;\l\
|start.48_7\ =\ (sizetype)\ start_370;\l\
|_8\ =\ _395\ +\ start.48_7;\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ s\ =\>\ _8\l\
|#\ DEBUG\ n\ =\>\ _6\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_60\ =\ _6\ +\ prephitmp_256;\l\
|#\ DEBUG\ required\ =\>\ required_60\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (required_60\ \>\ pretmp_338)\l\
\ \ goto\ \<bb\ 21\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 20\>;\ [90.00%]\l\
}"];
fn_220_basic_block_29 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:699367967\<bb\ 29\>:\l\
|#\ prephitmp_208\ =\ PHI\ \<prephitmp_256(18),\ _72(28)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|pretmp_306\ =\ self_35(D)-\>max_output_len;\l\
|if\ (escape_37\ ==\ 117)\l\
\ \ goto\ \<bb\ 30\>;\ [34.00%]\l\
else\l\
\ \ goto\ \<bb\ 40\>;\ [66.00%]\l\
}"];
fn_220_basic_block_21 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:34981167\<bb\ 21\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ size\ =\>\ required_60\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_resize\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_179\ =\ self_35(D)-\>output_buffer;\l\
|#\ DEBUG\ ob\ =\>\ _179\l\
|#\ DEBUG\ type\ =\>\ &PyBytes_Type\l\
|#\ DEBUG\ INLINE_ENTRY\ _Py_IS_TYPE\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_180\ =\ MEM[(const\ struct\ PyObject\ *)_179].ob_type;\l\
|#\ DEBUG\ ob\ =\>\ NULL\l\
|#\ DEBUG\ type\ =\>\ NULL\l\
|#\ DEBUG\ is_bytes\ =\>\ _180\ ==\ &PyBytes_Type\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_181\ =\ required_60\ *\ 2;\l\
|_182\ =\ MAX_EXPR\ \<_181,\ 8\>;\l\
|self_35(D)-\>max_output_len\ =\ _182;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_180\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 22\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 23\>;\ [70.00%]\l\
}"];
fn_220_basic_block_20 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:314830497\<bb\ 20\>:\l\
|pretmp_246\ =\ self_35(D)-\>output_buffer_raw;\l\
goto\ \<bb\ 28\>;\ [100.00%]\l\
}"];
fn_220_basic_block_30 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:237785111\<bb\ 30\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ hex\ =\>\ \"0123456789abcdef\"\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ escaped$0\ =\>\ 92\l\
|#\ DEBUG\ escaped$1\ =\>\ 117\l\
|#\ DEBUG\ escaped$2\ =\>\ 48\l\
|#\ DEBUG\ escaped$3\ =\>\ 48\l\
|_9\ =\ c_36\ \>\>\ 4;\l\
|_10\ =\ (sizetype)\ _9;\l\
|_11\ =\ \"0123456789abcdef\"\ +\ _10;\l\
|_12\ =\ *_11;\l\
|#\ DEBUG\ escaped$4\ =\>\ _12\l\
|_31\ =\ c_36\ &\ 15;\l\
|_13\ =\ (sizetype)\ _31;\l\
|_14\ =\ \"0123456789abcdef\"\ +\ _13;\l\
|_15\ =\ *_14;\l\
|#\ DEBUG\ escaped$5\ =\>\ _15\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ s\ =\>\ &escaped\l\
|#\ DEBUG\ n\ =\>\ 6\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_74\ =\ prephitmp_208\ +\ 6;\l\
|#\ DEBUG\ required\ =\>\ required_74\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (required_74\ \>\ pretmp_306)\l\
\ \ goto\ \<bb\ 32\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 31\>;\ [90.00%]\l\
}"];
fn_220_basic_block_40 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:461582855\<bb\ 40\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|escaped[0]\ =\ 92;\l\
|escaped[1]\ =\ escape_37;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ s\ =\>\ &escaped\l\
|#\ DEBUG\ n\ =\>\ 2\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_87\ =\ prephitmp_208\ +\ 2;\l\
|#\ DEBUG\ required\ =\>\ required_87\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (required_87\ \>\ pretmp_306)\l\
\ \ goto\ \<bb\ 42\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 41\>;\ [90.00%]\l\
}"];
fn_220_basic_block_22 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:10494350\<bb\ 22\>:\l\
|_183\ =\ &self_35(D)-\>output_buffer;\l\
|iftmp.10_184\ =\ _PyBytes_Resize\ (_183,\ _182);\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_184\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_184\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 24\>;\ [99.27%]\l\
}"];
fn_220_basic_block_23 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:24486817\<bb\ 23\>:\l\
|iftmp.10_185\ =\ PyByteArray_Resize\ (_179,\ _182);\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_185\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_185\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 25\>;\ [99.27%]\l\
}"];
fn_220_basic_block_28 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:349556302\<bb\ 28\>:\l\
|#\ prephitmp_238\ =\ PHI\ \<pretmp_246(20),\ iftmp.11_192(27),\ _188(24)\>\l\
|#\ prephitmp_216\ =\ PHI\ \<prephitmp_256(20),\ pretmp_231(27),\ pretmp_223(24)\>\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ BEGIN_STMT\l\
|n.9_66\ =\ (long\ unsigned\ int)\ _6;\l\
|_69\ =\ (sizetype)\ prephitmp_216;\l\
|_70\ =\ prephitmp_238\ +\ _69;\l\
|memcpy\ (_70,\ _8,\ n.9_66);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_71\ =\ self_35(D)-\>output_len;\l\
|_72\ =\ _6\ +\ _71;\l\
|self_35(D)-\>output_len\ =\ _72;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
}"];
fn_220_basic_block_32 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:23778511\<bb\ 32\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ size\ =\>\ required_74\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_resize\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_194\ =\ self_35(D)-\>output_buffer;\l\
|#\ DEBUG\ ob\ =\>\ _194\l\
|#\ DEBUG\ type\ =\>\ &PyBytes_Type\l\
|#\ DEBUG\ INLINE_ENTRY\ _Py_IS_TYPE\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_195\ =\ MEM[(const\ struct\ PyObject\ *)_194].ob_type;\l\
|#\ DEBUG\ ob\ =\>\ NULL\l\
|#\ DEBUG\ type\ =\>\ NULL\l\
|#\ DEBUG\ is_bytes\ =\>\ _195\ ==\ &PyBytes_Type\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_196\ =\ required_74\ *\ 2;\l\
|_197\ =\ MAX_EXPR\ \<_196,\ 8\>;\l\
|self_35(D)-\>max_output_len\ =\ _197;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_195\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 33\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 34\>;\ [70.00%]\l\
}"];
fn_220_basic_block_31 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:214006600\<bb\ 31\>:\l\
|pretmp_352\ =\ self_35(D)-\>output_buffer_raw;\l\
goto\ \<bb\ 39\>;\ [100.00%]\l\
}"];
fn_220_basic_block_42 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:46158286\<bb\ 42\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ size\ =\>\ required_87\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_resize\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_209\ =\ self_35(D)-\>output_buffer;\l\
|#\ DEBUG\ ob\ =\>\ _209\l\
|#\ DEBUG\ type\ =\>\ &PyBytes_Type\l\
|#\ DEBUG\ INLINE_ENTRY\ _Py_IS_TYPE\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_210\ =\ MEM[(const\ struct\ PyObject\ *)_209].ob_type;\l\
|#\ DEBUG\ ob\ =\>\ NULL\l\
|#\ DEBUG\ type\ =\>\ NULL\l\
|#\ DEBUG\ is_bytes\ =\>\ _210\ ==\ &PyBytes_Type\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_211\ =\ required_87\ *\ 2;\l\
|_212\ =\ MAX_EXPR\ \<_211,\ 8\>;\l\
|self_35(D)-\>max_output_len\ =\ _212;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_210\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 43\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 45\>;\ [70.00%]\l\
}"];
fn_220_basic_block_41 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:415424569\<bb\ 41\>:\l\
|pretmp_171\ =\ self_35(D)-\>output_buffer_raw;\l\
goto\ \<bb\ 50\>;\ [100.00%]\l\
}"];
fn_220_basic_block_24 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:10417741\<bb\ 24\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_187\ =\ self_35(D)-\>output_buffer;\l\
|_188\ =\ &MEM[(struct\ PyBytesObject\ *)_187].ob_sval;\l\
|self_35(D)-\>output_buffer_raw\ =\ _188;\l\
|pretmp_223\ =\ self_35(D)-\>output_len;\l\
goto\ \<bb\ 28\>;\ [100.00%]\l\
}"];
fn_220_basic_block_25 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:24308063\<bb\ 25\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_189\ =\ self_35(D)-\>output_buffer;\l\
|_190\ =\ MEM[(struct\ PyVarObject\ *)_189].ob_size;\l\
|if\ (_190\ !=\ 0)\l\
\ \ goto\ \<bb\ 26\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 27\>;\ [50.00%]\l\
}"];
fn_220_basic_block_33 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:7133553\<bb\ 33\>:\l\
|_198\ =\ &self_35(D)-\>output_buffer;\l\
|iftmp.10_199\ =\ _PyBytes_Resize\ (_198,\ _197);\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_199\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_199\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 35\>;\ [99.27%]\l\
}"];
fn_220_basic_block_34 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:16644958\<bb\ 34\>:\l\
|iftmp.10_200\ =\ PyByteArray_Resize\ (_194,\ _197);\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_200\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_200\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 36\>;\ [99.27%]\l\
}"];
fn_220_basic_block_39 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:237611528\<bb\ 39\>:\l\
|#\ prephitmp_351\ =\ PHI\ \<pretmp_352(31),\ iftmp.11_207(38),\ _203(35)\>\l\
|#\ prephitmp_313\ =\ PHI\ \<prephitmp_208(31),\ pretmp_314(38),\ pretmp_324(35)\>\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_82\ =\ (sizetype)\ prephitmp_313;\l\
|_83\ =\ prephitmp_351\ +\ _82;\l\
|MEM\ \<unsigned\ int\>\ [(char\ *\ \{ref-all\})_83]\ =\ 808482140;\l\
|MEM[(char\ *\ \{ref-all\})_83\ +\ 4B]\ =\ _12;\l\
|MEM[(char\ *\ \{ref-all\})_83\ +\ 5B]\ =\ _15;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_84\ =\ self_35(D)-\>output_len;\l\
|_85\ =\ _84\ +\ 6;\l\
|self_35(D)-\>output_len\ =\ _85;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ escaped$0\ =\>\ NULL\l\
|#\ DEBUG\ escaped$1\ =\>\ NULL\l\
|#\ DEBUG\ escaped$2\ =\>\ NULL\l\
|#\ DEBUG\ escaped$3\ =\>\ NULL\l\
|#\ DEBUG\ escaped$4\ =\>\ NULL\l\
|#\ DEBUG\ escaped$5\ =\>\ NULL\l\
goto\ \<bb\ 51\>;\ [100.00%]\l\
}"];
fn_220_basic_block_43 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:13847486\<bb\ 43\>:\l\
|_213\ =\ &self_35(D)-\>output_buffer;\l\
|iftmp.10_214\ =\ _PyBytes_Resize\ (_213,\ _212);\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_214\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_214\ \<\ 0)\l\
\ \ goto\ \<bb\ 44\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 46\>;\ [99.27%]\l\
}"];
fn_220_basic_block_45 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:32310800\<bb\ 45\>:\l\
|iftmp.10_215\ =\ PyByteArray_Resize\ (_209,\ _212);\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_215\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_215\ \<\ 0)\l\
\ \ goto\ \<bb\ 44\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 47\>;\ [99.27%]\l\
}"];
fn_220_basic_block_50 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:461245900\<bb\ 50\>:\l\
|#\ prephitmp_355\ =\ PHI\ \<pretmp_171(41),\ iftmp.11_222(49),\ _218(46)\>\l\
|#\ prephitmp_353\ =\ PHI\ \<prephitmp_208(41),\ pretmp_315(49),\ pretmp_354(46)\>\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_95\ =\ (sizetype)\ prephitmp_353;\l\
|_96\ =\ prephitmp_355\ +\ _95;\l\
|_34\ =\ MEM\ \<short\ unsigned\ int\>\ [(char\ *\ \{ref-all\})&escaped];\l\
|MEM\ \<short\ unsigned\ int\>\ [(char\ *\ \{ref-all\})_96]\ =\ _34;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_97\ =\ self_35(D)-\>output_len;\l\
|_98\ =\ _97\ +\ 2;\l\
|self_35(D)-\>output_len\ =\ _98;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|escaped\ =\{v\}\ \{CLOBBER\};\l\
}"];
fn_220_basic_block_26 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:12154032\<bb\ 26\>:\l\
|iftmp.11_191\ =\ MEM[(struct\ PyByteArrayObject\ *)_189].ob_start;\l\
}"];
fn_220_basic_block_27 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:24308063\<bb\ 27\>:\l\
|#\ iftmp.11_192\ =\ PHI\ \<&_PyByteArray_empty_string(25),\ iftmp.11_191(26)\>\l\
|self_35(D)-\>output_buffer_raw\ =\ iftmp.11_192;\l\
|pretmp_231\ =\ self_35(D)-\>output_len;\l\
}"];
fn_220_basic_block_35 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:7081478\<bb\ 35\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_202\ =\ self_35(D)-\>output_buffer;\l\
|_203\ =\ &MEM[(struct\ PyBytesObject\ *)_202].ob_sval;\l\
|self_35(D)-\>output_buffer_raw\ =\ _203;\l\
|pretmp_324\ =\ self_35(D)-\>output_len;\l\
goto\ \<bb\ 39\>;\ [100.00%]\l\
}"];
fn_220_basic_block_36 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:16523450\<bb\ 36\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_204\ =\ self_35(D)-\>output_buffer;\l\
|_205\ =\ MEM[(struct\ PyVarObject\ *)_204].ob_size;\l\
|if\ (_205\ !=\ 0)\l\
\ \ goto\ \<bb\ 37\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 38\>;\ [50.00%]\l\
}"];
fn_220_basic_block_51 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:698857428\<bb\ 51\>:\l\
|#\ prephitmp_350\ =\ PHI\ \<_85(39),\ _98(50)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_389\ =\ ivtmp.1187_391\ +\ 1;\l\
|_387\ =\ (long\ int)\ _389;\l\
|#\ DEBUG\ start\ =\>\ _387\l\
|pretmp_312\ =\ len;\l\
}"];
fn_220_basic_block_46 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:13746399\<bb\ 46\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_217\ =\ self_35(D)-\>output_buffer;\l\
|_218\ =\ &MEM[(struct\ PyBytesObject\ *)_217].ob_sval;\l\
|self_35(D)-\>output_buffer_raw\ =\ _218;\l\
|pretmp_354\ =\ self_35(D)-\>output_len;\l\
goto\ \<bb\ 50\>;\ [100.00%]\l\
}"];
fn_220_basic_block_47 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:32074932\<bb\ 47\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_219\ =\ self_35(D)-\>output_buffer;\l\
|_220\ =\ MEM[(struct\ PyVarObject\ *)_219].ob_size;\l\
|if\ (_220\ !=\ 0)\l\
\ \ goto\ \<bb\ 48\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 49\>;\ [50.00%]\l\
}"];
fn_220_basic_block_37 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:8261725\<bb\ 37\>:\l\
|iftmp.11_206\ =\ MEM[(struct\ PyByteArrayObject\ *)_204].ob_start;\l\
}"];
fn_220_basic_block_38 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:16523450\<bb\ 38\>:\l\
|#\ iftmp.11_207\ =\ PHI\ \<&_PyByteArray_empty_string(36),\ iftmp.11_206(37)\>\l\
|self_35(D)-\>output_buffer_raw\ =\ iftmp.11_207;\l\
|pretmp_314\ =\ self_35(D)-\>output_len;\l\
}"];
fn_220_basic_block_48 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:16037466\<bb\ 48\>:\l\
|iftmp.11_221\ =\ MEM[(struct\ PyByteArrayObject\ *)_219].ob_start;\l\
}"];
fn_220_basic_block_49 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:32074932\<bb\ 49\>:\l\
|#\ iftmp.11_222\ =\ PHI\ \<&_PyByteArray_empty_string(47),\ iftmp.11_221(48)\>\l\
|self_35(D)-\>output_buffer_raw\ =\ iftmp.11_222;\l\
|pretmp_315\ =\ self_35(D)-\>output_len;\l\
}"];
}
fn_220_basic_block_0 [shape=Mdiamond,style=filled,fillcolor=white,label="ENTRY"];
fn_220_basic_block_1 [shape=Mdiamond,style=filled,fillcolor=white,label="EXIT"];
fn_220_basic_block_2 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:30452973\<bb\ 2\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ start\ =\>\ 0\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ str\ =\>\ obj_33(D)\l\
|#\ DEBUG\ size\ =\>\ &len\l\
|#\ DEBUG\ INLINE_ENTRY\ unicode_str_and_size\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_126\ =\ BIT_FIELD_REF\ \<MEM[(struct\ PyASCIIObject\ *)obj_33(D)],\ 8,\ 256\>;\l\
|_127\ =\ _126\ &\ 96;\l\
|if\ (_127\ ==\ 96)\l\
\ \ goto\ \<bb\ 3\>;\ [35.01%]\l\
else\l\
\ \ goto\ \<bb\ 4\>;\ [64.99%]\l\
}"];
fn_220_basic_block_3 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:10661586\<bb\ 3\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_128\ =\ MEM[(struct\ PyASCIIObject\ *)obj_33(D)].length;\l\
|len\ =\ _128;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_129\ =\ obj_33(D)\ +\ 48;\l\
|#\ DEBUG\ str\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ buf\ =\>\ _129\l\
|#\ DEBUG\ BEGIN_STMT\l\
goto\ \<bb\ 6\>;\ [100.00%]\l\
}"];
fn_220_basic_block_4 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:19791387\<bb\ 4\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_130\ =\ PyUnicode_AsUTF8AndSize\ (obj_33(D),\ &len);\l\
|#\ DEBUG\ str\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ buf\ =\>\ _130\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_130\ ==\ 0B)\l\
\ \ goto\ \<bb\ 5\>;\ [0.69%]\l\
else\l\
\ \ goto\ \<bb\ 6\>;\ [99.31%]\l\
}"];
fn_220_basic_block_5 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:623883\<bb\ 5\>:\l\
goto\ \<bb\ 74\>;\ [100.00%]\l\
}"];
fn_220_basic_block_6 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:30315935\<bb\ 6\>:\l\
|#\ _395\ =\ PHI\ \<_130(4),\ _129(3)\>\l\
|#\ DEBUG\ str\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ buf\ =\>\ _395\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ s\ =\>\ \"\\\"\"\l\
|#\ DEBUG\ n\ =\>\ 1\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_46\ =\ self_35(D)-\>output_len;\l\
|required_47\ =\ _46\ +\ 1;\l\
|#\ DEBUG\ required\ =\>\ required_47\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_48\ =\ self_35(D)-\>max_output_len;\l\
|if\ (required_47\ \>\ _48)\l\
\ \ goto\ \<bb\ 8\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 7\>;\ [90.00%]\l\
}"];
fn_220_basic_block_7 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:27284341\<bb\ 7\>:\l\
|pretmp_262\ =\ self_35(D)-\>output_buffer_raw;\l\
goto\ \<bb\ 15\>;\ [100.00%]\l\
}"];
fn_220_basic_block_8 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:3031594\<bb\ 8\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ size\ =\>\ required_47\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_resize\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_164\ =\ self_35(D)-\>output_buffer;\l\
|#\ DEBUG\ ob\ =\>\ _164\l\
|#\ DEBUG\ type\ =\>\ &PyBytes_Type\l\
|#\ DEBUG\ INLINE_ENTRY\ _Py_IS_TYPE\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_165\ =\ MEM[(const\ struct\ PyObject\ *)_164].ob_type;\l\
|#\ DEBUG\ ob\ =\>\ NULL\l\
|#\ DEBUG\ type\ =\>\ NULL\l\
|#\ DEBUG\ is_bytes\ =\>\ _165\ ==\ &PyBytes_Type\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_166\ =\ required_47\ *\ 2;\l\
|_167\ =\ MAX_EXPR\ \<_166,\ 8\>;\l\
|self_35(D)-\>max_output_len\ =\ _167;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_165\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 9\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 10\>;\ [70.00%]\l\
}"];
fn_220_basic_block_9 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:909478\<bb\ 9\>:\l\
|_168\ =\ &self_35(D)-\>output_buffer;\l\
|iftmp.10_169\ =\ _PyBytes_Resize\ (_168,\ _167);\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_169\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_169\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 11\>;\ [99.27%]\l\
}"];
fn_220_basic_block_10 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:2122115\<bb\ 10\>:\l\
|iftmp.10_170\ =\ PyByteArray_Resize\ (_164,\ _167);\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_170\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_170\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 12\>;\ [99.27%]\l\
}"];
fn_220_basic_block_11 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:902839\<bb\ 11\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_172\ =\ self_35(D)-\>output_buffer;\l\
|_173\ =\ &MEM[(struct\ PyBytesObject\ *)_172].ob_sval;\l\
|self_35(D)-\>output_buffer_raw\ =\ _173;\l\
|pretmp_259\ =\ self_35(D)-\>output_len;\l\
goto\ \<bb\ 15\>;\ [100.00%]\l\
}"];
fn_220_basic_block_12 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:2106624\<bb\ 12\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_174\ =\ self_35(D)-\>output_buffer;\l\
|_175\ =\ MEM[(struct\ PyVarObject\ *)_174].ob_size;\l\
|if\ (_175\ !=\ 0)\l\
\ \ goto\ \<bb\ 13\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 14\>;\ [50.00%]\l\
}"];
fn_220_basic_block_13 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1053312\<bb\ 13\>:\l\
|iftmp.11_176\ =\ MEM[(struct\ PyByteArrayObject\ *)_174].ob_start;\l\
}"];
fn_220_basic_block_14 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:2106624\<bb\ 14\>:\l\
|#\ iftmp.11_177\ =\ PHI\ \<&_PyByteArray_empty_string(12),\ iftmp.11_176(13)\>\l\
|self_35(D)-\>output_buffer_raw\ =\ iftmp.11_177;\l\
|pretmp_260\ =\ self_35(D)-\>output_len;\l\
}"];
fn_220_basic_block_15 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:30293804\<bb\ 15\>:\l\
|#\ prephitmp_261\ =\ PHI\ \<pretmp_262(7),\ iftmp.11_177(14),\ _173(11)\>\l\
|#\ prephitmp_258\ =\ PHI\ \<_46(7),\ pretmp_260(14),\ pretmp_259(11)\>\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_55\ =\ (sizetype)\ prephitmp_258;\l\
|_56\ =\ prephitmp_261\ +\ _55;\l\
|memcpy\ (_56,\ \"\\\"\",\ 1);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_57\ =\ self_35(D)-\>output_len;\l\
|_58\ =\ _57\ +\ 1;\l\
|self_35(D)-\>output_len\ =\ _58;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ start\ =\>\ 0\l\
|#\ DEBUG\ i\ =\>\ 0\l\
|#\ DEBUG\ BEGIN_STMT\l\
|len.49_64\ =\ len;\l\
|if\ (len.49_64\ \>\ 0)\l\
\ \ goto\ \<bb\ 16\>;\ [97.25%]\l\
else\l\
\ \ goto\ \<bb\ 53\>;\ [2.75%]\l\
}"];
fn_220_basic_block_44 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:336955\<bb\ 44\>:\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ BEGIN_STMT\l\
|escaped\ =\{v\}\ \{CLOBBER\};\l\
goto\ \<bb\ 74\>;\ [100.00%]\l\
}"];
fn_220_basic_block_53 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:29527904\<bb\ 53\>:\l\
|#\ len.49_104\ =\ PHI\ \<prephitmp_349(52),\ len.49_64(15)\>\l\
|#\ i_364\ =\ PHI\ \<prephitmp_347(52),\ 0(15)\>\l\
|#\ start_376\ =\ PHI\ \<start_22(52),\ 0(15)\>\l\
|#\ prephitmp_356\ =\ PHI\ \<prephitmp_346(52),\ _58(15)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|pretmp_340\ =\ self_35(D)-\>max_output_len;\l\
|if\ (len.49_104\ !=\ start_376)\l\
\ \ goto\ \<bb\ 54\>;\ [66.00%]\l\
else\l\
\ \ goto\ \<bb\ 64\>;\ [34.00%]\l\
}"];
fn_220_basic_block_54 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:19488417\<bb\ 54\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_18\ =\ i_364\ -\ start_376;\l\
|start.51_19\ =\ (sizetype)\ start_376;\l\
|_20\ =\ _395\ +\ start.51_19;\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ s\ =\>\ _20\l\
|#\ DEBUG\ n\ =\>\ _18\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_100\ =\ _18\ +\ prephitmp_356;\l\
|#\ DEBUG\ required\ =\>\ required_100\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (required_100\ \>\ pretmp_340)\l\
\ \ goto\ \<bb\ 56\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 55\>;\ [90.00%]\l\
}"];
fn_220_basic_block_55 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:17539575\<bb\ 55\>:\l\
|pretmp_79\ =\ self_35(D)-\>output_buffer_raw;\l\
goto\ \<bb\ 63\>;\ [100.00%]\l\
}"];
fn_220_basic_block_56 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1948842\<bb\ 56\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ size\ =\>\ required_100\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_resize\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_224\ =\ self_35(D)-\>output_buffer;\l\
|#\ DEBUG\ ob\ =\>\ _224\l\
|#\ DEBUG\ type\ =\>\ &PyBytes_Type\l\
|#\ DEBUG\ INLINE_ENTRY\ _Py_IS_TYPE\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_225\ =\ MEM[(const\ struct\ PyObject\ *)_224].ob_type;\l\
|#\ DEBUG\ ob\ =\>\ NULL\l\
|#\ DEBUG\ type\ =\>\ NULL\l\
|#\ DEBUG\ is_bytes\ =\>\ _225\ ==\ &PyBytes_Type\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_226\ =\ required_100\ *\ 2;\l\
|_227\ =\ MAX_EXPR\ \<_226,\ 8\>;\l\
|self_35(D)-\>max_output_len\ =\ _227;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_225\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 57\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 58\>;\ [70.00%]\l\
}"];
fn_220_basic_block_57 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:584652\<bb\ 57\>:\l\
|_228\ =\ &self_35(D)-\>output_buffer;\l\
|iftmp.10_229\ =\ _PyBytes_Resize\ (_228,\ _227);\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_229\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_229\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 59\>;\ [99.27%]\l\
}"];
fn_220_basic_block_58 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1364189\<bb\ 58\>:\l\
|iftmp.10_230\ =\ PyByteArray_Resize\ (_224,\ _227);\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_230\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_230\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 60\>;\ [99.27%]\l\
}"];
fn_220_basic_block_59 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:580385\<bb\ 59\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_232\ =\ self_35(D)-\>output_buffer;\l\
|_233\ =\ &MEM[(struct\ PyBytesObject\ *)_232].ob_sval;\l\
|self_35(D)-\>output_buffer_raw\ =\ _233;\l\
|pretmp_309\ =\ self_35(D)-\>output_len;\l\
goto\ \<bb\ 63\>;\ [100.00%]\l\
}"];
fn_220_basic_block_60 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1354231\<bb\ 60\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_234\ =\ self_35(D)-\>output_buffer;\l\
|_235\ =\ MEM[(struct\ PyVarObject\ *)_234].ob_size;\l\
|if\ (_235\ !=\ 0)\l\
\ \ goto\ \<bb\ 61\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 62\>;\ [50.00%]\l\
}"];
fn_220_basic_block_61 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:677115\<bb\ 61\>:\l\
|iftmp.11_236\ =\ MEM[(struct\ PyByteArrayObject\ *)_234].ob_start;\l\
}"];
fn_220_basic_block_62 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1354231\<bb\ 62\>:\l\
|#\ iftmp.11_237\ =\ PHI\ \<&_PyByteArray_empty_string(60),\ iftmp.11_236(61)\>\l\
|self_35(D)-\>output_buffer_raw\ =\ iftmp.11_237;\l\
|pretmp_345\ =\ self_35(D)-\>output_len;\l\
}"];
fn_220_basic_block_63 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:19474190\<bb\ 63\>:\l\
|#\ prephitmp_65\ =\ PHI\ \<pretmp_79(55),\ iftmp.11_237(62),\ _233(59)\>\l\
|#\ prephitmp_344\ =\ PHI\ \<prephitmp_356(55),\ pretmp_345(62),\ pretmp_309(59)\>\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ BEGIN_STMT\l\
|n.9_106\ =\ (long\ unsigned\ int)\ _18;\l\
|_109\ =\ (sizetype)\ prephitmp_344;\l\
|_110\ =\ prephitmp_65\ +\ _109;\l\
|memcpy\ (_110,\ _20,\ n.9_106);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_111\ =\ self_35(D)-\>output_len;\l\
|_112\ =\ _18\ +\ _111;\l\
|self_35(D)-\>output_len\ =\ _112;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
}"];
fn_220_basic_block_64 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:29513677\<bb\ 64\>:\l\
|#\ prephitmp_343\ =\ PHI\ \<prephitmp_356(53),\ _112(63)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ s\ =\>\ \"\\\"\"\l\
|#\ DEBUG\ n\ =\>\ 1\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_114\ =\ prephitmp_343\ +\ 1;\l\
|#\ DEBUG\ required\ =\>\ required_114\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_115\ =\ self_35(D)-\>max_output_len;\l\
|if\ (required_114\ \>\ _115)\l\
\ \ goto\ \<bb\ 66\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 65\>;\ [90.00%]\l\
}"];
fn_220_basic_block_65 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:26562309\<bb\ 65\>:\l\
|pretmp_308\ =\ self_35(D)-\>output_buffer_raw;\l\
goto\ \<bb\ 73\>;\ [100.00%]\l\
}"];
fn_220_basic_block_66 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:2951368\<bb\ 66\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ size\ =\>\ required_114\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_resize\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_239\ =\ self_35(D)-\>output_buffer;\l\
|#\ DEBUG\ ob\ =\>\ _239\l\
|#\ DEBUG\ type\ =\>\ &PyBytes_Type\l\
|#\ DEBUG\ INLINE_ENTRY\ _Py_IS_TYPE\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_240\ =\ MEM[(const\ struct\ PyObject\ *)_239].ob_type;\l\
|#\ DEBUG\ ob\ =\>\ NULL\l\
|#\ DEBUG\ type\ =\>\ NULL\l\
|#\ DEBUG\ is_bytes\ =\>\ _240\ ==\ &PyBytes_Type\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_241\ =\ required_114\ *\ 2;\l\
|_242\ =\ MAX_EXPR\ \<_241,\ 8\>;\l\
|self_35(D)-\>max_output_len\ =\ _242;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_240\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 67\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 68\>;\ [70.00%]\l\
}"];
fn_220_basic_block_67 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:885410\<bb\ 67\>:\l\
|_243\ =\ &self_35(D)-\>output_buffer;\l\
|iftmp.10_244\ =\ _PyBytes_Resize\ (_243,\ _242);\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_244\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_244\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 69\>;\ [99.27%]\l\
}"];
fn_220_basic_block_68 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:2065957\<bb\ 68\>:\l\
|iftmp.10_245\ =\ PyByteArray_Resize\ (_239,\ _242);\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_245\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_245\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 70\>;\ [99.27%]\l\
}"];
fn_220_basic_block_69 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:878947\<bb\ 69\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_247\ =\ self_35(D)-\>output_buffer;\l\
|_248\ =\ &MEM[(struct\ PyBytesObject\ *)_247].ob_sval;\l\
|self_35(D)-\>output_buffer_raw\ =\ _248;\l\
|pretmp_317\ =\ self_35(D)-\>output_len;\l\
goto\ \<bb\ 73\>;\ [100.00%]\l\
}"];
fn_220_basic_block_70 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:2050876\<bb\ 70\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_249\ =\ self_35(D)-\>output_buffer;\l\
|_250\ =\ MEM[(struct\ PyVarObject\ *)_249].ob_size;\l\
|if\ (_250\ !=\ 0)\l\
\ \ goto\ \<bb\ 71\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 72\>;\ [50.00%]\l\
}"];
fn_220_basic_block_71 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1025438\<bb\ 71\>:\l\
|iftmp.11_251\ =\ MEM[(struct\ PyByteArrayObject\ *)_249].ob_start;\l\
}"];
fn_220_basic_block_72 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:2050876\<bb\ 72\>:\l\
|#\ iftmp.11_252\ =\ PHI\ \<&_PyByteArray_empty_string(70),\ iftmp.11_251(71)\>\l\
|self_35(D)-\>output_buffer_raw\ =\ iftmp.11_252;\l\
|pretmp_307\ =\ self_35(D)-\>output_len;\l\
}"];
fn_220_basic_block_73 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:29492133\<bb\ 73\>:\l\
|#\ prephitmp_322\ =\ PHI\ \<pretmp_308(65),\ iftmp.11_252(72),\ _248(69)\>\l\
|#\ prephitmp_321\ =\ PHI\ \<prephitmp_343(65),\ pretmp_307(72),\ pretmp_317(69)\>\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_122\ =\ (sizetype)\ prephitmp_321;\l\
|_123\ =\ prephitmp_322\ +\ _122;\l\
|memcpy\ (_123,\ \"\\\"\",\ 1);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_124\ =\ self_35(D)-\>output_len;\l\
|_125\ =\ _124\ +\ 1;\l\
|self_35(D)-\>output_len\ =\ _125;\l\
|#\ DEBUG\ BEGIN_STMT\l\
}"];
fn_220_basic_block_74 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:30452974\<bb\ 74\>:\l\
|#\ _24\ =\ PHI\ \<-1(5),\ -1(44),\ 0(73)\>\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ escaped$0\ =\>\ NULL\l\
|#\ DEBUG\ escaped$1\ =\>\ NULL\l\
|#\ DEBUG\ escaped$2\ =\>\ NULL\l\
|#\ DEBUG\ escaped$3\ =\>\ NULL\l\
|#\ DEBUG\ escaped$4\ =\>\ NULL\l\
|#\ DEBUG\ escaped$5\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|len\ =\{v\}\ \{CLOBBER\};\l\
|return\ _24;\l\
}"];
fn_220_basic_block_0:s -> fn_220_basic_block_2:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_2:s -> fn_220_basic_block_3:n [style="solid,bold",color=black,weight=10,constraint=true,label="[35%]"];
fn_220_basic_block_2:s -> fn_220_basic_block_4:n [style="solid,bold",color=black,weight=10,constraint=true,label="[64%]"];
fn_220_basic_block_3:s -> fn_220_basic_block_6:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_4:s -> fn_220_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_4:s -> fn_220_basic_block_6:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_5:s -> fn_220_basic_block_74:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_6:s -> fn_220_basic_block_8:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_220_basic_block_6:s -> fn_220_basic_block_7:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_220_basic_block_7:s -> fn_220_basic_block_15:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_8:s -> fn_220_basic_block_9:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_8:s -> fn_220_basic_block_10:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_9:s -> fn_220_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_9:s -> fn_220_basic_block_11:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_10:s -> fn_220_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_10:s -> fn_220_basic_block_12:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_11:s -> fn_220_basic_block_15:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_12:s -> fn_220_basic_block_13:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_12:s -> fn_220_basic_block_14:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_13:s -> fn_220_basic_block_14:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_14:s -> fn_220_basic_block_15:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_15:s -> fn_220_basic_block_16:n [style="solid,bold",color=black,weight=10,constraint=true,label="[97%]"];
fn_220_basic_block_15:s -> fn_220_basic_block_53:n [style="solid,bold",color=black,weight=10,constraint=true,label="[2%]"];
fn_220_basic_block_16:s -> fn_220_basic_block_17:n [style="solid,bold",color=black,weight=10,constraint=true,label="[33%]"];
fn_220_basic_block_16:s -> fn_220_basic_block_18:n [style="solid,bold",color=black,weight=10,constraint=true,label="[67%]"];
fn_220_basic_block_17:s -> fn_220_basic_block_52:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_18:s -> fn_220_basic_block_19:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_18:s -> fn_220_basic_block_29:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_19:s -> fn_220_basic_block_21:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_220_basic_block_19:s -> fn_220_basic_block_20:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_220_basic_block_20:s -> fn_220_basic_block_28:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_21:s -> fn_220_basic_block_22:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_21:s -> fn_220_basic_block_23:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_22:s -> fn_220_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_22:s -> fn_220_basic_block_24:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_23:s -> fn_220_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_23:s -> fn_220_basic_block_25:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_24:s -> fn_220_basic_block_28:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_25:s -> fn_220_basic_block_26:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_25:s -> fn_220_basic_block_27:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_26:s -> fn_220_basic_block_27:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_27:s -> fn_220_basic_block_28:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_28:s -> fn_220_basic_block_29:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_29:s -> fn_220_basic_block_30:n [style="solid,bold",color=black,weight=10,constraint=true,label="[34%]"];
fn_220_basic_block_29:s -> fn_220_basic_block_40:n [style="solid,bold",color=black,weight=10,constraint=true,label="[66%]"];
fn_220_basic_block_30:s -> fn_220_basic_block_32:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_220_basic_block_30:s -> fn_220_basic_block_31:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_220_basic_block_31:s -> fn_220_basic_block_39:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_32:s -> fn_220_basic_block_33:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_32:s -> fn_220_basic_block_34:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_33:s -> fn_220_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_33:s -> fn_220_basic_block_35:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_34:s -> fn_220_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_34:s -> fn_220_basic_block_36:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_35:s -> fn_220_basic_block_39:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_36:s -> fn_220_basic_block_37:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_36:s -> fn_220_basic_block_38:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_37:s -> fn_220_basic_block_38:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_38:s -> fn_220_basic_block_39:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_39:s -> fn_220_basic_block_51:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_40:s -> fn_220_basic_block_42:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_220_basic_block_40:s -> fn_220_basic_block_41:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_220_basic_block_41:s -> fn_220_basic_block_50:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_42:s -> fn_220_basic_block_43:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_42:s -> fn_220_basic_block_45:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_43:s -> fn_220_basic_block_44:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_43:s -> fn_220_basic_block_46:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_44:s -> fn_220_basic_block_74:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_45:s -> fn_220_basic_block_44:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_45:s -> fn_220_basic_block_47:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_46:s -> fn_220_basic_block_50:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_47:s -> fn_220_basic_block_48:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_47:s -> fn_220_basic_block_49:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_48:s -> fn_220_basic_block_49:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_49:s -> fn_220_basic_block_50:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_50:s -> fn_220_basic_block_51:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_51:s -> fn_220_basic_block_52:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_52:s -> fn_220_basic_block_16:n [style="dotted,bold",color=blue,weight=10,constraint=false,label="[97%]"];
fn_220_basic_block_52:s -> fn_220_basic_block_53:n [style="solid,bold",color=black,weight=10,constraint=true,label="[2%]"];
fn_220_basic_block_53:s -> fn_220_basic_block_54:n [style="solid,bold",color=black,weight=10,constraint=true,label="[66%]"];
fn_220_basic_block_53:s -> fn_220_basic_block_64:n [style="solid,bold",color=black,weight=10,constraint=true,label="[34%]"];
fn_220_basic_block_54:s -> fn_220_basic_block_56:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_220_basic_block_54:s -> fn_220_basic_block_55:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_220_basic_block_55:s -> fn_220_basic_block_63:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_56:s -> fn_220_basic_block_57:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_56:s -> fn_220_basic_block_58:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_57:s -> fn_220_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_57:s -> fn_220_basic_block_59:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_58:s -> fn_220_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_58:s -> fn_220_basic_block_60:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_59:s -> fn_220_basic_block_63:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_60:s -> fn_220_basic_block_61:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_60:s -> fn_220_basic_block_62:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_61:s -> fn_220_basic_block_62:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_62:s -> fn_220_basic_block_63:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_63:s -> fn_220_basic_block_64:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_64:s -> fn_220_basic_block_66:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_220_basic_block_64:s -> fn_220_basic_block_65:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_220_basic_block_65:s -> fn_220_basic_block_73:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_66:s -> fn_220_basic_block_67:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_66:s -> fn_220_basic_block_68:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_67:s -> fn_220_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_67:s -> fn_220_basic_block_69:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_68:s -> fn_220_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_68:s -> fn_220_basic_block_70:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_69:s -> fn_220_basic_block_73:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_70:s -> fn_220_basic_block_71:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_70:s -> fn_220_basic_block_72:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_71:s -> fn_220_basic_block_72:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_72:s -> fn_220_basic_block_73:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_73:s -> fn_220_basic_block_74:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_74:s -> fn_220_basic_block_1:n [style="solid,bold",color=black,weight=10,constraint=true,label="[100%]"];
fn_220_basic_block_0:s -> fn_220_basic_block_1:n [style="invis",constraint=true];
}
}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
digraph "small.graph" {
overlap=false;
subgraph "cluster_json_encode_str" {
style="dashed";
color="black";
label="json_encode_str ()";
subgraph cluster_223_1 {
style="filled";
color="darkgreen";
fillcolor="grey88";
label="loop 1";
labeljust=l;
penwidth=2;
fn_223_basic_block_10 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1044213921\<bb\ 10\>:\l\
|#\ start_102\ =\ PHI\ \<start_22(28),\ 0(9)\>\l\
|#\ prephitmp_196\ =\ PHI\ \<prephitmp_212(28),\ _58(9)\>\l\
|#\ prephitmp_199\ =\ PHI\ \<prephitmp_209(28),\ len.47_49(9)\>\l\
|#\ ivtmp.754_197\ =\ PHI\ \<ivtmp.754_192(28),\ 0(9)\>\l\
|i_116\ =\ (Py_ssize_t)\ ivtmp.754_197;\l\
|#\ DEBUG\ start\ =\>\ start_102\l\
|#\ DEBUG\ i\ =\>\ i_116\l\
|#\ DEBUG\ BEGIN_STMT\l\
|c_36\ =\ MEM[(const\ char\ *)_184\ +\ ivtmp.754_197\ *\ 1];\l\
|#\ DEBUG\ c\ =\>\ c_36\l\
|#\ DEBUG\ BEGIN_STMT\l\
|c.45_4\ =\ (unsigned\ char)\ c_36;\l\
|_5\ =\ (int)\ c.45_4;\l\
|escape_37\ =\ escape_table[_5];\l\
|#\ DEBUG\ escape\ =\>\ escape_37\l\
|#\ DEBUG\ BEGIN_STMT\l\
|pretmp_225\ =\ self_35(D)-\>max_output_len;\l\
|if\ (escape_37\ ==\ 0)\l\
\ \ goto\ \<bb\ 11\>;\ [33.00%]\l\
else\l\
\ \ goto\ \<bb\ 12\>;\ [67.00%]\l\
}"];
fn_223_basic_block_11 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:344590592\<bb\ 11\>:\l\
|_189\ =\ ivtmp.754_197\ +\ 1;\l\
|_188\ =\ (long\ int)\ _189;\l\
goto\ \<bb\ 28\>;\ [100.00%]\l\
}"];
fn_223_basic_block_12 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:699623329\<bb\ 12\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (start_102\ \<\ i_116)\l\
\ \ goto\ \<bb\ 13\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 17\>;\ [50.00%]\l\
}"];
fn_223_basic_block_28 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1043448021\<bb\ 28\>:\l\
|#\ start_22\ =\ PHI\ \<start_102(11),\ _190(27)\>\l\
|#\ prephitmp_209\ =\ PHI\ \<prephitmp_199(11),\ pretmp_208(27)\>\l\
|#\ prephitmp_211\ =\ PHI\ \<_188(11),\ _190(27)\>\l\
|#\ prephitmp_212\ =\ PHI\ \<prephitmp_196(11),\ prephitmp_207(27)\>\l\
|#\ DEBUG\ start\ =\>\ start_22\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ start\ =\>\ start_22\l\
|#\ DEBUG\ i\ =\>\ i_116\ +\ 1\l\
|#\ DEBUG\ BEGIN_STMT\l\
|ivtmp.754_192\ =\ ivtmp.754_197\ +\ 1;\l\
|if\ (prephitmp_209\ \>\ prephitmp_211)\l\
\ \ goto\ \<bb\ 10\>;\ [97.25%]\l\
else\l\
\ \ goto\ \<bb\ 29\>;\ [2.75%]\l\
}"];
fn_223_basic_block_13 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:349811664\<bb\ 13\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_6\ =\ i_116\ -\ start_102;\l\
|start.46_7\ =\ (sizetype)\ start_102;\l\
|_8\ =\ _184\ +\ start.46_7;\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ s\ =\>\ _8\l\
|#\ DEBUG\ n\ =\>\ _6\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_60\ =\ _6\ +\ prephitmp_196;\l\
|#\ DEBUG\ required\ =\>\ required_60\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (required_60\ \>\ pretmp_225)\l\
\ \ goto\ \<bb\ 14\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 16\>;\ [90.00%]\l\
}"];
fn_223_basic_block_17 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:699367967\<bb\ 17\>:\l\
|#\ prephitmp_202\ =\ PHI\ \<prephitmp_196(12),\ _72(16)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|pretmp_223\ =\ self_35(D)-\>max_output_len;\l\
|if\ (escape_37\ ==\ 117)\l\
\ \ goto\ \<bb\ 18\>;\ [34.00%]\l\
else\l\
\ \ goto\ \<bb\ 22\>;\ [66.00%]\l\
}"];
fn_223_basic_block_14 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:34981167\<bb\ 14\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_65\ =\ mp_resize_cold\ (self_35(D),\ required_60);\l\
|if\ (_65\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 15\>;\ [99.27%]\l\
}"];
fn_223_basic_block_16 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:349556302\<bb\ 16\>:\l\
|#\ prephitmp_201\ =\ PHI\ \<prephitmp_196(13),\ pretmp_200(15)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|n.9_66\ =\ (long\ unsigned\ int)\ _6;\l\
|_67\ =\ self_35(D)-\>output_buffer_raw;\l\
|_69\ =\ (sizetype)\ prephitmp_201;\l\
|_70\ =\ _67\ +\ _69;\l\
|memcpy\ (_70,\ _8,\ n.9_66);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_71\ =\ self_35(D)-\>output_len;\l\
|_72\ =\ _6\ +\ _71;\l\
|self_35(D)-\>output_len\ =\ _72;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
}"];
fn_223_basic_block_18 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:237785111\<bb\ 18\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ hex\ =\>\ \"0123456789abcdef\"\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ escaped$0\ =\>\ 92\l\
|#\ DEBUG\ escaped$1\ =\>\ 117\l\
|#\ DEBUG\ escaped$2\ =\>\ 48\l\
|#\ DEBUG\ escaped$3\ =\>\ 48\l\
|_9\ =\ c_36\ \>\>\ 4;\l\
|_10\ =\ (sizetype)\ _9;\l\
|_11\ =\ \"0123456789abcdef\"\ +\ _10;\l\
|_12\ =\ *_11;\l\
|#\ DEBUG\ escaped$4\ =\>\ _12\l\
|_31\ =\ c_36\ &\ 15;\l\
|_13\ =\ (sizetype)\ _31;\l\
|_14\ =\ \"0123456789abcdef\"\ +\ _13;\l\
|_15\ =\ *_14;\l\
|#\ DEBUG\ escaped$5\ =\>\ _15\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ s\ =\>\ &escaped\l\
|#\ DEBUG\ n\ =\>\ 6\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_74\ =\ prephitmp_202\ +\ 6;\l\
|#\ DEBUG\ required\ =\>\ required_74\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (required_74\ \>\ pretmp_223)\l\
\ \ goto\ \<bb\ 19\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 21\>;\ [90.00%]\l\
}"];
fn_223_basic_block_22 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:461582855\<bb\ 22\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|escaped[0]\ =\ 92;\l\
|escaped[1]\ =\ escape_37;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ s\ =\>\ &escaped\l\
|#\ DEBUG\ n\ =\>\ 2\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_87\ =\ prephitmp_202\ +\ 2;\l\
|#\ DEBUG\ required\ =\>\ required_87\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (required_87\ \>\ pretmp_223)\l\
\ \ goto\ \<bb\ 23\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 25\>;\ [90.00%]\l\
}"];
fn_223_basic_block_15 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:34725805\<bb\ 15\>:\l\
|pretmp_200\ =\ self_35(D)-\>output_len;\l\
}"];
fn_223_basic_block_19 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:23778511\<bb\ 19\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_79\ =\ mp_resize_cold\ (self_35(D),\ required_74);\l\
|if\ (_79\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 20\>;\ [99.27%]\l\
}"];
fn_223_basic_block_21 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:237611528\<bb\ 21\>:\l\
|#\ prephitmp_206\ =\ PHI\ \<prephitmp_202(18),\ pretmp_205(20)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_80\ =\ self_35(D)-\>output_buffer_raw;\l\
|_82\ =\ (sizetype)\ prephitmp_206;\l\
|_83\ =\ _80\ +\ _82;\l\
|MEM\ \<unsigned\ int\>\ [(char\ *\ \{ref-all\})_83]\ =\ 808482140;\l\
|MEM[(char\ *\ \{ref-all\})_83\ +\ 4B]\ =\ _12;\l\
|MEM[(char\ *\ \{ref-all\})_83\ +\ 5B]\ =\ _15;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_84\ =\ self_35(D)-\>output_len;\l\
|_85\ =\ _84\ +\ 6;\l\
|self_35(D)-\>output_len\ =\ _85;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ escaped$0\ =\>\ NULL\l\
|#\ DEBUG\ escaped$1\ =\>\ NULL\l\
|#\ DEBUG\ escaped$2\ =\>\ NULL\l\
|#\ DEBUG\ escaped$3\ =\>\ NULL\l\
|#\ DEBUG\ escaped$4\ =\>\ NULL\l\
|#\ DEBUG\ escaped$5\ =\>\ NULL\l\
goto\ \<bb\ 27\>;\ [100.00%]\l\
}"];
fn_223_basic_block_23 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:46158286\<bb\ 23\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_92\ =\ mp_resize_cold\ (self_35(D),\ required_87);\l\
|if\ (_92\ \<\ 0)\l\
\ \ goto\ \<bb\ 26\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 24\>;\ [99.27%]\l\
}"];
fn_223_basic_block_25 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:461245900\<bb\ 25\>:\l\
|#\ prephitmp_204\ =\ PHI\ \<prephitmp_202(22),\ pretmp_203(24)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_93\ =\ self_35(D)-\>output_buffer_raw;\l\
|_95\ =\ (sizetype)\ prephitmp_204;\l\
|_96\ =\ _93\ +\ _95;\l\
|_34\ =\ MEM\ \<short\ unsigned\ int\>\ [(char\ *\ \{ref-all\})&escaped];\l\
|MEM\ \<short\ unsigned\ int\>\ [(char\ *\ \{ref-all\})_96]\ =\ _34;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_97\ =\ self_35(D)-\>output_len;\l\
|_98\ =\ _97\ +\ 2;\l\
|self_35(D)-\>output_len\ =\ _98;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|escaped\ =\{v\}\ \{CLOBBER\};\l\
goto\ \<bb\ 27\>;\ [100.00%]\l\
}"];
fn_223_basic_block_20 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:23604928\<bb\ 20\>:\l\
|pretmp_205\ =\ self_35(D)-\>output_len;\l\
}"];
fn_223_basic_block_27 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:698857428\<bb\ 27\>:\l\
|#\ prephitmp_207\ =\ PHI\ \<_85(21),\ _98(25)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_191\ =\ ivtmp.754_197\ +\ 1;\l\
|_190\ =\ (long\ int)\ _191;\l\
|#\ DEBUG\ start\ =\>\ _190\l\
|pretmp_208\ =\ len;\l\
}"];
fn_223_basic_block_24 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:45821331\<bb\ 24\>:\l\
|pretmp_203\ =\ self_35(D)-\>output_len;\l\
}"];
}
fn_223_basic_block_0 [shape=Mdiamond,style=filled,fillcolor=white,label="ENTRY"];
fn_223_basic_block_1 [shape=Mdiamond,style=filled,fillcolor=white,label="EXIT"];
fn_223_basic_block_2 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:30452973\<bb\ 2\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ start\ =\>\ 0\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ str\ =\>\ obj_33(D)\l\
|#\ DEBUG\ size\ =\>\ &len\l\
|#\ DEBUG\ INLINE_ENTRY\ unicode_str_and_size\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_126\ =\ BIT_FIELD_REF\ \<MEM[(struct\ PyASCIIObject\ *)obj_33(D)],\ 8,\ 256\>;\l\
|_127\ =\ _126\ &\ 96;\l\
|if\ (_127\ ==\ 96)\l\
\ \ goto\ \<bb\ 3\>;\ [35.01%]\l\
else\l\
\ \ goto\ \<bb\ 4\>;\ [64.99%]\l\
}"];
fn_223_basic_block_3 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:10661586\<bb\ 3\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_128\ =\ MEM[(struct\ PyASCIIObject\ *)obj_33(D)].length;\l\
|len\ =\ _128;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_129\ =\ obj_33(D)\ +\ 48;\l\
|#\ DEBUG\ str\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ buf\ =\>\ _129\l\
|#\ DEBUG\ BEGIN_STMT\l\
goto\ \<bb\ 6\>;\ [100.00%]\l\
}"];
fn_223_basic_block_4 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:19791387\<bb\ 4\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_130\ =\ PyUnicode_AsUTF8AndSize\ (obj_33(D),\ &len);\l\
|#\ DEBUG\ str\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ buf\ =\>\ _130\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_130\ ==\ 0B)\l\
\ \ goto\ \<bb\ 5\>;\ [0.69%]\l\
else\l\
\ \ goto\ \<bb\ 6\>;\ [99.31%]\l\
}"];
fn_223_basic_block_5 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:623886\<bb\ 5\>:\l\
goto\ \<bb\ 38\>;\ [100.00%]\l\
}"];
fn_223_basic_block_6 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:30315935\<bb\ 6\>:\l\
|#\ _184\ =\ PHI\ \<_130(4),\ _129(3)\>\l\
|#\ DEBUG\ str\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ buf\ =\>\ _184\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ s\ =\>\ \"\\\"\"\l\
|#\ DEBUG\ n\ =\>\ 1\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_46\ =\ self_35(D)-\>output_len;\l\
|required_47\ =\ _46\ +\ 1;\l\
|#\ DEBUG\ required\ =\>\ required_47\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_48\ =\ self_35(D)-\>max_output_len;\l\
|if\ (required_47\ \>\ _48)\l\
\ \ goto\ \<bb\ 7\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 9\>;\ [90.00%]\l\
}"];
fn_223_basic_block_7 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:3031594\<bb\ 7\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_52\ =\ mp_resize_cold\ (self_35(D),\ required_47);\l\
|if\ (_52\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 8\>;\ [99.27%]\l\
}"];
fn_223_basic_block_8 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:3009463\<bb\ 8\>:\l\
|pretmp_193\ =\ self_35(D)-\>output_len;\l\
}"];
fn_223_basic_block_9 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:30293804\<bb\ 9\>:\l\
|#\ prephitmp_194\ =\ PHI\ \<_46(6),\ pretmp_193(8)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_53\ =\ self_35(D)-\>output_buffer_raw;\l\
|_55\ =\ (sizetype)\ prephitmp_194;\l\
|_56\ =\ _53\ +\ _55;\l\
|memcpy\ (_56,\ \"\\\"\",\ 1);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_57\ =\ self_35(D)-\>output_len;\l\
|_58\ =\ _57\ +\ 1;\l\
|self_35(D)-\>output_len\ =\ _58;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ start\ =\>\ 0\l\
|#\ DEBUG\ i\ =\>\ 0\l\
|#\ DEBUG\ BEGIN_STMT\l\
|len.47_49\ =\ len;\l\
|if\ (len.47_49\ \>\ 0)\l\
\ \ goto\ \<bb\ 10\>;\ [97.25%]\l\
else\l\
\ \ goto\ \<bb\ 29\>;\ [2.75%]\l\
}"];
fn_223_basic_block_26 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:336955\<bb\ 26\>:\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ BEGIN_STMT\l\
|escaped\ =\{v\}\ \{CLOBBER\};\l\
goto\ \<bb\ 38\>;\ [100.00%]\l\
}"];
fn_223_basic_block_29 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:29527904\<bb\ 29\>:\l\
|#\ len.47_50\ =\ PHI\ \<prephitmp_209(28),\ len.47_49(9)\>\l\
|#\ i_117\ =\ PHI\ \<prephitmp_211(28),\ 0(9)\>\l\
|#\ start_103\ =\ PHI\ \<start_22(28),\ 0(9)\>\l\
|#\ prephitmp_216\ =\ PHI\ \<prephitmp_212(28),\ _58(9)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|pretmp_222\ =\ self_35(D)-\>max_output_len;\l\
|if\ (len.47_50\ !=\ start_103)\l\
\ \ goto\ \<bb\ 30\>;\ [66.00%]\l\
else\l\
\ \ goto\ \<bb\ 34\>;\ [34.00%]\l\
}"];
fn_223_basic_block_30 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:19488417\<bb\ 30\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_18\ =\ i_117\ -\ start_103;\l\
|start.49_19\ =\ (sizetype)\ start_103;\l\
|_20\ =\ _184\ +\ start.49_19;\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ s\ =\>\ _20\l\
|#\ DEBUG\ n\ =\>\ _18\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_100\ =\ _18\ +\ prephitmp_216;\l\
|#\ DEBUG\ required\ =\>\ required_100\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (required_100\ \>\ pretmp_222)\l\
\ \ goto\ \<bb\ 31\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 33\>;\ [90.00%]\l\
}"];
fn_223_basic_block_31 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1948842\<bb\ 31\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_105\ =\ mp_resize_cold\ (self_35(D),\ required_100);\l\
|if\ (_105\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 32\>;\ [99.27%]\l\
}"];
fn_223_basic_block_32 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1934615\<bb\ 32\>:\l\
|pretmp_217\ =\ self_35(D)-\>output_len;\l\
}"];
fn_223_basic_block_33 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:19474190\<bb\ 33\>:\l\
|#\ prephitmp_218\ =\ PHI\ \<prephitmp_216(30),\ pretmp_217(32)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|n.9_106\ =\ (long\ unsigned\ int)\ _18;\l\
|_107\ =\ self_35(D)-\>output_buffer_raw;\l\
|_109\ =\ (sizetype)\ prephitmp_218;\l\
|_110\ =\ _107\ +\ _109;\l\
|memcpy\ (_110,\ _20,\ n.9_106);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_111\ =\ self_35(D)-\>output_len;\l\
|_112\ =\ _18\ +\ _111;\l\
|self_35(D)-\>output_len\ =\ _112;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
}"];
fn_223_basic_block_34 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:29513677\<bb\ 34\>:\l\
|#\ prephitmp_219\ =\ PHI\ \<prephitmp_216(29),\ _112(33)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_35(D)\l\
|#\ DEBUG\ s\ =\>\ \"\\\"\"\l\
|#\ DEBUG\ n\ =\>\ 1\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_114\ =\ prephitmp_219\ +\ 1;\l\
|#\ DEBUG\ required\ =\>\ required_114\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_115\ =\ self_35(D)-\>max_output_len;\l\
|if\ (required_114\ \>\ _115)\l\
\ \ goto\ \<bb\ 35\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 37\>;\ [90.00%]\l\
}"];
fn_223_basic_block_35 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:2951368\<bb\ 35\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_119\ =\ mp_resize_cold\ (self_35(D),\ required_114);\l\
|if\ (_119\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 36\>;\ [99.27%]\l\
}"];
fn_223_basic_block_36 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:2929823\<bb\ 36\>:\l\
|pretmp_220\ =\ self_35(D)-\>output_len;\l\
}"];
fn_223_basic_block_37 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:29492133\<bb\ 37\>:\l\
|#\ prephitmp_221\ =\ PHI\ \<prephitmp_219(34),\ pretmp_220(36)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_120\ =\ self_35(D)-\>output_buffer_raw;\l\
|_122\ =\ (sizetype)\ prephitmp_221;\l\
|_123\ =\ _120\ +\ _122;\l\
|memcpy\ (_123,\ \"\\\"\",\ 1);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_124\ =\ self_35(D)-\>output_len;\l\
|_125\ =\ _124\ +\ 1;\l\
|self_35(D)-\>output_len\ =\ _125;\l\
|#\ DEBUG\ BEGIN_STMT\l\
}"];
fn_223_basic_block_38 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:30452974\<bb\ 38\>:\l\
|#\ _24\ =\ PHI\ \<-1(5),\ -1(26),\ 0(37)\>\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ escaped$0\ =\>\ NULL\l\
|#\ DEBUG\ escaped$1\ =\>\ NULL\l\
|#\ DEBUG\ escaped$2\ =\>\ NULL\l\
|#\ DEBUG\ escaped$3\ =\>\ NULL\l\
|#\ DEBUG\ escaped$4\ =\>\ NULL\l\
|#\ DEBUG\ escaped$5\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|len\ =\{v\}\ \{CLOBBER\};\l\
|return\ _24;\l\
}"];
fn_223_basic_block_0:s -> fn_223_basic_block_2:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_2:s -> fn_223_basic_block_3:n [style="solid,bold",color=black,weight=10,constraint=true,label="[35%]"];
fn_223_basic_block_2:s -> fn_223_basic_block_4:n [style="solid,bold",color=black,weight=10,constraint=true,label="[64%]"];
fn_223_basic_block_3:s -> fn_223_basic_block_6:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_4:s -> fn_223_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_223_basic_block_4:s -> fn_223_basic_block_6:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_223_basic_block_5:s -> fn_223_basic_block_38:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_6:s -> fn_223_basic_block_7:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_223_basic_block_6:s -> fn_223_basic_block_9:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_223_basic_block_7:s -> fn_223_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_223_basic_block_7:s -> fn_223_basic_block_8:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_223_basic_block_8:s -> fn_223_basic_block_9:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_9:s -> fn_223_basic_block_10:n [style="solid,bold",color=black,weight=10,constraint=true,label="[97%]"];
fn_223_basic_block_9:s -> fn_223_basic_block_29:n [style="solid,bold",color=black,weight=10,constraint=true,label="[2%]"];
fn_223_basic_block_10:s -> fn_223_basic_block_11:n [style="solid,bold",color=black,weight=10,constraint=true,label="[33%]"];
fn_223_basic_block_10:s -> fn_223_basic_block_12:n [style="solid,bold",color=black,weight=10,constraint=true,label="[67%]"];
fn_223_basic_block_11:s -> fn_223_basic_block_28:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_12:s -> fn_223_basic_block_13:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_223_basic_block_12:s -> fn_223_basic_block_17:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_223_basic_block_13:s -> fn_223_basic_block_14:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_223_basic_block_13:s -> fn_223_basic_block_16:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_223_basic_block_14:s -> fn_223_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_223_basic_block_14:s -> fn_223_basic_block_15:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_223_basic_block_15:s -> fn_223_basic_block_16:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_16:s -> fn_223_basic_block_17:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_17:s -> fn_223_basic_block_18:n [style="solid,bold",color=black,weight=10,constraint=true,label="[34%]"];
fn_223_basic_block_17:s -> fn_223_basic_block_22:n [style="solid,bold",color=black,weight=10,constraint=true,label="[66%]"];
fn_223_basic_block_18:s -> fn_223_basic_block_19:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_223_basic_block_18:s -> fn_223_basic_block_21:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_223_basic_block_19:s -> fn_223_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_223_basic_block_19:s -> fn_223_basic_block_20:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_223_basic_block_20:s -> fn_223_basic_block_21:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_21:s -> fn_223_basic_block_27:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_22:s -> fn_223_basic_block_23:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_223_basic_block_22:s -> fn_223_basic_block_25:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_223_basic_block_23:s -> fn_223_basic_block_26:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_223_basic_block_23:s -> fn_223_basic_block_24:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_223_basic_block_24:s -> fn_223_basic_block_25:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_25:s -> fn_223_basic_block_27:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_26:s -> fn_223_basic_block_38:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_27:s -> fn_223_basic_block_28:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_28:s -> fn_223_basic_block_10:n [style="dotted,bold",color=blue,weight=10,constraint=false,label="[97%]"];
fn_223_basic_block_28:s -> fn_223_basic_block_29:n [style="solid,bold",color=black,weight=10,constraint=true,label="[2%]"];
fn_223_basic_block_29:s -> fn_223_basic_block_30:n [style="solid,bold",color=black,weight=10,constraint=true,label="[66%]"];
fn_223_basic_block_29:s -> fn_223_basic_block_34:n [style="solid,bold",color=black,weight=10,constraint=true,label="[34%]"];
fn_223_basic_block_30:s -> fn_223_basic_block_31:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_223_basic_block_30:s -> fn_223_basic_block_33:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_223_basic_block_31:s -> fn_223_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_223_basic_block_31:s -> fn_223_basic_block_32:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_223_basic_block_32:s -> fn_223_basic_block_33:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_33:s -> fn_223_basic_block_34:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_34:s -> fn_223_basic_block_35:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_223_basic_block_34:s -> fn_223_basic_block_37:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_223_basic_block_35:s -> fn_223_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_223_basic_block_35:s -> fn_223_basic_block_36:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_223_basic_block_36:s -> fn_223_basic_block_37:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_37:s -> fn_223_basic_block_38:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_38:s -> fn_223_basic_block_1:n [style="solid,bold",color=black,weight=10,constraint=true,label="[100%]"];
fn_223_basic_block_0:s -> fn_223_basic_block_1:n [style="invis",constraint=true];
}
}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
digraph "small.graph" {
overlap=false;
subgraph "cluster_json_encode_str" {
style="dashed";
color="black";
label="json_encode_str ()";
subgraph cluster_223_1 {
style="filled";
color="darkgreen";
fillcolor="grey88";
label="loop 1";
labeljust=l;
penwidth=2;
fn_223_basic_block_10 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1034442873\<bb\ 10\>:\l\
|#\ start_97\ =\ PHI\ \<start_22(23),\ 0(9)\>\l\
|#\ prephitmp_185\ =\ PHI\ \<prephitmp_196(23),\ _66(9)\>\l\
|#\ ivtmp.750_50\ =\ PHI\ \<ivtmp.750_48(23),\ 0(9)\>\l\
|i_111\ =\ (Py_ssize_t)\ ivtmp.750_50;\l\
|#\ DEBUG\ start\ =\>\ start_97\l\
|#\ DEBUG\ i\ =\>\ i_111\l\
|#\ DEBUG\ BEGIN_STMT\l\
|c_37\ =\ MEM[(const\ char\ *)_169\ +\ ivtmp.750_50\ *\ 1];\l\
|#\ DEBUG\ c\ =\>\ c_37\l\
|#\ DEBUG\ BEGIN_STMT\l\
|c.45_3\ =\ (unsigned\ char)\ c_37;\l\
|_4\ =\ (int)\ c.45_3;\l\
|escape_38\ =\ escape_table[_4];\l\
|#\ DEBUG\ escape\ =\>\ escape_38\l\
|#\ DEBUG\ BEGIN_STMT\l\
|pretmp_208\ =\ self_36(D)-\>max_output_len;\l\
|if\ (escape_38\ ==\ 0)\l\
\ \ goto\ \<bb\ 11\>;\ [33.00%]\l\
else\l\
\ \ goto\ \<bb\ 12\>;\ [67.00%]\l\
}"];
fn_223_basic_block_11 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:341366146\<bb\ 11\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_197\ =\ ivtmp.750_50\ +\ 1;\l\
|_187\ =\ (long\ int)\ _197;\l\
goto\ \<bb\ 23\>;\ [100.00%]\l\
}"];
fn_223_basic_block_12 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:693076727\<bb\ 12\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (start_97\ \<\ i_111)\l\
\ \ goto\ \<bb\ 13\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 17\>;\ [50.00%]\l\
}"];
fn_223_basic_block_23 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1033684139\<bb\ 23\>:\l\
|#\ start_22\ =\ PHI\ \<_198(21),\ start_97(11)\>\l\
|#\ prephitmp_195\ =\ PHI\ \<_198(21),\ _187(11)\>\l\
|#\ prephitmp_196\ =\ PHI\ \<_93(21),\ prephitmp_185(11)\>\l\
|escaped\ =\{v\}\ \{CLOBBER\};\l\
|#\ DEBUG\ start\ =\>\ start_22\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ start\ =\>\ start_22\l\
|#\ DEBUG\ i\ =\>\ i_111\ +\ 1\l\
|#\ DEBUG\ BEGIN_STMT\l\
|len.49_16\ =\ len;\l\
|ivtmp.750_48\ =\ ivtmp.750_50\ +\ 1;\l\
|if\ (len.49_16\ \>\ prephitmp_195)\l\
\ \ goto\ \<bb\ 10\>;\ [96.34%]\l\
else\l\
\ \ goto\ \<bb\ 24\>;\ [3.66%]\l\
}"];
fn_223_basic_block_13 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:346538363\<bb\ 13\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_5\ =\ i_111\ -\ start_97;\l\
|start.46_6\ =\ (sizetype)\ start_97;\l\
|_7\ =\ _169\ +\ start.46_6;\l\
|#\ DEBUG\ self\ =\>\ self_36(D)\l\
|#\ DEBUG\ s\ =\>\ _7\l\
|#\ DEBUG\ n\ =\>\ _5\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_68\ =\ _5\ +\ prephitmp_185;\l\
|#\ DEBUG\ required\ =\>\ required_68\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (required_68\ \>\ pretmp_208)\l\
\ \ goto\ \<bb\ 14\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 16\>;\ [90.00%]\l\
}"];
fn_223_basic_block_17 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:692823754\<bb\ 17\>:\l\
|#\ prephitmp_190\ =\ PHI\ \<prephitmp_185(12),\ _80(16)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (escape_38\ ==\ 117)\l\
\ \ goto\ \<bb\ 34\>;\ [34.00%]\l\
else\l\
\ \ goto\ \<bb\ 35\>;\ [66.00%]\l\
}"];
fn_223_basic_block_14 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:34653837\<bb\ 14\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_73\ =\ mp_resize_cold\ (self_36(D),\ required_68);\l\
|if\ (_73\ \<\ 0)\l\
\ \ goto\ \<bb\ 22\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 15\>;\ [99.27%]\l\
}"];
fn_223_basic_block_16 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:346285390\<bb\ 16\>:\l\
|#\ prephitmp_189\ =\ PHI\ \<prephitmp_185(13),\ pretmp_188(15)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|n.9_74\ =\ (long\ unsigned\ int)\ _5;\l\
|_75\ =\ self_36(D)-\>output_buffer_raw;\l\
|_77\ =\ (sizetype)\ prephitmp_189;\l\
|_78\ =\ _75\ +\ _77;\l\
|memcpy\ (_78,\ _7,\ n.9_74);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_79\ =\ self_36(D)-\>output_len;\l\
|_80\ =\ _5\ +\ _79;\l\
|self_36(D)-\>output_len\ =\ _80;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
}"];
fn_223_basic_block_34 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:235560079\<bb\ 34\>:\l\
|#\ DEBUG\ size\ =\>\ 6\l\
|#\ DEBUG\ BEGIN_STMT\l\
|MEM\ \<unsigned\ int\>\ [(char\ *)&escaped]\ =\ 808482140;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ size\ =\>\ 6\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ hex\ =\>\ \"0123456789abcdef\"\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_8\ =\ c_37\ \>\>\ 4;\l\
|_9\ =\ (sizetype)\ _8;\l\
|_10\ =\ \"0123456789abcdef\"\ +\ _9;\l\
|_11\ =\ *_10;\l\
|escaped[4]\ =\ _11;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_33\ =\ c_37\ &\ 15;\l\
|_12\ =\ (sizetype)\ _33;\l\
|_13\ =\ \"0123456789abcdef\"\ +\ _12;\l\
|_14\ =\ *_13;\l\
|escaped[5]\ =\ _14;\l\
goto\ \<bb\ 18\>;\ [100.00%]\l\
}"];
fn_223_basic_block_35 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:457263675\<bb\ 35\>:\l\
|#\ DEBUG\ size\ =\>\ 2\l\
|#\ DEBUG\ BEGIN_STMT\l\
|escaped[0]\ =\ 92;\l\
|escaped[1]\ =\ escape_38;\l\
|MEM\ \<unsigned\ int\>\ [(void\ *)&escaped\ +\ 2B]\ =\ 12336;\l\
|#\ DEBUG\ BEGIN_STMT\l\
goto\ \<bb\ 18\>;\ [100.00%]\l\
}"];
fn_223_basic_block_15 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:34400864\<bb\ 15\>:\l\
|pretmp_188\ =\ self_36(D)-\>output_len;\l\
}"];
fn_223_basic_block_18 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:692823754\<bb\ 18\>:\l\
|#\ iftmp.47_165\ =\ PHI\ \<2(35),\ 6(34)\>\l\
|#\ prephitmp_191\ =\ PHI\ \<2(35),\ 6(34)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_36(D)\l\
|#\ DEBUG\ s\ =\>\ &escaped\l\
|#\ DEBUG\ n\ =\>\ (long\ int)\ iftmp.47_165\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_82\ =\ prephitmp_190\ +\ prephitmp_191;\l\
|#\ DEBUG\ required\ =\>\ required_82\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_83\ =\ self_36(D)-\>max_output_len;\l\
|if\ (required_82\ \>\ _83)\l\
\ \ goto\ \<bb\ 19\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 21\>;\ [90.00%]\l\
}"];
fn_223_basic_block_19 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:69282376\<bb\ 19\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_87\ =\ mp_resize_cold\ (self_36(D),\ required_82);\l\
|if\ (_87\ \<\ 0)\l\
\ \ goto\ \<bb\ 22\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 20\>;\ [99.27%]\l\
}"];
fn_223_basic_block_21 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:692317992\<bb\ 21\>:\l\
|#\ prephitmp_193\ =\ PHI\ \<prephitmp_190(18),\ pretmp_192(20)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_88\ =\ self_36(D)-\>output_buffer_raw;\l\
|_90\ =\ (sizetype)\ prephitmp_193;\l\
|_91\ =\ _88\ +\ _90;\l\
|memcpy\ (_91,\ &escaped,\ iftmp.47_165);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_92\ =\ self_36(D)-\>output_len;\l\
|_93\ =\ _92\ +\ prephitmp_191;\l\
|self_36(D)-\>output_len\ =\ _93;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_199\ =\ ivtmp.750_50\ +\ 1;\l\
|_198\ =\ (long\ int)\ _199;\l\
|#\ DEBUG\ start\ =\>\ _198\l\
goto\ \<bb\ 23\>;\ [100.00%]\l\
}"];
fn_223_basic_block_20 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:68776615\<bb\ 20\>:\l\
|pretmp_192\ =\ self_36(D)-\>output_len;\l\
}"];
}
fn_223_basic_block_0 [shape=Mdiamond,style=filled,fillcolor=white,label="ENTRY"];
fn_223_basic_block_1 [shape=Mdiamond,style=filled,fillcolor=white,label="EXIT"];
fn_223_basic_block_2 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:40268156\<bb\ 2\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ start\ =\>\ 0\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ str\ =\>\ obj_35(D)\l\
|#\ DEBUG\ size\ =\>\ &len\l\
|#\ DEBUG\ INLINE_ENTRY\ unicode_str_and_size\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_121\ =\ BIT_FIELD_REF\ \<MEM[(struct\ PyASCIIObject\ *)obj_35(D)],\ 8,\ 256\>;\l\
|_122\ =\ _121\ &\ 96;\l\
|if\ (_122\ ==\ 96)\l\
\ \ goto\ \<bb\ 3\>;\ [35.01%]\l\
else\l\
\ \ goto\ \<bb\ 4\>;\ [64.99%]\l\
}"];
fn_223_basic_block_3 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:14097882\<bb\ 3\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_123\ =\ MEM[(struct\ PyASCIIObject\ *)obj_35(D)].length;\l\
|len\ =\ _123;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_124\ =\ obj_35(D)\ +\ 48;\l\
|#\ DEBUG\ str\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ buf\ =\>\ _124\l\
|#\ DEBUG\ BEGIN_STMT\l\
goto\ \<bb\ 6\>;\ [100.00%]\l\
}"];
fn_223_basic_block_4 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:26170275\<bb\ 4\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_125\ =\ PyUnicode_AsUTF8AndSize\ (obj_35(D),\ &len);\l\
|#\ DEBUG\ str\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ buf\ =\>\ _125\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_125\ ==\ 0B)\l\
\ \ goto\ \<bb\ 5\>;\ [0.69%]\l\
else\l\
\ \ goto\ \<bb\ 6\>;\ [99.31%]\l\
}"];
fn_223_basic_block_5 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:258078\<bb\ 5\>:\l\
goto\ \<bb\ 33\>;\ [100.00%]\l\
}"];
fn_223_basic_block_6 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:40086950\<bb\ 6\>:\l\
|#\ _169\ =\ PHI\ \<_125(4),\ _124(3)\>\l\
|#\ DEBUG\ str\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ buf\ =\>\ _169\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_36(D)\l\
|#\ DEBUG\ s\ =\>\ \"\\\"\"\l\
|#\ DEBUG\ n\ =\>\ 1\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_53\ =\ self_36(D)-\>output_len;\l\
|required_54\ =\ _53\ +\ 1;\l\
|#\ DEBUG\ required\ =\>\ required_54\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_55\ =\ self_36(D)-\>max_output_len;\l\
|if\ (required_54\ \>\ _55)\l\
\ \ goto\ \<bb\ 7\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 9\>;\ [90.00%]\l\
}"];
fn_223_basic_block_7 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:4008695\<bb\ 7\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_59\ =\ mp_resize_cold\ (self_36(D),\ required_54);\l\
|if\ (_59\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 8\>;\ [99.27%]\l\
}"];
fn_223_basic_block_8 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:3979432\<bb\ 8\>:\l\
|pretmp_182\ =\ self_36(D)-\>output_len;\l\
}"];
fn_223_basic_block_9 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:40057686\<bb\ 9\>:\l\
|#\ prephitmp_183\ =\ PHI\ \<_53(6),\ pretmp_182(8)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_61\ =\ self_36(D)-\>output_buffer_raw;\l\
|_63\ =\ (sizetype)\ prephitmp_183;\l\
|_64\ =\ _61\ +\ _63;\l\
|memcpy\ (_64,\ \"\\\"\",\ 1);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_65\ =\ self_36(D)-\>output_len;\l\
|_66\ =\ _65\ +\ 1;\l\
|self_36(D)-\>output_len\ =\ _66;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ start\ =\>\ 0\l\
|#\ DEBUG\ i\ =\>\ 0\l\
|#\ DEBUG\ BEGIN_STMT\l\
|len.49_56\ =\ len;\l\
|if\ (len.49_56\ \>\ 0)\l\
\ \ goto\ \<bb\ 10\>;\ [96.34%]\l\
else\l\
\ \ goto\ \<bb\ 24\>;\ [3.66%]\l\
}"];
fn_223_basic_block_22 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:758734\<bb\ 22\>:\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|escaped\ =\{v\}\ \{CLOBBER\};\l\
goto\ \<bb\ 33\>;\ [100.00%]\l\
}"];
fn_223_basic_block_24 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:39298952\<bb\ 24\>:\l\
|#\ len.49_57\ =\ PHI\ \<len.49_16(23),\ len.49_56(9)\>\l\
|#\ i_112\ =\ PHI\ \<prephitmp_195(23),\ 0(9)\>\l\
|#\ start_98\ =\ PHI\ \<start_22(23),\ 0(9)\>\l\
|#\ prephitmp_200\ =\ PHI\ \<prephitmp_196(23),\ _66(9)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|pretmp_206\ =\ self_36(D)-\>max_output_len;\l\
|if\ (len.49_57\ !=\ start_98)\l\
\ \ goto\ \<bb\ 25\>;\ [66.00%]\l\
else\l\
\ \ goto\ \<bb\ 29\>;\ [34.00%]\l\
}"];
fn_223_basic_block_25 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:25937308\<bb\ 25\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_18\ =\ i_112\ -\ start_98;\l\
|start.51_19\ =\ (sizetype)\ start_98;\l\
|_20\ =\ _169\ +\ start.51_19;\l\
|#\ DEBUG\ self\ =\>\ self_36(D)\l\
|#\ DEBUG\ s\ =\>\ _20\l\
|#\ DEBUG\ n\ =\>\ _18\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_95\ =\ _18\ +\ prephitmp_200;\l\
|#\ DEBUG\ required\ =\>\ required_95\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (required_95\ \>\ pretmp_206)\l\
\ \ goto\ \<bb\ 26\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 28\>;\ [90.00%]\l\
}"];
fn_223_basic_block_26 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:2593731\<bb\ 26\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_100\ =\ mp_resize_cold\ (self_36(D),\ required_95);\l\
|if\ (_100\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 27\>;\ [99.27%]\l\
}"];
fn_223_basic_block_27 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:2574797\<bb\ 27\>:\l\
|pretmp_201\ =\ self_36(D)-\>output_len;\l\
}"];
fn_223_basic_block_28 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:25918374\<bb\ 28\>:\l\
|#\ prephitmp_202\ =\ PHI\ \<prephitmp_200(25),\ pretmp_201(27)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|n.9_101\ =\ (long\ unsigned\ int)\ _18;\l\
|_102\ =\ self_36(D)-\>output_buffer_raw;\l\
|_104\ =\ (sizetype)\ prephitmp_202;\l\
|_105\ =\ _102\ +\ _104;\l\
|memcpy\ (_105,\ _20,\ n.9_101);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_106\ =\ self_36(D)-\>output_len;\l\
|_107\ =\ _18\ +\ _106;\l\
|self_36(D)-\>output_len\ =\ _107;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
}"];
fn_223_basic_block_29 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:39280018\<bb\ 29\>:\l\
|#\ prephitmp_203\ =\ PHI\ \<prephitmp_200(24),\ _107(28)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_36(D)\l\
|#\ DEBUG\ s\ =\>\ \"\\\"\"\l\
|#\ DEBUG\ n\ =\>\ 1\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|required_109\ =\ prephitmp_203\ +\ 1;\l\
|#\ DEBUG\ required\ =\>\ required_109\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_110\ =\ self_36(D)-\>max_output_len;\l\
|if\ (required_109\ \>\ _110)\l\
\ \ goto\ \<bb\ 30\>;\ [10.00%]\l\
else\l\
\ \ goto\ \<bb\ 32\>;\ [90.00%]\l\
}"];
fn_223_basic_block_30 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:3928002\<bb\ 30\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_114\ =\ mp_resize_cold\ (self_36(D),\ required_109);\l\
|if\ (_114\ \<\ 0)\l\
\ \ goto\ \<bb\ 5\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 31\>;\ [99.27%]\l\
}"];
fn_223_basic_block_31 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:3899328\<bb\ 31\>:\l\
|pretmp_204\ =\ self_36(D)-\>output_len;\l\
}"];
fn_223_basic_block_32 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:39251343\<bb\ 32\>:\l\
|#\ prephitmp_205\ =\ PHI\ \<prephitmp_203(29),\ pretmp_204(31)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_115\ =\ self_36(D)-\>output_buffer_raw;\l\
|_117\ =\ (sizetype)\ prephitmp_205;\l\
|_118\ =\ _115\ +\ _117;\l\
|memcpy\ (_118,\ \"\\\"\",\ 1);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_119\ =\ self_36(D)-\>output_len;\l\
|_120\ =\ _119\ +\ 1;\l\
|self_36(D)-\>output_len\ =\ _120;\l\
|#\ DEBUG\ BEGIN_STMT\l\
}"];
fn_223_basic_block_33 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:40268156\<bb\ 33\>:\l\
|#\ _24\ =\ PHI\ \<-1(5),\ 0(32),\ -1(22)\>\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|len\ =\{v\}\ \{CLOBBER\};\l\
|return\ _24;\l\
}"];
fn_223_basic_block_0:s -> fn_223_basic_block_2:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_2:s -> fn_223_basic_block_3:n [style="solid,bold",color=black,weight=10,constraint=true,label="[35%]"];
fn_223_basic_block_2:s -> fn_223_basic_block_4:n [style="solid,bold",color=black,weight=10,constraint=true,label="[64%]"];
fn_223_basic_block_3:s -> fn_223_basic_block_6:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_4:s -> fn_223_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_223_basic_block_4:s -> fn_223_basic_block_6:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_223_basic_block_5:s -> fn_223_basic_block_33:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_6:s -> fn_223_basic_block_7:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_223_basic_block_6:s -> fn_223_basic_block_9:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_223_basic_block_7:s -> fn_223_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_223_basic_block_7:s -> fn_223_basic_block_8:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_223_basic_block_8:s -> fn_223_basic_block_9:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_9:s -> fn_223_basic_block_10:n [style="solid,bold",color=black,weight=10,constraint=true,label="[96%]"];
fn_223_basic_block_9:s -> fn_223_basic_block_24:n [style="solid,bold",color=black,weight=10,constraint=true,label="[3%]"];
fn_223_basic_block_10:s -> fn_223_basic_block_11:n [style="solid,bold",color=black,weight=10,constraint=true,label="[33%]"];
fn_223_basic_block_10:s -> fn_223_basic_block_12:n [style="solid,bold",color=black,weight=10,constraint=true,label="[67%]"];
fn_223_basic_block_11:s -> fn_223_basic_block_23:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_12:s -> fn_223_basic_block_13:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_223_basic_block_12:s -> fn_223_basic_block_17:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_223_basic_block_13:s -> fn_223_basic_block_14:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_223_basic_block_13:s -> fn_223_basic_block_16:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_223_basic_block_14:s -> fn_223_basic_block_22:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_223_basic_block_14:s -> fn_223_basic_block_15:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_223_basic_block_15:s -> fn_223_basic_block_16:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_16:s -> fn_223_basic_block_17:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_17:s -> fn_223_basic_block_34:n [style="solid,bold",color=black,weight=10,constraint=true,label="[34%]"];
fn_223_basic_block_17:s -> fn_223_basic_block_35:n [style="solid,bold",color=black,weight=10,constraint=true,label="[66%]"];
fn_223_basic_block_18:s -> fn_223_basic_block_19:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_223_basic_block_18:s -> fn_223_basic_block_21:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_223_basic_block_19:s -> fn_223_basic_block_22:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_223_basic_block_19:s -> fn_223_basic_block_20:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_223_basic_block_20:s -> fn_223_basic_block_21:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_21:s -> fn_223_basic_block_23:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_22:s -> fn_223_basic_block_33:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_23:s -> fn_223_basic_block_10:n [style="dotted,bold",color=blue,weight=10,constraint=false,label="[96%]"];
fn_223_basic_block_23:s -> fn_223_basic_block_24:n [style="solid,bold",color=black,weight=10,constraint=true,label="[3%]"];
fn_223_basic_block_24:s -> fn_223_basic_block_25:n [style="solid,bold",color=black,weight=10,constraint=true,label="[66%]"];
fn_223_basic_block_24:s -> fn_223_basic_block_29:n [style="solid,bold",color=black,weight=10,constraint=true,label="[34%]"];
fn_223_basic_block_25:s -> fn_223_basic_block_26:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_223_basic_block_25:s -> fn_223_basic_block_28:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_223_basic_block_26:s -> fn_223_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_223_basic_block_26:s -> fn_223_basic_block_27:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_223_basic_block_27:s -> fn_223_basic_block_28:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_28:s -> fn_223_basic_block_29:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_29:s -> fn_223_basic_block_30:n [style="solid,bold",color=black,weight=10,constraint=true,label="[10%]"];
fn_223_basic_block_29:s -> fn_223_basic_block_32:n [style="solid,bold",color=black,weight=10,constraint=true,label="[90%]"];
fn_223_basic_block_30:s -> fn_223_basic_block_5:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_223_basic_block_30:s -> fn_223_basic_block_31:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_223_basic_block_31:s -> fn_223_basic_block_32:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_32:s -> fn_223_basic_block_33:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_33:s -> fn_223_basic_block_1:n [style="solid,bold",color=black,weight=10,constraint=true,label="[100%]"];
fn_223_basic_block_34:s -> fn_223_basic_block_18:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_35:s -> fn_223_basic_block_18:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_223_basic_block_0:s -> fn_223_basic_block_1:n [style="invis",constraint=true];
}
}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
digraph "small.graph" {
overlap=false;
subgraph "cluster_json_encode_str" {
style="dashed";
color="black";
label="json_encode_str ()";
subgraph cluster_220_1 {
style="filled";
color="darkgreen";
fillcolor="grey88";
label="loop 1";
labeljust=l;
penwidth=2;
fn_220_basic_block_68 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1073741862\<bb\ 68\>:\l\
|#\ i_25\ =\ PHI\ \<0(18),\ i_62(67)\>\l\
|#\ start_27\ =\ PHI\ \<0(18),\ start_26(67)\>\l\
|#\ DEBUG\ start\ =\>\ start_27\l\
|#\ DEBUG\ i\ =\>\ i_25\l\
|#\ DEBUG\ BEGIN_STMT\l\
|len.49_19\ =\ len;\l\
|if\ (len.49_19\ \>\ i_25)\l\
\ \ goto\ \<bb\ 19\>;\ [97.25%]\l\
else\l\
\ \ goto\ \<bb\ 69\>;\ [2.75%]\l\
}"];
fn_220_basic_block_19 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1044213958\<bb\ 19\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|i.46_2\ =\ (sizetype)\ i_25;\l\
|_3\ =\ _69\ +\ i.46_2;\l\
|c_44\ =\ *_3;\l\
|#\ DEBUG\ c\ =\>\ c_44\l\
|#\ DEBUG\ BEGIN_STMT\l\
|c.47_4\ =\ (unsigned\ char)\ c_44;\l\
|_5\ =\ (int)\ c.47_4;\l\
|escape_45\ =\ escape_table[_5];\l\
|#\ DEBUG\ escape\ =\>\ escape_45\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (escape_45\ ==\ 0)\l\
\ \ goto\ \<bb\ 20\>;\ [33.00%]\l\
else\l\
\ \ goto\ \<bb\ 21\>;\ [67.00%]\l\
}"];
fn_220_basic_block_20 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:344590604\<bb\ 20\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|//\ predicted\ unlikely\ by\ continue\ predictor.\l\
goto\ \<bb\ 67\>;\ [100.00%]\l\
}"];
fn_220_basic_block_21 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:699623355\<bb\ 21\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (i_25\ \>\ start_27)\l\
\ \ goto\ \<bb\ 22\>;\ [33.00%]\l\
else\l\
\ \ goto\ \<bb\ 35\>;\ [67.00%]\l\
}"];
fn_220_basic_block_67 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:1018799833\<bb\ 67\>:\l\
|#\ start_26\ =\ PHI\ \<start_27(20),\ start_61(66)\>\l\
|#\ DEBUG\ start\ =\>\ start_26\l\
|#\ DEBUG\ BEGIN_STMT\l\
|i_62\ =\ i_25\ +\ 1;\l\
|#\ DEBUG\ i\ =\>\ i_62\l\
}"];
fn_220_basic_block_22 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:230875705\<bb\ 22\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_6\ =\ i_25\ -\ start_27;\l\
|start.48_7\ =\ (sizetype)\ start_27;\l\
|_8\ =\ _69\ +\ start.48_7;\l\
|#\ DEBUG\ self\ =\>\ self_39(D)\l\
|#\ DEBUG\ s\ =\>\ _8\l\
|#\ DEBUG\ n\ =\>\ _6\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_101\ =\ self_39(D)-\>output_len;\l\
|required_102\ =\ _6\ +\ _101;\l\
|#\ DEBUG\ required\ =\>\ required_102\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_103\ =\ self_39(D)-\>max_output_len;\l\
|if\ (required_102\ \>\ _103)\l\
\ \ goto\ \<bb\ 23\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 33\>;\ [50.00%]\l\
}"];
fn_220_basic_block_35 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:693274272\<bb\ 35\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (escape_45\ ==\ 117)\l\
\ \ goto\ \<bb\ 36\>;\ [34.00%]\l\
else\l\
\ \ goto\ \<bb\ 51\>;\ [66.00%]\l\
}"];
fn_220_basic_block_23 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:115437853\<bb\ 23\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_39(D)\l\
|#\ DEBUG\ size\ =\>\ required_102\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_resize\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_113\ =\ self_39(D)-\>output_buffer;\l\
|#\ DEBUG\ ob\ =\>\ _113\l\
|#\ DEBUG\ type\ =\>\ &PyBytes_Type\l\
|#\ DEBUG\ INLINE_ENTRY\ _Py_IS_TYPE\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_114\ =\ MEM[(const\ struct\ PyObject\ *)_113].ob_type;\l\
|#\ DEBUG\ ob\ =\>\ NULL\l\
|#\ DEBUG\ type\ =\>\ NULL\l\
|#\ DEBUG\ is_bytes\ =\>\ _114\ ==\ &PyBytes_Type\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_115\ =\ required_102\ *\ 2;\l\
|_116\ =\ MAX_EXPR\ \<_115,\ 8\>;\l\
|self_39(D)-\>max_output_len\ =\ _116;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_114\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 24\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 25\>;\ [70.00%]\l\
}"];
fn_220_basic_block_33 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:230033009\<bb\ 33\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|n.9_105\ =\ (long\ unsigned\ int)\ _6;\l\
|_106\ =\ self_39(D)-\>output_buffer_raw;\l\
|_107\ =\ self_39(D)-\>output_len;\l\
|_108\ =\ (sizetype)\ _107;\l\
|_109\ =\ _106\ +\ _108;\l\
|memcpy\ (_109,\ _8,\ n.9_105);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_110\ =\ self_39(D)-\>output_len;\l\
|_111\ =\ _6\ +\ _110;\l\
|self_39(D)-\>output_len\ =\ _111;\l\
|#\ DEBUG\ BEGIN_STMT\l\
}"];
fn_220_basic_block_36 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:235713254\<bb\ 36\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ hex\ =\>\ \"0123456789abcdef\"\l\
|#\ DEBUG\ BEGIN_STMT\l\
|escaped[0]\ =\ 92;\l\
|escaped[1]\ =\ 117;\l\
|escaped[2]\ =\ 48;\l\
|escaped[3]\ =\ 48;\l\
|_10\ =\ c_44\ \>\>\ 4;\l\
|_11\ =\ (sizetype)\ _10;\l\
|_12\ =\ \"0123456789abcdef\"\ +\ _11;\l\
|_13\ =\ *_12;\l\
|escaped[4]\ =\ _13;\l\
|_35\ =\ c_44\ &\ 15;\l\
|_14\ =\ (sizetype)\ _35;\l\
|_15\ =\ \"0123456789abcdef\"\ +\ _14;\l\
|_16\ =\ *_15;\l\
|escaped[5]\ =\ _16;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_39(D)\l\
|#\ DEBUG\ s\ =\>\ &escaped\l\
|#\ DEBUG\ n\ =\>\ 6\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_128\ =\ self_39(D)-\>output_len;\l\
|required_129\ =\ _128\ +\ 6;\l\
|#\ DEBUG\ required\ =\>\ required_129\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_130\ =\ self_39(D)-\>max_output_len;\l\
|if\ (required_129\ \>\ _130)\l\
\ \ goto\ \<bb\ 37\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 47\>;\ [50.00%]\l\
}"];
fn_220_basic_block_51 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:457561017\<bb\ 51\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|escaped[0]\ =\ 92;\l\
|escaped[1]\ =\ escape_45;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_39(D)\l\
|#\ DEBUG\ s\ =\>\ &escaped\l\
|#\ DEBUG\ n\ =\>\ 2\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_155\ =\ self_39(D)-\>output_len;\l\
|required_156\ =\ _155\ +\ 2;\l\
|#\ DEBUG\ required\ =\>\ required_156\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_157\ =\ self_39(D)-\>max_output_len;\l\
|if\ (required_156\ \>\ _157)\l\
\ \ goto\ \<bb\ 52\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 62\>;\ [50.00%]\l\
}"];
fn_220_basic_block_24 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:34631355\<bb\ 24\>:\l\
|_117\ =\ &self_39(D)-\>output_buffer;\l\
|iftmp.10_118\ =\ _PyBytes_Resize\ (_117,\ _116);\l\
goto\ \<bb\ 26\>;\ [100.00%]\l\
}"];
fn_220_basic_block_25 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:80806497\<bb\ 25\>:\l\
|iftmp.10_119\ =\ PyByteArray_Resize\ (_113,\ _116);\l\
}"];
fn_220_basic_block_34 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:230875705\<bb\ 34\>:\l\
|#\ _112\ =\ PHI\ \<-1(32),\ 0(33)\>\l\
|_295\ =\ _112;\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|_9\ =\ _295;\l\
|if\ (_9\ \<\ 0)\l\
\ \ goto\ \<bb\ 96\>;\ [2.75%]\l\
else\l\
\ \ goto\ \<bb\ 35\>;\ [97.25%]\l\
}"];
fn_220_basic_block_37 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:117856627\<bb\ 37\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_39(D)\l\
|#\ DEBUG\ size\ =\>\ required_129\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_resize\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_140\ =\ self_39(D)-\>output_buffer;\l\
|#\ DEBUG\ ob\ =\>\ _140\l\
|#\ DEBUG\ type\ =\>\ &PyBytes_Type\l\
|#\ DEBUG\ INLINE_ENTRY\ _Py_IS_TYPE\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_141\ =\ MEM[(const\ struct\ PyObject\ *)_140].ob_type;\l\
|#\ DEBUG\ ob\ =\>\ NULL\l\
|#\ DEBUG\ type\ =\>\ NULL\l\
|#\ DEBUG\ is_bytes\ =\>\ _141\ ==\ &PyBytes_Type\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_142\ =\ required_129\ *\ 2;\l\
|_143\ =\ MAX_EXPR\ \<_142,\ 8\>;\l\
|self_39(D)-\>max_output_len\ =\ _143;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_141\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 38\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 39\>;\ [70.00%]\l\
}"];
fn_220_basic_block_47 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:234852901\<bb\ 47\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|n.9_132\ =\ 6;\l\
|_133\ =\ self_39(D)-\>output_buffer_raw;\l\
|_134\ =\ self_39(D)-\>output_len;\l\
|_135\ =\ (sizetype)\ _134;\l\
|_136\ =\ _133\ +\ _135;\l\
|memcpy\ (_136,\ &escaped,\ n.9_132);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_137\ =\ self_39(D)-\>output_len;\l\
|_138\ =\ _137\ +\ 6;\l\
|self_39(D)-\>output_len\ =\ _138;\l\
|#\ DEBUG\ BEGIN_STMT\l\
}"];
fn_220_basic_block_52 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:228780508\<bb\ 52\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_39(D)\l\
|#\ DEBUG\ size\ =\>\ required_156\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_resize\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_167\ =\ self_39(D)-\>output_buffer;\l\
|#\ DEBUG\ ob\ =\>\ _167\l\
|#\ DEBUG\ type\ =\>\ &PyBytes_Type\l\
|#\ DEBUG\ INLINE_ENTRY\ _Py_IS_TYPE\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_168\ =\ MEM[(const\ struct\ PyObject\ *)_167].ob_type;\l\
|#\ DEBUG\ ob\ =\>\ NULL\l\
|#\ DEBUG\ type\ =\>\ NULL\l\
|#\ DEBUG\ is_bytes\ =\>\ _168\ ==\ &PyBytes_Type\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_169\ =\ required_156\ *\ 2;\l\
|_170\ =\ MAX_EXPR\ \<_169,\ 8\>;\l\
|self_39(D)-\>max_output_len\ =\ _170;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_168\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 53\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 54\>;\ [70.00%]\l\
}"];
fn_220_basic_block_62 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:455890921\<bb\ 62\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|n.9_159\ =\ 2;\l\
|_160\ =\ self_39(D)-\>output_buffer_raw;\l\
|_161\ =\ self_39(D)-\>output_len;\l\
|_162\ =\ (sizetype)\ _161;\l\
|_163\ =\ _160\ +\ _162;\l\
|memcpy\ (_163,\ &escaped,\ n.9_159);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_164\ =\ self_39(D)-\>output_len;\l\
|_165\ =\ _164\ +\ 2;\l\
|self_39(D)-\>output_len\ =\ _165;\l\
|#\ DEBUG\ BEGIN_STMT\l\
}"];
fn_220_basic_block_26 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:115437853\<bb\ 26\>:\l\
|#\ iftmp.10_120\ =\ PHI\ \<iftmp.10_118(24),\ iftmp.10_119(25)\>\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_120\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_120\ \<\ 0)\l\
\ \ goto\ \<bb\ 32\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 27\>;\ [99.27%]\l\
}"];
fn_220_basic_block_38 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:35356988\<bb\ 38\>:\l\
|_144\ =\ &self_39(D)-\>output_buffer;\l\
|iftmp.10_145\ =\ _PyBytes_Resize\ (_144,\ _143);\l\
goto\ \<bb\ 40\>;\ [100.00%]\l\
}"];
fn_220_basic_block_39 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:82499640\<bb\ 39\>:\l\
|iftmp.10_146\ =\ PyByteArray_Resize\ (_140,\ _143);\l\
}"];
fn_220_basic_block_48 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:235713254\<bb\ 48\>:\l\
|#\ _139\ =\ PHI\ \<-1(46),\ 0(47)\>\l\
|_313\ =\ _139;\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|_17\ =\ _313;\l\
|if\ (_17\ \<\ 0)\l\
\ \ goto\ \<bb\ 49\>;\ [2.75%]\l\
else\l\
\ \ goto\ \<bb\ 50\>;\ [97.25%]\l\
}"];
fn_220_basic_block_53 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:68634151\<bb\ 53\>:\l\
|_171\ =\ &self_39(D)-\>output_buffer;\l\
|iftmp.10_172\ =\ _PyBytes_Resize\ (_171,\ _170);\l\
goto\ \<bb\ 55\>;\ [100.00%]\l\
}"];
fn_220_basic_block_54 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:160146357\<bb\ 54\>:\l\
|iftmp.10_173\ =\ PyByteArray_Resize\ (_167,\ _170);\l\
}"];
fn_220_basic_block_63 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:457561017\<bb\ 63\>:\l\
|#\ _166\ =\ PHI\ \<-1(61),\ 0(62)\>\l\
|_304\ =\ _166;\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|_18\ =\ _304;\l\
|if\ (_18\ \<\ 0)\l\
\ \ goto\ \<bb\ 64\>;\ [2.75%]\l\
else\l\
\ \ goto\ \<bb\ 65\>;\ [97.25%]\l\
}"];
fn_220_basic_block_32 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:115437853\<bb\ 32\>:\l\
|#\ _127\ =\ PHI\ \<-1(26),\ iftmp.10_120(28),\ iftmp.10_120(31)\>\l\
|_292\ =\ _127;\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|_104\ =\ _292;\l\
|if\ (_104\ \<\ 0)\l\
\ \ goto\ \<bb\ 34\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 33\>;\ [99.27%]\l\
}"];
fn_220_basic_block_27 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:114595157\<bb\ 27\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_114\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 28\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 29\>;\ [70.00%]\l\
}"];
fn_220_basic_block_40 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:117856627\<bb\ 40\>:\l\
|#\ iftmp.10_147\ =\ PHI\ \<iftmp.10_145(38),\ iftmp.10_146(39)\>\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_147\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_147\ \<\ 0)\l\
\ \ goto\ \<bb\ 46\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 41\>;\ [99.27%]\l\
}"];
fn_220_basic_block_50 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:229231139\<bb\ 50\>:\l\
|escaped\ =\{v\}\ \{CLOBBER\};\l\
goto\ \<bb\ 66\>;\ [100.00%]\l\
}"];
fn_220_basic_block_55 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:228780508\<bb\ 55\>:\l\
|#\ iftmp.10_174\ =\ PHI\ \<iftmp.10_172(53),\ iftmp.10_173(54)\>\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_174\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_174\ \<\ 0)\l\
\ \ goto\ \<bb\ 61\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 56\>;\ [99.27%]\l\
}"];
fn_220_basic_block_65 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:444978088\<bb\ 65\>:\l\
|escaped\ =\{v\}\ \{CLOBBER\};\l\
}"];
fn_220_basic_block_28 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:34378546\<bb\ 28\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_121\ =\ self_39(D)-\>output_buffer;\l\
|_122\ =\ &MEM[(struct\ PyBytesObject\ *)_121].ob_sval;\l\
|self_39(D)-\>output_buffer_raw\ =\ _122;\l\
goto\ \<bb\ 32\>;\ [100.00%]\l\
}"];
fn_220_basic_block_29 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:80216610\<bb\ 29\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_123\ =\ self_39(D)-\>output_buffer;\l\
|_124\ =\ MEM[(struct\ PyVarObject\ *)_123].ob_size;\l\
|if\ (_124\ !=\ 0)\l\
\ \ goto\ \<bb\ 30\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 31\>;\ [50.00%]\l\
}"];
fn_220_basic_block_46 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:117856627\<bb\ 46\>:\l\
|#\ _154\ =\ PHI\ \<-1(40),\ iftmp.10_147(42),\ iftmp.10_147(45)\>\l\
|_310\ =\ _154;\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|_131\ =\ _310;\l\
|if\ (_131\ \<\ 0)\l\
\ \ goto\ \<bb\ 48\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 47\>;\ [99.27%]\l\
}"];
fn_220_basic_block_41 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:116996274\<bb\ 41\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_141\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 42\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 43\>;\ [70.00%]\l\
}"];
fn_220_basic_block_66 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:674209228\<bb\ 66\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|start_61\ =\ i_25\ +\ 1;\l\
|#\ DEBUG\ start\ =\>\ start_61\l\
}"];
fn_220_basic_block_61 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:228780509\<bb\ 61\>:\l\
|#\ _181\ =\ PHI\ \<-1(55),\ iftmp.10_174(57),\ iftmp.10_174(60)\>\l\
|_301\ =\ _181;\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|_158\ =\ _301;\l\
|if\ (_158\ \<\ 0)\l\
\ \ goto\ \<bb\ 63\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 62\>;\ [99.27%]\l\
}"];
fn_220_basic_block_56 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:227110411\<bb\ 56\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_168\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 57\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 58\>;\ [70.00%]\l\
}"];
fn_220_basic_block_30 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:40108305\<bb\ 30\>:\l\
|iftmp.11_125\ =\ MEM[(struct\ PyByteArrayObject\ *)_123].ob_start;\l\
}"];
fn_220_basic_block_31 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:80216610\<bb\ 31\>:\l\
|#\ iftmp.11_126\ =\ PHI\ \<&_PyByteArray_empty_string(29),\ iftmp.11_125(30)\>\l\
|self_39(D)-\>output_buffer_raw\ =\ iftmp.11_126;\l\
}"];
fn_220_basic_block_42 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:35098882\<bb\ 42\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_148\ =\ self_39(D)-\>output_buffer;\l\
|_149\ =\ &MEM[(struct\ PyBytesObject\ *)_148].ob_sval;\l\
|self_39(D)-\>output_buffer_raw\ =\ _149;\l\
goto\ \<bb\ 46\>;\ [100.00%]\l\
}"];
fn_220_basic_block_43 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:81897392\<bb\ 43\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_150\ =\ self_39(D)-\>output_buffer;\l\
|_151\ =\ MEM[(struct\ PyVarObject\ *)_150].ob_size;\l\
|if\ (_151\ !=\ 0)\l\
\ \ goto\ \<bb\ 44\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 45\>;\ [50.00%]\l\
}"];
fn_220_basic_block_57 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:68133122\<bb\ 57\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_175\ =\ self_39(D)-\>output_buffer;\l\
|_176\ =\ &MEM[(struct\ PyBytesObject\ *)_175].ob_sval;\l\
|self_39(D)-\>output_buffer_raw\ =\ _176;\l\
goto\ \<bb\ 61\>;\ [100.00%]\l\
}"];
fn_220_basic_block_58 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:158977289\<bb\ 58\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_177\ =\ self_39(D)-\>output_buffer;\l\
|_178\ =\ MEM[(struct\ PyVarObject\ *)_177].ob_size;\l\
|if\ (_178\ !=\ 0)\l\
\ \ goto\ \<bb\ 59\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 60\>;\ [50.00%]\l\
}"];
fn_220_basic_block_44 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:40948696\<bb\ 44\>:\l\
|iftmp.11_152\ =\ MEM[(struct\ PyByteArrayObject\ *)_150].ob_start;\l\
}"];
fn_220_basic_block_45 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:81897392\<bb\ 45\>:\l\
|#\ iftmp.11_153\ =\ PHI\ \<&_PyByteArray_empty_string(43),\ iftmp.11_152(44)\>\l\
|self_39(D)-\>output_buffer_raw\ =\ iftmp.11_153;\l\
}"];
fn_220_basic_block_59 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:79488645\<bb\ 59\>:\l\
|iftmp.11_179\ =\ MEM[(struct\ PyByteArrayObject\ *)_177].ob_start;\l\
}"];
fn_220_basic_block_60 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:158977289\<bb\ 60\>:\l\
|#\ iftmp.11_180\ =\ PHI\ \<&_PyByteArray_empty_string(58),\ iftmp.11_179(59)\>\l\
|self_39(D)-\>output_buffer_raw\ =\ iftmp.11_180;\l\
}"];
}
fn_220_basic_block_0 [shape=Mdiamond,style=filled,fillcolor=white,label="ENTRY"];
fn_220_basic_block_1 [shape=Mdiamond,style=filled,fillcolor=white,label="EXIT"];
fn_220_basic_block_2 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:55854330\<bb\ 2\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ start\ =\>\ 0\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ str\ =\>\ obj_37(D)\l\
|#\ DEBUG\ size\ =\>\ &len\l\
|#\ DEBUG\ INLINE_ENTRY\ unicode_str_and_size\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_64\ =\ BIT_FIELD_REF\ \<MEM[(struct\ PyASCIIObject\ *)obj_37(D)],\ 8,\ 256\>;\l\
|_65\ =\ _64\ &\ 96;\l\
|if\ (_65\ ==\ 96)\l\
\ \ goto\ \<bb\ 3\>;\ [35.01%]\l\
else\l\
\ \ goto\ \<bb\ 4\>;\ [64.99%]\l\
}"];
fn_220_basic_block_3 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:19554601\<bb\ 3\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_66\ =\ MEM[(struct\ PyASCIIObject\ *)obj_37(D)].length;\l\
|len\ =\ _66;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_67\ =\ obj_37(D)\ +\ 48;\l\
goto\ \<bb\ 5\>;\ [100.00%]\l\
}"];
fn_220_basic_block_4 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:36299729\<bb\ 4\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_68\ =\ PyUnicode_AsUTF8AndSize\ (obj_37(D),\ &len);\l\
}"];
fn_220_basic_block_5 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:55854330\<bb\ 5\>:\l\
|#\ _69\ =\ PHI\ \<_67(3),\ _68(4)\>\l\
|#\ DEBUG\ str\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|#\ DEBUG\ buf\ =\>\ _69\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_69\ ==\ 0B)\l\
\ \ goto\ \<bb\ 96\>;\ [0.91%]\l\
else\l\
\ \ goto\ \<bb\ 6\>;\ [99.09%]\l\
}"];
fn_220_basic_block_6 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:55346056\<bb\ 6\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_39(D)\l\
|#\ DEBUG\ s\ =\>\ \"\\\"\"\l\
|#\ DEBUG\ n\ =\>\ 1\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_74\ =\ self_39(D)-\>output_len;\l\
|required_75\ =\ _74\ +\ 1;\l\
|#\ DEBUG\ required\ =\>\ required_75\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_76\ =\ self_39(D)-\>max_output_len;\l\
|if\ (required_75\ \>\ _76)\l\
\ \ goto\ \<bb\ 7\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 17\>;\ [50.00%]\l\
}"];
fn_220_basic_block_7 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:27673028\<bb\ 7\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_39(D)\l\
|#\ DEBUG\ size\ =\>\ required_75\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_resize\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_86\ =\ self_39(D)-\>output_buffer;\l\
|#\ DEBUG\ ob\ =\>\ _86\l\
|#\ DEBUG\ type\ =\>\ &PyBytes_Type\l\
|#\ DEBUG\ INLINE_ENTRY\ _Py_IS_TYPE\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_87\ =\ MEM[(const\ struct\ PyObject\ *)_86].ob_type;\l\
|#\ DEBUG\ ob\ =\>\ NULL\l\
|#\ DEBUG\ type\ =\>\ NULL\l\
|#\ DEBUG\ is_bytes\ =\>\ _87\ ==\ &PyBytes_Type\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_88\ =\ required_75\ *\ 2;\l\
|_89\ =\ MAX_EXPR\ \<_88,\ 8\>;\l\
|self_39(D)-\>max_output_len\ =\ _89;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_87\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 8\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 9\>;\ [70.00%]\l\
}"];
fn_220_basic_block_8 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:8301908\<bb\ 8\>:\l\
|_90\ =\ &self_39(D)-\>output_buffer;\l\
|iftmp.10_91\ =\ _PyBytes_Resize\ (_90,\ _89);\l\
goto\ \<bb\ 10\>;\ [100.00%]\l\
}"];
fn_220_basic_block_9 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:19371120\<bb\ 9\>:\l\
|iftmp.10_92\ =\ PyByteArray_Resize\ (_86,\ _89);\l\
}"];
fn_220_basic_block_10 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:27673028\<bb\ 10\>:\l\
|#\ iftmp.10_93\ =\ PHI\ \<iftmp.10_91(8),\ iftmp.10_92(9)\>\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_93\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_93\ \<\ 0)\l\
\ \ goto\ \<bb\ 16\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 11\>;\ [99.27%]\l\
}"];
fn_220_basic_block_11 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:27471015\<bb\ 11\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_87\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 12\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 13\>;\ [70.00%]\l\
}"];
fn_220_basic_block_12 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:8241304\<bb\ 12\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_94\ =\ self_39(D)-\>output_buffer;\l\
|_95\ =\ &MEM[(struct\ PyBytesObject\ *)_94].ob_sval;\l\
|self_39(D)-\>output_buffer_raw\ =\ _95;\l\
goto\ \<bb\ 16\>;\ [100.00%]\l\
}"];
fn_220_basic_block_13 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:19229711\<bb\ 13\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_96\ =\ self_39(D)-\>output_buffer;\l\
|_97\ =\ MEM[(struct\ PyVarObject\ *)_96].ob_size;\l\
|if\ (_97\ !=\ 0)\l\
\ \ goto\ \<bb\ 14\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 15\>;\ [50.00%]\l\
}"];
fn_220_basic_block_14 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:9614855\<bb\ 14\>:\l\
|iftmp.11_98\ =\ MEM[(struct\ PyByteArrayObject\ *)_96].ob_start;\l\
}"];
fn_220_basic_block_15 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:19229711\<bb\ 15\>:\l\
|#\ iftmp.11_99\ =\ PHI\ \<&_PyByteArray_empty_string(13),\ iftmp.11_98(14)\>\l\
|self_39(D)-\>output_buffer_raw\ =\ iftmp.11_99;\l\
}"];
fn_220_basic_block_16 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:27673028\<bb\ 16\>:\l\
|#\ _100\ =\ PHI\ \<-1(10),\ iftmp.10_93(12),\ iftmp.10_93(15)\>\l\
|_265\ =\ _100;\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|_77\ =\ _265;\l\
|if\ (_77\ \<\ 0)\l\
\ \ goto\ \<bb\ 18\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 17\>;\ [99.27%]\l\
}"];
fn_220_basic_block_17 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:55144043\<bb\ 17\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|n.9_78\ =\ 1;\l\
|_79\ =\ self_39(D)-\>output_buffer_raw;\l\
|_80\ =\ self_39(D)-\>output_len;\l\
|_81\ =\ (sizetype)\ _80;\l\
|_82\ =\ _79\ +\ _81;\l\
|memcpy\ (_82,\ \"\\\"\",\ n.9_78);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_83\ =\ self_39(D)-\>output_len;\l\
|_84\ =\ _83\ +\ 1;\l\
|self_39(D)-\>output_len\ =\ _84;\l\
|#\ DEBUG\ BEGIN_STMT\l\
}"];
fn_220_basic_block_18 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:55346056\<bb\ 18\>:\l\
|#\ _85\ =\ PHI\ \<-1(16),\ 0(17)\>\l\
|_268\ =\ _85;\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|_1\ =\ _268;\l\
|if\ (_1\ \<\ 0)\l\
\ \ goto\ \<bb\ 96\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 68\>;\ [99.27%]\l\
}"];
fn_220_basic_block_49 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:6482115\<bb\ 49\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|escaped\ =\{v\}\ \{CLOBBER\};\l\
goto\ \<bb\ 96\>;\ [100.00%]\l\
}"];
fn_220_basic_block_64 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:12582929\<bb\ 64\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|escaped\ =\{v\}\ \{CLOBBER\};\l\
goto\ \<bb\ 96\>;\ [100.00%]\l\
}"];
fn_220_basic_block_69 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:29527905\<bb\ 69\>:\l\
|#\ len.49_20\ =\ PHI\ \<len.49_19(68)\>\l\
|#\ i_73\ =\ PHI\ \<i_25(68)\>\l\
|#\ start_38\ =\ PHI\ \<start_27(68)\>\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (len.49_20\ !=\ start_38)\l\
\ \ goto\ \<bb\ 70\>;\ [66.00%]\l\
else\l\
\ \ goto\ \<bb\ 83\>;\ [34.00%]\l\
}"];
fn_220_basic_block_70 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:19488418\<bb\ 70\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_21\ =\ i_73\ -\ start_38;\l\
|start.51_22\ =\ (sizetype)\ start_38;\l\
|_23\ =\ _69\ +\ start.51_22;\l\
|#\ DEBUG\ self\ =\>\ self_39(D)\l\
|#\ DEBUG\ s\ =\>\ _23\l\
|#\ DEBUG\ n\ =\>\ _21\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_182\ =\ self_39(D)-\>output_len;\l\
|required_183\ =\ _21\ +\ _182;\l\
|#\ DEBUG\ required\ =\>\ required_183\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_184\ =\ self_39(D)-\>max_output_len;\l\
|if\ (required_183\ \>\ _184)\l\
\ \ goto\ \<bb\ 71\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 81\>;\ [50.00%]\l\
}"];
fn_220_basic_block_71 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:9744208\<bb\ 71\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_39(D)\l\
|#\ DEBUG\ size\ =\>\ required_183\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_resize\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_194\ =\ self_39(D)-\>output_buffer;\l\
|#\ DEBUG\ ob\ =\>\ _194\l\
|#\ DEBUG\ type\ =\>\ &PyBytes_Type\l\
|#\ DEBUG\ INLINE_ENTRY\ _Py_IS_TYPE\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_195\ =\ MEM[(const\ struct\ PyObject\ *)_194].ob_type;\l\
|#\ DEBUG\ ob\ =\>\ NULL\l\
|#\ DEBUG\ type\ =\>\ NULL\l\
|#\ DEBUG\ is_bytes\ =\>\ _195\ ==\ &PyBytes_Type\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_196\ =\ required_183\ *\ 2;\l\
|_197\ =\ MAX_EXPR\ \<_196,\ 8\>;\l\
|self_39(D)-\>max_output_len\ =\ _197;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_195\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 72\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 73\>;\ [70.00%]\l\
}"];
fn_220_basic_block_72 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:2923262\<bb\ 72\>:\l\
|_198\ =\ &self_39(D)-\>output_buffer;\l\
|iftmp.10_199\ =\ _PyBytes_Resize\ (_198,\ _197);\l\
goto\ \<bb\ 74\>;\ [100.00%]\l\
}"];
fn_220_basic_block_73 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:6820946\<bb\ 73\>:\l\
|iftmp.10_200\ =\ PyByteArray_Resize\ (_194,\ _197);\l\
}"];
fn_220_basic_block_74 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:9744208\<bb\ 74\>:\l\
|#\ iftmp.10_201\ =\ PHI\ \<iftmp.10_199(72),\ iftmp.10_200(73)\>\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_201\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_201\ \<\ 0)\l\
\ \ goto\ \<bb\ 80\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 75\>;\ [99.27%]\l\
}"];
fn_220_basic_block_75 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:9673076\<bb\ 75\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_195\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 76\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 77\>;\ [70.00%]\l\
}"];
fn_220_basic_block_76 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:2901923\<bb\ 76\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_202\ =\ self_39(D)-\>output_buffer;\l\
|_203\ =\ &MEM[(struct\ PyBytesObject\ *)_202].ob_sval;\l\
|self_39(D)-\>output_buffer_raw\ =\ _203;\l\
goto\ \<bb\ 80\>;\ [100.00%]\l\
}"];
fn_220_basic_block_77 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:6771153\<bb\ 77\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_204\ =\ self_39(D)-\>output_buffer;\l\
|_205\ =\ MEM[(struct\ PyVarObject\ *)_204].ob_size;\l\
|if\ (_205\ !=\ 0)\l\
\ \ goto\ \<bb\ 78\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 79\>;\ [50.00%]\l\
}"];
fn_220_basic_block_78 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:3385576\<bb\ 78\>:\l\
|iftmp.11_206\ =\ MEM[(struct\ PyByteArrayObject\ *)_204].ob_start;\l\
}"];
fn_220_basic_block_79 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:6771153\<bb\ 79\>:\l\
|#\ iftmp.11_207\ =\ PHI\ \<&_PyByteArray_empty_string(77),\ iftmp.11_206(78)\>\l\
|self_39(D)-\>output_buffer_raw\ =\ iftmp.11_207;\l\
}"];
fn_220_basic_block_80 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:9744208\<bb\ 80\>:\l\
|#\ _208\ =\ PHI\ \<-1(74),\ iftmp.10_201(76),\ iftmp.10_201(79)\>\l\
|_274\ =\ _208;\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|_185\ =\ _274;\l\
|if\ (_185\ \<\ 0)\l\
\ \ goto\ \<bb\ 82\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 81\>;\ [99.27%]\l\
}"];
fn_220_basic_block_81 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:19417285\<bb\ 81\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|n.9_186\ =\ (long\ unsigned\ int)\ _21;\l\
|_187\ =\ self_39(D)-\>output_buffer_raw;\l\
|_188\ =\ self_39(D)-\>output_len;\l\
|_189\ =\ (sizetype)\ _188;\l\
|_190\ =\ _187\ +\ _189;\l\
|memcpy\ (_190,\ _23,\ n.9_186);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_191\ =\ self_39(D)-\>output_len;\l\
|_192\ =\ _21\ +\ _191;\l\
|self_39(D)-\>output_len\ =\ _192;\l\
|#\ DEBUG\ BEGIN_STMT\l\
}"];
fn_220_basic_block_82 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:19488418\<bb\ 82\>:\l\
|#\ _193\ =\ PHI\ \<-1(80),\ 0(81)\>\l\
|_277\ =\ _193;\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|_24\ =\ _277;\l\
|if\ (_24\ \<\ 0)\l\
\ \ goto\ \<bb\ 96\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 83\>;\ [99.27%]\l\
}"];
fn_220_basic_block_83 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:29385640\<bb\ 83\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_39(D)\l\
|#\ DEBUG\ s\ =\>\ \"\\\"\"\l\
|#\ DEBUG\ n\ =\>\ 1\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_write\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_209\ =\ self_39(D)-\>output_len;\l\
|required_210\ =\ _209\ +\ 1;\l\
|#\ DEBUG\ required\ =\>\ required_210\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_211\ =\ self_39(D)-\>max_output_len;\l\
|if\ (required_210\ \>\ _211)\l\
\ \ goto\ \<bb\ 84\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 94\>;\ [50.00%]\l\
}"];
fn_220_basic_block_84 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:14692820\<bb\ 84\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ self\ =\>\ self_39(D)\l\
|#\ DEBUG\ size\ =\>\ required_210\l\
|#\ DEBUG\ INLINE_ENTRY\ mp_resize\l\
|#\ DEBUG\ BEGIN_STMT\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_221\ =\ self_39(D)-\>output_buffer;\l\
|#\ DEBUG\ ob\ =\>\ _221\l\
|#\ DEBUG\ type\ =\>\ &PyBytes_Type\l\
|#\ DEBUG\ INLINE_ENTRY\ _Py_IS_TYPE\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_222\ =\ MEM[(const\ struct\ PyObject\ *)_221].ob_type;\l\
|#\ DEBUG\ ob\ =\>\ NULL\l\
|#\ DEBUG\ type\ =\>\ NULL\l\
|#\ DEBUG\ is_bytes\ =\>\ _222\ ==\ &PyBytes_Type\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_223\ =\ required_210\ *\ 2;\l\
|_224\ =\ MAX_EXPR\ \<_223,\ 8\>;\l\
|self_39(D)-\>max_output_len\ =\ _224;\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_222\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 85\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 86\>;\ [70.00%]\l\
}"];
fn_220_basic_block_85 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:4407846\<bb\ 85\>:\l\
|_225\ =\ &self_39(D)-\>output_buffer;\l\
|iftmp.10_226\ =\ _PyBytes_Resize\ (_225,\ _224);\l\
goto\ \<bb\ 87\>;\ [100.00%]\l\
}"];
fn_220_basic_block_86 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:10284974\<bb\ 86\>:\l\
|iftmp.10_227\ =\ PyByteArray_Resize\ (_221,\ _224);\l\
}"];
fn_220_basic_block_87 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:14692820\<bb\ 87\>:\l\
|#\ iftmp.10_228\ =\ PHI\ \<iftmp.10_226(85),\ iftmp.10_227(86)\>\l\
|#\ DEBUG\ status\ =\>\ iftmp.10_228\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (iftmp.10_228\ \<\ 0)\l\
\ \ goto\ \<bb\ 93\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 88\>;\ [99.27%]\l\
}"];
fn_220_basic_block_88 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:14585563\<bb\ 88\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|if\ (_222\ ==\ &PyBytes_Type)\l\
\ \ goto\ \<bb\ 89\>;\ [30.00%]\l\
else\l\
\ \ goto\ \<bb\ 90\>;\ [70.00%]\l\
}"];
fn_220_basic_block_89 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:4375668\<bb\ 89\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_229\ =\ self_39(D)-\>output_buffer;\l\
|_230\ =\ &MEM[(struct\ PyBytesObject\ *)_229].ob_sval;\l\
|self_39(D)-\>output_buffer_raw\ =\ _230;\l\
goto\ \<bb\ 93\>;\ [100.00%]\l\
}"];
fn_220_basic_block_90 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:10209893\<bb\ 90\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_231\ =\ self_39(D)-\>output_buffer;\l\
|_232\ =\ MEM[(struct\ PyVarObject\ *)_231].ob_size;\l\
|if\ (_232\ !=\ 0)\l\
\ \ goto\ \<bb\ 91\>;\ [50.00%]\l\
else\l\
\ \ goto\ \<bb\ 92\>;\ [50.00%]\l\
}"];
fn_220_basic_block_91 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:5104947\<bb\ 91\>:\l\
|iftmp.11_233\ =\ MEM[(struct\ PyByteArrayObject\ *)_231].ob_start;\l\
}"];
fn_220_basic_block_92 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:10209893\<bb\ 92\>:\l\
|#\ iftmp.11_234\ =\ PHI\ \<&_PyByteArray_empty_string(90),\ iftmp.11_233(91)\>\l\
|self_39(D)-\>output_buffer_raw\ =\ iftmp.11_234;\l\
}"];
fn_220_basic_block_93 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:14692820\<bb\ 93\>:\l\
|#\ _235\ =\ PHI\ \<-1(87),\ iftmp.10_228(89),\ iftmp.10_228(92)\>\l\
|_283\ =\ _235;\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ size\ =\>\ NULL\l\
|_212\ =\ _283;\l\
|if\ (_212\ \<\ 0)\l\
\ \ goto\ \<bb\ 95\>;\ [0.73%]\l\
else\l\
\ \ goto\ \<bb\ 94\>;\ [99.27%]\l\
}"];
fn_220_basic_block_94 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:29278382\<bb\ 94\>:\l\
|#\ DEBUG\ BEGIN_STMT\l\
|n.9_213\ =\ 1;\l\
|_214\ =\ self_39(D)-\>output_buffer_raw;\l\
|_215\ =\ self_39(D)-\>output_len;\l\
|_216\ =\ (sizetype)\ _215;\l\
|_217\ =\ _214\ +\ _216;\l\
|memcpy\ (_217,\ \"\\\"\",\ n.9_213);\l\
|#\ DEBUG\ BEGIN_STMT\l\
|_218\ =\ self_39(D)-\>output_len;\l\
|_219\ =\ _218\ +\ 1;\l\
|self_39(D)-\>output_len\ =\ _219;\l\
|#\ DEBUG\ BEGIN_STMT\l\
}"];
fn_220_basic_block_95 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:29385640\<bb\ 95\>:\l\
|#\ _220\ =\ PHI\ \<-1(93),\ 0(94)\>\l\
|_286\ =\ _220;\l\
|#\ DEBUG\ self\ =\>\ NULL\l\
|#\ DEBUG\ s\ =\>\ NULL\l\
|#\ DEBUG\ n\ =\>\ NULL\l\
|#\ DEBUG\ required\ =\>\ NULL\l\
|_43\ =\ _286;\l\
}"];
fn_220_basic_block_96 [shape=record,style=filled,fillcolor=lightgrey,label="{COUNT:55854333\<bb\ 96\>:\l\
|#\ _28\ =\ PHI\ \<-1(5),\ -1(18),\ -1(34),\ -1(49),\ -1(64),\ -1(82),\ _43(95)\>\l\
|len\ =\{v\}\ \{CLOBBER\};\l\
|return\ _28;\l\
}"];
fn_220_basic_block_0:s -> fn_220_basic_block_2:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_2:s -> fn_220_basic_block_3:n [style="solid,bold",color=black,weight=10,constraint=true,label="[35%]"];
fn_220_basic_block_2:s -> fn_220_basic_block_4:n [style="solid,bold",color=black,weight=10,constraint=true,label="[64%]"];
fn_220_basic_block_3:s -> fn_220_basic_block_5:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_4:s -> fn_220_basic_block_5:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_5:s -> fn_220_basic_block_96:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_5:s -> fn_220_basic_block_6:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_6:s -> fn_220_basic_block_7:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_6:s -> fn_220_basic_block_17:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_7:s -> fn_220_basic_block_8:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_7:s -> fn_220_basic_block_9:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_8:s -> fn_220_basic_block_10:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_9:s -> fn_220_basic_block_10:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_10:s -> fn_220_basic_block_16:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_10:s -> fn_220_basic_block_11:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_11:s -> fn_220_basic_block_12:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_11:s -> fn_220_basic_block_13:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_12:s -> fn_220_basic_block_16:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_13:s -> fn_220_basic_block_14:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_13:s -> fn_220_basic_block_15:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_14:s -> fn_220_basic_block_15:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_15:s -> fn_220_basic_block_16:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_16:s -> fn_220_basic_block_18:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_16:s -> fn_220_basic_block_17:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_17:s -> fn_220_basic_block_18:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_18:s -> fn_220_basic_block_96:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_18:s -> fn_220_basic_block_68:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_19:s -> fn_220_basic_block_20:n [style="solid,bold",color=black,weight=10,constraint=true,label="[33%]"];
fn_220_basic_block_19:s -> fn_220_basic_block_21:n [style="solid,bold",color=black,weight=10,constraint=true,label="[67%]"];
fn_220_basic_block_20:s -> fn_220_basic_block_67:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_21:s -> fn_220_basic_block_22:n [style="solid,bold",color=black,weight=10,constraint=true,label="[33%]"];
fn_220_basic_block_21:s -> fn_220_basic_block_35:n [style="solid,bold",color=black,weight=10,constraint=true,label="[67%]"];
fn_220_basic_block_22:s -> fn_220_basic_block_23:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_22:s -> fn_220_basic_block_33:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_23:s -> fn_220_basic_block_24:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_23:s -> fn_220_basic_block_25:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_24:s -> fn_220_basic_block_26:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_25:s -> fn_220_basic_block_26:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_26:s -> fn_220_basic_block_32:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_26:s -> fn_220_basic_block_27:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_27:s -> fn_220_basic_block_28:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_27:s -> fn_220_basic_block_29:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_28:s -> fn_220_basic_block_32:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_29:s -> fn_220_basic_block_30:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_29:s -> fn_220_basic_block_31:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_30:s -> fn_220_basic_block_31:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_31:s -> fn_220_basic_block_32:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_32:s -> fn_220_basic_block_34:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_32:s -> fn_220_basic_block_33:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_33:s -> fn_220_basic_block_34:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_34:s -> fn_220_basic_block_96:n [style="solid,bold",color=black,weight=10,constraint=true,label="[2%]"];
fn_220_basic_block_34:s -> fn_220_basic_block_35:n [style="solid,bold",color=black,weight=10,constraint=true,label="[97%]"];
fn_220_basic_block_35:s -> fn_220_basic_block_36:n [style="solid,bold",color=black,weight=10,constraint=true,label="[34%]"];
fn_220_basic_block_35:s -> fn_220_basic_block_51:n [style="solid,bold",color=black,weight=10,constraint=true,label="[66%]"];
fn_220_basic_block_36:s -> fn_220_basic_block_37:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_36:s -> fn_220_basic_block_47:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_37:s -> fn_220_basic_block_38:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_37:s -> fn_220_basic_block_39:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_38:s -> fn_220_basic_block_40:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_39:s -> fn_220_basic_block_40:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_40:s -> fn_220_basic_block_46:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_40:s -> fn_220_basic_block_41:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_41:s -> fn_220_basic_block_42:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_41:s -> fn_220_basic_block_43:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_42:s -> fn_220_basic_block_46:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_43:s -> fn_220_basic_block_44:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_43:s -> fn_220_basic_block_45:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_44:s -> fn_220_basic_block_45:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_45:s -> fn_220_basic_block_46:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_46:s -> fn_220_basic_block_48:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_46:s -> fn_220_basic_block_47:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_47:s -> fn_220_basic_block_48:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_48:s -> fn_220_basic_block_49:n [style="solid,bold",color=black,weight=10,constraint=true,label="[2%]"];
fn_220_basic_block_48:s -> fn_220_basic_block_50:n [style="solid,bold",color=black,weight=10,constraint=true,label="[97%]"];
fn_220_basic_block_49:s -> fn_220_basic_block_96:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_50:s -> fn_220_basic_block_66:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_51:s -> fn_220_basic_block_52:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_51:s -> fn_220_basic_block_62:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_52:s -> fn_220_basic_block_53:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_52:s -> fn_220_basic_block_54:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_53:s -> fn_220_basic_block_55:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_54:s -> fn_220_basic_block_55:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_55:s -> fn_220_basic_block_61:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_55:s -> fn_220_basic_block_56:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_56:s -> fn_220_basic_block_57:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_56:s -> fn_220_basic_block_58:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_57:s -> fn_220_basic_block_61:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_58:s -> fn_220_basic_block_59:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_58:s -> fn_220_basic_block_60:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_59:s -> fn_220_basic_block_60:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_60:s -> fn_220_basic_block_61:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_61:s -> fn_220_basic_block_63:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_61:s -> fn_220_basic_block_62:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_62:s -> fn_220_basic_block_63:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_63:s -> fn_220_basic_block_64:n [style="solid,bold",color=black,weight=10,constraint=true,label="[2%]"];
fn_220_basic_block_63:s -> fn_220_basic_block_65:n [style="solid,bold",color=black,weight=10,constraint=true,label="[97%]"];
fn_220_basic_block_64:s -> fn_220_basic_block_96:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_65:s -> fn_220_basic_block_66:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_66:s -> fn_220_basic_block_67:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_67:s -> fn_220_basic_block_68:n [style="dotted,bold",color=blue,weight=10,constraint=false,label="[100%]"];
fn_220_basic_block_68:s -> fn_220_basic_block_19:n [style="solid,bold",color=black,weight=10,constraint=true,label="[97%]"];
fn_220_basic_block_68:s -> fn_220_basic_block_69:n [style="solid,bold",color=black,weight=10,constraint=true,label="[2%]"];
fn_220_basic_block_69:s -> fn_220_basic_block_70:n [style="solid,bold",color=black,weight=10,constraint=true,label="[66%]"];
fn_220_basic_block_69:s -> fn_220_basic_block_83:n [style="solid,bold",color=black,weight=10,constraint=true,label="[34%]"];
fn_220_basic_block_70:s -> fn_220_basic_block_71:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_70:s -> fn_220_basic_block_81:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_71:s -> fn_220_basic_block_72:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_71:s -> fn_220_basic_block_73:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_72:s -> fn_220_basic_block_74:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_73:s -> fn_220_basic_block_74:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_74:s -> fn_220_basic_block_80:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_74:s -> fn_220_basic_block_75:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_75:s -> fn_220_basic_block_76:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_75:s -> fn_220_basic_block_77:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_76:s -> fn_220_basic_block_80:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_77:s -> fn_220_basic_block_78:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_77:s -> fn_220_basic_block_79:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_78:s -> fn_220_basic_block_79:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_79:s -> fn_220_basic_block_80:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_80:s -> fn_220_basic_block_82:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_80:s -> fn_220_basic_block_81:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_81:s -> fn_220_basic_block_82:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_82:s -> fn_220_basic_block_96:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_82:s -> fn_220_basic_block_83:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_83:s -> fn_220_basic_block_84:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_83:s -> fn_220_basic_block_94:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_84:s -> fn_220_basic_block_85:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_84:s -> fn_220_basic_block_86:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_85:s -> fn_220_basic_block_87:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_86:s -> fn_220_basic_block_87:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_87:s -> fn_220_basic_block_93:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_87:s -> fn_220_basic_block_88:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_88:s -> fn_220_basic_block_89:n [style="solid,bold",color=black,weight=10,constraint=true,label="[30%]"];
fn_220_basic_block_88:s -> fn_220_basic_block_90:n [style="solid,bold",color=black,weight=10,constraint=true,label="[70%]"];
fn_220_basic_block_89:s -> fn_220_basic_block_93:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_90:s -> fn_220_basic_block_91:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_90:s -> fn_220_basic_block_92:n [style="solid,bold",color=black,weight=10,constraint=true,label="[50%]"];
fn_220_basic_block_91:s -> fn_220_basic_block_92:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_92:s -> fn_220_basic_block_93:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_93:s -> fn_220_basic_block_95:n [style="solid,bold",color=black,weight=10,constraint=true,label="[0%]"];
fn_220_basic_block_93:s -> fn_220_basic_block_94:n [style="solid,bold",color=black,weight=10,constraint=true,label="[99%]"];
fn_220_basic_block_94:s -> fn_220_basic_block_95:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_95:s -> fn_220_basic_block_96:n [style="solid,bold",color=blue,weight=100,constraint=true,label="[100%]"];
fn_220_basic_block_96:s -> fn_220_basic_block_1:n [style="solid,bold",color=black,weight=10,constraint=true,label="[100%]"];
fn_220_basic_block_0:s -> fn_220_basic_block_1:n [style="invis",constraint=true];
}
}
Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.47.3 (0)
-->
<!-- Title: small.graph Pages: 1 -->
<svg width="2766pt" height="13411pt"
viewBox="0.00 0.00 2766.00 13411.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 13407)">
<title>small.graph</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-13407 2762,-13407 2762,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_json_encode_str</title>
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="8,-8 8,-13395 2750,-13395 2750,-8 8,-8"/>
<text text-anchor="middle" x="1379" y="-13379.8" font-family="Times,serif" font-size="14.00">json_encode_str ()</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_220_1</title>
<polygon fill="#e0e0e0" stroke="darkgreen" stroke-width="2" points="942,-16 942,-9556 2688,-9556 2688,-16 942,-16"/>
<text text-anchor="middle" x="967.5" y="-9540.8" font-family="Times,serif" font-size="14.00">loop 1</text>
</g>
<!-- fn_220_basic_block_68 -->
<g id="node1" class="node">
<title>fn_220_basic_block_68</title>
<polygon fill="lightgrey" stroke="black" points="974.5,-9295.5 974.5,-9524.5 1205.5,-9524.5 1205.5,-9295.5 974.5,-9295.5"/>
<text text-anchor="start" x="982.5" y="-9509.3" font-family="Times,serif" font-size="14.00">COUNT:1073741862&lt;bb 68&gt;:</text>
<polyline fill="none" stroke="black" points="974.5,-9501.5 1205.5,-9501.5 "/>
<text text-anchor="start" x="982.5" y="-9486.3" font-family="Times,serif" font-size="14.00"># i_25 = PHI &lt;0(18), i_62(67)&gt;</text>
<polyline fill="none" stroke="black" points="974.5,-9478.5 1205.5,-9478.5 "/>
<text text-anchor="start" x="982.5" y="-9463.3" font-family="Times,serif" font-size="14.00"># start_27 = PHI &lt;0(18), start_26(67)&gt;</text>
<polyline fill="none" stroke="black" points="974.5,-9455.5 1205.5,-9455.5 "/>
<text text-anchor="start" x="982.5" y="-9440.3" font-family="Times,serif" font-size="14.00"># DEBUG start =&gt; start_27</text>
<polyline fill="none" stroke="black" points="974.5,-9432.5 1205.5,-9432.5 "/>
<text text-anchor="start" x="982.5" y="-9417.3" font-family="Times,serif" font-size="14.00"># DEBUG i =&gt; i_25</text>
<polyline fill="none" stroke="black" points="974.5,-9409.5 1205.5,-9409.5 "/>
<text text-anchor="start" x="982.5" y="-9394.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="974.5,-9386.5 1205.5,-9386.5 "/>
<text text-anchor="start" x="982.5" y="-9371.3" font-family="Times,serif" font-size="14.00">len.49_19 = len;</text>
<polyline fill="none" stroke="black" points="974.5,-9363.5 1205.5,-9363.5 "/>
<text text-anchor="start" x="982.5" y="-9348.3" font-family="Times,serif" font-size="14.00">if (len.49_19 &gt; i_25)</text>
<text text-anchor="start" x="982.5" y="-9333.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 19&gt;; [97.25%]</text>
<text text-anchor="start" x="982.5" y="-9318.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="982.5" y="-9303.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 69&gt;; [2.75%]</text>
</g>
<!-- fn_220_basic_block_19 -->
<g id="node2" class="node">
<title>fn_220_basic_block_19</title>
<polygon fill="lightgrey" stroke="black" points="1650,-8899.5 1650,-9243.5 1844,-9243.5 1844,-8899.5 1650,-8899.5"/>
<text text-anchor="start" x="1658" y="-9228.3" font-family="Times,serif" font-size="14.00">COUNT:1044213958&lt;bb 19&gt;:</text>
<polyline fill="none" stroke="black" points="1650,-9220.5 1844,-9220.5 "/>
<text text-anchor="start" x="1658" y="-9205.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1650,-9197.5 1844,-9197.5 "/>
<text text-anchor="start" x="1658" y="-9182.3" font-family="Times,serif" font-size="14.00">i.46_2 = (sizetype) i_25;</text>
<polyline fill="none" stroke="black" points="1650,-9174.5 1844,-9174.5 "/>
<text text-anchor="start" x="1658" y="-9159.3" font-family="Times,serif" font-size="14.00">_3 = _69 + i.46_2;</text>
<polyline fill="none" stroke="black" points="1650,-9151.5 1844,-9151.5 "/>
<text text-anchor="start" x="1658" y="-9136.3" font-family="Times,serif" font-size="14.00">c_44 = *_3;</text>
<polyline fill="none" stroke="black" points="1650,-9128.5 1844,-9128.5 "/>
<text text-anchor="start" x="1658" y="-9113.3" font-family="Times,serif" font-size="14.00"># DEBUG c =&gt; c_44</text>
<polyline fill="none" stroke="black" points="1650,-9105.5 1844,-9105.5 "/>
<text text-anchor="start" x="1658" y="-9090.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1650,-9082.5 1844,-9082.5 "/>
<text text-anchor="start" x="1658" y="-9067.3" font-family="Times,serif" font-size="14.00">c.47_4 = (unsigned char) c_44;</text>
<polyline fill="none" stroke="black" points="1650,-9059.5 1844,-9059.5 "/>
<text text-anchor="start" x="1658" y="-9044.3" font-family="Times,serif" font-size="14.00">_5 = (int) c.47_4;</text>
<polyline fill="none" stroke="black" points="1650,-9036.5 1844,-9036.5 "/>
<text text-anchor="start" x="1658" y="-9021.3" font-family="Times,serif" font-size="14.00">escape_45 = escape_table[_5];</text>
<polyline fill="none" stroke="black" points="1650,-9013.5 1844,-9013.5 "/>
<text text-anchor="start" x="1658" y="-8998.3" font-family="Times,serif" font-size="14.00"># DEBUG escape =&gt; escape_45</text>
<polyline fill="none" stroke="black" points="1650,-8990.5 1844,-8990.5 "/>
<text text-anchor="start" x="1658" y="-8975.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1650,-8967.5 1844,-8967.5 "/>
<text text-anchor="start" x="1658" y="-8952.3" font-family="Times,serif" font-size="14.00">if (escape_45 == 0)</text>
<text text-anchor="start" x="1658" y="-8937.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 20&gt;; [33.00%]</text>
<text text-anchor="start" x="1658" y="-8922.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1658" y="-8907.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 21&gt;; [67.00%]</text>
</g>
<!-- fn_220_basic_block_68&#45;&gt;fn_220_basic_block_19 -->
<g id="edge101" class="edge">
<title>fn_220_basic_block_68:s&#45;&gt;fn_220_basic_block_19:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1090,-9295C1090,-9278.75 1365.79,-9278.23 1382,-9277 1459.56,-9271.1 1721.91,-9320.66 1745.33,-9254.17"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1748.83,-9254.44 1747,-9244 1741.92,-9253.3 1748.83,-9254.44"/>
<text text-anchor="middle" x="1755.5" y="-9265.8" font-family="Times,serif" font-size="14.00">[97%]</text>
</g>
<!-- fn_220_basic_block_69 -->
<g id="node70" class="node">
<title>fn_220_basic_block_69</title>
<polygon fill="lightgrey" stroke="black" points="664.5,-7849.5 664.5,-8032.5 879.5,-8032.5 879.5,-7849.5 664.5,-7849.5"/>
<text text-anchor="start" x="672.5" y="-8017.3" font-family="Times,serif" font-size="14.00">COUNT:29527905&lt;bb 69&gt;:</text>
<polyline fill="none" stroke="black" points="664.5,-8009.5 879.5,-8009.5 "/>
<text text-anchor="start" x="672.5" y="-7994.3" font-family="Times,serif" font-size="14.00"># len.49_20 = PHI &lt;len.49_19(68)&gt;</text>
<polyline fill="none" stroke="black" points="664.5,-7986.5 879.5,-7986.5 "/>
<text text-anchor="start" x="672.5" y="-7971.3" font-family="Times,serif" font-size="14.00"># i_73 = PHI &lt;i_25(68)&gt;</text>
<polyline fill="none" stroke="black" points="664.5,-7963.5 879.5,-7963.5 "/>
<text text-anchor="start" x="672.5" y="-7948.3" font-family="Times,serif" font-size="14.00"># start_38 = PHI &lt;start_27(68)&gt;</text>
<polyline fill="none" stroke="black" points="664.5,-7940.5 879.5,-7940.5 "/>
<text text-anchor="start" x="672.5" y="-7925.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="664.5,-7917.5 879.5,-7917.5 "/>
<text text-anchor="start" x="672.5" y="-7902.3" font-family="Times,serif" font-size="14.00">if (len.49_20 != start_38)</text>
<text text-anchor="start" x="672.5" y="-7887.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 70&gt;; [66.00%]</text>
<text text-anchor="start" x="672.5" y="-7872.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="672.5" y="-7857.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 83&gt;; [34.00%]</text>
</g>
<!-- fn_220_basic_block_68&#45;&gt;fn_220_basic_block_69 -->
<g id="edge102" class="edge">
<title>fn_220_basic_block_68:s&#45;&gt;fn_220_basic_block_69:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1090,-9295C1090,-9154.68 866,-9212.82 866,-9072.5 866,-9072.5 866,-9072.5 866,-8474 866,-8277.45 775.19,-8235.38 772.08,-8044.11"/>
<polygon fill="black" stroke="black" stroke-width="2" points="775.58,-8043.97 772,-8034 768.58,-8044.03 775.58,-8043.97"/>
<text text-anchor="middle" x="880" y="-8786.8" font-family="Times,serif" font-size="14.00">[2%]</text>
</g>
<!-- fn_220_basic_block_20 -->
<g id="node3" class="node">
<title>fn_220_basic_block_20</title>
<polygon fill="lightgrey" stroke="black" points="2410.5,-218.5 2410.5,-302.5 2659.5,-302.5 2659.5,-218.5 2410.5,-218.5"/>
<text text-anchor="start" x="2418.5" y="-287.3" font-family="Times,serif" font-size="14.00">COUNT:344590604&lt;bb 20&gt;:</text>
<polyline fill="none" stroke="black" points="2410.5,-279.5 2659.5,-279.5 "/>
<text text-anchor="start" x="2418.5" y="-264.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2410.5,-256.5 2659.5,-256.5 "/>
<text text-anchor="start" x="2418.5" y="-241.3" font-family="Times,serif" font-size="14.00">// predicted unlikely by continue predictor.</text>
<text text-anchor="start" x="2418.5" y="-226.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 67&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_19&#45;&gt;fn_220_basic_block_20 -->
<g id="edge28" class="edge">
<title>fn_220_basic_block_19:s&#45;&gt;fn_220_basic_block_20:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1747,-8899C1747,-8853.05 2567,-8837.45 2567,-8791.5 2567,-8791.5 2567,-8791.5 2567,-4901.5 2567,-3624.4 2659,-3306.6 2659,-2029.5 2659,-2029.5 2659,-2029.5 2659,-449.5 2659,-368.02 2545.43,-386.75 2535.67,-313.89"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2539.13,-313.26 2535,-303.5 2532.15,-313.7 2539.13,-313.26"/>
<text text-anchor="middle" x="2586.5" y="-4723.3" font-family="Times,serif" font-size="14.00">[33%]</text>
</g>
<!-- fn_220_basic_block_21 -->
<g id="node4" class="node">
<title>fn_220_basic_block_21</title>
<polygon fill="lightgrey" stroke="black" points="1658,-8733.5 1658,-8847.5 1836,-8847.5 1836,-8733.5 1658,-8733.5"/>
<text text-anchor="start" x="1666" y="-8832.3" font-family="Times,serif" font-size="14.00">COUNT:699623355&lt;bb 21&gt;:</text>
<polyline fill="none" stroke="black" points="1658,-8824.5 1836,-8824.5 "/>
<text text-anchor="start" x="1666" y="-8809.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1658,-8801.5 1836,-8801.5 "/>
<text text-anchor="start" x="1666" y="-8786.3" font-family="Times,serif" font-size="14.00">if (i_25 &gt; start_27)</text>
<text text-anchor="start" x="1666" y="-8771.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 22&gt;; [33.00%]</text>
<text text-anchor="start" x="1666" y="-8756.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1666" y="-8741.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 35&gt;; [67.00%]</text>
</g>
<!-- fn_220_basic_block_19&#45;&gt;fn_220_basic_block_21 -->
<g id="edge29" class="edge">
<title>fn_220_basic_block_19:s&#45;&gt;fn_220_basic_block_21:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1747,-8899C1747,-8880.23 1747,-8873.12 1747,-8858.35"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1750.5,-8858 1747,-8848 1743.5,-8858 1750.5,-8858"/>
<text text-anchor="middle" x="1764.5" y="-8869.8" font-family="Times,serif" font-size="14.00">[67%]</text>
</g>
<!-- fn_220_basic_block_67 -->
<g id="node5" class="node">
<title>fn_220_basic_block_67</title>
<polygon fill="lightgrey" stroke="black" points="2285,-24.5 2285,-162.5 2553,-162.5 2553,-24.5 2285,-24.5"/>
<text text-anchor="start" x="2293" y="-147.3" font-family="Times,serif" font-size="14.00">COUNT:1018799833&lt;bb 67&gt;:</text>
<polyline fill="none" stroke="black" points="2285,-139.5 2553,-139.5 "/>
<text text-anchor="start" x="2293" y="-124.3" font-family="Times,serif" font-size="14.00"># start_26 = PHI &lt;start_27(20), start_61(66)&gt;</text>
<polyline fill="none" stroke="black" points="2285,-116.5 2553,-116.5 "/>
<text text-anchor="start" x="2293" y="-101.3" font-family="Times,serif" font-size="14.00"># DEBUG start =&gt; start_26</text>
<polyline fill="none" stroke="black" points="2285,-93.5 2553,-93.5 "/>
<text text-anchor="start" x="2293" y="-78.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2285,-70.5 2553,-70.5 "/>
<text text-anchor="start" x="2293" y="-55.3" font-family="Times,serif" font-size="14.00">i_62 = i_25 + 1;</text>
<polyline fill="none" stroke="black" points="2285,-47.5 2553,-47.5 "/>
<text text-anchor="start" x="2293" y="-32.3" font-family="Times,serif" font-size="14.00"># DEBUG i =&gt; i_62</text>
</g>
<!-- fn_220_basic_block_20&#45;&gt;fn_220_basic_block_67 -->
<g id="edge30" class="edge">
<title>fn_220_basic_block_20:s&#45;&gt;fn_220_basic_block_67:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2535,-217.5C2535,-192.47 2445.39,-191.34 2423.69,-172.1"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2426.69,-170.28 2419,-163 2420.47,-173.49 2426.69,-170.28"/>
<text text-anchor="middle" x="2521" y="-184.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_22 -->
<g id="node6" class="node">
<title>fn_220_basic_block_22</title>
<polygon fill="lightgrey" stroke="black" points="1353,-8268.5 1353,-8681.5 1583,-8681.5 1583,-8268.5 1353,-8268.5"/>
<text text-anchor="start" x="1361" y="-8666.3" font-family="Times,serif" font-size="14.00">COUNT:230875705&lt;bb 22&gt;:</text>
<polyline fill="none" stroke="black" points="1353,-8658.5 1583,-8658.5 "/>
<text text-anchor="start" x="1361" y="-8643.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1353,-8635.5 1583,-8635.5 "/>
<text text-anchor="start" x="1361" y="-8620.3" font-family="Times,serif" font-size="14.00">_6 = i_25 &#45; start_27;</text>
<polyline fill="none" stroke="black" points="1353,-8612.5 1583,-8612.5 "/>
<text text-anchor="start" x="1361" y="-8597.3" font-family="Times,serif" font-size="14.00">start.48_7 = (sizetype) start_27;</text>
<polyline fill="none" stroke="black" points="1353,-8589.5 1583,-8589.5 "/>
<text text-anchor="start" x="1361" y="-8574.3" font-family="Times,serif" font-size="14.00">_8 = _69 + start.48_7;</text>
<polyline fill="none" stroke="black" points="1353,-8566.5 1583,-8566.5 "/>
<text text-anchor="start" x="1361" y="-8551.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_39(D)</text>
<polyline fill="none" stroke="black" points="1353,-8543.5 1583,-8543.5 "/>
<text text-anchor="start" x="1361" y="-8528.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; _8</text>
<polyline fill="none" stroke="black" points="1353,-8520.5 1583,-8520.5 "/>
<text text-anchor="start" x="1361" y="-8505.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; _6</text>
<polyline fill="none" stroke="black" points="1353,-8497.5 1583,-8497.5 "/>
<text text-anchor="start" x="1361" y="-8482.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_write</text>
<polyline fill="none" stroke="black" points="1353,-8474.5 1583,-8474.5 "/>
<text text-anchor="start" x="1361" y="-8459.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1353,-8451.5 1583,-8451.5 "/>
<text text-anchor="start" x="1361" y="-8436.3" font-family="Times,serif" font-size="14.00">_101 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="1353,-8428.5 1583,-8428.5 "/>
<text text-anchor="start" x="1361" y="-8413.3" font-family="Times,serif" font-size="14.00">required_102 = _6 + _101;</text>
<polyline fill="none" stroke="black" points="1353,-8405.5 1583,-8405.5 "/>
<text text-anchor="start" x="1361" y="-8390.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; required_102</text>
<polyline fill="none" stroke="black" points="1353,-8382.5 1583,-8382.5 "/>
<text text-anchor="start" x="1361" y="-8367.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1353,-8359.5 1583,-8359.5 "/>
<text text-anchor="start" x="1361" y="-8344.3" font-family="Times,serif" font-size="14.00">_103 = self_39(D)&#45;&gt;max_output_len;</text>
<polyline fill="none" stroke="black" points="1353,-8336.5 1583,-8336.5 "/>
<text text-anchor="start" x="1361" y="-8321.3" font-family="Times,serif" font-size="14.00">if (required_102 &gt; _103)</text>
<text text-anchor="start" x="1361" y="-8306.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 23&gt;; [50.00%]</text>
<text text-anchor="start" x="1361" y="-8291.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1361" y="-8276.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 33&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_21&#45;&gt;fn_220_basic_block_22 -->
<g id="edge31" class="edge">
<title>fn_220_basic_block_21:s&#45;&gt;fn_220_basic_block_22:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1747,-8733C1747,-8679.83 1684.17,-8710.27 1632,-8700 1616.54,-8696.96 1506.53,-8699.39 1475.9,-8688.5"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1477.95,-8685.65 1468,-8682 1473.5,-8691.06 1477.95,-8685.65"/>
<text text-anchor="middle" x="1759.5" y="-8703.8" font-family="Times,serif" font-size="14.00">[33%]</text>
</g>
<!-- fn_220_basic_block_35 -->
<g id="node7" class="node">
<title>fn_220_basic_block_35</title>
<polygon fill="lightgrey" stroke="black" points="1716,-4670 1716,-4784 1894,-4784 1894,-4670 1716,-4670"/>
<text text-anchor="start" x="1724" y="-4768.8" font-family="Times,serif" font-size="14.00">COUNT:693274272&lt;bb 35&gt;:</text>
<polyline fill="none" stroke="black" points="1716,-4761 1894,-4761 "/>
<text text-anchor="start" x="1724" y="-4745.8" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1716,-4738 1894,-4738 "/>
<text text-anchor="start" x="1724" y="-4722.8" font-family="Times,serif" font-size="14.00">if (escape_45 == 117)</text>
<text text-anchor="start" x="1724" y="-4707.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 36&gt;; [34.00%]</text>
<text text-anchor="start" x="1724" y="-4692.8" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1724" y="-4677.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 51&gt;; [66.00%]</text>
</g>
<!-- fn_220_basic_block_21&#45;&gt;fn_220_basic_block_35 -->
<g id="edge32" class="edge">
<title>fn_220_basic_block_21:s&#45;&gt;fn_220_basic_block_35:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1747,-8733C1747,-8715.9 1770.5,-8728.5 1781,-8715 1848.1,-8628.72 1839,-8585.31 1839,-8476 1839,-8476 1839,-8476 1839,-5053.5 1839,-4996.53 1808.49,-4860.53 1805.27,-4795.22"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1808.77,-4794.9 1805,-4785 1801.77,-4795.09 1808.77,-4794.9"/>
<text text-anchor="middle" x="1856.5" y="-6295.8" font-family="Times,serif" font-size="14.00">[67%]</text>
</g>
<!-- fn_220_basic_block_67&#45;&gt;fn_220_basic_block_68 -->
<g id="edge100" class="edge">
<title>fn_220_basic_block_67:s&#45;&gt;fn_220_basic_block_68:n</title>
<path fill="none" stroke="blue" stroke-width="2" stroke-dasharray="1,5" d="M2419,-23.5C2419,-8.61 2540.04,-17.17 2553,-24.5 2638.97,-73.09 2642.22,-118.95 2669,-214 2680.21,-253.78 2669.06,-265.67 2669,-307 2667.53,-1296.34 2678.48,-1543.83 2660,-2533 2654.99,-2801.03 2653.96,-2868.05 2646,-3136 2627.4,-3761.91 2606.34,-3917.91 2595,-4544 2594.88,-4550.67 2592.95,-4552.66 2595,-4559 2598.04,-4568.39 2604.96,-4567.61 2608,-4577 2649.02,-4703.87 2612.75,-4743.75 2608,-4877 2602.89,-5020.38 2590.38,-5055.63 2585,-5199 2584.08,-5223.4 2583.99,-8693.73 2572,-8715 2516.26,-8813.87 2457.9,-8802.33 2354,-8848 2279.05,-8880.95 2246.85,-8856.3 2177,-8899 1968.3,-9026.57 2015.67,-9223.45 1777,-9277 1746.3,-9283.89 1233.16,-9272.67 1211,-9295 1202,-9304.07 1214.61,-9516.03 1205.5,-9525 1197.96,-9532.42 1124.39,-9537.01 1098.75,-9531.2"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1100.38,-9528.1 1090,-9526 1096.81,-9534.12 1100.38,-9528.1"/>
<text text-anchor="middle" x="2648" y="-4723.3" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_23 -->
<g id="node8" class="node">
<title>fn_220_basic_block_23</title>
<polygon fill="lightgrey" stroke="black" points="1310,-7665.5 1310,-8216.5 1626,-8216.5 1626,-7665.5 1310,-7665.5"/>
<text text-anchor="start" x="1318" y="-8201.3" font-family="Times,serif" font-size="14.00">COUNT:115437853&lt;bb 23&gt;:</text>
<polyline fill="none" stroke="black" points="1310,-8193.5 1626,-8193.5 "/>
<text text-anchor="start" x="1318" y="-8178.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1310,-8170.5 1626,-8170.5 "/>
<text text-anchor="start" x="1318" y="-8155.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_39(D)</text>
<polyline fill="none" stroke="black" points="1310,-8147.5 1626,-8147.5 "/>
<text text-anchor="start" x="1318" y="-8132.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; required_102</text>
<polyline fill="none" stroke="black" points="1310,-8124.5 1626,-8124.5 "/>
<text text-anchor="start" x="1318" y="-8109.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_resize</text>
<polyline fill="none" stroke="black" points="1310,-8101.5 1626,-8101.5 "/>
<text text-anchor="start" x="1318" y="-8086.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1310,-8078.5 1626,-8078.5 "/>
<text text-anchor="start" x="1318" y="-8063.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1310,-8055.5 1626,-8055.5 "/>
<text text-anchor="start" x="1318" y="-8040.3" font-family="Times,serif" font-size="14.00">_113 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1310,-8032.5 1626,-8032.5 "/>
<text text-anchor="start" x="1318" y="-8017.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; _113</text>
<polyline fill="none" stroke="black" points="1310,-8009.5 1626,-8009.5 "/>
<text text-anchor="start" x="1318" y="-7994.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="1310,-7986.5 1626,-7986.5 "/>
<text text-anchor="start" x="1318" y="-7971.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY _Py_IS_TYPE</text>
<polyline fill="none" stroke="black" points="1310,-7963.5 1626,-7963.5 "/>
<text text-anchor="start" x="1318" y="-7948.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1310,-7940.5 1626,-7940.5 "/>
<text text-anchor="start" x="1318" y="-7925.3" font-family="Times,serif" font-size="14.00">_114 = MEM[(const struct PyObject *)_113].ob_type;</text>
<polyline fill="none" stroke="black" points="1310,-7917.5 1626,-7917.5 "/>
<text text-anchor="start" x="1318" y="-7902.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1310,-7894.5 1626,-7894.5 "/>
<text text-anchor="start" x="1318" y="-7879.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1310,-7871.5 1626,-7871.5 "/>
<text text-anchor="start" x="1318" y="-7856.3" font-family="Times,serif" font-size="14.00"># DEBUG is_bytes =&gt; _114 == &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="1310,-7848.5 1626,-7848.5 "/>
<text text-anchor="start" x="1318" y="-7833.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1310,-7825.5 1626,-7825.5 "/>
<text text-anchor="start" x="1318" y="-7810.3" font-family="Times,serif" font-size="14.00">_115 = required_102 * 2;</text>
<polyline fill="none" stroke="black" points="1310,-7802.5 1626,-7802.5 "/>
<text text-anchor="start" x="1318" y="-7787.3" font-family="Times,serif" font-size="14.00">_116 = MAX_EXPR &lt;_115, 8&gt;;</text>
<polyline fill="none" stroke="black" points="1310,-7779.5 1626,-7779.5 "/>
<text text-anchor="start" x="1318" y="-7764.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;max_output_len = _116;</text>
<polyline fill="none" stroke="black" points="1310,-7756.5 1626,-7756.5 "/>
<text text-anchor="start" x="1318" y="-7741.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1310,-7733.5 1626,-7733.5 "/>
<text text-anchor="start" x="1318" y="-7718.3" font-family="Times,serif" font-size="14.00">if (_114 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="1318" y="-7703.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 24&gt;; [30.00%]</text>
<text text-anchor="start" x="1318" y="-7688.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1318" y="-7673.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 25&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_22&#45;&gt;fn_220_basic_block_23 -->
<g id="edge33" class="edge">
<title>fn_220_basic_block_22:s&#45;&gt;fn_220_basic_block_23:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1468,-8268C1468,-8249.23 1468,-8242.12 1468,-8227.35"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1471.5,-8227 1468,-8217 1464.5,-8227 1471.5,-8227"/>
<text text-anchor="middle" x="1485.5" y="-8238.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_33 -->
<g id="node9" class="node">
<title>fn_220_basic_block_33</title>
<polygon fill="lightgrey" stroke="black" points="1034,-5232.5 1034,-5531.5 1270,-5531.5 1270,-5232.5 1034,-5232.5"/>
<text text-anchor="start" x="1042" y="-5516.3" font-family="Times,serif" font-size="14.00">COUNT:230033009&lt;bb 33&gt;:</text>
<polyline fill="none" stroke="black" points="1034,-5508.5 1270,-5508.5 "/>
<text text-anchor="start" x="1042" y="-5493.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1034,-5485.5 1270,-5485.5 "/>
<text text-anchor="start" x="1042" y="-5470.3" font-family="Times,serif" font-size="14.00">n.9_105 = (long unsigned int) _6;</text>
<polyline fill="none" stroke="black" points="1034,-5462.5 1270,-5462.5 "/>
<text text-anchor="start" x="1042" y="-5447.3" font-family="Times,serif" font-size="14.00">_106 = self_39(D)&#45;&gt;output_buffer_raw;</text>
<polyline fill="none" stroke="black" points="1034,-5439.5 1270,-5439.5 "/>
<text text-anchor="start" x="1042" y="-5424.3" font-family="Times,serif" font-size="14.00">_107 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="1034,-5416.5 1270,-5416.5 "/>
<text text-anchor="start" x="1042" y="-5401.3" font-family="Times,serif" font-size="14.00">_108 = (sizetype) _107;</text>
<polyline fill="none" stroke="black" points="1034,-5393.5 1270,-5393.5 "/>
<text text-anchor="start" x="1042" y="-5378.3" font-family="Times,serif" font-size="14.00">_109 = _106 + _108;</text>
<polyline fill="none" stroke="black" points="1034,-5370.5 1270,-5370.5 "/>
<text text-anchor="start" x="1042" y="-5355.3" font-family="Times,serif" font-size="14.00">memcpy (_109, _8, n.9_105);</text>
<polyline fill="none" stroke="black" points="1034,-5347.5 1270,-5347.5 "/>
<text text-anchor="start" x="1042" y="-5332.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1034,-5324.5 1270,-5324.5 "/>
<text text-anchor="start" x="1042" y="-5309.3" font-family="Times,serif" font-size="14.00">_110 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="1034,-5301.5 1270,-5301.5 "/>
<text text-anchor="start" x="1042" y="-5286.3" font-family="Times,serif" font-size="14.00">_111 = _6 + _110;</text>
<polyline fill="none" stroke="black" points="1034,-5278.5 1270,-5278.5 "/>
<text text-anchor="start" x="1042" y="-5263.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_len = _111;</text>
<polyline fill="none" stroke="black" points="1034,-5255.5 1270,-5255.5 "/>
<text text-anchor="start" x="1042" y="-5240.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
</g>
<!-- fn_220_basic_block_22&#45;&gt;fn_220_basic_block_33 -->
<g id="edge34" class="edge">
<title>fn_220_basic_block_22:s&#45;&gt;fn_220_basic_block_33:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1468,-8268C1468,-8229.2 1335.18,-8235.38 1301,-8217 1131.94,-8126.1 968,-8133.94 968,-7942 968,-7942 968,-7942 968,-5685.5 968,-5635.58 1129.72,-5591.15 1149.93,-5541.91"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1153.39,-5542.5 1152,-5532 1146.53,-5541.08 1153.39,-5542.5"/>
<text text-anchor="middle" x="985.5" y="-6401.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_36 -->
<g id="node10" class="node">
<title>fn_220_basic_block_36</title>
<polygon fill="lightgrey" stroke="black" points="1996,-3790.5 1996,-4525.5 2232,-4525.5 2232,-3790.5 1996,-3790.5"/>
<text text-anchor="start" x="2004" y="-4510.3" font-family="Times,serif" font-size="14.00">COUNT:235713254&lt;bb 36&gt;:</text>
<polyline fill="none" stroke="black" points="1996,-4502.5 2232,-4502.5 "/>
<text text-anchor="start" x="2004" y="-4487.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1996,-4479.5 2232,-4479.5 "/>
<text text-anchor="start" x="2004" y="-4464.3" font-family="Times,serif" font-size="14.00"># DEBUG hex =&gt; &quot;0123456789abcdef&quot;</text>
<polyline fill="none" stroke="black" points="1996,-4456.5 2232,-4456.5 "/>
<text text-anchor="start" x="2004" y="-4441.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1996,-4433.5 2232,-4433.5 "/>
<text text-anchor="start" x="2004" y="-4418.3" font-family="Times,serif" font-size="14.00">escaped[0] = 92;</text>
<polyline fill="none" stroke="black" points="1996,-4410.5 2232,-4410.5 "/>
<text text-anchor="start" x="2004" y="-4395.3" font-family="Times,serif" font-size="14.00">escaped[1] = 117;</text>
<polyline fill="none" stroke="black" points="1996,-4387.5 2232,-4387.5 "/>
<text text-anchor="start" x="2004" y="-4372.3" font-family="Times,serif" font-size="14.00">escaped[2] = 48;</text>
<polyline fill="none" stroke="black" points="1996,-4364.5 2232,-4364.5 "/>
<text text-anchor="start" x="2004" y="-4349.3" font-family="Times,serif" font-size="14.00">escaped[3] = 48;</text>
<polyline fill="none" stroke="black" points="1996,-4341.5 2232,-4341.5 "/>
<text text-anchor="start" x="2004" y="-4326.3" font-family="Times,serif" font-size="14.00">_10 = c_44 &gt;&gt; 4;</text>
<polyline fill="none" stroke="black" points="1996,-4318.5 2232,-4318.5 "/>
<text text-anchor="start" x="2004" y="-4303.3" font-family="Times,serif" font-size="14.00">_11 = (sizetype) _10;</text>
<polyline fill="none" stroke="black" points="1996,-4295.5 2232,-4295.5 "/>
<text text-anchor="start" x="2004" y="-4280.3" font-family="Times,serif" font-size="14.00">_12 = &quot;0123456789abcdef&quot; + _11;</text>
<polyline fill="none" stroke="black" points="1996,-4272.5 2232,-4272.5 "/>
<text text-anchor="start" x="2004" y="-4257.3" font-family="Times,serif" font-size="14.00">_13 = *_12;</text>
<polyline fill="none" stroke="black" points="1996,-4249.5 2232,-4249.5 "/>
<text text-anchor="start" x="2004" y="-4234.3" font-family="Times,serif" font-size="14.00">escaped[4] = _13;</text>
<polyline fill="none" stroke="black" points="1996,-4226.5 2232,-4226.5 "/>
<text text-anchor="start" x="2004" y="-4211.3" font-family="Times,serif" font-size="14.00">_35 = c_44 &amp; 15;</text>
<polyline fill="none" stroke="black" points="1996,-4203.5 2232,-4203.5 "/>
<text text-anchor="start" x="2004" y="-4188.3" font-family="Times,serif" font-size="14.00">_14 = (sizetype) _35;</text>
<polyline fill="none" stroke="black" points="1996,-4180.5 2232,-4180.5 "/>
<text text-anchor="start" x="2004" y="-4165.3" font-family="Times,serif" font-size="14.00">_15 = &quot;0123456789abcdef&quot; + _14;</text>
<polyline fill="none" stroke="black" points="1996,-4157.5 2232,-4157.5 "/>
<text text-anchor="start" x="2004" y="-4142.3" font-family="Times,serif" font-size="14.00">_16 = *_15;</text>
<polyline fill="none" stroke="black" points="1996,-4134.5 2232,-4134.5 "/>
<text text-anchor="start" x="2004" y="-4119.3" font-family="Times,serif" font-size="14.00">escaped[5] = _16;</text>
<polyline fill="none" stroke="black" points="1996,-4111.5 2232,-4111.5 "/>
<text text-anchor="start" x="2004" y="-4096.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1996,-4088.5 2232,-4088.5 "/>
<text text-anchor="start" x="2004" y="-4073.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_39(D)</text>
<polyline fill="none" stroke="black" points="1996,-4065.5 2232,-4065.5 "/>
<text text-anchor="start" x="2004" y="-4050.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; &amp;escaped</text>
<polyline fill="none" stroke="black" points="1996,-4042.5 2232,-4042.5 "/>
<text text-anchor="start" x="2004" y="-4027.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; 6</text>
<polyline fill="none" stroke="black" points="1996,-4019.5 2232,-4019.5 "/>
<text text-anchor="start" x="2004" y="-4004.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_write</text>
<polyline fill="none" stroke="black" points="1996,-3996.5 2232,-3996.5 "/>
<text text-anchor="start" x="2004" y="-3981.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1996,-3973.5 2232,-3973.5 "/>
<text text-anchor="start" x="2004" y="-3958.3" font-family="Times,serif" font-size="14.00">_128 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="1996,-3950.5 2232,-3950.5 "/>
<text text-anchor="start" x="2004" y="-3935.3" font-family="Times,serif" font-size="14.00">required_129 = _128 + 6;</text>
<polyline fill="none" stroke="black" points="1996,-3927.5 2232,-3927.5 "/>
<text text-anchor="start" x="2004" y="-3912.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; required_129</text>
<polyline fill="none" stroke="black" points="1996,-3904.5 2232,-3904.5 "/>
<text text-anchor="start" x="2004" y="-3889.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1996,-3881.5 2232,-3881.5 "/>
<text text-anchor="start" x="2004" y="-3866.3" font-family="Times,serif" font-size="14.00">_130 = self_39(D)&#45;&gt;max_output_len;</text>
<polyline fill="none" stroke="black" points="1996,-3858.5 2232,-3858.5 "/>
<text text-anchor="start" x="2004" y="-3843.3" font-family="Times,serif" font-size="14.00">if (required_129 &gt; _130)</text>
<text text-anchor="start" x="2004" y="-3828.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 37&gt;; [50.00%]</text>
<text text-anchor="start" x="2004" y="-3813.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2004" y="-3798.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 47&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_35&#45;&gt;fn_220_basic_block_36 -->
<g id="edge53" class="edge">
<title>fn_220_basic_block_35:s&#45;&gt;fn_220_basic_block_36:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1805,-4669C1805,-4521.22 2099.69,-4670.01 2113.5,-4536.14"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2117,-4536.16 2114,-4526 2110.01,-4535.81 2117,-4536.16"/>
<text text-anchor="middle" x="2127.5" y="-4547.8" font-family="Times,serif" font-size="14.00">[34%]</text>
</g>
<!-- fn_220_basic_block_51 -->
<g id="node11" class="node">
<title>fn_220_basic_block_51</title>
<polygon fill="lightgrey" stroke="black" points="1670,-3951.5 1670,-4364.5 1900,-4364.5 1900,-3951.5 1670,-3951.5"/>
<text text-anchor="start" x="1678" y="-4349.3" font-family="Times,serif" font-size="14.00">COUNT:457561017&lt;bb 51&gt;:</text>
<polyline fill="none" stroke="black" points="1670,-4341.5 1900,-4341.5 "/>
<text text-anchor="start" x="1678" y="-4326.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1670,-4318.5 1900,-4318.5 "/>
<text text-anchor="start" x="1678" y="-4303.3" font-family="Times,serif" font-size="14.00">escaped[0] = 92;</text>
<polyline fill="none" stroke="black" points="1670,-4295.5 1900,-4295.5 "/>
<text text-anchor="start" x="1678" y="-4280.3" font-family="Times,serif" font-size="14.00">escaped[1] = escape_45;</text>
<polyline fill="none" stroke="black" points="1670,-4272.5 1900,-4272.5 "/>
<text text-anchor="start" x="1678" y="-4257.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1670,-4249.5 1900,-4249.5 "/>
<text text-anchor="start" x="1678" y="-4234.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_39(D)</text>
<polyline fill="none" stroke="black" points="1670,-4226.5 1900,-4226.5 "/>
<text text-anchor="start" x="1678" y="-4211.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; &amp;escaped</text>
<polyline fill="none" stroke="black" points="1670,-4203.5 1900,-4203.5 "/>
<text text-anchor="start" x="1678" y="-4188.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; 2</text>
<polyline fill="none" stroke="black" points="1670,-4180.5 1900,-4180.5 "/>
<text text-anchor="start" x="1678" y="-4165.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_write</text>
<polyline fill="none" stroke="black" points="1670,-4157.5 1900,-4157.5 "/>
<text text-anchor="start" x="1678" y="-4142.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1670,-4134.5 1900,-4134.5 "/>
<text text-anchor="start" x="1678" y="-4119.3" font-family="Times,serif" font-size="14.00">_155 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="1670,-4111.5 1900,-4111.5 "/>
<text text-anchor="start" x="1678" y="-4096.3" font-family="Times,serif" font-size="14.00">required_156 = _155 + 2;</text>
<polyline fill="none" stroke="black" points="1670,-4088.5 1900,-4088.5 "/>
<text text-anchor="start" x="1678" y="-4073.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; required_156</text>
<polyline fill="none" stroke="black" points="1670,-4065.5 1900,-4065.5 "/>
<text text-anchor="start" x="1678" y="-4050.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1670,-4042.5 1900,-4042.5 "/>
<text text-anchor="start" x="1678" y="-4027.3" font-family="Times,serif" font-size="14.00">_157 = self_39(D)&#45;&gt;max_output_len;</text>
<polyline fill="none" stroke="black" points="1670,-4019.5 1900,-4019.5 "/>
<text text-anchor="start" x="1678" y="-4004.3" font-family="Times,serif" font-size="14.00">if (required_156 &gt; _157)</text>
<text text-anchor="start" x="1678" y="-3989.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 52&gt;; [50.00%]</text>
<text text-anchor="start" x="1678" y="-3974.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1678" y="-3959.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 62&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_35&#45;&gt;fn_220_basic_block_51 -->
<g id="edge54" class="edge">
<title>fn_220_basic_block_35:s&#45;&gt;fn_220_basic_block_51:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1805,-4669C1805,-4537.47 1786,-4502.71 1785.04,-4376.09"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1788.54,-4375.99 1785,-4366 1781.54,-4376.01 1788.54,-4375.99"/>
<text text-anchor="middle" x="1816.5" y="-4547.8" font-family="Times,serif" font-size="14.00">[66%]</text>
</g>
<!-- fn_220_basic_block_24 -->
<g id="node12" class="node">
<title>fn_220_basic_block_24</title>
<polygon fill="lightgrey" stroke="black" points="1205.5,-7365 1205.5,-7449 1484.5,-7449 1484.5,-7365 1205.5,-7365"/>
<text text-anchor="start" x="1213.5" y="-7433.8" font-family="Times,serif" font-size="14.00">COUNT:34631355&lt;bb 24&gt;:</text>
<polyline fill="none" stroke="black" points="1205.5,-7426 1484.5,-7426 "/>
<text text-anchor="start" x="1213.5" y="-7410.8" font-family="Times,serif" font-size="14.00">_117 = &amp;self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1205.5,-7403 1484.5,-7403 "/>
<text text-anchor="start" x="1213.5" y="-7387.8" font-family="Times,serif" font-size="14.00">iftmp.10_118 = _PyBytes_Resize (_117, _116);</text>
<text text-anchor="start" x="1213.5" y="-7372.8" font-family="Times,serif" font-size="14.00">goto &lt;bb 26&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_23&#45;&gt;fn_220_basic_block_24 -->
<g id="edge35" class="edge">
<title>fn_220_basic_block_23:s&#45;&gt;fn_220_basic_block_24:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1468,-7665C1468,-7558.46 1352.8,-7559.87 1345.37,-7460.29"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1348.86,-7459.87 1345,-7450 1341.87,-7460.12 1348.86,-7459.87"/>
<text text-anchor="middle" x="1483.5" y="-7635.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_25 -->
<g id="node13" class="node">
<title>fn_220_basic_block_25</title>
<polygon fill="lightgrey" stroke="black" points="1502.5,-7384 1502.5,-7430 1801.5,-7430 1801.5,-7384 1502.5,-7384"/>
<text text-anchor="start" x="1510.5" y="-7414.8" font-family="Times,serif" font-size="14.00">COUNT:80806497&lt;bb 25&gt;:</text>
<polyline fill="none" stroke="black" points="1502.5,-7407 1801.5,-7407 "/>
<text text-anchor="start" x="1510.5" y="-7391.8" font-family="Times,serif" font-size="14.00">iftmp.10_119 = PyByteArray_Resize (_113, _116);</text>
</g>
<!-- fn_220_basic_block_23&#45;&gt;fn_220_basic_block_25 -->
<g id="edge36" class="edge">
<title>fn_220_basic_block_23:s&#45;&gt;fn_220_basic_block_25:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1468,-7665C1468,-7646.71 1491.17,-7658.96 1505,-7647 1590.18,-7573.34 1648.39,-7548.62 1651.84,-7441.3"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1655.34,-7441.05 1652,-7431 1648.34,-7440.94 1655.34,-7441.05"/>
<text text-anchor="middle" x="1537.5" y="-7635.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_34 -->
<g id="node14" class="node">
<title>fn_220_basic_block_34</title>
<polygon fill="lightgrey" stroke="black" points="1061,-4928.5 1061,-5180.5 1243,-5180.5 1243,-4928.5 1061,-4928.5"/>
<text text-anchor="start" x="1069" y="-5165.3" font-family="Times,serif" font-size="14.00">COUNT:230875705&lt;bb 34&gt;:</text>
<polyline fill="none" stroke="black" points="1061,-5157.5 1243,-5157.5 "/>
<text text-anchor="start" x="1069" y="-5142.3" font-family="Times,serif" font-size="14.00"># _112 = PHI &lt;&#45;1(32), 0(33)&gt;</text>
<polyline fill="none" stroke="black" points="1061,-5134.5 1243,-5134.5 "/>
<text text-anchor="start" x="1069" y="-5119.3" font-family="Times,serif" font-size="14.00">_295 = _112;</text>
<polyline fill="none" stroke="black" points="1061,-5111.5 1243,-5111.5 "/>
<text text-anchor="start" x="1069" y="-5096.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1061,-5088.5 1243,-5088.5 "/>
<text text-anchor="start" x="1069" y="-5073.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1061,-5065.5 1243,-5065.5 "/>
<text text-anchor="start" x="1069" y="-5050.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1061,-5042.5 1243,-5042.5 "/>
<text text-anchor="start" x="1069" y="-5027.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1061,-5019.5 1243,-5019.5 "/>
<text text-anchor="start" x="1069" y="-5004.3" font-family="Times,serif" font-size="14.00">_9 = _295;</text>
<polyline fill="none" stroke="black" points="1061,-4996.5 1243,-4996.5 "/>
<text text-anchor="start" x="1069" y="-4981.3" font-family="Times,serif" font-size="14.00">if (_9 &lt; 0)</text>
<text text-anchor="start" x="1069" y="-4966.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 96&gt;; [2.75%]</text>
<text text-anchor="start" x="1069" y="-4951.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1069" y="-4936.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 35&gt;; [97.25%]</text>
</g>
<!-- fn_220_basic_block_33&#45;&gt;fn_220_basic_block_34 -->
<g id="edge50" class="edge">
<title>fn_220_basic_block_33:s&#45;&gt;fn_220_basic_block_34:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1152,-5232C1152,-5213.23 1152,-5206.12 1152,-5191.35"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1155.5,-5191 1152,-5181 1148.5,-5191 1155.5,-5191"/>
<text text-anchor="middle" x="1173" y="-5202.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_37 -->
<g id="node15" class="node">
<title>fn_220_basic_block_37</title>
<polygon fill="lightgrey" stroke="black" points="1956,-3187.5 1956,-3738.5 2272,-3738.5 2272,-3187.5 1956,-3187.5"/>
<text text-anchor="start" x="1964" y="-3723.3" font-family="Times,serif" font-size="14.00">COUNT:117856627&lt;bb 37&gt;:</text>
<polyline fill="none" stroke="black" points="1956,-3715.5 2272,-3715.5 "/>
<text text-anchor="start" x="1964" y="-3700.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1956,-3692.5 2272,-3692.5 "/>
<text text-anchor="start" x="1964" y="-3677.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_39(D)</text>
<polyline fill="none" stroke="black" points="1956,-3669.5 2272,-3669.5 "/>
<text text-anchor="start" x="1964" y="-3654.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; required_129</text>
<polyline fill="none" stroke="black" points="1956,-3646.5 2272,-3646.5 "/>
<text text-anchor="start" x="1964" y="-3631.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_resize</text>
<polyline fill="none" stroke="black" points="1956,-3623.5 2272,-3623.5 "/>
<text text-anchor="start" x="1964" y="-3608.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1956,-3600.5 2272,-3600.5 "/>
<text text-anchor="start" x="1964" y="-3585.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1956,-3577.5 2272,-3577.5 "/>
<text text-anchor="start" x="1964" y="-3562.3" font-family="Times,serif" font-size="14.00">_140 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1956,-3554.5 2272,-3554.5 "/>
<text text-anchor="start" x="1964" y="-3539.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; _140</text>
<polyline fill="none" stroke="black" points="1956,-3531.5 2272,-3531.5 "/>
<text text-anchor="start" x="1964" y="-3516.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="1956,-3508.5 2272,-3508.5 "/>
<text text-anchor="start" x="1964" y="-3493.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY _Py_IS_TYPE</text>
<polyline fill="none" stroke="black" points="1956,-3485.5 2272,-3485.5 "/>
<text text-anchor="start" x="1964" y="-3470.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1956,-3462.5 2272,-3462.5 "/>
<text text-anchor="start" x="1964" y="-3447.3" font-family="Times,serif" font-size="14.00">_141 = MEM[(const struct PyObject *)_140].ob_type;</text>
<polyline fill="none" stroke="black" points="1956,-3439.5 2272,-3439.5 "/>
<text text-anchor="start" x="1964" y="-3424.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1956,-3416.5 2272,-3416.5 "/>
<text text-anchor="start" x="1964" y="-3401.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1956,-3393.5 2272,-3393.5 "/>
<text text-anchor="start" x="1964" y="-3378.3" font-family="Times,serif" font-size="14.00"># DEBUG is_bytes =&gt; _141 == &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="1956,-3370.5 2272,-3370.5 "/>
<text text-anchor="start" x="1964" y="-3355.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1956,-3347.5 2272,-3347.5 "/>
<text text-anchor="start" x="1964" y="-3332.3" font-family="Times,serif" font-size="14.00">_142 = required_129 * 2;</text>
<polyline fill="none" stroke="black" points="1956,-3324.5 2272,-3324.5 "/>
<text text-anchor="start" x="1964" y="-3309.3" font-family="Times,serif" font-size="14.00">_143 = MAX_EXPR &lt;_142, 8&gt;;</text>
<polyline fill="none" stroke="black" points="1956,-3301.5 2272,-3301.5 "/>
<text text-anchor="start" x="1964" y="-3286.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;max_output_len = _143;</text>
<polyline fill="none" stroke="black" points="1956,-3278.5 2272,-3278.5 "/>
<text text-anchor="start" x="1964" y="-3263.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1956,-3255.5 2272,-3255.5 "/>
<text text-anchor="start" x="1964" y="-3240.3" font-family="Times,serif" font-size="14.00">if (_141 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="1964" y="-3225.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 38&gt;; [30.00%]</text>
<text text-anchor="start" x="1964" y="-3210.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1964" y="-3195.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 39&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_36&#45;&gt;fn_220_basic_block_37 -->
<g id="edge55" class="edge">
<title>fn_220_basic_block_36:s&#45;&gt;fn_220_basic_block_37:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2114,-3790C2114,-3771.23 2114,-3764.12 2114,-3749.35"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2117.5,-3749 2114,-3739 2110.5,-3749 2117.5,-3749"/>
<text text-anchor="middle" x="2131.5" y="-3760.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_47 -->
<g id="node16" class="node">
<title>fn_220_basic_block_47</title>
<polygon fill="lightgrey" stroke="black" points="2243,-945.5 2243,-1244.5 2479,-1244.5 2479,-945.5 2243,-945.5"/>
<text text-anchor="start" x="2251" y="-1229.3" font-family="Times,serif" font-size="14.00">COUNT:234852901&lt;bb 47&gt;:</text>
<polyline fill="none" stroke="black" points="2243,-1221.5 2479,-1221.5 "/>
<text text-anchor="start" x="2251" y="-1206.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2243,-1198.5 2479,-1198.5 "/>
<text text-anchor="start" x="2251" y="-1183.3" font-family="Times,serif" font-size="14.00">n.9_132 = 6;</text>
<polyline fill="none" stroke="black" points="2243,-1175.5 2479,-1175.5 "/>
<text text-anchor="start" x="2251" y="-1160.3" font-family="Times,serif" font-size="14.00">_133 = self_39(D)&#45;&gt;output_buffer_raw;</text>
<polyline fill="none" stroke="black" points="2243,-1152.5 2479,-1152.5 "/>
<text text-anchor="start" x="2251" y="-1137.3" font-family="Times,serif" font-size="14.00">_134 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="2243,-1129.5 2479,-1129.5 "/>
<text text-anchor="start" x="2251" y="-1114.3" font-family="Times,serif" font-size="14.00">_135 = (sizetype) _134;</text>
<polyline fill="none" stroke="black" points="2243,-1106.5 2479,-1106.5 "/>
<text text-anchor="start" x="2251" y="-1091.3" font-family="Times,serif" font-size="14.00">_136 = _133 + _135;</text>
<polyline fill="none" stroke="black" points="2243,-1083.5 2479,-1083.5 "/>
<text text-anchor="start" x="2251" y="-1068.3" font-family="Times,serif" font-size="14.00">memcpy (_136, &amp;escaped, n.9_132);</text>
<polyline fill="none" stroke="black" points="2243,-1060.5 2479,-1060.5 "/>
<text text-anchor="start" x="2251" y="-1045.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2243,-1037.5 2479,-1037.5 "/>
<text text-anchor="start" x="2251" y="-1022.3" font-family="Times,serif" font-size="14.00">_137 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="2243,-1014.5 2479,-1014.5 "/>
<text text-anchor="start" x="2251" y="-999.3" font-family="Times,serif" font-size="14.00">_138 = _137 + 6;</text>
<polyline fill="none" stroke="black" points="2243,-991.5 2479,-991.5 "/>
<text text-anchor="start" x="2251" y="-976.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_len = _138;</text>
<polyline fill="none" stroke="black" points="2243,-968.5 2479,-968.5 "/>
<text text-anchor="start" x="2251" y="-953.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
</g>
<!-- fn_220_basic_block_36&#45;&gt;fn_220_basic_block_47 -->
<g id="edge56" class="edge">
<title>fn_220_basic_block_36:s&#45;&gt;fn_220_basic_block_47:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2114,-3790C2114,-3780.3 2272.44,-3743.57 2281,-3739 2451.53,-3647.95 2618,-3657.32 2618,-3464 2618,-3464 2618,-3464 2618,-2239.5 2618,-2189.5 2618.29,-2177 2619,-2127 2621.68,-1938.54 2629.53,-1891.46 2627,-1703 2626.11,-1636.76 2633.34,-1619.43 2623,-1554 2604.35,-1435.93 2632.32,-1379.73 2547,-1296 2540.37,-1289.49 2405.36,-1263.98 2369.62,-1250.33"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2371.35,-1247.28 2361,-1245 2367.67,-1253.23 2371.35,-1247.28"/>
<text text-anchor="middle" x="2636.5" y="-2130.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_52 -->
<g id="node17" class="node">
<title>fn_220_basic_block_52</title>
<polygon fill="lightgrey" stroke="black" points="1450,-3187.5 1450,-3738.5 1766,-3738.5 1766,-3187.5 1450,-3187.5"/>
<text text-anchor="start" x="1458" y="-3723.3" font-family="Times,serif" font-size="14.00">COUNT:228780508&lt;bb 52&gt;:</text>
<polyline fill="none" stroke="black" points="1450,-3715.5 1766,-3715.5 "/>
<text text-anchor="start" x="1458" y="-3700.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1450,-3692.5 1766,-3692.5 "/>
<text text-anchor="start" x="1458" y="-3677.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_39(D)</text>
<polyline fill="none" stroke="black" points="1450,-3669.5 1766,-3669.5 "/>
<text text-anchor="start" x="1458" y="-3654.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; required_156</text>
<polyline fill="none" stroke="black" points="1450,-3646.5 1766,-3646.5 "/>
<text text-anchor="start" x="1458" y="-3631.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_resize</text>
<polyline fill="none" stroke="black" points="1450,-3623.5 1766,-3623.5 "/>
<text text-anchor="start" x="1458" y="-3608.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1450,-3600.5 1766,-3600.5 "/>
<text text-anchor="start" x="1458" y="-3585.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1450,-3577.5 1766,-3577.5 "/>
<text text-anchor="start" x="1458" y="-3562.3" font-family="Times,serif" font-size="14.00">_167 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1450,-3554.5 1766,-3554.5 "/>
<text text-anchor="start" x="1458" y="-3539.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; _167</text>
<polyline fill="none" stroke="black" points="1450,-3531.5 1766,-3531.5 "/>
<text text-anchor="start" x="1458" y="-3516.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="1450,-3508.5 1766,-3508.5 "/>
<text text-anchor="start" x="1458" y="-3493.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY _Py_IS_TYPE</text>
<polyline fill="none" stroke="black" points="1450,-3485.5 1766,-3485.5 "/>
<text text-anchor="start" x="1458" y="-3470.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1450,-3462.5 1766,-3462.5 "/>
<text text-anchor="start" x="1458" y="-3447.3" font-family="Times,serif" font-size="14.00">_168 = MEM[(const struct PyObject *)_167].ob_type;</text>
<polyline fill="none" stroke="black" points="1450,-3439.5 1766,-3439.5 "/>
<text text-anchor="start" x="1458" y="-3424.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1450,-3416.5 1766,-3416.5 "/>
<text text-anchor="start" x="1458" y="-3401.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1450,-3393.5 1766,-3393.5 "/>
<text text-anchor="start" x="1458" y="-3378.3" font-family="Times,serif" font-size="14.00"># DEBUG is_bytes =&gt; _168 == &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="1450,-3370.5 1766,-3370.5 "/>
<text text-anchor="start" x="1458" y="-3355.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1450,-3347.5 1766,-3347.5 "/>
<text text-anchor="start" x="1458" y="-3332.3" font-family="Times,serif" font-size="14.00">_169 = required_156 * 2;</text>
<polyline fill="none" stroke="black" points="1450,-3324.5 1766,-3324.5 "/>
<text text-anchor="start" x="1458" y="-3309.3" font-family="Times,serif" font-size="14.00">_170 = MAX_EXPR &lt;_169, 8&gt;;</text>
<polyline fill="none" stroke="black" points="1450,-3301.5 1766,-3301.5 "/>
<text text-anchor="start" x="1458" y="-3286.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;max_output_len = _170;</text>
<polyline fill="none" stroke="black" points="1450,-3278.5 1766,-3278.5 "/>
<text text-anchor="start" x="1458" y="-3263.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1450,-3255.5 1766,-3255.5 "/>
<text text-anchor="start" x="1458" y="-3240.3" font-family="Times,serif" font-size="14.00">if (_168 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="1458" y="-3225.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 53&gt;; [30.00%]</text>
<text text-anchor="start" x="1458" y="-3210.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1458" y="-3195.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 54&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_51&#45;&gt;fn_220_basic_block_52 -->
<g id="edge77" class="edge">
<title>fn_220_basic_block_51:s&#45;&gt;fn_220_basic_block_52:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1785,-3950C1785,-3846.33 1735.02,-3821.68 1654,-3757 1640.6,-3746.3 1620.06,-3754.73 1611.72,-3748.46"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1614.91,-3747.03 1608,-3739 1608.4,-3749.59 1614.91,-3747.03"/>
<text text-anchor="middle" x="1689.5" y="-3760.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_62 -->
<g id="node18" class="node">
<title>fn_220_basic_block_62</title>
<polygon fill="lightgrey" stroke="black" points="1420,-945.5 1420,-1244.5 1656,-1244.5 1656,-945.5 1420,-945.5"/>
<text text-anchor="start" x="1428" y="-1229.3" font-family="Times,serif" font-size="14.00">COUNT:455890921&lt;bb 62&gt;:</text>
<polyline fill="none" stroke="black" points="1420,-1221.5 1656,-1221.5 "/>
<text text-anchor="start" x="1428" y="-1206.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1420,-1198.5 1656,-1198.5 "/>
<text text-anchor="start" x="1428" y="-1183.3" font-family="Times,serif" font-size="14.00">n.9_159 = 2;</text>
<polyline fill="none" stroke="black" points="1420,-1175.5 1656,-1175.5 "/>
<text text-anchor="start" x="1428" y="-1160.3" font-family="Times,serif" font-size="14.00">_160 = self_39(D)&#45;&gt;output_buffer_raw;</text>
<polyline fill="none" stroke="black" points="1420,-1152.5 1656,-1152.5 "/>
<text text-anchor="start" x="1428" y="-1137.3" font-family="Times,serif" font-size="14.00">_161 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="1420,-1129.5 1656,-1129.5 "/>
<text text-anchor="start" x="1428" y="-1114.3" font-family="Times,serif" font-size="14.00">_162 = (sizetype) _161;</text>
<polyline fill="none" stroke="black" points="1420,-1106.5 1656,-1106.5 "/>
<text text-anchor="start" x="1428" y="-1091.3" font-family="Times,serif" font-size="14.00">_163 = _160 + _162;</text>
<polyline fill="none" stroke="black" points="1420,-1083.5 1656,-1083.5 "/>
<text text-anchor="start" x="1428" y="-1068.3" font-family="Times,serif" font-size="14.00">memcpy (_163, &amp;escaped, n.9_159);</text>
<polyline fill="none" stroke="black" points="1420,-1060.5 1656,-1060.5 "/>
<text text-anchor="start" x="1428" y="-1045.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1420,-1037.5 1656,-1037.5 "/>
<text text-anchor="start" x="1428" y="-1022.3" font-family="Times,serif" font-size="14.00">_164 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="1420,-1014.5 1656,-1014.5 "/>
<text text-anchor="start" x="1428" y="-999.3" font-family="Times,serif" font-size="14.00">_165 = _164 + 2;</text>
<polyline fill="none" stroke="black" points="1420,-991.5 1656,-991.5 "/>
<text text-anchor="start" x="1428" y="-976.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_len = _165;</text>
<polyline fill="none" stroke="black" points="1420,-968.5 1656,-968.5 "/>
<text text-anchor="start" x="1428" y="-953.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
</g>
<!-- fn_220_basic_block_51&#45;&gt;fn_220_basic_block_62 -->
<g id="edge78" class="edge">
<title>fn_220_basic_block_51:s&#45;&gt;fn_220_basic_block_62:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1785,-3950C1785,-3734 1785,-3680 1785,-3464 1785,-3464 1785,-3464 1785,-1398.5 1785,-1368.84 1576.86,-1291.51 1542.71,-1254.03"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1545.73,-1252.25 1538,-1245 1539.52,-1255.48 1545.73,-1252.25"/>
<text text-anchor="middle" x="1802.5" y="-2130.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_26 -->
<g id="node19" class="node">
<title>fn_220_basic_block_26</title>
<polygon fill="lightgrey" stroke="black" points="1418,-6793 1418,-6953 1778,-6953 1778,-6793 1418,-6793"/>
<text text-anchor="start" x="1426" y="-6937.8" font-family="Times,serif" font-size="14.00">COUNT:115437853&lt;bb 26&gt;:</text>
<polyline fill="none" stroke="black" points="1418,-6930 1778,-6930 "/>
<text text-anchor="start" x="1426" y="-6914.8" font-family="Times,serif" font-size="14.00"># iftmp.10_120 = PHI &lt;iftmp.10_118(24), iftmp.10_119(25)&gt;</text>
<polyline fill="none" stroke="black" points="1418,-6907 1778,-6907 "/>
<text text-anchor="start" x="1426" y="-6891.8" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_120</text>
<polyline fill="none" stroke="black" points="1418,-6884 1778,-6884 "/>
<text text-anchor="start" x="1426" y="-6868.8" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1418,-6861 1778,-6861 "/>
<text text-anchor="start" x="1426" y="-6845.8" font-family="Times,serif" font-size="14.00">if (iftmp.10_120 &lt; 0)</text>
<text text-anchor="start" x="1426" y="-6830.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 32&gt;; [0.73%]</text>
<text text-anchor="start" x="1426" y="-6815.8" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1426" y="-6800.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 27&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_24&#45;&gt;fn_220_basic_block_26 -->
<g id="edge37" class="edge">
<title>fn_220_basic_block_24:s&#45;&gt;fn_220_basic_block_26:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1345,-7364C1345,-7153.33 1589.91,-7167.6 1597.81,-6964.17"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1601.31,-6964.07 1598,-6954 1594.31,-6963.93 1601.31,-6964.07"/>
<text text-anchor="middle" x="1477" y="-7170.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_25&#45;&gt;fn_220_basic_block_26 -->
<g id="edge38" class="edge">
<title>fn_220_basic_block_25:s&#45;&gt;fn_220_basic_block_26:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1652,-7383C1652,-7194.3 1599.93,-7147.83 1598.05,-6964.27"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1601.55,-6963.98 1598,-6954 1594.55,-6964.02 1601.55,-6963.98"/>
<text text-anchor="middle" x="1647" y="-7170.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_34&#45;&gt;fn_220_basic_block_35 -->
<g id="edge52" class="edge">
<title>fn_220_basic_block_34:s&#45;&gt;fn_220_basic_block_35:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1152,-4928C1152,-4894.04 1735.72,-4930.23 1763,-4910 1807.32,-4877.14 1805.42,-4847.31 1805.04,-4795.03"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1808.54,-4794.99 1805,-4785 1801.54,-4795.01 1808.54,-4794.99"/>
<text text-anchor="middle" x="1796.5" y="-4898.8" font-family="Times,serif" font-size="14.00">[97%]</text>
</g>
<!-- fn_220_basic_block_96 -->
<g id="node97" class="node">
<title>fn_220_basic_block_96</title>
<polygon fill="lightgrey" stroke="black" points="458.5,-214.5 458.5,-306.5 847.5,-306.5 847.5,-214.5 458.5,-214.5"/>
<text text-anchor="start" x="466.5" y="-291.3" font-family="Times,serif" font-size="14.00">COUNT:55854333&lt;bb 96&gt;:</text>
<polyline fill="none" stroke="black" points="458.5,-283.5 847.5,-283.5 "/>
<text text-anchor="start" x="466.5" y="-268.3" font-family="Times,serif" font-size="14.00"># _28 = PHI &lt;&#45;1(5), &#45;1(18), &#45;1(34), &#45;1(49), &#45;1(64), &#45;1(82), _43(95)&gt;</text>
<polyline fill="none" stroke="black" points="458.5,-260.5 847.5,-260.5 "/>
<text text-anchor="start" x="466.5" y="-245.3" font-family="Times,serif" font-size="14.00">len ={v} {CLOBBER};</text>
<polyline fill="none" stroke="black" points="458.5,-237.5 847.5,-237.5 "/>
<text text-anchor="start" x="466.5" y="-222.3" font-family="Times,serif" font-size="14.00">return _28;</text>
</g>
<!-- fn_220_basic_block_34&#45;&gt;fn_220_basic_block_96 -->
<g id="edge51" class="edge">
<title>fn_220_basic_block_34:s&#45;&gt;fn_220_basic_block_96:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1152,-4928C1152,-4800.07 945,-4855.93 945,-4728 945,-4728 945,-4728 945,-1921.5 945,-1743.3 936.1,-1698.91 926,-1521 920.32,-1420.99 929.84,-1394.74 913,-1296 856.46,-964.55 853.14,-846.4 631,-594 604.61,-564.02 575.58,-578.36 557,-543 537.88,-506.6 535.82,-393.24 557,-358 579.85,-319.99 641.64,-349.5 651.63,-317.22"/>
<polygon fill="black" stroke="black" stroke-width="2" points="655.14,-317.38 653,-307 648.2,-316.45 655.14,-317.38"/>
<text text-anchor="middle" x="959" y="-2024.8" font-family="Times,serif" font-size="14.00">[2%]</text>
</g>
<!-- fn_220_basic_block_38 -->
<g id="node20" class="node">
<title>fn_220_basic_block_38</title>
<polygon fill="lightgrey" stroke="black" points="2235.5,-2818 2235.5,-2902 2514.5,-2902 2514.5,-2818 2235.5,-2818"/>
<text text-anchor="start" x="2243.5" y="-2886.8" font-family="Times,serif" font-size="14.00">COUNT:35356988&lt;bb 38&gt;:</text>
<polyline fill="none" stroke="black" points="2235.5,-2879 2514.5,-2879 "/>
<text text-anchor="start" x="2243.5" y="-2863.8" font-family="Times,serif" font-size="14.00">_144 = &amp;self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="2235.5,-2856 2514.5,-2856 "/>
<text text-anchor="start" x="2243.5" y="-2840.8" font-family="Times,serif" font-size="14.00">iftmp.10_145 = _PyBytes_Resize (_144, _143);</text>
<text text-anchor="start" x="2243.5" y="-2825.8" font-family="Times,serif" font-size="14.00">goto &lt;bb 40&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_37&#45;&gt;fn_220_basic_block_38 -->
<g id="edge57" class="edge">
<title>fn_220_basic_block_37:s&#45;&gt;fn_220_basic_block_38:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2114,-3187C2114,-3185.28 2225.7,-3137.13 2227,-3136 2317.06,-3057.9 2371.84,-3027.42 2374.87,-2913.2"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2378.37,-2913.04 2375,-2903 2371.37,-2912.95 2378.37,-2913.04"/>
<text text-anchor="middle" x="2200.5" y="-3157.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_39 -->
<g id="node21" class="node">
<title>fn_220_basic_block_39</title>
<polygon fill="lightgrey" stroke="black" points="1918.5,-2837 1918.5,-2883 2217.5,-2883 2217.5,-2837 1918.5,-2837"/>
<text text-anchor="start" x="1926.5" y="-2867.8" font-family="Times,serif" font-size="14.00">COUNT:82499640&lt;bb 39&gt;:</text>
<polyline fill="none" stroke="black" points="1918.5,-2860 2217.5,-2860 "/>
<text text-anchor="start" x="1926.5" y="-2844.8" font-family="Times,serif" font-size="14.00">iftmp.10_146 = PyByteArray_Resize (_140, _143);</text>
</g>
<!-- fn_220_basic_block_37&#45;&gt;fn_220_basic_block_39 -->
<g id="edge58" class="edge">
<title>fn_220_basic_block_37:s&#45;&gt;fn_220_basic_block_39:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2114,-3187C2114,-3054.25 2070.31,-3021.83 2068.09,-2894.17"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2071.59,-2893.97 2068,-2884 2064.59,-2894.03 2071.59,-2893.97"/>
<text text-anchor="middle" x="2130.5" y="-3157.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_48 -->
<g id="node22" class="node">
<title>fn_220_basic_block_48</title>
<polygon fill="lightgrey" stroke="black" points="2270,-618 2270,-870 2452,-870 2452,-618 2270,-618"/>
<text text-anchor="start" x="2278" y="-854.8" font-family="Times,serif" font-size="14.00">COUNT:235713254&lt;bb 48&gt;:</text>
<polyline fill="none" stroke="black" points="2270,-847 2452,-847 "/>
<text text-anchor="start" x="2278" y="-831.8" font-family="Times,serif" font-size="14.00"># _139 = PHI &lt;&#45;1(46), 0(47)&gt;</text>
<polyline fill="none" stroke="black" points="2270,-824 2452,-824 "/>
<text text-anchor="start" x="2278" y="-808.8" font-family="Times,serif" font-size="14.00">_313 = _139;</text>
<polyline fill="none" stroke="black" points="2270,-801 2452,-801 "/>
<text text-anchor="start" x="2278" y="-785.8" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2270,-778 2452,-778 "/>
<text text-anchor="start" x="2278" y="-762.8" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2270,-755 2452,-755 "/>
<text text-anchor="start" x="2278" y="-739.8" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2270,-732 2452,-732 "/>
<text text-anchor="start" x="2278" y="-716.8" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2270,-709 2452,-709 "/>
<text text-anchor="start" x="2278" y="-693.8" font-family="Times,serif" font-size="14.00">_17 = _313;</text>
<polyline fill="none" stroke="black" points="2270,-686 2452,-686 "/>
<text text-anchor="start" x="2278" y="-670.8" font-family="Times,serif" font-size="14.00">if (_17 &lt; 0)</text>
<text text-anchor="start" x="2278" y="-655.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 49&gt;; [2.75%]</text>
<text text-anchor="start" x="2278" y="-640.8" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2278" y="-625.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 50&gt;; [97.25%]</text>
</g>
<!-- fn_220_basic_block_47&#45;&gt;fn_220_basic_block_48 -->
<g id="edge72" class="edge">
<title>fn_220_basic_block_47:s&#45;&gt;fn_220_basic_block_48:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2361,-945C2361,-915.84 2361,-906.07 2361,-881.3"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2364.5,-881 2361,-871 2357.5,-881 2364.5,-881"/>
<text text-anchor="middle" x="2382" y="-915.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_53 -->
<g id="node23" class="node">
<title>fn_220_basic_block_53</title>
<polygon fill="lightgrey" stroke="black" points="1167.5,-2818 1167.5,-2902 1446.5,-2902 1446.5,-2818 1167.5,-2818"/>
<text text-anchor="start" x="1175.5" y="-2886.8" font-family="Times,serif" font-size="14.00">COUNT:68634151&lt;bb 53&gt;:</text>
<polyline fill="none" stroke="black" points="1167.5,-2879 1446.5,-2879 "/>
<text text-anchor="start" x="1175.5" y="-2863.8" font-family="Times,serif" font-size="14.00">_171 = &amp;self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1167.5,-2856 1446.5,-2856 "/>
<text text-anchor="start" x="1175.5" y="-2840.8" font-family="Times,serif" font-size="14.00">iftmp.10_172 = _PyBytes_Resize (_171, _170);</text>
<text text-anchor="start" x="1175.5" y="-2825.8" font-family="Times,serif" font-size="14.00">goto &lt;bb 55&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_52&#45;&gt;fn_220_basic_block_53 -->
<g id="edge79" class="edge">
<title>fn_220_basic_block_52:s&#45;&gt;fn_220_basic_block_53:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1608,-3187C1608,-3178.09 1463.02,-3141.48 1456,-3136 1361.85,-3062.51 1309.99,-3027.9 1307.13,-2913.23"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1310.62,-2912.96 1307,-2903 1303.62,-2913.04 1310.62,-2912.96"/>
<text text-anchor="middle" x="1577.5" y="-3157.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_54 -->
<g id="node24" class="node">
<title>fn_220_basic_block_54</title>
<polygon fill="lightgrey" stroke="black" points="1464.5,-2837 1464.5,-2883 1763.5,-2883 1763.5,-2837 1464.5,-2837"/>
<text text-anchor="start" x="1472.5" y="-2867.8" font-family="Times,serif" font-size="14.00">COUNT:160146357&lt;bb 54&gt;:</text>
<polyline fill="none" stroke="black" points="1464.5,-2860 1763.5,-2860 "/>
<text text-anchor="start" x="1472.5" y="-2844.8" font-family="Times,serif" font-size="14.00">iftmp.10_173 = PyByteArray_Resize (_167, _170);</text>
</g>
<!-- fn_220_basic_block_52&#45;&gt;fn_220_basic_block_54 -->
<g id="edge80" class="edge">
<title>fn_220_basic_block_52:s&#45;&gt;fn_220_basic_block_54:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1608,-3187C1608,-3055.73 1613.7,-3020.47 1613.99,-2894.07"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1617.49,-2894 1614,-2884 1610.49,-2894 1617.49,-2894"/>
<text text-anchor="middle" x="1625.5" y="-3157.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_63 -->
<g id="node25" class="node">
<title>fn_220_basic_block_63</title>
<polygon fill="lightgrey" stroke="black" points="1447,-618 1447,-870 1629,-870 1629,-618 1447,-618"/>
<text text-anchor="start" x="1455" y="-854.8" font-family="Times,serif" font-size="14.00">COUNT:457561017&lt;bb 63&gt;:</text>
<polyline fill="none" stroke="black" points="1447,-847 1629,-847 "/>
<text text-anchor="start" x="1455" y="-831.8" font-family="Times,serif" font-size="14.00"># _166 = PHI &lt;&#45;1(61), 0(62)&gt;</text>
<polyline fill="none" stroke="black" points="1447,-824 1629,-824 "/>
<text text-anchor="start" x="1455" y="-808.8" font-family="Times,serif" font-size="14.00">_304 = _166;</text>
<polyline fill="none" stroke="black" points="1447,-801 1629,-801 "/>
<text text-anchor="start" x="1455" y="-785.8" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1447,-778 1629,-778 "/>
<text text-anchor="start" x="1455" y="-762.8" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1447,-755 1629,-755 "/>
<text text-anchor="start" x="1455" y="-739.8" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1447,-732 1629,-732 "/>
<text text-anchor="start" x="1455" y="-716.8" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1447,-709 1629,-709 "/>
<text text-anchor="start" x="1455" y="-693.8" font-family="Times,serif" font-size="14.00">_18 = _304;</text>
<polyline fill="none" stroke="black" points="1447,-686 1629,-686 "/>
<text text-anchor="start" x="1455" y="-670.8" font-family="Times,serif" font-size="14.00">if (_18 &lt; 0)</text>
<text text-anchor="start" x="1455" y="-655.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 64&gt;; [2.75%]</text>
<text text-anchor="start" x="1455" y="-640.8" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1455" y="-625.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 65&gt;; [97.25%]</text>
</g>
<!-- fn_220_basic_block_62&#45;&gt;fn_220_basic_block_63 -->
<g id="edge94" class="edge">
<title>fn_220_basic_block_62:s&#45;&gt;fn_220_basic_block_63:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1538,-945C1538,-915.84 1538,-906.07 1538,-881.3"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1541.5,-881 1538,-871 1534.5,-881 1541.5,-881"/>
<text text-anchor="middle" x="1559" y="-915.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_32 -->
<g id="node26" class="node">
<title>fn_220_basic_block_32</title>
<polygon fill="lightgrey" stroke="black" points="1129,-5583.5 1129,-5789.5 1483,-5789.5 1483,-5583.5 1129,-5583.5"/>
<text text-anchor="start" x="1137" y="-5774.3" font-family="Times,serif" font-size="14.00">COUNT:115437853&lt;bb 32&gt;:</text>
<polyline fill="none" stroke="black" points="1129,-5766.5 1483,-5766.5 "/>
<text text-anchor="start" x="1137" y="-5751.3" font-family="Times,serif" font-size="14.00"># _127 = PHI &lt;&#45;1(26), iftmp.10_120(28), iftmp.10_120(31)&gt;</text>
<polyline fill="none" stroke="black" points="1129,-5743.5 1483,-5743.5 "/>
<text text-anchor="start" x="1137" y="-5728.3" font-family="Times,serif" font-size="14.00">_292 = _127;</text>
<polyline fill="none" stroke="black" points="1129,-5720.5 1483,-5720.5 "/>
<text text-anchor="start" x="1137" y="-5705.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1129,-5697.5 1483,-5697.5 "/>
<text text-anchor="start" x="1137" y="-5682.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1129,-5674.5 1483,-5674.5 "/>
<text text-anchor="start" x="1137" y="-5659.3" font-family="Times,serif" font-size="14.00">_104 = _292;</text>
<polyline fill="none" stroke="black" points="1129,-5651.5 1483,-5651.5 "/>
<text text-anchor="start" x="1137" y="-5636.3" font-family="Times,serif" font-size="14.00">if (_104 &lt; 0)</text>
<text text-anchor="start" x="1137" y="-5621.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 34&gt;; [0.73%]</text>
<text text-anchor="start" x="1137" y="-5606.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1137" y="-5591.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 33&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_26&#45;&gt;fn_220_basic_block_32 -->
<g id="edge39" class="edge">
<title>fn_220_basic_block_26:s&#45;&gt;fn_220_basic_block_32:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1598,-6792C1598,-6629.84 1802,-6651.66 1802,-6489.5 1802,-6489.5 1802,-6489.5 1802,-5920.5 1802,-5884.89 1817.44,-5865.92 1792,-5841 1783.12,-5832.3 1382.71,-5808.13 1315.52,-5793.7"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1316.59,-5790.36 1306,-5790 1314.05,-5796.89 1316.59,-5790.36"/>
<text text-anchor="middle" x="1816" y="-6189.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_27 -->
<g id="node27" class="node">
<title>fn_220_basic_block_27</title>
<polygon fill="lightgrey" stroke="black" points="1332.5,-6431.5 1332.5,-6545.5 1511.5,-6545.5 1511.5,-6431.5 1332.5,-6431.5"/>
<text text-anchor="start" x="1340.5" y="-6530.3" font-family="Times,serif" font-size="14.00">COUNT:114595157&lt;bb 27&gt;:</text>
<polyline fill="none" stroke="black" points="1332.5,-6522.5 1511.5,-6522.5 "/>
<text text-anchor="start" x="1340.5" y="-6507.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1332.5,-6499.5 1511.5,-6499.5 "/>
<text text-anchor="start" x="1340.5" y="-6484.3" font-family="Times,serif" font-size="14.00">if (_114 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="1340.5" y="-6469.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 28&gt;; [30.00%]</text>
<text text-anchor="start" x="1340.5" y="-6454.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1340.5" y="-6439.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 29&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_26&#45;&gt;fn_220_basic_block_27 -->
<g id="edge40" class="edge">
<title>fn_220_basic_block_26:s&#45;&gt;fn_220_basic_block_27:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1598,-6792C1598,-6661.11 1431.16,-6679.34 1422.36,-6556.31"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1425.85,-6555.87 1422,-6546 1418.85,-6556.12 1425.85,-6555.87"/>
<text text-anchor="middle" x="1442.5" y="-6567.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_40 -->
<g id="node28" class="node">
<title>fn_220_basic_block_40</title>
<polygon fill="lightgrey" stroke="black" points="2031,-2372.5 2031,-2532.5 2391,-2532.5 2391,-2372.5 2031,-2372.5"/>
<text text-anchor="start" x="2039" y="-2517.3" font-family="Times,serif" font-size="14.00">COUNT:117856627&lt;bb 40&gt;:</text>
<polyline fill="none" stroke="black" points="2031,-2509.5 2391,-2509.5 "/>
<text text-anchor="start" x="2039" y="-2494.3" font-family="Times,serif" font-size="14.00"># iftmp.10_147 = PHI &lt;iftmp.10_145(38), iftmp.10_146(39)&gt;</text>
<polyline fill="none" stroke="black" points="2031,-2486.5 2391,-2486.5 "/>
<text text-anchor="start" x="2039" y="-2471.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_147</text>
<polyline fill="none" stroke="black" points="2031,-2463.5 2391,-2463.5 "/>
<text text-anchor="start" x="2039" y="-2448.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2031,-2440.5 2391,-2440.5 "/>
<text text-anchor="start" x="2039" y="-2425.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_147 &lt; 0)</text>
<text text-anchor="start" x="2039" y="-2410.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 46&gt;; [0.73%]</text>
<text text-anchor="start" x="2039" y="-2395.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2039" y="-2380.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 41&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_38&#45;&gt;fn_220_basic_block_40 -->
<g id="edge59" class="edge">
<title>fn_220_basic_block_38:s&#45;&gt;fn_220_basic_block_40:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2375,-2817C2375,-2687.3 2348.32,-2641.07 2255,-2551 2243.24,-2539.65 2223.35,-2547.73 2214.94,-2542.2"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2218.16,-2540.81 2211,-2533 2211.72,-2543.57 2218.16,-2540.81"/>
<text text-anchor="middle" x="2286" y="-2554.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_39&#45;&gt;fn_220_basic_block_40 -->
<g id="edge60" class="edge">
<title>fn_220_basic_block_39:s&#45;&gt;fn_220_basic_block_40:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2068,-2836C2068,-2690.58 2204.38,-2682.23 2210.77,-2543.24"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2214.27,-2543.08 2211,-2533 2207.27,-2542.92 2214.27,-2543.08"/>
<text text-anchor="middle" x="2230" y="-2554.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_50 -->
<g id="node29" class="node">
<title>fn_220_basic_block_50</title>
<polygon fill="lightgrey" stroke="black" points="2251,-420 2251,-481 2429,-481 2429,-420 2251,-420"/>
<text text-anchor="start" x="2259" y="-465.8" font-family="Times,serif" font-size="14.00">COUNT:229231139&lt;bb 50&gt;:</text>
<polyline fill="none" stroke="black" points="2251,-458 2429,-458 "/>
<text text-anchor="start" x="2259" y="-442.8" font-family="Times,serif" font-size="14.00">escaped ={v} {CLOBBER};</text>
<text text-anchor="start" x="2259" y="-427.8" font-family="Times,serif" font-size="14.00">goto &lt;bb 66&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_48&#45;&gt;fn_220_basic_block_50 -->
<g id="edge74" class="edge">
<title>fn_220_basic_block_48:s&#45;&gt;fn_220_basic_block_50:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2361,-617C2361,-560.04 2342.39,-544.74 2340.21,-492.67"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2343.7,-492.43 2340,-482.5 2336.71,-492.57 2343.7,-492.43"/>
<text text-anchor="middle" x="2373.5" y="-564.8" font-family="Times,serif" font-size="14.00">[97%]</text>
</g>
<!-- fn_220_basic_block_49 -->
<g id="node68" class="node">
<title>fn_220_basic_block_49</title>
<polygon fill="lightgrey" stroke="black" points="758.5,-408.5 758.5,-492.5 933.5,-492.5 933.5,-408.5 758.5,-408.5"/>
<text text-anchor="start" x="766.5" y="-477.3" font-family="Times,serif" font-size="14.00">COUNT:6482115&lt;bb 49&gt;:</text>
<polyline fill="none" stroke="black" points="758.5,-469.5 933.5,-469.5 "/>
<text text-anchor="start" x="766.5" y="-454.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="758.5,-446.5 933.5,-446.5 "/>
<text text-anchor="start" x="766.5" y="-431.3" font-family="Times,serif" font-size="14.00">escaped ={v} {CLOBBER};</text>
<text text-anchor="start" x="766.5" y="-416.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 96&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_48&#45;&gt;fn_220_basic_block_49 -->
<g id="edge73" class="edge">
<title>fn_220_basic_block_48:s&#45;&gt;fn_220_basic_block_49:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2361,-617C2361,-577.42 976.12,-553.66 938,-543 896.95,-531.52 853.74,-538.53 846.93,-503.84"/>
<polygon fill="black" stroke="black" stroke-width="2" points="850.38,-503.15 846,-493.5 843.41,-503.77 850.38,-503.15"/>
<text text-anchor="middle" x="1844" y="-564.8" font-family="Times,serif" font-size="14.00">[2%]</text>
</g>
<!-- fn_220_basic_block_55 -->
<g id="node30" class="node">
<title>fn_220_basic_block_55</title>
<polygon fill="lightgrey" stroke="black" points="1186,-2372.5 1186,-2532.5 1546,-2532.5 1546,-2372.5 1186,-2372.5"/>
<text text-anchor="start" x="1194" y="-2517.3" font-family="Times,serif" font-size="14.00">COUNT:228780508&lt;bb 55&gt;:</text>
<polyline fill="none" stroke="black" points="1186,-2509.5 1546,-2509.5 "/>
<text text-anchor="start" x="1194" y="-2494.3" font-family="Times,serif" font-size="14.00"># iftmp.10_174 = PHI &lt;iftmp.10_172(53), iftmp.10_173(54)&gt;</text>
<polyline fill="none" stroke="black" points="1186,-2486.5 1546,-2486.5 "/>
<text text-anchor="start" x="1194" y="-2471.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_174</text>
<polyline fill="none" stroke="black" points="1186,-2463.5 1546,-2463.5 "/>
<text text-anchor="start" x="1194" y="-2448.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1186,-2440.5 1546,-2440.5 "/>
<text text-anchor="start" x="1194" y="-2425.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_174 &lt; 0)</text>
<text text-anchor="start" x="1194" y="-2410.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 61&gt;; [0.73%]</text>
<text text-anchor="start" x="1194" y="-2395.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1194" y="-2380.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 56&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_53&#45;&gt;fn_220_basic_block_55 -->
<g id="edge81" class="edge">
<title>fn_220_basic_block_53:s&#45;&gt;fn_220_basic_block_55:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1307,-2817C1307,-2697.98 1275.01,-2651.99 1338,-2551 1343.14,-2542.76 1353.59,-2543.96 1360.17,-2541.57"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1363.27,-2543.24 1366,-2533 1357.48,-2539.3 1363.27,-2543.24"/>
<text text-anchor="middle" x="1359" y="-2554.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_54&#45;&gt;fn_220_basic_block_55 -->
<g id="edge82" class="edge">
<title>fn_220_basic_block_54:s&#45;&gt;fn_220_basic_block_55:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1614,-2836C1614,-2703.81 1551.53,-2675.37 1456,-2584 1441.85,-2570.47 1386.54,-2559.67 1370.43,-2542.57"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1373.38,-2540.61 1366,-2533 1367.02,-2543.55 1373.38,-2540.61"/>
<text text-anchor="middle" x="1438" y="-2554.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_65 -->
<g id="node31" class="node">
<title>fn_220_basic_block_65</title>
<polygon fill="lightgrey" stroke="black" points="2055,-427.5 2055,-473.5 2233,-473.5 2233,-427.5 2055,-427.5"/>
<text text-anchor="start" x="2063" y="-458.3" font-family="Times,serif" font-size="14.00">COUNT:444978088&lt;bb 65&gt;:</text>
<polyline fill="none" stroke="black" points="2055,-450.5 2233,-450.5 "/>
<text text-anchor="start" x="2063" y="-435.3" font-family="Times,serif" font-size="14.00">escaped ={v} {CLOBBER};</text>
</g>
<!-- fn_220_basic_block_63&#45;&gt;fn_220_basic_block_65 -->
<g id="edge96" class="edge">
<title>fn_220_basic_block_63:s&#45;&gt;fn_220_basic_block_65:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1538,-617C1538,-575.75 1866.33,-582.9 1907,-576 1971.74,-565.02 1991.32,-570.37 2051,-543 2094.38,-523.1 2137.48,-525.37 2143.33,-484.53"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2146.82,-484.71 2144,-474.5 2139.84,-484.24 2146.82,-484.71"/>
<text text-anchor="middle" x="2017.5" y="-564.8" font-family="Times,serif" font-size="14.00">[97%]</text>
</g>
<!-- fn_220_basic_block_64 -->
<g id="node69" class="node">
<title>fn_220_basic_block_64</title>
<polygon fill="lightgrey" stroke="black" points="565.5,-408.5 565.5,-492.5 740.5,-492.5 740.5,-408.5 565.5,-408.5"/>
<text text-anchor="start" x="573.5" y="-477.3" font-family="Times,serif" font-size="14.00">COUNT:12582929&lt;bb 64&gt;:</text>
<polyline fill="none" stroke="black" points="565.5,-469.5 740.5,-469.5 "/>
<text text-anchor="start" x="573.5" y="-454.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="565.5,-446.5 740.5,-446.5 "/>
<text text-anchor="start" x="573.5" y="-431.3" font-family="Times,serif" font-size="14.00">escaped ={v} {CLOBBER};</text>
<text text-anchor="start" x="573.5" y="-416.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 96&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_63&#45;&gt;fn_220_basic_block_64 -->
<g id="edge95" class="edge">
<title>fn_220_basic_block_63:s&#45;&gt;fn_220_basic_block_64:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1538,-617C1538,-573.56 1485.92,-600.73 1443,-594 1137.89,-546.17 1047.42,-626.17 750,-543 707.03,-530.98 660.85,-540.19 653.9,-503.78"/>
<polygon fill="black" stroke="black" stroke-width="2" points="657.36,-503.16 653,-493.5 650.38,-503.77 657.36,-503.16"/>
<text text-anchor="middle" x="920" y="-564.8" font-family="Times,serif" font-size="14.00">[2%]</text>
</g>
<!-- fn_220_basic_block_32&#45;&gt;fn_220_basic_block_33 -->
<g id="edge49" class="edge">
<title>fn_220_basic_block_32:s&#45;&gt;fn_220_basic_block_33:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1306,-5583C1306,-5567.37 1190.19,-5554.05 1159.43,-5539.03"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1161.67,-5536.33 1152,-5532 1156.85,-5541.42 1161.67,-5536.33"/>
<text text-anchor="middle" x="1277.5" y="-5553.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_32&#45;&gt;fn_220_basic_block_34 -->
<g id="edge48" class="edge">
<title>fn_220_basic_block_32:s&#45;&gt;fn_220_basic_block_34:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1306,-5583C1306,-5426.54 1371.22,-5358.39 1279,-5232 1256.09,-5200.6 1234.1,-5213.42 1198,-5199 1181.75,-5192.51 1162.19,-5198.88 1154.91,-5190.62"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1158.25,-5189.56 1152,-5181 1151.55,-5191.59 1158.25,-5189.56"/>
<text text-anchor="middle" x="1342" y="-5378.3" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_28 -->
<g id="node32" class="node">
<title>fn_220_basic_block_28</title>
<polygon fill="lightgrey" stroke="black" points="987,-5856.5 987,-5986.5 1311,-5986.5 1311,-5856.5 987,-5856.5"/>
<text text-anchor="start" x="995" y="-5971.3" font-family="Times,serif" font-size="14.00">COUNT:34378546&lt;bb 28&gt;:</text>
<polyline fill="none" stroke="black" points="987,-5963.5 1311,-5963.5 "/>
<text text-anchor="start" x="995" y="-5948.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="987,-5940.5 1311,-5940.5 "/>
<text text-anchor="start" x="995" y="-5925.3" font-family="Times,serif" font-size="14.00">_121 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="987,-5917.5 1311,-5917.5 "/>
<text text-anchor="start" x="995" y="-5902.3" font-family="Times,serif" font-size="14.00">_122 = &amp;MEM[(struct PyBytesObject *)_121].ob_sval;</text>
<polyline fill="none" stroke="black" points="987,-5894.5 1311,-5894.5 "/>
<text text-anchor="start" x="995" y="-5879.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_buffer_raw = _122;</text>
<text text-anchor="start" x="995" y="-5864.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 32&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_27&#45;&gt;fn_220_basic_block_28 -->
<g id="edge41" class="edge">
<title>fn_220_basic_block_27:s&#45;&gt;fn_220_basic_block_28:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1422,-6431C1422,-6393.89 1288.87,-6406.6 1263,-6380 1138.69,-6252.2 1148.58,-6172.16 1148.99,-5997.51"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1152.49,-5997.5 1149,-5987.5 1145.49,-5997.5 1152.49,-5997.5"/>
<text text-anchor="middle" x="1174.5" y="-6189.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_29 -->
<g id="node33" class="node">
<title>fn_220_basic_block_29</title>
<polygon fill="lightgrey" stroke="black" points="1272,-6219.5 1272,-6379.5 1572,-6379.5 1572,-6219.5 1272,-6219.5"/>
<text text-anchor="start" x="1280" y="-6364.3" font-family="Times,serif" font-size="14.00">COUNT:80216610&lt;bb 29&gt;:</text>
<polyline fill="none" stroke="black" points="1272,-6356.5 1572,-6356.5 "/>
<text text-anchor="start" x="1280" y="-6341.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1272,-6333.5 1572,-6333.5 "/>
<text text-anchor="start" x="1280" y="-6318.3" font-family="Times,serif" font-size="14.00">_123 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1272,-6310.5 1572,-6310.5 "/>
<text text-anchor="start" x="1280" y="-6295.3" font-family="Times,serif" font-size="14.00">_124 = MEM[(struct PyVarObject *)_123].ob_size;</text>
<polyline fill="none" stroke="black" points="1272,-6287.5 1572,-6287.5 "/>
<text text-anchor="start" x="1280" y="-6272.3" font-family="Times,serif" font-size="14.00">if (_124 != 0)</text>
<text text-anchor="start" x="1280" y="-6257.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 30&gt;; [50.00%]</text>
<text text-anchor="start" x="1280" y="-6242.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1280" y="-6227.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 31&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_27&#45;&gt;fn_220_basic_block_29 -->
<g id="edge42" class="edge">
<title>fn_220_basic_block_27:s&#45;&gt;fn_220_basic_block_29:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1422,-6431C1422,-6412.23 1422,-6405.12 1422,-6390.35"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1425.5,-6390 1422,-6380 1418.5,-6390 1425.5,-6390"/>
<text text-anchor="middle" x="1439.5" y="-6401.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_46 -->
<g id="node34" class="node">
<title>fn_220_basic_block_46</title>
<polygon fill="lightgrey" stroke="black" points="2184,-1296.5 2184,-1502.5 2538,-1502.5 2538,-1296.5 2184,-1296.5"/>
<text text-anchor="start" x="2192" y="-1487.3" font-family="Times,serif" font-size="14.00">COUNT:117856627&lt;bb 46&gt;:</text>
<polyline fill="none" stroke="black" points="2184,-1479.5 2538,-1479.5 "/>
<text text-anchor="start" x="2192" y="-1464.3" font-family="Times,serif" font-size="14.00"># _154 = PHI &lt;&#45;1(40), iftmp.10_147(42), iftmp.10_147(45)&gt;</text>
<polyline fill="none" stroke="black" points="2184,-1456.5 2538,-1456.5 "/>
<text text-anchor="start" x="2192" y="-1441.3" font-family="Times,serif" font-size="14.00">_310 = _154;</text>
<polyline fill="none" stroke="black" points="2184,-1433.5 2538,-1433.5 "/>
<text text-anchor="start" x="2192" y="-1418.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2184,-1410.5 2538,-1410.5 "/>
<text text-anchor="start" x="2192" y="-1395.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2184,-1387.5 2538,-1387.5 "/>
<text text-anchor="start" x="2192" y="-1372.3" font-family="Times,serif" font-size="14.00">_131 = _310;</text>
<polyline fill="none" stroke="black" points="2184,-1364.5 2538,-1364.5 "/>
<text text-anchor="start" x="2192" y="-1349.3" font-family="Times,serif" font-size="14.00">if (_131 &lt; 0)</text>
<text text-anchor="start" x="2192" y="-1334.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 48&gt;; [0.73%]</text>
<text text-anchor="start" x="2192" y="-1319.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2192" y="-1304.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 47&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_40&#45;&gt;fn_220_basic_block_46 -->
<g id="edge61" class="edge">
<title>fn_220_basic_block_40:s&#45;&gt;fn_220_basic_block_46:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2211,-2372C2211,-2354.51 2231.51,-2363.81 2246,-2354 2264.52,-2341.46 2269.09,-2337.68 2284,-2321 2436.48,-2150.41 2491.39,-2109.59 2576,-1897 2604.31,-1825.85 2657.39,-1613.35 2609,-1554 2601.14,-1544.35 2413.05,-1522.86 2369.81,-1508.3"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2371.37,-1505.16 2361,-1503 2367.76,-1511.15 2371.37,-1505.16"/>
<text text-anchor="middle" x="2581" y="-1918.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_41 -->
<g id="node35" class="node">
<title>fn_220_basic_block_41</title>
<polygon fill="lightgrey" stroke="black" points="2095.5,-2183.5 2095.5,-2297.5 2274.5,-2297.5 2274.5,-2183.5 2095.5,-2183.5"/>
<text text-anchor="start" x="2103.5" y="-2282.3" font-family="Times,serif" font-size="14.00">COUNT:116996274&lt;bb 41&gt;:</text>
<polyline fill="none" stroke="black" points="2095.5,-2274.5 2274.5,-2274.5 "/>
<text text-anchor="start" x="2103.5" y="-2259.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2095.5,-2251.5 2274.5,-2251.5 "/>
<text text-anchor="start" x="2103.5" y="-2236.3" font-family="Times,serif" font-size="14.00">if (_141 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="2103.5" y="-2221.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 42&gt;; [30.00%]</text>
<text text-anchor="start" x="2103.5" y="-2206.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2103.5" y="-2191.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 43&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_40&#45;&gt;fn_220_basic_block_41 -->
<g id="edge62" class="edge">
<title>fn_220_basic_block_40:s&#45;&gt;fn_220_basic_block_41:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2211,-2372C2211,-2341 2190.2,-2334.37 2185.81,-2308.52"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2189.29,-2308.19 2185,-2298.5 2182.31,-2308.75 2189.29,-2308.19"/>
<text text-anchor="middle" x="2224.5" y="-2342.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_66 -->
<g id="node36" class="node">
<title>fn_220_basic_block_66</title>
<polygon fill="lightgrey" stroke="black" points="2215,-214.5 2215,-306.5 2393,-306.5 2393,-214.5 2215,-214.5"/>
<text text-anchor="start" x="2223" y="-291.3" font-family="Times,serif" font-size="14.00">COUNT:674209228&lt;bb 66&gt;:</text>
<polyline fill="none" stroke="black" points="2215,-283.5 2393,-283.5 "/>
<text text-anchor="start" x="2223" y="-268.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2215,-260.5 2393,-260.5 "/>
<text text-anchor="start" x="2223" y="-245.3" font-family="Times,serif" font-size="14.00">start_61 = i_25 + 1;</text>
<polyline fill="none" stroke="black" points="2215,-237.5 2393,-237.5 "/>
<text text-anchor="start" x="2223" y="-222.3" font-family="Times,serif" font-size="14.00"># DEBUG start =&gt; start_61</text>
</g>
<!-- fn_220_basic_block_50&#45;&gt;fn_220_basic_block_66 -->
<g id="edge76" class="edge">
<title>fn_220_basic_block_50:s&#45;&gt;fn_220_basic_block_66:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2340,-418.5C2340,-369.99 2308.75,-360.29 2304.48,-317.08"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2307.97,-316.82 2304,-307 2300.98,-317.16 2307.97,-316.82"/>
<text text-anchor="middle" x="2330" y="-328.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_61 -->
<g id="node37" class="node">
<title>fn_220_basic_block_61</title>
<polygon fill="lightgrey" stroke="black" points="1197,-1296.5 1197,-1502.5 1551,-1502.5 1551,-1296.5 1197,-1296.5"/>
<text text-anchor="start" x="1205" y="-1487.3" font-family="Times,serif" font-size="14.00">COUNT:228780509&lt;bb 61&gt;:</text>
<polyline fill="none" stroke="black" points="1197,-1479.5 1551,-1479.5 "/>
<text text-anchor="start" x="1205" y="-1464.3" font-family="Times,serif" font-size="14.00"># _181 = PHI &lt;&#45;1(55), iftmp.10_174(57), iftmp.10_174(60)&gt;</text>
<polyline fill="none" stroke="black" points="1197,-1456.5 1551,-1456.5 "/>
<text text-anchor="start" x="1205" y="-1441.3" font-family="Times,serif" font-size="14.00">_301 = _181;</text>
<polyline fill="none" stroke="black" points="1197,-1433.5 1551,-1433.5 "/>
<text text-anchor="start" x="1205" y="-1418.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1197,-1410.5 1551,-1410.5 "/>
<text text-anchor="start" x="1205" y="-1395.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1197,-1387.5 1551,-1387.5 "/>
<text text-anchor="start" x="1205" y="-1372.3" font-family="Times,serif" font-size="14.00">_158 = _301;</text>
<polyline fill="none" stroke="black" points="1197,-1364.5 1551,-1364.5 "/>
<text text-anchor="start" x="1205" y="-1349.3" font-family="Times,serif" font-size="14.00">if (_158 &lt; 0)</text>
<text text-anchor="start" x="1205" y="-1334.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 63&gt;; [0.73%]</text>
<text text-anchor="start" x="1205" y="-1319.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1205" y="-1304.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 62&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_55&#45;&gt;fn_220_basic_block_61 -->
<g id="edge83" class="edge">
<title>fn_220_basic_block_55:s&#45;&gt;fn_220_basic_block_61:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1366,-2372C1366,-2329.08 1315,-2350.68 1284,-2321 1119.09,-2163.11 1077.39,-2109.53 994,-1897 967.57,-1829.65 981.62,-1807.41 970,-1736 966.3,-1713.28 963.01,-1707.93 961,-1685 958.46,-1656 941.72,-1575.81 961,-1554 975,-1538.17 1308.47,-1527.98 1365.68,-1508.69"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1367.73,-1511.54 1374,-1503 1363.77,-1505.76 1367.73,-1511.54"/>
<text text-anchor="middle" x="1020" y="-1918.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_56 -->
<g id="node38" class="node">
<title>fn_220_basic_block_56</title>
<polygon fill="lightgrey" stroke="black" points="1292.5,-2183.5 1292.5,-2297.5 1471.5,-2297.5 1471.5,-2183.5 1292.5,-2183.5"/>
<text text-anchor="start" x="1300.5" y="-2282.3" font-family="Times,serif" font-size="14.00">COUNT:227110411&lt;bb 56&gt;:</text>
<polyline fill="none" stroke="black" points="1292.5,-2274.5 1471.5,-2274.5 "/>
<text text-anchor="start" x="1300.5" y="-2259.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1292.5,-2251.5 1471.5,-2251.5 "/>
<text text-anchor="start" x="1300.5" y="-2236.3" font-family="Times,serif" font-size="14.00">if (_168 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="1300.5" y="-2221.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 57&gt;; [30.00%]</text>
<text text-anchor="start" x="1300.5" y="-2206.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1300.5" y="-2191.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 58&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_55&#45;&gt;fn_220_basic_block_56 -->
<g id="edge84" class="edge">
<title>fn_220_basic_block_55:s&#45;&gt;fn_220_basic_block_56:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1366,-2372C1366,-2342.22 1378.69,-2333.7 1381.47,-2308.58"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1384.97,-2308.67 1382,-2298.5 1377.98,-2308.3 1384.97,-2308.67"/>
<text text-anchor="middle" x="1389.5" y="-2342.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_65&#45;&gt;fn_220_basic_block_66 -->
<g id="edge98" class="edge">
<title>fn_220_basic_block_65:s&#45;&gt;fn_220_basic_block_66:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2144,-426.5C2144,-358.33 2200.95,-360.74 2259,-325 2273.33,-316.18 2292.74,-323.3 2300.54,-316.57"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2303.89,-317.59 2304,-307 2297.31,-315.21 2303.89,-317.59"/>
<text text-anchor="middle" x="2280" y="-328.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_28&#45;&gt;fn_220_basic_block_32 -->
<g id="edge43" class="edge">
<title>fn_220_basic_block_28:s&#45;&gt;fn_220_basic_block_32:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1149,-5855.5C1149,-5783.58 1291.04,-5857.62 1304.91,-5799.96"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1308.39,-5800.32 1306,-5790 1301.44,-5799.56 1308.39,-5800.32"/>
<text text-anchor="middle" x="1322" y="-5811.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_30 -->
<g id="node39" class="node">
<title>fn_220_basic_block_30</title>
<polygon fill="lightgrey" stroke="black" points="1362,-6087.5 1362,-6133.5 1750,-6133.5 1750,-6087.5 1362,-6087.5"/>
<text text-anchor="start" x="1370" y="-6118.3" font-family="Times,serif" font-size="14.00">COUNT:40108305&lt;bb 30&gt;:</text>
<polyline fill="none" stroke="black" points="1362,-6110.5 1750,-6110.5 "/>
<text text-anchor="start" x="1370" y="-6095.3" font-family="Times,serif" font-size="14.00">iftmp.11_125 = MEM[(struct PyByteArrayObject *)_123].ob_start;</text>
</g>
<!-- fn_220_basic_block_29&#45;&gt;fn_220_basic_block_30 -->
<g id="edge44" class="edge">
<title>fn_220_basic_block_29:s&#45;&gt;fn_220_basic_block_30:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1422,-6219C1422,-6152.3 1542.24,-6199.32 1554.92,-6144.62"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1558.42,-6144.81 1556,-6134.5 1551.46,-6144.07 1558.42,-6144.81"/>
<text text-anchor="middle" x="1458.5" y="-6189.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_31 -->
<g id="node40" class="node">
<title>fn_220_basic_block_31</title>
<polygon fill="lightgrey" stroke="black" points="1329,-5887 1329,-5956 1783,-5956 1783,-5887 1329,-5887"/>
<text text-anchor="start" x="1337" y="-5940.8" font-family="Times,serif" font-size="14.00">COUNT:80216610&lt;bb 31&gt;:</text>
<polyline fill="none" stroke="black" points="1329,-5933 1783,-5933 "/>
<text text-anchor="start" x="1337" y="-5917.8" font-family="Times,serif" font-size="14.00"># iftmp.11_126 = PHI &lt;&amp;_PyByteArray_empty_string(29), iftmp.11_125(30)&gt;</text>
<polyline fill="none" stroke="black" points="1329,-5910 1783,-5910 "/>
<text text-anchor="start" x="1337" y="-5894.8" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_buffer_raw = iftmp.11_126;</text>
</g>
<!-- fn_220_basic_block_29&#45;&gt;fn_220_basic_block_31 -->
<g id="edge45" class="edge">
<title>fn_220_basic_block_29:s&#45;&gt;fn_220_basic_block_31:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1422,-6219C1422,-6167.52 1345.23,-6211.69 1318,-6168 1290.96,-6124.63 1289.37,-6095.34 1318,-6053 1379.85,-5961.54 1545.22,-6064.62 1555.5,-5967.53"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1559,-5967.66 1556,-5957.5 1552.01,-5967.31 1559,-5967.66"/>
<text text-anchor="middle" x="1335.5" y="-6106.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_46&#45;&gt;fn_220_basic_block_47 -->
<g id="edge71" class="edge">
<title>fn_220_basic_block_46:s&#45;&gt;fn_220_basic_block_47:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2361,-1296C2361,-1277.23 2361,-1270.12 2361,-1255.35"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2364.5,-1255 2361,-1245 2357.5,-1255 2364.5,-1255"/>
<text text-anchor="middle" x="2378.5" y="-1266.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_46&#45;&gt;fn_220_basic_block_48 -->
<g id="edge70" class="edge">
<title>fn_220_basic_block_46:s&#45;&gt;fn_220_basic_block_48:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2361,-1296C2361,-1259.74 2227.26,-1274.38 2206,-1245 2127.83,-1136.99 2134.87,-1057.78 2206,-945 2244.73,-883.58 2350.02,-941.12 2360.2,-881.19"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2363.71,-881.24 2361,-871 2356.73,-880.7 2363.71,-881.24"/>
<text text-anchor="middle" x="2220" y="-1091.3" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_42 -->
<g id="node41" class="node">
<title>fn_220_basic_block_42</title>
<polygon fill="lightgrey" stroke="black" points="1804,-1554.5 1804,-1684.5 2128,-1684.5 2128,-1554.5 1804,-1554.5"/>
<text text-anchor="start" x="1812" y="-1669.3" font-family="Times,serif" font-size="14.00">COUNT:35098882&lt;bb 42&gt;:</text>
<polyline fill="none" stroke="black" points="1804,-1661.5 2128,-1661.5 "/>
<text text-anchor="start" x="1812" y="-1646.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1804,-1638.5 2128,-1638.5 "/>
<text text-anchor="start" x="1812" y="-1623.3" font-family="Times,serif" font-size="14.00">_148 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1804,-1615.5 2128,-1615.5 "/>
<text text-anchor="start" x="1812" y="-1600.3" font-family="Times,serif" font-size="14.00">_149 = &amp;MEM[(struct PyBytesObject *)_148].ob_sval;</text>
<polyline fill="none" stroke="black" points="1804,-1592.5 2128,-1592.5 "/>
<text text-anchor="start" x="1812" y="-1577.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_buffer_raw = _149;</text>
<text text-anchor="start" x="1812" y="-1562.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 46&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_41&#45;&gt;fn_220_basic_block_42 -->
<g id="edge63" class="edge">
<title>fn_220_basic_block_41:s&#45;&gt;fn_220_basic_block_42:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2185,-2182.5C2185,-2104.65 2072.44,-2171.48 2026,-2109 1914.52,-1959.01 1964.12,-1878.27 1965.95,-1695.21"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1969.45,-1695.02 1966,-1685 1962.45,-1694.98 1969.45,-1695.02"/>
<text text-anchor="middle" x="1971.5" y="-1918.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_43 -->
<g id="node42" class="node">
<title>fn_220_basic_block_43</title>
<polygon fill="lightgrey" stroke="black" points="2035,-1948.5 2035,-2108.5 2335,-2108.5 2335,-1948.5 2035,-1948.5"/>
<text text-anchor="start" x="2043" y="-2093.3" font-family="Times,serif" font-size="14.00">COUNT:81897392&lt;bb 43&gt;:</text>
<polyline fill="none" stroke="black" points="2035,-2085.5 2335,-2085.5 "/>
<text text-anchor="start" x="2043" y="-2070.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2035,-2062.5 2335,-2062.5 "/>
<text text-anchor="start" x="2043" y="-2047.3" font-family="Times,serif" font-size="14.00">_150 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="2035,-2039.5 2335,-2039.5 "/>
<text text-anchor="start" x="2043" y="-2024.3" font-family="Times,serif" font-size="14.00">_151 = MEM[(struct PyVarObject *)_150].ob_size;</text>
<polyline fill="none" stroke="black" points="2035,-2016.5 2335,-2016.5 "/>
<text text-anchor="start" x="2043" y="-2001.3" font-family="Times,serif" font-size="14.00">if (_151 != 0)</text>
<text text-anchor="start" x="2043" y="-1986.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 44&gt;; [50.00%]</text>
<text text-anchor="start" x="2043" y="-1971.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2043" y="-1956.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 45&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_41&#45;&gt;fn_220_basic_block_43 -->
<g id="edge64" class="edge">
<title>fn_220_basic_block_41:s&#45;&gt;fn_220_basic_block_43:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2185,-2182.5C2185,-2153.53 2185,-2143.83 2185,-2119.23"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2188.5,-2119 2185,-2109 2181.5,-2119 2188.5,-2119"/>
<text text-anchor="middle" x="2202.5" y="-2130.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_66&#45;&gt;fn_220_basic_block_67 -->
<g id="edge99" class="edge">
<title>fn_220_basic_block_66:s&#45;&gt;fn_220_basic_block_67:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2304,-214C2304,-189.54 2392.05,-190.24 2414.06,-172.07"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2417.29,-173.46 2419,-163 2411.14,-170.11 2417.29,-173.46"/>
<text text-anchor="middle" x="2415" y="-184.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_61&#45;&gt;fn_220_basic_block_62 -->
<g id="edge93" class="edge">
<title>fn_220_basic_block_61:s&#45;&gt;fn_220_basic_block_62:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1374,-1296C1374,-1261.41 1508.69,-1278.97 1533.95,-1254.16"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1537.16,-1255.56 1538,-1245 1530.75,-1252.73 1537.16,-1255.56"/>
<text text-anchor="middle" x="1531.5" y="-1266.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_61&#45;&gt;fn_220_basic_block_63 -->
<g id="edge92" class="edge">
<title>fn_220_basic_block_61:s&#45;&gt;fn_220_basic_block_63:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1374,-1296C1374,-1217.97 1340.53,-1010.46 1383,-945 1422.52,-884.09 1527.09,-941.17 1537.21,-881.19"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1540.72,-881.24 1538,-871 1533.74,-880.7 1540.72,-881.24"/>
<text text-anchor="middle" x="1397" y="-1091.3" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_57 -->
<g id="node43" class="node">
<title>fn_220_basic_block_57</title>
<polygon fill="lightgrey" stroke="black" points="1442,-1554.5 1442,-1684.5 1766,-1684.5 1766,-1554.5 1442,-1554.5"/>
<text text-anchor="start" x="1450" y="-1669.3" font-family="Times,serif" font-size="14.00">COUNT:68133122&lt;bb 57&gt;:</text>
<polyline fill="none" stroke="black" points="1442,-1661.5 1766,-1661.5 "/>
<text text-anchor="start" x="1450" y="-1646.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1442,-1638.5 1766,-1638.5 "/>
<text text-anchor="start" x="1450" y="-1623.3" font-family="Times,serif" font-size="14.00">_175 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1442,-1615.5 1766,-1615.5 "/>
<text text-anchor="start" x="1450" y="-1600.3" font-family="Times,serif" font-size="14.00">_176 = &amp;MEM[(struct PyBytesObject *)_175].ob_sval;</text>
<polyline fill="none" stroke="black" points="1442,-1592.5 1766,-1592.5 "/>
<text text-anchor="start" x="1450" y="-1577.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_buffer_raw = _176;</text>
<text text-anchor="start" x="1450" y="-1562.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 61&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_56&#45;&gt;fn_220_basic_block_57 -->
<g id="edge85" class="edge">
<title>fn_220_basic_block_56:s&#45;&gt;fn_220_basic_block_57:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1382,-2182.5C1382,-2143.57 1517.67,-2140.16 1541,-2109 1653.12,-1959.25 1605.8,-1878.46 1604.05,-1695.22"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1607.55,-1694.98 1604,-1685 1600.55,-1695.02 1607.55,-1694.98"/>
<text text-anchor="middle" x="1632.5" y="-1918.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_58 -->
<g id="node44" class="node">
<title>fn_220_basic_block_58</title>
<polygon fill="lightgrey" stroke="black" points="1232,-1948.5 1232,-2108.5 1532,-2108.5 1532,-1948.5 1232,-1948.5"/>
<text text-anchor="start" x="1240" y="-2093.3" font-family="Times,serif" font-size="14.00">COUNT:158977289&lt;bb 58&gt;:</text>
<polyline fill="none" stroke="black" points="1232,-2085.5 1532,-2085.5 "/>
<text text-anchor="start" x="1240" y="-2070.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1232,-2062.5 1532,-2062.5 "/>
<text text-anchor="start" x="1240" y="-2047.3" font-family="Times,serif" font-size="14.00">_177 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1232,-2039.5 1532,-2039.5 "/>
<text text-anchor="start" x="1240" y="-2024.3" font-family="Times,serif" font-size="14.00">_178 = MEM[(struct PyVarObject *)_177].ob_size;</text>
<polyline fill="none" stroke="black" points="1232,-2016.5 1532,-2016.5 "/>
<text text-anchor="start" x="1240" y="-2001.3" font-family="Times,serif" font-size="14.00">if (_178 != 0)</text>
<text text-anchor="start" x="1240" y="-1986.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 59&gt;; [50.00%]</text>
<text text-anchor="start" x="1240" y="-1971.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1240" y="-1956.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 60&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_56&#45;&gt;fn_220_basic_block_58 -->
<g id="edge86" class="edge">
<title>fn_220_basic_block_56:s&#45;&gt;fn_220_basic_block_58:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1382,-2182.5C1382,-2153.53 1382,-2143.83 1382,-2119.23"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1385.5,-2119 1382,-2109 1378.5,-2119 1385.5,-2119"/>
<text text-anchor="middle" x="1399.5" y="-2130.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_30&#45;&gt;fn_220_basic_block_31 -->
<g id="edge46" class="edge">
<title>fn_220_basic_block_30:s&#45;&gt;fn_220_basic_block_31:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1556,-6086.5C1556,-6032.75 1556,-6016.79 1556,-5967.77"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1559.5,-5967.5 1556,-5957.5 1552.5,-5967.5 1559.5,-5967.5"/>
<text text-anchor="middle" x="1577" y="-6023.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_31&#45;&gt;fn_220_basic_block_32 -->
<g id="edge47" class="edge">
<title>fn_220_basic_block_31:s&#45;&gt;fn_220_basic_block_32:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1556,-5885.5C1556,-5878.91 1359.43,-5814.76 1314.9,-5795.13"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1316.41,-5791.96 1306,-5790 1312.91,-5798.03 1316.41,-5791.96"/>
<text text-anchor="middle" x="1407" y="-5811.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_42&#45;&gt;fn_220_basic_block_46 -->
<g id="edge65" class="edge">
<title>fn_220_basic_block_42:s&#45;&gt;fn_220_basic_block_46:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1966,-1554C1966,-1533.82 2294.62,-1526.43 2352.38,-1508.5"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2354.45,-1511.33 2361,-1503 2350.69,-1505.43 2354.45,-1511.33"/>
<text text-anchor="middle" x="2276" y="-1524.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_44 -->
<g id="node45" class="node">
<title>fn_220_basic_block_44</title>
<polygon fill="lightgrey" stroke="black" points="2179,-1793.5 2179,-1839.5 2567,-1839.5 2567,-1793.5 2179,-1793.5"/>
<text text-anchor="start" x="2187" y="-1824.3" font-family="Times,serif" font-size="14.00">COUNT:40948696&lt;bb 44&gt;:</text>
<polyline fill="none" stroke="black" points="2179,-1816.5 2567,-1816.5 "/>
<text text-anchor="start" x="2187" y="-1801.3" font-family="Times,serif" font-size="14.00">iftmp.11_152 = MEM[(struct PyByteArrayObject *)_150].ob_start;</text>
</g>
<!-- fn_220_basic_block_43&#45;&gt;fn_220_basic_block_44 -->
<g id="edge66" class="edge">
<title>fn_220_basic_block_43:s&#45;&gt;fn_220_basic_block_44:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2185,-1948C2185,-1855.32 2359.31,-1930.69 2372.24,-1850.49"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2375.73,-1850.74 2373,-1840.5 2368.75,-1850.21 2375.73,-1850.74"/>
<text text-anchor="middle" x="2212.5" y="-1918.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_45 -->
<g id="node46" class="node">
<title>fn_220_basic_block_45</title>
<polygon fill="lightgrey" stroke="black" points="2146,-1585 2146,-1654 2600,-1654 2600,-1585 2146,-1585"/>
<text text-anchor="start" x="2154" y="-1638.8" font-family="Times,serif" font-size="14.00">COUNT:81897392&lt;bb 45&gt;:</text>
<polyline fill="none" stroke="black" points="2146,-1631 2600,-1631 "/>
<text text-anchor="start" x="2154" y="-1615.8" font-family="Times,serif" font-size="14.00"># iftmp.11_153 = PHI &lt;&amp;_PyByteArray_empty_string(43), iftmp.11_152(44)&gt;</text>
<polyline fill="none" stroke="black" points="2146,-1608 2600,-1608 "/>
<text text-anchor="start" x="2154" y="-1592.8" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_buffer_raw = iftmp.11_153;</text>
</g>
<!-- fn_220_basic_block_43&#45;&gt;fn_220_basic_block_45 -->
<g id="edge67" class="edge">
<title>fn_220_basic_block_43:s&#45;&gt;fn_220_basic_block_45:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2185,-1948C2185,-1916.26 2147,-1926.39 2135,-1897 2107.94,-1830.76 2093.29,-1794.14 2135,-1736 2197.99,-1648.19 2361.97,-1759.53 2372.47,-1665.58"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2375.97,-1665.67 2373,-1655.5 2368.98,-1665.3 2375.97,-1665.67"/>
<text text-anchor="middle" x="2152.5" y="-1812.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_57&#45;&gt;fn_220_basic_block_61 -->
<g id="edge87" class="edge">
<title>fn_220_basic_block_57:s&#45;&gt;fn_220_basic_block_61:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1604,-1554C1604,-1530.53 1419.15,-1529.19 1380.88,-1510.31"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1383.41,-1507.88 1374,-1503 1378.31,-1512.68 1383.41,-1507.88"/>
<text text-anchor="middle" x="1569" y="-1524.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_59 -->
<g id="node47" class="node">
<title>fn_220_basic_block_59</title>
<polygon fill="lightgrey" stroke="black" points="1003,-1793.5 1003,-1839.5 1391,-1839.5 1391,-1793.5 1003,-1793.5"/>
<text text-anchor="start" x="1011" y="-1824.3" font-family="Times,serif" font-size="14.00">COUNT:79488645&lt;bb 59&gt;:</text>
<polyline fill="none" stroke="black" points="1003,-1816.5 1391,-1816.5 "/>
<text text-anchor="start" x="1011" y="-1801.3" font-family="Times,serif" font-size="14.00">iftmp.11_179 = MEM[(struct PyByteArrayObject *)_177].ob_start;</text>
</g>
<!-- fn_220_basic_block_58&#45;&gt;fn_220_basic_block_59 -->
<g id="edge88" class="edge">
<title>fn_220_basic_block_58:s&#45;&gt;fn_220_basic_block_59:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1382,-1948C1382,-1856.62 1211.17,-1929.41 1197.82,-1850.85"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1201.28,-1850.19 1197,-1840.5 1194.31,-1850.75 1201.28,-1850.19"/>
<text text-anchor="middle" x="1395.5" y="-1918.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_60 -->
<g id="node48" class="node">
<title>fn_220_basic_block_60</title>
<polygon fill="lightgrey" stroke="black" points="970,-1585 970,-1654 1424,-1654 1424,-1585 970,-1585"/>
<text text-anchor="start" x="978" y="-1638.8" font-family="Times,serif" font-size="14.00">COUNT:158977289&lt;bb 60&gt;:</text>
<polyline fill="none" stroke="black" points="970,-1631 1424,-1631 "/>
<text text-anchor="start" x="978" y="-1615.8" font-family="Times,serif" font-size="14.00"># iftmp.11_180 = PHI &lt;&amp;_PyByteArray_empty_string(58), iftmp.11_179(59)&gt;</text>
<polyline fill="none" stroke="black" points="970,-1608 1424,-1608 "/>
<text text-anchor="start" x="978" y="-1592.8" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_buffer_raw = iftmp.11_180;</text>
</g>
<!-- fn_220_basic_block_58&#45;&gt;fn_220_basic_block_60 -->
<g id="edge89" class="edge">
<title>fn_220_basic_block_58:s&#45;&gt;fn_220_basic_block_60:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1382,-1948C1382,-1930.51 1407.89,-1944.93 1417,-1930 1444.61,-1884.75 1707.72,-2145.89 1400,-1736 1343.89,-1661.26 1207.62,-1745.8 1197.59,-1665.53"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1201.08,-1665.28 1197,-1655.5 1194.09,-1665.69 1201.08,-1665.28"/>
<text text-anchor="middle" x="1531.5" y="-1812.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_44&#45;&gt;fn_220_basic_block_45 -->
<g id="edge68" class="edge">
<title>fn_220_basic_block_44:s&#45;&gt;fn_220_basic_block_45:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2373,-1792.5C2373,-1735.18 2373,-1718.33 2373,-1665.75"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2376.5,-1665.5 2373,-1655.5 2369.5,-1665.5 2376.5,-1665.5"/>
<text text-anchor="middle" x="2394" y="-1706.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_45&#45;&gt;fn_220_basic_block_46 -->
<g id="edge69" class="edge">
<title>fn_220_basic_block_45:s&#45;&gt;fn_220_basic_block_46:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2373,-1583.5C2373,-1551 2363.31,-1541.12 2361.35,-1513.21"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2364.84,-1512.88 2361,-1503 2357.84,-1513.11 2364.84,-1512.88"/>
<text text-anchor="middle" x="2385" y="-1524.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_59&#45;&gt;fn_220_basic_block_60 -->
<g id="edge90" class="edge">
<title>fn_220_basic_block_59:s&#45;&gt;fn_220_basic_block_60:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1197,-1792.5C1197,-1735.18 1197,-1718.33 1197,-1665.75"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1200.5,-1665.5 1197,-1655.5 1193.5,-1665.5 1200.5,-1665.5"/>
<text text-anchor="middle" x="1218" y="-1706.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_60&#45;&gt;fn_220_basic_block_61 -->
<g id="edge91" class="edge">
<title>fn_220_basic_block_60:s&#45;&gt;fn_220_basic_block_61:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1197,-1583.5C1197,-1543.83 1346.15,-1545.57 1370.62,-1512.7"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1374.02,-1513.59 1374,-1503 1367.41,-1511.29 1374.02,-1513.59"/>
<text text-anchor="middle" x="1379" y="-1524.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_0 -->
<g id="node49" class="node">
<title>fn_220_basic_block_0</title>
<polygon fill="white" stroke="black" points="263,-13364 206.86,-13346 263,-13328 319.14,-13346 263,-13364"/>
<polyline fill="none" stroke="black" points="218.29,-13349.66 218.29,-13342.34 "/>
<polyline fill="none" stroke="black" points="251.57,-13331.66 274.43,-13331.66 "/>
<polyline fill="none" stroke="black" points="307.71,-13342.34 307.71,-13349.66 "/>
<polyline fill="none" stroke="black" points="274.43,-13360.34 251.57,-13360.34 "/>
<text text-anchor="middle" x="263" y="-13342.3" font-family="Times,serif" font-size="14.00">ENTRY</text>
</g>
<!-- fn_220_basic_block_1 -->
<g id="node50" class="node">
<title>fn_220_basic_block_1</title>
<polygon fill="white" stroke="black" points="653,-111.5 609.6,-93.5 653,-75.5 696.4,-93.5 653,-111.5"/>
<polyline fill="none" stroke="black" points="620.68,-98.1 620.68,-88.9 "/>
<polyline fill="none" stroke="black" points="641.92,-80.1 664.08,-80.1 "/>
<polyline fill="none" stroke="black" points="685.32,-88.9 685.32,-98.1 "/>
<polyline fill="none" stroke="black" points="664.08,-106.9 641.92,-106.9 "/>
<text text-anchor="middle" x="653" y="-89.8" font-family="Times,serif" font-size="14.00">EXIT</text>
</g>
<!-- fn_220_basic_block_0&#45;&gt;fn_220_basic_block_1 -->
<!-- fn_220_basic_block_2 -->
<g id="node51" class="node">
<title>fn_220_basic_block_2</title>
<polygon fill="lightgrey" stroke="black" points="35.5,-12978.5 35.5,-13276.5 490.5,-13276.5 490.5,-12978.5 35.5,-12978.5"/>
<text text-anchor="start" x="43.5" y="-13261.3" font-family="Times,serif" font-size="14.00">COUNT:55854330&lt;bb 2&gt;:</text>
<polyline fill="none" stroke="black" points="35.5,-13253.5 490.5,-13253.5 "/>
<text text-anchor="start" x="43.5" y="-13238.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="35.5,-13230.5 490.5,-13230.5 "/>
<text text-anchor="start" x="43.5" y="-13215.3" font-family="Times,serif" font-size="14.00"># DEBUG start =&gt; 0</text>
<polyline fill="none" stroke="black" points="35.5,-13207.5 490.5,-13207.5 "/>
<text text-anchor="start" x="43.5" y="-13192.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="35.5,-13184.5 490.5,-13184.5 "/>
<text text-anchor="start" x="43.5" y="-13169.3" font-family="Times,serif" font-size="14.00"># DEBUG str =&gt; obj_37(D)</text>
<polyline fill="none" stroke="black" points="35.5,-13161.5 490.5,-13161.5 "/>
<text text-anchor="start" x="43.5" y="-13146.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; &amp;len</text>
<polyline fill="none" stroke="black" points="35.5,-13138.5 490.5,-13138.5 "/>
<text text-anchor="start" x="43.5" y="-13123.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY unicode_str_and_size</text>
<polyline fill="none" stroke="black" points="35.5,-13115.5 490.5,-13115.5 "/>
<text text-anchor="start" x="43.5" y="-13100.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="35.5,-13092.5 490.5,-13092.5 "/>
<text text-anchor="start" x="43.5" y="-13077.3" font-family="Times,serif" font-size="14.00">_64 = BIT_FIELD_REF &lt;MEM[(struct PyASCIIObject *)obj_37(D)], 8, 256&gt;;</text>
<polyline fill="none" stroke="black" points="35.5,-13069.5 490.5,-13069.5 "/>
<text text-anchor="start" x="43.5" y="-13054.3" font-family="Times,serif" font-size="14.00">_65 = _64 &amp; 96;</text>
<polyline fill="none" stroke="black" points="35.5,-13046.5 490.5,-13046.5 "/>
<text text-anchor="start" x="43.5" y="-13031.3" font-family="Times,serif" font-size="14.00">if (_65 == 96)</text>
<text text-anchor="start" x="43.5" y="-13016.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 3&gt;; [35.01%]</text>
<text text-anchor="start" x="43.5" y="-13001.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="43.5" y="-12986.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 4&gt;; [64.99%]</text>
</g>
<!-- fn_220_basic_block_0&#45;&gt;fn_220_basic_block_2 -->
<g id="edge1" class="edge">
<title>fn_220_basic_block_0:s&#45;&gt;fn_220_basic_block_2:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M263,-13328C263,-13309.23 263,-13302.12 263,-13287.35"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="266.5,-13287 263,-13277 259.5,-13287 266.5,-13287"/>
<text text-anchor="middle" x="284" y="-13298.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_3 -->
<g id="node52" class="node">
<title>fn_220_basic_block_3</title>
<polygon fill="lightgrey" stroke="black" points="378,-12773.5 378,-12926.5 710,-12926.5 710,-12773.5 378,-12773.5"/>
<text text-anchor="start" x="386" y="-12911.3" font-family="Times,serif" font-size="14.00">COUNT:19554601&lt;bb 3&gt;:</text>
<polyline fill="none" stroke="black" points="378,-12903.5 710,-12903.5 "/>
<text text-anchor="start" x="386" y="-12888.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="378,-12880.5 710,-12880.5 "/>
<text text-anchor="start" x="386" y="-12865.3" font-family="Times,serif" font-size="14.00">_66 = MEM[(struct PyASCIIObject *)obj_37(D)].length;</text>
<polyline fill="none" stroke="black" points="378,-12857.5 710,-12857.5 "/>
<text text-anchor="start" x="386" y="-12842.3" font-family="Times,serif" font-size="14.00">len = _66;</text>
<polyline fill="none" stroke="black" points="378,-12834.5 710,-12834.5 "/>
<text text-anchor="start" x="386" y="-12819.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="378,-12811.5 710,-12811.5 "/>
<text text-anchor="start" x="386" y="-12796.3" font-family="Times,serif" font-size="14.00">_67 = obj_37(D) + 48;</text>
<text text-anchor="start" x="386" y="-12781.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 5&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_2&#45;&gt;fn_220_basic_block_3 -->
<g id="edge2" class="edge">
<title>fn_220_basic_block_2:s&#45;&gt;fn_220_basic_block_3:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M263,-12978C263,-12918.25 512.04,-12982.05 541.22,-12936.78"/>
<polygon fill="black" stroke="black" stroke-width="2" points="544.63,-12937.58 544,-12927 537.9,-12935.66 544.63,-12937.58"/>
<text text-anchor="middle" x="546.5" y="-12948.8" font-family="Times,serif" font-size="14.00">[35%]</text>
</g>
<!-- fn_220_basic_block_4 -->
<g id="node53" class="node">
<title>fn_220_basic_block_4</title>
<polygon fill="lightgrey" stroke="black" points="38.5,-12815.5 38.5,-12884.5 359.5,-12884.5 359.5,-12815.5 38.5,-12815.5"/>
<text text-anchor="start" x="46.5" y="-12869.3" font-family="Times,serif" font-size="14.00">COUNT:36299729&lt;bb 4&gt;:</text>
<polyline fill="none" stroke="black" points="38.5,-12861.5 359.5,-12861.5 "/>
<text text-anchor="start" x="46.5" y="-12846.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="38.5,-12838.5 359.5,-12838.5 "/>
<text text-anchor="start" x="46.5" y="-12823.3" font-family="Times,serif" font-size="14.00">_68 = PyUnicode_AsUTF8AndSize (obj_37(D), &amp;len);</text>
</g>
<!-- fn_220_basic_block_2&#45;&gt;fn_220_basic_block_4 -->
<g id="edge3" class="edge">
<title>fn_220_basic_block_2:s&#45;&gt;fn_220_basic_block_4:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M263,-12978C263,-12963.95 246.27,-12970.57 237,-12960 215.01,-12934.91 201.76,-12924.95 199.39,-12896.08"/>
<polygon fill="black" stroke="black" stroke-width="2" points="202.88,-12895.86 199,-12886 195.89,-12896.13 202.88,-12895.86"/>
<text text-anchor="middle" x="254.5" y="-12948.8" font-family="Times,serif" font-size="14.00">[64%]</text>
</g>
<!-- fn_220_basic_block_5 -->
<g id="node54" class="node">
<title>fn_220_basic_block_5</title>
<polygon fill="lightgrey" stroke="black" points="152.5,-12515.5 152.5,-12721.5 337.5,-12721.5 337.5,-12515.5 152.5,-12515.5"/>
<text text-anchor="start" x="160.5" y="-12706.3" font-family="Times,serif" font-size="14.00">COUNT:55854330&lt;bb 5&gt;:</text>
<polyline fill="none" stroke="black" points="152.5,-12698.5 337.5,-12698.5 "/>
<text text-anchor="start" x="160.5" y="-12683.3" font-family="Times,serif" font-size="14.00"># _69 = PHI &lt;_67(3), _68(4)&gt;</text>
<polyline fill="none" stroke="black" points="152.5,-12675.5 337.5,-12675.5 "/>
<text text-anchor="start" x="160.5" y="-12660.3" font-family="Times,serif" font-size="14.00"># DEBUG str =&gt; NULL</text>
<polyline fill="none" stroke="black" points="152.5,-12652.5 337.5,-12652.5 "/>
<text text-anchor="start" x="160.5" y="-12637.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="152.5,-12629.5 337.5,-12629.5 "/>
<text text-anchor="start" x="160.5" y="-12614.3" font-family="Times,serif" font-size="14.00"># DEBUG buf =&gt; _69</text>
<polyline fill="none" stroke="black" points="152.5,-12606.5 337.5,-12606.5 "/>
<text text-anchor="start" x="160.5" y="-12591.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="152.5,-12583.5 337.5,-12583.5 "/>
<text text-anchor="start" x="160.5" y="-12568.3" font-family="Times,serif" font-size="14.00">if (_69 == 0B)</text>
<text text-anchor="start" x="160.5" y="-12553.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 96&gt;; [0.91%]</text>
<text text-anchor="start" x="160.5" y="-12538.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="160.5" y="-12523.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 6&gt;; [99.09%]</text>
</g>
<!-- fn_220_basic_block_3&#45;&gt;fn_220_basic_block_5 -->
<g id="edge4" class="edge">
<title>fn_220_basic_block_3:s&#45;&gt;fn_220_basic_block_5:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M544,-12773C544,-12742.26 295.25,-12753.21 251.52,-12729.79"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="254.1,-12727.42 245,-12722 248.73,-12731.91 254.1,-12727.42"/>
<text text-anchor="middle" x="507" y="-12743.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_4&#45;&gt;fn_220_basic_block_5 -->
<g id="edge5" class="edge">
<title>fn_220_basic_block_4:s&#45;&gt;fn_220_basic_block_5:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M199,-12814C199,-12772.03 237.76,-12768.11 244.12,-12732.39"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="247.65,-12732.26 245,-12722 240.67,-12731.67 247.65,-12732.26"/>
<text text-anchor="middle" x="262" y="-12743.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_6 -->
<g id="node55" class="node">
<title>fn_220_basic_block_6</title>
<polygon fill="lightgrey" stroke="black" points="208,-12119.5 208,-12463.5 438,-12463.5 438,-12119.5 208,-12119.5"/>
<text text-anchor="start" x="216" y="-12448.3" font-family="Times,serif" font-size="14.00">COUNT:55346056&lt;bb 6&gt;:</text>
<polyline fill="none" stroke="black" points="208,-12440.5 438,-12440.5 "/>
<text text-anchor="start" x="216" y="-12425.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="208,-12417.5 438,-12417.5 "/>
<text text-anchor="start" x="216" y="-12402.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_39(D)</text>
<polyline fill="none" stroke="black" points="208,-12394.5 438,-12394.5 "/>
<text text-anchor="start" x="216" y="-12379.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; &quot;\&quot;&quot;</text>
<polyline fill="none" stroke="black" points="208,-12371.5 438,-12371.5 "/>
<text text-anchor="start" x="216" y="-12356.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; 1</text>
<polyline fill="none" stroke="black" points="208,-12348.5 438,-12348.5 "/>
<text text-anchor="start" x="216" y="-12333.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_write</text>
<polyline fill="none" stroke="black" points="208,-12325.5 438,-12325.5 "/>
<text text-anchor="start" x="216" y="-12310.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="208,-12302.5 438,-12302.5 "/>
<text text-anchor="start" x="216" y="-12287.3" font-family="Times,serif" font-size="14.00">_74 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="208,-12279.5 438,-12279.5 "/>
<text text-anchor="start" x="216" y="-12264.3" font-family="Times,serif" font-size="14.00">required_75 = _74 + 1;</text>
<polyline fill="none" stroke="black" points="208,-12256.5 438,-12256.5 "/>
<text text-anchor="start" x="216" y="-12241.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; required_75</text>
<polyline fill="none" stroke="black" points="208,-12233.5 438,-12233.5 "/>
<text text-anchor="start" x="216" y="-12218.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="208,-12210.5 438,-12210.5 "/>
<text text-anchor="start" x="216" y="-12195.3" font-family="Times,serif" font-size="14.00">_76 = self_39(D)&#45;&gt;max_output_len;</text>
<polyline fill="none" stroke="black" points="208,-12187.5 438,-12187.5 "/>
<text text-anchor="start" x="216" y="-12172.3" font-family="Times,serif" font-size="14.00">if (required_75 &gt; _76)</text>
<text text-anchor="start" x="216" y="-12157.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 7&gt;; [50.00%]</text>
<text text-anchor="start" x="216" y="-12142.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="216" y="-12127.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 17&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_5&#45;&gt;fn_220_basic_block_6 -->
<g id="edge7" class="edge">
<title>fn_220_basic_block_5:s&#45;&gt;fn_220_basic_block_6:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M245,-12515C245,-12477.46 309.06,-12500.09 321.07,-12473.84"/>
<polygon fill="black" stroke="black" stroke-width="2" points="324.51,-12474.49 323,-12464 317.64,-12473.14 324.51,-12474.49"/>
<text text-anchor="middle" x="330.5" y="-12485.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_5&#45;&gt;fn_220_basic_block_96 -->
<g id="edge6" class="edge">
<title>fn_220_basic_block_5:s&#45;&gt;fn_220_basic_block_96:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M245,-12515C245,-12512.9 41,-12294.6 41,-12292.5 41,-12292.5 41,-12292.5 41,-6404.5 41,-6143.16 37,-6077.84 37,-5816.5 37,-5816.5 37,-5816.5 37,-449.5 37,-271.36 243.22,-359.46 418,-325 440.88,-320.49 609.41,-330.51 646,-314.25"/>
<polygon fill="black" stroke="black" stroke-width="2" points="648.58,-316.63 653,-307 643.54,-311.77 648.58,-316.63"/>
<text text-anchor="middle" x="55" y="-6401.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_7 -->
<g id="node56" class="node">
<title>fn_220_basic_block_7</title>
<polygon fill="lightgrey" stroke="black" points="172,-11516.5 172,-12067.5 474,-12067.5 474,-11516.5 172,-11516.5"/>
<text text-anchor="start" x="180" y="-12052.3" font-family="Times,serif" font-size="14.00">COUNT:27673028&lt;bb 7&gt;:</text>
<polyline fill="none" stroke="black" points="172,-12044.5 474,-12044.5 "/>
<text text-anchor="start" x="180" y="-12029.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="172,-12021.5 474,-12021.5 "/>
<text text-anchor="start" x="180" y="-12006.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_39(D)</text>
<polyline fill="none" stroke="black" points="172,-11998.5 474,-11998.5 "/>
<text text-anchor="start" x="180" y="-11983.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; required_75</text>
<polyline fill="none" stroke="black" points="172,-11975.5 474,-11975.5 "/>
<text text-anchor="start" x="180" y="-11960.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_resize</text>
<polyline fill="none" stroke="black" points="172,-11952.5 474,-11952.5 "/>
<text text-anchor="start" x="180" y="-11937.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="172,-11929.5 474,-11929.5 "/>
<text text-anchor="start" x="180" y="-11914.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="172,-11906.5 474,-11906.5 "/>
<text text-anchor="start" x="180" y="-11891.3" font-family="Times,serif" font-size="14.00">_86 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="172,-11883.5 474,-11883.5 "/>
<text text-anchor="start" x="180" y="-11868.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; _86</text>
<polyline fill="none" stroke="black" points="172,-11860.5 474,-11860.5 "/>
<text text-anchor="start" x="180" y="-11845.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="172,-11837.5 474,-11837.5 "/>
<text text-anchor="start" x="180" y="-11822.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY _Py_IS_TYPE</text>
<polyline fill="none" stroke="black" points="172,-11814.5 474,-11814.5 "/>
<text text-anchor="start" x="180" y="-11799.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="172,-11791.5 474,-11791.5 "/>
<text text-anchor="start" x="180" y="-11776.3" font-family="Times,serif" font-size="14.00">_87 = MEM[(const struct PyObject *)_86].ob_type;</text>
<polyline fill="none" stroke="black" points="172,-11768.5 474,-11768.5 "/>
<text text-anchor="start" x="180" y="-11753.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; NULL</text>
<polyline fill="none" stroke="black" points="172,-11745.5 474,-11745.5 "/>
<text text-anchor="start" x="180" y="-11730.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; NULL</text>
<polyline fill="none" stroke="black" points="172,-11722.5 474,-11722.5 "/>
<text text-anchor="start" x="180" y="-11707.3" font-family="Times,serif" font-size="14.00"># DEBUG is_bytes =&gt; _87 == &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="172,-11699.5 474,-11699.5 "/>
<text text-anchor="start" x="180" y="-11684.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="172,-11676.5 474,-11676.5 "/>
<text text-anchor="start" x="180" y="-11661.3" font-family="Times,serif" font-size="14.00">_88 = required_75 * 2;</text>
<polyline fill="none" stroke="black" points="172,-11653.5 474,-11653.5 "/>
<text text-anchor="start" x="180" y="-11638.3" font-family="Times,serif" font-size="14.00">_89 = MAX_EXPR &lt;_88, 8&gt;;</text>
<polyline fill="none" stroke="black" points="172,-11630.5 474,-11630.5 "/>
<text text-anchor="start" x="180" y="-11615.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;max_output_len = _89;</text>
<polyline fill="none" stroke="black" points="172,-11607.5 474,-11607.5 "/>
<text text-anchor="start" x="180" y="-11592.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="172,-11584.5 474,-11584.5 "/>
<text text-anchor="start" x="180" y="-11569.3" font-family="Times,serif" font-size="14.00">if (_87 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="180" y="-11554.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 8&gt;; [30.00%]</text>
<text text-anchor="start" x="180" y="-11539.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="180" y="-11524.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 9&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_6&#45;&gt;fn_220_basic_block_7 -->
<g id="edge8" class="edge">
<title>fn_220_basic_block_6:s&#45;&gt;fn_220_basic_block_7:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M323,-12119C323,-12100.23 323,-12093.12 323,-12078.35"/>
<polygon fill="black" stroke="black" stroke-width="2" points="326.5,-12078 323,-12068 319.5,-12078 326.5,-12078"/>
<text text-anchor="middle" x="340.5" y="-12089.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_17 -->
<g id="node66" class="node">
<title>fn_220_basic_block_17</title>
<polygon fill="lightgrey" stroke="black" points="975.5,-9901.5 975.5,-10200.5 1204.5,-10200.5 1204.5,-9901.5 975.5,-9901.5"/>
<text text-anchor="start" x="983.5" y="-10185.3" font-family="Times,serif" font-size="14.00">COUNT:55144043&lt;bb 17&gt;:</text>
<polyline fill="none" stroke="black" points="975.5,-10177.5 1204.5,-10177.5 "/>
<text text-anchor="start" x="983.5" y="-10162.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="975.5,-10154.5 1204.5,-10154.5 "/>
<text text-anchor="start" x="983.5" y="-10139.3" font-family="Times,serif" font-size="14.00">n.9_78 = 1;</text>
<polyline fill="none" stroke="black" points="975.5,-10131.5 1204.5,-10131.5 "/>
<text text-anchor="start" x="983.5" y="-10116.3" font-family="Times,serif" font-size="14.00">_79 = self_39(D)&#45;&gt;output_buffer_raw;</text>
<polyline fill="none" stroke="black" points="975.5,-10108.5 1204.5,-10108.5 "/>
<text text-anchor="start" x="983.5" y="-10093.3" font-family="Times,serif" font-size="14.00">_80 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="975.5,-10085.5 1204.5,-10085.5 "/>
<text text-anchor="start" x="983.5" y="-10070.3" font-family="Times,serif" font-size="14.00">_81 = (sizetype) _80;</text>
<polyline fill="none" stroke="black" points="975.5,-10062.5 1204.5,-10062.5 "/>
<text text-anchor="start" x="983.5" y="-10047.3" font-family="Times,serif" font-size="14.00">_82 = _79 + _81;</text>
<polyline fill="none" stroke="black" points="975.5,-10039.5 1204.5,-10039.5 "/>
<text text-anchor="start" x="983.5" y="-10024.3" font-family="Times,serif" font-size="14.00">memcpy (_82, &quot;\&quot;&quot;, n.9_78);</text>
<polyline fill="none" stroke="black" points="975.5,-10016.5 1204.5,-10016.5 "/>
<text text-anchor="start" x="983.5" y="-10001.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="975.5,-9993.5 1204.5,-9993.5 "/>
<text text-anchor="start" x="983.5" y="-9978.3" font-family="Times,serif" font-size="14.00">_83 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="975.5,-9970.5 1204.5,-9970.5 "/>
<text text-anchor="start" x="983.5" y="-9955.3" font-family="Times,serif" font-size="14.00">_84 = _83 + 1;</text>
<polyline fill="none" stroke="black" points="975.5,-9947.5 1204.5,-9947.5 "/>
<text text-anchor="start" x="983.5" y="-9932.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_len = _84;</text>
<polyline fill="none" stroke="black" points="975.5,-9924.5 1204.5,-9924.5 "/>
<text text-anchor="start" x="983.5" y="-9909.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
</g>
<!-- fn_220_basic_block_6&#45;&gt;fn_220_basic_block_17 -->
<g id="edge9" class="edge">
<title>fn_220_basic_block_6:s&#45;&gt;fn_220_basic_block_17:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M323,-12119C323,-12109.67 474.28,-12071.33 483,-12068 762.33,-11961.32 1097,-12092.01 1097,-11793 1097,-11793 1097,-11793 1097,-10354.5 1097,-10289.67 1090.69,-10271.14 1090.05,-10211.02"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1093.55,-10210.98 1090,-10201 1086.55,-10211.02 1093.55,-10210.98"/>
<text text-anchor="middle" x="1114.5" y="-10972.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_8 -->
<g id="node57" class="node">
<title>fn_220_basic_block_8</title>
<polygon fill="lightgrey" stroke="black" points="393.5,-11380.5 393.5,-11464.5 652.5,-11464.5 652.5,-11380.5 393.5,-11380.5"/>
<text text-anchor="start" x="401.5" y="-11449.3" font-family="Times,serif" font-size="14.00">COUNT:8301908&lt;bb 8&gt;:</text>
<polyline fill="none" stroke="black" points="393.5,-11441.5 652.5,-11441.5 "/>
<text text-anchor="start" x="401.5" y="-11426.3" font-family="Times,serif" font-size="14.00">_90 = &amp;self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="393.5,-11418.5 652.5,-11418.5 "/>
<text text-anchor="start" x="401.5" y="-11403.3" font-family="Times,serif" font-size="14.00">iftmp.10_91 = _PyBytes_Resize (_90, _89);</text>
<text text-anchor="start" x="401.5" y="-11388.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 10&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_7&#45;&gt;fn_220_basic_block_8 -->
<g id="edge10" class="edge">
<title>fn_220_basic_block_7:s&#45;&gt;fn_220_basic_block_8:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M323,-11516C323,-11495.66 480.25,-11489.32 515.88,-11472.16"/>
<polygon fill="black" stroke="black" stroke-width="2" points="518.43,-11474.56 523,-11465 513.47,-11469.62 518.43,-11474.56"/>
<text text-anchor="middle" x="486.5" y="-11486.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_9 -->
<g id="node58" class="node">
<title>fn_220_basic_block_9</title>
<polygon fill="lightgrey" stroke="black" points="97,-11399.5 97,-11445.5 375,-11445.5 375,-11399.5 97,-11399.5"/>
<text text-anchor="start" x="105" y="-11430.3" font-family="Times,serif" font-size="14.00">COUNT:19371120&lt;bb 9&gt;:</text>
<polyline fill="none" stroke="black" points="97,-11422.5 375,-11422.5 "/>
<text text-anchor="start" x="105" y="-11407.3" font-family="Times,serif" font-size="14.00">iftmp.10_92 = PyByteArray_Resize (_86, _89);</text>
</g>
<!-- fn_220_basic_block_7&#45;&gt;fn_220_basic_block_9 -->
<g id="edge11" class="edge">
<title>fn_220_basic_block_7:s&#45;&gt;fn_220_basic_block_9:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M323,-11516C323,-11470.38 249.06,-11491.87 237.51,-11456.73"/>
<polygon fill="black" stroke="black" stroke-width="2" points="240.92,-11455.88 236,-11446.5 234,-11456.9 240.92,-11455.88"/>
<text text-anchor="middle" x="334.5" y="-11486.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_10 -->
<g id="node59" class="node">
<title>fn_220_basic_block_10</title>
<polygon fill="lightgrey" stroke="black" points="202,-11168.5 202,-11328.5 528,-11328.5 528,-11168.5 202,-11168.5"/>
<text text-anchor="start" x="210" y="-11313.3" font-family="Times,serif" font-size="14.00">COUNT:27673028&lt;bb 10&gt;:</text>
<polyline fill="none" stroke="black" points="202,-11305.5 528,-11305.5 "/>
<text text-anchor="start" x="210" y="-11290.3" font-family="Times,serif" font-size="14.00"># iftmp.10_93 = PHI &lt;iftmp.10_91(8), iftmp.10_92(9)&gt;</text>
<polyline fill="none" stroke="black" points="202,-11282.5 528,-11282.5 "/>
<text text-anchor="start" x="210" y="-11267.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_93</text>
<polyline fill="none" stroke="black" points="202,-11259.5 528,-11259.5 "/>
<text text-anchor="start" x="210" y="-11244.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="202,-11236.5 528,-11236.5 "/>
<text text-anchor="start" x="210" y="-11221.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_93 &lt; 0)</text>
<text text-anchor="start" x="210" y="-11206.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 16&gt;; [0.73%]</text>
<text text-anchor="start" x="210" y="-11191.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="210" y="-11176.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 11&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_8&#45;&gt;fn_220_basic_block_10 -->
<g id="edge12" class="edge">
<title>fn_220_basic_block_8:s&#45;&gt;fn_220_basic_block_10:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M523,-11380C523,-11364 404.18,-11351.27 372.62,-11336.14"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="374.69,-11333.28 365,-11329 369.9,-11338.39 374.69,-11333.28"/>
<text text-anchor="middle" x="497" y="-11350.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_9&#45;&gt;fn_220_basic_block_10 -->
<g id="edge13" class="edge">
<title>fn_220_basic_block_9:s&#45;&gt;fn_220_basic_block_10:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M236,-11398.5C236,-11369.37 339.22,-11362.8 361,-11338.43"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="364.31,-11339.57 365,-11329 357.87,-11336.84 364.31,-11339.57"/>
<text text-anchor="middle" x="367" y="-11350.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_11 -->
<g id="node60" class="node">
<title>fn_220_basic_block_11</title>
<polygon fill="lightgrey" stroke="black" points="571,-11002.5 571,-11116.5 743,-11116.5 743,-11002.5 571,-11002.5"/>
<text text-anchor="start" x="579" y="-11101.3" font-family="Times,serif" font-size="14.00">COUNT:27471015&lt;bb 11&gt;:</text>
<polyline fill="none" stroke="black" points="571,-11093.5 743,-11093.5 "/>
<text text-anchor="start" x="579" y="-11078.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="571,-11070.5 743,-11070.5 "/>
<text text-anchor="start" x="579" y="-11055.3" font-family="Times,serif" font-size="14.00">if (_87 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="579" y="-11040.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 12&gt;; [30.00%]</text>
<text text-anchor="start" x="579" y="-11025.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="579" y="-11010.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 13&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_10&#45;&gt;fn_220_basic_block_11 -->
<g id="edge15" class="edge">
<title>fn_220_basic_block_10:s&#45;&gt;fn_220_basic_block_11:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M365,-11168C365,-11039.86 641.25,-11237.38 656.36,-11127.05"/>
<polygon fill="black" stroke="black" stroke-width="2" points="659.85,-11127.2 657,-11117 652.87,-11126.76 659.85,-11127.2"/>
<text text-anchor="middle" x="670.5" y="-11138.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_16 -->
<g id="node65" class="node">
<title>fn_220_basic_block_16</title>
<polygon fill="lightgrey" stroke="black" points="736.5,-10252.5 736.5,-10458.5 1077.5,-10458.5 1077.5,-10252.5 736.5,-10252.5"/>
<text text-anchor="start" x="744.5" y="-10443.3" font-family="Times,serif" font-size="14.00">COUNT:27673028&lt;bb 16&gt;:</text>
<polyline fill="none" stroke="black" points="736.5,-10435.5 1077.5,-10435.5 "/>
<text text-anchor="start" x="744.5" y="-10420.3" font-family="Times,serif" font-size="14.00"># _100 = PHI &lt;&#45;1(10), iftmp.10_93(12), iftmp.10_93(15)&gt;</text>
<polyline fill="none" stroke="black" points="736.5,-10412.5 1077.5,-10412.5 "/>
<text text-anchor="start" x="744.5" y="-10397.3" font-family="Times,serif" font-size="14.00">_265 = _100;</text>
<polyline fill="none" stroke="black" points="736.5,-10389.5 1077.5,-10389.5 "/>
<text text-anchor="start" x="744.5" y="-10374.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="736.5,-10366.5 1077.5,-10366.5 "/>
<text text-anchor="start" x="744.5" y="-10351.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="736.5,-10343.5 1077.5,-10343.5 "/>
<text text-anchor="start" x="744.5" y="-10328.3" font-family="Times,serif" font-size="14.00">_77 = _265;</text>
<polyline fill="none" stroke="black" points="736.5,-10320.5 1077.5,-10320.5 "/>
<text text-anchor="start" x="744.5" y="-10305.3" font-family="Times,serif" font-size="14.00">if (_77 &lt; 0)</text>
<text text-anchor="start" x="744.5" y="-10290.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 18&gt;; [0.73%]</text>
<text text-anchor="start" x="744.5" y="-10275.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="744.5" y="-10260.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 17&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_10&#45;&gt;fn_220_basic_block_16 -->
<g id="edge14" class="edge">
<title>fn_220_basic_block_10:s&#45;&gt;fn_220_basic_block_16:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M365,-11168C365,-11109.49 289,-11119.01 289,-11060.5 289,-11060.5 289,-11060.5 289,-10574.5 289,-10545.49 277.78,-10529.78 299,-10510 310.48,-10499.3 821.8,-10479.23 897.64,-10462.86"/>
<polygon fill="black" stroke="black" stroke-width="2" points="899.09,-10466.05 907,-10459 896.42,-10459.58 899.09,-10466.05"/>
<text text-anchor="middle" x="303" y="-10760.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_12 -->
<g id="node61" class="node">
<title>fn_220_basic_block_12</title>
<polygon fill="lightgrey" stroke="black" points="766.5,-10510.5 766.5,-10640.5 1077.5,-10640.5 1077.5,-10510.5 766.5,-10510.5"/>
<text text-anchor="start" x="774.5" y="-10625.3" font-family="Times,serif" font-size="14.00">COUNT:8241304&lt;bb 12&gt;:</text>
<polyline fill="none" stroke="black" points="766.5,-10617.5 1077.5,-10617.5 "/>
<text text-anchor="start" x="774.5" y="-10602.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="766.5,-10594.5 1077.5,-10594.5 "/>
<text text-anchor="start" x="774.5" y="-10579.3" font-family="Times,serif" font-size="14.00">_94 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="766.5,-10571.5 1077.5,-10571.5 "/>
<text text-anchor="start" x="774.5" y="-10556.3" font-family="Times,serif" font-size="14.00">_95 = &amp;MEM[(struct PyBytesObject *)_94].ob_sval;</text>
<polyline fill="none" stroke="black" points="766.5,-10548.5 1077.5,-10548.5 "/>
<text text-anchor="start" x="774.5" y="-10533.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_buffer_raw = _95;</text>
<text text-anchor="start" x="774.5" y="-10518.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 16&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_11&#45;&gt;fn_220_basic_block_12 -->
<g id="edge16" class="edge">
<title>fn_220_basic_block_11:s&#45;&gt;fn_220_basic_block_12:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M657,-11002C657,-10993.04 803.59,-10957.26 810,-10951 912.41,-10851.11 921.61,-10790.39 921.99,-10651.16"/>
<polygon fill="black" stroke="black" stroke-width="2" points="925.49,-10651 922,-10641 918.49,-10651 925.49,-10651"/>
<text text-anchor="middle" x="934.5" y="-10760.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_13 -->
<g id="node62" class="node">
<title>fn_220_basic_block_13</title>
<polygon fill="lightgrey" stroke="black" points="513.5,-10790.5 513.5,-10950.5 800.5,-10950.5 800.5,-10790.5 513.5,-10790.5"/>
<text text-anchor="start" x="521.5" y="-10935.3" font-family="Times,serif" font-size="14.00">COUNT:19229711&lt;bb 13&gt;:</text>
<polyline fill="none" stroke="black" points="513.5,-10927.5 800.5,-10927.5 "/>
<text text-anchor="start" x="521.5" y="-10912.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="513.5,-10904.5 800.5,-10904.5 "/>
<text text-anchor="start" x="521.5" y="-10889.3" font-family="Times,serif" font-size="14.00">_96 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="513.5,-10881.5 800.5,-10881.5 "/>
<text text-anchor="start" x="521.5" y="-10866.3" font-family="Times,serif" font-size="14.00">_97 = MEM[(struct PyVarObject *)_96].ob_size;</text>
<polyline fill="none" stroke="black" points="513.5,-10858.5 800.5,-10858.5 "/>
<text text-anchor="start" x="521.5" y="-10843.3" font-family="Times,serif" font-size="14.00">if (_97 != 0)</text>
<text text-anchor="start" x="521.5" y="-10828.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 14&gt;; [50.00%]</text>
<text text-anchor="start" x="521.5" y="-10813.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="521.5" y="-10798.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 15&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_11&#45;&gt;fn_220_basic_block_13 -->
<g id="edge17" class="edge">
<title>fn_220_basic_block_11:s&#45;&gt;fn_220_basic_block_13:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M657,-11002C657,-10983.23 657,-10976.12 657,-10961.35"/>
<polygon fill="black" stroke="black" stroke-width="2" points="660.5,-10961 657,-10951 653.5,-10961 660.5,-10961"/>
<text text-anchor="middle" x="674.5" y="-10972.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_12&#45;&gt;fn_220_basic_block_16 -->
<g id="edge18" class="edge">
<title>fn_220_basic_block_12:s&#45;&gt;fn_220_basic_block_16:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M922,-10510C922,-10490.25 911.52,-10484.39 908.08,-10469.2"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="911.53,-10468.58 907,-10459 904.57,-10469.31 911.53,-10468.58"/>
<text text-anchor="middle" x="938" y="-10480.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_14 -->
<g id="node63" class="node">
<title>fn_220_basic_block_14</title>
<polygon fill="lightgrey" stroke="black" points="341,-10692.5 341,-10738.5 715,-10738.5 715,-10692.5 341,-10692.5"/>
<text text-anchor="start" x="349" y="-10723.3" font-family="Times,serif" font-size="14.00">COUNT:9614855&lt;bb 14&gt;:</text>
<polyline fill="none" stroke="black" points="341,-10715.5 715,-10715.5 "/>
<text text-anchor="start" x="349" y="-10700.3" font-family="Times,serif" font-size="14.00">iftmp.11_98 = MEM[(struct PyByteArrayObject *)_96].ob_start;</text>
</g>
<!-- fn_220_basic_block_13&#45;&gt;fn_220_basic_block_14 -->
<g id="edge19" class="edge">
<title>fn_220_basic_block_13:s&#45;&gt;fn_220_basic_block_14:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M657,-10790C657,-10732.2 543.62,-10792.14 529.45,-10749.06"/>
<polygon fill="black" stroke="black" stroke-width="2" points="532.89,-10748.4 528,-10739 525.96,-10749.4 532.89,-10748.4"/>
<text text-anchor="middle" x="667.5" y="-10760.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_15 -->
<g id="node64" class="node">
<title>fn_220_basic_block_15</title>
<polygon fill="lightgrey" stroke="black" points="308,-10541 308,-10610 748,-10610 748,-10541 308,-10541"/>
<text text-anchor="start" x="316" y="-10594.8" font-family="Times,serif" font-size="14.00">COUNT:19229711&lt;bb 15&gt;:</text>
<polyline fill="none" stroke="black" points="308,-10587 748,-10587 "/>
<text text-anchor="start" x="316" y="-10571.8" font-family="Times,serif" font-size="14.00"># iftmp.11_99 = PHI &lt;&amp;_PyByteArray_empty_string(13), iftmp.11_98(14)&gt;</text>
<polyline fill="none" stroke="black" points="308,-10564 748,-10564 "/>
<text text-anchor="start" x="316" y="-10548.8" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_buffer_raw = iftmp.11_99;</text>
</g>
<!-- fn_220_basic_block_13&#45;&gt;fn_220_basic_block_15 -->
<g id="edge20" class="edge">
<title>fn_220_basic_block_13:s&#45;&gt;fn_220_basic_block_15:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M657,-10790C657,-10773.68 675.86,-10781.67 689,-10772 706.22,-10759.33 715.53,-10758.63 724,-10739 732.28,-10719.82 735.63,-10709.35 724,-10692 673.61,-10616.83 539.08,-10698.75 528.64,-10621.71"/>
<polygon fill="black" stroke="black" stroke-width="2" points="532.12,-10621.26 528,-10611.5 525.14,-10621.7 532.12,-10621.26"/>
<text text-anchor="middle" x="748.5" y="-10711.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_14&#45;&gt;fn_220_basic_block_15 -->
<g id="edge21" class="edge">
<title>fn_220_basic_block_14:s&#45;&gt;fn_220_basic_block_15:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M528,-10692C528,-10659.86 528,-10649.37 528,-10621.63"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="531.5,-10621.5 528,-10611.5 524.5,-10621.5 531.5,-10621.5"/>
<text text-anchor="middle" x="549" y="-10662.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_15&#45;&gt;fn_220_basic_block_16 -->
<g id="edge22" class="edge">
<title>fn_220_basic_block_15:s&#45;&gt;fn_220_basic_block_16:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M528,-10539.5C528,-10519.87 843.31,-10486.99 898.73,-10465.02"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="900.98,-10467.72 907,-10459 896.86,-10462.06 900.98,-10467.72"/>
<text text-anchor="middle" x="864" y="-10480.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_16&#45;&gt;fn_220_basic_block_17 -->
<g id="edge24" class="edge">
<title>fn_220_basic_block_16:s&#45;&gt;fn_220_basic_block_17:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M907,-10252C907,-10233.45 1048.36,-10224.42 1082.6,-10208.17"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1085.25,-10210.47 1090,-10201 1080.38,-10205.44 1085.25,-10210.47"/>
<text text-anchor="middle" x="1057.5" y="-10222.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_18 -->
<g id="node67" class="node">
<title>fn_220_basic_block_18</title>
<polygon fill="lightgrey" stroke="black" points="999,-9597.5 999,-9849.5 1181,-9849.5 1181,-9597.5 999,-9597.5"/>
<text text-anchor="start" x="1007" y="-9834.3" font-family="Times,serif" font-size="14.00">COUNT:55346056&lt;bb 18&gt;:</text>
<polyline fill="none" stroke="black" points="999,-9826.5 1181,-9826.5 "/>
<text text-anchor="start" x="1007" y="-9811.3" font-family="Times,serif" font-size="14.00"># _85 = PHI &lt;&#45;1(16), 0(17)&gt;</text>
<polyline fill="none" stroke="black" points="999,-9803.5 1181,-9803.5 "/>
<text text-anchor="start" x="1007" y="-9788.3" font-family="Times,serif" font-size="14.00">_268 = _85;</text>
<polyline fill="none" stroke="black" points="999,-9780.5 1181,-9780.5 "/>
<text text-anchor="start" x="1007" y="-9765.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="999,-9757.5 1181,-9757.5 "/>
<text text-anchor="start" x="1007" y="-9742.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="999,-9734.5 1181,-9734.5 "/>
<text text-anchor="start" x="1007" y="-9719.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="999,-9711.5 1181,-9711.5 "/>
<text text-anchor="start" x="1007" y="-9696.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="999,-9688.5 1181,-9688.5 "/>
<text text-anchor="start" x="1007" y="-9673.3" font-family="Times,serif" font-size="14.00">_1 = _268;</text>
<polyline fill="none" stroke="black" points="999,-9665.5 1181,-9665.5 "/>
<text text-anchor="start" x="1007" y="-9650.3" font-family="Times,serif" font-size="14.00">if (_1 &lt; 0)</text>
<text text-anchor="start" x="1007" y="-9635.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 96&gt;; [0.73%]</text>
<text text-anchor="start" x="1007" y="-9620.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1007" y="-9605.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 68&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_16&#45;&gt;fn_220_basic_block_18 -->
<g id="edge23" class="edge">
<title>fn_220_basic_block_16:s&#45;&gt;fn_220_basic_block_18:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M907,-10252C907,-10095.35 841.97,-10023.98 939,-9901 958.71,-9876.02 1064.89,-9883.35 1086.25,-9859.41"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1089.55,-9860.59 1090,-9850 1083.05,-9858 1089.55,-9860.59"/>
<text text-anchor="middle" x="953" y="-10047.3" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_17&#45;&gt;fn_220_basic_block_18 -->
<g id="edge25" class="edge">
<title>fn_220_basic_block_17:s&#45;&gt;fn_220_basic_block_18:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1090,-9901C1090,-9882.23 1090,-9875.12 1090,-9860.35"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1093.5,-9860 1090,-9850 1086.5,-9860 1093.5,-9860"/>
<text text-anchor="middle" x="1111" y="-9871.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_18&#45;&gt;fn_220_basic_block_68 -->
<g id="edge27" class="edge">
<title>fn_220_basic_block_18:s&#45;&gt;fn_220_basic_block_68:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1090,-9597C1090,-9569.14 1090,-9559.73 1090,-9536.19"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1093.5,-9536 1090,-9526 1086.5,-9536 1093.5,-9536"/>
<text text-anchor="middle" x="1107.5" y="-9567.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_18&#45;&gt;fn_220_basic_block_96 -->
<g id="edge26" class="edge">
<title>fn_220_basic_block_18:s&#45;&gt;fn_220_basic_block_96:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1090,-9597C1090,-9552.49 2658.62,-9585.45 2692,-9556 2740.88,-9512.88 2714,-9476.18 2714,-9411 2714,-9411 2714,-9411 2714,-449.5 2714,-393.31 2734.89,-361.3 2692,-325 2671.27,-307.45 815.13,-333.05 662.9,-310.2"/>
<polygon fill="black" stroke="black" stroke-width="2" points="663.59,-306.75 653,-307 661.44,-313.41 663.59,-306.75"/>
<text text-anchor="middle" x="2728" y="-5050.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_49&#45;&gt;fn_220_basic_block_96 -->
<g id="edge75" class="edge">
<title>fn_220_basic_block_49:s&#45;&gt;fn_220_basic_block_96:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M846,-407.5C846,-332.58 766.71,-357.06 699,-325 683.5,-317.66 664.14,-324.2 656.42,-316.95"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="659.56,-315.32 653,-307 652.94,-317.59 659.56,-315.32"/>
<text text-anchor="middle" x="765" y="-328.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_64&#45;&gt;fn_220_basic_block_96 -->
<g id="edge97" class="edge">
<title>fn_220_basic_block_64:s&#45;&gt;fn_220_basic_block_96:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M653,-407.5C653,-366.5 653,-353.72 653,-317.35"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="656.5,-317 653,-307 649.5,-317 656.5,-317"/>
<text text-anchor="middle" x="674" y="-328.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_70 -->
<g id="node71" class="node">
<title>fn_220_basic_block_70</title>
<polygon fill="lightgrey" stroke="black" points="657,-7200.5 657,-7613.5 887,-7613.5 887,-7200.5 657,-7200.5"/>
<text text-anchor="start" x="665" y="-7598.3" font-family="Times,serif" font-size="14.00">COUNT:19488418&lt;bb 70&gt;:</text>
<polyline fill="none" stroke="black" points="657,-7590.5 887,-7590.5 "/>
<text text-anchor="start" x="665" y="-7575.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="657,-7567.5 887,-7567.5 "/>
<text text-anchor="start" x="665" y="-7552.3" font-family="Times,serif" font-size="14.00">_21 = i_73 &#45; start_38;</text>
<polyline fill="none" stroke="black" points="657,-7544.5 887,-7544.5 "/>
<text text-anchor="start" x="665" y="-7529.3" font-family="Times,serif" font-size="14.00">start.51_22 = (sizetype) start_38;</text>
<polyline fill="none" stroke="black" points="657,-7521.5 887,-7521.5 "/>
<text text-anchor="start" x="665" y="-7506.3" font-family="Times,serif" font-size="14.00">_23 = _69 + start.51_22;</text>
<polyline fill="none" stroke="black" points="657,-7498.5 887,-7498.5 "/>
<text text-anchor="start" x="665" y="-7483.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_39(D)</text>
<polyline fill="none" stroke="black" points="657,-7475.5 887,-7475.5 "/>
<text text-anchor="start" x="665" y="-7460.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; _23</text>
<polyline fill="none" stroke="black" points="657,-7452.5 887,-7452.5 "/>
<text text-anchor="start" x="665" y="-7437.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; _21</text>
<polyline fill="none" stroke="black" points="657,-7429.5 887,-7429.5 "/>
<text text-anchor="start" x="665" y="-7414.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_write</text>
<polyline fill="none" stroke="black" points="657,-7406.5 887,-7406.5 "/>
<text text-anchor="start" x="665" y="-7391.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="657,-7383.5 887,-7383.5 "/>
<text text-anchor="start" x="665" y="-7368.3" font-family="Times,serif" font-size="14.00">_182 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="657,-7360.5 887,-7360.5 "/>
<text text-anchor="start" x="665" y="-7345.3" font-family="Times,serif" font-size="14.00">required_183 = _21 + _182;</text>
<polyline fill="none" stroke="black" points="657,-7337.5 887,-7337.5 "/>
<text text-anchor="start" x="665" y="-7322.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; required_183</text>
<polyline fill="none" stroke="black" points="657,-7314.5 887,-7314.5 "/>
<text text-anchor="start" x="665" y="-7299.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="657,-7291.5 887,-7291.5 "/>
<text text-anchor="start" x="665" y="-7276.3" font-family="Times,serif" font-size="14.00">_184 = self_39(D)&#45;&gt;max_output_len;</text>
<polyline fill="none" stroke="black" points="657,-7268.5 887,-7268.5 "/>
<text text-anchor="start" x="665" y="-7253.3" font-family="Times,serif" font-size="14.00">if (required_183 &gt; _184)</text>
<text text-anchor="start" x="665" y="-7238.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 71&gt;; [50.00%]</text>
<text text-anchor="start" x="665" y="-7223.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="665" y="-7208.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 81&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_69&#45;&gt;fn_220_basic_block_70 -->
<g id="edge103" class="edge">
<title>fn_220_basic_block_69:s&#45;&gt;fn_220_basic_block_70:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M772,-7848C772,-7747.45 772,-7719.81 772,-7624.11"/>
<polygon fill="black" stroke="black" stroke-width="2" points="775.5,-7624 772,-7614 768.5,-7624 775.5,-7624"/>
<text text-anchor="middle" x="789.5" y="-7635.8" font-family="Times,serif" font-size="14.00">[66%]</text>
</g>
<!-- fn_220_basic_block_83 -->
<g id="node84" class="node">
<title>fn_220_basic_block_83</title>
<polygon fill="lightgrey" stroke="black" points="607,-3291 607,-3635 837,-3635 837,-3291 607,-3291"/>
<text text-anchor="start" x="615" y="-3619.8" font-family="Times,serif" font-size="14.00">COUNT:29385640&lt;bb 83&gt;:</text>
<polyline fill="none" stroke="black" points="607,-3612 837,-3612 "/>
<text text-anchor="start" x="615" y="-3596.8" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="607,-3589 837,-3589 "/>
<text text-anchor="start" x="615" y="-3573.8" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_39(D)</text>
<polyline fill="none" stroke="black" points="607,-3566 837,-3566 "/>
<text text-anchor="start" x="615" y="-3550.8" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; &quot;\&quot;&quot;</text>
<polyline fill="none" stroke="black" points="607,-3543 837,-3543 "/>
<text text-anchor="start" x="615" y="-3527.8" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; 1</text>
<polyline fill="none" stroke="black" points="607,-3520 837,-3520 "/>
<text text-anchor="start" x="615" y="-3504.8" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_write</text>
<polyline fill="none" stroke="black" points="607,-3497 837,-3497 "/>
<text text-anchor="start" x="615" y="-3481.8" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="607,-3474 837,-3474 "/>
<text text-anchor="start" x="615" y="-3458.8" font-family="Times,serif" font-size="14.00">_209 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="607,-3451 837,-3451 "/>
<text text-anchor="start" x="615" y="-3435.8" font-family="Times,serif" font-size="14.00">required_210 = _209 + 1;</text>
<polyline fill="none" stroke="black" points="607,-3428 837,-3428 "/>
<text text-anchor="start" x="615" y="-3412.8" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; required_210</text>
<polyline fill="none" stroke="black" points="607,-3405 837,-3405 "/>
<text text-anchor="start" x="615" y="-3389.8" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="607,-3382 837,-3382 "/>
<text text-anchor="start" x="615" y="-3366.8" font-family="Times,serif" font-size="14.00">_211 = self_39(D)&#45;&gt;max_output_len;</text>
<polyline fill="none" stroke="black" points="607,-3359 837,-3359 "/>
<text text-anchor="start" x="615" y="-3343.8" font-family="Times,serif" font-size="14.00">if (required_210 &gt; _211)</text>
<text text-anchor="start" x="615" y="-3328.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 84&gt;; [50.00%]</text>
<text text-anchor="start" x="615" y="-3313.8" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="615" y="-3298.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 94&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_69&#45;&gt;fn_220_basic_block_83 -->
<g id="edge104" class="edge">
<title>fn_220_basic_block_69:s&#45;&gt;fn_220_basic_block_83:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M772,-7848C772,-7481.66 75,-7774.34 75,-7408 75,-7408 75,-7408 75,-4157 75,-3975.83 698.21,-3826.24 721.34,-3646.24"/>
<polygon fill="black" stroke="black" stroke-width="2" points="724.85,-3646.2 722,-3636 717.86,-3645.75 724.85,-3646.2"/>
<text text-anchor="middle" x="92.5" y="-5917.8" font-family="Times,serif" font-size="14.00">[34%]</text>
</g>
<!-- fn_220_basic_block_71 -->
<g id="node72" class="node">
<title>fn_220_basic_block_71</title>
<polygon fill="lightgrey" stroke="black" points="474,-6597.5 474,-7148.5 790,-7148.5 790,-6597.5 474,-6597.5"/>
<text text-anchor="start" x="482" y="-7133.3" font-family="Times,serif" font-size="14.00">COUNT:9744208&lt;bb 71&gt;:</text>
<polyline fill="none" stroke="black" points="474,-7125.5 790,-7125.5 "/>
<text text-anchor="start" x="482" y="-7110.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="474,-7102.5 790,-7102.5 "/>
<text text-anchor="start" x="482" y="-7087.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_39(D)</text>
<polyline fill="none" stroke="black" points="474,-7079.5 790,-7079.5 "/>
<text text-anchor="start" x="482" y="-7064.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; required_183</text>
<polyline fill="none" stroke="black" points="474,-7056.5 790,-7056.5 "/>
<text text-anchor="start" x="482" y="-7041.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_resize</text>
<polyline fill="none" stroke="black" points="474,-7033.5 790,-7033.5 "/>
<text text-anchor="start" x="482" y="-7018.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="474,-7010.5 790,-7010.5 "/>
<text text-anchor="start" x="482" y="-6995.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="474,-6987.5 790,-6987.5 "/>
<text text-anchor="start" x="482" y="-6972.3" font-family="Times,serif" font-size="14.00">_194 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="474,-6964.5 790,-6964.5 "/>
<text text-anchor="start" x="482" y="-6949.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; _194</text>
<polyline fill="none" stroke="black" points="474,-6941.5 790,-6941.5 "/>
<text text-anchor="start" x="482" y="-6926.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="474,-6918.5 790,-6918.5 "/>
<text text-anchor="start" x="482" y="-6903.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY _Py_IS_TYPE</text>
<polyline fill="none" stroke="black" points="474,-6895.5 790,-6895.5 "/>
<text text-anchor="start" x="482" y="-6880.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="474,-6872.5 790,-6872.5 "/>
<text text-anchor="start" x="482" y="-6857.3" font-family="Times,serif" font-size="14.00">_195 = MEM[(const struct PyObject *)_194].ob_type;</text>
<polyline fill="none" stroke="black" points="474,-6849.5 790,-6849.5 "/>
<text text-anchor="start" x="482" y="-6834.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; NULL</text>
<polyline fill="none" stroke="black" points="474,-6826.5 790,-6826.5 "/>
<text text-anchor="start" x="482" y="-6811.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; NULL</text>
<polyline fill="none" stroke="black" points="474,-6803.5 790,-6803.5 "/>
<text text-anchor="start" x="482" y="-6788.3" font-family="Times,serif" font-size="14.00"># DEBUG is_bytes =&gt; _195 == &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="474,-6780.5 790,-6780.5 "/>
<text text-anchor="start" x="482" y="-6765.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="474,-6757.5 790,-6757.5 "/>
<text text-anchor="start" x="482" y="-6742.3" font-family="Times,serif" font-size="14.00">_196 = required_183 * 2;</text>
<polyline fill="none" stroke="black" points="474,-6734.5 790,-6734.5 "/>
<text text-anchor="start" x="482" y="-6719.3" font-family="Times,serif" font-size="14.00">_197 = MAX_EXPR &lt;_196, 8&gt;;</text>
<polyline fill="none" stroke="black" points="474,-6711.5 790,-6711.5 "/>
<text text-anchor="start" x="482" y="-6696.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;max_output_len = _197;</text>
<polyline fill="none" stroke="black" points="474,-6688.5 790,-6688.5 "/>
<text text-anchor="start" x="482" y="-6673.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="474,-6665.5 790,-6665.5 "/>
<text text-anchor="start" x="482" y="-6650.3" font-family="Times,serif" font-size="14.00">if (_195 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="482" y="-6635.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 72&gt;; [30.00%]</text>
<text text-anchor="start" x="482" y="-6620.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="482" y="-6605.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 73&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_70&#45;&gt;fn_220_basic_block_71 -->
<g id="edge105" class="edge">
<title>fn_220_basic_block_70:s&#45;&gt;fn_220_basic_block_71:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M772,-7200C772,-7137.66 647.93,-7206.18 633.39,-7159.18"/>
<polygon fill="black" stroke="black" stroke-width="2" points="636.82,-7158.44 632,-7149 629.88,-7159.38 636.82,-7158.44"/>
<text text-anchor="middle" x="781.5" y="-7170.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_81 -->
<g id="node82" class="node">
<title>fn_220_basic_block_81</title>
<polygon fill="lightgrey" stroke="black" points="635,-4577.5 635,-4876.5 871,-4876.5 871,-4577.5 635,-4577.5"/>
<text text-anchor="start" x="643" y="-4861.3" font-family="Times,serif" font-size="14.00">COUNT:19417285&lt;bb 81&gt;:</text>
<polyline fill="none" stroke="black" points="635,-4853.5 871,-4853.5 "/>
<text text-anchor="start" x="643" y="-4838.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="635,-4830.5 871,-4830.5 "/>
<text text-anchor="start" x="643" y="-4815.3" font-family="Times,serif" font-size="14.00">n.9_186 = (long unsigned int) _21;</text>
<polyline fill="none" stroke="black" points="635,-4807.5 871,-4807.5 "/>
<text text-anchor="start" x="643" y="-4792.3" font-family="Times,serif" font-size="14.00">_187 = self_39(D)&#45;&gt;output_buffer_raw;</text>
<polyline fill="none" stroke="black" points="635,-4784.5 871,-4784.5 "/>
<text text-anchor="start" x="643" y="-4769.3" font-family="Times,serif" font-size="14.00">_188 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="635,-4761.5 871,-4761.5 "/>
<text text-anchor="start" x="643" y="-4746.3" font-family="Times,serif" font-size="14.00">_189 = (sizetype) _188;</text>
<polyline fill="none" stroke="black" points="635,-4738.5 871,-4738.5 "/>
<text text-anchor="start" x="643" y="-4723.3" font-family="Times,serif" font-size="14.00">_190 = _187 + _189;</text>
<polyline fill="none" stroke="black" points="635,-4715.5 871,-4715.5 "/>
<text text-anchor="start" x="643" y="-4700.3" font-family="Times,serif" font-size="14.00">memcpy (_190, _23, n.9_186);</text>
<polyline fill="none" stroke="black" points="635,-4692.5 871,-4692.5 "/>
<text text-anchor="start" x="643" y="-4677.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="635,-4669.5 871,-4669.5 "/>
<text text-anchor="start" x="643" y="-4654.3" font-family="Times,serif" font-size="14.00">_191 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="635,-4646.5 871,-4646.5 "/>
<text text-anchor="start" x="643" y="-4631.3" font-family="Times,serif" font-size="14.00">_192 = _21 + _191;</text>
<polyline fill="none" stroke="black" points="635,-4623.5 871,-4623.5 "/>
<text text-anchor="start" x="643" y="-4608.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_len = _192;</text>
<polyline fill="none" stroke="black" points="635,-4600.5 871,-4600.5 "/>
<text text-anchor="start" x="643" y="-4585.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
</g>
<!-- fn_220_basic_block_70&#45;&gt;fn_220_basic_block_81 -->
<g id="edge106" class="edge">
<title>fn_220_basic_block_70:s&#45;&gt;fn_220_basic_block_81:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M772,-7200C772,-7184.07 793.06,-7194.45 803,-7182 892.43,-7069.92 899,-7017.38 899,-6874 899,-6874 899,-6874 899,-6109.5 899,-5914.44 956.44,-5423.62 920,-5232 889.91,-5073.82 894.37,-5015 787,-4895 778.98,-4886.04 765.43,-4889.23 758.09,-4885.98"/>
<polygon fill="black" stroke="black" stroke-width="2" points="760.98,-4883.97 753,-4877 754.89,-4887.43 760.98,-4883.97"/>
<text text-anchor="middle" x="918.5" y="-6023.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_72 -->
<g id="node73" class="node">
<title>fn_220_basic_block_72</title>
<polygon fill="lightgrey" stroke="black" points="492.5,-6446.5 492.5,-6530.5 771.5,-6530.5 771.5,-6446.5 492.5,-6446.5"/>
<text text-anchor="start" x="500.5" y="-6515.3" font-family="Times,serif" font-size="14.00">COUNT:2923262&lt;bb 72&gt;:</text>
<polyline fill="none" stroke="black" points="492.5,-6507.5 771.5,-6507.5 "/>
<text text-anchor="start" x="500.5" y="-6492.3" font-family="Times,serif" font-size="14.00">_198 = &amp;self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="492.5,-6484.5 771.5,-6484.5 "/>
<text text-anchor="start" x="500.5" y="-6469.3" font-family="Times,serif" font-size="14.00">iftmp.10_199 = _PyBytes_Resize (_198, _197);</text>
<text text-anchor="start" x="500.5" y="-6454.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 74&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_71&#45;&gt;fn_220_basic_block_72 -->
<g id="edge107" class="edge">
<title>fn_220_basic_block_71:s&#45;&gt;fn_220_basic_block_72:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M632,-6597C632,-6571.64 632,-6562.85 632,-6541.76"/>
<polygon fill="black" stroke="black" stroke-width="2" points="635.5,-6541.5 632,-6531.5 628.5,-6541.5 635.5,-6541.5"/>
<text text-anchor="middle" x="649.5" y="-6567.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_73 -->
<g id="node74" class="node">
<title>fn_220_basic_block_73</title>
<polygon fill="lightgrey" stroke="black" points="175.5,-6465.5 175.5,-6511.5 474.5,-6511.5 474.5,-6465.5 175.5,-6465.5"/>
<text text-anchor="start" x="183.5" y="-6496.3" font-family="Times,serif" font-size="14.00">COUNT:6820946&lt;bb 73&gt;:</text>
<polyline fill="none" stroke="black" points="175.5,-6488.5 474.5,-6488.5 "/>
<text text-anchor="start" x="183.5" y="-6473.3" font-family="Times,serif" font-size="14.00">iftmp.10_200 = PyByteArray_Resize (_194, _197);</text>
</g>
<!-- fn_220_basic_block_71&#45;&gt;fn_220_basic_block_73 -->
<g id="edge108" class="edge">
<title>fn_220_basic_block_71:s&#45;&gt;fn_220_basic_block_73:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M632,-6597C632,-6581.04 382.03,-6539.48 333.21,-6518.52"/>
<polygon fill="black" stroke="black" stroke-width="2" points="335.13,-6515.59 325,-6512.5 330.99,-6521.24 335.13,-6515.59"/>
<text text-anchor="middle" x="597.5" y="-6567.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_74 -->
<g id="node75" class="node">
<title>fn_220_basic_block_74</title>
<polygon fill="lightgrey" stroke="black" points="145,-6219.5 145,-6379.5 505,-6379.5 505,-6219.5 145,-6219.5"/>
<text text-anchor="start" x="153" y="-6364.3" font-family="Times,serif" font-size="14.00">COUNT:9744208&lt;bb 74&gt;:</text>
<polyline fill="none" stroke="black" points="145,-6356.5 505,-6356.5 "/>
<text text-anchor="start" x="153" y="-6341.3" font-family="Times,serif" font-size="14.00"># iftmp.10_201 = PHI &lt;iftmp.10_199(72), iftmp.10_200(73)&gt;</text>
<polyline fill="none" stroke="black" points="145,-6333.5 505,-6333.5 "/>
<text text-anchor="start" x="153" y="-6318.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_201</text>
<polyline fill="none" stroke="black" points="145,-6310.5 505,-6310.5 "/>
<text text-anchor="start" x="153" y="-6295.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="145,-6287.5 505,-6287.5 "/>
<text text-anchor="start" x="153" y="-6272.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_201 &lt; 0)</text>
<text text-anchor="start" x="153" y="-6257.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 80&gt;; [0.73%]</text>
<text text-anchor="start" x="153" y="-6242.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="153" y="-6227.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 75&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_72&#45;&gt;fn_220_basic_block_74 -->
<g id="edge109" class="edge">
<title>fn_220_basic_block_72:s&#45;&gt;fn_220_basic_block_74:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M632,-6445.5C632,-6429.8 383.11,-6403.41 333.53,-6385.58"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="335.29,-6382.54 325,-6380 331.45,-6388.4 335.29,-6382.54"/>
<text text-anchor="middle" x="499" y="-6401.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_73&#45;&gt;fn_220_basic_block_74 -->
<g id="edge110" class="edge">
<title>fn_220_basic_block_73:s&#45;&gt;fn_220_basic_block_74:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M325,-6464.5C325,-6430.61 325,-6419.66 325,-6390.25"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="328.5,-6390 325,-6380 321.5,-6390 328.5,-6390"/>
<text text-anchor="middle" x="346" y="-6401.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_75 -->
<g id="node76" class="node">
<title>fn_220_basic_block_75</title>
<polygon fill="lightgrey" stroke="black" points="235.5,-6053.5 235.5,-6167.5 414.5,-6167.5 414.5,-6053.5 235.5,-6053.5"/>
<text text-anchor="start" x="243.5" y="-6152.3" font-family="Times,serif" font-size="14.00">COUNT:9673076&lt;bb 75&gt;:</text>
<polyline fill="none" stroke="black" points="235.5,-6144.5 414.5,-6144.5 "/>
<text text-anchor="start" x="243.5" y="-6129.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="235.5,-6121.5 414.5,-6121.5 "/>
<text text-anchor="start" x="243.5" y="-6106.3" font-family="Times,serif" font-size="14.00">if (_195 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="243.5" y="-6091.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 76&gt;; [30.00%]</text>
<text text-anchor="start" x="243.5" y="-6076.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="243.5" y="-6061.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 77&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_74&#45;&gt;fn_220_basic_block_75 -->
<g id="edge112" class="edge">
<title>fn_220_basic_block_74:s&#45;&gt;fn_220_basic_block_75:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M325,-6219C325,-6200.23 325,-6193.12 325,-6178.35"/>
<polygon fill="black" stroke="black" stroke-width="2" points="328.5,-6178 325,-6168 321.5,-6178 328.5,-6178"/>
<text text-anchor="middle" x="342.5" y="-6189.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_80 -->
<g id="node81" class="node">
<title>fn_220_basic_block_80</title>
<polygon fill="lightgrey" stroke="black" points="412,-4951.5 412,-5157.5 766,-5157.5 766,-4951.5 412,-4951.5"/>
<text text-anchor="start" x="420" y="-5142.3" font-family="Times,serif" font-size="14.00">COUNT:9744208&lt;bb 80&gt;:</text>
<polyline fill="none" stroke="black" points="412,-5134.5 766,-5134.5 "/>
<text text-anchor="start" x="420" y="-5119.3" font-family="Times,serif" font-size="14.00"># _208 = PHI &lt;&#45;1(74), iftmp.10_201(76), iftmp.10_201(79)&gt;</text>
<polyline fill="none" stroke="black" points="412,-5111.5 766,-5111.5 "/>
<text text-anchor="start" x="420" y="-5096.3" font-family="Times,serif" font-size="14.00">_274 = _208;</text>
<polyline fill="none" stroke="black" points="412,-5088.5 766,-5088.5 "/>
<text text-anchor="start" x="420" y="-5073.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="412,-5065.5 766,-5065.5 "/>
<text text-anchor="start" x="420" y="-5050.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="412,-5042.5 766,-5042.5 "/>
<text text-anchor="start" x="420" y="-5027.3" font-family="Times,serif" font-size="14.00">_185 = _274;</text>
<polyline fill="none" stroke="black" points="412,-5019.5 766,-5019.5 "/>
<text text-anchor="start" x="420" y="-5004.3" font-family="Times,serif" font-size="14.00">if (_185 &lt; 0)</text>
<text text-anchor="start" x="420" y="-4989.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 82&gt;; [0.73%]</text>
<text text-anchor="start" x="420" y="-4974.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="420" y="-4959.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 81&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_74&#45;&gt;fn_220_basic_block_80 -->
<g id="edge111" class="edge">
<title>fn_220_basic_block_74:s&#45;&gt;fn_220_basic_block_80:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M325,-6219C325,-6169.9 256.3,-6207.4 227,-6168 141.14,-6052.56 119.5,-5675.23 106,-5532 99.74,-5465.63 62.55,-5282.56 106,-5232 139.24,-5193.32 536.31,-5210.36 584.27,-5167.55"/>
<polygon fill="black" stroke="black" stroke-width="2" points="587.47,-5168.98 589,-5158.5 581.27,-5165.74 587.47,-5168.98"/>
<text text-anchor="middle" x="148" y="-5811.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_76 -->
<g id="node77" class="node">
<title>fn_220_basic_block_76</title>
<polygon fill="lightgrey" stroke="black" points="115,-5317 115,-5447 439,-5447 439,-5317 115,-5317"/>
<text text-anchor="start" x="123" y="-5431.8" font-family="Times,serif" font-size="14.00">COUNT:2901923&lt;bb 76&gt;:</text>
<polyline fill="none" stroke="black" points="115,-5424 439,-5424 "/>
<text text-anchor="start" x="123" y="-5408.8" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="115,-5401 439,-5401 "/>
<text text-anchor="start" x="123" y="-5385.8" font-family="Times,serif" font-size="14.00">_202 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="115,-5378 439,-5378 "/>
<text text-anchor="start" x="123" y="-5362.8" font-family="Times,serif" font-size="14.00">_203 = &amp;MEM[(struct PyBytesObject *)_202].ob_sval;</text>
<polyline fill="none" stroke="black" points="115,-5355 439,-5355 "/>
<text text-anchor="start" x="123" y="-5339.8" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_buffer_raw = _203;</text>
<text text-anchor="start" x="123" y="-5324.8" font-family="Times,serif" font-size="14.00">goto &lt;bb 80&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_75&#45;&gt;fn_220_basic_block_76 -->
<g id="edge113" class="edge">
<title>fn_220_basic_block_75:s&#45;&gt;fn_220_basic_block_76:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M325,-6053C325,-6024.73 296.14,-6028.75 287,-6002 208.47,-5772.15 275.12,-5696.33 276.96,-5458.01"/>
<polygon fill="black" stroke="black" stroke-width="2" points="280.46,-5458.01 277,-5448 273.46,-5457.99 280.46,-5458.01"/>
<text text-anchor="middle" x="266.5" y="-5811.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_77 -->
<g id="node78" class="node">
<title>fn_220_basic_block_77</title>
<polygon fill="lightgrey" stroke="black" points="296,-5841.5 296,-6001.5 596,-6001.5 596,-5841.5 296,-5841.5"/>
<text text-anchor="start" x="304" y="-5986.3" font-family="Times,serif" font-size="14.00">COUNT:6771153&lt;bb 77&gt;:</text>
<polyline fill="none" stroke="black" points="296,-5978.5 596,-5978.5 "/>
<text text-anchor="start" x="304" y="-5963.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="296,-5955.5 596,-5955.5 "/>
<text text-anchor="start" x="304" y="-5940.3" font-family="Times,serif" font-size="14.00">_204 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="296,-5932.5 596,-5932.5 "/>
<text text-anchor="start" x="304" y="-5917.3" font-family="Times,serif" font-size="14.00">_205 = MEM[(struct PyVarObject *)_204].ob_size;</text>
<polyline fill="none" stroke="black" points="296,-5909.5 596,-5909.5 "/>
<text text-anchor="start" x="304" y="-5894.3" font-family="Times,serif" font-size="14.00">if (_205 != 0)</text>
<text text-anchor="start" x="304" y="-5879.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 78&gt;; [50.00%]</text>
<text text-anchor="start" x="304" y="-5864.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="304" y="-5849.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 79&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_75&#45;&gt;fn_220_basic_block_77 -->
<g id="edge114" class="edge">
<title>fn_220_basic_block_75:s&#45;&gt;fn_220_basic_block_77:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M325,-6053C325,-5998.52 430.46,-6052.18 444.47,-6012.06"/>
<polygon fill="black" stroke="black" stroke-width="2" points="447.96,-6012.41 446,-6002 441.04,-6011.36 447.96,-6012.41"/>
<text text-anchor="middle" x="454.5" y="-6023.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_76&#45;&gt;fn_220_basic_block_80 -->
<g id="edge115" class="edge">
<title>fn_220_basic_block_76:s&#45;&gt;fn_220_basic_block_80:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M277,-5316C277,-5279.97 545.54,-5208.66 584.35,-5167.53"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="587.53,-5168.99 589,-5158.5 581.31,-5165.79 587.53,-5168.99"/>
<text text-anchor="middle" x="542" y="-5202.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_78 -->
<g id="node79" class="node">
<title>fn_220_basic_block_78</title>
<polygon fill="lightgrey" stroke="black" points="490,-5663.5 490,-5709.5 878,-5709.5 878,-5663.5 490,-5663.5"/>
<text text-anchor="start" x="498" y="-5694.3" font-family="Times,serif" font-size="14.00">COUNT:3385576&lt;bb 78&gt;:</text>
<polyline fill="none" stroke="black" points="490,-5686.5 878,-5686.5 "/>
<text text-anchor="start" x="498" y="-5671.3" font-family="Times,serif" font-size="14.00">iftmp.11_206 = MEM[(struct PyByteArrayObject *)_204].ob_start;</text>
</g>
<!-- fn_220_basic_block_77&#45;&gt;fn_220_basic_block_78 -->
<g id="edge116" class="edge">
<title>fn_220_basic_block_77:s&#45;&gt;fn_220_basic_block_78:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M446,-5841C446,-5784.1 657.8,-5772.1 681.8,-5720.28"/>
<polygon fill="black" stroke="black" stroke-width="2" points="685.22,-5721.02 684,-5710.5 678.39,-5719.49 685.22,-5721.02"/>
<text text-anchor="middle" x="487.5" y="-5811.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_79 -->
<g id="node80" class="node">
<title>fn_220_basic_block_79</title>
<polygon fill="lightgrey" stroke="black" points="457,-5347.5 457,-5416.5 911,-5416.5 911,-5347.5 457,-5347.5"/>
<text text-anchor="start" x="465" y="-5401.3" font-family="Times,serif" font-size="14.00">COUNT:6771153&lt;bb 79&gt;:</text>
<polyline fill="none" stroke="black" points="457,-5393.5 911,-5393.5 "/>
<text text-anchor="start" x="465" y="-5378.3" font-family="Times,serif" font-size="14.00"># iftmp.11_207 = PHI &lt;&amp;_PyByteArray_empty_string(77), iftmp.11_206(78)&gt;</text>
<polyline fill="none" stroke="black" points="457,-5370.5 911,-5370.5 "/>
<text text-anchor="start" x="465" y="-5355.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_buffer_raw = iftmp.11_207;</text>
</g>
<!-- fn_220_basic_block_77&#45;&gt;fn_220_basic_block_79 -->
<g id="edge117" class="edge">
<title>fn_220_basic_block_77:s&#45;&gt;fn_220_basic_block_79:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M446,-5841C446,-5726.33 392.82,-5684.59 446,-5583 504.07,-5472.09 674.34,-5542.6 683.61,-5428.1"/>
<polygon fill="black" stroke="black" stroke-width="2" points="687.11,-5428.13 684,-5418 680.11,-5427.86 687.11,-5428.13"/>
<text text-anchor="middle" x="463.5" y="-5682.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_78&#45;&gt;fn_220_basic_block_79 -->
<g id="edge118" class="edge">
<title>fn_220_basic_block_78:s&#45;&gt;fn_220_basic_block_79:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M684,-5662.5C684,-5557.34 684,-5528.5 684,-5428.26"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="687.5,-5428 684,-5418 680.5,-5428 687.5,-5428"/>
<text text-anchor="middle" x="705" y="-5553.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_79&#45;&gt;fn_220_basic_block_80 -->
<g id="edge119" class="edge">
<title>fn_220_basic_block_79:s&#45;&gt;fn_220_basic_block_80:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M684,-5346C684,-5256.05 595.92,-5252.1 589.38,-5168.53"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="592.88,-5168.36 589,-5158.5 585.88,-5168.63 592.88,-5168.36"/>
<text text-anchor="middle" x="623" y="-5202.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_80&#45;&gt;fn_220_basic_block_81 -->
<g id="edge121" class="edge">
<title>fn_220_basic_block_80:s&#45;&gt;fn_220_basic_block_81:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M589,-4950.5C589,-4874.37 737.99,-4949.15 751.95,-4887.17"/>
<polygon fill="black" stroke="black" stroke-width="2" points="755.46,-4887.31 753,-4877 748.49,-4886.59 755.46,-4887.31"/>
<text text-anchor="middle" x="765.5" y="-4898.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_82 -->
<g id="node83" class="node">
<title>fn_220_basic_block_82</title>
<polygon fill="lightgrey" stroke="black" points="662,-4032 662,-4284 844,-4284 844,-4032 662,-4032"/>
<text text-anchor="start" x="670" y="-4268.8" font-family="Times,serif" font-size="14.00">COUNT:19488418&lt;bb 82&gt;:</text>
<polyline fill="none" stroke="black" points="662,-4261 844,-4261 "/>
<text text-anchor="start" x="670" y="-4245.8" font-family="Times,serif" font-size="14.00"># _193 = PHI &lt;&#45;1(80), 0(81)&gt;</text>
<polyline fill="none" stroke="black" points="662,-4238 844,-4238 "/>
<text text-anchor="start" x="670" y="-4222.8" font-family="Times,serif" font-size="14.00">_277 = _193;</text>
<polyline fill="none" stroke="black" points="662,-4215 844,-4215 "/>
<text text-anchor="start" x="670" y="-4199.8" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="662,-4192 844,-4192 "/>
<text text-anchor="start" x="670" y="-4176.8" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="662,-4169 844,-4169 "/>
<text text-anchor="start" x="670" y="-4153.8" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="662,-4146 844,-4146 "/>
<text text-anchor="start" x="670" y="-4130.8" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="662,-4123 844,-4123 "/>
<text text-anchor="start" x="670" y="-4107.8" font-family="Times,serif" font-size="14.00">_24 = _277;</text>
<polyline fill="none" stroke="black" points="662,-4100 844,-4100 "/>
<text text-anchor="start" x="670" y="-4084.8" font-family="Times,serif" font-size="14.00">if (_24 &lt; 0)</text>
<text text-anchor="start" x="670" y="-4069.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 96&gt;; [0.73%]</text>
<text text-anchor="start" x="670" y="-4054.8" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="670" y="-4039.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 83&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_80&#45;&gt;fn_220_basic_block_82 -->
<g id="edge120" class="edge">
<title>fn_220_basic_block_80:s&#45;&gt;fn_220_basic_block_82:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M589,-4950.5C589,-4784.45 555.95,-4737.63 598,-4577 634.34,-4438.19 747.52,-4432.14 752.81,-4295.1"/>
<polygon fill="black" stroke="black" stroke-width="2" points="756.31,-4295.06 753,-4285 749.31,-4294.93 756.31,-4295.06"/>
<text text-anchor="middle" x="612" y="-4723.3" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_81&#45;&gt;fn_220_basic_block_82 -->
<g id="edge122" class="edge">
<title>fn_220_basic_block_81:s&#45;&gt;fn_220_basic_block_82:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M753,-4577C753,-4450.64 753,-4416.56 753,-4295.07"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="756.5,-4295 753,-4285 749.5,-4295 756.5,-4295"/>
<text text-anchor="middle" x="774" y="-4547.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_82&#45;&gt;fn_220_basic_block_83 -->
<g id="edge124" class="edge">
<title>fn_220_basic_block_82:s&#45;&gt;fn_220_basic_block_83:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M753,-4031C753,-3858.34 723.2,-3813.82 722.04,-3646.17"/>
<polygon fill="black" stroke="black" stroke-width="2" points="725.53,-3645.99 722,-3636 718.53,-3646.01 725.53,-3645.99"/>
<text text-anchor="middle" x="745.5" y="-3760.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_82&#45;&gt;fn_220_basic_block_96 -->
<g id="edge123" class="edge">
<title>fn_220_basic_block_82:s&#45;&gt;fn_220_basic_block_96:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M753,-4031C753,-3894.8 812.62,-3871.05 846,-3739 876.49,-3618.41 898,-3588.39 898,-3464 898,-3464 898,-3464 898,-1921.5 898,-1643.49 955.32,-1567.16 894,-1296 812.48,-935.49 621.37,-903.77 541,-543 530.47,-495.71 509.58,-361.87 541,-325 554.86,-308.74 625.7,-325.22 646.96,-315.27"/>
<polygon fill="black" stroke="black" stroke-width="2" points="649.93,-317.14 653,-307 644.28,-313.01 649.93,-317.14"/>
<text text-anchor="middle" x="920" y="-1812.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_84 -->
<g id="node85" class="node">
<title>fn_220_basic_block_84</title>
<polygon fill="lightgrey" stroke="black" points="502,-2584.5 502,-3135.5 818,-3135.5 818,-2584.5 502,-2584.5"/>
<text text-anchor="start" x="510" y="-3120.3" font-family="Times,serif" font-size="14.00">COUNT:14692820&lt;bb 84&gt;:</text>
<polyline fill="none" stroke="black" points="502,-3112.5 818,-3112.5 "/>
<text text-anchor="start" x="510" y="-3097.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="502,-3089.5 818,-3089.5 "/>
<text text-anchor="start" x="510" y="-3074.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_39(D)</text>
<polyline fill="none" stroke="black" points="502,-3066.5 818,-3066.5 "/>
<text text-anchor="start" x="510" y="-3051.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; required_210</text>
<polyline fill="none" stroke="black" points="502,-3043.5 818,-3043.5 "/>
<text text-anchor="start" x="510" y="-3028.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_resize</text>
<polyline fill="none" stroke="black" points="502,-3020.5 818,-3020.5 "/>
<text text-anchor="start" x="510" y="-3005.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="502,-2997.5 818,-2997.5 "/>
<text text-anchor="start" x="510" y="-2982.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="502,-2974.5 818,-2974.5 "/>
<text text-anchor="start" x="510" y="-2959.3" font-family="Times,serif" font-size="14.00">_221 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="502,-2951.5 818,-2951.5 "/>
<text text-anchor="start" x="510" y="-2936.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; _221</text>
<polyline fill="none" stroke="black" points="502,-2928.5 818,-2928.5 "/>
<text text-anchor="start" x="510" y="-2913.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="502,-2905.5 818,-2905.5 "/>
<text text-anchor="start" x="510" y="-2890.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY _Py_IS_TYPE</text>
<polyline fill="none" stroke="black" points="502,-2882.5 818,-2882.5 "/>
<text text-anchor="start" x="510" y="-2867.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="502,-2859.5 818,-2859.5 "/>
<text text-anchor="start" x="510" y="-2844.3" font-family="Times,serif" font-size="14.00">_222 = MEM[(const struct PyObject *)_221].ob_type;</text>
<polyline fill="none" stroke="black" points="502,-2836.5 818,-2836.5 "/>
<text text-anchor="start" x="510" y="-2821.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; NULL</text>
<polyline fill="none" stroke="black" points="502,-2813.5 818,-2813.5 "/>
<text text-anchor="start" x="510" y="-2798.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; NULL</text>
<polyline fill="none" stroke="black" points="502,-2790.5 818,-2790.5 "/>
<text text-anchor="start" x="510" y="-2775.3" font-family="Times,serif" font-size="14.00"># DEBUG is_bytes =&gt; _222 == &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="502,-2767.5 818,-2767.5 "/>
<text text-anchor="start" x="510" y="-2752.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="502,-2744.5 818,-2744.5 "/>
<text text-anchor="start" x="510" y="-2729.3" font-family="Times,serif" font-size="14.00">_223 = required_210 * 2;</text>
<polyline fill="none" stroke="black" points="502,-2721.5 818,-2721.5 "/>
<text text-anchor="start" x="510" y="-2706.3" font-family="Times,serif" font-size="14.00">_224 = MAX_EXPR &lt;_223, 8&gt;;</text>
<polyline fill="none" stroke="black" points="502,-2698.5 818,-2698.5 "/>
<text text-anchor="start" x="510" y="-2683.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;max_output_len = _224;</text>
<polyline fill="none" stroke="black" points="502,-2675.5 818,-2675.5 "/>
<text text-anchor="start" x="510" y="-2660.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="502,-2652.5 818,-2652.5 "/>
<text text-anchor="start" x="510" y="-2637.3" font-family="Times,serif" font-size="14.00">if (_222 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="510" y="-2622.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 85&gt;; [30.00%]</text>
<text text-anchor="start" x="510" y="-2607.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="510" y="-2592.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 86&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_83&#45;&gt;fn_220_basic_block_84 -->
<g id="edge125" class="edge">
<title>fn_220_basic_block_83:s&#45;&gt;fn_220_basic_block_84:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M722,-3290C722,-3219.82 665.91,-3210.57 660.43,-3146.34"/>
<polygon fill="black" stroke="black" stroke-width="2" points="663.91,-3145.85 660,-3136 656.92,-3146.14 663.91,-3145.85"/>
<text text-anchor="middle" x="681.5" y="-3157.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_94 -->
<g id="node95" class="node">
<title>fn_220_basic_block_94</title>
<polygon fill="lightgrey" stroke="black" points="298,-594.5 298,-893.5 534,-893.5 534,-594.5 298,-594.5"/>
<text text-anchor="start" x="306" y="-878.3" font-family="Times,serif" font-size="14.00">COUNT:29278382&lt;bb 94&gt;:</text>
<polyline fill="none" stroke="black" points="298,-870.5 534,-870.5 "/>
<text text-anchor="start" x="306" y="-855.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="298,-847.5 534,-847.5 "/>
<text text-anchor="start" x="306" y="-832.3" font-family="Times,serif" font-size="14.00">n.9_213 = 1;</text>
<polyline fill="none" stroke="black" points="298,-824.5 534,-824.5 "/>
<text text-anchor="start" x="306" y="-809.3" font-family="Times,serif" font-size="14.00">_214 = self_39(D)&#45;&gt;output_buffer_raw;</text>
<polyline fill="none" stroke="black" points="298,-801.5 534,-801.5 "/>
<text text-anchor="start" x="306" y="-786.3" font-family="Times,serif" font-size="14.00">_215 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="298,-778.5 534,-778.5 "/>
<text text-anchor="start" x="306" y="-763.3" font-family="Times,serif" font-size="14.00">_216 = (sizetype) _215;</text>
<polyline fill="none" stroke="black" points="298,-755.5 534,-755.5 "/>
<text text-anchor="start" x="306" y="-740.3" font-family="Times,serif" font-size="14.00">_217 = _214 + _216;</text>
<polyline fill="none" stroke="black" points="298,-732.5 534,-732.5 "/>
<text text-anchor="start" x="306" y="-717.3" font-family="Times,serif" font-size="14.00">memcpy (_217, &quot;\&quot;&quot;, n.9_213);</text>
<polyline fill="none" stroke="black" points="298,-709.5 534,-709.5 "/>
<text text-anchor="start" x="306" y="-694.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="298,-686.5 534,-686.5 "/>
<text text-anchor="start" x="306" y="-671.3" font-family="Times,serif" font-size="14.00">_218 = self_39(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="298,-663.5 534,-663.5 "/>
<text text-anchor="start" x="306" y="-648.3" font-family="Times,serif" font-size="14.00">_219 = _218 + 1;</text>
<polyline fill="none" stroke="black" points="298,-640.5 534,-640.5 "/>
<text text-anchor="start" x="306" y="-625.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_len = _219;</text>
<polyline fill="none" stroke="black" points="298,-617.5 534,-617.5 "/>
<text text-anchor="start" x="306" y="-602.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
</g>
<!-- fn_220_basic_block_83&#45;&gt;fn_220_basic_block_94 -->
<g id="edge126" class="edge">
<title>fn_220_basic_block_83:s&#45;&gt;fn_220_basic_block_94:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M722,-3290C722,-3207.16 798.32,-3213.72 827,-3136 869.57,-3020.66 857,-2983.95 857,-2861 857,-2861 857,-2861 857,-2027.5 857,-1977.5 856.38,-1964.98 858,-1915 863.93,-1731.7 875.89,-1686.32 881,-1503 883.56,-1411.04 918.54,-1379.99 881,-1296 785.59,-1082.49 665.39,-1098.54 489,-945 471.87,-930.09 468.81,-924.72 450,-912 439.82,-905.12 426.71,-907.66 420.14,-903.29"/>
<polygon fill="black" stroke="black" stroke-width="2" points="423.27,-901.71 416,-894 416.87,-904.56 423.27,-901.71"/>
<text text-anchor="middle" x="875.5" y="-1918.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_85 -->
<g id="node86" class="node">
<title>fn_220_basic_block_85</title>
<polygon fill="lightgrey" stroke="black" points="520.5,-2410.5 520.5,-2494.5 799.5,-2494.5 799.5,-2410.5 520.5,-2410.5"/>
<text text-anchor="start" x="528.5" y="-2479.3" font-family="Times,serif" font-size="14.00">COUNT:4407846&lt;bb 85&gt;:</text>
<polyline fill="none" stroke="black" points="520.5,-2471.5 799.5,-2471.5 "/>
<text text-anchor="start" x="528.5" y="-2456.3" font-family="Times,serif" font-size="14.00">_225 = &amp;self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="520.5,-2448.5 799.5,-2448.5 "/>
<text text-anchor="start" x="528.5" y="-2433.3" font-family="Times,serif" font-size="14.00">iftmp.10_226 = _PyBytes_Resize (_225, _224);</text>
<text text-anchor="start" x="528.5" y="-2418.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 87&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_84&#45;&gt;fn_220_basic_block_85 -->
<g id="edge127" class="edge">
<title>fn_220_basic_block_84:s&#45;&gt;fn_220_basic_block_85:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M660,-2584C660,-2548.35 660,-2536.94 660,-2505.83"/>
<polygon fill="black" stroke="black" stroke-width="2" points="663.5,-2505.5 660,-2495.5 656.5,-2505.5 663.5,-2505.5"/>
<text text-anchor="middle" x="677.5" y="-2554.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_86 -->
<g id="node87" class="node">
<title>fn_220_basic_block_86</title>
<polygon fill="lightgrey" stroke="black" points="203.5,-2429.5 203.5,-2475.5 502.5,-2475.5 502.5,-2429.5 203.5,-2429.5"/>
<text text-anchor="start" x="211.5" y="-2460.3" font-family="Times,serif" font-size="14.00">COUNT:10284974&lt;bb 86&gt;:</text>
<polyline fill="none" stroke="black" points="203.5,-2452.5 502.5,-2452.5 "/>
<text text-anchor="start" x="211.5" y="-2437.3" font-family="Times,serif" font-size="14.00">iftmp.10_227 = PyByteArray_Resize (_221, _224);</text>
</g>
<!-- fn_220_basic_block_84&#45;&gt;fn_220_basic_block_86 -->
<g id="edge128" class="edge">
<title>fn_220_basic_block_84:s&#45;&gt;fn_220_basic_block_86:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M660,-2584C660,-2575.3 520.21,-2535.87 512,-2533 444.67,-2509.44 361.57,-2547.43 353.62,-2486.66"/>
<polygon fill="black" stroke="black" stroke-width="2" points="357.1,-2486.27 353,-2476.5 350.11,-2486.69 357.1,-2486.27"/>
<text text-anchor="middle" x="635.5" y="-2554.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_87 -->
<g id="node88" class="node">
<title>fn_220_basic_block_87</title>
<polygon fill="lightgrey" stroke="black" points="173,-2160.5 173,-2320.5 533,-2320.5 533,-2160.5 173,-2160.5"/>
<text text-anchor="start" x="181" y="-2305.3" font-family="Times,serif" font-size="14.00">COUNT:14692820&lt;bb 87&gt;:</text>
<polyline fill="none" stroke="black" points="173,-2297.5 533,-2297.5 "/>
<text text-anchor="start" x="181" y="-2282.3" font-family="Times,serif" font-size="14.00"># iftmp.10_228 = PHI &lt;iftmp.10_226(85), iftmp.10_227(86)&gt;</text>
<polyline fill="none" stroke="black" points="173,-2274.5 533,-2274.5 "/>
<text text-anchor="start" x="181" y="-2259.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_228</text>
<polyline fill="none" stroke="black" points="173,-2251.5 533,-2251.5 "/>
<text text-anchor="start" x="181" y="-2236.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="173,-2228.5 533,-2228.5 "/>
<text text-anchor="start" x="181" y="-2213.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_228 &lt; 0)</text>
<text text-anchor="start" x="181" y="-2198.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 93&gt;; [0.73%]</text>
<text text-anchor="start" x="181" y="-2183.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="181" y="-2168.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 88&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_85&#45;&gt;fn_220_basic_block_87 -->
<g id="edge129" class="edge">
<title>fn_220_basic_block_85:s&#45;&gt;fn_220_basic_block_87:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M660,-2409.5C660,-2401.54 413.27,-2343.86 362.19,-2325.61"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="363.51,-2322.35 353,-2321 360.37,-2328.61 363.51,-2322.35"/>
<text text-anchor="middle" x="482" y="-2342.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_86&#45;&gt;fn_220_basic_block_87 -->
<g id="edge130" class="edge">
<title>fn_220_basic_block_86:s&#45;&gt;fn_220_basic_block_87:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M353,-2428.5C353,-2384.27 353,-2370.75 353,-2331.08"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="356.5,-2331 353,-2321 349.5,-2331 356.5,-2331"/>
<text text-anchor="middle" x="374" y="-2342.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_88 -->
<g id="node89" class="node">
<title>fn_220_basic_block_88</title>
<polygon fill="lightgrey" stroke="black" points="263.5,-1971.5 263.5,-2085.5 442.5,-2085.5 442.5,-1971.5 263.5,-1971.5"/>
<text text-anchor="start" x="271.5" y="-2070.3" font-family="Times,serif" font-size="14.00">COUNT:14585563&lt;bb 88&gt;:</text>
<polyline fill="none" stroke="black" points="263.5,-2062.5 442.5,-2062.5 "/>
<text text-anchor="start" x="271.5" y="-2047.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="263.5,-2039.5 442.5,-2039.5 "/>
<text text-anchor="start" x="271.5" y="-2024.3" font-family="Times,serif" font-size="14.00">if (_222 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="271.5" y="-2009.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 89&gt;; [30.00%]</text>
<text text-anchor="start" x="271.5" y="-1994.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="271.5" y="-1979.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 90&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_87&#45;&gt;fn_220_basic_block_88 -->
<g id="edge132" class="edge">
<title>fn_220_basic_block_87:s&#45;&gt;fn_220_basic_block_88:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M353,-2160C353,-2131.03 353,-2121.33 353,-2096.73"/>
<polygon fill="black" stroke="black" stroke-width="2" points="356.5,-2096.5 353,-2086.5 349.5,-2096.5 356.5,-2096.5"/>
<text text-anchor="middle" x="370.5" y="-2130.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_93 -->
<g id="node94" class="node">
<title>fn_220_basic_block_93</title>
<polygon fill="lightgrey" stroke="black" points="126,-992 126,-1198 480,-1198 480,-992 126,-992"/>
<text text-anchor="start" x="134" y="-1182.8" font-family="Times,serif" font-size="14.00">COUNT:14692820&lt;bb 93&gt;:</text>
<polyline fill="none" stroke="black" points="126,-1175 480,-1175 "/>
<text text-anchor="start" x="134" y="-1159.8" font-family="Times,serif" font-size="14.00"># _235 = PHI &lt;&#45;1(87), iftmp.10_228(89), iftmp.10_228(92)&gt;</text>
<polyline fill="none" stroke="black" points="126,-1152 480,-1152 "/>
<text text-anchor="start" x="134" y="-1136.8" font-family="Times,serif" font-size="14.00">_283 = _235;</text>
<polyline fill="none" stroke="black" points="126,-1129 480,-1129 "/>
<text text-anchor="start" x="134" y="-1113.8" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="126,-1106 480,-1106 "/>
<text text-anchor="start" x="134" y="-1090.8" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="126,-1083 480,-1083 "/>
<text text-anchor="start" x="134" y="-1067.8" font-family="Times,serif" font-size="14.00">_212 = _283;</text>
<polyline fill="none" stroke="black" points="126,-1060 480,-1060 "/>
<text text-anchor="start" x="134" y="-1044.8" font-family="Times,serif" font-size="14.00">if (_212 &lt; 0)</text>
<text text-anchor="start" x="134" y="-1029.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 95&gt;; [0.73%]</text>
<text text-anchor="start" x="134" y="-1014.8" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="134" y="-999.8" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 94&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_87&#45;&gt;fn_220_basic_block_93 -->
<g id="edge131" class="edge">
<title>fn_220_basic_block_87:s&#45;&gt;fn_220_basic_block_93:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M353,-2160C353,-2110.9 288.37,-2145.02 255,-2109 115.75,-1958.69 118.91,-1884.92 74,-1685 55.05,-1600.64 18.87,-1367.82 67,-1296 128.16,-1204.74 292.3,-1305.69 302.5,-1208.99"/>
<polygon fill="black" stroke="black" stroke-width="2" points="306,-1209.16 303,-1199 299.01,-1208.81 306,-1209.16"/>
<text text-anchor="middle" x="94" y="-1706.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_89 -->
<g id="node90" class="node">
<title>fn_220_basic_block_89</title>
<polygon fill="lightgrey" stroke="black" points="548,-1334.5 548,-1464.5 872,-1464.5 872,-1334.5 548,-1334.5"/>
<text text-anchor="start" x="556" y="-1449.3" font-family="Times,serif" font-size="14.00">COUNT:4375668&lt;bb 89&gt;:</text>
<polyline fill="none" stroke="black" points="548,-1441.5 872,-1441.5 "/>
<text text-anchor="start" x="556" y="-1426.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="548,-1418.5 872,-1418.5 "/>
<text text-anchor="start" x="556" y="-1403.3" font-family="Times,serif" font-size="14.00">_229 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="548,-1395.5 872,-1395.5 "/>
<text text-anchor="start" x="556" y="-1380.3" font-family="Times,serif" font-size="14.00">_230 = &amp;MEM[(struct PyBytesObject *)_229].ob_sval;</text>
<polyline fill="none" stroke="black" points="548,-1372.5 872,-1372.5 "/>
<text text-anchor="start" x="556" y="-1357.3" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_buffer_raw = _230;</text>
<text text-anchor="start" x="556" y="-1342.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 93&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_88&#45;&gt;fn_220_basic_block_89 -->
<g id="edge133" class="edge">
<title>fn_220_basic_block_88:s&#45;&gt;fn_220_basic_block_89:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M353,-1970.5C353,-1933.98 474.31,-1922.96 500,-1897 647.59,-1747.82 708.04,-1680.95 709.95,-1475.7"/>
<polygon fill="black" stroke="black" stroke-width="2" points="713.45,-1475.52 710,-1465.5 706.45,-1475.48 713.45,-1475.52"/>
<text text-anchor="middle" x="678.5" y="-1706.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_90 -->
<g id="node91" class="node">
<title>fn_220_basic_block_90</title>
<polygon fill="lightgrey" stroke="black" points="191,-1736.5 191,-1896.5 491,-1896.5 491,-1736.5 191,-1736.5"/>
<text text-anchor="start" x="199" y="-1881.3" font-family="Times,serif" font-size="14.00">COUNT:10209893&lt;bb 90&gt;:</text>
<polyline fill="none" stroke="black" points="191,-1873.5 491,-1873.5 "/>
<text text-anchor="start" x="199" y="-1858.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="191,-1850.5 491,-1850.5 "/>
<text text-anchor="start" x="199" y="-1835.3" font-family="Times,serif" font-size="14.00">_231 = self_39(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="191,-1827.5 491,-1827.5 "/>
<text text-anchor="start" x="199" y="-1812.3" font-family="Times,serif" font-size="14.00">_232 = MEM[(struct PyVarObject *)_231].ob_size;</text>
<polyline fill="none" stroke="black" points="191,-1804.5 491,-1804.5 "/>
<text text-anchor="start" x="199" y="-1789.3" font-family="Times,serif" font-size="14.00">if (_232 != 0)</text>
<text text-anchor="start" x="199" y="-1774.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 91&gt;; [50.00%]</text>
<text text-anchor="start" x="199" y="-1759.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="199" y="-1744.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 92&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_88&#45;&gt;fn_220_basic_block_90 -->
<g id="edge134" class="edge">
<title>fn_220_basic_block_88:s&#45;&gt;fn_220_basic_block_90:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M353,-1970.5C353,-1941.02 343.48,-1932.01 341.4,-1907"/>
<polygon fill="black" stroke="black" stroke-width="2" points="344.9,-1906.85 341,-1897 337.9,-1907.13 344.9,-1906.85"/>
<text text-anchor="middle" x="362.5" y="-1918.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_89&#45;&gt;fn_220_basic_block_93 -->
<g id="edge135" class="edge">
<title>fn_220_basic_block_89:s&#45;&gt;fn_220_basic_block_93:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M710,-1333.5C710,-1241.78 332.65,-1290.31 304.64,-1209"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="308.07,-1208.3 303,-1199 301.17,-1209.43 308.07,-1208.3"/>
<text text-anchor="middle" x="621" y="-1266.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_91 -->
<g id="node92" class="node">
<title>fn_220_basic_block_91</title>
<polygon fill="lightgrey" stroke="black" points="147,-1596.5 147,-1642.5 535,-1642.5 535,-1596.5 147,-1596.5"/>
<text text-anchor="start" x="155" y="-1627.3" font-family="Times,serif" font-size="14.00">COUNT:5104947&lt;bb 91&gt;:</text>
<polyline fill="none" stroke="black" points="147,-1619.5 535,-1619.5 "/>
<text text-anchor="start" x="155" y="-1604.3" font-family="Times,serif" font-size="14.00">iftmp.11_233 = MEM[(struct PyByteArrayObject *)_231].ob_start;</text>
</g>
<!-- fn_220_basic_block_90&#45;&gt;fn_220_basic_block_91 -->
<g id="edge136" class="edge">
<title>fn_220_basic_block_90:s&#45;&gt;fn_220_basic_block_91:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M341,-1736C341,-1698.58 341,-1686.71 341,-1653.88"/>
<polygon fill="black" stroke="black" stroke-width="2" points="344.5,-1653.5 341,-1643.5 337.5,-1653.5 344.5,-1653.5"/>
<text text-anchor="middle" x="358.5" y="-1706.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_92 -->
<g id="node93" class="node">
<title>fn_220_basic_block_92</title>
<polygon fill="lightgrey" stroke="black" points="76,-1365 76,-1434 530,-1434 530,-1365 76,-1365"/>
<text text-anchor="start" x="84" y="-1418.8" font-family="Times,serif" font-size="14.00">COUNT:10209893&lt;bb 92&gt;:</text>
<polyline fill="none" stroke="black" points="76,-1411 530,-1411 "/>
<text text-anchor="start" x="84" y="-1395.8" font-family="Times,serif" font-size="14.00"># iftmp.11_234 = PHI &lt;&amp;_PyByteArray_empty_string(90), iftmp.11_233(91)&gt;</text>
<polyline fill="none" stroke="black" points="76,-1388 530,-1388 "/>
<text text-anchor="start" x="84" y="-1372.8" font-family="Times,serif" font-size="14.00">self_39(D)&#45;&gt;output_buffer_raw = iftmp.11_234;</text>
</g>
<!-- fn_220_basic_block_90&#45;&gt;fn_220_basic_block_92 -->
<g id="edge137" class="edge">
<title>fn_220_basic_block_90:s&#45;&gt;fn_220_basic_block_92:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M341,-1736C341,-1681.91 137,-1727.06 103,-1685 66.4,-1639.72 74.17,-1604.59 103,-1554 152.36,-1467.39 292.66,-1533.78 302.46,-1445.75"/>
<polygon fill="black" stroke="black" stroke-width="2" points="305.97,-1445.67 303,-1435.5 298.98,-1445.3 305.97,-1445.67"/>
<text text-anchor="middle" x="120.5" y="-1615.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_91&#45;&gt;fn_220_basic_block_92 -->
<g id="edge138" class="edge">
<title>fn_220_basic_block_91:s&#45;&gt;fn_220_basic_block_92:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M341,-1595.5C341,-1525.98 306.62,-1510.08 303.26,-1445.8"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="306.75,-1445.41 303,-1435.5 299.76,-1445.59 306.75,-1445.41"/>
<text text-anchor="middle" x="350" y="-1524.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_92&#45;&gt;fn_220_basic_block_93 -->
<g id="edge139" class="edge">
<title>fn_220_basic_block_92:s&#45;&gt;fn_220_basic_block_93:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M303,-1363.5C303,-1293.96 303,-1274.03 303,-1209.33"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="306.5,-1209 303,-1199 299.5,-1209 306.5,-1209"/>
<text text-anchor="middle" x="324" y="-1266.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_93&#45;&gt;fn_220_basic_block_94 -->
<g id="edge141" class="edge">
<title>fn_220_basic_block_93:s&#45;&gt;fn_220_basic_block_94:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M303,-991C303,-928.43 403.98,-956.62 415.02,-903.98"/>
<polygon fill="black" stroke="black" stroke-width="2" points="418.51,-904.29 416,-894 411.54,-903.61 418.51,-904.29"/>
<text text-anchor="middle" x="428.5" y="-915.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_95 -->
<g id="node96" class="node">
<title>fn_220_basic_block_95</title>
<polygon fill="lightgrey" stroke="black" points="325,-358.5 325,-542.5 507,-542.5 507,-358.5 325,-358.5"/>
<text text-anchor="start" x="333" y="-527.3" font-family="Times,serif" font-size="14.00">COUNT:29385640&lt;bb 95&gt;:</text>
<polyline fill="none" stroke="black" points="325,-519.5 507,-519.5 "/>
<text text-anchor="start" x="333" y="-504.3" font-family="Times,serif" font-size="14.00"># _220 = PHI &lt;&#45;1(93), 0(94)&gt;</text>
<polyline fill="none" stroke="black" points="325,-496.5 507,-496.5 "/>
<text text-anchor="start" x="333" y="-481.3" font-family="Times,serif" font-size="14.00">_286 = _220;</text>
<polyline fill="none" stroke="black" points="325,-473.5 507,-473.5 "/>
<text text-anchor="start" x="333" y="-458.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="325,-450.5 507,-450.5 "/>
<text text-anchor="start" x="333" y="-435.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="325,-427.5 507,-427.5 "/>
<text text-anchor="start" x="333" y="-412.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="325,-404.5 507,-404.5 "/>
<text text-anchor="start" x="333" y="-389.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="325,-381.5 507,-381.5 "/>
<text text-anchor="start" x="333" y="-366.3" font-family="Times,serif" font-size="14.00">_43 = _286;</text>
</g>
<!-- fn_220_basic_block_93&#45;&gt;fn_220_basic_block_95 -->
<g id="edge140" class="edge">
<title>fn_220_basic_block_93:s&#45;&gt;fn_220_basic_block_95:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M303,-991C303,-944.02 270.53,-940 261,-894 233.95,-763.44 182.83,-702.01 261,-594 280.1,-567.61 389.99,-576.74 412.12,-552.57"/>
<polygon fill="black" stroke="black" stroke-width="2" points="415.49,-553.58 416,-543 409,-550.95 415.49,-553.58"/>
<text text-anchor="middle" x="275" y="-740.3" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_94&#45;&gt;fn_220_basic_block_95 -->
<g id="edge142" class="edge">
<title>fn_220_basic_block_94:s&#45;&gt;fn_220_basic_block_95:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M416,-594C416,-575.23 416,-568.12 416,-553.35"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="419.5,-553 416,-543 412.5,-553 419.5,-553"/>
<text text-anchor="middle" x="437" y="-564.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_95&#45;&gt;fn_220_basic_block_96 -->
<g id="edge143" class="edge">
<title>fn_220_basic_block_95:s&#45;&gt;fn_220_basic_block_96:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M416,-358C416,-326.39 448.74,-334.12 479,-325 495.07,-320.16 613.07,-324.75 645.03,-313.59"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="647.52,-316.07 653,-307 643.06,-310.67 647.52,-316.07"/>
<text text-anchor="middle" x="500" y="-328.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_96&#45;&gt;fn_220_basic_block_1 -->
<g id="edge144" class="edge">
<title>fn_220_basic_block_96:s&#45;&gt;fn_220_basic_block_1:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M653,-214C653,-172.59 653,-159.69 653,-122.96"/>
<polygon fill="black" stroke="black" stroke-width="2" points="656.5,-122.5 653,-112.5 649.5,-122.5 656.5,-122.5"/>
<text text-anchor="middle" x="674" y="-184.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
</g>
</svg>
@jcrist
Copy link

jcrist commented Jul 22, 2021

Thanks for this excellent writeup! I definitely learned a few things here.

A few questions:

  • Your compiler flags differed from mine, with the addition of -O3 -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic. I found that of these, the only one that made any difference (on my hardware) was -fno-plt, which resulted in a measurable speedup on all compilers tested. After reading a bit about this flag, I'm not sure if I should enable it or not? My understanding is it has something to do with how functions in dynamic libraries are called by the code being compiled? (edit: I no longer can reproduce this flag having any affect on benchmarks. May have been measurement error before, or some other change has negated it 🤷)
  • I noticed you only used perf to find hot functions, but not to analyze line-by-line the contents of any specific function. Over the weekend I spent a bit of time trying to use perf report to annotate different versions of the same function to try and gain some insights, and found the line annotations less useful than I would have hoped (though this is likely due to my lack of experience). Do you ever use perf to look at costs within a function, or only to hone in on which functions are hot spots?
  • Google doesn't turn up many resources for how to read the dot graphs above. I think I get the gist of what's going on here, but a resource (if you have one) for how to best use this output would be welcome.

Thanks again for the time you took to look into this and write this up!

@llllllllll
Copy link
Author

Regarding the compiler flags: I usually have set the flags explicitly. The default is "whatever your CPython is compiled with", which might not be optimal for your program. -fno-plt changes how this library will resolve calls to function in other shared objects (CPython), usually making them more efficient. Your library isn't bottlenecked on lots of calls to small functions, so I wouldn't expect to see a huge improvement. As for noise in your tests: make sure you've disabled frequency scaling and try to kill any expensive programs that might be taking up a lot of resources, or may take up resources at a random time. The $ sudo cpupower frequency-set -g performance command is what I use to make sure that my CPU isnot downclocking to save electricity. I also usually watch htop while running benchmarks to make sure that some systemd timer hasn't fired and done some expensive task while I am trying to benchmark things. Even still, I run many runs just to smooth all of this out.

Understanding perf output on a line-by-line basis is not always easy. For gcc, perf reported that the most stalls and the most cycles were spent on if (escape == 0) continue. However, there isn't really anything to optimize there. I thought about some simd lookup table stuff, and other tricks to maybe speed up the escaped lookup, but they didn't really help. Modern CPUs are incredibly complicated and it makes it hard to attribute performance to a single line or even instruction without thinking deeply about the whole execution pipeline. If you are targeting a single architecture it might be worth doing that analysis, but for a library like this it is almost always better to just look at the function as a whole.

I can't find any good resources right now, but I will keep looking and let you know if I find something. I do know that playing around with gcc jit (https://gcc.gnu.org/onlinedocs/jit/) helped me understand a bit about how GCC thinks about program structure. The form shown is the basic block control graph. At this stage, the code will be in SSA (Static Single Assignment https://gcc.gnu.org/onlinedocs/gccint/SSA.html) form. This means that variables always hold a single value (with some rules for passing values between blocks for things like loops). You will also see a bunch of tmp variables because all of the expressions are decomposed in this form. Basic blocks always end by jumping to another block, or returning. They can also conditionally jump as most of these blocks do, but inside a block there is no branching or complex control flow. GCC also implements most control flow as gotos at this point, so you will see something like:

if (a) {
    b;
}
c;

turn into something like:

if (a) {
    goto label_0;
}
else {
    goto label_1;
}
label_0:
b;
goto label_1;
label1:
c;
return;

This is really verbose, but also simple because it means there is only 1 kind of jump to think about. The main insights I get from this representation are:

  • how many branches do we have and what is the basic program structure (after inlining and optimizations which can look very different from the source)
  • how are things being inlined and optimized after inlining
  • what's gcc's guess on the likelihood of various conditions

generally, it's good to aim to minimize the branches because that gives the compiler more room to optimize and also generally is better for the actual processor.

This was fun to look at, and the code looks very good. Happy to chat more about this any time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment