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
<?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="3573pt" height="14895pt"
viewBox="0.00 0.00 3572.98 14895.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 14891)">
<title>small.graph</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-14891 3568.98,-14891 3568.98,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_json_encode_str</title>
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="17.24,-8 17.24,-14879 3554.24,-14879 3554.24,-8 17.24,-8"/>
<text text-anchor="middle" x="1785.74" y="-14863.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="25.24,-16 25.24,-11497 2279.24,-11497 2279.24,-16 25.24,-16"/>
<text text-anchor="middle" x="50.74" y="-11481.8" font-family="Times,serif" font-size="14.00">loop 1</text>
</g>
<!-- fn_220_basic_block_16 -->
<g id="node1" class="node">
<title>fn_220_basic_block_16</title>
<polygon fill="lightgrey" stroke="black" points="1007.24,-10983.5 1007.24,-11465.5 1365.24,-11465.5 1365.24,-10983.5 1007.24,-10983.5"/>
<text text-anchor="start" x="1015.24" y="-11450.3" font-family="Times,serif" font-size="14.00">COUNT:1044213921&lt;bb 16&gt;:</text>
<polyline fill="none" stroke="black" points="1007.24,-11442.5 1365.24,-11442.5 "/>
<text text-anchor="start" x="1015.24" y="-11427.3" font-family="Times,serif" font-size="14.00"># start_370 = PHI &lt;start_22(52), 0(15)&gt;</text>
<polyline fill="none" stroke="black" points="1007.24,-11419.5 1365.24,-11419.5 "/>
<text text-anchor="start" x="1015.24" y="-11404.3" font-family="Times,serif" font-size="14.00"># prephitmp_256 = PHI &lt;prephitmp_346(52), _58(15)&gt;</text>
<polyline fill="none" stroke="black" points="1007.24,-11396.5 1365.24,-11396.5 "/>
<text text-anchor="start" x="1015.24" y="-11381.3" font-family="Times,serif" font-size="14.00"># prephitmp_253 = PHI &lt;prephitmp_349(52), len.49_64(15)&gt;</text>
<polyline fill="none" stroke="black" points="1007.24,-11373.5 1365.24,-11373.5 "/>
<text text-anchor="start" x="1015.24" y="-11358.3" font-family="Times,serif" font-size="14.00"># ivtmp.1187_391 = PHI &lt;ivtmp.1187_390(52), 0(15)&gt;</text>
<polyline fill="none" stroke="black" points="1007.24,-11350.5 1365.24,-11350.5 "/>
<text text-anchor="start" x="1015.24" y="-11335.3" font-family="Times,serif" font-size="14.00">i_358 = (Py_ssize_t) ivtmp.1187_391;</text>
<polyline fill="none" stroke="black" points="1007.24,-11327.5 1365.24,-11327.5 "/>
<text text-anchor="start" x="1015.24" y="-11312.3" font-family="Times,serif" font-size="14.00"># DEBUG start =&gt; start_370</text>
<polyline fill="none" stroke="black" points="1007.24,-11304.5 1365.24,-11304.5 "/>
<text text-anchor="start" x="1015.24" y="-11289.3" font-family="Times,serif" font-size="14.00"># DEBUG i =&gt; i_358</text>
<polyline fill="none" stroke="black" points="1007.24,-11281.5 1365.24,-11281.5 "/>
<text text-anchor="start" x="1015.24" y="-11266.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1007.24,-11258.5 1365.24,-11258.5 "/>
<text text-anchor="start" x="1015.24" y="-11243.3" font-family="Times,serif" font-size="14.00">c_36 = MEM[(const char *)_395 + ivtmp.1187_391 * 1];</text>
<polyline fill="none" stroke="black" points="1007.24,-11235.5 1365.24,-11235.5 "/>
<text text-anchor="start" x="1015.24" y="-11220.3" font-family="Times,serif" font-size="14.00"># DEBUG c =&gt; c_36</text>
<polyline fill="none" stroke="black" points="1007.24,-11212.5 1365.24,-11212.5 "/>
<text text-anchor="start" x="1015.24" y="-11197.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1007.24,-11189.5 1365.24,-11189.5 "/>
<text text-anchor="start" x="1015.24" y="-11174.3" font-family="Times,serif" font-size="14.00">c.47_4 = (unsigned char) c_36;</text>
<polyline fill="none" stroke="black" points="1007.24,-11166.5 1365.24,-11166.5 "/>
<text text-anchor="start" x="1015.24" y="-11151.3" font-family="Times,serif" font-size="14.00">_5 = (int) c.47_4;</text>
<polyline fill="none" stroke="black" points="1007.24,-11143.5 1365.24,-11143.5 "/>
<text text-anchor="start" x="1015.24" y="-11128.3" font-family="Times,serif" font-size="14.00">escape_37 = escape_table[_5];</text>
<polyline fill="none" stroke="black" points="1007.24,-11120.5 1365.24,-11120.5 "/>
<text text-anchor="start" x="1015.24" y="-11105.3" font-family="Times,serif" font-size="14.00"># DEBUG escape =&gt; escape_37</text>
<polyline fill="none" stroke="black" points="1007.24,-11097.5 1365.24,-11097.5 "/>
<text text-anchor="start" x="1015.24" y="-11082.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1007.24,-11074.5 1365.24,-11074.5 "/>
<text text-anchor="start" x="1015.24" y="-11059.3" font-family="Times,serif" font-size="14.00">pretmp_338 = self_35(D)&#45;&gt;max_output_len;</text>
<polyline fill="none" stroke="black" points="1007.24,-11051.5 1365.24,-11051.5 "/>
<text text-anchor="start" x="1015.24" y="-11036.3" font-family="Times,serif" font-size="14.00">if (escape_37 == 0)</text>
<text text-anchor="start" x="1015.24" y="-11021.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 17&gt;; [33.00%]</text>
<text text-anchor="start" x="1015.24" y="-11006.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1015.24" y="-10991.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 18&gt;; [67.00%]</text>
</g>
<!-- fn_220_basic_block_17 -->
<g id="node2" class="node">
<title>fn_220_basic_block_17</title>
<polygon fill="lightgrey" stroke="black" points="759.24,-436 759.24,-520 937.24,-520 937.24,-436 759.24,-436"/>
<text text-anchor="start" x="767.24" y="-504.8" font-family="Times,serif" font-size="14.00">COUNT:344590592&lt;bb 17&gt;:</text>
<polyline fill="none" stroke="black" points="759.24,-497 937.24,-497 "/>
<text text-anchor="start" x="767.24" y="-481.8" font-family="Times,serif" font-size="14.00">_386 = ivtmp.1187_391 + 1;</text>
<polyline fill="none" stroke="black" points="759.24,-474 937.24,-474 "/>
<text text-anchor="start" x="767.24" y="-458.8" font-family="Times,serif" font-size="14.00">_385 = (long int) _386;</text>
<text text-anchor="start" x="767.24" y="-443.8" font-family="Times,serif" font-size="14.00">goto &lt;bb 52&gt;; [100.00%]</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="M1186.24,-10983C1186.24,-10851.9 51.24,-10791.6 51.24,-10660.5 51.24,-10660.5 51.24,-10660.5 51.24,-6577 51.24,-6109 50.24,-5992 50.24,-5524 50.24,-5524 50.24,-5524 50.24,-3488.5 50.24,-2497.6 -126.46,-2203.93 184.24,-1263 284.06,-960.73 278.33,-836.73 521.24,-631 635.51,-534.22 838.45,-667.79 847.9,-531.3"/>
<polygon fill="black" stroke="black" stroke-width="2" points="851.41,-531.11 848.24,-521 844.41,-530.88 851.41,-531.11"/>
<text text-anchor="middle" x="68.74" y="-6164.8" font-family="Times,serif" font-size="14.00">[33%]</text>
</g>
<!-- fn_220_basic_block_18 -->
<g id="node3" class="node">
<title>fn_220_basic_block_18</title>
<polygon fill="lightgrey" stroke="black" points="1097.24,-10602.5 1097.24,-10716.5 1275.24,-10716.5 1275.24,-10602.5 1097.24,-10602.5"/>
<text text-anchor="start" x="1105.24" y="-10701.3" font-family="Times,serif" font-size="14.00">COUNT:699623329&lt;bb 18&gt;:</text>
<polyline fill="none" stroke="black" points="1097.24,-10693.5 1275.24,-10693.5 "/>
<text text-anchor="start" x="1105.24" y="-10678.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1097.24,-10670.5 1275.24,-10670.5 "/>
<text text-anchor="start" x="1105.24" y="-10655.3" font-family="Times,serif" font-size="14.00">if (i_358 &gt; start_370)</text>
<text text-anchor="start" x="1105.24" y="-10640.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 19&gt;; [50.00%]</text>
<text text-anchor="start" x="1105.24" y="-10625.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1105.24" y="-10610.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 29&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_16&#45;&gt;fn_220_basic_block_18 -->
<g id="edge25" 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="M1186.24,-10983C1186.24,-10868.24 1186.24,-10837.03 1186.24,-10727.17"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1189.74,-10727 1186.24,-10717 1182.74,-10727 1189.74,-10727"/>
<text text-anchor="middle" x="1203.74" y="-10846.3" font-family="Times,serif" font-size="14.00">[67%]</text>
</g>
<!-- fn_220_basic_block_52 -->
<g id="node4" class="node">
<title>fn_220_basic_block_52</title>
<polygon fill="lightgrey" stroke="black" points="892.74,-24.5 892.74,-345.5 1279.74,-345.5 1279.74,-24.5 892.74,-24.5"/>
<text text-anchor="start" x="900.74" y="-330.3" font-family="Times,serif" font-size="14.00">COUNT:1043448021&lt;bb 52&gt;:</text>
<polyline fill="none" stroke="black" points="892.74,-322.5 1279.74,-322.5 "/>
<text text-anchor="start" x="900.74" y="-307.3" font-family="Times,serif" font-size="14.00"># start_22 = PHI &lt;start_370(17), _387(51)&gt;</text>
<polyline fill="none" stroke="black" points="892.74,-299.5 1279.74,-299.5 "/>
<text text-anchor="start" x="900.74" y="-284.3" font-family="Times,serif" font-size="14.00"># prephitmp_349 = PHI &lt;prephitmp_253(17), pretmp_312(51)&gt;</text>
<polyline fill="none" stroke="black" points="892.74,-276.5 1279.74,-276.5 "/>
<text text-anchor="start" x="900.74" y="-261.3" font-family="Times,serif" font-size="14.00"># prephitmp_347 = PHI &lt;_385(17), _387(51)&gt;</text>
<polyline fill="none" stroke="black" points="892.74,-253.5 1279.74,-253.5 "/>
<text text-anchor="start" x="900.74" y="-238.3" font-family="Times,serif" font-size="14.00"># prephitmp_346 = PHI &lt;prephitmp_256(17), prephitmp_350(51)&gt;</text>
<polyline fill="none" stroke="black" points="892.74,-230.5 1279.74,-230.5 "/>
<text text-anchor="start" x="900.74" y="-215.3" font-family="Times,serif" font-size="14.00"># DEBUG start =&gt; start_22</text>
<polyline fill="none" stroke="black" points="892.74,-207.5 1279.74,-207.5 "/>
<text text-anchor="start" x="900.74" y="-192.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="892.74,-184.5 1279.74,-184.5 "/>
<text text-anchor="start" x="900.74" y="-169.3" font-family="Times,serif" font-size="14.00"># DEBUG start =&gt; start_22</text>
<polyline fill="none" stroke="black" points="892.74,-161.5 1279.74,-161.5 "/>
<text text-anchor="start" x="900.74" y="-146.3" font-family="Times,serif" font-size="14.00"># DEBUG i =&gt; i_358 + 1</text>
<polyline fill="none" stroke="black" points="892.74,-138.5 1279.74,-138.5 "/>
<text text-anchor="start" x="900.74" y="-123.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="892.74,-115.5 1279.74,-115.5 "/>
<text text-anchor="start" x="900.74" y="-100.3" font-family="Times,serif" font-size="14.00">ivtmp.1187_390 = ivtmp.1187_391 + 1;</text>
<polyline fill="none" stroke="black" points="892.74,-92.5 1279.74,-92.5 "/>
<text text-anchor="start" x="900.74" y="-77.3" font-family="Times,serif" font-size="14.00">if (prephitmp_347 &lt; prephitmp_349)</text>
<text text-anchor="start" x="900.74" y="-62.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 16&gt;; [97.25%]</text>
<text text-anchor="start" x="900.74" y="-47.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="900.74" y="-32.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 53&gt;; [2.75%]</text>
</g>
<!-- fn_220_basic_block_17&#45;&gt;fn_220_basic_block_52 -->
<g id="edge26" class="edge">
<title>fn_220_basic_block_17:s&#45;&gt;fn_220_basic_block_52:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M848.24,-435C848.24,-387.87 903.12,-413.56 947.24,-397 948.86,-396.39 1045.8,-362.28 1076.81,-350.16"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1078.5,-353.24 1086.24,-346 1075.68,-346.83 1078.5,-353.24"/>
<text text-anchor="middle" x="1058.24" y="-367.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_19 -->
<g id="node5" class="node">
<title>fn_220_basic_block_19</title>
<polygon fill="lightgrey" stroke="black" points="1182.24,-9830.5 1182.24,-10197.5 1412.24,-10197.5 1412.24,-9830.5 1182.24,-9830.5"/>
<text text-anchor="start" x="1190.24" y="-10182.3" font-family="Times,serif" font-size="14.00">COUNT:349811664&lt;bb 19&gt;:</text>
<polyline fill="none" stroke="black" points="1182.24,-10174.5 1412.24,-10174.5 "/>
<text text-anchor="start" x="1190.24" y="-10159.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1182.24,-10151.5 1412.24,-10151.5 "/>
<text text-anchor="start" x="1190.24" y="-10136.3" font-family="Times,serif" font-size="14.00">_6 = i_358 &#45; start_370;</text>
<polyline fill="none" stroke="black" points="1182.24,-10128.5 1412.24,-10128.5 "/>
<text text-anchor="start" x="1190.24" y="-10113.3" font-family="Times,serif" font-size="14.00">start.48_7 = (sizetype) start_370;</text>
<polyline fill="none" stroke="black" points="1182.24,-10105.5 1412.24,-10105.5 "/>
<text text-anchor="start" x="1190.24" y="-10090.3" font-family="Times,serif" font-size="14.00">_8 = _395 + start.48_7;</text>
<polyline fill="none" stroke="black" points="1182.24,-10082.5 1412.24,-10082.5 "/>
<text text-anchor="start" x="1190.24" y="-10067.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_35(D)</text>
<polyline fill="none" stroke="black" points="1182.24,-10059.5 1412.24,-10059.5 "/>
<text text-anchor="start" x="1190.24" y="-10044.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; _8</text>
<polyline fill="none" stroke="black" points="1182.24,-10036.5 1412.24,-10036.5 "/>
<text text-anchor="start" x="1190.24" y="-10021.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; _6</text>
<polyline fill="none" stroke="black" points="1182.24,-10013.5 1412.24,-10013.5 "/>
<text text-anchor="start" x="1190.24" y="-9998.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_write</text>
<polyline fill="none" stroke="black" points="1182.24,-9990.5 1412.24,-9990.5 "/>
<text text-anchor="start" x="1190.24" y="-9975.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1182.24,-9967.5 1412.24,-9967.5 "/>
<text text-anchor="start" x="1190.24" y="-9952.3" font-family="Times,serif" font-size="14.00">required_60 = _6 + prephitmp_256;</text>
<polyline fill="none" stroke="black" points="1182.24,-9944.5 1412.24,-9944.5 "/>
<text text-anchor="start" x="1190.24" y="-9929.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; required_60</text>
<polyline fill="none" stroke="black" points="1182.24,-9921.5 1412.24,-9921.5 "/>
<text text-anchor="start" x="1190.24" y="-9906.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1182.24,-9898.5 1412.24,-9898.5 "/>
<text text-anchor="start" x="1190.24" y="-9883.3" font-family="Times,serif" font-size="14.00">if (required_60 &gt; pretmp_338)</text>
<text text-anchor="start" x="1190.24" y="-9868.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 21&gt;; [10.00%]</text>
<text text-anchor="start" x="1190.24" y="-9853.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1190.24" y="-9838.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 20&gt;; [90.00%]</text>
</g>
<!-- fn_220_basic_block_18&#45;&gt;fn_220_basic_block_19 -->
<g id="edge27" class="edge">
<title>fn_220_basic_block_18:s&#45;&gt;fn_220_basic_block_19:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1186.24,-10602C1186.24,-10419.25 1293.16,-10385.43 1297.13,-10208.21"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1300.63,-10208.04 1297.24,-10198 1293.63,-10207.96 1300.63,-10208.04"/>
<text text-anchor="middle" x="1313.74" y="-10396.3" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_29 -->
<g id="node6" class="node">
<title>fn_220_basic_block_29</title>
<polygon fill="lightgrey" stroke="black" points="1453.24,-5817.5 1453.24,-5977.5 1777.24,-5977.5 1777.24,-5817.5 1453.24,-5817.5"/>
<text text-anchor="start" x="1461.24" y="-5962.3" font-family="Times,serif" font-size="14.00">COUNT:699367967&lt;bb 29&gt;:</text>
<polyline fill="none" stroke="black" points="1453.24,-5954.5 1777.24,-5954.5 "/>
<text text-anchor="start" x="1461.24" y="-5939.3" font-family="Times,serif" font-size="14.00"># prephitmp_208 = PHI &lt;prephitmp_256(18), _72(28)&gt;</text>
<polyline fill="none" stroke="black" points="1453.24,-5931.5 1777.24,-5931.5 "/>
<text text-anchor="start" x="1461.24" y="-5916.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1453.24,-5908.5 1777.24,-5908.5 "/>
<text text-anchor="start" x="1461.24" y="-5893.3" font-family="Times,serif" font-size="14.00">pretmp_306 = self_35(D)&#45;&gt;max_output_len;</text>
<polyline fill="none" stroke="black" points="1453.24,-5885.5 1777.24,-5885.5 "/>
<text text-anchor="start" x="1461.24" y="-5870.3" font-family="Times,serif" font-size="14.00">if (escape_37 == 117)</text>
<text text-anchor="start" x="1461.24" y="-5855.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 30&gt;; [34.00%]</text>
<text text-anchor="start" x="1461.24" y="-5840.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1461.24" y="-5825.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 40&gt;; [66.00%]</text>
</g>
<!-- fn_220_basic_block_18&#45;&gt;fn_220_basic_block_29 -->
<g id="edge28" class="edge">
<title>fn_220_basic_block_18:s&#45;&gt;fn_220_basic_block_29:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1186.24,-10602C1186.24,-10593.8 1183.44,-10592.11 1182.24,-10584 1145.31,-10333.13 1140.24,-10268.58 1140.24,-10015 1140.24,-10015 1140.24,-10015 1140.24,-6577 1140.24,-6494.96 1583.33,-6091.87 1613.62,-5987.89"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1617.07,-5988.44 1615.24,-5978 1610.17,-5987.3 1617.07,-5988.44"/>
<text text-anchor="middle" x="1157.74" y="-8016.3" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_52&#45;&gt;fn_220_basic_block_16 -->
<g id="edge78" class="edge">
<title>fn_220_basic_block_52:s&#45;&gt;fn_220_basic_block_16:n</title>
<path fill="none" stroke="blue" stroke-width="2" stroke-dasharray="1,5" d="M1086.24,-23C1086.24,-12.25 1271.7,-16.87 1279.74,-24 1398.7,-129.52 1254.36,-236.17 1324.24,-379 1356.56,-445.06 1491.59,-581.92 1558.24,-613 1599.89,-632.42 1726.43,-604.9 1764.24,-631 2020.92,-808.18 1993.63,-960.42 2069.24,-1263 2094.07,-1362.36 2036.64,-2108.87 2106.24,-2184 2153.08,-2234.55 2214.43,-2150.52 2260.24,-2202 2273.32,-2216.69 2272.87,-2363.92 2260.24,-2379 2230.97,-2413.96 2188.52,-2362.04 2159.24,-2397 2067.07,-2507.05 2071.68,-2606.24 2159.24,-2720 2178.31,-2744.77 2208.17,-2713.23 2227.24,-2738 2239.98,-2754.55 2240.36,-2768.74 2227.24,-2785 2203.55,-2814.38 2168.98,-2774.49 2144.24,-2803 2126.02,-2824.01 1869.46,-6772.02 1857.24,-6797 1851.99,-6807.74 1842.11,-6804.08 1837.24,-6815 1832.29,-6826.11 1828.83,-7244.22 1837.24,-7253 1869.64,-7286.81 2225.85,-7237.19 2258.24,-7271 2271.85,-7285.2 2270.76,-7432.83 2258.24,-7448 2231.45,-7480.47 2192.04,-7433.53 2165.24,-7466 2115.18,-7526.68 2118.28,-7579.89 2165.24,-7643 2181.86,-7665.34 2208.62,-7638.66 2225.24,-7661 2237.71,-7677.76 2238.66,-7691.99 2225.24,-7708 2195.97,-7742.96 2155.27,-7692.59 2124.24,-7726 2007.63,-7851.54 2163.49,-8369 2045.24,-8493 2008.33,-8531.71 1962.61,-8471.77 1926.24,-8511 1914.05,-8524.16 1916.03,-8654.15 1914.24,-8672 1888.74,-8926.07 2021.53,-9060.18 1842.24,-9242 1801.91,-9282.91 1752.36,-9217.02 1714.24,-9260 1693.89,-9282.95 1713.05,-9782.94 1703.24,-9812 1635.31,-10013.31 1595.99,-10077.16 1421.24,-10198 1396.59,-10215.05 1375.06,-10192.67 1356.24,-10216 1330.53,-10247.88 1343.84,-10543.96 1335.24,-10584 1321.95,-10645.9 1319.43,-10664.37 1284.24,-10717 1277.78,-10726.67 1269.84,-10724.31 1265.24,-10735 1245.05,-10781.95 1232.46,-10925.79 1265.24,-10965 1294.21,-10999.65 1336.28,-10948.35 1365.24,-10983 1369.54,-10988.14 1369.97,-11460.75 1365.24,-11465.5 1359.23,-11471.55 1231.93,-11475.27 1195.76,-11469.94"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1196.84,-11466.61 1186.24,-11466.5 1194.46,-11473.19 1196.84,-11466.61"/>
<text text-anchor="middle" x="1945.74" y="-5893.8" font-family="Times,serif" font-size="14.00">[97%]</text>
</g>
<!-- fn_220_basic_block_53 -->
<g id="node54" class="node">
<title>fn_220_basic_block_53</title>
<polygon fill="lightgrey" stroke="black" points="2609.74,-10735.5 2609.74,-10964.5 2944.74,-10964.5 2944.74,-10735.5 2609.74,-10735.5"/>
<text text-anchor="start" x="2617.74" y="-10949.3" font-family="Times,serif" font-size="14.00">COUNT:29527904&lt;bb 53&gt;:</text>
<polyline fill="none" stroke="black" points="2609.74,-10941.5 2944.74,-10941.5 "/>
<text text-anchor="start" x="2617.74" y="-10926.3" font-family="Times,serif" font-size="14.00"># len.49_104 = PHI &lt;prephitmp_349(52), len.49_64(15)&gt;</text>
<polyline fill="none" stroke="black" points="2609.74,-10918.5 2944.74,-10918.5 "/>
<text text-anchor="start" x="2617.74" y="-10903.3" font-family="Times,serif" font-size="14.00"># i_364 = PHI &lt;prephitmp_347(52), 0(15)&gt;</text>
<polyline fill="none" stroke="black" points="2609.74,-10895.5 2944.74,-10895.5 "/>
<text text-anchor="start" x="2617.74" y="-10880.3" font-family="Times,serif" font-size="14.00"># start_376 = PHI &lt;start_22(52), 0(15)&gt;</text>
<polyline fill="none" stroke="black" points="2609.74,-10872.5 2944.74,-10872.5 "/>
<text text-anchor="start" x="2617.74" y="-10857.3" font-family="Times,serif" font-size="14.00"># prephitmp_356 = PHI &lt;prephitmp_346(52), _58(15)&gt;</text>
<polyline fill="none" stroke="black" points="2609.74,-10849.5 2944.74,-10849.5 "/>
<text text-anchor="start" x="2617.74" y="-10834.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2609.74,-10826.5 2944.74,-10826.5 "/>
<text text-anchor="start" x="2617.74" y="-10811.3" font-family="Times,serif" font-size="14.00">pretmp_340 = self_35(D)&#45;&gt;max_output_len;</text>
<polyline fill="none" stroke="black" points="2609.74,-10803.5 2944.74,-10803.5 "/>
<text text-anchor="start" x="2617.74" y="-10788.3" font-family="Times,serif" font-size="14.00">if (len.49_104 != start_376)</text>
<text text-anchor="start" x="2617.74" y="-10773.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 54&gt;; [66.00%]</text>
<text text-anchor="start" x="2617.74" y="-10758.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2617.74" y="-10743.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 64&gt;; [34.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="M1086.24,-23C1086.24,-12.25 1269.17,-22.05 1279.74,-24 1840.92,-127.78 2481.24,93.69 2481.24,-477 2481.24,-2291.5 2481.24,-2291.5 2481.24,-2291.5 2481.24,-2315.31 2489.63,-2700.31 2476.24,-2720 2464.36,-2737.47 2451.5,-2729.31 2432.24,-2738 2389.3,-2757.37 2380.64,-2766.68 2337.24,-2785 2315.1,-2794.35 2300.29,-2783.5 2286.24,-2803 2210.11,-2908.68 2281.24,-2965.76 2281.24,-3096 2281.24,-5524 2281.24,-5524 2281.24,-5524 2281.24,-6494.77 2275.13,-6737.98 2313.24,-7708 2320.62,-7895.79 2332.57,-7942.22 2340.24,-8130 2345.35,-8255.03 2345.24,-8286.37 2345.24,-8411.5 2345.24,-10401 2345.24,-10401 2345.24,-10401 2345.24,-10637.45 2552.82,-10631.43 2773.24,-10717 2808.97,-10730.87 2919.1,-10706.52 2944.74,-10735 3013.15,-10810.96 3016.81,-10892.5 2944.74,-10965 2939.16,-10970.62 2821.62,-10974.14 2786.85,-10969.32"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2787.84,-10965.96 2777.24,-10966 2785.55,-10972.57 2787.84,-10965.96"/>
<text text-anchor="middle" x="2294.24" y="-5893.8" font-family="Times,serif" font-size="14.00">[2%]</text>
</g>
<!-- fn_220_basic_block_21 -->
<g id="node7" class="node">
<title>fn_220_basic_block_21</title>
<polygon fill="lightgrey" stroke="black" points="1517.24,-8690.5 1517.24,-9241.5 1833.24,-9241.5 1833.24,-8690.5 1517.24,-8690.5"/>
<text text-anchor="start" x="1525.24" y="-9226.3" font-family="Times,serif" font-size="14.00">COUNT:34981167&lt;bb 21&gt;:</text>
<polyline fill="none" stroke="black" points="1517.24,-9218.5 1833.24,-9218.5 "/>
<text text-anchor="start" x="1525.24" y="-9203.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1517.24,-9195.5 1833.24,-9195.5 "/>
<text text-anchor="start" x="1525.24" y="-9180.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_35(D)</text>
<polyline fill="none" stroke="black" points="1517.24,-9172.5 1833.24,-9172.5 "/>
<text text-anchor="start" x="1525.24" y="-9157.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; required_60</text>
<polyline fill="none" stroke="black" points="1517.24,-9149.5 1833.24,-9149.5 "/>
<text text-anchor="start" x="1525.24" y="-9134.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_resize</text>
<polyline fill="none" stroke="black" points="1517.24,-9126.5 1833.24,-9126.5 "/>
<text text-anchor="start" x="1525.24" y="-9111.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1517.24,-9103.5 1833.24,-9103.5 "/>
<text text-anchor="start" x="1525.24" y="-9088.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1517.24,-9080.5 1833.24,-9080.5 "/>
<text text-anchor="start" x="1525.24" y="-9065.3" font-family="Times,serif" font-size="14.00">_179 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1517.24,-9057.5 1833.24,-9057.5 "/>
<text text-anchor="start" x="1525.24" y="-9042.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; _179</text>
<polyline fill="none" stroke="black" points="1517.24,-9034.5 1833.24,-9034.5 "/>
<text text-anchor="start" x="1525.24" y="-9019.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="1517.24,-9011.5 1833.24,-9011.5 "/>
<text text-anchor="start" x="1525.24" y="-8996.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY _Py_IS_TYPE</text>
<polyline fill="none" stroke="black" points="1517.24,-8988.5 1833.24,-8988.5 "/>
<text text-anchor="start" x="1525.24" y="-8973.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1517.24,-8965.5 1833.24,-8965.5 "/>
<text text-anchor="start" x="1525.24" y="-8950.3" font-family="Times,serif" font-size="14.00">_180 = MEM[(const struct PyObject *)_179].ob_type;</text>
<polyline fill="none" stroke="black" points="1517.24,-8942.5 1833.24,-8942.5 "/>
<text text-anchor="start" x="1525.24" y="-8927.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1517.24,-8919.5 1833.24,-8919.5 "/>
<text text-anchor="start" x="1525.24" y="-8904.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1517.24,-8896.5 1833.24,-8896.5 "/>
<text text-anchor="start" x="1525.24" y="-8881.3" font-family="Times,serif" font-size="14.00"># DEBUG is_bytes =&gt; _180 == &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="1517.24,-8873.5 1833.24,-8873.5 "/>
<text text-anchor="start" x="1525.24" y="-8858.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1517.24,-8850.5 1833.24,-8850.5 "/>
<text text-anchor="start" x="1525.24" y="-8835.3" font-family="Times,serif" font-size="14.00">_181 = required_60 * 2;</text>
<polyline fill="none" stroke="black" points="1517.24,-8827.5 1833.24,-8827.5 "/>
<text text-anchor="start" x="1525.24" y="-8812.3" font-family="Times,serif" font-size="14.00">_182 = MAX_EXPR &lt;_181, 8&gt;;</text>
<polyline fill="none" stroke="black" points="1517.24,-8804.5 1833.24,-8804.5 "/>
<text text-anchor="start" x="1525.24" y="-8789.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;max_output_len = _182;</text>
<polyline fill="none" stroke="black" points="1517.24,-8781.5 1833.24,-8781.5 "/>
<text text-anchor="start" x="1525.24" y="-8766.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1517.24,-8758.5 1833.24,-8758.5 "/>
<text text-anchor="start" x="1525.24" y="-8743.3" font-family="Times,serif" font-size="14.00">if (_180 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="1525.24" y="-8728.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 22&gt;; [30.00%]</text>
<text text-anchor="start" x="1525.24" y="-8713.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1525.24" y="-8698.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 23&gt;; [70.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="M1297.24,-9830C1297.24,-9793.21 1636.43,-9333.35 1672.2,-9251.94"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1675.66,-9252.59 1675.24,-9242 1668.97,-9250.54 1675.66,-9252.59"/>
<text text-anchor="middle" x="1681.74" y="-9532.3" font-family="Times,serif" font-size="14.00">[10%]</text>
</g>
<!-- fn_220_basic_block_20 -->
<g id="node8" class="node">
<title>fn_220_basic_block_20</title>
<polygon fill="lightgrey" stroke="black" points="1159.74,-7329 1159.74,-7390 1434.74,-7390 1434.74,-7329 1159.74,-7329"/>
<text text-anchor="start" x="1167.74" y="-7374.8" font-family="Times,serif" font-size="14.00">COUNT:314830497&lt;bb 20&gt;:</text>
<polyline fill="none" stroke="black" points="1159.74,-7367 1434.74,-7367 "/>
<text text-anchor="start" x="1167.74" y="-7351.8" font-family="Times,serif" font-size="14.00">pretmp_246 = self_35(D)&#45;&gt;output_buffer_raw;</text>
<text text-anchor="start" x="1167.74" y="-7336.8" font-family="Times,serif" font-size="14.00">goto &lt;bb 28&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_19&#45;&gt;fn_220_basic_block_20 -->
<g id="edge30" 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="M1297.24,-9830C1297.24,-9446.44 1297.24,-9350.56 1297.24,-8967 1297.24,-8967 1297.24,-8967 1297.24,-7683.5 1297.24,-7557.14 1297.24,-7523.06 1297.24,-7401.57"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1300.74,-7401.5 1297.24,-7391.5 1293.74,-7401.5 1300.74,-7401.5"/>
<text text-anchor="middle" x="1314.74" y="-8218.3" font-family="Times,serif" font-size="14.00">[90%]</text>
</g>
<!-- fn_220_basic_block_30 -->
<g id="node9" class="node">
<title>fn_220_basic_block_30</title>
<polygon fill="lightgrey" stroke="black" points="1497.24,-4539.5 1497.24,-5228.5 1733.24,-5228.5 1733.24,-4539.5 1497.24,-4539.5"/>
<text text-anchor="start" x="1505.24" y="-5213.3" font-family="Times,serif" font-size="14.00">COUNT:237785111&lt;bb 30&gt;:</text>
<polyline fill="none" stroke="black" points="1497.24,-5205.5 1733.24,-5205.5 "/>
<text text-anchor="start" x="1505.24" y="-5190.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1497.24,-5182.5 1733.24,-5182.5 "/>
<text text-anchor="start" x="1505.24" y="-5167.3" font-family="Times,serif" font-size="14.00"># DEBUG hex =&gt; &quot;0123456789abcdef&quot;</text>
<polyline fill="none" stroke="black" points="1497.24,-5159.5 1733.24,-5159.5 "/>
<text text-anchor="start" x="1505.24" y="-5144.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1497.24,-5136.5 1733.24,-5136.5 "/>
<text text-anchor="start" x="1505.24" y="-5121.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$0 =&gt; 92</text>
<polyline fill="none" stroke="black" points="1497.24,-5113.5 1733.24,-5113.5 "/>
<text text-anchor="start" x="1505.24" y="-5098.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$1 =&gt; 117</text>
<polyline fill="none" stroke="black" points="1497.24,-5090.5 1733.24,-5090.5 "/>
<text text-anchor="start" x="1505.24" y="-5075.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$2 =&gt; 48</text>
<polyline fill="none" stroke="black" points="1497.24,-5067.5 1733.24,-5067.5 "/>
<text text-anchor="start" x="1505.24" y="-5052.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$3 =&gt; 48</text>
<polyline fill="none" stroke="black" points="1497.24,-5044.5 1733.24,-5044.5 "/>
<text text-anchor="start" x="1505.24" y="-5029.3" font-family="Times,serif" font-size="14.00">_9 = c_36 &gt;&gt; 4;</text>
<polyline fill="none" stroke="black" points="1497.24,-5021.5 1733.24,-5021.5 "/>
<text text-anchor="start" x="1505.24" y="-5006.3" font-family="Times,serif" font-size="14.00">_10 = (sizetype) _9;</text>
<polyline fill="none" stroke="black" points="1497.24,-4998.5 1733.24,-4998.5 "/>
<text text-anchor="start" x="1505.24" y="-4983.3" font-family="Times,serif" font-size="14.00">_11 = &quot;0123456789abcdef&quot; + _10;</text>
<polyline fill="none" stroke="black" points="1497.24,-4975.5 1733.24,-4975.5 "/>
<text text-anchor="start" x="1505.24" y="-4960.3" font-family="Times,serif" font-size="14.00">_12 = *_11;</text>
<polyline fill="none" stroke="black" points="1497.24,-4952.5 1733.24,-4952.5 "/>
<text text-anchor="start" x="1505.24" y="-4937.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$4 =&gt; _12</text>
<polyline fill="none" stroke="black" points="1497.24,-4929.5 1733.24,-4929.5 "/>
<text text-anchor="start" x="1505.24" y="-4914.3" font-family="Times,serif" font-size="14.00">_31 = c_36 &amp; 15;</text>
<polyline fill="none" stroke="black" points="1497.24,-4906.5 1733.24,-4906.5 "/>
<text text-anchor="start" x="1505.24" y="-4891.3" font-family="Times,serif" font-size="14.00">_13 = (sizetype) _31;</text>
<polyline fill="none" stroke="black" points="1497.24,-4883.5 1733.24,-4883.5 "/>
<text text-anchor="start" x="1505.24" y="-4868.3" font-family="Times,serif" font-size="14.00">_14 = &quot;0123456789abcdef&quot; + _13;</text>
<polyline fill="none" stroke="black" points="1497.24,-4860.5 1733.24,-4860.5 "/>
<text text-anchor="start" x="1505.24" y="-4845.3" font-family="Times,serif" font-size="14.00">_15 = *_14;</text>
<polyline fill="none" stroke="black" points="1497.24,-4837.5 1733.24,-4837.5 "/>
<text text-anchor="start" x="1505.24" y="-4822.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$5 =&gt; _15</text>
<polyline fill="none" stroke="black" points="1497.24,-4814.5 1733.24,-4814.5 "/>
<text text-anchor="start" x="1505.24" y="-4799.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1497.24,-4791.5 1733.24,-4791.5 "/>
<text text-anchor="start" x="1505.24" y="-4776.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_35(D)</text>
<polyline fill="none" stroke="black" points="1497.24,-4768.5 1733.24,-4768.5 "/>
<text text-anchor="start" x="1505.24" y="-4753.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; &amp;escaped</text>
<polyline fill="none" stroke="black" points="1497.24,-4745.5 1733.24,-4745.5 "/>
<text text-anchor="start" x="1505.24" y="-4730.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; 6</text>
<polyline fill="none" stroke="black" points="1497.24,-4722.5 1733.24,-4722.5 "/>
<text text-anchor="start" x="1505.24" y="-4707.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_write</text>
<polyline fill="none" stroke="black" points="1497.24,-4699.5 1733.24,-4699.5 "/>
<text text-anchor="start" x="1505.24" y="-4684.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1497.24,-4676.5 1733.24,-4676.5 "/>
<text text-anchor="start" x="1505.24" y="-4661.3" font-family="Times,serif" font-size="14.00">required_74 = prephitmp_208 + 6;</text>
<polyline fill="none" stroke="black" points="1497.24,-4653.5 1733.24,-4653.5 "/>
<text text-anchor="start" x="1505.24" y="-4638.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; required_74</text>
<polyline fill="none" stroke="black" points="1497.24,-4630.5 1733.24,-4630.5 "/>
<text text-anchor="start" x="1505.24" y="-4615.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1497.24,-4607.5 1733.24,-4607.5 "/>
<text text-anchor="start" x="1505.24" y="-4592.3" font-family="Times,serif" font-size="14.00">if (required_74 &gt; pretmp_306)</text>
<text text-anchor="start" x="1505.24" y="-4577.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 32&gt;; [10.00%]</text>
<text text-anchor="start" x="1505.24" y="-4562.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1505.24" y="-4547.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 31&gt;; [90.00%]</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="M1615.24,-5817C1615.24,-5559.11 1615.24,-5492.09 1615.24,-5239.23"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1618.74,-5239 1615.24,-5229 1611.74,-5239 1618.74,-5239"/>
<text text-anchor="middle" x="1632.74" y="-5519.3" font-family="Times,serif" font-size="14.00">[34%]</text>
</g>
<!-- fn_220_basic_block_40 -->
<g id="node10" class="node">
<title>fn_220_basic_block_40</title>
<polygon fill="lightgrey" stroke="black" points="572.24,-4700.5 572.24,-5067.5 802.24,-5067.5 802.24,-4700.5 572.24,-4700.5"/>
<text text-anchor="start" x="580.24" y="-5052.3" font-family="Times,serif" font-size="14.00">COUNT:461582855&lt;bb 40&gt;:</text>
<polyline fill="none" stroke="black" points="572.24,-5044.5 802.24,-5044.5 "/>
<text text-anchor="start" x="580.24" y="-5029.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="572.24,-5021.5 802.24,-5021.5 "/>
<text text-anchor="start" x="580.24" y="-5006.3" font-family="Times,serif" font-size="14.00">escaped[0] = 92;</text>
<polyline fill="none" stroke="black" points="572.24,-4998.5 802.24,-4998.5 "/>
<text text-anchor="start" x="580.24" y="-4983.3" font-family="Times,serif" font-size="14.00">escaped[1] = escape_37;</text>
<polyline fill="none" stroke="black" points="572.24,-4975.5 802.24,-4975.5 "/>
<text text-anchor="start" x="580.24" y="-4960.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="572.24,-4952.5 802.24,-4952.5 "/>
<text text-anchor="start" x="580.24" y="-4937.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_35(D)</text>
<polyline fill="none" stroke="black" points="572.24,-4929.5 802.24,-4929.5 "/>
<text text-anchor="start" x="580.24" y="-4914.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; &amp;escaped</text>
<polyline fill="none" stroke="black" points="572.24,-4906.5 802.24,-4906.5 "/>
<text text-anchor="start" x="580.24" y="-4891.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; 2</text>
<polyline fill="none" stroke="black" points="572.24,-4883.5 802.24,-4883.5 "/>
<text text-anchor="start" x="580.24" y="-4868.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_write</text>
<polyline fill="none" stroke="black" points="572.24,-4860.5 802.24,-4860.5 "/>
<text text-anchor="start" x="580.24" y="-4845.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="572.24,-4837.5 802.24,-4837.5 "/>
<text text-anchor="start" x="580.24" y="-4822.3" font-family="Times,serif" font-size="14.00">required_87 = prephitmp_208 + 2;</text>
<polyline fill="none" stroke="black" points="572.24,-4814.5 802.24,-4814.5 "/>
<text text-anchor="start" x="580.24" y="-4799.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; required_87</text>
<polyline fill="none" stroke="black" points="572.24,-4791.5 802.24,-4791.5 "/>
<text text-anchor="start" x="580.24" y="-4776.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="572.24,-4768.5 802.24,-4768.5 "/>
<text text-anchor="start" x="580.24" y="-4753.3" font-family="Times,serif" font-size="14.00">if (required_87 &gt; pretmp_306)</text>
<text text-anchor="start" x="580.24" y="-4738.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 42&gt;; [10.00%]</text>
<text text-anchor="start" x="580.24" y="-4723.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="580.24" y="-4708.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 41&gt;; [90.00%]</text>
</g>
<!-- fn_220_basic_block_29&#45;&gt;fn_220_basic_block_40 -->
<g id="edge45" class="edge">
<title>fn_220_basic_block_29:s&#45;&gt;fn_220_basic_block_40:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1615.24,-5817C1615.24,-5797.91 1592.42,-5809.14 1576.24,-5799 1145.93,-5529.24 693.25,-5579.57 687.3,-5079.04"/>
<polygon fill="black" stroke="black" stroke-width="2" points="690.8,-5078.98 687.24,-5069 683.8,-5079.02 690.8,-5078.98"/>
<text text-anchor="middle" x="1593.74" y="-5519.3" font-family="Times,serif" font-size="14.00">[66%]</text>
</g>
<!-- fn_220_basic_block_22 -->
<g id="node11" class="node">
<title>fn_220_basic_block_22</title>
<polygon fill="lightgrey" stroke="black" points="1535.74,-8130.5 1535.74,-8313.5 1814.74,-8313.5 1814.74,-8130.5 1535.74,-8130.5"/>
<text text-anchor="start" x="1543.74" y="-8298.3" font-family="Times,serif" font-size="14.00">COUNT:10494350&lt;bb 22&gt;:</text>
<polyline fill="none" stroke="black" points="1535.74,-8290.5 1814.74,-8290.5 "/>
<text text-anchor="start" x="1543.74" y="-8275.3" font-family="Times,serif" font-size="14.00">_183 = &amp;self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1535.74,-8267.5 1814.74,-8267.5 "/>
<text text-anchor="start" x="1543.74" y="-8252.3" font-family="Times,serif" font-size="14.00">iftmp.10_184 = _PyBytes_Resize (_183, _182);</text>
<polyline fill="none" stroke="black" points="1535.74,-8244.5 1814.74,-8244.5 "/>
<text text-anchor="start" x="1543.74" y="-8229.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_184</text>
<polyline fill="none" stroke="black" points="1535.74,-8221.5 1814.74,-8221.5 "/>
<text text-anchor="start" x="1543.74" y="-8206.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1535.74,-8198.5 1814.74,-8198.5 "/>
<text text-anchor="start" x="1543.74" y="-8183.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_184 &lt; 0)</text>
<text text-anchor="start" x="1543.74" y="-8168.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 5&gt;; [0.73%]</text>
<text text-anchor="start" x="1543.74" y="-8153.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1543.74" y="-8138.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 24&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_21&#45;&gt;fn_220_basic_block_22 -->
<g id="edge32" 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="M1675.24,-8690C1675.24,-8526.32 1675.24,-8482.88 1675.24,-8324.13"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1678.74,-8324 1675.24,-8314 1671.74,-8324 1678.74,-8324"/>
<text text-anchor="middle" x="1692.74" y="-8587.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_23 -->
<g id="node12" class="node">
<title>fn_220_basic_block_23</title>
<polygon fill="lightgrey" stroke="black" points="1736.74,-8332.5 1736.74,-8492.5 2035.74,-8492.5 2035.74,-8332.5 1736.74,-8332.5"/>
<text text-anchor="start" x="1744.74" y="-8477.3" font-family="Times,serif" font-size="14.00">COUNT:24486817&lt;bb 23&gt;:</text>
<polyline fill="none" stroke="black" points="1736.74,-8469.5 2035.74,-8469.5 "/>
<text text-anchor="start" x="1744.74" y="-8454.3" font-family="Times,serif" font-size="14.00">iftmp.10_185 = PyByteArray_Resize (_179, _182);</text>
<polyline fill="none" stroke="black" points="1736.74,-8446.5 2035.74,-8446.5 "/>
<text text-anchor="start" x="1744.74" y="-8431.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_185</text>
<polyline fill="none" stroke="black" points="1736.74,-8423.5 2035.74,-8423.5 "/>
<text text-anchor="start" x="1744.74" y="-8408.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1736.74,-8400.5 2035.74,-8400.5 "/>
<text text-anchor="start" x="1744.74" y="-8385.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_185 &lt; 0)</text>
<text text-anchor="start" x="1744.74" y="-8370.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 5&gt;; [0.73%]</text>
<text text-anchor="start" x="1744.74" y="-8355.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1744.74" y="-8340.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 25&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_21&#45;&gt;fn_220_basic_block_23 -->
<g id="edge33" class="edge">
<title>fn_220_basic_block_21:s&#45;&gt;fn_220_basic_block_23:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1675.24,-8690C1675.24,-8670.91 1698.69,-8683.07 1714.24,-8672 1734.74,-8657.41 1860.94,-8543.46 1882.97,-8502.62"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1886.33,-8503.59 1886.24,-8493 1879.7,-8501.34 1886.33,-8503.59"/>
<text text-anchor="middle" x="1892.74" y="-8587.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_28 -->
<g id="node13" class="node">
<title>fn_220_basic_block_28</title>
<polygon fill="lightgrey" stroke="black" points="1382.24,-6359.5 1382.24,-6796.5 1848.24,-6796.5 1848.24,-6359.5 1382.24,-6359.5"/>
<text text-anchor="start" x="1390.24" y="-6781.3" font-family="Times,serif" font-size="14.00">COUNT:349556302&lt;bb 28&gt;:</text>
<polyline fill="none" stroke="black" points="1382.24,-6773.5 1848.24,-6773.5 "/>
<text text-anchor="start" x="1390.24" y="-6758.3" font-family="Times,serif" font-size="14.00"># prephitmp_238 = PHI &lt;pretmp_246(20), iftmp.11_192(27), _188(24)&gt;</text>
<polyline fill="none" stroke="black" points="1382.24,-6750.5 1848.24,-6750.5 "/>
<text text-anchor="start" x="1390.24" y="-6735.3" font-family="Times,serif" font-size="14.00"># prephitmp_216 = PHI &lt;prephitmp_256(20), pretmp_231(27), pretmp_223(24)&gt;</text>
<polyline fill="none" stroke="black" points="1382.24,-6727.5 1848.24,-6727.5 "/>
<text text-anchor="start" x="1390.24" y="-6712.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1382.24,-6704.5 1848.24,-6704.5 "/>
<text text-anchor="start" x="1390.24" y="-6689.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1382.24,-6681.5 1848.24,-6681.5 "/>
<text text-anchor="start" x="1390.24" y="-6666.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1382.24,-6658.5 1848.24,-6658.5 "/>
<text text-anchor="start" x="1390.24" y="-6643.3" font-family="Times,serif" font-size="14.00">n.9_66 = (long unsigned int) _6;</text>
<polyline fill="none" stroke="black" points="1382.24,-6635.5 1848.24,-6635.5 "/>
<text text-anchor="start" x="1390.24" y="-6620.3" font-family="Times,serif" font-size="14.00">_69 = (sizetype) prephitmp_216;</text>
<polyline fill="none" stroke="black" points="1382.24,-6612.5 1848.24,-6612.5 "/>
<text text-anchor="start" x="1390.24" y="-6597.3" font-family="Times,serif" font-size="14.00">_70 = prephitmp_238 + _69;</text>
<polyline fill="none" stroke="black" points="1382.24,-6589.5 1848.24,-6589.5 "/>
<text text-anchor="start" x="1390.24" y="-6574.3" font-family="Times,serif" font-size="14.00">memcpy (_70, _8, n.9_66);</text>
<polyline fill="none" stroke="black" points="1382.24,-6566.5 1848.24,-6566.5 "/>
<text text-anchor="start" x="1390.24" y="-6551.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1382.24,-6543.5 1848.24,-6543.5 "/>
<text text-anchor="start" x="1390.24" y="-6528.3" font-family="Times,serif" font-size="14.00">_71 = self_35(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="1382.24,-6520.5 1848.24,-6520.5 "/>
<text text-anchor="start" x="1390.24" y="-6505.3" font-family="Times,serif" font-size="14.00">_72 = _6 + _71;</text>
<polyline fill="none" stroke="black" points="1382.24,-6497.5 1848.24,-6497.5 "/>
<text text-anchor="start" x="1390.24" y="-6482.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_len = _72;</text>
<polyline fill="none" stroke="black" points="1382.24,-6474.5 1848.24,-6474.5 "/>
<text text-anchor="start" x="1390.24" y="-6459.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1382.24,-6451.5 1848.24,-6451.5 "/>
<text text-anchor="start" x="1390.24" y="-6436.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1382.24,-6428.5 1848.24,-6428.5 "/>
<text text-anchor="start" x="1390.24" y="-6413.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1382.24,-6405.5 1848.24,-6405.5 "/>
<text text-anchor="start" x="1390.24" y="-6390.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1382.24,-6382.5 1848.24,-6382.5 "/>
<text text-anchor="start" x="1390.24" y="-6367.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
</g>
<!-- fn_220_basic_block_20&#45;&gt;fn_220_basic_block_28 -->
<g id="edge31" class="edge">
<title>fn_220_basic_block_20:s&#45;&gt;fn_220_basic_block_28:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1297.24,-7327.5C1297.24,-7069.63 1376.73,-6986.57 1569.24,-6815 1582.05,-6803.59 1602.92,-6812.42 1611.44,-6806.36"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1614.72,-6807.58 1615.24,-6797 1608.24,-6804.95 1614.72,-6807.58"/>
<text text-anchor="middle" x="1590.24" y="-7030.3" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_32 -->
<g id="node14" class="node">
<title>fn_220_basic_block_32</title>
<polygon fill="lightgrey" stroke="black" points="1548.24,-3790.5 1548.24,-4341.5 1864.24,-4341.5 1864.24,-3790.5 1548.24,-3790.5"/>
<text text-anchor="start" x="1556.24" y="-4326.3" font-family="Times,serif" font-size="14.00">COUNT:23778511&lt;bb 32&gt;:</text>
<polyline fill="none" stroke="black" points="1548.24,-4318.5 1864.24,-4318.5 "/>
<text text-anchor="start" x="1556.24" y="-4303.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1548.24,-4295.5 1864.24,-4295.5 "/>
<text text-anchor="start" x="1556.24" y="-4280.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_35(D)</text>
<polyline fill="none" stroke="black" points="1548.24,-4272.5 1864.24,-4272.5 "/>
<text text-anchor="start" x="1556.24" y="-4257.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; required_74</text>
<polyline fill="none" stroke="black" points="1548.24,-4249.5 1864.24,-4249.5 "/>
<text text-anchor="start" x="1556.24" y="-4234.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_resize</text>
<polyline fill="none" stroke="black" points="1548.24,-4226.5 1864.24,-4226.5 "/>
<text text-anchor="start" x="1556.24" y="-4211.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1548.24,-4203.5 1864.24,-4203.5 "/>
<text text-anchor="start" x="1556.24" y="-4188.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1548.24,-4180.5 1864.24,-4180.5 "/>
<text text-anchor="start" x="1556.24" y="-4165.3" font-family="Times,serif" font-size="14.00">_194 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1548.24,-4157.5 1864.24,-4157.5 "/>
<text text-anchor="start" x="1556.24" y="-4142.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; _194</text>
<polyline fill="none" stroke="black" points="1548.24,-4134.5 1864.24,-4134.5 "/>
<text text-anchor="start" x="1556.24" y="-4119.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="1548.24,-4111.5 1864.24,-4111.5 "/>
<text text-anchor="start" x="1556.24" y="-4096.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY _Py_IS_TYPE</text>
<polyline fill="none" stroke="black" points="1548.24,-4088.5 1864.24,-4088.5 "/>
<text text-anchor="start" x="1556.24" y="-4073.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1548.24,-4065.5 1864.24,-4065.5 "/>
<text text-anchor="start" x="1556.24" y="-4050.3" font-family="Times,serif" font-size="14.00">_195 = MEM[(const struct PyObject *)_194].ob_type;</text>
<polyline fill="none" stroke="black" points="1548.24,-4042.5 1864.24,-4042.5 "/>
<text text-anchor="start" x="1556.24" y="-4027.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1548.24,-4019.5 1864.24,-4019.5 "/>
<text text-anchor="start" x="1556.24" y="-4004.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1548.24,-3996.5 1864.24,-3996.5 "/>
<text text-anchor="start" x="1556.24" y="-3981.3" font-family="Times,serif" font-size="14.00"># DEBUG is_bytes =&gt; _195 == &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="1548.24,-3973.5 1864.24,-3973.5 "/>
<text text-anchor="start" x="1556.24" y="-3958.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1548.24,-3950.5 1864.24,-3950.5 "/>
<text text-anchor="start" x="1556.24" y="-3935.3" font-family="Times,serif" font-size="14.00">_196 = required_74 * 2;</text>
<polyline fill="none" stroke="black" points="1548.24,-3927.5 1864.24,-3927.5 "/>
<text text-anchor="start" x="1556.24" y="-3912.3" font-family="Times,serif" font-size="14.00">_197 = MAX_EXPR &lt;_196, 8&gt;;</text>
<polyline fill="none" stroke="black" points="1548.24,-3904.5 1864.24,-3904.5 "/>
<text text-anchor="start" x="1556.24" y="-3889.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;max_output_len = _197;</text>
<polyline fill="none" stroke="black" points="1548.24,-3881.5 1864.24,-3881.5 "/>
<text text-anchor="start" x="1556.24" y="-3866.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1548.24,-3858.5 1864.24,-3858.5 "/>
<text text-anchor="start" x="1556.24" y="-3843.3" font-family="Times,serif" font-size="14.00">if (_195 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="1556.24" y="-3828.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 33&gt;; [30.00%]</text>
<text text-anchor="start" x="1556.24" y="-3813.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1556.24" y="-3798.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 34&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_30&#45;&gt;fn_220_basic_block_32 -->
<g id="edge46" class="edge">
<title>fn_220_basic_block_30:s&#45;&gt;fn_220_basic_block_32:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1615.24,-4539C1615.24,-4446.04 1699.79,-4438.86 1705.9,-4352.1"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1709.4,-4352.11 1706.24,-4342 1702.4,-4351.87 1709.4,-4352.11"/>
<text text-anchor="middle" x="1721.74" y="-4436.8" font-family="Times,serif" font-size="14.00">[10%]</text>
</g>
<!-- fn_220_basic_block_31 -->
<g id="node15" class="node">
<title>fn_220_basic_block_31</title>
<polygon fill="lightgrey" stroke="black" points="1161.74,-2260 1161.74,-2321 1436.74,-2321 1436.74,-2260 1161.74,-2260"/>
<text text-anchor="start" x="1169.74" y="-2305.8" font-family="Times,serif" font-size="14.00">COUNT:214006600&lt;bb 31&gt;:</text>
<polyline fill="none" stroke="black" points="1161.74,-2298 1436.74,-2298 "/>
<text text-anchor="start" x="1169.74" y="-2282.8" font-family="Times,serif" font-size="14.00">pretmp_352 = self_35(D)&#45;&gt;output_buffer_raw;</text>
<text text-anchor="start" x="1169.74" y="-2267.8" font-family="Times,serif" font-size="14.00">goto &lt;bb 39&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_30&#45;&gt;fn_220_basic_block_31 -->
<g id="edge47" class="edge">
<title>fn_220_basic_block_30:s&#45;&gt;fn_220_basic_block_31:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1615.24,-4539C1615.24,-4482.55 1427.24,-4123.45 1427.24,-4067 1427.24,-4067 1427.24,-4067 1427.24,-2760.5 1427.24,-2561.16 1303.58,-2526.47 1299.35,-2332.75"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1302.85,-2332.46 1299.24,-2322.5 1295.85,-2332.54 1302.85,-2332.46"/>
<text text-anchor="middle" x="1444.74" y="-3295.3" font-family="Times,serif" font-size="14.00">[90%]</text>
</g>
<!-- fn_220_basic_block_42 -->
<g id="node16" class="node">
<title>fn_220_basic_block_42</title>
<polygon fill="lightgrey" stroke="black" points="529.24,-3790.5 529.24,-4341.5 845.24,-4341.5 845.24,-3790.5 529.24,-3790.5"/>
<text text-anchor="start" x="537.24" y="-4326.3" font-family="Times,serif" font-size="14.00">COUNT:46158286&lt;bb 42&gt;:</text>
<polyline fill="none" stroke="black" points="529.24,-4318.5 845.24,-4318.5 "/>
<text text-anchor="start" x="537.24" y="-4303.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="529.24,-4295.5 845.24,-4295.5 "/>
<text text-anchor="start" x="537.24" y="-4280.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_35(D)</text>
<polyline fill="none" stroke="black" points="529.24,-4272.5 845.24,-4272.5 "/>
<text text-anchor="start" x="537.24" y="-4257.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; required_87</text>
<polyline fill="none" stroke="black" points="529.24,-4249.5 845.24,-4249.5 "/>
<text text-anchor="start" x="537.24" y="-4234.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_resize</text>
<polyline fill="none" stroke="black" points="529.24,-4226.5 845.24,-4226.5 "/>
<text text-anchor="start" x="537.24" y="-4211.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="529.24,-4203.5 845.24,-4203.5 "/>
<text text-anchor="start" x="537.24" y="-4188.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="529.24,-4180.5 845.24,-4180.5 "/>
<text text-anchor="start" x="537.24" y="-4165.3" font-family="Times,serif" font-size="14.00">_209 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="529.24,-4157.5 845.24,-4157.5 "/>
<text text-anchor="start" x="537.24" y="-4142.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; _209</text>
<polyline fill="none" stroke="black" points="529.24,-4134.5 845.24,-4134.5 "/>
<text text-anchor="start" x="537.24" y="-4119.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="529.24,-4111.5 845.24,-4111.5 "/>
<text text-anchor="start" x="537.24" y="-4096.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY _Py_IS_TYPE</text>
<polyline fill="none" stroke="black" points="529.24,-4088.5 845.24,-4088.5 "/>
<text text-anchor="start" x="537.24" y="-4073.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="529.24,-4065.5 845.24,-4065.5 "/>
<text text-anchor="start" x="537.24" y="-4050.3" font-family="Times,serif" font-size="14.00">_210 = MEM[(const struct PyObject *)_209].ob_type;</text>
<polyline fill="none" stroke="black" points="529.24,-4042.5 845.24,-4042.5 "/>
<text text-anchor="start" x="537.24" y="-4027.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; NULL</text>
<polyline fill="none" stroke="black" points="529.24,-4019.5 845.24,-4019.5 "/>
<text text-anchor="start" x="537.24" y="-4004.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; NULL</text>
<polyline fill="none" stroke="black" points="529.24,-3996.5 845.24,-3996.5 "/>
<text text-anchor="start" x="537.24" y="-3981.3" font-family="Times,serif" font-size="14.00"># DEBUG is_bytes =&gt; _210 == &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="529.24,-3973.5 845.24,-3973.5 "/>
<text text-anchor="start" x="537.24" y="-3958.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="529.24,-3950.5 845.24,-3950.5 "/>
<text text-anchor="start" x="537.24" y="-3935.3" font-family="Times,serif" font-size="14.00">_211 = required_87 * 2;</text>
<polyline fill="none" stroke="black" points="529.24,-3927.5 845.24,-3927.5 "/>
<text text-anchor="start" x="537.24" y="-3912.3" font-family="Times,serif" font-size="14.00">_212 = MAX_EXPR &lt;_211, 8&gt;;</text>
<polyline fill="none" stroke="black" points="529.24,-3904.5 845.24,-3904.5 "/>
<text text-anchor="start" x="537.24" y="-3889.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;max_output_len = _212;</text>
<polyline fill="none" stroke="black" points="529.24,-3881.5 845.24,-3881.5 "/>
<text text-anchor="start" x="537.24" y="-3866.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="529.24,-3858.5 845.24,-3858.5 "/>
<text text-anchor="start" x="537.24" y="-3843.3" font-family="Times,serif" font-size="14.00">if (_210 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="537.24" y="-3828.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 43&gt;; [30.00%]</text>
<text text-anchor="start" x="537.24" y="-3813.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="537.24" y="-3798.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 45&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_40&#45;&gt;fn_220_basic_block_42 -->
<g id="edge61" class="edge">
<title>fn_220_basic_block_40:s&#45;&gt;fn_220_basic_block_42:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M687.24,-4699C687.24,-4543.74 687.24,-4502.43 687.24,-4352.06"/>
<polygon fill="black" stroke="black" stroke-width="2" points="690.74,-4352 687.24,-4342 683.74,-4352 690.74,-4352"/>
<text text-anchor="middle" x="704.74" y="-4436.8" font-family="Times,serif" font-size="14.00">[10%]</text>
</g>
<!-- fn_220_basic_block_41 -->
<g id="node17" class="node">
<title>fn_220_basic_block_41</title>
<polygon fill="lightgrey" stroke="black" points="53.74,-2260 53.74,-2321 328.74,-2321 328.74,-2260 53.74,-2260"/>
<text text-anchor="start" x="61.74" y="-2305.8" font-family="Times,serif" font-size="14.00">COUNT:415424569&lt;bb 41&gt;:</text>
<polyline fill="none" stroke="black" points="53.74,-2298 328.74,-2298 "/>
<text text-anchor="start" x="61.74" y="-2282.8" font-family="Times,serif" font-size="14.00">pretmp_171 = self_35(D)&#45;&gt;output_buffer_raw;</text>
<text text-anchor="start" x="61.74" y="-2267.8" font-family="Times,serif" font-size="14.00">goto &lt;bb 50&gt;; [100.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="M687.24,-4699C687.24,-4365.86 284.24,-4400.14 284.24,-4067 284.24,-4067 284.24,-4067 284.24,-2760.5 284.24,-2564.89 194.39,-2522.92 191.32,-2332.57"/>
<polygon fill="black" stroke="black" stroke-width="2" points="194.82,-2332.47 191.24,-2322.5 187.82,-2332.53 194.82,-2332.47"/>
<text text-anchor="middle" x="301.74" y="-3295.3" font-family="Times,serif" font-size="14.00">[90%]</text>
</g>
<!-- fn_220_basic_block_24 -->
<g id="node18" class="node">
<title>fn_220_basic_block_24</title>
<polygon fill="lightgrey" stroke="black" points="1453.24,-7271.5 1453.24,-7447.5 1777.24,-7447.5 1777.24,-7271.5 1453.24,-7271.5"/>
<text text-anchor="start" x="1461.24" y="-7432.3" font-family="Times,serif" font-size="14.00">COUNT:10417741&lt;bb 24&gt;:</text>
<polyline fill="none" stroke="black" points="1453.24,-7424.5 1777.24,-7424.5 "/>
<text text-anchor="start" x="1461.24" y="-7409.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1453.24,-7401.5 1777.24,-7401.5 "/>
<text text-anchor="start" x="1461.24" y="-7386.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1453.24,-7378.5 1777.24,-7378.5 "/>
<text text-anchor="start" x="1461.24" y="-7363.3" font-family="Times,serif" font-size="14.00">_187 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1453.24,-7355.5 1777.24,-7355.5 "/>
<text text-anchor="start" x="1461.24" y="-7340.3" font-family="Times,serif" font-size="14.00">_188 = &amp;MEM[(struct PyBytesObject *)_187].ob_sval;</text>
<polyline fill="none" stroke="black" points="1453.24,-7332.5 1777.24,-7332.5 "/>
<text text-anchor="start" x="1461.24" y="-7317.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_buffer_raw = _188;</text>
<polyline fill="none" stroke="black" points="1453.24,-7309.5 1777.24,-7309.5 "/>
<text text-anchor="start" x="1461.24" y="-7294.3" font-family="Times,serif" font-size="14.00">pretmp_223 = self_35(D)&#45;&gt;output_len;</text>
<text text-anchor="start" x="1461.24" y="-7279.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 28&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_22&#45;&gt;fn_220_basic_block_24 -->
<g id="edge35" class="edge">
<title>fn_220_basic_block_22:s&#45;&gt;fn_220_basic_block_24:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1675.24,-8130C1675.24,-7829.14 1616.58,-7753.96 1615.27,-7458.16"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1618.77,-7457.99 1615.24,-7448 1611.77,-7458.01 1618.77,-7457.99"/>
<text text-anchor="middle" x="1679.74" y="-7814.3" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_5 -->
<g id="node42" class="node">
<title>fn_220_basic_block_5</title>
<polygon fill="lightgrey" stroke="black" points="2904.24,-2876 2904.24,-2914 3062.24,-2914 3062.24,-2876 2904.24,-2876"/>
<text text-anchor="start" x="2912.24" y="-2898.8" font-family="Times,serif" font-size="14.00">COUNT:623883&lt;bb 5&gt;:</text>
<text text-anchor="start" x="2912.24" y="-2883.8" font-family="Times,serif" font-size="14.00">goto &lt;bb 74&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_22&#45;&gt;fn_220_basic_block_5 -->
<g id="edge34" class="edge">
<title>fn_220_basic_block_22:s&#45;&gt;fn_220_basic_block_5:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1675.24,-8130C1675.24,-8109.42 2027.7,-8122.76 2045.24,-8112 2249.9,-7986.49 2247.44,-7873.88 2313.24,-7643 2341.07,-7545.38 2374.03,-5918.38 2379.24,-5817 2380.18,-5798.86 2542.46,-3221.62 2553.24,-3207 2566.53,-3189 2586.59,-3206.72 2600.24,-3189 2625.35,-3156.42 2590.53,-3033.44 2620.24,-3005 2642.77,-2983.45 2871.4,-2998.83 2900.24,-2987 2942.07,-2969.84 2977.59,-2964.6 2982.63,-2925.17"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2986.14,-2925.19 2983.24,-2915 2979.15,-2924.77 2986.14,-2925.19"/>
<text text-anchor="middle" x="2393.24" y="-5893.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_25 -->
<g id="node19" class="node">
<title>fn_220_basic_block_25</title>
<polygon fill="lightgrey" stroke="black" points="1736.24,-7928.5 1736.24,-8111.5 2036.24,-8111.5 2036.24,-7928.5 1736.24,-7928.5"/>
<text text-anchor="start" x="1744.24" y="-8096.3" font-family="Times,serif" font-size="14.00">COUNT:24308063&lt;bb 25&gt;:</text>
<polyline fill="none" stroke="black" points="1736.24,-8088.5 2036.24,-8088.5 "/>
<text text-anchor="start" x="1744.24" y="-8073.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1736.24,-8065.5 2036.24,-8065.5 "/>
<text text-anchor="start" x="1744.24" y="-8050.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1736.24,-8042.5 2036.24,-8042.5 "/>
<text text-anchor="start" x="1744.24" y="-8027.3" font-family="Times,serif" font-size="14.00">_189 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1736.24,-8019.5 2036.24,-8019.5 "/>
<text text-anchor="start" x="1744.24" y="-8004.3" font-family="Times,serif" font-size="14.00">_190 = MEM[(struct PyVarObject *)_189].ob_size;</text>
<polyline fill="none" stroke="black" points="1736.24,-7996.5 2036.24,-7996.5 "/>
<text text-anchor="start" x="1744.24" y="-7981.3" font-family="Times,serif" font-size="14.00">if (_190 != 0)</text>
<text text-anchor="start" x="1744.24" y="-7966.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 26&gt;; [50.00%]</text>
<text text-anchor="start" x="1744.24" y="-7951.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1744.24" y="-7936.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 27&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_23&#45;&gt;fn_220_basic_block_25 -->
<g id="edge37" 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="M1886.24,-8332C1886.24,-8237.66 1886.24,-8211.59 1886.24,-8122.05"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1889.74,-8122 1886.24,-8112 1882.74,-8122 1889.74,-8122"/>
<text text-anchor="middle" x="1903.74" y="-8218.3" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_23&#45;&gt;fn_220_basic_block_5 -->
<g id="edge36" class="edge">
<title>fn_220_basic_block_23:s&#45;&gt;fn_220_basic_block_5:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1886.24,-8332C1886.24,-8312.91 1909.42,-8324.67 1925.24,-8314 2033.95,-8240.69 2056.89,-8213.21 2140.24,-8112 2207.66,-8030.14 2227.16,-8008.18 2267.24,-7910 2313.14,-7797.57 2308.58,-7763.29 2325.24,-7643 2337.16,-7556.99 2344.32,-7339.69 2349.24,-7253 2349.24,-7253 2560.24,-3207 2560.24,-3207 2575.88,-3186.58 2596.11,-3206.18 2615.24,-3189 2682,-3129.06 2625.12,-3056.98 2698.24,-3005 2734.98,-2978.89 2858.76,-3004.62 2900.24,-2987 2941.85,-2969.32 2977.56,-2964.52 2982.63,-2925.16"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2986.13,-2925.19 2983.24,-2915 2979.14,-2924.77 2986.13,-2925.19"/>
<text text-anchor="middle" x="2428.24" y="-6164.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_28&#45;&gt;fn_220_basic_block_29 -->
<g id="edge43" class="edge">
<title>fn_220_basic_block_28:s&#45;&gt;fn_220_basic_block_29:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1615.24,-6359C1615.24,-6193.14 1615.24,-6149.12 1615.24,-5988.26"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1618.74,-5988 1615.24,-5978 1611.74,-5988 1618.74,-5988"/>
<text text-anchor="middle" x="1636.24" y="-6164.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_33 -->
<g id="node20" class="node">
<title>fn_220_basic_block_33</title>
<polygon fill="lightgrey" stroke="black" points="1566.74,-3207.5 1566.74,-3390.5 1845.74,-3390.5 1845.74,-3207.5 1566.74,-3207.5"/>
<text text-anchor="start" x="1574.74" y="-3375.3" font-family="Times,serif" font-size="14.00">COUNT:7133553&lt;bb 33&gt;:</text>
<polyline fill="none" stroke="black" points="1566.74,-3367.5 1845.74,-3367.5 "/>
<text text-anchor="start" x="1574.74" y="-3352.3" font-family="Times,serif" font-size="14.00">_198 = &amp;self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1566.74,-3344.5 1845.74,-3344.5 "/>
<text text-anchor="start" x="1574.74" y="-3329.3" font-family="Times,serif" font-size="14.00">iftmp.10_199 = _PyBytes_Resize (_198, _197);</text>
<polyline fill="none" stroke="black" points="1566.74,-3321.5 1845.74,-3321.5 "/>
<text text-anchor="start" x="1574.74" y="-3306.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_199</text>
<polyline fill="none" stroke="black" points="1566.74,-3298.5 1845.74,-3298.5 "/>
<text text-anchor="start" x="1574.74" y="-3283.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1566.74,-3275.5 1845.74,-3275.5 "/>
<text text-anchor="start" x="1574.74" y="-3260.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_199 &lt; 0)</text>
<text text-anchor="start" x="1574.74" y="-3245.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 5&gt;; [0.73%]</text>
<text text-anchor="start" x="1574.74" y="-3230.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1574.74" y="-3215.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 35&gt;; [99.27%]</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="M1706.24,-3790C1706.24,-3616.13 1706.24,-3570.12 1706.24,-3401.24"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1709.74,-3401 1706.24,-3391 1702.74,-3401 1709.74,-3401"/>
<text text-anchor="middle" x="1723.74" y="-3676.3" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_34 -->
<g id="node21" class="node">
<title>fn_220_basic_block_34</title>
<polygon fill="lightgrey" stroke="black" points="1770.74,-3409.5 1770.74,-3569.5 2069.74,-3569.5 2069.74,-3409.5 1770.74,-3409.5"/>
<text text-anchor="start" x="1778.74" y="-3554.3" font-family="Times,serif" font-size="14.00">COUNT:16644958&lt;bb 34&gt;:</text>
<polyline fill="none" stroke="black" points="1770.74,-3546.5 2069.74,-3546.5 "/>
<text text-anchor="start" x="1778.74" y="-3531.3" font-family="Times,serif" font-size="14.00">iftmp.10_200 = PyByteArray_Resize (_194, _197);</text>
<polyline fill="none" stroke="black" points="1770.74,-3523.5 2069.74,-3523.5 "/>
<text text-anchor="start" x="1778.74" y="-3508.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_200</text>
<polyline fill="none" stroke="black" points="1770.74,-3500.5 2069.74,-3500.5 "/>
<text text-anchor="start" x="1778.74" y="-3485.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1770.74,-3477.5 2069.74,-3477.5 "/>
<text text-anchor="start" x="1778.74" y="-3462.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_200 &lt; 0)</text>
<text text-anchor="start" x="1778.74" y="-3447.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 5&gt;; [0.73%]</text>
<text text-anchor="start" x="1778.74" y="-3432.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1778.74" y="-3417.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 36&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_32&#45;&gt;fn_220_basic_block_34 -->
<g id="edge50" 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="M1706.24,-3790C1706.24,-3770.91 1729.98,-3783.47 1745.24,-3772 1837.41,-3702.71 1915.54,-3689.53 1920.04,-3580.17"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1923.54,-3580.07 1920.24,-3570 1916.54,-3579.93 1923.54,-3580.07"/>
<text text-anchor="middle" x="1936.74" y="-3676.3" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_39 -->
<g id="node22" class="node">
<title>fn_220_basic_block_39</title>
<polygon fill="lightgrey" stroke="black" points="1289.24,-631.5 1289.24,-1244.5 1755.24,-1244.5 1755.24,-631.5 1289.24,-631.5"/>
<text text-anchor="start" x="1297.24" y="-1229.3" font-family="Times,serif" font-size="14.00">COUNT:237611528&lt;bb 39&gt;:</text>
<polyline fill="none" stroke="black" points="1289.24,-1221.5 1755.24,-1221.5 "/>
<text text-anchor="start" x="1297.24" y="-1206.3" font-family="Times,serif" font-size="14.00"># prephitmp_351 = PHI &lt;pretmp_352(31), iftmp.11_207(38), _203(35)&gt;</text>
<polyline fill="none" stroke="black" points="1289.24,-1198.5 1755.24,-1198.5 "/>
<text text-anchor="start" x="1297.24" y="-1183.3" font-family="Times,serif" font-size="14.00"># prephitmp_313 = PHI &lt;prephitmp_208(31), pretmp_314(38), pretmp_324(35)&gt;</text>
<polyline fill="none" stroke="black" points="1289.24,-1175.5 1755.24,-1175.5 "/>
<text text-anchor="start" x="1297.24" y="-1160.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1289.24,-1152.5 1755.24,-1152.5 "/>
<text text-anchor="start" x="1297.24" y="-1137.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1289.24,-1129.5 1755.24,-1129.5 "/>
<text text-anchor="start" x="1297.24" y="-1114.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1289.24,-1106.5 1755.24,-1106.5 "/>
<text text-anchor="start" x="1297.24" y="-1091.3" font-family="Times,serif" font-size="14.00">_82 = (sizetype) prephitmp_313;</text>
<polyline fill="none" stroke="black" points="1289.24,-1083.5 1755.24,-1083.5 "/>
<text text-anchor="start" x="1297.24" y="-1068.3" font-family="Times,serif" font-size="14.00">_83 = prephitmp_351 + _82;</text>
<polyline fill="none" stroke="black" points="1289.24,-1060.5 1755.24,-1060.5 "/>
<text text-anchor="start" x="1297.24" y="-1045.3" font-family="Times,serif" font-size="14.00">MEM &lt;unsigned int&gt; [(char * {ref&#45;all})_83] = 808482140;</text>
<polyline fill="none" stroke="black" points="1289.24,-1037.5 1755.24,-1037.5 "/>
<text text-anchor="start" x="1297.24" y="-1022.3" font-family="Times,serif" font-size="14.00">MEM[(char * {ref&#45;all})_83 + 4B] = _12;</text>
<polyline fill="none" stroke="black" points="1289.24,-1014.5 1755.24,-1014.5 "/>
<text text-anchor="start" x="1297.24" y="-999.3" font-family="Times,serif" font-size="14.00">MEM[(char * {ref&#45;all})_83 + 5B] = _15;</text>
<polyline fill="none" stroke="black" points="1289.24,-991.5 1755.24,-991.5 "/>
<text text-anchor="start" x="1297.24" y="-976.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1289.24,-968.5 1755.24,-968.5 "/>
<text text-anchor="start" x="1297.24" y="-953.3" font-family="Times,serif" font-size="14.00">_84 = self_35(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="1289.24,-945.5 1755.24,-945.5 "/>
<text text-anchor="start" x="1297.24" y="-930.3" font-family="Times,serif" font-size="14.00">_85 = _84 + 6;</text>
<polyline fill="none" stroke="black" points="1289.24,-922.5 1755.24,-922.5 "/>
<text text-anchor="start" x="1297.24" y="-907.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_len = _85;</text>
<polyline fill="none" stroke="black" points="1289.24,-899.5 1755.24,-899.5 "/>
<text text-anchor="start" x="1297.24" y="-884.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1289.24,-876.5 1755.24,-876.5 "/>
<text text-anchor="start" x="1297.24" y="-861.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1289.24,-853.5 1755.24,-853.5 "/>
<text text-anchor="start" x="1297.24" y="-838.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1289.24,-830.5 1755.24,-830.5 "/>
<text text-anchor="start" x="1297.24" y="-815.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1289.24,-807.5 1755.24,-807.5 "/>
<text text-anchor="start" x="1297.24" y="-792.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1289.24,-784.5 1755.24,-784.5 "/>
<text text-anchor="start" x="1297.24" y="-769.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$0 =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1289.24,-761.5 1755.24,-761.5 "/>
<text text-anchor="start" x="1297.24" y="-746.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$1 =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1289.24,-738.5 1755.24,-738.5 "/>
<text text-anchor="start" x="1297.24" y="-723.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$2 =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1289.24,-715.5 1755.24,-715.5 "/>
<text text-anchor="start" x="1297.24" y="-700.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$3 =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1289.24,-692.5 1755.24,-692.5 "/>
<text text-anchor="start" x="1297.24" y="-677.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$4 =&gt; NULL</text>
<polyline fill="none" stroke="black" points="1289.24,-669.5 1755.24,-669.5 "/>
<text text-anchor="start" x="1297.24" y="-654.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$5 =&gt; NULL</text>
<text text-anchor="start" x="1297.24" y="-639.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 51&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_31&#45;&gt;fn_220_basic_block_39 -->
<g id="edge48" class="edge">
<title>fn_220_basic_block_31:s&#45;&gt;fn_220_basic_block_39:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1299.24,-2258.5C1299.24,-1809.12 1191.27,-1610.47 1476.24,-1263 1487.01,-1249.87 1508.64,-1259.42 1517.89,-1254.26"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1521.15,-1255.54 1522.24,-1245 1514.82,-1252.56 1521.15,-1255.54"/>
<text text-anchor="middle" x="1497.24" y="-1719.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_43 -->
<g id="node23" class="node">
<title>fn_220_basic_block_43</title>
<polygon fill="lightgrey" stroke="black" points="383.74,-2803.5 383.74,-2986.5 662.74,-2986.5 662.74,-2803.5 383.74,-2803.5"/>
<text text-anchor="start" x="391.74" y="-2971.3" font-family="Times,serif" font-size="14.00">COUNT:13847486&lt;bb 43&gt;:</text>
<polyline fill="none" stroke="black" points="383.74,-2963.5 662.74,-2963.5 "/>
<text text-anchor="start" x="391.74" y="-2948.3" font-family="Times,serif" font-size="14.00">_213 = &amp;self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="383.74,-2940.5 662.74,-2940.5 "/>
<text text-anchor="start" x="391.74" y="-2925.3" font-family="Times,serif" font-size="14.00">iftmp.10_214 = _PyBytes_Resize (_213, _212);</text>
<polyline fill="none" stroke="black" points="383.74,-2917.5 662.74,-2917.5 "/>
<text text-anchor="start" x="391.74" y="-2902.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_214</text>
<polyline fill="none" stroke="black" points="383.74,-2894.5 662.74,-2894.5 "/>
<text text-anchor="start" x="391.74" y="-2879.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="383.74,-2871.5 662.74,-2871.5 "/>
<text text-anchor="start" x="391.74" y="-2856.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_214 &lt; 0)</text>
<text text-anchor="start" x="391.74" y="-2841.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 44&gt;; [0.73%]</text>
<text text-anchor="start" x="391.74" y="-2826.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="391.74" y="-2811.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 46&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_42&#45;&gt;fn_220_basic_block_43 -->
<g id="edge64" class="edge">
<title>fn_220_basic_block_42:s&#45;&gt;fn_220_basic_block_43:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M687.24,-3790C687.24,-3779.3 542.2,-3088.61 524.92,-2996.89"/>
<polygon fill="black" stroke="black" stroke-width="2" points="528.36,-2996.27 523.24,-2987 521.46,-2997.44 528.36,-2996.27"/>
<text text-anchor="middle" x="658.74" y="-3485.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_45 -->
<g id="node24" class="node">
<title>fn_220_basic_block_45</title>
<polygon fill="lightgrey" stroke="black" points="718.74,-3409.5 718.74,-3569.5 1017.74,-3569.5 1017.74,-3409.5 718.74,-3409.5"/>
<text text-anchor="start" x="726.74" y="-3554.3" font-family="Times,serif" font-size="14.00">COUNT:32310800&lt;bb 45&gt;:</text>
<polyline fill="none" stroke="black" points="718.74,-3546.5 1017.74,-3546.5 "/>
<text text-anchor="start" x="726.74" y="-3531.3" font-family="Times,serif" font-size="14.00">iftmp.10_215 = PyByteArray_Resize (_209, _212);</text>
<polyline fill="none" stroke="black" points="718.74,-3523.5 1017.74,-3523.5 "/>
<text text-anchor="start" x="726.74" y="-3508.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_215</text>
<polyline fill="none" stroke="black" points="718.74,-3500.5 1017.74,-3500.5 "/>
<text text-anchor="start" x="726.74" y="-3485.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="718.74,-3477.5 1017.74,-3477.5 "/>
<text text-anchor="start" x="726.74" y="-3462.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_215 &lt; 0)</text>
<text text-anchor="start" x="726.74" y="-3447.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 44&gt;; [0.73%]</text>
<text text-anchor="start" x="726.74" y="-3432.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="726.74" y="-3417.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 47&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_42&#45;&gt;fn_220_basic_block_45 -->
<g id="edge65" class="edge">
<title>fn_220_basic_block_42:s&#45;&gt;fn_220_basic_block_45:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M687.24,-3790C687.24,-3666.85 858.48,-3694.92 867.84,-3580.03"/>
<polygon fill="black" stroke="black" stroke-width="2" points="871.34,-3580.13 868.24,-3570 864.35,-3579.85 871.34,-3580.13"/>
<text text-anchor="middle" x="883.74" y="-3676.3" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_50 -->
<g id="node25" class="node">
<title>fn_220_basic_block_50</title>
<polygon fill="lightgrey" stroke="black" points="530.24,-708 530.24,-1168 996.24,-1168 996.24,-708 530.24,-708"/>
<text text-anchor="start" x="538.24" y="-1152.8" font-family="Times,serif" font-size="14.00">COUNT:461245900&lt;bb 50&gt;:</text>
<polyline fill="none" stroke="black" points="530.24,-1145 996.24,-1145 "/>
<text text-anchor="start" x="538.24" y="-1129.8" font-family="Times,serif" font-size="14.00"># prephitmp_355 = PHI &lt;pretmp_171(41), iftmp.11_222(49), _218(46)&gt;</text>
<polyline fill="none" stroke="black" points="530.24,-1122 996.24,-1122 "/>
<text text-anchor="start" x="538.24" y="-1106.8" font-family="Times,serif" font-size="14.00"># prephitmp_353 = PHI &lt;prephitmp_208(41), pretmp_315(49), pretmp_354(46)&gt;</text>
<polyline fill="none" stroke="black" points="530.24,-1099 996.24,-1099 "/>
<text text-anchor="start" x="538.24" y="-1083.8" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="530.24,-1076 996.24,-1076 "/>
<text text-anchor="start" x="538.24" y="-1060.8" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="530.24,-1053 996.24,-1053 "/>
<text text-anchor="start" x="538.24" y="-1037.8" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="530.24,-1030 996.24,-1030 "/>
<text text-anchor="start" x="538.24" y="-1014.8" font-family="Times,serif" font-size="14.00">_95 = (sizetype) prephitmp_353;</text>
<polyline fill="none" stroke="black" points="530.24,-1007 996.24,-1007 "/>
<text text-anchor="start" x="538.24" y="-991.8" font-family="Times,serif" font-size="14.00">_96 = prephitmp_355 + _95;</text>
<polyline fill="none" stroke="black" points="530.24,-984 996.24,-984 "/>
<text text-anchor="start" x="538.24" y="-968.8" font-family="Times,serif" font-size="14.00">_34 = MEM &lt;short unsigned int&gt; [(char * {ref&#45;all})&amp;escaped];</text>
<polyline fill="none" stroke="black" points="530.24,-961 996.24,-961 "/>
<text text-anchor="start" x="538.24" y="-945.8" font-family="Times,serif" font-size="14.00">MEM &lt;short unsigned int&gt; [(char * {ref&#45;all})_96] = _34;</text>
<polyline fill="none" stroke="black" points="530.24,-938 996.24,-938 "/>
<text text-anchor="start" x="538.24" y="-922.8" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="530.24,-915 996.24,-915 "/>
<text text-anchor="start" x="538.24" y="-899.8" font-family="Times,serif" font-size="14.00">_97 = self_35(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="530.24,-892 996.24,-892 "/>
<text text-anchor="start" x="538.24" y="-876.8" font-family="Times,serif" font-size="14.00">_98 = _97 + 2;</text>
<polyline fill="none" stroke="black" points="530.24,-869 996.24,-869 "/>
<text text-anchor="start" x="538.24" y="-853.8" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_len = _98;</text>
<polyline fill="none" stroke="black" points="530.24,-846 996.24,-846 "/>
<text text-anchor="start" x="538.24" y="-830.8" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="530.24,-823 996.24,-823 "/>
<text text-anchor="start" x="538.24" y="-807.8" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="530.24,-800 996.24,-800 "/>
<text text-anchor="start" x="538.24" y="-784.8" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="530.24,-777 996.24,-777 "/>
<text text-anchor="start" x="538.24" y="-761.8" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="530.24,-754 996.24,-754 "/>
<text text-anchor="start" x="538.24" y="-738.8" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="530.24,-731 996.24,-731 "/>
<text text-anchor="start" x="538.24" y="-715.8" font-family="Times,serif" font-size="14.00">escaped ={v} {CLOBBER};</text>
</g>
<!-- fn_220_basic_block_41&#45;&gt;fn_220_basic_block_50 -->
<g id="edge63" class="edge">
<title>fn_220_basic_block_41:s&#45;&gt;fn_220_basic_block_50:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M191.24,-2258.5C191.24,-1799.84 144.96,-1593.26 463.24,-1263 557.74,-1164.95 753,-1301.45 762.86,-1179.1"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="766.36,-1179.13 763.24,-1169 759.36,-1178.86 766.36,-1179.13"/>
<text text-anchor="middle" x="484.24" y="-1719.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_24&#45;&gt;fn_220_basic_block_28 -->
<g id="edge38" class="edge">
<title>fn_220_basic_block_24:s&#45;&gt;fn_220_basic_block_28:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1615.24,-7271C1615.24,-7063.73 1615.24,-7009.4 1615.24,-6807.06"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1618.74,-6807 1615.24,-6797 1611.74,-6807 1618.74,-6807"/>
<text text-anchor="middle" x="1636.24" y="-7030.3" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_26 -->
<g id="node26" class="node">
<title>fn_220_basic_block_26</title>
<polygon fill="lightgrey" stroke="black" points="1828.24,-7661.5 1828.24,-7707.5 2216.24,-7707.5 2216.24,-7661.5 1828.24,-7661.5"/>
<text text-anchor="start" x="1836.24" y="-7692.3" font-family="Times,serif" font-size="14.00">COUNT:12154032&lt;bb 26&gt;:</text>
<polyline fill="none" stroke="black" points="1828.24,-7684.5 2216.24,-7684.5 "/>
<text text-anchor="start" x="1836.24" y="-7669.3" font-family="Times,serif" font-size="14.00">iftmp.11_191 = MEM[(struct PyByteArrayObject *)_189].ob_start;</text>
</g>
<!-- fn_220_basic_block_25&#45;&gt;fn_220_basic_block_26 -->
<g id="edge39" class="edge">
<title>fn_220_basic_block_25:s&#45;&gt;fn_220_basic_block_26:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1886.24,-7928C1886.24,-7816.53 2014.13,-7822.47 2021.88,-7718.1"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2025.38,-7718.12 2022.24,-7708 2018.38,-7717.87 2025.38,-7718.12"/>
<text text-anchor="middle" x="2037.74" y="-7814.3" font-family="Times,serif" font-size="14.00">[50%]</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="1795.24,-7313.5 1795.24,-7405.5 2249.24,-7405.5 2249.24,-7313.5 1795.24,-7313.5"/>
<text text-anchor="start" x="1803.24" y="-7390.3" font-family="Times,serif" font-size="14.00">COUNT:24308063&lt;bb 27&gt;:</text>
<polyline fill="none" stroke="black" points="1795.24,-7382.5 2249.24,-7382.5 "/>
<text text-anchor="start" x="1803.24" y="-7367.3" font-family="Times,serif" font-size="14.00"># iftmp.11_192 = PHI &lt;&amp;_PyByteArray_empty_string(25), iftmp.11_191(26)&gt;</text>
<polyline fill="none" stroke="black" points="1795.24,-7359.5 2249.24,-7359.5 "/>
<text text-anchor="start" x="1803.24" y="-7344.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_buffer_raw = iftmp.11_192;</text>
<polyline fill="none" stroke="black" points="1795.24,-7336.5 2249.24,-7336.5 "/>
<text text-anchor="start" x="1803.24" y="-7321.3" font-family="Times,serif" font-size="14.00">pretmp_231 = self_35(D)&#45;&gt;output_len;</text>
</g>
<!-- fn_220_basic_block_25&#45;&gt;fn_220_basic_block_27 -->
<g id="edge40" class="edge">
<title>fn_220_basic_block_25:s&#45;&gt;fn_220_basic_block_27:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1886.24,-7928C1886.24,-7901.06 1790.05,-7734.31 1784.24,-7708 1779.74,-7687.6 1776.57,-7680.43 1784.24,-7661 1839.83,-7520.19 2014.17,-7559.46 2021.97,-7416.64"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2025.47,-7416.59 2022.24,-7406.5 2018.48,-7416.4 2025.47,-7416.59"/>
<text text-anchor="middle" x="1801.74" y="-7680.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_35 -->
<g id="node28" class="node">
<title>fn_220_basic_block_35</title>
<polygon fill="lightgrey" stroke="black" points="1455.24,-2202.5 1455.24,-2378.5 1779.24,-2378.5 1779.24,-2202.5 1455.24,-2202.5"/>
<text text-anchor="start" x="1463.24" y="-2363.3" font-family="Times,serif" font-size="14.00">COUNT:7081478&lt;bb 35&gt;:</text>
<polyline fill="none" stroke="black" points="1455.24,-2355.5 1779.24,-2355.5 "/>
<text text-anchor="start" x="1463.24" y="-2340.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1455.24,-2332.5 1779.24,-2332.5 "/>
<text text-anchor="start" x="1463.24" y="-2317.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1455.24,-2309.5 1779.24,-2309.5 "/>
<text text-anchor="start" x="1463.24" y="-2294.3" font-family="Times,serif" font-size="14.00">_202 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1455.24,-2286.5 1779.24,-2286.5 "/>
<text text-anchor="start" x="1463.24" y="-2271.3" font-family="Times,serif" font-size="14.00">_203 = &amp;MEM[(struct PyBytesObject *)_202].ob_sval;</text>
<polyline fill="none" stroke="black" points="1455.24,-2263.5 1779.24,-2263.5 "/>
<text text-anchor="start" x="1463.24" y="-2248.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_buffer_raw = _203;</text>
<polyline fill="none" stroke="black" points="1455.24,-2240.5 1779.24,-2240.5 "/>
<text text-anchor="start" x="1463.24" y="-2225.3" font-family="Times,serif" font-size="14.00">pretmp_324 = self_35(D)&#45;&gt;output_len;</text>
<text text-anchor="start" x="1463.24" y="-2210.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 39&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_33&#45;&gt;fn_220_basic_block_35 -->
<g id="edge52" class="edge">
<title>fn_220_basic_block_33:s&#45;&gt;fn_220_basic_block_35:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1706.24,-3207C1706.24,-2840.31 1618.89,-2750.77 1617.27,-2389.23"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1620.77,-2388.99 1617.24,-2379 1613.77,-2389.01 1620.77,-2388.99"/>
<text text-anchor="middle" x="1710.74" y="-2891.3" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_33&#45;&gt;fn_220_basic_block_5 -->
<g id="edge51" class="edge">
<title>fn_220_basic_block_33:s&#45;&gt;fn_220_basic_block_5:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1706.24,-3207C1706.24,-3175.87 2237.22,-3200.26 2266.24,-3189 2383.5,-3143.52 2364.23,-3051.11 2481.24,-3005 2567.95,-2970.83 2813.65,-3021.46 2900.24,-2987 2942.25,-2970.28 2977.62,-2964.66 2982.63,-2925.17"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2986.14,-2925.19 2983.24,-2915 2979.15,-2924.77 2986.14,-2925.19"/>
<text text-anchor="middle" x="2495.24" y="-3093.3" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_36 -->
<g id="node29" class="node">
<title>fn_220_basic_block_36</title>
<polygon fill="lightgrey" stroke="black" points="1770.24,-3005.5 1770.24,-3188.5 2070.24,-3188.5 2070.24,-3005.5 1770.24,-3005.5"/>
<text text-anchor="start" x="1778.24" y="-3173.3" font-family="Times,serif" font-size="14.00">COUNT:16523450&lt;bb 36&gt;:</text>
<polyline fill="none" stroke="black" points="1770.24,-3165.5 2070.24,-3165.5 "/>
<text text-anchor="start" x="1778.24" y="-3150.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1770.24,-3142.5 2070.24,-3142.5 "/>
<text text-anchor="start" x="1778.24" y="-3127.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="1770.24,-3119.5 2070.24,-3119.5 "/>
<text text-anchor="start" x="1778.24" y="-3104.3" font-family="Times,serif" font-size="14.00">_204 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="1770.24,-3096.5 2070.24,-3096.5 "/>
<text text-anchor="start" x="1778.24" y="-3081.3" font-family="Times,serif" font-size="14.00">_205 = MEM[(struct PyVarObject *)_204].ob_size;</text>
<polyline fill="none" stroke="black" points="1770.24,-3073.5 2070.24,-3073.5 "/>
<text text-anchor="start" x="1778.24" y="-3058.3" font-family="Times,serif" font-size="14.00">if (_205 != 0)</text>
<text text-anchor="start" x="1778.24" y="-3043.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 37&gt;; [50.00%]</text>
<text text-anchor="start" x="1778.24" y="-3028.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="1778.24" y="-3013.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 38&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_34&#45;&gt;fn_220_basic_block_36 -->
<g id="edge54" class="edge">
<title>fn_220_basic_block_34:s&#45;&gt;fn_220_basic_block_36:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1920.24,-3409C1920.24,-3314.66 1920.24,-3288.59 1920.24,-3199.05"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1923.74,-3199 1920.24,-3189 1916.74,-3199 1923.74,-3199"/>
<text text-anchor="middle" x="1937.74" y="-3295.3" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_34&#45;&gt;fn_220_basic_block_5 -->
<g id="edge53" class="edge">
<title>fn_220_basic_block_34:s&#45;&gt;fn_220_basic_block_5:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1920.24,-3409C1920.24,-3391.25 2222.56,-3397.08 2239.24,-3391 2380.06,-3339.7 2395.57,-3286.67 2509.24,-3189 2597.68,-3113.01 2590.39,-3053.89 2696.24,-3005 2778.87,-2966.84 2816.45,-3022.55 2900.24,-2987 2941.86,-2969.34 2977.56,-2964.52 2982.63,-2925.16"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2986.13,-2925.19 2983.24,-2915 2979.14,-2924.77 2986.13,-2925.19"/>
<text text-anchor="middle" x="2500.24" y="-3295.3" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_51 -->
<g id="node30" class="node">
<title>fn_220_basic_block_51</title>
<polygon fill="lightgrey" stroke="black" points="955.74,-397.5 955.74,-558.5 1216.74,-558.5 1216.74,-397.5 955.74,-397.5"/>
<text text-anchor="start" x="963.74" y="-543.3" font-family="Times,serif" font-size="14.00">COUNT:698857428&lt;bb 51&gt;:</text>
<polyline fill="none" stroke="black" points="955.74,-535.5 1216.74,-535.5 "/>
<text text-anchor="start" x="963.74" y="-520.3" font-family="Times,serif" font-size="14.00"># prephitmp_350 = PHI &lt;_85(39), _98(50)&gt;</text>
<polyline fill="none" stroke="black" points="955.74,-512.5 1216.74,-512.5 "/>
<text text-anchor="start" x="963.74" y="-497.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="955.74,-489.5 1216.74,-489.5 "/>
<text text-anchor="start" x="963.74" y="-474.3" font-family="Times,serif" font-size="14.00">_389 = ivtmp.1187_391 + 1;</text>
<polyline fill="none" stroke="black" points="955.74,-466.5 1216.74,-466.5 "/>
<text text-anchor="start" x="963.74" y="-451.3" font-family="Times,serif" font-size="14.00">_387 = (long int) _389;</text>
<polyline fill="none" stroke="black" points="955.74,-443.5 1216.74,-443.5 "/>
<text text-anchor="start" x="963.74" y="-428.3" font-family="Times,serif" font-size="14.00"># DEBUG start =&gt; _387</text>
<polyline fill="none" stroke="black" points="955.74,-420.5 1216.74,-420.5 "/>
<text text-anchor="start" x="963.74" y="-405.3" font-family="Times,serif" font-size="14.00">pretmp_312 = len;</text>
</g>
<!-- fn_220_basic_block_39&#45;&gt;fn_220_basic_block_51 -->
<g id="edge60" class="edge">
<title>fn_220_basic_block_39:s&#45;&gt;fn_220_basic_block_51:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1522.24,-631C1522.24,-608.46 1154.84,-587.32 1094.56,-565.01"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1096.4,-562.02 1086.24,-559 1092.3,-567.69 1096.4,-562.02"/>
<text text-anchor="middle" x="1469.24" y="-591.3" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_46 -->
<g id="node31" class="node">
<title>fn_220_basic_block_46</title>
<polygon fill="lightgrey" stroke="black" points="347.24,-2202.5 347.24,-2378.5 671.24,-2378.5 671.24,-2202.5 347.24,-2202.5"/>
<text text-anchor="start" x="355.24" y="-2363.3" font-family="Times,serif" font-size="14.00">COUNT:13746399&lt;bb 46&gt;:</text>
<polyline fill="none" stroke="black" points="347.24,-2355.5 671.24,-2355.5 "/>
<text text-anchor="start" x="355.24" y="-2340.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="347.24,-2332.5 671.24,-2332.5 "/>
<text text-anchor="start" x="355.24" y="-2317.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="347.24,-2309.5 671.24,-2309.5 "/>
<text text-anchor="start" x="355.24" y="-2294.3" font-family="Times,serif" font-size="14.00">_217 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="347.24,-2286.5 671.24,-2286.5 "/>
<text text-anchor="start" x="355.24" y="-2271.3" font-family="Times,serif" font-size="14.00">_218 = &amp;MEM[(struct PyBytesObject *)_217].ob_sval;</text>
<polyline fill="none" stroke="black" points="347.24,-2263.5 671.24,-2263.5 "/>
<text text-anchor="start" x="355.24" y="-2248.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_buffer_raw = _218;</text>
<polyline fill="none" stroke="black" points="347.24,-2240.5 671.24,-2240.5 "/>
<text text-anchor="start" x="355.24" y="-2225.3" font-family="Times,serif" font-size="14.00">pretmp_354 = self_35(D)&#45;&gt;output_len;</text>
<text text-anchor="start" x="355.24" y="-2210.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 50&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_43&#45;&gt;fn_220_basic_block_46 -->
<g id="edge67" class="edge">
<title>fn_220_basic_block_43:s&#45;&gt;fn_220_basic_block_46:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M523.24,-2803C523.24,-2617.86 509.74,-2569.29 509.26,-2389.08"/>
<polygon fill="black" stroke="black" stroke-width="2" points="512.76,-2389 509.24,-2379 505.76,-2389 512.76,-2389"/>
<text text-anchor="middle" x="539.74" y="-2757.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_44 -->
<g id="node53" class="node">
<title>fn_220_basic_block_44</title>
<polygon fill="lightgrey" stroke="black" points="2293.24,-2447.5 2293.24,-2669.5 2475.24,-2669.5 2475.24,-2447.5 2293.24,-2447.5"/>
<text text-anchor="start" x="2301.24" y="-2654.3" font-family="Times,serif" font-size="14.00">COUNT:336955&lt;bb 44&gt;:</text>
<polyline fill="none" stroke="black" points="2293.24,-2646.5 2475.24,-2646.5 "/>
<text text-anchor="start" x="2301.24" y="-2631.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2293.24,-2623.5 2475.24,-2623.5 "/>
<text text-anchor="start" x="2301.24" y="-2608.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2293.24,-2600.5 2475.24,-2600.5 "/>
<text text-anchor="start" x="2301.24" y="-2585.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2293.24,-2577.5 2475.24,-2577.5 "/>
<text text-anchor="start" x="2301.24" y="-2562.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2293.24,-2554.5 2475.24,-2554.5 "/>
<text text-anchor="start" x="2301.24" y="-2539.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2293.24,-2531.5 2475.24,-2531.5 "/>
<text text-anchor="start" x="2301.24" y="-2516.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2293.24,-2508.5 2475.24,-2508.5 "/>
<text text-anchor="start" x="2301.24" y="-2493.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2293.24,-2485.5 2475.24,-2485.5 "/>
<text text-anchor="start" x="2301.24" y="-2470.3" font-family="Times,serif" font-size="14.00">escaped ={v} {CLOBBER};</text>
<text text-anchor="start" x="2301.24" y="-2455.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 74&gt;; [100.00%]</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="M523.24,-2803C523.24,-2779.33 2204.88,-2792.75 2227.24,-2785 2259.58,-2773.8 2260.68,-2758.29 2288.24,-2738 2327.29,-2709.25 2376.71,-2720.7 2383.47,-2680.54"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2386.96,-2680.74 2384.24,-2670.5 2379.98,-2680.2 2386.96,-2680.74"/>
<text text-anchor="middle" x="2302.24" y="-2757.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_47 -->
<g id="node32" class="node">
<title>fn_220_basic_block_47</title>
<polygon fill="lightgrey" stroke="black" points="718.24,-3005.5 718.24,-3188.5 1018.24,-3188.5 1018.24,-3005.5 718.24,-3005.5"/>
<text text-anchor="start" x="726.24" y="-3173.3" font-family="Times,serif" font-size="14.00">COUNT:32074932&lt;bb 47&gt;:</text>
<polyline fill="none" stroke="black" points="718.24,-3165.5 1018.24,-3165.5 "/>
<text text-anchor="start" x="726.24" y="-3150.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="718.24,-3142.5 1018.24,-3142.5 "/>
<text text-anchor="start" x="726.24" y="-3127.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="718.24,-3119.5 1018.24,-3119.5 "/>
<text text-anchor="start" x="726.24" y="-3104.3" font-family="Times,serif" font-size="14.00">_219 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="718.24,-3096.5 1018.24,-3096.5 "/>
<text text-anchor="start" x="726.24" y="-3081.3" font-family="Times,serif" font-size="14.00">_220 = MEM[(struct PyVarObject *)_219].ob_size;</text>
<polyline fill="none" stroke="black" points="718.24,-3073.5 1018.24,-3073.5 "/>
<text text-anchor="start" x="726.24" y="-3058.3" font-family="Times,serif" font-size="14.00">if (_220 != 0)</text>
<text text-anchor="start" x="726.24" y="-3043.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 48&gt;; [50.00%]</text>
<text text-anchor="start" x="726.24" y="-3028.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="726.24" y="-3013.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 49&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_45&#45;&gt;fn_220_basic_block_47 -->
<g id="edge70" class="edge">
<title>fn_220_basic_block_45:s&#45;&gt;fn_220_basic_block_47:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M868.24,-3409C868.24,-3314.66 868.24,-3288.59 868.24,-3199.05"/>
<polygon fill="black" stroke="black" stroke-width="2" points="871.74,-3199 868.24,-3189 864.74,-3199 871.74,-3199"/>
<text text-anchor="middle" x="885.74" y="-3295.3" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_45&#45;&gt;fn_220_basic_block_44 -->
<g id="edge69" class="edge">
<title>fn_220_basic_block_45:s&#45;&gt;fn_220_basic_block_44:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M868.24,-3409C868.24,-3378.69 1933.02,-3406.21 1959.24,-3391 2216.06,-3242.03 2061.22,-3007.72 2276.24,-2803 2290.36,-2789.56 2301.7,-2797.98 2316.24,-2785 2325.77,-2776.49 2369.53,-2708.37 2381.31,-2680.38"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2384.75,-2681.08 2384.24,-2670.5 2378.04,-2679.09 2384.75,-2681.08"/>
<text text-anchor="middle" x="2170.24" y="-3093.3" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_50&#45;&gt;fn_220_basic_block_51 -->
<g id="edge76" class="edge">
<title>fn_220_basic_block_50:s&#45;&gt;fn_220_basic_block_51:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M763.24,-707C763.24,-552.64 1071.9,-709.53 1085.76,-569.15"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1089.27,-569.15 1086.24,-559 1082.27,-568.82 1089.27,-569.15"/>
<text text-anchor="middle" x="1103.24" y="-591.3" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_26&#45;&gt;fn_220_basic_block_27 -->
<g id="edge41" class="edge">
<title>fn_220_basic_block_26:s&#45;&gt;fn_220_basic_block_27:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2022.24,-7661C2022.24,-7551.31 2022.24,-7521.4 2022.24,-7416.54"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2025.74,-7416.5 2022.24,-7406.5 2018.74,-7416.5 2025.74,-7416.5"/>
<text text-anchor="middle" x="2043.24" y="-7550.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_27&#45;&gt;fn_220_basic_block_28 -->
<g id="edge42" class="edge">
<title>fn_220_basic_block_27:s&#45;&gt;fn_220_basic_block_28:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2022.24,-7312.5C2022.24,-7203.9 1863.18,-7328.64 1785.24,-7253 1640.06,-7112.1 1797.19,-6964.83 1661.24,-6815 1649.72,-6802.3 1628.12,-6811.86 1619.23,-6806.18"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1622.44,-6804.78 1615.24,-6797 1616.02,-6807.57 1622.44,-6804.78"/>
<text text-anchor="middle" x="1806.24" y="-7030.3" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_35&#45;&gt;fn_220_basic_block_39 -->
<g id="edge55" class="edge">
<title>fn_220_basic_block_35:s&#45;&gt;fn_220_basic_block_39:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M1617.24,-2202C1617.24,-1778.02 1523.77,-1674.09 1522.26,-1255.27"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1525.76,-1254.99 1522.24,-1245 1518.76,-1255.01 1525.76,-1254.99"/>
<text text-anchor="middle" x="1637.24" y="-1719.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_37 -->
<g id="node33" class="node">
<title>fn_220_basic_block_37</title>
<polygon fill="lightgrey" stroke="black" points="1830.24,-2738.5 1830.24,-2784.5 2218.24,-2784.5 2218.24,-2738.5 1830.24,-2738.5"/>
<text text-anchor="start" x="1838.24" y="-2769.3" font-family="Times,serif" font-size="14.00">COUNT:8261725&lt;bb 37&gt;:</text>
<polyline fill="none" stroke="black" points="1830.24,-2761.5 2218.24,-2761.5 "/>
<text text-anchor="start" x="1838.24" y="-2746.3" font-family="Times,serif" font-size="14.00">iftmp.11_206 = MEM[(struct PyByteArrayObject *)_204].ob_start;</text>
</g>
<!-- fn_220_basic_block_36&#45;&gt;fn_220_basic_block_37 -->
<g id="edge56" 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="M1920.24,-3005C1920.24,-2900.33 2017.65,-2893.5 2023.93,-2795.14"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2027.43,-2795.1 2024.24,-2785 2020.43,-2794.89 2027.43,-2795.1"/>
<text text-anchor="middle" x="2039.74" y="-2891.3" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_38 -->
<g id="node34" class="node">
<title>fn_220_basic_block_38</title>
<polygon fill="lightgrey" stroke="black" points="1797.24,-2244.5 1797.24,-2336.5 2251.24,-2336.5 2251.24,-2244.5 1797.24,-2244.5"/>
<text text-anchor="start" x="1805.24" y="-2321.3" font-family="Times,serif" font-size="14.00">COUNT:16523450&lt;bb 38&gt;:</text>
<polyline fill="none" stroke="black" points="1797.24,-2313.5 2251.24,-2313.5 "/>
<text text-anchor="start" x="1805.24" y="-2298.3" font-family="Times,serif" font-size="14.00"># iftmp.11_207 = PHI &lt;&amp;_PyByteArray_empty_string(36), iftmp.11_206(37)&gt;</text>
<polyline fill="none" stroke="black" points="1797.24,-2290.5 2251.24,-2290.5 "/>
<text text-anchor="start" x="1805.24" y="-2275.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_buffer_raw = iftmp.11_207;</text>
<polyline fill="none" stroke="black" points="1797.24,-2267.5 2251.24,-2267.5 "/>
<text text-anchor="start" x="1805.24" y="-2252.3" font-family="Times,serif" font-size="14.00">pretmp_314 = self_35(D)&#45;&gt;output_len;</text>
</g>
<!-- fn_220_basic_block_36&#45;&gt;fn_220_basic_block_38 -->
<g id="edge57" class="edge">
<title>fn_220_basic_block_36:s&#45;&gt;fn_220_basic_block_38:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M1920.24,-3005C1920.24,-2947.76 1801.71,-2840.12 1786.24,-2785 1780.6,-2764.89 1780.71,-2758.14 1786.24,-2738 1840.18,-2541.65 2018.2,-2544.41 2024.09,-2347.64"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2027.59,-2347.55 2024.24,-2337.5 2020.6,-2347.45 2027.59,-2347.55"/>
<text text-anchor="middle" x="1803.74" y="-2757.8" font-family="Times,serif" font-size="14.00">[50%]</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="blue" stroke-width="2" d="M1086.24,-397C1086.24,-378.23 1086.24,-371.12 1086.24,-356.35"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1089.74,-356 1086.24,-346 1082.74,-356 1089.74,-356"/>
<text text-anchor="middle" x="1107.24" y="-367.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_46&#45;&gt;fn_220_basic_block_50 -->
<g id="edge71" class="edge">
<title>fn_220_basic_block_46:s&#45;&gt;fn_220_basic_block_50:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M509.24,-2202C509.24,-1774.36 581.11,-1667.72 719.24,-1263 732.98,-1222.76 758.78,-1216.03 762.73,-1179.08"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="766.23,-1179.16 763.24,-1169 759.24,-1178.81 766.23,-1179.16"/>
<text text-anchor="middle" x="740.24" y="-1719.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_48 -->
<g id="node35" class="node">
<title>fn_220_basic_block_48</title>
<polygon fill="lightgrey" stroke="black" points="722.24,-2738.5 722.24,-2784.5 1110.24,-2784.5 1110.24,-2738.5 722.24,-2738.5"/>
<text text-anchor="start" x="730.24" y="-2769.3" font-family="Times,serif" font-size="14.00">COUNT:16037466&lt;bb 48&gt;:</text>
<polyline fill="none" stroke="black" points="722.24,-2761.5 1110.24,-2761.5 "/>
<text text-anchor="start" x="730.24" y="-2746.3" font-family="Times,serif" font-size="14.00">iftmp.11_221 = MEM[(struct PyByteArrayObject *)_219].ob_start;</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="black" stroke-width="2" d="M868.24,-3005C868.24,-2908.44 912.93,-2886.57 916.07,-2795.26"/>
<polygon fill="black" stroke="black" stroke-width="2" points="919.57,-2795.06 916.24,-2785 912.57,-2794.94 919.57,-2795.06"/>
<text text-anchor="middle" x="932.74" y="-2891.3" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_49 -->
<g id="node36" class="node">
<title>fn_220_basic_block_49</title>
<polygon fill="lightgrey" stroke="black" points="689.24,-2244.5 689.24,-2336.5 1143.24,-2336.5 1143.24,-2244.5 689.24,-2244.5"/>
<text text-anchor="start" x="697.24" y="-2321.3" font-family="Times,serif" font-size="14.00">COUNT:32074932&lt;bb 49&gt;:</text>
<polyline fill="none" stroke="black" points="689.24,-2313.5 1143.24,-2313.5 "/>
<text text-anchor="start" x="697.24" y="-2298.3" font-family="Times,serif" font-size="14.00"># iftmp.11_222 = PHI &lt;&amp;_PyByteArray_empty_string(47), iftmp.11_221(48)&gt;</text>
<polyline fill="none" stroke="black" points="689.24,-2290.5 1143.24,-2290.5 "/>
<text text-anchor="start" x="697.24" y="-2275.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_buffer_raw = iftmp.11_222;</text>
<polyline fill="none" stroke="black" points="689.24,-2267.5 1143.24,-2267.5 "/>
<text text-anchor="start" x="697.24" y="-2252.3" font-family="Times,serif" font-size="14.00">pretmp_315 = self_35(D)&#45;&gt;output_len;</text>
</g>
<!-- fn_220_basic_block_47&#45;&gt;fn_220_basic_block_49 -->
<g id="edge73" class="edge">
<title>fn_220_basic_block_47:s&#45;&gt;fn_220_basic_block_49:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M868.24,-3005C868.24,-2972.7 689.51,-2815.27 678.24,-2785 670.96,-2765.42 672.71,-2758.14 678.24,-2738 732.18,-2541.65 910.2,-2544.41 916.09,-2347.64"/>
<polygon fill="black" stroke="black" stroke-width="2" points="919.59,-2347.55 916.24,-2337.5 912.6,-2347.45 919.59,-2347.55"/>
<text text-anchor="middle" x="695.74" y="-2757.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_37&#45;&gt;fn_220_basic_block_38 -->
<g id="edge58" class="edge">
<title>fn_220_basic_block_37:s&#45;&gt;fn_220_basic_block_38:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2024.24,-2738C2024.24,-2563.39 2024.24,-2517.24 2024.24,-2347.53"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2027.74,-2347.5 2024.24,-2337.5 2020.74,-2347.5 2027.74,-2347.5"/>
<text text-anchor="middle" x="2045.24" y="-2554.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_38&#45;&gt;fn_220_basic_block_39 -->
<g id="edge59" class="edge">
<title>fn_220_basic_block_38:s&#45;&gt;fn_220_basic_block_39:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2024.24,-2243.5C2024.24,-1778.97 2025.63,-1552.37 1662.24,-1263 1640.77,-1245.9 1549.69,-1268.96 1527.25,-1253.98"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="1530.17,-1252.03 1522.24,-1245 1524.06,-1255.44 1530.17,-1252.03"/>
<text text-anchor="middle" x="2044.24" y="-1719.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_48&#45;&gt;fn_220_basic_block_49 -->
<g id="edge74" class="edge">
<title>fn_220_basic_block_48:s&#45;&gt;fn_220_basic_block_49:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M916.24,-2738C916.24,-2563.39 916.24,-2517.24 916.24,-2347.53"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="919.74,-2347.5 916.24,-2337.5 912.74,-2347.5 919.74,-2347.5"/>
<text text-anchor="middle" x="937.24" y="-2554.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_49&#45;&gt;fn_220_basic_block_50 -->
<g id="edge75" class="edge">
<title>fn_220_basic_block_49:s&#45;&gt;fn_220_basic_block_50:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M916.24,-2243.5C916.24,-1764.54 765.4,-1652.95 763.27,-1179.19"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="766.77,-1178.99 763.24,-1169 759.77,-1179.01 766.77,-1178.99"/>
<text text-anchor="middle" x="935.24" y="-1719.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_0 -->
<g id="node37" class="node">
<title>fn_220_basic_block_0</title>
<polygon fill="white" stroke="black" points="3288.24,-14848 3232.11,-14830 3288.24,-14812 3344.38,-14830 3288.24,-14848"/>
<polyline fill="none" stroke="black" points="3243.53,-14833.66 3243.53,-14826.34 "/>
<polyline fill="none" stroke="black" points="3276.82,-14815.66 3299.67,-14815.66 "/>
<polyline fill="none" stroke="black" points="3332.95,-14826.34 3332.95,-14833.66 "/>
<polyline fill="none" stroke="black" points="3299.67,-14844.34 3276.82,-14844.34 "/>
<text text-anchor="middle" x="3288.24" y="-14826.3" font-family="Times,serif" font-size="14.00">ENTRY</text>
</g>
<!-- fn_220_basic_block_1 -->
<g id="node38" class="node">
<title>fn_220_basic_block_1</title>
<polygon fill="white" stroke="black" points="2727.24,-613 2683.84,-595 2727.24,-577 2770.64,-595 2727.24,-613"/>
<polyline fill="none" stroke="black" points="2694.93,-599.6 2694.93,-590.4 "/>
<polyline fill="none" stroke="black" points="2716.16,-581.6 2738.33,-581.6 "/>
<polyline fill="none" stroke="black" points="2759.56,-590.4 2759.56,-599.6 "/>
<polyline fill="none" stroke="black" points="2738.33,-608.4 2716.16,-608.4 "/>
<text text-anchor="middle" x="2727.24" y="-591.3" 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="node39" class="node">
<title>fn_220_basic_block_2</title>
<polygon fill="lightgrey" stroke="black" points="3057.74,-14462.5 3057.74,-14760.5 3518.74,-14760.5 3518.74,-14462.5 3057.74,-14462.5"/>
<text text-anchor="start" x="3065.74" y="-14745.3" font-family="Times,serif" font-size="14.00">COUNT:30452973&lt;bb 2&gt;:</text>
<polyline fill="none" stroke="black" points="3057.74,-14737.5 3518.74,-14737.5 "/>
<text text-anchor="start" x="3065.74" y="-14722.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="3057.74,-14714.5 3518.74,-14714.5 "/>
<text text-anchor="start" x="3065.74" y="-14699.3" font-family="Times,serif" font-size="14.00"># DEBUG start =&gt; 0</text>
<polyline fill="none" stroke="black" points="3057.74,-14691.5 3518.74,-14691.5 "/>
<text text-anchor="start" x="3065.74" y="-14676.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="3057.74,-14668.5 3518.74,-14668.5 "/>
<text text-anchor="start" x="3065.74" y="-14653.3" font-family="Times,serif" font-size="14.00"># DEBUG str =&gt; obj_33(D)</text>
<polyline fill="none" stroke="black" points="3057.74,-14645.5 3518.74,-14645.5 "/>
<text text-anchor="start" x="3065.74" y="-14630.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; &amp;len</text>
<polyline fill="none" stroke="black" points="3057.74,-14622.5 3518.74,-14622.5 "/>
<text text-anchor="start" x="3065.74" y="-14607.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY unicode_str_and_size</text>
<polyline fill="none" stroke="black" points="3057.74,-14599.5 3518.74,-14599.5 "/>
<text text-anchor="start" x="3065.74" y="-14584.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="3057.74,-14576.5 3518.74,-14576.5 "/>
<text text-anchor="start" x="3065.74" y="-14561.3" font-family="Times,serif" font-size="14.00">_126 = BIT_FIELD_REF &lt;MEM[(struct PyASCIIObject *)obj_33(D)], 8, 256&gt;;</text>
<polyline fill="none" stroke="black" points="3057.74,-14553.5 3518.74,-14553.5 "/>
<text text-anchor="start" x="3065.74" y="-14538.3" font-family="Times,serif" font-size="14.00">_127 = _126 &amp; 96;</text>
<polyline fill="none" stroke="black" points="3057.74,-14530.5 3518.74,-14530.5 "/>
<text text-anchor="start" x="3065.74" y="-14515.3" font-family="Times,serif" font-size="14.00">if (_127 == 96)</text>
<text text-anchor="start" x="3065.74" y="-14500.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 3&gt;; [35.01%]</text>
<text text-anchor="start" x="3065.74" y="-14485.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="3065.74" y="-14470.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="M3288.24,-14812C3288.24,-14793.23 3288.24,-14786.12 3288.24,-14771.35"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="3291.74,-14771 3288.24,-14761 3284.74,-14771 3291.74,-14771"/>
<text text-anchor="middle" x="3309.24" y="-14782.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_3 -->
<g id="node40" class="node">
<title>fn_220_basic_block_3</title>
<polygon fill="lightgrey" stroke="black" points="2818.24,-14165.5 2818.24,-14410.5 3156.24,-14410.5 3156.24,-14165.5 2818.24,-14165.5"/>
<text text-anchor="start" x="2826.24" y="-14395.3" font-family="Times,serif" font-size="14.00">COUNT:10661586&lt;bb 3&gt;:</text>
<polyline fill="none" stroke="black" points="2818.24,-14387.5 3156.24,-14387.5 "/>
<text text-anchor="start" x="2826.24" y="-14372.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2818.24,-14364.5 3156.24,-14364.5 "/>
<text text-anchor="start" x="2826.24" y="-14349.3" font-family="Times,serif" font-size="14.00">_128 = MEM[(struct PyASCIIObject *)obj_33(D)].length;</text>
<polyline fill="none" stroke="black" points="2818.24,-14341.5 3156.24,-14341.5 "/>
<text text-anchor="start" x="2826.24" y="-14326.3" font-family="Times,serif" font-size="14.00">len = _128;</text>
<polyline fill="none" stroke="black" points="2818.24,-14318.5 3156.24,-14318.5 "/>
<text text-anchor="start" x="2826.24" y="-14303.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2818.24,-14295.5 3156.24,-14295.5 "/>
<text text-anchor="start" x="2826.24" y="-14280.3" font-family="Times,serif" font-size="14.00">_129 = obj_33(D) + 48;</text>
<polyline fill="none" stroke="black" points="2818.24,-14272.5 3156.24,-14272.5 "/>
<text text-anchor="start" x="2826.24" y="-14257.3" font-family="Times,serif" font-size="14.00"># DEBUG str =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2818.24,-14249.5 3156.24,-14249.5 "/>
<text text-anchor="start" x="2826.24" y="-14234.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2818.24,-14226.5 3156.24,-14226.5 "/>
<text text-anchor="start" x="2826.24" y="-14211.3" font-family="Times,serif" font-size="14.00"># DEBUG buf =&gt; _129</text>
<polyline fill="none" stroke="black" points="2818.24,-14203.5 3156.24,-14203.5 "/>
<text text-anchor="start" x="2826.24" y="-14188.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<text text-anchor="start" x="2826.24" y="-14173.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 6&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="M3288.24,-14462C3288.24,-14431.06 3037.83,-14442.35 2993.81,-14418.84"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2996.35,-14416.42 2987.24,-14411 2990.98,-14420.91 2996.35,-14416.42"/>
<text text-anchor="middle" x="3247.74" y="-14432.8" font-family="Times,serif" font-size="14.00">[35%]</text>
</g>
<!-- fn_220_basic_block_4 -->
<g id="node41" class="node">
<title>fn_220_basic_block_4</title>
<polygon fill="lightgrey" stroke="black" points="3174.24,-14173.5 3174.24,-14402.5 3502.24,-14402.5 3502.24,-14173.5 3174.24,-14173.5"/>
<text text-anchor="start" x="3182.24" y="-14387.3" font-family="Times,serif" font-size="14.00">COUNT:19791387&lt;bb 4&gt;:</text>
<polyline fill="none" stroke="black" points="3174.24,-14379.5 3502.24,-14379.5 "/>
<text text-anchor="start" x="3182.24" y="-14364.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="3174.24,-14356.5 3502.24,-14356.5 "/>
<text text-anchor="start" x="3182.24" y="-14341.3" font-family="Times,serif" font-size="14.00">_130 = PyUnicode_AsUTF8AndSize (obj_33(D), &amp;len);</text>
<polyline fill="none" stroke="black" points="3174.24,-14333.5 3502.24,-14333.5 "/>
<text text-anchor="start" x="3182.24" y="-14318.3" font-family="Times,serif" font-size="14.00"># DEBUG str =&gt; NULL</text>
<polyline fill="none" stroke="black" points="3174.24,-14310.5 3502.24,-14310.5 "/>
<text text-anchor="start" x="3182.24" y="-14295.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="3174.24,-14287.5 3502.24,-14287.5 "/>
<text text-anchor="start" x="3182.24" y="-14272.3" font-family="Times,serif" font-size="14.00"># DEBUG buf =&gt; _130</text>
<polyline fill="none" stroke="black" points="3174.24,-14264.5 3502.24,-14264.5 "/>
<text text-anchor="start" x="3182.24" y="-14249.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="3174.24,-14241.5 3502.24,-14241.5 "/>
<text text-anchor="start" x="3182.24" y="-14226.3" font-family="Times,serif" font-size="14.00">if (_130 == 0B)</text>
<text text-anchor="start" x="3182.24" y="-14211.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 5&gt;; [0.69%]</text>
<text text-anchor="start" x="3182.24" y="-14196.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="3182.24" y="-14181.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 6&gt;; [99.31%]</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="M3288.24,-14462C3288.24,-14431.82 3327.56,-14436.32 3336.46,-14414"/>
<polygon fill="black" stroke="black" stroke-width="2" points="3339.94,-14414.46 3338.24,-14404 3333.04,-14413.23 3339.94,-14414.46"/>
<text text-anchor="middle" x="3337.74" y="-14432.8" font-family="Times,serif" font-size="14.00">[64%]</text>
</g>
<!-- fn_220_basic_block_6 -->
<g id="node43" class="node">
<title>fn_220_basic_block_6</title>
<polygon fill="lightgrey" stroke="black" points="2872.24,-13677.5 2872.24,-14113.5 3102.24,-14113.5 3102.24,-13677.5 2872.24,-13677.5"/>
<text text-anchor="start" x="2880.24" y="-14098.3" font-family="Times,serif" font-size="14.00">COUNT:30315935&lt;bb 6&gt;:</text>
<polyline fill="none" stroke="black" points="2872.24,-14090.5 3102.24,-14090.5 "/>
<text text-anchor="start" x="2880.24" y="-14075.3" font-family="Times,serif" font-size="14.00"># _395 = PHI &lt;_130(4), _129(3)&gt;</text>
<polyline fill="none" stroke="black" points="2872.24,-14067.5 3102.24,-14067.5 "/>
<text text-anchor="start" x="2880.24" y="-14052.3" font-family="Times,serif" font-size="14.00"># DEBUG str =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2872.24,-14044.5 3102.24,-14044.5 "/>
<text text-anchor="start" x="2880.24" y="-14029.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2872.24,-14021.5 3102.24,-14021.5 "/>
<text text-anchor="start" x="2880.24" y="-14006.3" font-family="Times,serif" font-size="14.00"># DEBUG buf =&gt; _395</text>
<polyline fill="none" stroke="black" points="2872.24,-13998.5 3102.24,-13998.5 "/>
<text text-anchor="start" x="2880.24" y="-13983.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2872.24,-13975.5 3102.24,-13975.5 "/>
<text text-anchor="start" x="2880.24" y="-13960.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_35(D)</text>
<polyline fill="none" stroke="black" points="2872.24,-13952.5 3102.24,-13952.5 "/>
<text text-anchor="start" x="2880.24" y="-13937.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; &quot;\&quot;&quot;</text>
<polyline fill="none" stroke="black" points="2872.24,-13929.5 3102.24,-13929.5 "/>
<text text-anchor="start" x="2880.24" y="-13914.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; 1</text>
<polyline fill="none" stroke="black" points="2872.24,-13906.5 3102.24,-13906.5 "/>
<text text-anchor="start" x="2880.24" y="-13891.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_write</text>
<polyline fill="none" stroke="black" points="2872.24,-13883.5 3102.24,-13883.5 "/>
<text text-anchor="start" x="2880.24" y="-13868.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2872.24,-13860.5 3102.24,-13860.5 "/>
<text text-anchor="start" x="2880.24" y="-13845.3" font-family="Times,serif" font-size="14.00">_46 = self_35(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="2872.24,-13837.5 3102.24,-13837.5 "/>
<text text-anchor="start" x="2880.24" y="-13822.3" font-family="Times,serif" font-size="14.00">required_47 = _46 + 1;</text>
<polyline fill="none" stroke="black" points="2872.24,-13814.5 3102.24,-13814.5 "/>
<text text-anchor="start" x="2880.24" y="-13799.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; required_47</text>
<polyline fill="none" stroke="black" points="2872.24,-13791.5 3102.24,-13791.5 "/>
<text text-anchor="start" x="2880.24" y="-13776.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2872.24,-13768.5 3102.24,-13768.5 "/>
<text text-anchor="start" x="2880.24" y="-13753.3" font-family="Times,serif" font-size="14.00">_48 = self_35(D)&#45;&gt;max_output_len;</text>
<polyline fill="none" stroke="black" points="2872.24,-13745.5 3102.24,-13745.5 "/>
<text text-anchor="start" x="2880.24" y="-13730.3" font-family="Times,serif" font-size="14.00">if (required_47 &gt; _48)</text>
<text text-anchor="start" x="2880.24" y="-13715.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 8&gt;; [10.00%]</text>
<text text-anchor="start" x="2880.24" y="-13700.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2880.24" y="-13685.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 7&gt;; [90.00%]</text>
</g>
<!-- fn_220_basic_block_3&#45;&gt;fn_220_basic_block_6 -->
<g id="edge4" class="edge">
<title>fn_220_basic_block_3:s&#45;&gt;fn_220_basic_block_6:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2987.24,-14165C2987.24,-14146.23 2987.24,-14139.12 2987.24,-14124.35"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2990.74,-14124 2987.24,-14114 2983.74,-14124 2990.74,-14124"/>
<text text-anchor="middle" x="3008.24" y="-14135.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="black" stroke-width="2" d="M3338.24,-14172C3338.24,-14025.74 3518.24,-14042.76 3518.24,-13896.5 3518.24,-13896.5 3518.24,-13896.5 3518.24,-8590.5 3518.24,-8475.44 3511.89,-8446.8 3504.24,-8332 3459.29,-7657.17 3446.23,-7488.48 3384.24,-6815 3291.02,-5802.16 3262.39,-5549.35 3145.24,-4539 3135.08,-4451.33 3127.01,-4430 3120.24,-4342 3081.54,-3838.85 3121.01,-3710.63 3089.24,-3207 3083.56,-3116.96 3106.91,-3086.98 3069.24,-3005 3047.68,-2958.06 2991.42,-2968.54 2984.05,-2925.12"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2987.52,-2924.69 2983.24,-2915 2980.54,-2925.25 2987.52,-2924.69"/>
<text text-anchor="middle" x="3532.24" y="-9532.3" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_4&#45;&gt;fn_220_basic_block_6 -->
<g id="edge6" class="edge">
<title>fn_220_basic_block_4:s&#45;&gt;fn_220_basic_block_6:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M3338.24,-14172C3338.24,-14154.09 3049.97,-14137.24 2995.92,-14119.53"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2997.56,-14116.42 2987.24,-14114 2993.8,-14122.32 2997.56,-14116.42"/>
<text text-anchor="middle" x="3210.74" y="-14135.8" font-family="Times,serif" font-size="14.00">[99%]</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="2622.24,-1263.5 2622.24,-2183.5 2832.24,-2183.5 2832.24,-1263.5 2622.24,-1263.5"/>
<text text-anchor="start" x="2630.24" y="-2168.3" font-family="Times,serif" font-size="14.00">COUNT:30452974&lt;bb 74&gt;:</text>
<polyline fill="none" stroke="black" points="2622.24,-2160.5 2832.24,-2160.5 "/>
<text text-anchor="start" x="2630.24" y="-2145.3" font-family="Times,serif" font-size="14.00"># _24 = PHI &lt;&#45;1(5), &#45;1(44), 0(73)&gt;</text>
<polyline fill="none" stroke="black" points="2622.24,-2137.5 2832.24,-2137.5 "/>
<text text-anchor="start" x="2630.24" y="-2122.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-2114.5 2832.24,-2114.5 "/>
<text text-anchor="start" x="2630.24" y="-2099.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-2091.5 2832.24,-2091.5 "/>
<text text-anchor="start" x="2630.24" y="-2076.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-2068.5 2832.24,-2068.5 "/>
<text text-anchor="start" x="2630.24" y="-2053.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-2045.5 2832.24,-2045.5 "/>
<text text-anchor="start" x="2630.24" y="-2030.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-2022.5 2832.24,-2022.5 "/>
<text text-anchor="start" x="2630.24" y="-2007.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1999.5 2832.24,-1999.5 "/>
<text text-anchor="start" x="2630.24" y="-1984.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1976.5 2832.24,-1976.5 "/>
<text text-anchor="start" x="2630.24" y="-1961.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1953.5 2832.24,-1953.5 "/>
<text text-anchor="start" x="2630.24" y="-1938.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1930.5 2832.24,-1930.5 "/>
<text text-anchor="start" x="2630.24" y="-1915.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1907.5 2832.24,-1907.5 "/>
<text text-anchor="start" x="2630.24" y="-1892.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1884.5 2832.24,-1884.5 "/>
<text text-anchor="start" x="2630.24" y="-1869.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1861.5 2832.24,-1861.5 "/>
<text text-anchor="start" x="2630.24" y="-1846.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1838.5 2832.24,-1838.5 "/>
<text text-anchor="start" x="2630.24" y="-1823.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1815.5 2832.24,-1815.5 "/>
<text text-anchor="start" x="2630.24" y="-1800.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1792.5 2832.24,-1792.5 "/>
<text text-anchor="start" x="2630.24" y="-1777.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1769.5 2832.24,-1769.5 "/>
<text text-anchor="start" x="2630.24" y="-1754.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1746.5 2832.24,-1746.5 "/>
<text text-anchor="start" x="2630.24" y="-1731.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1723.5 2832.24,-1723.5 "/>
<text text-anchor="start" x="2630.24" y="-1708.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$0 =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1700.5 2832.24,-1700.5 "/>
<text text-anchor="start" x="2630.24" y="-1685.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$1 =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1677.5 2832.24,-1677.5 "/>
<text text-anchor="start" x="2630.24" y="-1662.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$2 =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1654.5 2832.24,-1654.5 "/>
<text text-anchor="start" x="2630.24" y="-1639.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$3 =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1631.5 2832.24,-1631.5 "/>
<text text-anchor="start" x="2630.24" y="-1616.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$4 =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1608.5 2832.24,-1608.5 "/>
<text text-anchor="start" x="2630.24" y="-1593.3" font-family="Times,serif" font-size="14.00"># DEBUG escaped$5 =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1585.5 2832.24,-1585.5 "/>
<text text-anchor="start" x="2630.24" y="-1570.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1562.5 2832.24,-1562.5 "/>
<text text-anchor="start" x="2630.24" y="-1547.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1539.5 2832.24,-1539.5 "/>
<text text-anchor="start" x="2630.24" y="-1524.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1516.5 2832.24,-1516.5 "/>
<text text-anchor="start" x="2630.24" y="-1501.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1493.5 2832.24,-1493.5 "/>
<text text-anchor="start" x="2630.24" y="-1478.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1470.5 2832.24,-1470.5 "/>
<text text-anchor="start" x="2630.24" y="-1455.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1447.5 2832.24,-1447.5 "/>
<text text-anchor="start" x="2630.24" y="-1432.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1424.5 2832.24,-1424.5 "/>
<text text-anchor="start" x="2630.24" y="-1409.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1401.5 2832.24,-1401.5 "/>
<text text-anchor="start" x="2630.24" y="-1386.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1378.5 2832.24,-1378.5 "/>
<text text-anchor="start" x="2630.24" y="-1363.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1355.5 2832.24,-1355.5 "/>
<text text-anchor="start" x="2630.24" y="-1340.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1332.5 2832.24,-1332.5 "/>
<text text-anchor="start" x="2630.24" y="-1317.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2622.24,-1309.5 2832.24,-1309.5 "/>
<text text-anchor="start" x="2630.24" y="-1294.3" font-family="Times,serif" font-size="14.00">len ={v} {CLOBBER};</text>
<polyline fill="none" stroke="black" points="2622.24,-1286.5 2832.24,-1286.5 "/>
<text text-anchor="start" x="2630.24" y="-1271.3" font-family="Times,serif" font-size="14.00">return _24;</text>
</g>
<!-- fn_220_basic_block_5&#45;&gt;fn_220_basic_block_74 -->
<g id="edge7" class="edge">
<title>fn_220_basic_block_5:s&#45;&gt;fn_220_basic_block_74:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2983.24,-2875C2983.24,-2768.67 3003.29,-2494.67 2961.24,-2397 2913.64,-2286.43 2873.39,-2268.81 2773.24,-2202 2758.98,-2192.48 2738.92,-2200.25 2730.84,-2193.63"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2734.02,-2192.15 2727.24,-2184 2727.46,-2194.59 2734.02,-2192.15"/>
<text text-anchor="middle" x="3008.24" y="-2554.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_7 -->
<g id="node44" class="node">
<title>fn_220_basic_block_7</title>
<polygon fill="lightgrey" stroke="black" points="2321.74,-12222 2321.74,-12283 2596.74,-12283 2596.74,-12222 2321.74,-12222"/>
<text text-anchor="start" x="2329.74" y="-12267.8" font-family="Times,serif" font-size="14.00">COUNT:27284341&lt;bb 7&gt;:</text>
<polyline fill="none" stroke="black" points="2321.74,-12260 2596.74,-12260 "/>
<text text-anchor="start" x="2329.74" y="-12244.8" font-family="Times,serif" font-size="14.00">pretmp_262 = self_35(D)&#45;&gt;output_buffer_raw;</text>
<text text-anchor="start" x="2329.74" y="-12229.8" font-family="Times,serif" font-size="14.00">goto &lt;bb 15&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_6&#45;&gt;fn_220_basic_block_7 -->
<g id="edge9" 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="M2987.24,-13677C2987.24,-13638.2 2852.9,-13646.96 2820.24,-13626 2682.74,-13537.73 2576.24,-13514.4 2576.24,-13351 2576.24,-13351 2576.24,-13351 2576.24,-12483 2576.24,-12384.09 2467.1,-12386.6 2459.64,-12294.63"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2463.14,-12294.35 2459.24,-12284.5 2456.14,-12294.63 2463.14,-12294.35"/>
<text text-anchor="middle" x="2593.74" y="-12832.8" font-family="Times,serif" font-size="14.00">[90%]</text>
</g>
<!-- fn_220_basic_block_8 -->
<g id="node45" class="node">
<title>fn_220_basic_block_8</title>
<polygon fill="lightgrey" stroke="black" points="2829.24,-13074.5 2829.24,-13625.5 3145.24,-13625.5 3145.24,-13074.5 2829.24,-13074.5"/>
<text text-anchor="start" x="2837.24" y="-13610.3" font-family="Times,serif" font-size="14.00">COUNT:3031594&lt;bb 8&gt;:</text>
<polyline fill="none" stroke="black" points="2829.24,-13602.5 3145.24,-13602.5 "/>
<text text-anchor="start" x="2837.24" y="-13587.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2829.24,-13579.5 3145.24,-13579.5 "/>
<text text-anchor="start" x="2837.24" y="-13564.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_35(D)</text>
<polyline fill="none" stroke="black" points="2829.24,-13556.5 3145.24,-13556.5 "/>
<text text-anchor="start" x="2837.24" y="-13541.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; required_47</text>
<polyline fill="none" stroke="black" points="2829.24,-13533.5 3145.24,-13533.5 "/>
<text text-anchor="start" x="2837.24" y="-13518.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_resize</text>
<polyline fill="none" stroke="black" points="2829.24,-13510.5 3145.24,-13510.5 "/>
<text text-anchor="start" x="2837.24" y="-13495.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2829.24,-13487.5 3145.24,-13487.5 "/>
<text text-anchor="start" x="2837.24" y="-13472.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2829.24,-13464.5 3145.24,-13464.5 "/>
<text text-anchor="start" x="2837.24" y="-13449.3" font-family="Times,serif" font-size="14.00">_164 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="2829.24,-13441.5 3145.24,-13441.5 "/>
<text text-anchor="start" x="2837.24" y="-13426.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; _164</text>
<polyline fill="none" stroke="black" points="2829.24,-13418.5 3145.24,-13418.5 "/>
<text text-anchor="start" x="2837.24" y="-13403.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="2829.24,-13395.5 3145.24,-13395.5 "/>
<text text-anchor="start" x="2837.24" y="-13380.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY _Py_IS_TYPE</text>
<polyline fill="none" stroke="black" points="2829.24,-13372.5 3145.24,-13372.5 "/>
<text text-anchor="start" x="2837.24" y="-13357.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2829.24,-13349.5 3145.24,-13349.5 "/>
<text text-anchor="start" x="2837.24" y="-13334.3" font-family="Times,serif" font-size="14.00">_165 = MEM[(const struct PyObject *)_164].ob_type;</text>
<polyline fill="none" stroke="black" points="2829.24,-13326.5 3145.24,-13326.5 "/>
<text text-anchor="start" x="2837.24" y="-13311.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2829.24,-13303.5 3145.24,-13303.5 "/>
<text text-anchor="start" x="2837.24" y="-13288.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2829.24,-13280.5 3145.24,-13280.5 "/>
<text text-anchor="start" x="2837.24" y="-13265.3" font-family="Times,serif" font-size="14.00"># DEBUG is_bytes =&gt; _165 == &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="2829.24,-13257.5 3145.24,-13257.5 "/>
<text text-anchor="start" x="2837.24" y="-13242.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2829.24,-13234.5 3145.24,-13234.5 "/>
<text text-anchor="start" x="2837.24" y="-13219.3" font-family="Times,serif" font-size="14.00">_166 = required_47 * 2;</text>
<polyline fill="none" stroke="black" points="2829.24,-13211.5 3145.24,-13211.5 "/>
<text text-anchor="start" x="2837.24" y="-13196.3" font-family="Times,serif" font-size="14.00">_167 = MAX_EXPR &lt;_166, 8&gt;;</text>
<polyline fill="none" stroke="black" points="2829.24,-13188.5 3145.24,-13188.5 "/>
<text text-anchor="start" x="2837.24" y="-13173.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;max_output_len = _167;</text>
<polyline fill="none" stroke="black" points="2829.24,-13165.5 3145.24,-13165.5 "/>
<text text-anchor="start" x="2837.24" y="-13150.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2829.24,-13142.5 3145.24,-13142.5 "/>
<text text-anchor="start" x="2837.24" y="-13127.3" font-family="Times,serif" font-size="14.00">if (_165 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="2837.24" y="-13112.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 9&gt;; [30.00%]</text>
<text text-anchor="start" x="2837.24" y="-13097.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2837.24" y="-13082.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 10&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_6&#45;&gt;fn_220_basic_block_8 -->
<g id="edge8" class="edge">
<title>fn_220_basic_block_6:s&#45;&gt;fn_220_basic_block_8:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2987.24,-13677C2987.24,-13658.23 2987.24,-13651.12 2987.24,-13636.35"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2990.74,-13636 2987.24,-13626 2983.74,-13636 2990.74,-13636"/>
<text text-anchor="middle" x="3004.74" y="-13647.8" font-family="Times,serif" font-size="14.00">[10%]</text>
</g>
<!-- fn_220_basic_block_15 -->
<g id="node52" class="node">
<title>fn_220_basic_block_15</title>
<polygon fill="lightgrey" stroke="black" points="2571.74,-11538.5 2571.74,-12112.5 2982.74,-12112.5 2982.74,-11538.5 2571.74,-11538.5"/>
<text text-anchor="start" x="2579.74" y="-12097.3" font-family="Times,serif" font-size="14.00">COUNT:30293804&lt;bb 15&gt;:</text>
<polyline fill="none" stroke="black" points="2571.74,-12089.5 2982.74,-12089.5 "/>
<text text-anchor="start" x="2579.74" y="-12074.3" font-family="Times,serif" font-size="14.00"># prephitmp_261 = PHI &lt;pretmp_262(7), iftmp.11_177(14), _173(11)&gt;</text>
<polyline fill="none" stroke="black" points="2571.74,-12066.5 2982.74,-12066.5 "/>
<text text-anchor="start" x="2579.74" y="-12051.3" font-family="Times,serif" font-size="14.00"># prephitmp_258 = PHI &lt;_46(7), pretmp_260(14), pretmp_259(11)&gt;</text>
<polyline fill="none" stroke="black" points="2571.74,-12043.5 2982.74,-12043.5 "/>
<text text-anchor="start" x="2579.74" y="-12028.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2571.74,-12020.5 2982.74,-12020.5 "/>
<text text-anchor="start" x="2579.74" y="-12005.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2571.74,-11997.5 2982.74,-11997.5 "/>
<text text-anchor="start" x="2579.74" y="-11982.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2571.74,-11974.5 2982.74,-11974.5 "/>
<text text-anchor="start" x="2579.74" y="-11959.3" font-family="Times,serif" font-size="14.00">_55 = (sizetype) prephitmp_258;</text>
<polyline fill="none" stroke="black" points="2571.74,-11951.5 2982.74,-11951.5 "/>
<text text-anchor="start" x="2579.74" y="-11936.3" font-family="Times,serif" font-size="14.00">_56 = prephitmp_261 + _55;</text>
<polyline fill="none" stroke="black" points="2571.74,-11928.5 2982.74,-11928.5 "/>
<text text-anchor="start" x="2579.74" y="-11913.3" font-family="Times,serif" font-size="14.00">memcpy (_56, &quot;\&quot;&quot;, 1);</text>
<polyline fill="none" stroke="black" points="2571.74,-11905.5 2982.74,-11905.5 "/>
<text text-anchor="start" x="2579.74" y="-11890.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2571.74,-11882.5 2982.74,-11882.5 "/>
<text text-anchor="start" x="2579.74" y="-11867.3" font-family="Times,serif" font-size="14.00">_57 = self_35(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="2571.74,-11859.5 2982.74,-11859.5 "/>
<text text-anchor="start" x="2579.74" y="-11844.3" font-family="Times,serif" font-size="14.00">_58 = _57 + 1;</text>
<polyline fill="none" stroke="black" points="2571.74,-11836.5 2982.74,-11836.5 "/>
<text text-anchor="start" x="2579.74" y="-11821.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_len = _58;</text>
<polyline fill="none" stroke="black" points="2571.74,-11813.5 2982.74,-11813.5 "/>
<text text-anchor="start" x="2579.74" y="-11798.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2571.74,-11790.5 2982.74,-11790.5 "/>
<text text-anchor="start" x="2579.74" y="-11775.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2571.74,-11767.5 2982.74,-11767.5 "/>
<text text-anchor="start" x="2579.74" y="-11752.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2571.74,-11744.5 2982.74,-11744.5 "/>
<text text-anchor="start" x="2579.74" y="-11729.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2571.74,-11721.5 2982.74,-11721.5 "/>
<text text-anchor="start" x="2579.74" y="-11706.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2571.74,-11698.5 2982.74,-11698.5 "/>
<text text-anchor="start" x="2579.74" y="-11683.3" font-family="Times,serif" font-size="14.00"># DEBUG start =&gt; 0</text>
<polyline fill="none" stroke="black" points="2571.74,-11675.5 2982.74,-11675.5 "/>
<text text-anchor="start" x="2579.74" y="-11660.3" font-family="Times,serif" font-size="14.00"># DEBUG i =&gt; 0</text>
<polyline fill="none" stroke="black" points="2571.74,-11652.5 2982.74,-11652.5 "/>
<text text-anchor="start" x="2579.74" y="-11637.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2571.74,-11629.5 2982.74,-11629.5 "/>
<text text-anchor="start" x="2579.74" y="-11614.3" font-family="Times,serif" font-size="14.00">len.49_64 = len;</text>
<polyline fill="none" stroke="black" points="2571.74,-11606.5 2982.74,-11606.5 "/>
<text text-anchor="start" x="2579.74" y="-11591.3" font-family="Times,serif" font-size="14.00">if (len.49_64 &gt; 0)</text>
<text text-anchor="start" x="2579.74" y="-11576.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 16&gt;; [97.25%]</text>
<text text-anchor="start" x="2579.74" y="-11561.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2579.74" y="-11546.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 53&gt;; [2.75%]</text>
</g>
<!-- fn_220_basic_block_7&#45;&gt;fn_220_basic_block_15 -->
<g id="edge10" class="edge">
<title>fn_220_basic_block_7:s&#45;&gt;fn_220_basic_block_15:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2459.24,-12220.5C2459.24,-12150.51 2539.99,-12186.57 2606.24,-12164 2610.26,-12162.63 2732.55,-12129.91 2767.81,-12117.38"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2769.64,-12120.38 2777.24,-12113 2766.7,-12114.03 2769.64,-12120.38"/>
<text text-anchor="middle" x="2743.24" y="-12134.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_9 -->
<g id="node46" class="node">
<title>fn_220_basic_block_9</title>
<polygon fill="lightgrey" stroke="black" points="2712.74,-12392.5 2712.74,-12575.5 2991.74,-12575.5 2991.74,-12392.5 2712.74,-12392.5"/>
<text text-anchor="start" x="2720.74" y="-12560.3" font-family="Times,serif" font-size="14.00">COUNT:909478&lt;bb 9&gt;:</text>
<polyline fill="none" stroke="black" points="2712.74,-12552.5 2991.74,-12552.5 "/>
<text text-anchor="start" x="2720.74" y="-12537.3" font-family="Times,serif" font-size="14.00">_168 = &amp;self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="2712.74,-12529.5 2991.74,-12529.5 "/>
<text text-anchor="start" x="2720.74" y="-12514.3" font-family="Times,serif" font-size="14.00">iftmp.10_169 = _PyBytes_Resize (_168, _167);</text>
<polyline fill="none" stroke="black" points="2712.74,-12506.5 2991.74,-12506.5 "/>
<text text-anchor="start" x="2720.74" y="-12491.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_169</text>
<polyline fill="none" stroke="black" points="2712.74,-12483.5 2991.74,-12483.5 "/>
<text text-anchor="start" x="2720.74" y="-12468.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2712.74,-12460.5 2991.74,-12460.5 "/>
<text text-anchor="start" x="2720.74" y="-12445.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_169 &lt; 0)</text>
<text text-anchor="start" x="2720.74" y="-12430.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 5&gt;; [0.73%]</text>
<text text-anchor="start" x="2720.74" y="-12415.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2720.74" y="-12400.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_9 -->
<g id="edge11" class="edge">
<title>fn_220_basic_block_8:s&#45;&gt;fn_220_basic_block_9:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2987.24,-13074C2987.24,-13019.36 2864.6,-12668.55 2853.11,-12586.14"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2856.58,-12585.67 2852.24,-12576 2849.6,-12586.26 2856.58,-12585.67"/>
<text text-anchor="middle" x="2941.74" y="-12832.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_10 -->
<g id="node47" class="node">
<title>fn_220_basic_block_10</title>
<polygon fill="lightgrey" stroke="black" points="3112.74,-12862.5 3112.74,-13022.5 3411.74,-13022.5 3411.74,-12862.5 3112.74,-12862.5"/>
<text text-anchor="start" x="3120.74" y="-13007.3" font-family="Times,serif" font-size="14.00">COUNT:2122115&lt;bb 10&gt;:</text>
<polyline fill="none" stroke="black" points="3112.74,-12999.5 3411.74,-12999.5 "/>
<text text-anchor="start" x="3120.74" y="-12984.3" font-family="Times,serif" font-size="14.00">iftmp.10_170 = PyByteArray_Resize (_164, _167);</text>
<polyline fill="none" stroke="black" points="3112.74,-12976.5 3411.74,-12976.5 "/>
<text text-anchor="start" x="3120.74" y="-12961.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_170</text>
<polyline fill="none" stroke="black" points="3112.74,-12953.5 3411.74,-12953.5 "/>
<text text-anchor="start" x="3120.74" y="-12938.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="3112.74,-12930.5 3411.74,-12930.5 "/>
<text text-anchor="start" x="3120.74" y="-12915.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_170 &lt; 0)</text>
<text text-anchor="start" x="3120.74" y="-12900.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 5&gt;; [0.73%]</text>
<text text-anchor="start" x="3120.74" y="-12885.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="3120.74" y="-12870.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 12&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="black" stroke-width="2" d="M2987.24,-13074C2987.24,-12953.34 3246.37,-13136 3261.55,-13033.11"/>
<polygon fill="black" stroke="black" stroke-width="2" points="3265.05,-13033.22 3262.24,-13023 3258.07,-13032.74 3265.05,-13033.22"/>
<text text-anchor="middle" x="3276.74" y="-13044.8" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_9&#45;&gt;fn_220_basic_block_5 -->
<g id="edge13" class="edge">
<title>fn_220_basic_block_9:s&#45;&gt;fn_220_basic_block_5:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2852.24,-12392C2852.24,-12385.96 2944.85,-12345.99 2948.24,-12341 2970.51,-12308.27 2957.45,-12202.08 2968.24,-12164 2975.07,-12139.9 2984.08,-12136.68 2992.24,-12113 3219.51,-11454.06 3221.4,-11270.65 3341.24,-10584 3370.96,-10413.75 3376.36,-10370.41 3388.24,-10198 3445.82,-9362.54 3412.35,-9151.42 3419.24,-8314 3421.47,-8043.6 3424.81,-7473.4 3418.24,-7466 3373.96,-7416.12 3316.19,-7495.38 3269.24,-7448 3153.56,-7331.26 3115.94,-6142 3105.24,-5978 3025.09,-4748.83 3145.77,-4435.23 3052.24,-3207 3045.37,-3116.69 3050.69,-3091.93 3025.24,-3005 3013.86,-2966.11 2987.98,-2959.98 2983.81,-2925.09"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2987.3,-2924.79 2983.24,-2915 2980.31,-2925.18 2987.3,-2924.79"/>
<text text-anchor="middle" x="3435.24" y="-8016.3" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_11 -->
<g id="node48" class="node">
<title>fn_220_basic_block_11</title>
<polygon fill="lightgrey" stroke="black" points="2615.24,-12164.5 2615.24,-12340.5 2939.24,-12340.5 2939.24,-12164.5 2615.24,-12164.5"/>
<text text-anchor="start" x="2623.24" y="-12325.3" font-family="Times,serif" font-size="14.00">COUNT:902839&lt;bb 11&gt;:</text>
<polyline fill="none" stroke="black" points="2615.24,-12317.5 2939.24,-12317.5 "/>
<text text-anchor="start" x="2623.24" y="-12302.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2615.24,-12294.5 2939.24,-12294.5 "/>
<text text-anchor="start" x="2623.24" y="-12279.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2615.24,-12271.5 2939.24,-12271.5 "/>
<text text-anchor="start" x="2623.24" y="-12256.3" font-family="Times,serif" font-size="14.00">_172 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="2615.24,-12248.5 2939.24,-12248.5 "/>
<text text-anchor="start" x="2623.24" y="-12233.3" font-family="Times,serif" font-size="14.00">_173 = &amp;MEM[(struct PyBytesObject *)_172].ob_sval;</text>
<polyline fill="none" stroke="black" points="2615.24,-12225.5 2939.24,-12225.5 "/>
<text text-anchor="start" x="2623.24" y="-12210.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_buffer_raw = _173;</text>
<polyline fill="none" stroke="black" points="2615.24,-12202.5 2939.24,-12202.5 "/>
<text text-anchor="start" x="2623.24" y="-12187.3" font-family="Times,serif" font-size="14.00">pretmp_259 = self_35(D)&#45;&gt;output_len;</text>
<text text-anchor="start" x="2623.24" y="-12172.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 15&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_9&#45;&gt;fn_220_basic_block_11 -->
<g id="edge14" class="edge">
<title>fn_220_basic_block_9:s&#45;&gt;fn_220_basic_block_11:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2852.24,-12392C2852.24,-12355.63 2791.18,-12376.19 2779.25,-12350.94"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2782.65,-12350.11 2777.24,-12341 2775.79,-12351.49 2782.65,-12350.11"/>
<text text-anchor="middle" x="2858.74" y="-12362.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_10&#45;&gt;fn_220_basic_block_5 -->
<g id="edge15" class="edge">
<title>fn_220_basic_block_10:s&#45;&gt;fn_220_basic_block_5:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M3262.24,-12862C3262.24,-12852.72 3414.9,-12817.77 3421.24,-12811 3549.87,-12673.81 3480.81,-12580.06 3480.24,-12392 3476.93,-11297.27 3521.84,-8556.38 3424.24,-7466 3357.74,-6723.08 3307.94,-6540.83 3230.24,-5799 3170.82,-5231.65 3145.9,-5090.4 3111.24,-4521 3091.5,-4196.58 3099.73,-4114.88 3090.24,-3790 3087.62,-3700.22 3087.83,-3677.75 3084.24,-3588 3073.86,-3328.42 3129.35,-3249.74 3042.24,-3005 3027.46,-2963.46 2989.79,-2962.67 2984,-2925.33"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2987.46,-2924.72 2983.24,-2915 2980.48,-2925.23 2987.46,-2924.72"/>
<text text-anchor="middle" x="3486.24" y="-8408.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_12 -->
<g id="node49" class="node">
<title>fn_220_basic_block_12</title>
<polygon fill="lightgrey" stroke="black" points="3112.24,-12627.5 3112.24,-12810.5 3412.24,-12810.5 3412.24,-12627.5 3112.24,-12627.5"/>
<text text-anchor="start" x="3120.24" y="-12795.3" font-family="Times,serif" font-size="14.00">COUNT:2106624&lt;bb 12&gt;:</text>
<polyline fill="none" stroke="black" points="3112.24,-12787.5 3412.24,-12787.5 "/>
<text text-anchor="start" x="3120.24" y="-12772.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="3112.24,-12764.5 3412.24,-12764.5 "/>
<text text-anchor="start" x="3120.24" y="-12749.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="3112.24,-12741.5 3412.24,-12741.5 "/>
<text text-anchor="start" x="3120.24" y="-12726.3" font-family="Times,serif" font-size="14.00">_174 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="3112.24,-12718.5 3412.24,-12718.5 "/>
<text text-anchor="start" x="3120.24" y="-12703.3" font-family="Times,serif" font-size="14.00">_175 = MEM[(struct PyVarObject *)_174].ob_size;</text>
<polyline fill="none" stroke="black" points="3112.24,-12695.5 3412.24,-12695.5 "/>
<text text-anchor="start" x="3120.24" y="-12680.3" font-family="Times,serif" font-size="14.00">if (_175 != 0)</text>
<text text-anchor="start" x="3120.24" y="-12665.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 13&gt;; [50.00%]</text>
<text text-anchor="start" x="3120.24" y="-12650.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="3120.24" y="-12635.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 14&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_10&#45;&gt;fn_220_basic_block_12 -->
<g id="edge16" class="edge">
<title>fn_220_basic_block_10:s&#45;&gt;fn_220_basic_block_12:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M3262.24,-12862C3262.24,-12843.23 3262.24,-12836.12 3262.24,-12821.35"/>
<polygon fill="black" stroke="black" stroke-width="2" points="3265.74,-12821 3262.24,-12811 3258.74,-12821 3265.74,-12821"/>
<text text-anchor="middle" x="3279.74" y="-12832.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_11&#45;&gt;fn_220_basic_block_15 -->
<g id="edge17" class="edge">
<title>fn_220_basic_block_11:s&#45;&gt;fn_220_basic_block_15:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2777.24,-12164C2777.24,-12145.23 2777.24,-12138.12 2777.24,-12123.35"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2780.74,-12123 2777.24,-12113 2773.74,-12123 2780.74,-12123"/>
<text text-anchor="middle" x="2798.24" y="-12134.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_13 -->
<g id="node50" class="node">
<title>fn_220_basic_block_13</title>
<polygon fill="lightgrey" stroke="black" points="3010.24,-12461 3010.24,-12507 3398.24,-12507 3398.24,-12461 3010.24,-12461"/>
<text text-anchor="start" x="3018.24" y="-12491.8" font-family="Times,serif" font-size="14.00">COUNT:1053312&lt;bb 13&gt;:</text>
<polyline fill="none" stroke="black" points="3010.24,-12484 3398.24,-12484 "/>
<text text-anchor="start" x="3018.24" y="-12468.8" font-family="Times,serif" font-size="14.00">iftmp.11_176 = MEM[(struct PyByteArrayObject *)_174].ob_start;</text>
</g>
<!-- fn_220_basic_block_12&#45;&gt;fn_220_basic_block_13 -->
<g id="edge18" class="edge">
<title>fn_220_basic_block_12:s&#45;&gt;fn_220_basic_block_13:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M3262.24,-12627C3262.24,-12571.73 3211.05,-12567.21 3204.86,-12518.08"/>
<polygon fill="black" stroke="black" stroke-width="2" points="3208.34,-12517.77 3204.24,-12508 3201.36,-12518.19 3208.34,-12517.77"/>
<text text-anchor="middle" x="3276.74" y="-12597.8" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_14 -->
<g id="node51" class="node">
<title>fn_220_basic_block_14</title>
<polygon fill="lightgrey" stroke="black" points="2977.24,-12206.5 2977.24,-12298.5 3431.24,-12298.5 3431.24,-12206.5 2977.24,-12206.5"/>
<text text-anchor="start" x="2985.24" y="-12283.3" font-family="Times,serif" font-size="14.00">COUNT:2106624&lt;bb 14&gt;:</text>
<polyline fill="none" stroke="black" points="2977.24,-12275.5 3431.24,-12275.5 "/>
<text text-anchor="start" x="2985.24" y="-12260.3" font-family="Times,serif" font-size="14.00"># iftmp.11_177 = PHI &lt;&amp;_PyByteArray_empty_string(12), iftmp.11_176(13)&gt;</text>
<polyline fill="none" stroke="black" points="2977.24,-12252.5 3431.24,-12252.5 "/>
<text text-anchor="start" x="2985.24" y="-12237.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_buffer_raw = iftmp.11_177;</text>
<polyline fill="none" stroke="black" points="2977.24,-12229.5 3431.24,-12229.5 "/>
<text text-anchor="start" x="2985.24" y="-12214.3" font-family="Times,serif" font-size="14.00">pretmp_260 = self_35(D)&#45;&gt;output_len;</text>
</g>
<!-- fn_220_basic_block_12&#45;&gt;fn_220_basic_block_14 -->
<g id="edge19" class="edge">
<title>fn_220_basic_block_12:s&#45;&gt;fn_220_basic_block_14:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M3262.24,-12627C3262.24,-12609.92 3397.37,-12589.94 3407.24,-12576 3454.51,-12509.27 3451.48,-12460.78 3407.24,-12392 3355.54,-12311.63 3214.91,-12392.37 3204.82,-12309.52"/>
<polygon fill="black" stroke="black" stroke-width="2" points="3208.31,-12309.28 3204.24,-12299.5 3201.32,-12309.68 3208.31,-12309.28"/>
<text text-anchor="middle" x="3458.74" y="-12480.3" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_13&#45;&gt;fn_220_basic_block_14 -->
<g id="edge20" class="edge">
<title>fn_220_basic_block_13:s&#45;&gt;fn_220_basic_block_14:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M3204.24,-12460C3204.24,-12392.15 3204.24,-12372.7 3204.24,-12309.58"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="3207.74,-12309.5 3204.24,-12299.5 3200.74,-12309.5 3207.74,-12309.5"/>
<text text-anchor="middle" x="3225.24" y="-12362.8" font-family="Times,serif" font-size="14.00">[100%]</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="M3204.24,-12205.5C3204.24,-12183.22 2844.42,-12144.35 2785.39,-12119.35"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2787.28,-12116.39 2777.24,-12113 2782.98,-12121.91 2787.28,-12116.39"/>
<text text-anchor="middle" x="2924.24" y="-12134.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="black" stroke-width="2" d="M2777.24,-11538C2777.24,-11498.87 1408.19,-11500.79 1369.24,-11497 1290.86,-11489.36 1195.27,-11543.71 1186.84,-11476.77"/>
<polygon fill="black" stroke="black" stroke-width="2" points="1190.32,-11476.28 1186.24,-11466.5 1183.33,-11476.69 1190.32,-11476.28"/>
<text text-anchor="middle" x="2651.74" y="-11508.8" font-family="Times,serif" font-size="14.00">[97%]</text>
</g>
<!-- fn_220_basic_block_15&#45;&gt;fn_220_basic_block_53 -->
<g id="edge23" class="edge">
<title>fn_220_basic_block_15:s&#45;&gt;fn_220_basic_block_53:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2777.24,-11538C2777.24,-11286.82 2777.24,-11221.44 2777.24,-10975.34"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2780.74,-10975 2777.24,-10965 2773.74,-10975 2780.74,-10975"/>
<text text-anchor="middle" x="2791.24" y="-11508.8" font-family="Times,serif" font-size="14.00">[2%]</text>
</g>
<!-- fn_220_basic_block_44&#45;&gt;fn_220_basic_block_74 -->
<g id="edge68" class="edge">
<title>fn_220_basic_block_44:s&#45;&gt;fn_220_basic_block_74:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2384.24,-2446.5C2384.24,-2275.53 2533.8,-2288.56 2681.24,-2202 2696.03,-2193.32 2715.79,-2200.61 2723.73,-2193.75"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2727.14,-2194.59 2727.24,-2184 2720.56,-2192.22 2727.14,-2194.59"/>
<text text-anchor="middle" x="2702.24" y="-2286.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_54 -->
<g id="node55" class="node">
<title>fn_220_basic_block_54</title>
<polygon fill="lightgrey" stroke="black" points="2662.24,-10216.5 2662.24,-10583.5 2892.24,-10583.5 2892.24,-10216.5 2662.24,-10216.5"/>
<text text-anchor="start" x="2670.24" y="-10568.3" font-family="Times,serif" font-size="14.00">COUNT:19488417&lt;bb 54&gt;:</text>
<polyline fill="none" stroke="black" points="2662.24,-10560.5 2892.24,-10560.5 "/>
<text text-anchor="start" x="2670.24" y="-10545.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2662.24,-10537.5 2892.24,-10537.5 "/>
<text text-anchor="start" x="2670.24" y="-10522.3" font-family="Times,serif" font-size="14.00">_18 = i_364 &#45; start_376;</text>
<polyline fill="none" stroke="black" points="2662.24,-10514.5 2892.24,-10514.5 "/>
<text text-anchor="start" x="2670.24" y="-10499.3" font-family="Times,serif" font-size="14.00">start.51_19 = (sizetype) start_376;</text>
<polyline fill="none" stroke="black" points="2662.24,-10491.5 2892.24,-10491.5 "/>
<text text-anchor="start" x="2670.24" y="-10476.3" font-family="Times,serif" font-size="14.00">_20 = _395 + start.51_19;</text>
<polyline fill="none" stroke="black" points="2662.24,-10468.5 2892.24,-10468.5 "/>
<text text-anchor="start" x="2670.24" y="-10453.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_35(D)</text>
<polyline fill="none" stroke="black" points="2662.24,-10445.5 2892.24,-10445.5 "/>
<text text-anchor="start" x="2670.24" y="-10430.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; _20</text>
<polyline fill="none" stroke="black" points="2662.24,-10422.5 2892.24,-10422.5 "/>
<text text-anchor="start" x="2670.24" y="-10407.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; _18</text>
<polyline fill="none" stroke="black" points="2662.24,-10399.5 2892.24,-10399.5 "/>
<text text-anchor="start" x="2670.24" y="-10384.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_write</text>
<polyline fill="none" stroke="black" points="2662.24,-10376.5 2892.24,-10376.5 "/>
<text text-anchor="start" x="2670.24" y="-10361.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2662.24,-10353.5 2892.24,-10353.5 "/>
<text text-anchor="start" x="2670.24" y="-10338.3" font-family="Times,serif" font-size="14.00">required_100 = _18 + prephitmp_356;</text>
<polyline fill="none" stroke="black" points="2662.24,-10330.5 2892.24,-10330.5 "/>
<text text-anchor="start" x="2670.24" y="-10315.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; required_100</text>
<polyline fill="none" stroke="black" points="2662.24,-10307.5 2892.24,-10307.5 "/>
<text text-anchor="start" x="2670.24" y="-10292.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2662.24,-10284.5 2892.24,-10284.5 "/>
<text text-anchor="start" x="2670.24" y="-10269.3" font-family="Times,serif" font-size="14.00">if (required_100 &gt; pretmp_340)</text>
<text text-anchor="start" x="2670.24" y="-10254.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 56&gt;; [10.00%]</text>
<text text-anchor="start" x="2670.24" y="-10239.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2670.24" y="-10224.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 55&gt;; [90.00%]</text>
</g>
<!-- fn_220_basic_block_53&#45;&gt;fn_220_basic_block_54 -->
<g id="edge80" class="edge">
<title>fn_220_basic_block_53:s&#45;&gt;fn_220_basic_block_54:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2777.24,-10735C2777.24,-10671.43 2777.24,-10653.02 2777.24,-10594.21"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2780.74,-10594 2777.24,-10584 2773.74,-10594 2780.74,-10594"/>
<text text-anchor="middle" x="2794.74" y="-10655.8" font-family="Times,serif" font-size="14.00">[66%]</text>
</g>
<!-- fn_220_basic_block_64 -->
<g id="node65" class="node">
<title>fn_220_basic_block_64</title>
<polygon fill="lightgrey" stroke="black" points="2609.74,-5996.5 2609.74,-6340.5 2940.74,-6340.5 2940.74,-5996.5 2609.74,-5996.5"/>
<text text-anchor="start" x="2617.74" y="-6325.3" font-family="Times,serif" font-size="14.00">COUNT:29513677&lt;bb 64&gt;:</text>
<polyline fill="none" stroke="black" points="2609.74,-6317.5 2940.74,-6317.5 "/>
<text text-anchor="start" x="2617.74" y="-6302.3" font-family="Times,serif" font-size="14.00"># prephitmp_343 = PHI &lt;prephitmp_356(53), _112(63)&gt;</text>
<polyline fill="none" stroke="black" points="2609.74,-6294.5 2940.74,-6294.5 "/>
<text text-anchor="start" x="2617.74" y="-6279.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2609.74,-6271.5 2940.74,-6271.5 "/>
<text text-anchor="start" x="2617.74" y="-6256.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_35(D)</text>
<polyline fill="none" stroke="black" points="2609.74,-6248.5 2940.74,-6248.5 "/>
<text text-anchor="start" x="2617.74" y="-6233.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; &quot;\&quot;&quot;</text>
<polyline fill="none" stroke="black" points="2609.74,-6225.5 2940.74,-6225.5 "/>
<text text-anchor="start" x="2617.74" y="-6210.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; 1</text>
<polyline fill="none" stroke="black" points="2609.74,-6202.5 2940.74,-6202.5 "/>
<text text-anchor="start" x="2617.74" y="-6187.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_write</text>
<polyline fill="none" stroke="black" points="2609.74,-6179.5 2940.74,-6179.5 "/>
<text text-anchor="start" x="2617.74" y="-6164.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2609.74,-6156.5 2940.74,-6156.5 "/>
<text text-anchor="start" x="2617.74" y="-6141.3" font-family="Times,serif" font-size="14.00">required_114 = prephitmp_343 + 1;</text>
<polyline fill="none" stroke="black" points="2609.74,-6133.5 2940.74,-6133.5 "/>
<text text-anchor="start" x="2617.74" y="-6118.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; required_114</text>
<polyline fill="none" stroke="black" points="2609.74,-6110.5 2940.74,-6110.5 "/>
<text text-anchor="start" x="2617.74" y="-6095.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2609.74,-6087.5 2940.74,-6087.5 "/>
<text text-anchor="start" x="2617.74" y="-6072.3" font-family="Times,serif" font-size="14.00">_115 = self_35(D)&#45;&gt;max_output_len;</text>
<polyline fill="none" stroke="black" points="2609.74,-6064.5 2940.74,-6064.5 "/>
<text text-anchor="start" x="2617.74" y="-6049.3" font-family="Times,serif" font-size="14.00">if (required_114 &gt; _115)</text>
<text text-anchor="start" x="2617.74" y="-6034.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 66&gt;; [10.00%]</text>
<text text-anchor="start" x="2617.74" y="-6019.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2617.74" y="-6004.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 65&gt;; [90.00%]</text>
</g>
<!-- fn_220_basic_block_53&#45;&gt;fn_220_basic_block_64 -->
<g id="edge81" class="edge">
<title>fn_220_basic_block_53:s&#45;&gt;fn_220_basic_block_64:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2777.24,-10735C2777.24,-10715.91 2799.23,-10725.65 2816.24,-10717 3073.4,-10586.24 3383.24,-10689.49 3383.24,-10401 3383.24,-10401 3383.24,-10401 3383.24,-8411.5 3383.24,-8286.39 3380.56,-8255.06 3384.24,-8130 3390.63,-7913.32 3405.24,-7859.69 3411.24,-7643 3411.79,-7623.34 3424.36,-7480.65 3411.24,-7466 3387.09,-7439.01 3280.69,-7465.98 3249.24,-7448 3155.25,-7394.26 3148.09,-7351.54 3103.24,-7253 3020.78,-7071.78 3068.31,-7005.13 3009.24,-6815 2944.2,-6605.66 2977.65,-6512.6 2821.24,-6359 2809.01,-6346.98 2787.81,-6356.16 2779.13,-6350.28"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2782.33,-6348.87 2775.24,-6341 2775.88,-6351.58 2782.33,-6348.87"/>
<text text-anchor="middle" x="3401.74" y="-8218.3" font-family="Times,serif" font-size="14.00">[34%]</text>
</g>
<!-- fn_220_basic_block_55 -->
<g id="node56" class="node">
<title>fn_220_basic_block_55</title>
<polygon fill="lightgrey" stroke="black" points="2340.24,-7524 2340.24,-7585 2608.24,-7585 2608.24,-7524 2340.24,-7524"/>
<text text-anchor="start" x="2348.24" y="-7569.8" font-family="Times,serif" font-size="14.00">COUNT:17539575&lt;bb 55&gt;:</text>
<polyline fill="none" stroke="black" points="2340.24,-7562 2608.24,-7562 "/>
<text text-anchor="start" x="2348.24" y="-7546.8" font-family="Times,serif" font-size="14.00">pretmp_79 = self_35(D)&#45;&gt;output_buffer_raw;</text>
<text text-anchor="start" x="2348.24" y="-7531.8" font-family="Times,serif" font-size="14.00">goto &lt;bb 63&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_54&#45;&gt;fn_220_basic_block_55 -->
<g id="edge83" class="edge">
<title>fn_220_basic_block_54:s&#45;&gt;fn_220_basic_block_55:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2777.24,-10216C2777.24,-10191.9 2626.81,-9834.88 2619.24,-9812 2579.45,-9691.73 2544.24,-9663.69 2544.24,-9537 2544.24,-9537 2544.24,-9537 2544.24,-7817 2544.24,-7713.39 2478.68,-7694.71 2474.46,-7596.57"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2477.95,-7596.42 2474.24,-7586.5 2470.96,-7596.57 2477.95,-7596.42"/>
<text text-anchor="middle" x="2561.74" y="-8408.8" font-family="Times,serif" font-size="14.00">[90%]</text>
</g>
<!-- fn_220_basic_block_56 -->
<g id="node57" class="node">
<title>fn_220_basic_block_56</title>
<polygon fill="lightgrey" stroke="black" points="2628.24,-9260.5 2628.24,-9811.5 2944.24,-9811.5 2944.24,-9260.5 2628.24,-9260.5"/>
<text text-anchor="start" x="2636.24" y="-9796.3" font-family="Times,serif" font-size="14.00">COUNT:1948842&lt;bb 56&gt;:</text>
<polyline fill="none" stroke="black" points="2628.24,-9788.5 2944.24,-9788.5 "/>
<text text-anchor="start" x="2636.24" y="-9773.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2628.24,-9765.5 2944.24,-9765.5 "/>
<text text-anchor="start" x="2636.24" y="-9750.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_35(D)</text>
<polyline fill="none" stroke="black" points="2628.24,-9742.5 2944.24,-9742.5 "/>
<text text-anchor="start" x="2636.24" y="-9727.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; required_100</text>
<polyline fill="none" stroke="black" points="2628.24,-9719.5 2944.24,-9719.5 "/>
<text text-anchor="start" x="2636.24" y="-9704.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_resize</text>
<polyline fill="none" stroke="black" points="2628.24,-9696.5 2944.24,-9696.5 "/>
<text text-anchor="start" x="2636.24" y="-9681.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2628.24,-9673.5 2944.24,-9673.5 "/>
<text text-anchor="start" x="2636.24" y="-9658.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2628.24,-9650.5 2944.24,-9650.5 "/>
<text text-anchor="start" x="2636.24" y="-9635.3" font-family="Times,serif" font-size="14.00">_224 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="2628.24,-9627.5 2944.24,-9627.5 "/>
<text text-anchor="start" x="2636.24" y="-9612.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; _224</text>
<polyline fill="none" stroke="black" points="2628.24,-9604.5 2944.24,-9604.5 "/>
<text text-anchor="start" x="2636.24" y="-9589.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="2628.24,-9581.5 2944.24,-9581.5 "/>
<text text-anchor="start" x="2636.24" y="-9566.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY _Py_IS_TYPE</text>
<polyline fill="none" stroke="black" points="2628.24,-9558.5 2944.24,-9558.5 "/>
<text text-anchor="start" x="2636.24" y="-9543.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2628.24,-9535.5 2944.24,-9535.5 "/>
<text text-anchor="start" x="2636.24" y="-9520.3" font-family="Times,serif" font-size="14.00">_225 = MEM[(const struct PyObject *)_224].ob_type;</text>
<polyline fill="none" stroke="black" points="2628.24,-9512.5 2944.24,-9512.5 "/>
<text text-anchor="start" x="2636.24" y="-9497.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2628.24,-9489.5 2944.24,-9489.5 "/>
<text text-anchor="start" x="2636.24" y="-9474.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2628.24,-9466.5 2944.24,-9466.5 "/>
<text text-anchor="start" x="2636.24" y="-9451.3" font-family="Times,serif" font-size="14.00"># DEBUG is_bytes =&gt; _225 == &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="2628.24,-9443.5 2944.24,-9443.5 "/>
<text text-anchor="start" x="2636.24" y="-9428.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2628.24,-9420.5 2944.24,-9420.5 "/>
<text text-anchor="start" x="2636.24" y="-9405.3" font-family="Times,serif" font-size="14.00">_226 = required_100 * 2;</text>
<polyline fill="none" stroke="black" points="2628.24,-9397.5 2944.24,-9397.5 "/>
<text text-anchor="start" x="2636.24" y="-9382.3" font-family="Times,serif" font-size="14.00">_227 = MAX_EXPR &lt;_226, 8&gt;;</text>
<polyline fill="none" stroke="black" points="2628.24,-9374.5 2944.24,-9374.5 "/>
<text text-anchor="start" x="2636.24" y="-9359.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;max_output_len = _227;</text>
<polyline fill="none" stroke="black" points="2628.24,-9351.5 2944.24,-9351.5 "/>
<text text-anchor="start" x="2636.24" y="-9336.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2628.24,-9328.5 2944.24,-9328.5 "/>
<text text-anchor="start" x="2636.24" y="-9313.3" font-family="Times,serif" font-size="14.00">if (_225 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="2636.24" y="-9298.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 57&gt;; [30.00%]</text>
<text text-anchor="start" x="2636.24" y="-9283.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2636.24" y="-9268.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 58&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_54&#45;&gt;fn_220_basic_block_56 -->
<g id="edge82" class="edge">
<title>fn_220_basic_block_54:s&#45;&gt;fn_220_basic_block_56:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2777.24,-10216C2777.24,-10039.82 2785.9,-9993.36 2786.23,-9822.12"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2789.73,-9822 2786.24,-9812 2782.73,-9822 2789.73,-9822"/>
<text text-anchor="middle" x="2802.74" y="-10010.3" font-family="Times,serif" font-size="14.00">[10%]</text>
</g>
<!-- fn_220_basic_block_63 -->
<g id="node64" class="node">
<title>fn_220_basic_block_63</title>
<polygon fill="lightgrey" stroke="black" points="2542.24,-6815.5 2542.24,-7252.5 3008.24,-7252.5 3008.24,-6815.5 2542.24,-6815.5"/>
<text text-anchor="start" x="2550.24" y="-7237.3" font-family="Times,serif" font-size="14.00">COUNT:19474190&lt;bb 63&gt;:</text>
<polyline fill="none" stroke="black" points="2542.24,-7229.5 3008.24,-7229.5 "/>
<text text-anchor="start" x="2550.24" y="-7214.3" font-family="Times,serif" font-size="14.00"># prephitmp_65 = PHI &lt;pretmp_79(55), iftmp.11_237(62), _233(59)&gt;</text>
<polyline fill="none" stroke="black" points="2542.24,-7206.5 3008.24,-7206.5 "/>
<text text-anchor="start" x="2550.24" y="-7191.3" font-family="Times,serif" font-size="14.00"># prephitmp_344 = PHI &lt;prephitmp_356(55), pretmp_345(62), pretmp_309(59)&gt;</text>
<polyline fill="none" stroke="black" points="2542.24,-7183.5 3008.24,-7183.5 "/>
<text text-anchor="start" x="2550.24" y="-7168.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2542.24,-7160.5 3008.24,-7160.5 "/>
<text text-anchor="start" x="2550.24" y="-7145.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2542.24,-7137.5 3008.24,-7137.5 "/>
<text text-anchor="start" x="2550.24" y="-7122.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2542.24,-7114.5 3008.24,-7114.5 "/>
<text text-anchor="start" x="2550.24" y="-7099.3" font-family="Times,serif" font-size="14.00">n.9_106 = (long unsigned int) _18;</text>
<polyline fill="none" stroke="black" points="2542.24,-7091.5 3008.24,-7091.5 "/>
<text text-anchor="start" x="2550.24" y="-7076.3" font-family="Times,serif" font-size="14.00">_109 = (sizetype) prephitmp_344;</text>
<polyline fill="none" stroke="black" points="2542.24,-7068.5 3008.24,-7068.5 "/>
<text text-anchor="start" x="2550.24" y="-7053.3" font-family="Times,serif" font-size="14.00">_110 = prephitmp_65 + _109;</text>
<polyline fill="none" stroke="black" points="2542.24,-7045.5 3008.24,-7045.5 "/>
<text text-anchor="start" x="2550.24" y="-7030.3" font-family="Times,serif" font-size="14.00">memcpy (_110, _20, n.9_106);</text>
<polyline fill="none" stroke="black" points="2542.24,-7022.5 3008.24,-7022.5 "/>
<text text-anchor="start" x="2550.24" y="-7007.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2542.24,-6999.5 3008.24,-6999.5 "/>
<text text-anchor="start" x="2550.24" y="-6984.3" font-family="Times,serif" font-size="14.00">_111 = self_35(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="2542.24,-6976.5 3008.24,-6976.5 "/>
<text text-anchor="start" x="2550.24" y="-6961.3" font-family="Times,serif" font-size="14.00">_112 = _18 + _111;</text>
<polyline fill="none" stroke="black" points="2542.24,-6953.5 3008.24,-6953.5 "/>
<text text-anchor="start" x="2550.24" y="-6938.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_len = _112;</text>
<polyline fill="none" stroke="black" points="2542.24,-6930.5 3008.24,-6930.5 "/>
<text text-anchor="start" x="2550.24" y="-6915.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2542.24,-6907.5 3008.24,-6907.5 "/>
<text text-anchor="start" x="2550.24" y="-6892.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2542.24,-6884.5 3008.24,-6884.5 "/>
<text text-anchor="start" x="2550.24" y="-6869.3" font-family="Times,serif" font-size="14.00"># DEBUG s =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2542.24,-6861.5 3008.24,-6861.5 "/>
<text text-anchor="start" x="2550.24" y="-6846.3" font-family="Times,serif" font-size="14.00"># DEBUG n =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2542.24,-6838.5 3008.24,-6838.5 "/>
<text text-anchor="start" x="2550.24" y="-6823.3" font-family="Times,serif" font-size="14.00"># DEBUG required =&gt; NULL</text>
</g>
<!-- fn_220_basic_block_55&#45;&gt;fn_220_basic_block_63 -->
<g id="edge84" class="edge">
<title>fn_220_basic_block_55:s&#45;&gt;fn_220_basic_block_63:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2474.24,-7522.5C2474.24,-7363.32 2595.72,-7357.67 2729.24,-7271 2743.63,-7261.66 2763.61,-7269.33 2771.67,-7262.66"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2775.05,-7263.59 2775.24,-7253 2768.49,-7261.16 2775.05,-7263.59"/>
<text text-anchor="middle" x="2750.24" y="-7355.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_57 -->
<g id="node58" class="node">
<title>fn_220_basic_block_57</title>
<polygon fill="lightgrey" stroke="black" points="2646.74,-7726.5 2646.74,-7909.5 2925.74,-7909.5 2925.74,-7726.5 2646.74,-7726.5"/>
<text text-anchor="start" x="2654.74" y="-7894.3" font-family="Times,serif" font-size="14.00">COUNT:584652&lt;bb 57&gt;:</text>
<polyline fill="none" stroke="black" points="2646.74,-7886.5 2925.74,-7886.5 "/>
<text text-anchor="start" x="2654.74" y="-7871.3" font-family="Times,serif" font-size="14.00">_228 = &amp;self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="2646.74,-7863.5 2925.74,-7863.5 "/>
<text text-anchor="start" x="2654.74" y="-7848.3" font-family="Times,serif" font-size="14.00">iftmp.10_229 = _PyBytes_Resize (_228, _227);</text>
<polyline fill="none" stroke="black" points="2646.74,-7840.5 2925.74,-7840.5 "/>
<text text-anchor="start" x="2654.74" y="-7825.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_229</text>
<polyline fill="none" stroke="black" points="2646.74,-7817.5 2925.74,-7817.5 "/>
<text text-anchor="start" x="2654.74" y="-7802.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2646.74,-7794.5 2925.74,-7794.5 "/>
<text text-anchor="start" x="2654.74" y="-7779.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_229 &lt; 0)</text>
<text text-anchor="start" x="2654.74" y="-7764.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 5&gt;; [0.73%]</text>
<text text-anchor="start" x="2654.74" y="-7749.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2654.74" y="-7734.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 59&gt;; [99.27%]</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="M2786.24,-9260C2786.24,-8663.37 2786.24,-8511.7 2786.24,-7920.07"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2789.74,-7920 2786.24,-7910 2782.74,-7920 2789.74,-7920"/>
<text text-anchor="middle" x="2803.74" y="-8408.8" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_58 -->
<g id="node59" class="node">
<title>fn_220_basic_block_58</title>
<polygon fill="lightgrey" stroke="black" points="2800.74,-8511.5 2800.74,-8671.5 3099.74,-8671.5 3099.74,-8511.5 2800.74,-8511.5"/>
<text text-anchor="start" x="2808.74" y="-8656.3" font-family="Times,serif" font-size="14.00">COUNT:1364189&lt;bb 58&gt;:</text>
<polyline fill="none" stroke="black" points="2800.74,-8648.5 3099.74,-8648.5 "/>
<text text-anchor="start" x="2808.74" y="-8633.3" font-family="Times,serif" font-size="14.00">iftmp.10_230 = PyByteArray_Resize (_224, _227);</text>
<polyline fill="none" stroke="black" points="2800.74,-8625.5 3099.74,-8625.5 "/>
<text text-anchor="start" x="2808.74" y="-8610.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_230</text>
<polyline fill="none" stroke="black" points="2800.74,-8602.5 3099.74,-8602.5 "/>
<text text-anchor="start" x="2808.74" y="-8587.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2800.74,-8579.5 3099.74,-8579.5 "/>
<text text-anchor="start" x="2808.74" y="-8564.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_230 &lt; 0)</text>
<text text-anchor="start" x="2808.74" y="-8549.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 5&gt;; [0.73%]</text>
<text text-anchor="start" x="2808.74" y="-8534.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2808.74" y="-8519.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 60&gt;; [99.27%]</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="M2786.24,-9260C2786.24,-9260 2926.21,-8758.17 2947.53,-8681.72"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2950.93,-8682.57 2950.24,-8672 2944.19,-8680.69 2950.93,-8682.57"/>
<text text-anchor="middle" x="2960.74" y="-8962.3" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_57&#45;&gt;fn_220_basic_block_5 -->
<g id="edge87" class="edge">
<title>fn_220_basic_block_57:s&#45;&gt;fn_220_basic_block_5:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2786.24,-7726C2786.24,-7707.71 2807.05,-7716.5 2823.24,-7708 2875.22,-7680.7 2907.24,-7692.85 2938.24,-7643 2959.05,-7609.55 2935.77,-7503.37 2948.24,-7466 2951.29,-7456.88 2956.38,-7456.81 2960.24,-7448 2992.75,-7373.86 2969.36,-7344.52 3003.24,-7271 3007.37,-7262.04 3013.21,-7262.39 3016.24,-7253 3046.19,-7160.39 3016.34,-6912.33 3016.24,-6815 3015.8,-6363.44 3014.93,-6250.56 3014.24,-5799 3013.62,-5392.78 3013.24,-5291.22 3013.24,-4885 3013.24,-4885 3013.24,-4885 3013.24,-3298 3013.24,-3130.76 2984.46,-3087.5 2983.28,-2925.34"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2986.78,-2924.99 2983.24,-2915 2979.78,-2925.01 2986.78,-2924.99"/>
<text text-anchor="middle" x="3028.24" y="-5519.3" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_59 -->
<g id="node60" class="node">
<title>fn_220_basic_block_59</title>
<polygon fill="lightgrey" stroke="black" points="2613.24,-7466.5 2613.24,-7642.5 2937.24,-7642.5 2937.24,-7466.5 2613.24,-7466.5"/>
<text text-anchor="start" x="2621.24" y="-7627.3" font-family="Times,serif" font-size="14.00">COUNT:580385&lt;bb 59&gt;:</text>
<polyline fill="none" stroke="black" points="2613.24,-7619.5 2937.24,-7619.5 "/>
<text text-anchor="start" x="2621.24" y="-7604.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2613.24,-7596.5 2937.24,-7596.5 "/>
<text text-anchor="start" x="2621.24" y="-7581.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2613.24,-7573.5 2937.24,-7573.5 "/>
<text text-anchor="start" x="2621.24" y="-7558.3" font-family="Times,serif" font-size="14.00">_232 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="2613.24,-7550.5 2937.24,-7550.5 "/>
<text text-anchor="start" x="2621.24" y="-7535.3" font-family="Times,serif" font-size="14.00">_233 = &amp;MEM[(struct PyBytesObject *)_232].ob_sval;</text>
<polyline fill="none" stroke="black" points="2613.24,-7527.5 2937.24,-7527.5 "/>
<text text-anchor="start" x="2621.24" y="-7512.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_buffer_raw = _233;</text>
<polyline fill="none" stroke="black" points="2613.24,-7504.5 2937.24,-7504.5 "/>
<text text-anchor="start" x="2621.24" y="-7489.3" font-family="Times,serif" font-size="14.00">pretmp_309 = self_35(D)&#45;&gt;output_len;</text>
<text text-anchor="start" x="2621.24" y="-7474.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 63&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_57&#45;&gt;fn_220_basic_block_59 -->
<g id="edge88" class="edge">
<title>fn_220_basic_block_57:s&#45;&gt;fn_220_basic_block_59:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2786.24,-7726C2786.24,-7692.42 2777.29,-7682.16 2775.54,-7653.14"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2779.03,-7652.89 2775.24,-7643 2772.03,-7653.1 2779.03,-7652.89"/>
<text text-anchor="middle" x="2801.74" y="-7680.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_58&#45;&gt;fn_220_basic_block_5 -->
<g id="edge89" class="edge">
<title>fn_220_basic_block_58:s&#45;&gt;fn_220_basic_block_5:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2950.24,-8511C2950.24,-8383 2950.24,-8351 2950.24,-8223 2950.24,-8223 2950.24,-8223 2950.24,-7683.5 2950.24,-7659.33 2942.94,-7486.81 2955.24,-7466 2963.35,-7452.28 2976.91,-7460.91 2986.24,-7448 3038.13,-7376.23 3017.43,-7341.02 3027.24,-7253 3060.59,-6953.82 3047.24,-6199.53 3047.24,-5898.5 3047.24,-5898.5 3047.24,-5898.5 3047.24,-3298 3047.24,-3166.25 3025.86,-3134.62 3002.24,-3005 2995.57,-2968.39 2985.31,-2957.73 2983.51,-2925.29"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2987.01,-2924.9 2983.24,-2915 2980.01,-2925.09 2987.01,-2924.9"/>
<text text-anchor="middle" x="3063.24" y="-6164.8" font-family="Times,serif" font-size="14.00">[0%]</text>
</g>
<!-- fn_220_basic_block_60 -->
<g id="node61" class="node">
<title>fn_220_basic_block_60</title>
<polygon fill="lightgrey" stroke="black" points="3000.24,-8130.5 3000.24,-8313.5 3300.24,-8313.5 3300.24,-8130.5 3000.24,-8130.5"/>
<text text-anchor="start" x="3008.24" y="-8298.3" font-family="Times,serif" font-size="14.00">COUNT:1354231&lt;bb 60&gt;:</text>
<polyline fill="none" stroke="black" points="3000.24,-8290.5 3300.24,-8290.5 "/>
<text text-anchor="start" x="3008.24" y="-8275.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="3000.24,-8267.5 3300.24,-8267.5 "/>
<text text-anchor="start" x="3008.24" y="-8252.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="3000.24,-8244.5 3300.24,-8244.5 "/>
<text text-anchor="start" x="3008.24" y="-8229.3" font-family="Times,serif" font-size="14.00">_234 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="3000.24,-8221.5 3300.24,-8221.5 "/>
<text text-anchor="start" x="3008.24" y="-8206.3" font-family="Times,serif" font-size="14.00">_235 = MEM[(struct PyVarObject *)_234].ob_size;</text>
<polyline fill="none" stroke="black" points="3000.24,-8198.5 3300.24,-8198.5 "/>
<text text-anchor="start" x="3008.24" y="-8183.3" font-family="Times,serif" font-size="14.00">if (_235 != 0)</text>
<text text-anchor="start" x="3008.24" y="-8168.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 61&gt;; [50.00%]</text>
<text text-anchor="start" x="3008.24" y="-8153.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="3008.24" y="-8138.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 62&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_58&#45;&gt;fn_220_basic_block_60 -->
<g id="edge90" 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="M2950.24,-8511C2950.24,-8451.91 3129.71,-8383.98 3148.63,-8323.95"/>
<polygon fill="black" stroke="black" stroke-width="2" points="3152.1,-8324.43 3150.24,-8314 3145.19,-8323.31 3152.1,-8324.43"/>
<text text-anchor="middle" x="3161.74" y="-8408.8" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_59&#45;&gt;fn_220_basic_block_63 -->
<g id="edge91" class="edge">
<title>fn_220_basic_block_59:s&#45;&gt;fn_220_basic_block_63:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2775.24,-7466C2775.24,-7374.85 2775.24,-7349.52 2775.24,-7263.25"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2778.74,-7263 2775.24,-7253 2771.74,-7263 2778.74,-7263"/>
<text text-anchor="middle" x="2796.24" y="-7355.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_61 -->
<g id="node62" class="node">
<title>fn_220_basic_block_61</title>
<polygon fill="lightgrey" stroke="black" points="2956.24,-7795 2956.24,-7841 3344.24,-7841 3344.24,-7795 2956.24,-7795"/>
<text text-anchor="start" x="2964.24" y="-7825.8" font-family="Times,serif" font-size="14.00">COUNT:677115&lt;bb 61&gt;:</text>
<polyline fill="none" stroke="black" points="2956.24,-7818 3344.24,-7818 "/>
<text text-anchor="start" x="2964.24" y="-7802.8" font-family="Times,serif" font-size="14.00">iftmp.11_236 = MEM[(struct PyByteArrayObject *)_234].ob_start;</text>
</g>
<!-- fn_220_basic_block_60&#45;&gt;fn_220_basic_block_61 -->
<g id="edge92" class="edge">
<title>fn_220_basic_block_60:s&#45;&gt;fn_220_basic_block_61:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M3150.24,-8130C3150.24,-8005.5 3150.24,-7971.82 3150.24,-7852.29"/>
<polygon fill="black" stroke="black" stroke-width="2" points="3153.74,-7852 3150.24,-7842 3146.74,-7852 3153.74,-7852"/>
<text text-anchor="middle" x="3167.74" y="-8016.3" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_62 -->
<g id="node63" class="node">
<title>fn_220_basic_block_62</title>
<polygon fill="lightgrey" stroke="black" points="2956.24,-7508.5 2956.24,-7600.5 3410.24,-7600.5 3410.24,-7508.5 2956.24,-7508.5"/>
<text text-anchor="start" x="2964.24" y="-7585.3" font-family="Times,serif" font-size="14.00">COUNT:1354231&lt;bb 62&gt;:</text>
<polyline fill="none" stroke="black" points="2956.24,-7577.5 3410.24,-7577.5 "/>
<text text-anchor="start" x="2964.24" y="-7562.3" font-family="Times,serif" font-size="14.00"># iftmp.11_237 = PHI &lt;&amp;_PyByteArray_empty_string(60), iftmp.11_236(61)&gt;</text>
<polyline fill="none" stroke="black" points="2956.24,-7554.5 3410.24,-7554.5 "/>
<text text-anchor="start" x="2964.24" y="-7539.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_buffer_raw = iftmp.11_237;</text>
<polyline fill="none" stroke="black" points="2956.24,-7531.5 3410.24,-7531.5 "/>
<text text-anchor="start" x="2964.24" y="-7516.3" font-family="Times,serif" font-size="14.00">pretmp_345 = self_35(D)&#45;&gt;output_len;</text>
</g>
<!-- fn_220_basic_block_60&#45;&gt;fn_220_basic_block_62 -->
<g id="edge93" class="edge">
<title>fn_220_basic_block_60:s&#45;&gt;fn_220_basic_block_62:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M3150.24,-8130C3150.24,-8110.91 3174.31,-8123.9 3189.24,-8112 3277.96,-8041.31 3308.61,-8017.36 3345.24,-7910 3358.45,-7871.3 3363.31,-7762.68 3345.24,-7726 3306.68,-7647.73 3192.64,-7688.77 3183.79,-7611.52"/>
<polygon fill="black" stroke="black" stroke-width="2" points="3187.28,-7611.29 3183.24,-7601.5 3180.29,-7611.68 3187.28,-7611.29"/>
<text text-anchor="middle" x="3373.74" y="-7814.3" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_61&#45;&gt;fn_220_basic_block_62 -->
<g id="edge94" class="edge">
<title>fn_220_basic_block_61:s&#45;&gt;fn_220_basic_block_62:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M3150.24,-7794C3150.24,-7710.76 3180.59,-7689.97 3183.08,-7611.85"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="3186.59,-7611.55 3183.24,-7601.5 3179.59,-7611.44 3186.59,-7611.55"/>
<text text-anchor="middle" x="3197.24" y="-7680.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_62&#45;&gt;fn_220_basic_block_63 -->
<g id="edge95" 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="M3183.24,-7507.5C3183.24,-7420.28 3070.62,-7493.55 2996.24,-7448 2901.91,-7390.22 2913.65,-7331.81 2821.24,-7271 2806.92,-7261.57 2786.9,-7269.29 2778.83,-7262.65"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2782.01,-7261.16 2775.24,-7253 2775.44,-7263.59 2782.01,-7261.16"/>
<text text-anchor="middle" x="3017.24" y="-7355.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_63&#45;&gt;fn_220_basic_block_64 -->
<g id="edge96" class="edge">
<title>fn_220_basic_block_63:s&#45;&gt;fn_220_basic_block_64:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2775.24,-6815C2775.24,-6607.73 2775.24,-6553.4 2775.24,-6351.06"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2778.74,-6351 2775.24,-6341 2771.74,-6351 2778.74,-6351"/>
<text text-anchor="middle" x="2796.24" y="-6574.3" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_65 -->
<g id="node66" class="node">
<title>fn_220_basic_block_65</title>
<polygon fill="lightgrey" stroke="black" points="2294.74,-2864.5 2294.74,-2925.5 2569.74,-2925.5 2569.74,-2864.5 2294.74,-2864.5"/>
<text text-anchor="start" x="2302.74" y="-2910.3" font-family="Times,serif" font-size="14.00">COUNT:26562309&lt;bb 65&gt;:</text>
<polyline fill="none" stroke="black" points="2294.74,-2902.5 2569.74,-2902.5 "/>
<text text-anchor="start" x="2302.74" y="-2887.3" font-family="Times,serif" font-size="14.00">pretmp_308 = self_35(D)&#45;&gt;output_buffer_raw;</text>
<text text-anchor="start" x="2302.74" y="-2872.3" font-family="Times,serif" font-size="14.00">goto &lt;bb 73&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_64&#45;&gt;fn_220_basic_block_65 -->
<g id="edge98" class="edge">
<title>fn_220_basic_block_64:s&#45;&gt;fn_220_basic_block_65:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2775.24,-5996C2775.24,-5938.61 2630.16,-5852.04 2608.24,-5799 2198.53,-4807.32 2470.82,-4463.39 2435.24,-3391 2428.52,-3188.31 2432.12,-3134.98 2432.24,-2937.14"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2435.74,-2937 2432.24,-2927 2428.74,-2937 2435.74,-2937"/>
<text text-anchor="middle" x="2451.74" y="-4062.3" font-family="Times,serif" font-size="14.00">[90%]</text>
</g>
<!-- fn_220_basic_block_66 -->
<g id="node67" class="node">
<title>fn_220_basic_block_66</title>
<polygon fill="lightgrey" stroke="black" points="2617.24,-5247.5 2617.24,-5798.5 2933.24,-5798.5 2933.24,-5247.5 2617.24,-5247.5"/>
<text text-anchor="start" x="2625.24" y="-5783.3" font-family="Times,serif" font-size="14.00">COUNT:2951368&lt;bb 66&gt;:</text>
<polyline fill="none" stroke="black" points="2617.24,-5775.5 2933.24,-5775.5 "/>
<text text-anchor="start" x="2625.24" y="-5760.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2617.24,-5752.5 2933.24,-5752.5 "/>
<text text-anchor="start" x="2625.24" y="-5737.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; self_35(D)</text>
<polyline fill="none" stroke="black" points="2617.24,-5729.5 2933.24,-5729.5 "/>
<text text-anchor="start" x="2625.24" y="-5714.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; required_114</text>
<polyline fill="none" stroke="black" points="2617.24,-5706.5 2933.24,-5706.5 "/>
<text text-anchor="start" x="2625.24" y="-5691.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY mp_resize</text>
<polyline fill="none" stroke="black" points="2617.24,-5683.5 2933.24,-5683.5 "/>
<text text-anchor="start" x="2625.24" y="-5668.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2617.24,-5660.5 2933.24,-5660.5 "/>
<text text-anchor="start" x="2625.24" y="-5645.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2617.24,-5637.5 2933.24,-5637.5 "/>
<text text-anchor="start" x="2625.24" y="-5622.3" font-family="Times,serif" font-size="14.00">_239 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="2617.24,-5614.5 2933.24,-5614.5 "/>
<text text-anchor="start" x="2625.24" y="-5599.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; _239</text>
<polyline fill="none" stroke="black" points="2617.24,-5591.5 2933.24,-5591.5 "/>
<text text-anchor="start" x="2625.24" y="-5576.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="2617.24,-5568.5 2933.24,-5568.5 "/>
<text text-anchor="start" x="2625.24" y="-5553.3" font-family="Times,serif" font-size="14.00"># DEBUG INLINE_ENTRY _Py_IS_TYPE</text>
<polyline fill="none" stroke="black" points="2617.24,-5545.5 2933.24,-5545.5 "/>
<text text-anchor="start" x="2625.24" y="-5530.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2617.24,-5522.5 2933.24,-5522.5 "/>
<text text-anchor="start" x="2625.24" y="-5507.3" font-family="Times,serif" font-size="14.00">_240 = MEM[(const struct PyObject *)_239].ob_type;</text>
<polyline fill="none" stroke="black" points="2617.24,-5499.5 2933.24,-5499.5 "/>
<text text-anchor="start" x="2625.24" y="-5484.3" font-family="Times,serif" font-size="14.00"># DEBUG ob =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2617.24,-5476.5 2933.24,-5476.5 "/>
<text text-anchor="start" x="2625.24" y="-5461.3" font-family="Times,serif" font-size="14.00"># DEBUG type =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2617.24,-5453.5 2933.24,-5453.5 "/>
<text text-anchor="start" x="2625.24" y="-5438.3" font-family="Times,serif" font-size="14.00"># DEBUG is_bytes =&gt; _240 == &amp;PyBytes_Type</text>
<polyline fill="none" stroke="black" points="2617.24,-5430.5 2933.24,-5430.5 "/>
<text text-anchor="start" x="2625.24" y="-5415.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2617.24,-5407.5 2933.24,-5407.5 "/>
<text text-anchor="start" x="2625.24" y="-5392.3" font-family="Times,serif" font-size="14.00">_241 = required_114 * 2;</text>
<polyline fill="none" stroke="black" points="2617.24,-5384.5 2933.24,-5384.5 "/>
<text text-anchor="start" x="2625.24" y="-5369.3" font-family="Times,serif" font-size="14.00">_242 = MAX_EXPR &lt;_241, 8&gt;;</text>
<polyline fill="none" stroke="black" points="2617.24,-5361.5 2933.24,-5361.5 "/>
<text text-anchor="start" x="2625.24" y="-5346.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;max_output_len = _242;</text>
<polyline fill="none" stroke="black" points="2617.24,-5338.5 2933.24,-5338.5 "/>
<text text-anchor="start" x="2625.24" y="-5323.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2617.24,-5315.5 2933.24,-5315.5 "/>
<text text-anchor="start" x="2625.24" y="-5300.3" font-family="Times,serif" font-size="14.00">if (_240 == &amp;PyBytes_Type)</text>
<text text-anchor="start" x="2625.24" y="-5285.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 67&gt;; [30.00%]</text>
<text text-anchor="start" x="2625.24" y="-5270.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2625.24" y="-5255.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 68&gt;; [70.00%]</text>
</g>
<!-- fn_220_basic_block_64&#45;&gt;fn_220_basic_block_66 -->
<g id="edge97" class="edge">
<title>fn_220_basic_block_64:s&#45;&gt;fn_220_basic_block_66:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2775.24,-5996C2775.24,-5912.04 2775.24,-5888.46 2775.24,-5809.45"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2778.74,-5809 2775.24,-5799 2771.74,-5809 2778.74,-5809"/>
<text text-anchor="middle" x="2792.74" y="-5893.8" font-family="Times,serif" font-size="14.00">[10%]</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="2494.24,-2397.5 2494.24,-2719.5 2960.24,-2719.5 2960.24,-2397.5 2494.24,-2397.5"/>
<text text-anchor="start" x="2502.24" y="-2704.3" font-family="Times,serif" font-size="14.00">COUNT:29492133&lt;bb 73&gt;:</text>
<polyline fill="none" stroke="black" points="2494.24,-2696.5 2960.24,-2696.5 "/>
<text text-anchor="start" x="2502.24" y="-2681.3" font-family="Times,serif" font-size="14.00"># prephitmp_322 = PHI &lt;pretmp_308(65), iftmp.11_252(72), _248(69)&gt;</text>
<polyline fill="none" stroke="black" points="2494.24,-2673.5 2960.24,-2673.5 "/>
<text text-anchor="start" x="2502.24" y="-2658.3" font-family="Times,serif" font-size="14.00"># prephitmp_321 = PHI &lt;prephitmp_343(65), pretmp_307(72), pretmp_317(69)&gt;</text>
<polyline fill="none" stroke="black" points="2494.24,-2650.5 2960.24,-2650.5 "/>
<text text-anchor="start" x="2502.24" y="-2635.3" font-family="Times,serif" font-size="14.00"># DEBUG self =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2494.24,-2627.5 2960.24,-2627.5 "/>
<text text-anchor="start" x="2502.24" y="-2612.3" font-family="Times,serif" font-size="14.00"># DEBUG size =&gt; NULL</text>
<polyline fill="none" stroke="black" points="2494.24,-2604.5 2960.24,-2604.5 "/>
<text text-anchor="start" x="2502.24" y="-2589.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2494.24,-2581.5 2960.24,-2581.5 "/>
<text text-anchor="start" x="2502.24" y="-2566.3" font-family="Times,serif" font-size="14.00">_122 = (sizetype) prephitmp_321;</text>
<polyline fill="none" stroke="black" points="2494.24,-2558.5 2960.24,-2558.5 "/>
<text text-anchor="start" x="2502.24" y="-2543.3" font-family="Times,serif" font-size="14.00">_123 = prephitmp_322 + _122;</text>
<polyline fill="none" stroke="black" points="2494.24,-2535.5 2960.24,-2535.5 "/>
<text text-anchor="start" x="2502.24" y="-2520.3" font-family="Times,serif" font-size="14.00">memcpy (_123, &quot;\&quot;&quot;, 1);</text>
<polyline fill="none" stroke="black" points="2494.24,-2512.5 2960.24,-2512.5 "/>
<text text-anchor="start" x="2502.24" y="-2497.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2494.24,-2489.5 2960.24,-2489.5 "/>
<text text-anchor="start" x="2502.24" y="-2474.3" font-family="Times,serif" font-size="14.00">_124 = self_35(D)&#45;&gt;output_len;</text>
<polyline fill="none" stroke="black" points="2494.24,-2466.5 2960.24,-2466.5 "/>
<text text-anchor="start" x="2502.24" y="-2451.3" font-family="Times,serif" font-size="14.00">_125 = _124 + 1;</text>
<polyline fill="none" stroke="black" points="2494.24,-2443.5 2960.24,-2443.5 "/>
<text text-anchor="start" x="2502.24" y="-2428.3" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_len = _125;</text>
<polyline fill="none" stroke="black" points="2494.24,-2420.5 2960.24,-2420.5 "/>
<text text-anchor="start" x="2502.24" y="-2405.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
</g>
<!-- fn_220_basic_block_65&#45;&gt;fn_220_basic_block_73 -->
<g id="edge99" class="edge">
<title>fn_220_basic_block_65:s&#45;&gt;fn_220_basic_block_73:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2432.24,-2863C2432.24,-2739.17 2568.13,-2788.39 2681.24,-2738 2696.91,-2731.02 2716.17,-2737.36 2723.85,-2730"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2727.35,-2730.59 2727.24,-2720 2720.72,-2728.35 2727.35,-2730.59"/>
<text text-anchor="middle" x="2702.24" y="-2757.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_67 -->
<g id="node68" class="node">
<title>fn_220_basic_block_67</title>
<polygon fill="lightgrey" stroke="black" points="2561.74,-3207.5 2561.74,-3390.5 2840.74,-3390.5 2840.74,-3207.5 2561.74,-3207.5"/>
<text text-anchor="start" x="2569.74" y="-3375.3" font-family="Times,serif" font-size="14.00">COUNT:885410&lt;bb 67&gt;:</text>
<polyline fill="none" stroke="black" points="2561.74,-3367.5 2840.74,-3367.5 "/>
<text text-anchor="start" x="2569.74" y="-3352.3" font-family="Times,serif" font-size="14.00">_243 = &amp;self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="2561.74,-3344.5 2840.74,-3344.5 "/>
<text text-anchor="start" x="2569.74" y="-3329.3" font-family="Times,serif" font-size="14.00">iftmp.10_244 = _PyBytes_Resize (_243, _242);</text>
<polyline fill="none" stroke="black" points="2561.74,-3321.5 2840.74,-3321.5 "/>
<text text-anchor="start" x="2569.74" y="-3306.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_244</text>
<polyline fill="none" stroke="black" points="2561.74,-3298.5 2840.74,-3298.5 "/>
<text text-anchor="start" x="2569.74" y="-3283.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2561.74,-3275.5 2840.74,-3275.5 "/>
<text text-anchor="start" x="2569.74" y="-3260.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_244 &lt; 0)</text>
<text text-anchor="start" x="2569.74" y="-3245.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 5&gt;; [0.73%]</text>
<text text-anchor="start" x="2569.74" y="-3230.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2569.74" y="-3215.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 69&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_66&#45;&gt;fn_220_basic_block_67 -->
<g id="edge100" class="edge">
<title>fn_220_basic_block_66:s&#45;&gt;fn_220_basic_block_67:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2775.24,-5247C2775.24,-5238.8 2772.51,-5237.1 2771.24,-5229 2722.43,-4916.8 2721.4,-4836.63 2706.24,-4521 2682.32,-4022.78 2700.98,-3894.97 2701.24,-3401.25"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2704.74,-3401 2701.24,-3391 2697.74,-3401 2704.74,-3401"/>
<text text-anchor="middle" x="2715.74" y="-4062.3" font-family="Times,serif" font-size="14.00">[30%]</text>
</g>
<!-- fn_220_basic_block_68 -->
<g id="node69" class="node">
<title>fn_220_basic_block_68</title>
<polygon fill="lightgrey" stroke="black" points="2707.74,-4360.5 2707.74,-4520.5 3006.74,-4520.5 3006.74,-4360.5 2707.74,-4360.5"/>
<text text-anchor="start" x="2715.74" y="-4505.3" font-family="Times,serif" font-size="14.00">COUNT:2065957&lt;bb 68&gt;:</text>
<polyline fill="none" stroke="black" points="2707.74,-4497.5 3006.74,-4497.5 "/>
<text text-anchor="start" x="2715.74" y="-4482.3" font-family="Times,serif" font-size="14.00">iftmp.10_245 = PyByteArray_Resize (_239, _242);</text>
<polyline fill="none" stroke="black" points="2707.74,-4474.5 3006.74,-4474.5 "/>
<text text-anchor="start" x="2715.74" y="-4459.3" font-family="Times,serif" font-size="14.00"># DEBUG status =&gt; iftmp.10_245</text>
<polyline fill="none" stroke="black" points="2707.74,-4451.5 3006.74,-4451.5 "/>
<text text-anchor="start" x="2715.74" y="-4436.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2707.74,-4428.5 3006.74,-4428.5 "/>
<text text-anchor="start" x="2715.74" y="-4413.3" font-family="Times,serif" font-size="14.00">if (iftmp.10_245 &lt; 0)</text>
<text text-anchor="start" x="2715.74" y="-4398.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 5&gt;; [0.73%]</text>
<text text-anchor="start" x="2715.74" y="-4383.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="2715.74" y="-4368.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 70&gt;; [99.27%]</text>
</g>
<!-- fn_220_basic_block_66&#45;&gt;fn_220_basic_block_68 -->
<g id="edge101" class="edge">
<title>fn_220_basic_block_66:s&#45;&gt;fn_220_basic_block_68:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2775.24,-5247C2775.24,-4925.77 2855.49,-4847.39 2857.21,-4531.38"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2860.72,-4531.01 2857.24,-4521 2853.72,-4530.99 2860.72,-4531.01"/>
<text text-anchor="middle" x="2873.74" y="-4880.3" font-family="Times,serif" font-size="14.00">[70%]</text>
</g>
<!-- fn_220_basic_block_67&#45;&gt;fn_220_basic_block_5 -->
<g id="edge102" class="edge">
<title>fn_220_basic_block_67:s&#45;&gt;fn_220_basic_block_5:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2701.24,-3207C2701.24,-3075.16 2799.41,-3071.95 2900.24,-2987 2934.67,-2957.99 2976.16,-2962.78 2982.43,-2925.45"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2985.96,-2925.24 2983.24,-2915 2978.98,-2924.7 2985.96,-2925.24"/>
<text text-anchor="middle" x="2889.24" y="-3093.3" font-family="Times,serif" font-size="14.00">[0%]</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="2575.24,-2807 2575.24,-2983 2899.24,-2983 2899.24,-2807 2575.24,-2807"/>
<text text-anchor="start" x="2583.24" y="-2967.8" font-family="Times,serif" font-size="14.00">COUNT:878947&lt;bb 69&gt;:</text>
<polyline fill="none" stroke="black" points="2575.24,-2960 2899.24,-2960 "/>
<text text-anchor="start" x="2583.24" y="-2944.8" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2575.24,-2937 2899.24,-2937 "/>
<text text-anchor="start" x="2583.24" y="-2921.8" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="2575.24,-2914 2899.24,-2914 "/>
<text text-anchor="start" x="2583.24" y="-2898.8" font-family="Times,serif" font-size="14.00">_247 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="2575.24,-2891 2899.24,-2891 "/>
<text text-anchor="start" x="2583.24" y="-2875.8" font-family="Times,serif" font-size="14.00">_248 = &amp;MEM[(struct PyBytesObject *)_247].ob_sval;</text>
<polyline fill="none" stroke="black" points="2575.24,-2868 2899.24,-2868 "/>
<text text-anchor="start" x="2583.24" y="-2852.8" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_buffer_raw = _248;</text>
<polyline fill="none" stroke="black" points="2575.24,-2845 2899.24,-2845 "/>
<text text-anchor="start" x="2583.24" y="-2829.8" font-family="Times,serif" font-size="14.00">pretmp_317 = self_35(D)&#45;&gt;output_len;</text>
<text text-anchor="start" x="2583.24" y="-2814.8" font-family="Times,serif" font-size="14.00">goto &lt;bb 73&gt;; [100.00%]</text>
</g>
<!-- fn_220_basic_block_67&#45;&gt;fn_220_basic_block_69 -->
<g id="edge103" class="edge">
<title>fn_220_basic_block_67:s&#45;&gt;fn_220_basic_block_69:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2701.24,-3207C2701.24,-3116.54 2699.27,-3091.35 2726.24,-3005 2728.01,-2999.34 2731.27,-2996.74 2733.78,-2993.67"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2737.17,-2994.59 2737.24,-2984 2730.58,-2992.24 2737.17,-2994.59"/>
<text text-anchor="middle" x="2743.74" y="-3093.3" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_68&#45;&gt;fn_220_basic_block_5 -->
<g id="edge104" class="edge">
<title>fn_220_basic_block_68:s&#45;&gt;fn_220_basic_block_5:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2857.24,-4360C2857.24,-3718.8 2981.89,-3561.35 2983.23,-2925.35"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2986.73,-2925 2983.24,-2915 2979.73,-2925 2986.73,-2925"/>
<text text-anchor="middle" x="2967.24" y="-3485.8" font-family="Times,serif" font-size="14.00">[0%]</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="3144.24,-3588.5 3144.24,-3771.5 3444.24,-3771.5 3444.24,-3588.5 3144.24,-3588.5"/>
<text text-anchor="start" x="3152.24" y="-3756.3" font-family="Times,serif" font-size="14.00">COUNT:2050876&lt;bb 70&gt;:</text>
<polyline fill="none" stroke="black" points="3144.24,-3748.5 3444.24,-3748.5 "/>
<text text-anchor="start" x="3152.24" y="-3733.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="3144.24,-3725.5 3444.24,-3725.5 "/>
<text text-anchor="start" x="3152.24" y="-3710.3" font-family="Times,serif" font-size="14.00"># DEBUG BEGIN_STMT</text>
<polyline fill="none" stroke="black" points="3144.24,-3702.5 3444.24,-3702.5 "/>
<text text-anchor="start" x="3152.24" y="-3687.3" font-family="Times,serif" font-size="14.00">_249 = self_35(D)&#45;&gt;output_buffer;</text>
<polyline fill="none" stroke="black" points="3144.24,-3679.5 3444.24,-3679.5 "/>
<text text-anchor="start" x="3152.24" y="-3664.3" font-family="Times,serif" font-size="14.00">_250 = MEM[(struct PyVarObject *)_249].ob_size;</text>
<polyline fill="none" stroke="black" points="3144.24,-3656.5 3444.24,-3656.5 "/>
<text text-anchor="start" x="3152.24" y="-3641.3" font-family="Times,serif" font-size="14.00">if (_250 != 0)</text>
<text text-anchor="start" x="3152.24" y="-3626.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 71&gt;; [50.00%]</text>
<text text-anchor="start" x="3152.24" y="-3611.3" font-family="Times,serif" font-size="14.00">else</text>
<text text-anchor="start" x="3152.24" y="-3596.3" font-family="Times,serif" font-size="14.00"> &#160;goto &lt;bb 72&gt;; [50.00%]</text>
</g>
<!-- fn_220_basic_block_68&#45;&gt;fn_220_basic_block_70 -->
<g id="edge105" class="edge">
<title>fn_220_basic_block_68:s&#45;&gt;fn_220_basic_block_70:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2857.24,-4360C2857.24,-4332.58 2894.26,-4358.39 2916.24,-4342 3157.2,-4162.34 3291.21,-4077.88 3294.19,-3782.16"/>
<polygon fill="black" stroke="black" stroke-width="2" points="3297.69,-3782.02 3294.24,-3772 3290.69,-3781.98 3297.69,-3782.02"/>
<text text-anchor="middle" x="3310.74" y="-4062.3" font-family="Times,serif" font-size="14.00">[99%]</text>
</g>
<!-- fn_220_basic_block_69&#45;&gt;fn_220_basic_block_73 -->
<g id="edge106" class="edge">
<title>fn_220_basic_block_69:s&#45;&gt;fn_220_basic_block_73:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M2737.24,-2806C2737.24,-2771.13 2729.03,-2760.43 2727.49,-2730.09"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2730.99,-2729.91 2727.24,-2720 2723.99,-2730.08 2730.99,-2729.91"/>
<text text-anchor="middle" x="2756.24" y="-2757.8" font-family="Times,serif" font-size="14.00">[100%]</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="3100.24,-3276 3100.24,-3322 3488.24,-3322 3488.24,-3276 3100.24,-3276"/>
<text text-anchor="start" x="3108.24" y="-3306.8" font-family="Times,serif" font-size="14.00">COUNT:1025438&lt;bb 71&gt;:</text>
<polyline fill="none" stroke="black" points="3100.24,-3299 3488.24,-3299 "/>
<text text-anchor="start" x="3108.24" y="-3283.8" font-family="Times,serif" font-size="14.00">iftmp.11_251 = MEM[(struct PyByteArrayObject *)_249].ob_start;</text>
</g>
<!-- fn_220_basic_block_70&#45;&gt;fn_220_basic_block_71 -->
<g id="edge107" 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="M3294.24,-3588C3294.24,-3473.67 3294.24,-3442.58 3294.24,-3333.13"/>
<polygon fill="black" stroke="black" stroke-width="2" points="3297.74,-3333 3294.24,-3323 3290.74,-3333 3297.74,-3333"/>
<text text-anchor="middle" x="3311.74" y="-3485.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="3067.24,-2849 3067.24,-2941 3521.24,-2941 3521.24,-2849 3067.24,-2849"/>
<text text-anchor="start" x="3075.24" y="-2925.8" font-family="Times,serif" font-size="14.00">COUNT:2050876&lt;bb 72&gt;:</text>
<polyline fill="none" stroke="black" points="3067.24,-2918 3521.24,-2918 "/>
<text text-anchor="start" x="3075.24" y="-2902.8" font-family="Times,serif" font-size="14.00"># iftmp.11_252 = PHI &lt;&amp;_PyByteArray_empty_string(70), iftmp.11_251(71)&gt;</text>
<polyline fill="none" stroke="black" points="3067.24,-2895 3521.24,-2895 "/>
<text text-anchor="start" x="3075.24" y="-2879.8" font-family="Times,serif" font-size="14.00">self_35(D)&#45;&gt;output_buffer_raw = iftmp.11_252;</text>
<polyline fill="none" stroke="black" points="3067.24,-2872 3521.24,-2872 "/>
<text text-anchor="start" x="3075.24" y="-2856.8" font-family="Times,serif" font-size="14.00">pretmp_307 = self_35(D)&#45;&gt;output_len;</text>
</g>
<!-- fn_220_basic_block_70&#45;&gt;fn_220_basic_block_72 -->
<g id="edge108" class="edge">
<title>fn_220_basic_block_70:s&#45;&gt;fn_220_basic_block_72:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M3294.24,-3588C3294.24,-3568.91 3317.97,-3581.45 3333.24,-3570 3417.69,-3506.71 3452.22,-3489.82 3489.24,-3391 3517.93,-3314.42 3514.75,-3284.7 3489.24,-3207 3488.92,-3206.03 3332.46,-2994.74 3300.07,-2950.18"/>
<polygon fill="black" stroke="black" stroke-width="2" points="3302.89,-2948.12 3294.24,-2942 3297.19,-2952.18 3302.89,-2948.12"/>
<text text-anchor="middle" x="3526.74" y="-3295.3" font-family="Times,serif" font-size="14.00">[50%]</text>
</g>
<!-- fn_220_basic_block_71&#45;&gt;fn_220_basic_block_72 -->
<g id="edge109" class="edge">
<title>fn_220_basic_block_71:s&#45;&gt;fn_220_basic_block_72:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M3294.24,-3275C3294.24,-3130.47 3294.24,-3091.8 3294.24,-2952.23"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="3297.74,-2952 3294.24,-2942 3290.74,-2952 3297.74,-2952"/>
<text text-anchor="middle" x="3315.24" y="-3093.3" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_72&#45;&gt;fn_220_basic_block_73 -->
<g id="edge110" class="edge">
<title>fn_220_basic_block_72:s&#45;&gt;fn_220_basic_block_73:n</title>
<path fill="none" stroke="blue" stroke-width="2" d="M3294.24,-2848C3294.24,-2833.05 2808.28,-2749.91 2736.15,-2724.84"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2737.7,-2721.7 2727.24,-2720 2734.35,-2727.85 2737.7,-2721.7"/>
<text text-anchor="middle" x="3031.24" y="-2757.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="edge111" 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="M2727.24,-2397C2727.24,-2305.85 2727.24,-2280.52 2727.24,-2194.25"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="2730.74,-2194 2727.24,-2184 2723.74,-2194 2730.74,-2194"/>
<text text-anchor="middle" x="2748.24" y="-2286.8" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
<!-- fn_220_basic_block_74&#45;&gt;fn_220_basic_block_1 -->
<g id="edge112" class="edge">
<title>fn_220_basic_block_74:s&#45;&gt;fn_220_basic_block_1:n</title>
<path fill="none" stroke="black" stroke-width="2" d="M2727.24,-1263C2727.24,-977.5 2727.24,-903.61 2727.24,-623.07"/>
<polygon fill="black" stroke="black" stroke-width="2" points="2730.74,-623 2727.24,-613 2723.74,-623 2730.74,-623"/>
<text text-anchor="middle" x="2748.24" y="-934.3" font-family="Times,serif" font-size="14.00">[100%]</text>
</g>
</g>
</svg>
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
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@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