diff --git a/docs/guide/10_dist_calc_restricted.myst b/docs/guide/10_dist_calc_restricted.myst index 62462ee..743b08e 100644 --- a/docs/guide/10_dist_calc_restricted.myst +++ b/docs/guide/10_dist_calc_restricted.myst @@ -249,7 +249,7 @@ def colored_predecessors(preds, graph=G, node_order=node_order, node_order_indices=node_order_indices): return pd.DataFrame(preds, index=node_order_indices, columns=node_order_indices).style. \ - applymap(lambda x: f"color: {graph.nodes[node_order[x]]['partition']}" + map(lambda x: f"color: {graph.nodes[node_order[x]]['partition']}" if x != -9999 else "") @@ -333,8 +333,11 @@ differences are the following: ```{code-cell} ipython3 :tags: [hide-input] +G_sparse = nx.to_scipy_sparse_array(G, nodelist=list(G.nodes)) +G_sparse.indices, G_sparse.indptr = G_sparse.indices.astype( + np.int32), G_sparse.indptr.astype(np.int32) display(colored_distances( - dist_le - dijkstra(nx.to_scipy_sparse_array(G, nodelist=list(G.nodes)), + dist_le - dijkstra(G_sparse, directed=True, return_predecessors=False), 1, 'Reds') @@ -490,8 +493,11 @@ To finish, the difference between the unrestricted and restricted graph distance ```{code-cell} ipython3 :tags: [hide-input] +G_2_sparse = nx.to_scipy_sparse_array(G_2, nodelist=node_order_2) +G_2_sparse.indices, G_2_sparse.indptr = G_2_sparse.indices.astype( + np.int32), G_2_sparse.indptr.astype(np.int32) display(colored_distances( - dist - dijkstra(nx.to_scipy_sparse_array(G_2, nodelist=node_order_2), + dist - dijkstra(G_2_sparse, directed=True, return_predecessors=False), 1, 'Reds', node_order=node_order_2). \ diff --git a/docs/guide/20_betweenness_centrality.myst b/docs/guide/20_betweenness_centrality.myst index 0305abe..6ccbd8f 100644 --- a/docs/guide/20_betweenness_centrality.myst +++ b/docs/guide/20_betweenness_centrality.myst @@ -147,9 +147,11 @@ restricted to the sparsified nodes. ```{code-cell} ipython3 node_order = list(range(len(G.nodes))) -dist, pred = dijkstra( - nx.to_scipy_sparse_array(G, nodelist=node_order, weight="weight"), - directed=True, indices=node_order, return_predecessors=True) +G_sparse = nx.to_scipy_sparse_array(G, nodelist=node_order, weight="weight") +G_sparse.indices, G_sparse.indptr = G_sparse.indices.astype( + np.int32), G_sparse.indptr.astype(np.int32) +dist, pred = dijkstra(G_sparse, directed=True, indices=node_order, + return_predecessors=True) dist_restr, pred_restr = shortest_paths_restricted(G, partitions, weight="weight", node_order=node_order) ``` @@ -351,8 +353,8 @@ display(pd.DataFrame({ ).sort_values(by=[("", "C_B")], ascending=False) .style.background_gradient(cmap="Blues", axis=None) .format(precision=3) - .applymap_index(lambda x: f"color: {G.nodes[x]['partition']}" if x in G - .nodes else ""). \ + .map_index(lambda x: f"color: {G.nodes[x]['partition']}" if x in G + .nodes else ""). \ set_table_attributes('style="font-size: 12px"'), ) ``` @@ -375,8 +377,8 @@ display(pd.DataFrame({ ).sort_values(by=[("Lin scales", "C_B_e_restr")], ascending=False) .style.background_gradient(cmap="Blues", axis=None) .format(precision=3) - .applymap_index(lambda x: f"color: {G.nodes[x]['partition']}" if x in G - .nodes else ""). \ + .map_index(lambda x: f"color: {G.nodes[x]['partition']}" if x in G + .nodes else ""). \ set_table_attributes('style="font-size: 12px"'), ) ``` @@ -589,7 +591,6 @@ to see a difference. ```{code-cell} ipython3 :tags: [hide-input, hide-output] from superblockify import ResidentialPartitioner -from superblockify.metrics.distances import calculate_path_distance_matrix from superblockify.config import Config CITY_NAME, SEARCH_STR = Config.PLACES_SMALL[1] @@ -601,19 +602,19 @@ part.run(calculate_metrics=False) # Intended use usually only with `run` method # or `calculate_metrics_before` partitioning node_list = part.get_sorted_node_list() -dist, pred = calculate_path_distance_matrix( - part.graph, - weight="travel_time", - node_order=node_list, -) ``` ```{code-cell} ipython3 from superblockify.metrics.measures import betweenness_centrality -%timeit betweenness_centrality(part.graph, node_list, dist, pred, weight="travel_time") +from superblockify.metrics.distances import calculate_path_distance_matrix +%timeit betweenness_centrality(part.graph, node_list, *calculate_path_distance_matrix(part.graph, weight = "travel_time", node_order = node_list), weight="travel_time") %timeit nx.betweenness_centrality(part.graph, weight="travel_time") ``` +Now, the speedup is obvious. The simplified version is about 10 times faster than the +original networkx implementation, already for a street graph that can be considered +small. + The code scales with the number of nodes and number of edges. As in real world cities the edges do not scale with the number of nodes, the runtime is well bearable for simplified graphs of metropolitan cities. diff --git a/scripts/TestingNotebooks/20230409-dist_calc_restricted_code.ipynb b/scripts/TestingNotebooks/20230409-dist_calc_restricted_code.ipynb index 8da7b93..bdd4c04 100644 --- a/scripts/TestingNotebooks/20230409-dist_calc_restricted_code.ipynb +++ b/scripts/TestingNotebooks/20230409-dist_calc_restricted_code.ipynb @@ -9,15 +9,17 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 6, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:05:59.939434785Z", - "start_time": "2023-06-29T16:05:58.574290213Z" + "end_time": "2024-04-18T09:24:24.526765Z", + "start_time": "2024-04-18T09:24:24.522726Z" } }, "outputs": [], "source": [ + "from itertools import combinations\n", + "\n", "import networkx as nx\n", "import numpy as np\n", "import pandas as pd\n", @@ -28,18 +30,18 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 7, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:00.047905861Z", - "start_time": "2023-06-29T16:05:59.926122655Z" + "end_time": "2024-04-18T09:24:32.030463Z", + "start_time": "2024-04-18T09:24:31.753667Z" } }, "outputs": [ { "data": { "text/plain": "
", - "image/png": "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uJi83ay6evUq06ZNY+HCheh0Ovr160dAQACvvfaaapnMhcFgwMnJiczMTBITE7G2tlY7khAFnswBFLnGwsKCFStWUKNGDTp16kRUVJTakYCHq3+dnZ1p1qyZ2lEKhIyMDGbMmEG9evWeKv40Gg0ODg4cOXKEyZMn49eiaq7uAxj6UwCDBw9+6j1FURg4cCDBwcGqbVNUsWJFpk+fTlRUFF999RUbN26kZs2adOrUiYiIiEK9sbRWq2XatGmkpaUxZMgQteMIUShID6DIdbdv36Zx48Y4ODiwZ88eihUrpmoeLy8v6taty+LFi1XNkZ8lJSXx888/s2LFCi5evIiiKGi1WqpXr861a9dITU3FwsICR0dHdu3ahZeXl/He/gsPsu9KnEkLQQuthiaVXFji1wiDwcCIESMICgoCHhah3bp1IzY2lj179qDRaGjevDndu3enW7dueHh4mCxHdmRkZLBixQqmTJnCqVOnqFu3LoGBgbz99ttYWVmpkkltFStWJDIykqioKMqUKaN2HCEKNOkBFLmuVKlSbNy4kaioKN5+++0n5obltStXrnD69GlZ/ZsD0dHRjB49Gg8PD4oVK8bXX3/N1atXadiwIfPnzyc9PZ0zZ87Qr18/4OHekHv37n2i+AP43tcLSxMfB2ep1fC978N2tFots2fPZvTo0cDD3r9ffvmFv/76i1u3bhEUFISdnR2BgYGUL1+ehg0b8v3333P27FmTZnoZa2trBg4cyIkTJ9i8eTMlSpSgb9++VKpUiSlTppCYmJineczB8uXLMRgMvP3222pHEaLAkx5AkWciIiJo3749/fv3Z8GCBaqsvp06dSrjx48nNjaWokWL5nn7+c2ZM2f46aef+PPPP7l79y4ARYoUoUmTJowaNYouXbqg1T75c+SxY8cICAhg3rx5eHp6PvO5Kw9H8mnIKZPlnNjdi14Nn+zJUxSFb775hqtXr/Lbb789dU9iYiIbN24kJCSEP//8k5SUFKpXr46vry++vr40aNAgz79GT548yc8//8zy5cuxtbVlyJAhxqK7sGjevDl79uxhz549NG3aVO04QhRYUgCKPLVkyRIGDBjAd999x2effZbn7bdq1Qp7e3s2bNiQ523nF3v27GHy5MlERESQlJQEQLFixfD29mbs2LEmmzs5M+Iik7dceOXnfNyuGiO8q7zSMx48eMC2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" + "image/png": "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uJi83ay6evUq06ZNY+HCheh0Ovr160dAQACvvfaaapnMhcFgwMnJiczMTBITE7G2tlY7khAFnswBFLnGwsKCFStWUKNGDTp16kRUVJTakYCHq3+dnZ1p1qyZ2lEKhIyMDGbMmEG9evWeKv40Gg0ODg4cOXKEyZMn49eiaq7uAxj6UwCDBw9+6j1FURg4cCDBwcGqbVNUsWJFpk+fTlRUFF999RUbN26kZs2adOrUiYiIiEK9sbRWq2XatGmkpaUxZMgQteMIUShID6DIdbdv36Zx48Y4ODiwZ88eihUrpmoeLy8v6taty+LFi1XNkZ8lJSXx888/s2LFCi5evIiiKGi1WqpXr861a9dITU3FwsICR0dHdu3ahZeXl/He/gsPsu9KnEkLQQuthiaVXFji1wiDwcCIESMICgoCHhah3bp1IzY2lj179qDRaGjevDndu3enW7dueHh4mCxHdmRkZLBixQqmTJnCqVOnqFu3LoGBgbz99ttYWVmpkkltFStWJDIykqioKMqUKaN2HCEKNOkBFLmuVKlSbNy4kaioKN5+++0n5obltStXrnD69GlZ/ZsD0dHRjB49Gg8PD4oVK8bXX3/N1atXadiwIfPnzyc9PZ0zZ87Qr18/4OHekHv37n2i+AP43tcLSxMfB2ep1fC978N2tFots2fPZvTo0cDD3r9ffvmFv/76i1u3bhEUFISdnR2BgYGUL1+ehg0b8v3333P27FmTZnoZa2trBg4cyIkTJ9i8eTMlSpSgb9++VKpUiSlTppCYmJineczB8uXLMRgMvP3222pHEaLAkx5AkWciIiJo3749/fv3Z8GCBaqsvp06dSrjx48nNjaWokWL5nn7+c2ZM2f46aef+PPPP7l79y4ARYoUoUmTJowaNYouXbqg1T75c+SxY8cICAhg3rx5eHp6PvO5Kw9H8mnIKZPlnNjdi14Nn+zJUxSFb775hqtXr/Lbb789dU9iYiIbN24kJCSEP//8k5SUFKpXr46vry++vr40aNAgz79GT548yc8//8zy5cuxtbVlyJAhxqK7sGjevDl79uxhz549NG3aVO04QhRYUgCKPLVkyRIGDBjAd999x2effZbn7bdq1Qp7e3s2bNiQ523nF3v27GHy5MlERESQlJQEQLFixfD29mbs2LEmmzs5M+Iik7dceOXnfNyuGiO8q7zSMx48eMC2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" }, "metadata": {}, "output_type": "display_data" @@ -81,18 +83,18 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 8, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:00.266271568Z", - "start_time": "2023-06-29T16:05:59.933247031Z" + "end_time": "2024-04-18T09:24:32.502019Z", + "start_time": "2024-04-18T09:24:32.229584Z" } }, "outputs": [ { "data": { "text/plain": "
", - "image/png": "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" + "image/png": "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" }, "metadata": {}, "output_type": "display_data" @@ -131,18 +133,18 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 9, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:00.573797894Z", - "start_time": "2023-06-29T16:06:00.232530584Z" + "end_time": "2024-04-18T09:24:33.688662Z", + "start_time": "2024-04-18T09:24:33.396583Z" } }, "outputs": [ { "data": { "text/plain": "
", - "image/png": "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" + "image/png": "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" }, "metadata": {}, "output_type": "display_data" @@ -199,15 +201,16 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 10, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:01.399245726Z", - "start_time": "2023-06-29T16:06:01.383035607Z" + "end_time": "2024-04-18T09:24:34.874833Z", + "start_time": "2024-04-18T09:24:34.861433Z" } }, "outputs": [], "source": [ + "\n", "# sorted node order (names)\n", "node_order = list(sorted(G.nodes))\n", "# node_order indices\n", @@ -226,49 +229,26 @@ "G_leaving = nx.to_scipy_sparse_array(G_leaving, nodelist=node_order, format=\"coo\")\n", "data, row, col = G_leaving.data, G_leaving.row, G_leaving.col\n", "\n", - "# # Remove edges between different partitions\n", - "# # (col, row in separate n_partition_indices_separate)\n", - "# for n_ind_1, n_ind_2 in combinations(n_partition_indices_separate, 2):\n", - "# mask = np.logical_and(np.isin(row, n_ind_1), np.isin(col, n_ind_2))\n", - "# mask = np.logical_or(mask,\n", - "# np.logical_and(np.isin(row, n_ind_2), np.isin(col, n_ind_1)))\n", - "# data, row, col = data[~mask], row[~mask], col[~mask]\n", - "# G_entering = (data, (row, col))\n", - "#\n", - "# # Remove edges from partition to sparse\n", - "# mask = np.logical_and(np.isin(row, n_partition_indices),\n", - "# np.isin(col, n_sparse_indices))\n", - "# data, row, col = data[~mask], row[~mask], col[~mask]\n", - "# G_leaving = csr_matrix((data, (row, col)), shape=(len(node_order), len(node_order)))\n", - "# # Remove edges from sparse to partition\n", - "# data, (row, col) = G_entering\n", - "# mask = np.logical_and(np.isin(row, n_sparse_indices),\n", - "# np.isin(col, n_partition_indices))\n", - "# data, row, col = data[~mask], row[~mask], col[~mask]\n", - "# G_entering = csr_matrix((data, (row, col)), shape=(len(node_order), len(node_order)))\n", - "\n", - "# as iterating over combinations scales badly, we want to find a different approach\n", - "# that is simpler: the disjoint approach\n", - "\n", - "mask_to = np.logical_and(np.isin(row, n_sparse_indices),\n", - " np.isin(col, n_partition_indices))\n", - "mask_from = np.logical_and(np.isin(row, n_partition_indices),\n", - " np.isin(col, n_sparse_indices))\n", - "# mask the edges inside each partition and inside the sparse graph\n", - "mask_intra = np.logical_and(np.isin(row, n_sparse_indices),\n", - " np.isin(col, n_sparse_indices))\n", - "for n_ind in n_partition_indices_separate:\n", - " mask_intra = np.logical_or(mask_intra,\n", - " np.logical_and(np.isin(row, n_ind),\n", - " np.isin(col, n_ind)))\n", - "\n", - "mask_to = np.logical_or(mask_to, mask_intra)\n", - "mask_from = np.logical_or(mask_from, mask_intra)\n", - "G_leaving = csr_matrix((data[mask_to], (row[mask_to], col[mask_to])),\n", - " shape=(len(node_order), len(node_order)))\n", - "G_entering = csr_matrix((data[mask_from], (row[mask_from], col[mask_from])),\n", - " shape=(len(node_order), len(node_order)))\n", - "\n" + "# Remove edges between different partitions\n", + "# (col, row in separate n_partition_indices_separate)\n", + "for n_ind_1, n_ind_2 in combinations(n_partition_indices_separate, 2):\n", + " mask = np.logical_and(np.isin(row, n_ind_1), np.isin(col, n_ind_2))\n", + " mask = np.logical_or(mask,\n", + " np.logical_and(np.isin(row, n_ind_2), np.isin(col, n_ind_1)))\n", + " data, row, col = data[~mask], row[~mask], col[~mask]\n", + "G_entering = (data, (row, col))\n", + "\n", + "# Remove edges from partition to sparse\n", + "mask = np.logical_and(np.isin(row, n_partition_indices),\n", + " np.isin(col, n_sparse_indices))\n", + "data, row, col = data[~mask], row[~mask], col[~mask]\n", + "G_leaving = csr_matrix((data, (row, col)), shape=(len(node_order), len(node_order)))\n", + "# Remove edges from sparse to partition\n", + "data, (row, col) = G_entering\n", + "mask = np.logical_and(np.isin(row, n_sparse_indices),\n", + " np.isin(col, n_partition_indices))\n", + "data, row, col = data[~mask], row[~mask], col[~mask]\n", + "G_entering = csr_matrix((data, (row, col)), shape=(len(node_order), len(node_order)))" ] }, { @@ -280,18 +260,18 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 11, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:03.174635240Z", - "start_time": "2023-06-29T16:06:02.951766016Z" + "end_time": "2024-04-18T09:24:43.031343Z", + "start_time": "2024-04-18T09:24:42.820721Z" } }, "outputs": [ { "data": { "text/plain": "
", - "image/png": "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CqMKgPJOXoAoVuha64E9INazQ1ZFe/8AQJIg79CmitURERERGQajCoCWvl4lb+RcgrqvDoLmYS5y/nuw4g8QRVh4t6xidURERESGwag+BadOzcDtdi8BBSrtN24mwubF3mi4+lPtt01ERERUg4yqB1B0tIfN0D4VHgauFJUadce9pP12iYiIiGqYUQVAAKg3400I5loOgKIMVkHdYOnfTrvtEhEREemB0QVA8yaucPx8qvYalAmQWdVB/aUfQKjkNjNEREREhsjoAiAA1B03FLajB1a/IZkAiCKcf5oPs4aO1W+PiIiIyAAYZQAUBAH1l38I29dffHKg8o2IIgS5HC7blqBO907aLZCIiIhIj4xqFXBJcnYdRvJ7i6HJzq3YFjGiDFBrYNm9Exp8+xHM3Zx1XyQRERFRDTL6AAg82h4m68ddyNzwB9QP0h71CD4OehCER0O9KjUAwLKbD+z+8wqsB/bgnD8iIiIySiYRAJ+QVCrkn4uGIuoalJevQ5OTC0GUQXR2gryjByx9vWDexFXfZRIRERHplEkFQCIiIiIy0kUgRERERFQ6BkAiIiIiE8MASERERGRiGACJiIiITAwDIBEREZGJYQAkIiIiMjEMgEREREQmhgGQiIiIyMQwABIRERGZGAZAIiIiIhPDAEhERERkYhgAiYiIiEwMAyARERGRiWEAJCIiIjIxDIBEREREJoYBkIiIiMjE/D+P+Z99z/MqVgAAAABJRU5ErkJggg==" + "image/png": "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CqMKgPJOXoAoVuha64E9INazQ1ZFe/8AQJIg79CmitURERERGQajCoCWvl4lb+RcgrqvDoLmYS5y/nuw4g8QRVh4t6xidURERESGwag+BadOzcDtdi8BBSrtN24mwubF3mi4+lPtt01ERERUg4yqB1B0tIfN0D4VHgauFJUadce9pP12iYiIiGqYUQVAAKg3400I5loOgKIMVkHdYOnfTrvtEhEREemB0QVA8yaucPx8qvYalAmQWdVB/aUfQKjkNjNEREREhsjoAiAA1B03FLajB1a/IZkAiCKcf5oPs4aO1W+PiIiIyAAYZQAUBAH1l38I29dffHKg8o2IIgS5HC7blqBO907aLZCIiIhIj4xqFXBJcnYdRvJ7i6HJzq3YFjGiDFBrYNm9Exp8+xHM3Zx1XyQRERFRDTL6AAg82h4m68ddyNzwB9QP0h71CD4OehCER0O9KjUAwLKbD+z+8wqsB/bgnD8iIiIySiYRAJ+QVCrkn4uGIuoalJevQ5OTC0GUQXR2gryjByx9vWDexFXfZRIRERHplEkFQCIiIiIy0kUgRERERFQ6BkAiIiIiE8MASERERGRiGACJiIiITAwDIBEREZGJYQAkIiIiMjEMgEREREQmhgGQiIiIyMQwABIRERGZGAZAIiIiIhPDAEhERERkYhgAiYiIiEwMAyARERGRiWEAJCIiIjIxDIBEREREJoYBkIiIiMjE/D+P+Z99z/MqVgAAAABJRU5ErkJggg==" }, "metadata": {}, "output_type": "display_data" @@ -312,18 +292,18 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 12, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:03.639928163Z", - "start_time": "2023-06-29T16:06:03.402995832Z" + "end_time": "2024-04-18T09:24:49.204505Z", + "start_time": "2024-04-18T09:24:48.982572Z" } }, "outputs": [ { "data": { "text/plain": "
", - "image/png": "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" + "image/png": "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" }, "metadata": {}, "output_type": "display_data" @@ -351,11 +331,11 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 13, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:04.401010685Z", - "start_time": "2023-06-29T16:06:04.316337025Z" + "end_time": "2024-04-18T09:24:52.849400Z", + "start_time": "2024-04-18T09:24:52.776276Z" } }, "outputs": [ @@ -398,11 +378,11 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 18, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:06.071099106Z", - "start_time": "2023-06-29T16:06:05.966073321Z" + "end_time": "2024-04-18T09:27:48.994303Z", + "start_time": "2024-04-18T09:27:48.988983Z" } }, "outputs": [], @@ -411,7 +391,7 @@ " node_order_indices=node_order_indices):\n", " return pd.DataFrame(preds, index=node_order_indices,\n", " columns=node_order_indices).style. \\\n", - " applymap(lambda x: f\"color: {graph.nodes[node_order[x]]['partition']}\"\n", + " map(lambda x: f\"color: {graph.nodes[node_order[x]]['partition']}\"\n", " if x != -9999 else \"\")\n", "\n", "\n", @@ -424,26 +404,26 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 19, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:06.201778493Z", - "start_time": "2023-06-29T16:06:05.973091243Z" + "end_time": "2024-04-18T09:27:49.909734Z", + "start_time": "2024-04-18T09:27:49.878406Z" } }, "outputs": [ { "data": { - "text/plain": "", - "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 1234567
10.01.02.01.02.04.05.0
21.00.01.01.01.03.04.0
32.01.00.02.02.02.03.0
41.02.03.00.0infinfinf
52.01.02.04.00.0infinf
61.02.02.0infinf0.01.0
72.03.03.0infinf1.00.0
\n" + "text/plain": "", + "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 1234567
10.01.02.01.02.04.05.0
21.00.01.01.01.03.04.0
32.01.00.02.02.02.03.0
41.02.03.00.0infinfinf
52.01.02.04.00.0infinf
61.02.02.0infinf0.01.0
72.03.03.0infinf1.00.0
\n" }, "metadata": {}, "output_type": "display_data" }, { "data": { - "text/plain": "", - "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 0123456
0-9999010125
11-999911125
212-99991125
3301-9999-9999-9999-9999
41414-9999-9999-9999
5505-9999-9999-99995
6505-9999-99996-9999
\n" + "text/plain": "", + "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 0123456
0-9999010125
11-999911125
212-99991125
3301-9999-9999-9999-9999
41414-9999-9999-9999
5505-9999-9999-99995
6505-9999-99996-9999
\n" }, "metadata": {}, "output_type": "display_data" @@ -483,26 +463,26 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 21, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:07.679429714Z", - "start_time": "2023-06-29T16:06:07.639677549Z" + "end_time": "2024-04-18T09:30:13.363397Z", + "start_time": "2024-04-18T09:30:13.328890Z" } }, "outputs": [ { "data": { - "text/plain": "", - "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 1234567
10121245
21011134
32102223
41230356
52122045
61222301
72333410
\n" + "text/plain": "", + "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 1234567
10121245
21011134
32102223
41230356
52122045
61222301
72333410
\n" }, "metadata": {}, "output_type": "display_data" }, { "data": { - "text/plain": "", - "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 0123456
0-9999010125
11-999911125
212-99991125
3301-9999125
41411-999925
550501-99995
6505016-9999
\n" + "text/plain": "", + "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 0123456
0-9999010125
11-999911125
212-99991125
3301-9999125
41411-999925
550501-99995
6505016-9999
\n" }, "metadata": {}, "output_type": "display_data" @@ -519,148 +499,24 @@ "]\n", "\n", "# Loop, for didactic purposes\n", - "# for part_idx, part_intersect in zip(n_partition_indices_separate,\n", - "# n_partition_intersect_indices):\n", - "# for i in part_idx:\n", - "# for j in n_partition_indices:\n", - "# if i == j:\n", - "# continue\n", - "# # distances from i to j, over all possible k in part_intersect\n", - "# dists = dist_le[i, part_intersect] + dist_le[part_intersect, j]\n", - "# # index of minimum distance for predecessor\n", - "# min_idx = np.argmin(dists)\n", - "# if dists[min_idx] >= dist_le[i, j]:\n", - "# continue\n", - "# dist_le[i, j] = dists[min_idx]\n", - "# pred_le[i, j] = pred_le[part_intersect[min_idx], j]\n", - "\n", - "\n", - "\n", - "dist_step = np.full_like(dist_le, np.inf)\n", - "pred_step = np.full_like(pred_le, -9999)\n", - "\n", - "# Vectorized - numpy broadcasting\n", "for part_idx, part_intersect in zip(n_partition_indices_separate,\n", " n_partition_intersect_indices):\n", - " # Add distances from i in part_idx to all j in n_partition_indices\n", - " # to the same j to all k in n_partition_indices\n", - " # There is a different amount of i-j than j-k, calculate all combinations\n", - " # and then mask out the invalid ones\n", - " # add to a new dimension\n", - " dists = dist_le[np.ix_(part_idx, part_intersect)][:, :, np.newaxis] + \\\n", - " dist_le[np.ix_(part_intersect, n_partition_indices)][np.newaxis, :, :]\n", - " # get index of minimum distance for predecessor, use new axis\n", - " min_idx = np.argmin(dists, axis=1)\n", - " # # too heavy solution, try only one vectorized side\n", - " # for i in part_idx:\n", - " # dists = (\n", - " # dist_le[i, part_intersect][:, np.newaxis] +\n", - " # dist_le[np.ix_(part_intersect, n_partition_indices)]\n", - " # )\n", - " # min_idx = np.argmin(dists, axis=0)\n", - " #\n", - " # dist_step[i, n_partition_indices] = dists[min_idx, np.arange(dists.shape[-1])]\n", - " #\n", - " # for m_p, j in enumerate(n_partition_indices):\n", - " # if i == j:\n", - " # continue\n", - " # pred_step[i, j] = pred_le[part_intersect[min_idx[m_p]], j]\n", - "\n", - " # for i, idx1 in enumerate(part_idx):\n", - " # # get matrix of pairwise distance sums -\n", - " # print(dist_le[idx1, part_intersect])\n", - " # print(dist_le[np.ix_(part_intersect, n_partition_indices)])\n", - " # dist = dist_le[idx1, part_intersect][:, np.newaxis] + \\\n", - " # dist_le[np.ix_(part_intersect, n_partition_indices)][np.newaxis, :]\n", - " #\n", - " # min_idx = np.argmin(dist, axis=None)\n", - " # # write directly into dist_le and pred_le, if the minimum is smaller than the\n", - " # # current\n", - " # min_mask = dist[np.arange(dist.shape[0]), min_idx] < dist_le[idx1, n_partition_indices]\n", - " # print(n_partition_indices, min_mask)\n", - " # dist_le[idx1, n_partition_indices[min_mask]] = dist[np.arange(dist.shape[0]), min_idx][min_mask]\n", - " # pred_le[idx1, n_partition_indices[min_mask]] = pred_le[part_intersect[min_idx][min_mask], n_partition_indices[min_mask]]\n", - "\n", - "\n", - " # Instead of doing this in one big tensor (3d matrix get's too big quickly)\n", - " # we look for the minimum of every i-j combination separately\n", - "\n", - "\n", - " # write minima into dist_step\n", - " dist_step[np.ix_(part_idx, n_partition_indices)] = dists[\n", - " np.arange(dists.shape[0])[:, np.newaxis], min_idx, np.arange(\n", - " dists.shape[-1])]\n", - "\n", - " min_mask = dists[np.arange(dists.shape[0])[:, np.newaxis], min_idx, np.arange(\n", - " dists.shape[-1])] < dist_le[np.ix_(part_idx, n_partition_indices)]\n", - " # print(min_mask)\n", - "\n", - " # write predecessors into pred_step\n", - " # predecessor i-k is the same as predecessor k-j\n", - " # into pred_step, write the predecessor of k-j\n", - " for n_p, i in enumerate(part_idx):\n", - " for m_p, j in enumerate(n_partition_indices):\n", + " for i in part_idx:\n", + " for j in n_partition_indices:\n", " if i == j:\n", " continue\n", - " pred_step[i, j] = pred_le[part_intersect[min_idx[n_p, m_p]], j]\n", - " # the same as vectorized\n", - " # overwrite part_intersect with the index of the minimum distance for every part_idx\n", - " # print(min_idx, part_intersect)\n", - " # part_intersect = np.take(part_intersect, min_idx, axis=0)\n", - " # print(part_intersect)\n", - " #\n", - " # print(pred_step[np.ix_(part_idx, n_partition_indices)])\n", - " # # print(pred_le[part_intersect])\n", - " # pred_intersect = np.take(pred_le, part_intersect, axis=0)\n", - " # print(pred_intersect)\n", - " # pred_step[np.ix_(part_idx, n_partition_indices)] = \\\n", - " # pred_le[part_intersect]\n", - "\n", - "mask = dist_step < dist_le\n", - "dist_le = np.where(\n", - " mask,\n", - " dist_step,\n", - " dist_le\n", - ")\n", - "pred_le = np.where(\n", - " mask,\n", - " pred_step,\n", - " pred_le\n", - ")\n", + " # distances from i to j, over all possible k in part_intersect\n", + " dists = dist_le[i, part_intersect] + dist_le[part_intersect, j]\n", + " # index of minimum distance for predecessor\n", + " min_idx = np.argmin(dists)\n", + " if dists[min_idx] >= dist_le[i, j]:\n", + " continue\n", + " dist_le[i, j] = dists[min_idx]\n", + " pred_le[i, j] = pred_le[part_intersect[min_idx], j]\n", + "# A vectorized version of the above is much quicker, see implementation\n", "\n", - "display(pd.DataFrame(dist_le, index=node_order, columns=node_order).style. \\\n", - " background_gradient(cmap='Blues', vmin=dist_le.min(axis=None),\n", - " vmax=np.ma.masked_invalid(dist_le).max()). \\\n", - " format(precision=0),\n", - " # pd.DataFrame(dist_step, index=node_order, columns=node_order).style. \\\n", - " # background_gradient(cmap='Blues', vmin=dist_step.min(axis=None),\n", - " # vmax=np.ma.masked_invalid(dist_step).max()). \\\n", - " # format(precision=0),\n", - " colored_predecessors(pred_le))#, colored_predecessors(pred_step))" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "ExecuteTime": { - "end_time": "2023-06-29T16:06:09.488358980Z", - "start_time": "2023-06-29T16:06:09.373320734Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(1, 2, 4)\n", - "(2, 4)\n" - ] - } - ], - "source": [ - "print(min_idx[np.newaxis, :].shape)\n", - "print(min_idx.shape)" + "display(colored_distances(dist_le, 0),\n", + " colored_predecessors(pred_le))" ] }, { @@ -674,26 +530,29 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 46, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:11.244135300Z", - "start_time": "2023-06-29T16:06:11.172652979Z" + "end_time": "2024-04-18T09:41:02.246926Z", + "start_time": "2024-04-18T09:41:02.224809Z" } }, "outputs": [ { "data": { - "text/plain": "", - "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 1234567
10.00.00.00.00.01.51.5
20.00.00.00.00.00.50.5
30.00.00.00.00.00.00.0
40.00.00.00.00.03.53.5
50.00.00.00.00.00.50.5
60.00.00.00.50.00.00.0
70.00.00.00.50.00.00.0
\n" + "text/plain": "", + "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 1234567
10.00.00.00.00.01.51.5
20.00.00.00.00.00.50.5
30.00.00.00.00.00.00.0
40.00.00.00.00.03.53.5
50.00.00.00.00.00.50.5
60.00.00.00.50.00.00.0
70.00.00.00.50.00.00.0
\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ + "G_sparse = nx.to_scipy_sparse_array(G, nodelist=list(G.nodes))\n", + "G_sparse.indices, G_sparse.indptr = G_sparse.indices.astype(\n", + " np.int32), G_sparse.indptr.astype(np.int32)\n", "display(colored_distances(\n", - " dist_le - dijkstra(nx.to_scipy_sparse_array(G, nodelist=list(G.nodes)),\n", + " dist_le - dijkstra(G_sparse,\n", " directed=True,\n", " return_predecessors=False),\n", " 1, 'Reds')\n", @@ -717,18 +576,18 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 47, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:17.884763097Z", - "start_time": "2023-06-29T16:06:17.451942309Z" + "end_time": "2024-04-18T09:41:03.801671Z", + "start_time": "2024-04-18T09:41:03.211382Z" } }, "outputs": [ { "data": { "text/plain": "
", - "image/png": "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" + "image/png": "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" }, "metadata": {}, "output_type": "display_data" @@ -810,49 +669,33 @@ "graph $0 \\overset{0.4}{\\rightarrow} 18 \\overset{0.4}{\\rightarrow} 2$, instead of $2$\n", "with restrictions $0 \\overset{1}{\\rightarrow} 1 \\overset{1}{\\rightarrow} 2$.\n", "Getting from $1$ to $6$ would also be far shorter than taking the shortest path on the\n", - "sparsified graph. The calculation using :func:`shortest_paths_restricted(G_2)\n", - "` gives the following\n", + "sparsified graph. The calculation using\n", + "[`shortest_paths_restricted(G_2)`](shortest_paths_restricted) gives the following\n", "results." ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 48, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:30.353573113Z", - "start_time": "2023-06-29T16:06:23.137468215Z" + "end_time": "2024-04-18T09:41:03.874425Z", + "start_time": "2024-04-18T09:41:03.803496Z" } }, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-06-29 18:06:23,740 | DEBUG | session.py:15 | Could not import boto3, continuing with reduced functionality.\n", - "2023-06-29 18:06:23,742 | DEBUG | env.py:649 | GDAL data files are available at built-in paths.\n", - "2023-06-29 18:06:23,743 | DEBUG | env.py:680 | PROJ data found in other locations: path='/home/carlsonb/miniconda3/envs/sb_env/share/proj'.\n", - "2023-06-29 18:06:30,271 | INFO | __init__.py:7 | superblockify version 0.2.2\n", - "2023-06-29 18:06:30,272 | DEBUG | distances.py:504 | Constructing semipermeable graphs:\n", - "2023-06-29 18:06:30,275 | DEBUG | distances.py:539 | Calculating 2 semipermeable distance matrices.\n", - "2023-06-29 18:06:30,276 | DEBUG | distances.py:548 | Finished calculating the first distance matrix in 0:00:00.000166. Starting the second.\n", - "2023-06-29 18:06:30,278 | DEBUG | distances.py:559 | Finished calculating distance matrices in 0:00:00.001933. Combining the results.\n", - "2023-06-29 18:06:30,279 | DEBUG | distances.py:586 | Prepared distance matrices\n", - "2023-06-29 18:06:30,281 | DEBUG | distances.py:688 | Finished filling up paths in 0:00:00.002360. Used 4 tensorized and 0 vectorized steps.\n" - ] - }, { "data": { - "text/plain": "", - "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 012345678910111213141516171819
00.01.02.03.04.55.56.52.02.53.21.02.03.02.01.07.38.39.30.4inf
11.00.01.02.03.54.55.51.01.52.21.02.03.03.02.06.37.38.31.4inf
22.01.00.01.02.53.54.51.01.52.22.03.04.04.03.05.36.37.30.4inf
33.02.01.00.01.52.53.52.02.53.23.04.05.05.04.04.35.36.31.4inf
44.53.52.51.50.01.02.01.51.01.74.55.56.56.55.52.83.84.82.9inf
55.54.53.52.51.00.01.02.21.71.05.56.57.57.56.51.82.83.83.9inf
66.55.54.53.52.01.00.02.21.71.06.57.58.58.57.50.81.82.84.9inf
72.01.01.02.01.52.22.20.00.51.22.03.04.04.03.03.04.05.01.4inf
82.51.51.52.51.01.71.70.50.00.72.53.54.54.53.52.53.54.51.9inf
92.01.02.03.01.71.01.01.20.70.02.03.04.04.03.01.82.83.82.4inf
101.02.03.04.05.56.57.53.03.54.20.01.02.03.02.08.39.310.31.4inf
112.03.04.05.06.57.58.54.04.55.21.00.01.02.03.09.310.311.32.4inf
122.53.54.55.57.08.09.04.55.05.72.01.00.01.02.09.810.811.82.9inf
131.52.53.54.56.07.08.03.54.04.72.52.01.00.01.08.89.810.81.9inf
141.02.03.04.05.56.57.53.03.54.22.03.02.01.00.08.39.310.31.4inf
157.36.35.34.32.81.80.83.02.51.87.38.39.39.38.30.01.02.05.7inf
168.37.36.35.33.82.81.84.03.52.88.39.310.310.39.31.00.01.06.7inf
177.56.55.54.53.02.01.03.22.72.07.58.59.59.58.51.81.00.05.9inf
180.41.40.41.42.93.94.91.41.92.61.42.43.42.41.45.76.77.70.0inf
19infinfinfinfinfinfinfinfinfinfinfinfinfinfinfinfinfinfinf0.0
\n" + "text/plain": "", + "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 012345678910111213141516171819
00.01.02.03.04.55.56.52.02.53.21.02.03.02.01.07.38.39.30.4inf
11.00.01.02.03.54.55.51.01.52.21.02.03.03.02.06.37.38.31.4inf
22.01.00.01.02.53.54.51.01.52.22.03.04.04.03.05.36.37.30.4inf
33.02.01.00.01.52.53.52.02.53.23.04.05.05.04.04.35.36.31.4inf
44.53.52.51.50.01.02.01.51.01.74.55.56.56.55.52.83.84.82.9inf
55.54.53.52.51.00.01.02.21.71.05.56.57.57.56.51.82.83.83.9inf
66.55.54.53.52.01.00.02.21.71.06.57.58.58.57.50.81.82.84.9inf
72.01.01.02.01.52.22.20.00.51.22.03.04.04.03.03.04.05.01.4inf
82.51.51.52.51.01.71.70.50.00.72.53.54.54.53.52.53.54.51.9inf
92.01.02.03.01.71.01.01.20.70.02.03.04.04.03.01.82.83.82.4inf
101.02.03.04.05.56.57.53.03.54.20.01.02.03.02.08.39.310.31.4inf
112.03.04.05.06.57.58.54.04.55.21.00.01.02.03.09.310.311.32.4inf
122.53.54.55.57.08.09.04.55.05.72.01.00.01.02.09.810.811.82.9inf
131.52.53.54.56.07.08.03.54.04.72.52.01.00.01.08.89.810.81.9inf
141.02.03.04.05.56.57.53.03.54.22.03.02.01.00.08.39.310.31.4inf
157.36.35.34.32.81.80.83.02.51.87.38.39.39.38.30.01.02.05.7inf
168.37.36.35.33.82.81.84.03.52.88.39.310.310.39.31.00.01.06.7inf
177.56.55.54.53.02.01.03.22.72.07.58.59.59.58.51.81.00.05.9inf
180.41.40.41.42.93.94.91.41.92.61.42.43.42.41.45.76.77.70.0inf
19infinfinfinfinfinfinfinfinfinfinfinfinfinfinfinfinfinfinf0.0
\n" }, "metadata": {}, "output_type": "display_data" }, { "data": { - "text/plain": "", - "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 012345678910111213141516171819
0-999901234517801011140615160-9999
11-99991234517811011140615160-9999
212-9999234527811011140615162-9999
3123-999934524811011140615162-9999
41234-99994584811011140615162-9999
512345-9999589511011140615162-9999
6123456-999989611011140615162-9999
71772899-99997811011140615162-9999
817748998-9999811011140615162-9999
9191289989-999911011140615160-9999
1010012345178-99991011120615160-9999
111001234517811-9999111213615160-9999
12130123451781112-99991213615160-9999
131301234517801213-999913615160-9999
14140123451780121314-9999615160-9999
151234561589611011140-999915162-9999
16123456158961101114016-9999162-9999
171234561789611011140617-99992-9999
181801823452780101114061516-9999-9999
19-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999
\n" + "text/plain": "", + "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 012345678910111213141516171819
0-999901234517801013140615160-9999
11-99991234517811011140615160-9999
212-9999234527811011140615162-9999
3123-999934524811011140615162-9999
41234-99994584811011140615162-9999
512345-9999589511011140615162-9999
6123456-999989611011140615162-9999
71772899-99997811011140615162-9999
817748998-9999811011140615162-9999
9191289989-999911011140615160-9999
1010012345178-99991011120615160-9999
111001234517811-9999111213615160-9999
12130123451781112-99991213615160-9999
131301234517801213-999913615160-9999
14140123451780121314-9999615160-9999
151234561589611011140-999915162-9999
16123456158961101114016-9999162-9999
171234561789611011140617-99992-9999
181801823452780101314061516-9999-9999
19-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999
\n" }, "metadata": {}, "output_type": "display_data" @@ -887,11 +730,11 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 49, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:34.625175012Z", - "start_time": "2023-06-29T16:06:34.622205503Z" + "end_time": "2024-04-18T09:41:22.980123Z", + "start_time": "2024-04-18T09:41:22.975753Z" } }, "outputs": [], @@ -911,11 +754,11 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 50, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:37.210317623Z", - "start_time": "2023-06-29T16:06:37.198417095Z" + "end_time": "2024-04-18T09:41:23.127090Z", + "start_time": "2024-04-18T09:41:23.121268Z" } }, "outputs": [ @@ -923,7 +766,7 @@ "data": { "text/plain": "([0, 1, 2],\n [0, 1, 2, 3, 4, 5, 6],\n [14, 0, 1, 7],\n [12, 13, 0, 1, 2, 3, 4, 5, 6, 15, 16],\n [7, 2, 18])" }, - "execution_count": 17, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" } @@ -936,18 +779,18 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 51, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:42.353452636Z", - "start_time": "2023-06-29T16:06:41.821575522Z" + "end_time": "2024-04-18T09:41:24.243789Z", + "start_time": "2024-04-18T09:41:23.650255Z" } }, "outputs": [ { "data": { "text/plain": "
", - "image/png": "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" + "image/png": "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" }, "metadata": {}, "output_type": "display_data" @@ -971,11 +814,11 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 52, "metadata": { "ExecuteTime": { - "end_time": "2023-06-29T16:06:45.329555222Z", - "start_time": "2023-06-29T16:06:45.263293580Z" + "end_time": "2024-04-18T09:41:26.675435Z", + "start_time": "2024-04-18T09:41:26.614043Z" } }, "outputs": [ @@ -983,40 +826,31 @@ "name": "stderr", "output_type": "stream", "text": [ - "/tmp/ipykernel_279983/2573118423.py:2: RuntimeWarning: invalid value encountered in subtract\n", - " dist - dijkstra(nx.to_scipy_sparse_array(G_2, nodelist=node_order_2),\n" + "/tmp/ipykernel_1001638/3605756091.py:5: RuntimeWarning: invalid value encountered in subtract\n", + " dist - dijkstra(G_2_sparse,\n" ] }, { "data": { - "text/plain": "", - "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 012345678910111213141516171819
00.00.01.21.21.21.52.50.20.20.20.00.00.00.00.02.52.52.50.0nan
10.00.00.00.01.01.32.30.00.00.00.00.00.00.00.02.32.32.30.0nan
21.20.00.00.00.00.31.30.00.00.00.20.20.21.21.21.31.31.30.0nan
31.20.00.00.00.00.00.00.00.00.00.20.20.21.21.20.00.00.00.0nan
41.21.00.00.00.00.00.00.00.00.01.01.01.01.21.20.00.00.00.0nan
52.52.50.50.00.00.00.00.00.00.02.52.52.52.52.50.00.00.00.5nan
63.53.51.50.00.00.00.00.00.00.03.53.53.53.53.50.00.00.01.5nan
70.20.00.00.00.00.00.00.00.00.00.00.00.00.20.20.00.00.0-0.0nan
80.20.00.00.00.00.00.00.00.00.00.00.00.00.20.20.00.00.0-0.0nan
90.00.00.00.00.00.00.00.00.00.00.00.00.00.00.0-0.0-0.0-0.00.0nan
100.00.01.21.21.21.52.50.20.20.20.00.00.00.00.02.52.52.5-0.0nan
110.00.01.21.21.21.52.50.20.20.20.00.00.00.00.02.52.52.50.0nan
120.00.01.21.21.21.52.50.20.20.20.00.00.00.00.02.52.52.50.0nan
130.00.01.21.21.21.52.50.20.20.20.00.00.00.00.02.52.52.5-0.0nan
140.00.01.21.21.21.52.50.20.20.20.00.00.00.00.02.52.52.5-0.0nan
153.53.51.50.00.00.00.00.00.0-0.03.53.53.53.53.50.00.00.01.5nan
163.53.51.50.00.00.00.00.00.0-0.03.53.53.53.53.50.00.00.01.5nan
173.53.51.50.00.00.00.00.00.00.03.53.53.53.53.5-0.00.00.01.5nan
180.00.00.00.00.00.31.3-0.0-0.0-0.0-0.00.00.00.0-0.01.31.31.30.0nan
19nannannannannannannannannannannannannannannannannannannan0.0
\n" + "text/plain": "", + "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 012345678910111213141516171819
00.00.01.21.21.21.52.50.20.20.20.00.00.00.00.02.52.52.50.0nan
10.00.00.00.01.01.32.30.00.00.00.00.00.00.00.02.32.32.30.0nan
21.20.00.00.00.00.31.30.00.00.00.20.20.21.21.21.31.31.30.0nan
31.20.00.00.00.00.00.00.00.00.00.20.20.21.21.20.00.00.00.0nan
41.21.00.00.00.00.00.00.00.00.01.01.01.01.21.20.00.00.00.0nan
52.52.50.50.00.00.00.00.00.00.02.52.52.52.52.50.00.00.00.5nan
63.53.51.50.00.00.00.00.00.00.03.53.53.53.53.50.00.00.01.5nan
70.20.00.00.00.00.00.00.00.00.00.00.00.00.20.20.00.00.0-0.0nan
80.20.00.00.00.00.00.00.00.00.00.00.00.00.20.20.00.00.0-0.0nan
90.00.00.00.00.00.00.00.00.00.00.00.00.00.00.0-0.0-0.0-0.00.0nan
100.00.01.21.21.21.52.50.20.20.20.00.00.00.00.02.52.52.5-0.0nan
110.00.01.21.21.21.52.50.20.20.20.00.00.00.00.02.52.52.50.0nan
120.00.01.21.21.21.52.50.20.20.20.00.00.00.00.02.52.52.50.0nan
130.00.01.21.21.21.52.50.20.20.20.00.00.00.00.02.52.52.5-0.0nan
140.00.01.21.21.21.52.50.20.20.20.00.00.00.00.02.52.52.5-0.0nan
153.53.51.50.00.00.00.00.00.0-0.03.53.53.53.53.50.00.00.01.5nan
163.53.51.50.00.00.00.00.00.0-0.03.53.53.53.53.50.00.00.01.5nan
173.53.51.50.00.00.00.00.00.00.03.53.53.53.53.5-0.00.00.01.5nan
180.00.00.00.00.00.31.3-0.0-0.0-0.0-0.00.00.00.0-0.01.31.31.30.0nan
19nannannannannannannannannannannannannannannannannannannan0.0
\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ + "G_2_sparse = nx.to_scipy_sparse_array(G_2, nodelist=node_order_2)\n", + "G_2_sparse.indices, G_2_sparse.indptr = G_2_sparse.indices.astype(\n", + " np.int32), G_2_sparse.indptr.astype(np.int32)\n", "display(colored_distances(\n", - " dist - dijkstra(nx.to_scipy_sparse_array(G_2, nodelist=node_order_2),\n", + " dist - dijkstra(G_2_sparse,\n", " directed=True,\n", " return_predecessors=False),\n", " 1, 'Reds', node_order=node_order_2). \\\n", " set_table_attributes('style=\"font-size: 12px\"'),\n", " )" ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "ExecuteTime": { - "end_time": "2023-04-10T14:48:49.138043Z", - "start_time": "2023-04-10T14:48:49.134852Z" - } - }, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/scripts/TestingNotebooks/20230503-betweenness_calc.ipynb b/scripts/TestingNotebooks/20230503-betweenness_calc.ipynb index 7d8103b..e613668 100644 --- a/scripts/TestingNotebooks/20230503-betweenness_calc.ipynb +++ b/scripts/TestingNotebooks/20230503-betweenness_calc.ipynb @@ -6,35 +6,50 @@ "source": [ "# Betweenness Centrality Calculation\n", "\n", - "Using pair-wise dependencies, as shown by Brandes (2001), and modified from\n", - ":mod:`networkx.algorithms.centrality.betweenness`.\n", + "For usage in partitioning approaches and for evaluation of node and edge usage, we need\n", + "to calculate betweenness centrality. Because we need to respect the\n", + "[Partition Requirements](./partition_requirements), we need to calculate\n", + "betweenness centrality in a special way, using the shortest paths we calculated in\n", + "[Restricted Distance Calculation](./dist_calc_restricted).\n", + "We will show this conceptually using pair-wise dependencies, as shown by Brandes (2001),\n", + "and modified from {external+networkx:mod}`networkx.algorithms.centrality.betweenness`.\n", + "\n", + "### Pair-Wise Dependencies\n", + "\"... the cubic number of pair-wise dependencies\n", + "$\\delta(s, t \\mid v)=\\sigma(s, t \\mid v) / \\sigma(s, t)$\n", + "can be aggregated without computing all of the explicitly.\"\n", + "\n", + "One-sided dependencies:\n", + "$\\delta(s \\mid v)=\\sum_{t \\in V} \\delta(s, t \\mid v)$\n", + "\n", + "(see [Brandes, 2008](https://doi.org/10.1016/j.socnet.2007.11.001))\n", + "\n", + "We can span up trees for each row in the predecessor matrix, symbolizing the\n", + "shortest paths from the source node to all other nodes. Starting from the leafs,\n", + "we can accumulate the dependencies of each node on its parent, going up the tree.\n", + "This way, we can accumulate the dependencies of all nodes (and edges!) on the way.\n", + "\n", + "First we will modify the implementation of brandes algorithm in networkx pointedly,\n", + "to see the concept in action. Then, we will simplify it to our needs. Lastly we\n", + "compare the performance.\n", + "\n", + "## Modified implementation\n", "\n", "Special part: Replace single-source shortest-path step discovery with\n", "given predecessor and distance matrices to stipulate the shortest paths.\n", - "Finding them again would be redundant and costly, also we prescribe the filtered paths.\n", - "\n", - "## Modify pointedly\n", - "so various methods of accumulation can be determined in one pass." + "Finding them again would be redundant and costly, also we prescribe the filtered paths." ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T14:16:32.194316Z", - "start_time": "2023-05-15T14:16:21.222237Z" + "end_time": "2024-04-18T09:45:20.590663Z", + "start_time": "2024-04-18T09:45:20.581492Z" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-05-15 14:16:32,185 | INFO | __init__.py:7 | superblockify version 0.1.0\n" - ] - } - ], + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import networkx as nx\n", @@ -48,22 +63,30 @@ "from superblockify.metrics.distances import shortest_paths_restricted" ] }, + { + "cell_type": "markdown", + "source": [ + "Let's use the same graph as in the second example of\n", + "[Restricted Distance Calculation](./dist_calc_restricted)." + ], + "metadata": { + "collapsed": false + } + }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T14:16:32.839746Z", - "start_time": "2023-05-15T14:16:32.207798Z" + "end_time": "2024-04-18T09:45:47.814566Z", + "start_time": "2024-04-18T09:45:47.257378Z" } }, "outputs": [ { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] + "text/plain": "
", + "image/png": "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" }, "metadata": {}, "output_type": "display_data" @@ -142,32 +165,27 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Calculate distance and predecessor matrices for the whole graph, also restricted." + "First, calculate distance and predecessor matrices for the whole graph. Once plain, once\n", + "restricted to the sparsified nodes." ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T14:16:33.209660Z", - "start_time": "2023-05-15T14:16:32.839554Z" + "end_time": "2024-04-18T09:46:19.934335Z", + "start_time": "2024-04-18T09:46:19.923953Z" } }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Calculating distance matrices: 100%|██████████| 2.00/2.00 [00:00<00:00, 12.9kit/s]\n" - ] - } - ], + "outputs": [], "source": [ "node_order = list(range(len(G.nodes)))\n", - "dist, pred = dijkstra(\n", - " nx.to_scipy_sparse_array(G, nodelist=node_order, weight=\"weight\"),\n", - " directed=True, indices=node_order, return_predecessors=True)\n", + "G_sparse = nx.to_scipy_sparse_array(G, nodelist=node_order, weight=\"weight\")\n", + "G_sparse.indices, G_sparse.indptr = G_sparse.indices.astype(\n", + " np.int32), G_sparse.indptr.astype(np.int32)\n", + "dist, pred = dijkstra(G_sparse, directed=True, indices=node_order,\n", + " return_predecessors=True)\n", "dist_restr, pred_restr = shortest_paths_restricted(G, partitions, weight=\"weight\",\n", " node_order=node_order)" ] @@ -176,23 +194,26 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Calculate node and edge betweenness centrality, using three methods\n", - "- a new dijkstra pass\n", - "- the given distance and predecessor matrices\n", - "- the restricted matrices" + "Now we want to calculate node and edge betweenness centrality for the whole graph, using\n", + " three methods\n", + "- a new dijkstra pass, just as in\n", + " {py:func}`networkx.edge_betweenness_centrality`\n", + "- with given distance and predecessor matrices\n", + "- with restricted distance and predecessor matrices" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T14:16:33.261992Z", - "start_time": "2023-05-15T14:16:33.214690Z" + "end_time": "2024-04-18T09:46:40.943464Z", + "start_time": "2024-04-18T09:46:40.938234Z" } }, "outputs": [], "source": [ + "# Helper function to visualize the predecessor graph\n", "def plot_graph_from_predecessors(P, s, method_name):\n", " \"\"\"Plot tree graph from predecessors dict P, with source s highlighted.\"\"\"\n", " G_pred = nx.DiGraph()\n", @@ -213,13 +234,24 @@ " axe.set_title(f\"Predecessor graph for {method_name} from node {s}\")" ] }, + { + "cell_type": "markdown", + "source": [ + "A function that generates the same output as the NetworkX internal function\n", + "{external+networkx:func}`networkx.algorithms.centrality.betweenness._single_source_dijkstra_path_basic`,\n", + "so we can swap it out." + ], + "metadata": { + "collapsed": false + } + }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T14:16:33.306022Z", - "start_time": "2023-05-15T14:16:33.262267Z" + "end_time": "2024-04-18T09:47:17.588377Z", + "start_time": "2024-04-18T09:47:17.581682Z" } }, "outputs": [], @@ -281,42 +313,48 @@ " return S, P, sigma, D" ] }, + { + "cell_type": "markdown", + "source": [ + "To calculate not only node betweenness, but also edge betweenness, as well as length and\n", + "linearly scaled betweenness, we need to modify the function. This function returns\n", + "the different kinds of betweenness in a dict. For the edge $t = 17$, we plot the\n", + "predecessor graphs for the three methods." + ], + "metadata": { + "collapsed": false + } + }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T14:16:34.748311Z", - "start_time": "2023-05-15T14:16:33.306210Z" + "end_time": "2024-04-18T09:47:41.937097Z", + "start_time": "2024-04-18T09:47:40.740062Z" } }, "outputs": [ { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] + "text/plain": "
", + "image/png": "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" }, "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAGpCAYAAAAdhodAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAACfpUlEQVR4nOzdd1hT1xsH8O9NQsLeoIAIgoKoDMG9APeue1exte5arba1at2ts62jrlpnrQNnHbhRXKigCOIeOBkie0OS8/uDX1LDDBAI4/08D0/rzbnnvpfk3rycc885HGOMgRBCCCGE1Bg8dQdACCGEEEIqFiWAhBBCCCE1DCWAhBBCCCE1DCWAhBBCCCE1DCWAhBBCCCE1DCWAhBBCCCE1DCWAhBBCCCE1DCWAhBBCCCE1DCWAhBBCCCE1TIUmgDt37gTHcfIfgUCAOnXqYOzYsXj//n2FxGBrawsfH58KORZRPS8vLzRp0qTU+8fHx2PYsGEwNzcHx3Ho16+f6oIrJz4+PrC1tS3349C1oX6ye+SrV6/UHYrabNy4ETt37sy3/fLly+A4DocOHaqQOHx8fKCrq1shx/qUKq/D7OxsTJw4ERYWFuDz+XBzc1NJvVWd7LN0+fJlldW5Zs0aDBgwAPXq1QPHcfDy8iqwnJeXl0IelPcnOjpaZTEVR1BhR/rEjh070LBhQ2RkZODKlStYtmwZAgICcP/+fejo6KgjJFJDLFmyBEePHsX27dthb28PY2NjdYdUrJ9++gnffPONusMgFaBXr14IDAyEhYWFukNRm40bN8LU1LTG/jFy9OhR6Ovrq6SuTZs2YcuWLVi/fj08PDzUktDWFJs3b4aOjg46duyIEydOFFpu48aNSE5OVtiWnp6O7t27w8PDA7Vr1y7vUOXUkgA2adIEzZo1AwB4e3tDIpFgyZIlOHbsGEaOHFngPunp6dDW1q7IMKs1iUQCsVgMkUik8ror83sVHh4Oe3v7Qj9nJcUYQ2ZmJrS0tFRSX0Hs7e3Lre6aJicnR977UBmZmZnBzMxM3WEQNWratKnK6goPD4eWlhamTp1aZLmKuI9Vdw8fPgSPl9upWlQvVaNGjfJt27VrF3JycjBu3Lhyi68gleIZwFatWgEAXr9+DeC/pvf79++ja9eu0NPTQ6dOnQDkNmkvXboUDRs2hEgkgpmZGcaOHYvY2FiFOnNycvD999+jdu3a0NbWRrt27XD79u0Cjx8dHY0JEyagTp06EAqFqFevHhYtWgSxWKxQLisrC4sXL4aTkxM0NTVhYmICb29v3LhxQ16GMYaNGzfCzc0NWlpaMDIywqBBg/Dy5UuFukJCQtC7d2+Ym5tDJBLB0tISvXr1wrt37+RlDh48iJYtW8LAwADa2tqws7PDF198oVDPmzdvMGrUKHk9Tk5O+PXXXyGVSuVlXr16BY7jsHLlSixduhT16tWDSCTCpUuXCn1PEhMT8eWXX8LY2Bi6urro1asXXr58CY7jsHDhQnm5hQsXguM43L17F4MGDYKRkZE8YQkODsawYcNga2sLLS0t2NraYvjw4fL3WUbW7XX+/HmMHTsWxsbG0NHRQZ8+ffL93mSCgoLQvn17+e9l+fLlCuecl+x3cOHCBTx69Eje3C7rAoiPj8fkyZNhZWUFoVAIOzs7zJ07F1lZWQr1cByHqVOnYvPmzXBycoJIJMKuXbsKPW5xYmNjMX78eFhbW8s/z23btsWFCxfkZQrqApbF8ffff8PJyQna2tpwdXXFyZMn8x3j33//hYuLC0QiEezs7LB27Vr5+1ac5ORkzJo1C/Xq1YNQKISVlRWmT5+OtLS0Ep3ny5cvMWzYMFhaWkIkEqFWrVro1KkT7t27Jy8jlUqxcuVK+bVtbm6O0aNHK1wTQOFdZF5eXgrdLrJunr///hszZ86ElZUVRCIRnj9/DgA4c+YMOnXqJL++nJycsGzZMoU6g4OD0bdvXxgbG0NTUxNNmzaFr69vic4dUP56ytsFPH36dOjo6ORrMQCAoUOHolatWsjJyZFvO3DgAFq3bg0dHR3o6uqiW7duCAkJUdhPdn99/vw5evbsCV1dXVhbW2PmzJn5Pu/FkT2ScfXqVbRq1QpaWlqwsrLCTz/9BIlEolB20aJFaNmyJYyNjaGvrw93d3ds27YNjDF5GVtbWzx48AABAQHyazTvZz8nJwdz586FpaUl9PX10blzZzx58kShjDL3V2U9ePAAnTp1go6ODszMzDB16lSkp6crlNmwYQM6dOgAc3Nz6OjowNnZGStXrlR4b5SNq6DPd2JiImbOnAk7Ozv5tdGzZ088fvy40Lg5jsNff/2FjIwM+e9S1rVe1H3s2rVr6NSpE/T09KCtrY02bdrg1KlTCnXLPqf+/v746quvYGJiAn19fYwePRppaWmIjo7GkCFDYGhoCAsLC8yaNSvf76Igtra26N27N86cOQN3d3doaWmhYcOG2L59e76y4eHh+Oyzz2BkZARNTU24ubkVeC9+/PgxunfvDm1tbZiammLixIlISUkp8PgXLlxAp06doK+vD21tbbRt2xYXL14sNm4A8uSvNLZt2wZdXV0MHTq01HWUCqtAO3bsYABYUFCQwva1a9cyAOzPP/9kjDE2ZswYpqGhwWxtbdmyZcvYxYsX2dmzZ5lEImHdu3dnOjo6bNGiRez8+fPsr7/+YlZWVqxRo0YsPT1dXueYMWMYx3Hsu+++Y+fOnWO//fYbs7KyYvr6+mzMmDHyclFRUcza2prZ2NiwLVu2sAsXLrAlS5YwkUjEfHx85OVycnKYt7c3EwgEbNasWczPz48dP36czZkzh+3bt09e7quvvmIaGhps5syZ7MyZM2zv3r2sYcOGrFatWiw6OpoxxlhqaiozMTFhzZo1Y76+viwgIIAdOHCATZw4kT18+JAxxtiNGzcYx3Fs2LBhzM/Pj/n7+7MdO3awzz//XH6sDx8+MCsrK2ZmZsY2b97Mzpw5w6ZOncoAsEmTJsnLRUREMADMysqKeXt7s0OHDrFz586xiIiIAt8niUTC2rVrxzQ1Ndny5cvZuXPn2KJFi1iDBg0YALZgwQJ52QULFjAAzMbGhv3www/s/Pnz7NixY4wxxg4ePMjmz5/Pjh49ygICAtj+/fuZp6cnMzMzY7Gxsfk+F9bW1uyLL75gp0+fZn/++SczNzdn1tbWLCEhQV7W09OTmZiYsAYNGrDNmzez8+fPs8mTJzMAbNeuXQWeD2OMZWZmssDAQNa0aVNmZ2fHAgMDWWBgIEtKSmIZGRnMxcWF6ejosNWrV7Nz586xn376iQkEAtazZ0+FemS/RxcXF7Z3717m7+/PwsPDCz1ucbp168bMzMzYn3/+yS5fvsyOHTvG5s+fz/bv3y8vM2bMGGZjY5MvDltbW9aiRQvm6+vL/Pz8mJeXFxMIBOzFixfycqdPn2Y8Ho95eXmxo0ePsoMHD7KWLVsyW1tblvfyt7GxUbg20tLSmJubGzM1NWW//fYbu3DhAlu7di0zMDBgHTt2ZFKpVOnzdHR0ZPXr12d///03CwgIYIcPH2YzZ85kly5dkpcZP348A8CmTp3Kzpw5wzZv3szMzMyYtbW1wuclb5wynp6ezNPTU/7vS5cuyd+vQYMGsePHj7OTJ0+yuLg49tdffzGO45iXlxfbu3cvu3DhAtu4cSObPHmyfH9/f38mFApZ+/bt2YEDB9iZM2eYj48PA8B27Nih9LmX5HqSXQuyazM0NJQBYFu3blWoMyEhgYlEIvbtt9/Kt/3888+M4zj2xRdfsJMnT7IjR46w1q1bMx0dHfbgwQN5uTFjxjChUMicnJzY6tWr2YULF9j8+fMZx3Fs0aJFSp8XY/9dj5aWlmzdunXs7NmzbNq0aQwAmzJlikJZHx8ftm3bNnb+/Hl2/vx5tmTJEqalpaVwzLt37zI7OzvWtGlT+TV69+5dxth/76etrS0bOXIkO3XqFNu3bx+rW7cua9CgAROLxYwx5e6vypD9nurWrct+/vlndu7cObZw4UImEAhY7969FcrOmDGDbdq0iZ05c4b5+/uz33//nZmamrKxY8fKyygbV97Pd3JyMmvcuDHT0dFhixcvZmfPnmWHDx9m33zzDfP39y80/sDAQNazZ0+mpaUl/11++PCBMVb4fezy5ctMQ0ODeXh4sAMHDrBjx46xrl27Mo7jFO5Jss9pvXr12MyZM9m5c+fYihUrGJ/PZ8OHD2fu7u5s6dKl7Pz58+yHH35gANivv/5a7O/cxsaG1alThzVq1Ijt3r2bnT17lg0ePJgBYAEBAfJyjx8/Znp6esze3p7t3r2bnTp1ig0fPpwBYCtWrJCXi46OZubm5szKyort2LGD+fn5sZEjR7K6desyAAr3n7///ptxHMf69evHjhw5wk6cOMF69+7N+Hw+u3DhQrGxf6px48YK96KiPH36lAFg48aNK9ExVEEtCeDNmzdZTk4OS0lJYSdPnmRmZmZMT09PniCNGTOGAWDbt29X2H/fvn0MADt8+LDC9qCgIAaAbdy4kTHG2KNHjxgANmPGDIVy//zzDwOgcHFNmDCB6erqstevXyuUXb16NQMgv3Hu3r27wBvxpwIDAwv8oL99+5ZpaWmx77//njHGWHBwMAMgT5QKIjt+YmJioWVmz57NALBbt24pbJ80aRLjOI49efKEMfZfAmhvb8+ys7MLrU/m1KlTDADbtGmTwvZly5YVmgDOnz+/2HrFYjFLTU1lOjo6bO3atfLtss9F//79Fcpfv36dAWBLly6Vb/P09CzwnBs1asS6detWbAyenp6scePGCts2b97MADBfX1+F7StWrGAA2Llz5+TbADADAwMWHx9f7LGUoaury6ZPn15kmcISwFq1arHk5GT5tujoaMbj8diyZcvk25o3b86sra1ZVlaWfFtKSgozMTEpNgFctmwZ4/F4+f5gO3ToEAPA/Pz8lDrHjx8/MgBszZo1hZaRXbOfJmCMMXbr1i0GgM2ZM6fQOGUKSwA7dOigUC4lJYXp6+uzdu3aFZnENmzYkDVt2pTl5OQobO/duzezsLBgEomk0H0/VZLrKW8CyBhj7u7urE2bNgr7bty4kQFg9+/fZ4wx9ubNGyYQCNjXX3+d71xr167NhgwZIt8mu7/m/bz37NmTOTo6KnVOMrLr8d9//1XY/tVXXzEej5fvviojkUhYTk4OW7x4MTMxMVF4Hwr78pS9n3n/KPP19WUAWGBgIGNMufurMmS/p0/vVYzlJtoA2LVr14o8t927dzM+ny+/VygbV97P9+LFixkAdv78+VKdg46OTr7thd3HWrVqxczNzVlKSop8m1gsZk2aNGF16tSRv0+yz2nez1u/fv0YAPbbb78pbHdzc2Pu7u7FxmtjY8M0NTUVPjcZGRnM2NiYTZgwQb5t2LBhTCQSsTdv3ijs36NHD6atrS3/3vzhhx8Yx3Hs3r17CuW6dOmikACmpaUxY2Nj1qdPH4VyEomEubq6shYtWhQb+6dKkgDKEmTZ57ciqaULuFWrVtDQ0ICenh569+6N2rVr4/Tp06hVq5ZCuYEDByr8++TJkzA0NESfPn0gFovlP25ubqhdu7a8O0/WtZn3Oa8hQ4bke/bn5MmT8Pb2hqWlpUKdPXr0AAAEBAQAAE6fPg1NTc18XbB56+I4DqNGjVKoq3bt2nB1dZXHV79+fRgZGeGHH37A5s2b8fDhw3x1NW/eXB6zr69vgaOk/f390ahRI7Ro0UJhu4+PDxhj8Pf3V9jet29faGhoFBq/jOychwwZorB9+PDhhe6T970CgNTUVPzwww+oX78+BAIBBAIBdHV1kZaWhkePHuUrn/f9atOmDWxsbPJ1VdeuXTvfObu4uOTrWlaWv78/dHR0MGjQIIXtsm6YvF0AHTt2hJGRUamOlVeLFi2wc+dOLF26FDdv3lSqm0TG29sbenp68n/XqlUL5ubm8t9DWloagoOD0a9fPwiFQnk5XV1d9OnTp9j6T548iSZNmsDNzU3h89ytW7cSjaAzNjaGvb09Vq1ahd9++w0hISH5uutl73Herq8WLVrAyclJ6W6YguT9bN64cQPJycmYPHlyod3gz58/x+PHj+WfyU/Pv2fPnoiKisrX7ViY0lxPnxo7dixu3LihcLwdO3agefPm8meNzp49C7FYjNGjRyvEqqmpCU9Pz3zvFcdx+T4Dpb2G9PT00LdvX4VtI0aMgFQqxZUrV+Tb/P390blzZxgYGIDP50NDQwPz589HXFwcPnz4oPTx8h7LxcUFwH+PEClzfy2JvPelESNGAIDCfSkkJAR9+/aFiYmJ/NxGjx4NiUSCp0+flimu06dPw8HBAZ07dy7TeeSV9z6WlpaGW7duYdCgQQqDRfh8Pj7//HO8e/cu32e+d+/eCv92cnICkDuYKe92ZT9bbm5uqFu3rvzfmpqacHBwUNjf398fnTp1grW1tcK+Pj4+SE9PR2BgIIDc96hx48ZwdXVVKCd7D2Vu3LiB+Ph4jBkzRuH6kUql6N69O4KCgkr82IsyxGIxdu3ahcaNG8sfhatIakkAd+/ejaCgIISEhCAyMhJhYWFo27atQhltbe18I6FiYmKQmJgIoVAIDQ0NhZ/o6Gh8/PgRABAXFwcA+UbTCAQCmJiY5KvzxIkT+epr3LgxAMjrjI2NhaWlZZH9/DExMWCMoVatWvnqu3nzprwuAwMDBAQEwM3NDXPmzEHjxo1haWmJBQsWyBOADh064NixY/Kbep06ddCkSRPs27dPfry4uLgCRwtaWloq/B5klB1ZGBcXB4FAkG+EbN4Evbi6R4wYgT/++APjxo3D2bNncfv2bQQFBcHMzAwZGRn5yhc0+ql27dr5ziPvewgAIpGowDqVERcXh9q1a+dLBszNzSEQCEr9e1TGgQMHMGbMGPz1119o3bo1jI2NMXr0aKWmAiju95CQkCD/POZV1HspExMTg7CwsHyfZT09PTDG5J/n4nAch4sXL6Jbt25YuXIl3N3dYWZmhmnTpsmfxZH9jgv7POd9D0oib52y54Xr1KlT6D4xMTEAgFmzZuU7/8mTJwOA0udfmuvpUyNHjoRIJJI/v/Xw4UMEBQVh7Nix+eJt3rx5vngPHDiQL1ZtbW1oamoqbBOJRMjMzFQqpuLOQ3Yty96327dvo2vXrgCArVu34vr16wgKCsLcuXMBoETXbt7PvWwgm6wOZe6vyiroOyPvub158wbt27fH+/fvsXbtWly9ehVBQUHYsGGDSuKKjY0t8rNaWnmvC9n9oiTfKXk/07I/NAvaruxnS5n7u7LffbJ7e155t8mun0GDBuW7flasWAHGGOLj45WKvyT8/PwQHR1d4YM/ZNQyFM7JyUk+CrgwBf1lbmpqChMTE5w5c6bAfWStIbIPUHR0NKysrOSvi8XifB9gU1NTuLi44Oeffy6wTtkHyszMDNeuXYNUKi00CTQ1NQXHcbh69WqBo2s/3ebs7Iz9+/eDMYawsDDs3LkTixcvhpaWFmbPng0A+Oyzz/DZZ58hKysLN2/exLJlyzBixAjY2tqidevWMDExQVRUVL7jREZGyuP5lDIP/QO5vz+xWIz4+HiFC7mopCRv3UlJSTh58iQWLFggPx8gdyBNYRdSQfVHR0ejfv36SsVdWiYmJrh16xYYYwrn8eHDB4jF4lL/HpVhamqKNWvWYM2aNXjz5g2OHz+O2bNn48OHD4V+zpVlZGQEjuPkN7dPKZNgmpqaQktLq8AHsGWvK8vGxgbbtm0DADx9+hS+vr5YuHAhsrOzsXnzZvk1GxUVle/LLjIyUuFYmpqaBQ5W+PjxY4Ex5X2/ZKNsixoQIKvnxx9/xIABAwos4+joWOj+nyrN9fQpIyMjfPbZZ9i9ezeWLl2KHTt2QFNTU6EFURbvoUOHYGNjo1S9qlLU50v2vu7fvx8aGho4efKkQuJ57NixcolJmfurMmTfGZ8mJXnP7dixY0hLS8ORI0cUfvefDnAqS1xmZmalGrxSnLzXhZGREXg8Xom+U9RF2e8+ExOTQr9XPiUrv379+kJb4pT9g60ktm3bBqFQiM8//1zldSujUowCVlbv3r0RFxcHiUSCZs2a5fuR3ZBlIwH/+ecfhf19fX3zjezt3bu3fGqQguqUJYA9evRAZmZmgROUfloXYwzv378vsC5nZ+d8+3AcB1dXV/z+++8wNDTE3bt385URiUTw9PTEihUrAEA+qq9Tp054+PBhvn12794NjuPg7e1dxG+zcJ6engByW6c+tX//fqXr4DgOjLF8ifBff/2Vb3SgTN7368aNG3j9+nWhE2qqSqdOnZCamprvy2j37t3y1ytC3bp1MXXqVHTp0qXAz0FJ6ejooFmzZjh27Biys7Pl21NTUwscLZxX79698eLFC5iYmBT4eS7t5NQODg6YN28enJ2d5efZsWNHAMCePXsUygYFBeHRo0cK74GtrS3CwsIUyj19+lTpLtk2bdrAwMAAmzdvVhiB+ilHR0c0aNAAoaGhBZ57s2bNFLrfi6KK62ns2LGIjIyEn58f9uzZg/79+8PQ0FD+erdu3SAQCPDixYtC4y0vKSkpOH78uMK2vXv3gsfjoUOHDgAgn3qHz+fLy2RkZODvv//OV19ZWvPzUub+Wpy896W9e/cC+O97RpZIfXqvY4xh69atKomrR48eePr0ab5HelRNR0cHLVu2xJEjRxR+/1KpFHv27EGdOnXg4OBQrjEoq1OnTvD395cnfDK7d++Gtra2PInz9vbGgwcPEBoaqlBO9h7KtG3bFoaGhnj48GGh18+nj9GoQnR0NPz8/NCvX78CWz0rQuWcDKsQw4YNwz///IOePXvim2++QYsWLaChoYF3797h0qVL+Oyzz9C/f384OTlh1KhRWLNmDTQ0NNC5c2eEh4dj9erV+bqVFy9ejPPnz6NNmzaYNm0aHB0dkZmZiVevXsHPzw+bN29GnTp1MHz4cOzYsQMTJ07EkydP4O3tDalUilu3bsHJyQnDhg1D27ZtMX78eIwdOxbBwcHo0KEDdHR0EBUVhWvXrsHZ2RmTJk3CyZMnsXHjRvTr1w92dnZgjOHIkSNITExEly5dAADz58/Hu3fv0KlTJ9SpUweJiYlYu3YtNDQ05F8oM2bMwO7du9GrVy8sXrwYNjY2OHXqFDZu3IhJkyaV+mLt3r072rZti5kzZyI5ORkeHh4IDAyUJ0TKDHfX19dHhw4dsGrVKpiamsLW1hYBAQHYtm2bwhfXp4KDgzFu3DgMHjwYb9++xdy5c2FlZSXvcisvo0ePxoYNGzBmzBi8evUKzs7OuHbtGn755Rf07NlT5c/eyCQlJcHb2xsjRoxAw4YNoaenh6CgIJw5c6bQVqeSWrx4MXr16oVu3brhm2++gUQiwapVq6Crq1tsl8b06dNx+PBhdOjQATNmzICLiwukUinevHmDc+fOYebMmWjZsmWxMYSFhWHq1KkYPHgwGjRoAKFQCH9/f4SFhclbPRwdHTF+/HisX78ePB4PPXr0wKtXr/DTTz/B2toaM2bMkNf3+eefY9SoUZg8eTIGDhyI169fY+XKlUrPn6erq4tff/0V48aNQ+fOnfHVV1+hVq1aeP78OUJDQ/HHH38AALZs2YIePXqgW7du8PHxgZWVFeLj4/Ho0SPcvXsXBw8eVOp4qrieunbtijp16mDy5MmIjo5W6P4FcpPixYsXY+7cuXj58iW6d+8OIyMjxMTE4Pbt29DR0cGiRYuUirekTExMMGnSJLx58wYODg7w8/PD1q1bMWnSJPmzXL169cJvv/2GESNGYPz48YiLi8Pq1asL7CmRtZIdOHAAdnZ20NTULPCP58Ioc39VllAoxK+//orU1FQ0b94cN27cwNKlS9GjRw+0a9cOANClSxcIhUIMHz4c33//PTIzM7Fp0yYkJCSoJK7p06fjwIED+OyzzzB79my0aNECGRkZCAgIQO/evUv9h35Bli1bhi5dusDb2xuzZs2CUCjExo0bER4ejn379qm096MsFixYIH9+f/78+TA2NsY///yDU6dOYeXKlTAwMACQ+7vbvn07evXqhaVLl6JWrVr4559/8k2fo6uri/Xr12PMmDGIj4/HoEGDYG5ujtjYWISGhiI2NhabNm0qMqbg4GD59E3JyclgjMlXrWnevHm+lvldu3ZBLBarrfsXQOWYBiavwkYuMZY7Hcvq1auZq6sr09TUZLq6uqxhw4ZswoQJ7NmzZ/JyWVlZbObMmczc3JxpamqyVq1ascDAwAJHEMbGxrJp06axevXqMQ0NDWZsbMw8PDzY3LlzWWpqqrxcRkYGmz9/PmvQoAETCoXMxMSEdezYkd24cUOhvu3bt7OWLVsyHR0dpqWlxezt7dno0aNZcHAwYyx3CPvw4cOZvb0909LSYgYGBqxFixZs586d8jpOnjzJevTowaysrJhQKGTm5uasZ8+e7OrVqwrHev36NRsxYgQzMTFhGhoazNHRka1atUphhKJsFPCqVauK/L1/Kj4+no0dO5YZGhoybW1t1qVLF3bz5s18o+Jko4A/naZD5t27d2zgwIHMyMiI6enpse7du7Pw8PB874Hsc3Hu3Dn2+eefM0NDQ6alpcV69uyp8J4yVvAoXsYKHilbkML2j4uLYxMnTmQWFhZMIBAwGxsb9uOPP7LMzEyFcihgeovSyszMZBMnTmQuLi5MX1+faWlpMUdHR7ZgwQKWlpYmL1fYKOCC4ijo83306FHm7Owsn9Ji+fLlbNq0aczIyKjYfVNTU9m8efOYo6MjEwqFzMDAgDk7O7MZM2bIR+0XJyYmhvn4+LCGDRsyHR0dpqury1xcXNjvv/8un7qDsdwRdytWrGAODg5MQ0ODmZqaslGjRrG3b98q1CeVStnKlSuZnZ0d09TUZM2aNWP+/v6FjgI+ePBggXH5+fkxT09PpqOjw7S1tVmjRo0UppBgLHcaliFDhjBzc3OmoaHBateuzTp27Mg2b96s1LnLKHs9FTQKWGbOnDny6ZIKG4F87Ngx5u3tzfT19ZlIJGI2NjZs0KBBCtNYFHZ/lV3LJSG7ni5fvsyaNWvGRCIRs7CwYHPmzMk3enr79u3M0dGRiUQiZmdnx5YtW8a2bduW73xfvXrFunbtyvT09ORTTDFW+Pspu7/JpuZR5v6qDNnvKSwsjHl5eTEtLS1mbGzMJk2apPC9wBhjJ06ckH8nWVlZse+++46dPn1aYaSpsnEVdB0mJCSwb775htWtW5dpaGgwc3Nz1qtXL/b48WOlziGvou5jV69eZR07dpR/f7Vq1YqdOHFCoUxh3+WFfR8U9Z3+KRsbG9arV6982/Ne24wxdv/+fdanTx9mYGDAhEIhc3V1LXB6pocPH7IuXbowTU1NZmxszL788kv277//5psGhjHGAgICWK9evZixsTHT0NBgVlZWrFevXoXeQ/KeI4ACfwqKy8HBgdna2pZoOi1V4xgrpA+EkDz27t2LkSNH4vr162jTpo3K6t25cyfGjh2LoKCgcu2qIrlycnLg5uYGKysrnDt3Tt3h1FjldT1VJC8vL3z8+BHh4eHqDoUQUkJVqguYVJx9+/bh/fv3cHZ2Bo/Hw82bN7Fq1Sp06NChyn5Z1VRffvklunTpAgsLC0RHR2Pz5s149OgR1q5dq+7Qagy6ngghlQ0lgKRAenp62L9/P5YuXYq0tDRYWFjAx8cHS5cuVXdoVYJUKi1yaToAFbYebUpKCmbNmoXY2FhoaGjA3d0dfn5+Knm2sTKdpzrkHVSWF4/HA4/Hq3LXk0QiKXSADJA7iOHTAR1VSU3/zBIiQ13AhJSDhQsXFvvQfURERKlH0lYWPj4+xa6FXJ1vMcU9FD9mzJgiZw6orLy8vOQTWBfExsZG/sB7VVPTP7OEyFACSEg5iIyMzDdFQV4uLi4qn1qgor169arYCZGr83OdwcHBRb4uGwFf1Tx58kQ+SXdBRCJRiUbmViY1/TNLiAwlgIQQQgghNUyVmgiaEEIIIYSUnVJPukqlUkRGRkJPT6/STARJCCGEEEL+wxhDSkoKLC0ti51kXqkEMDIyEtbW1ioJjhBCCCGElJ+3b9/mW1c9L6USQNmal2/fvs23lBohhBBCCFG/5ORkWFtbK7VWuVIJoKzbV19fnxJAQgghhJBKTJnH9WgQCCGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDUMJICGEEEJIDSNQdwCEEEJIRZAyKd6mxSIqPR5iqQQivgZsdWvBVNMAHMepOzxCKhQlgIQQQqotCZPi5odHOPrqOkLjXyBTkpOvjL6GNtrVaoIBtm3haGithigJqXiUABJCCKmW7nx8huWh+xGdkQAex4OUSQssl5yTjrPvg+H37jbcjO3xo+swWOqYVHC0hFQsegaQEEJItSKWSrAm/Aim39yEDxmJAFBo8icj+f/r9xMi8HnACpx6c6u8wyREragFkBBCSLUhlkow/84uXIsJBwBIwUq0v4RJIWFSLA87gJScDAyz9yqHKAlRP2oBJIQQUm2se3AM12LCS5j2FWzDo+O4GBmigpoIqXyoBZAQQki1EBz7FEdfXwcAaPFF8HHogvr6VnDQt4KhSBfbn57FjqdnFfYZaNseXazcYaVjAm2+JhKyUxAe/wo7n53D69QYrAo7CDdje5ho6qvjlAgpN9QCSAghpMoTSyVYFrofPORO52Ig1Eafuq0h5Alw9f/dwQUxEGrj5odHWBnqi5m3tmD7kzNoYGCFLe2mo46OGTIk2fjj4b8VdRqEVBhqASSEEFLlXY95gA+ZifJ/R2ckoOfZuQAAAw0d9KnbqsD9tudpEbwX/wIPEl9jj9dsdLXywLanZ+AfeQ9TGn0GU2oFJNUItQASQgip8o6+vi5v/SurxKw0AP+NDAYAv7c0KphUL5QAEkIIqdLEUgnC4iNKPOL3Uzxw0ODxUVfHHD+4DkF8Vgr83t4GkDuS+M7HZ6oKl5BKgbqACSGkhFJzMpCQlQoGBn2hNgyFuuoOqdqTSCTIzs6GlpZWvtdep8YgRyouU/3neiyHiK8BAHiT+gHTAjcodCk/TnoLxhgtGVeFvU/7iPCEV3iS9A4fM5MgZVLoaGjBXs8CjgbWaGxkAwGPr+4wKwwlgIQQUgwpk+LOx2c4/TYIYfEvEfNJYgAAhkJdNDayQWdLd3haOEODR7dWVZs9ezbWrVuHQYMG4YsvvoC3tzd4vNxOrPdpH8tc/+Tr6yDgCWClY4Ih9TyxttVkTL+5Ca9SYwAA6eIspOSkQ1+oU+ZjkYrDGMPlqDAcenUVYfEvAQB8jgcpYwDY/1eIYWBgMBLqor9tW/SzaQsjUfX/o47uUoQQUoQbMQ+x9sFRRKbHgc/xFJ4Lk0nMTkVgzENcj3kAg3BtjGvYE33rtgKPo6dsVIUxhpycHPj6+mLv3r2wsrLCuHHj4OPjgxyhpMz1P01+DwB4mPga16IfYH/HORjfsBfmBG+Xl8mRlv04pOJEpcfjl9B9uBf3QuH50E+v4U//PyE7FTufnoNvxBV85zwYHS3dKjLcCkd3J0IIKUCGOAs/39uLH4L+QlR6PAAUmPzJyJ4/S8pJx6/3D+GbwE2I/f8yZKR0JBIJoqKicOfOHSQmJgIAxOLcrt73799j0aJFqFevHnZv26nS42ZIsvAm9QOsdcwUtsu6iEnlFxz7FJ9fXoH78REAlF8RRgqGtJwMLLi7GyvDfIu85qs6agEkhJA80nIyMePWZjxJfAsAYKUYXHA/IQITrq/FH22mwlLbRNUhVmkSiQSxsbGIjIxEZGQkoqKiCvz/mJgYSKVFfwHXqlULAzx7YnXy2SLLlYSBhg7s9CxwPyFCvs1QqAtdjfzPH5LK587HZ/ju9lZImLRU165sjxNvbiJHKsaPrsOqZWs+JYCEEPIJCZNidtA2PEl8W6ZRpRImRXxWCqYFbsSO9jOhJ9RWYZSVkyyxKyyhk/1/TEwMJJL/ulN5PB5q1aoFS0tLWFhYwMPDA3369IGFhQUsLS1haWmJV69eYeDAgQAAgUAAgUCAn3/+GdOmTQOfz8eGM5eQIclWiKelWUNoCYTQ5osAALa6teBl4QIACIx5BAGPj99aTcSF93fxLi0WWZIcWOuYYVC9DtDg8eWrhnDg0MiwbkX8CkkZfcxMxpzg7aVO/vI68y4YToZ1McC2nQqiq1woASSEkE8cfHkF9+JfKL2UWF7rW0+Bm4k9Dr+6hjXhRxCbkYh1D49hrtuICjoD1ZNKpfIWu6KSu+jo6HyJnbm5uTyJa9q0KXr16iVP9GTbzc3NwecXPfpST09P/v8dO3bEli1bYGtrK9/WyrwRrkSHKXTZzXQeBAtt4//2s3STP9c1+OISxGUl40VyJPrWbQVzLUMIeRqIy0rGvbgX+OnOTvkAEIChlblT6X+BpEIwxrAqzBdZkhxo8oXFXr88cBhcrwOamzminl5t6Au1EZ2egGsx4fjn+UWkijMBABseHkcrc6dq15JPCSAhhPxfVHo8tjw+BeC/pcReJEfiakx4oStJfGqAbTvU0TFV2CYFw5l3wehq5YHmZo7lEndpyRK7gpK6vF2xsmfvAIDjOIUWO1li92lSZ2FhAXNzcwgEqvmasbW1xejRo9GzZ08MGTIk33QsA2zb4lLUPYVtQ/yXFlvvyjDfYssIeRroVsejRPGSihcWH4EbHx4CUO76FfE1MNahGy5EhuDk25tIzE6Do34djG7QBW1rNca4q78jW5oDCZNi25Mz+KnpyIo+pXJFCSAhhPzfkVfX5N2+yi4lJlNbywgTGvbE0nv78EuzsQqv8TgOe19cqrAEUCqV4uPHj0q12OVN7GQtdhYWFnB1dUWPHj0KbLFTVWKnLA0NDezatavQ112N7eCgXwfPUyIhVeGD+xw49LdtC22BpsrqJOXjyOtr8pH6yly/WZIcDPFfiuScdPm2e3EvEJOZgCUePvCycMG593cgYVJcjAzB140/q1ZzflICSAghyP0yOPHmZqmTh+9chiAo9imuRt/P95qUMQR/fIp3abGok2dkaUnIErvinrErLLGTJXGurq7o3r27QmudpaUlatWqVeGJnapwHIe5bsPxxdVfVVYnDxzMtQzxhUM3ldVJykeGOAsBUWElGrUrBVNI/mQeJrwBAJhrGv5XljFcigxFf9u2ZY61sqiaVzohhKjYk6S3SPv/Mz8l1du6JZwM6+LzyysKLcMBCIp9WmACKJVKERcXV2RSFxUVhaioKIXEDoBCi52zszO6deuWryu2Vq1a0NCo/lOY2OlbYLJTH6x/+G+Z6+IA8Dge5jcdBS2BqOzBkXL1LDlSZVO2eJg2AABEpEbLt/E4Dg8T36A/KAEkhJBq5XHiW3DgSjxy0FTTAJMb9cWmRycQl5VcaDkeeDgRdBEP/7lcYHKXN7EzMzOTJ3FNmjRB165d83XF1pTEriSG2HkiOScdu56dL3UdPHDgcTwsbeYDZ+N6KoyOlJenSaW7fvMy1TTAhIa98CjxDW7EPJRvlzApHia+LmuYlQolgIQQgtz1X/kcBzEr2RfILOdBeJEciRNvbhZZTgIp7r59jJNrL8iTuMaNG6Nz584FdsUKhcKynE6NNs6xB2ppGWFt+FGImaRELUM8cDDTNMB898/hQslflZGYnQY+x4OYlX61Fj0Nbaxq8RU4jsOCu7vzJZOJWallDbNSoQSQEEIAZElzStx24GXhgpZmDTHlxnro5hkkoMHxoSvQRIYkW56AOLu74t6HvSqKmBSlT91WaG7qgN/Dj+LGhwf/X/O14ERQNp5YgydAP5u2GOfYnbp9axhdDS383nICTDX1MT1wk3z1n0+VfVbByoUSQEIIQe6Xf0nV07OAgMfHlnbT873W16Y1+tq0xpyg7bgaEw6AlhKraLW1jbGixZeITI/DiTc3cffjMzxPjkS29L/udl2BFpwMrdHavBG6WzeHHq32USXpaWiXegCXroYW1rScCAttE0y/uQkvUqIKLKevUb0mc6cEkBBCAFhpm4KVsPv39NvbCIl7nm/7+tZTcCX6Pg5GXEFEcu6D5HyOBxvdWiqJlZSMpbYJJjTsBSD3Wa6ErBTkSCXQ5GvAUKibb05BUvU4GFiVauUeWfJnqW2CGbc241ny+wLL8TkeGhlVr9VgKAEkhBAAjoZ18n2BFLeUWHRGAqIzEgqsLzYzCffiXsj/LWUMjgZ1yil6oiw+x4OppoG6wyAq5qBfJ98gkOKuXwbg15YT0MDACuse/As+x0cjQxv5/onZqYhMjwOQe/02NLCuuBOqAJQAEkIIgEaGdSHkCRS6B4tbSqyw5K8gDAzu/59eghCiWjoammhTqxFufngkf+a2uOsXgHyN5+lN+uer8/Tb2/gldD+A3OdEZftWFxxTos8jOTkZBgYGSEpKgr6+fkXERQghFW5VmC9Ovb2tsvnEZHjg4GhojT8LeFaQEKIat2OfYOatLSqvl8/x0K5WEyxt5qPyulWtJPkar4JiIoSQSm+gbXtIS/gcoDKkYBhm56Xyegkh/2lu6gA3Y3vwOdWnNl86dld5nepGCSAhhPyfnb4FRth7g4PqBgXwOR5amDWEt4WryuokhOTHcRzmuA0Hn+Op8ArOnVeynl5tFdZYOVACSAghnxjr0A02uuYqaUXggYMWX4jZLkNopCkhFcBC2xgLmo4CVPBnHAcObWs1rrat95QAEkLIJ0R8DfzeaiLMNQ3LlATywIMmX4g1rSbBTMtQdQESQorUwcIFi9xHg8fxynQNt6vVGIvdx0DA46swusqDEkBCCMnDVNMAm9t9gyZGtqXanwMHC21jbGz7NRwNq9fUEYRUBd6Wrvir/bew/f/cm8q2BvI5HoQ8AWY0GYClzXwg5FffyVJoFDAhhBRCyqT493UgNj06gQxJdrGLzXPgwOM4DLXzxBcO3WnlD0LUTCyV4OTbWzgUcQWvUz+AAweO4+SrhnAAeBwPEiaFJl+IntYtMNTOE5baJuoNvJRKkq9RAkgIIcXIEGfhQmQITr65hadJ7/ItOM8Dh7q65uhepxl6WreEkUhXTZESQgrCGMOjxDcIT3iFJ0nvEJUWB3C5K4E00LeCo0EdNDNzhHYVXwOaEkBCCCknYqkEf/sdxLWQ25gwcQL0NLRgp1cbIr5Q3aERQpTQt29fnDlzBikpKRCJqnbClxfNA0gIIeWESaT49vNJ2D7/d1hm6cDJsC4lf4RUEY8fP8bJkyeRk5ODI0eOqDsctaIEkBBCSuCPP/5AYmIiAGDLFtWvOkAIKR+MMUyZMkX+7/Xr16sxGvWjLmBCCFFSTEwM7O3tkZaWBgAwMTFBZGQkhEJqASSksjt69CgGDBigsC0sLAzOzs5qikj1qAuYEELKwezZs5GZmSn/d1xcHA4fPqzGiAghykhPT8fXX38NHu+/tEcgEGDjxo1qjEq9KAEkhBAl3L59Gzt37oRE8t8IYB6Ph7Vr16oxKkKIMjZt2oT3799DKpXKt4nFYuzatQvJyclqjEx9KAEkhBAlHDp0KN82xhhu3bqF58+fqyEiQoiymjVrhqFDh6JTp04QCATQ09ODtrY2ACAqKkrN0akHPQNICCFKyM7Oxv3795GQkIDevXujT58+8PDwgFQqxbRp06CrS3P/EVLZMcYgEonw+++/Y8qUKWCMVat1ukuSr1XfNU4IIUSFhEIhPDw8kJOTg6ysLPTs2RNjx45Vd1iEkBJIS0tDTk4OjI2NAaBaJX8lRV3AhBBSAgkJCQAg/wIhhFQd8fHxAHJH8Nd0lAASQkgJyBJAIyMjNUdCCCmpuLg4APQHHEAJICGElAglgIRUXbIWQEoAKQEkhJASkX2BUAJISNUjawGkLmBKAAkhpESoBZCQqis+Ph58Pp9mNAElgIQQUiIJCQkQCoXyOcQIIVVHXFwcjIyMavToXxlKAAkhpAQSEhLoC4SQKio+Pp66f/+PEkBCCCkBWQJICKl64uLiKAH8P0oACSGkBOLj4ykBJKSKio+PpxHA/0cJICGElEBCQgJ9gRBSRVEX8H8oASSEkBKgLmBCqq64uDj6A+7/KAEkhJASoASQkKqLuoD/QwkgIYSUAD0DSEjVxBijLuBPUAJICCElQM8AElI1paSkQCwW0/X7f5QAEkKIkjIzM5GRkUEtgIRUQbJlHKkFMBclgIQQoiRaBo6Qqku2DjC1AOaiBJAQQpRECSAhVRe1ACqiBJAQQpQkSwCpBYGQqodaABVRAkgIIUqiFkBCqq74+HhoaGhAV1dX3aFUCgJ1B0AIIVWFrAuJEkBCKr+3qbEIi3+JJ0nvEJUeh2dGr9B43mfY9vQMHA2s4W5SHzoamuoOU20oASSEkEKEhITA398fd+7cwaNHjxAVFQWO4zBp0iR4eHiga9eucHBwUHeYhJD/Y4zhSvR9+EZcQVj8SwCAgONBzKSAHqDb1Bp7nl+EhEkh5AnQw7oFhtTrgLq65mqOvOJxjDFWXKHk5GQYGBggKSkJ+vr6FREXIaQ6yE4FkiIAaTYg0AIM7AGBSN1RFYkxhv3792P16tW4e/cueDweOI6DRCKRlxEIBJBIJGCMwdvbGz/88AO6deumxqgJIR8yErE8dD+CPj4FDxykKDa9AZ/jgQOHcY7dMdTOCwIevwIiLT8lydcoASSEqNaHUCDsT+DVWSDpJfDpTZgTACZOgH0fwGU8oG+jtjAL8ubNG3z55Ze4cOECeDwepFJpsfvw+XxIJBKMGjUK69ato+5hQtTgfnwEZt3+E1mSHEhY8ddtQZqa1Mfy5l9Cu5L/kVoUSgAJIRUv7jFwfjzw/mpuosfEhZfl+ACTAo5DgI7rAG31d78EBQWhS5cuSEtLg1hcROyF4PP5sLS0xOXLl2FnZ1cOERJCCvIw4TWmBW5EjlSsVKtfYXjg0MTIFr+1mgARX6jCCCtOSfI1GgVMCCkbxoA7a4DdLkBk4P+3FZNAMQkABjw9BGxvCDz/t7yjLFJoaCg6duyI1NTUUiV/ACCRSBAVFYX27dvj3bt3Ko6QEFKQ1JwM/Bi8vczJHwBIwXA/4RW2PD6lougqNxoEQggpPcaAgO+AO7+Wcn8JkJUI/Nsf6PoX4PyFSsNTRkZGBgYMGICMjAyF5/xKQywW48OHDxg5ciQuXboEHo/+xiakPP3x8F8kZqVCCgYtvgg+Dl1QX98KDvpWMBTpYvvTs9jx9KzCPs5G9dDTujka6Fuhnp4FhHwBBl9cguiMBDAwHIy4Cs/arnA1qd4t+XR3IoSUXtCq0id/ciz359w44GXF/+U9f/58vHr1qtDkT0dHB7///jvev3+PjIwMhISEYOjQoYXWJxaLceXKFWzZsqW8QiaEAHiT+gGn3t6Wt/wZCLXRp25rCHkCXI0JL3Q/D9MG8DB1QExmIsITXuV7nQcOGx8dL6+wKw1qAawiYmNjcefOHTx58gQZGRkQiUSoX78+PDw8YGlpqe7wSE0UGwZcm5v7/xq6QOufADM3wLwpoG0G3FgIBC7Kv5/zOMB1ImDYAJDmAB/DgaCVQMRp4PQY4IsngFbFLNX04cMHrFmzpsjBHkeOHEHz5s0xe/ZsPH36FCNGjMD+/fvB4/Gwb9++QvebP38+vvzySwiFVfNZIkIqu2Ovb4DP8eSDPqIzEtDzbO49yUBDB33qtipwv13PzmPns3MAgGF2XnA3ra/wuhQMDxPf4Hnye9TXtyrHM1AvSgArsbS0NOzbtw/r1q3D/fv3AQA8Hk8+OlH2pWVvb4+pU6dizJgxNAKRVAzGgDM+//1bywRwHg/EhgLPjwEuXxW8X5tFQOv5wL1NwNXZAF8TaPo1MOAU8O8A4MVxIGAW0H1HRZwFtm3bVmTy16NHD3Tt2hXDhw/H/v37AQCXL1+GjY0NVq1ahQMHDhS6/8ePH3Hs2DEMGTKkXGInpCZjjOH026BSjfhlSk4Pc/bdHdRvVH0TQOoCrqROnToFOzs7fPXVV3jw4IF8u1QqhVgsVvjSefnyJb799lvY2Nhg9+7dUGJgNyFl8/4a8CHkv8Eeya+BDUaArxdw7cfC92vyBfDuKnBxMvD6AvDyJHCsL5CZCDQek/tM4MM9QFpMRZwF/v777yITwP79+yMlJQUHDx5U2L5jxw5YWVmhZcuWhe7L4/Gwd+9elcVKCPlPVEY8UsUZ5Va/hEnxMOF1udVfGVACWMmIxWJMmDABvXv3xsePHwGg2LnIGGNgjCE1NRVjxoxB//79kZ6eXhHhkprq3sbcqV5KSpoDZCUpbpNkAZLM3J/cQkD4tjKHWJz09HQ8efKkyDJNmjTBo0eP8j0fGBYWJn+9MFKpFDdv3ix7oISQfJ4lvS/3YzxNLv9jqBMlgJWIRCLBsGHDsHXrVgDFJ355yVr+Tpw4gW7duiEjo/z+OiI1GGPAq9PFT/VSkLtrgXrdc1sCRYaATm3A81dAaADcXff/+qVAxBmVhlyQ8PDwYq8xExMT+fq/n5JtMzEp+lnFmJgY+R9yhBDVScpOK/djZEqyIZaWbWaAyowSwEpk/vz5OHLkSJm7cKVSKW7cuIEJEyaoKDJCPpHyJn8rnrLurgUuTgE6bQCmJgATo3K7fo/1ASJv/Ffuw93cRLAcJSQkKFWuqOtRmWtV2eMQQhQdPXoUU6ZMwbFjx5CUVMp7DikUJYCVRFBQEJYtW1boF4qrqytOnjyJ169fIz09HXFxcbhx4wZGjhxZYHmpVIq///4bJ06cKM+wSU0UX3S3aZEa+wDea4F7fwAHOwGHewCvzwH9/gVsuv5XLiet3J8D5Diu2DJxcXEFtvIZGxsDQIGtg3nRXICElI6fnx82btyI/v37w9jYGK1atcLixYtx48YN6Am0yv34mnxhlV8buCh0Z6oEGGOYMGFCkV8UhoaGePv2LebMmYOePXti9OjRePXqFfbs2YO5c+cWuA+Px8OECROQk5NTXqGTmkicWXyZgogMc1v+7v+VO3n0G3/g1Rng1AggOgjoslmxvKSUx1FS7dq1iy1z//59ODk5gc9X/BJwdnYGkNuNXBwzM7PSBUhIDefu7i7/Q00qleLWrVtYsGAB2rZti5/Gf1vux3c0qFPux1AnmgamEggKCkJISEiRZQICAhAQEKCw7dSpU6hXrx7Gjx+Pn3/+Od8+UqkUUVFROHHiBAYMGKDSmEnlkJaWhmvXriE4OBgPHz5EWloaNDQ0YGtrCw8PD7Rr1w516qj4JlbahdKNHQEN7dxkL6+YYMDaC9DQyW39A3KniClHTk5O0NDQKPIPpKNHj2L8+PEYOHAgfH195dvHjBmD9+/f49atW0Ueo169erR+OiFKysnJwYMHD3Dnzh3cuXMHAQEB+XrFOI6DkZERfv5+AVZknkNKjuKz7i3NGkJLIIQ2P/c+ZatbC14WLgCAwJhHyJLmwFCoAzcTewCAnZ4FAKCVuRMSs1ORmJWGe/EvwOd4aGxkU96nrFaUAFYCf/31FwQCQanWIP348SPMzc0LfZ3P52PLli2UAFYzL1++xNq1a7Ft2zakpaXJW6gkEgk4joNAIEBOTg44jkOPHj0wffp0dOnSRTUHN3Io3X6pkbn/tWgFPNyt+JpFKyAj/r/kT6AN6NQqfYxK0NDQQNOmTREUFFTooxdnzpzBuXPnsGnTJujr6+P58+cYPnw4evTogZEjRxY5iEQgEKBdu3blFT4hVVp2djbCw8Plyd7du3cRFhaGrKwscByHhg0bwtXVFY8ePVK4Pj/77DPs2rUL+vr6uP8wEQcjrkL6yfPCM50HwULbWP7vjpZu6GjpBgDy5d5s9WpjiYePQjwznQcBAELinmNa4EZImBRdrTzK7xdQCVACWAlcunRJ6eSP4zjweDwYGRlh8ODB6NatG6ZOnVpoeYlEguvXr0MqldKzSNWARCLBunXrMHv2bPmckLLtMowxeasWYwznzp2Dn58fhgwZgg0bNsDU1FSp41y6dAk6OjqwsbFB7dq1//v86NsCQj0gO0VxJ9vuuS14Qr3cf5s0AhoMzP3/CD8g5S3w9DDgMj536pcIP4Avyh0EYtUOuDbvv7pquQNc+X9ex40bh9u3bxdZZsCAAfj555+xePFiGBsb4/Hjxxg2bBgOHDhQ5H5isRg+Pj4qjJaQqikrK0sh2btz5w7u37+P7Oxs8Hg8ODk5wcPDA6NGjYK7uzvc3Nygq6sLAAgNDcWjR4/A4/GwcuVKfPvtt/Ju4c/qtsGBl4o9Y0P8lxYbz724F2h/svAuZB44OBnWhb1+9V5li2NKDGNLTk6GgYEBkpKSqDtDxdLS0qCnp6f0yN9NmzZh4sSJAHIvqunTp2Pz5s3F7AU8ffoUDRo0KFOsRL1SU1PRv39/XLhwoVT78/l8GBkZ4cKFC3B1dS2y7PPnzxU+LwKBALVr14aJiQkEAgEuzzSDbvQFQPrJHy7jIgAD24Ir3GqbO1k0XwQ0nQo4fQ4Y1MudFzDhKRDyB/D4/5Mmczyg9cLcpeXKWVpaGmrXro3U1FSV1svj8WBnZ4enT58qNdiEkOoiMzMT9+/fV0j2wsPDkZOTAz6fj0aNGsHd3R0eHh7w8PCAq6srdHR0Cq1v+vTp+Oeff3Do0CF4enrme31lmC9OvbklXw9YVTa0+RouxvVUWmdFKEm+Rgmgmj179gwODsp3qVlbW8Pc3Bzm5ubo06cPxo8fjx9++AG//vprkfv5+/vD29u7rOESNcnMzETXrl1x48aNfJMSlwSfz4euri6uXbtW5CTGjDHUrVsX7969K/D18NPr0fjB16WOo0gcHxj/BtCtmL++N2zYUGQremn5+fmhR48eKq+XkMoiIyMDYWFh8i5cWbInFovB5/PRuHFjeaLn4eEBFxcXaGtrl+gYst4MDQ2NAl9Py8nEqMvLEZ+VopIkkAOHIXYdMLXRZ2WuSx1Kkq9RF7CalfS5v7dv3+Lt27cAgNOnTwMAli1bhl27dhU54Wxpni8klccPP/wg78ovC4lEgtTUVPTt2xfh4eGF3owjIyPh6OiYLwHk8/k4deoUGnftCsRsAeIe5S7fpiocH3AcWmHJHwBMmjQJvr6+uH79epmSaxk+n4/Ro0dT8keqlfT0dHmyJ/t58OABJBIJBAIBmjRpAg8PD4wfPx7u7u5wcXGBllbZp2opLPGT0dHQxPLmX2Jq4B/IlojLlATywMHFxA5fOfYsdR1VCbUAqtm7d+9gbW1d6v19fHywY8cOtGzZsshnmQIDA9GqVatSH4eoz9WrV9GhQ4dCX/f29saoUaPQpk0bWFtbIzExEcHBwVi8eDHu3r1b4D48Hg/ffPMNfvvtN/m2pKQkHDlyBHv27MGlS5fkA0lk+Hw+jh49ij59+uRuiLkD/NNChRM2c7lTxXzxGNAufGBTeYiJiUHr1q3x9u3bMv2xxOfz0bx5c1y4cKHIbi1CKrP09HTcu3dPIdmTLYmooaEBZ2dnhW5cZ2dnaGqW76j94jxIeI2Zt7YgQ5KtMCikJJqZOuCXZmOhVdqZDioB6gKuQhhjMDAwQEpKSvGFC7Br1y6MHDkStWvXLrQFkOM4JCUlQU9PryyhEjVp3rw5QkJCCm2d8vX1hYmJCQ4ePIiHDx/CzMwMM2fORLNmzdCtWzdcunSpwP04jsOzZ8/w4MED7NmzB8ePH0d2drY8oRwwYAA8PT0RGhoKjuOwb98+DB06VLGSwCXAjfmqO9m+R4AG/VVXXwlERUWhc+fO+UYdloS3tzf+/fdfutZIlZGamipP9mTduI8ePYJUKoVQKISzs7NCN26TJk0gElXOBOljZhJWhPriZuwj8DgOUiWuYz7HAwcOE5x6YXC9DuBXwOCz8kQJYBXTqVMnXLp0qcgvnS1btiA5ORm3b99GTEwMTE1NMXjwYAwbNgwrV67EDz/8UOi+dnZ2ePHiRXmETsrZnTt30KxZsyLLmJmZITY2VmGbjo4Onj9/jvDw8EKnf+HxeBAKhcjMzISbmxtGjhyJ4cOHw8rKSl5m/fr1mDZtGnbs2FHwiFbGcpd2C91U4nP7DweA5U4S7Ta5DPWUXWZmJhYtWoQVK1aAz+cr1RrI5/MhEAiwYsUKfP311zTavorIlogR+OEhwhNe4XHSW8RmJELKGPQ0tOBoaI2GBtZoV7sJjEXVJ5lPSUnJ17L3+PFjMMYgEong4uIiT/Tc3d3RpEkTCIVCdYddIowxXI95gIMRV3E37hkAQMDxIf7/oyo8cOA4DhImhSZfiF7WLTC4XgdY6RQ/O0JVQAlgFbNx40ZMnTq1yATQx8cHY8eOhZOTEwwNDZGamorQ0FD89ddf+Oeffwrdj8/n4/vvv8cvv/xSHqGTcjZ9+nRs2LChVN2SFy9ehJWVFRo2bFhoGV1dXQQGBhY6IEQqleLly5eoX79+4QdiDLi9Arj+/1G7rASxcvzcOf+6bgUaDi2+fAV58OABNmzYgJ07dyIjIwM8Hg98Ph+MMXAcB7FYDMYYDA0NMWHCBEyaNAk2NtV70tjqIjUnA/+88Me/r28gJScDfI4HSZ4uQ9k2PseDl4UrxjTognp6xa8cU5kkJycjJCREIdl7+vSpPNlzdXVVaNlr3Lhxsc/bVTWRaXEIS4jA06S3iEpPgFgqhrZAE/X0asPRoA5cTeyhXYW7ewtCCWAVk5ycjNq1ayMjI6P4wiXEcRwiIiLoy6mKatGiBYKCClg5oxj6+vp4/fo1/P39MXDgwCLLRkdHo1YtFUy6HBsGnP0yd1UPTlB0IsjxcweP2PcFOm+q0EEfJZGamorg4GDcuXMHgYGB0NPTg7a2tnzeMnd390rbHUbyu/nhEX65tx9J2alKDxaQdQl+4dAdI+y9K+XasElJSfLuW9l/nz59CgDQ1NSEm5ubQrInWwWHVD+UAFZB8+bNwy+//FLqZ48KwufzMXLkSOzatUtldZKKI5VKoa2tjaysrBLv+/fff2Po0KFo1apVoQNBZFQ6XQljQPRtIHQz8Po8kPo+TwEOMLQH7PsALhMB41KuKlLBAgIC4OXlhVmzZmHVqlXqDoeUwt4X/tj06CQ4cGClHCnawswRPzcbC02++rpFExMT5Ume7Of58+cAAG1tbYVkz93dHU5OThAIaMKPmoISwCooKysLrq6ueP78uUqmouDxeDAxMcGTJ09gZGSkgghJRUtNTS3VYILFixfjp59+wtSpU7Fhw4Ziy+/evRuff/55aUIsXkYckPgCkGTnrgNs5AAIdcvnWOWEMYamTZsiNDQUderUwZs3b2hy5yrG92UA1j/8t8z18MChmZkDVjQfVyEtgfHx8fmSvZcvXwLIfc43b8tew4YN5ctCkpqJ5gGsgkQiEQ4cOIC2bdsiIyOjTPO9yZaL27dvHyV/VVhpWoPnz5+Pn376CXPmzFEq+QNQ5rkFi6RlkvtThe3fvx+hoaEAcqdtunTpEjp27KjmqIiyHiW+wR8Pj6ukLikYbsc+wd4XlzC6QWeV1CkTFxen0IV7584dREREAMh9Vrdp06bo27evPNlzcHCgZI+UCSWAlYirqyvOnTuHbt26ITMzs1QP/vP5fHAch8OHD6NTp07lECWpKNra2hAKhcjOzlaq/Pz587Fo0SIsWLAAy5YtU/o4JiZVO0ErT+np6fK1Rxlj4PP5WLNmDSWAVUS2RIylIXvBgYMmXwgfhy6or28FB30rGIp0sf3pWex4ejbffg76Vpjk1AeNjGwgYVLc/fgMGx4dR1R6PABg+9MzaFerMez0LUoV18ePHxVa9e7cuYPXr18DAPT09ODu7o7+/fvLu3EdHBxodDlROUoAK5k2bdogODgYn3/+eYkf/ufxeLC3t8eePXvQvHnzcoqQVBQ+n48mTZoU+wwfkPsM6aJFi7BkyRIsXry4RMdxd3cvbYjV3sqVK/Hhwwd5a6xEIsHJkycRERGBevWq3jqhNY1/1D28SfsAADAQaqNP3dZ4kRyJqzHh6FO34Inx6+qYY13rKXiW/B4L7u6GkCfAlw7dsaHN1/jiymokZqcBAHY9P49F7qOLjeHDhw/5kj3Zak76+vpwd3fHoEGD5C179evXp2SPVAhKACshR0dHbN26FT///DNu3LiB9+/fQ0NDQ2FVBhmBQACxWAwTExN88803+O6779Q+IztRnTZt2iAsLKzI1uBvv/0WS5YswenTp3Hq1Cm0bNlS4fVbt24Vuq+5uTksLSvnCFx1S0tLw/Lly+VTv8iSQMYYNmzYgNWrV6s5QlKcwxFXwQMHKRiiMxLQ8+xcAICBhk6hCeCXjt2RIxXjh6C/kC7OHYD1JOkd9nn/iGF23tj8+CQkTIqAqDDEZ6UozBMYHR2d75k92XKKhoaGcHd3x7Bhw+TJnp2dHSV7RG0oAayEfH19MXLkSDDGkJWVhTNnzuDs2bO4desWHj16hOzsbGhoaKB+/fpo2bIlOnbsiH79+lW5CTtJ8UaOHIk//vijyDKypdl69OhR4GjewgYs8Pl8jBkzBomJicjIyMj3U7du3Ro9fZBIJMKiRYsQERGBoKAghISEoFmzZkhISICBgYG6wyPFiMlIwOOktyXah8/x0KZWI5x5FyxP/mR1hXx8jg61m2Dz45MAACmTYsP5vZDeiZYne5GRkQAAIyMjeHh4YOTIkfIl0+zs7GjwEKlUKAGsRFJTU/H1119j586dAHKfAePz+ejVqxd69eql3uCIWrRs2RLOzs548OBBoYM1vL29S1W3VCrF1atXCx0o1KhRIzx48KBUdVcHAoFAvsLO0qVL8e7duyLX2yaVy+PEkiV/AGCpbQJNvhAvkiPzvfYiJQrNzBwg5AmQLRWDSRl2XziE+H/uwsPDA6NHj5a37Nna2lKyRyo9SgArieDgYAwZMkT+IDAAWkyegOM4/Prrr+jatatK6+XxePjqq6/QrVs3DBw4MN+IY47jMGjQIJUesypLSkqiVr8q5nlyZIGrfBTFQJh7z03JSc/3WnJ2OngcD3oaWojLSgF4HFr09caeteco2SNVEj18UAn4+/ujVatWeP36tUIrD83UTgCgS5cuGDdunMqmfODz+bCwsMCqVavQv39/bN26NV8ZjuPQubNqp7moyigBrHpSczLAoXSJWVEzMH36UibElPyRKosSwErA0tIS9vb2+br4KAEkMr///juaNm1a5iSQz+dDJBLh2LFj8kmmv/zyS0yePFn+Rcbj8aCpqYkOHTqgd+/euHz5skpXqKmKKAGsekqTmCX9f4SvvlA732v6Qm1ImRSpOf8t2SlbJo6Qqog+vZVAw4YN8fDhQ8yYMUNhOyWAREZXVxfnz59H8+bNS93iIBAIoKOjg4sXL6JZs2YKr61ZswZt27YFkDvK9datW9i5cydev34Nb29vtGjRAgcOHCjV3JTVASWAldOcOXPQsmVLzJw5E4cOHcL79/8tPWgi0oe0BN2/ABCZHodMSTbs9fLP72enZ4H3aR+RLf3vGjDVpJWxSNVFCWAlwXEcLl68iHbt2uGPP/6AqakpTc9BFBgaGiIgIADz588Hn89Xen1PWathp06d8ODBA7RqlX/6Cw0NDRw5cgR16tTBwIED0aRJE4wZMwZhYWE4ffo0DAwMMGzYMDRo0ADr1q1DamqqSs+tsqMEsHJ6/fo1bt++jXXr1mHw4MGoU6cOTE1N0bRpU7wJegRpCdf8lTAprsc8QAcLF2jxRfLt5pqGaGpSHwHR9+Xb+BwPToY1d5Q8qfooAawkfH19ERYWhuXLl2PKlCl49+4d/Pz81B0WqWSEQiEWLlyIe/fuYdSoUfKpf/Img5/+u3Xr1jh06BBOnz6NOnXqFFq3mZkZnjx5gn/++Ue+jeM4dO/eHRcuXMCdO3fQpk0bfPvtt6hbty7mzp2L6OhoFZ9h5UQJYOXk6ekJAAot03Fxcbh37x7unLoCXp7W8pZmDeFl4YK2tRoBAGx1a8HLwgVeFi4Q8XJ7XLY/OQtNvgZWthiHlmYN0b62M1a2+ApJOWk48PKyvC4Jk6KxESWApOrimBIP95RkcWFScjk5OWjUqBEcHR1x8uRJdYdDqpD4+Hh5chYeHo6UlBSIRCLY2dnBw8MDHTp0QMOGDVV6zNevX2Pt2rXYunUrsrOz8fnnn2PmzJlwcnJS6XEqEysrK3z11VdYuHChukOp0SQSCUJDQ3H58mVcvnwZly5dKrA1evHixZg3bx5+urML12LC5SOBfTvOg4W2cYF1D764BNEZCQAAB4M6mNSwNxrLloKLe44ND48jMj1OXl5HoIl/uyyCiE+P6pDKoyT5GiWAlcDWrVsxfvx43Lt3D66uruoOhxClJCQkYMuWLVi3bh2ioqLQp08fzJo1C+3bt692IyN1dHSwdOnSfM/pkvKVN+G7cuUKkpKSoKmpibZt26JDhw5Ys2YNEhISwOPxwOfzsWfPHgwZMgQAEPLxOabd3KjyuHgchyH1PDGlUV+V101IWZQkX6MuYDXLyMjAokWLMGzYMEr+SJViZGSE2bNnIyIiAtu3b8eLFy/g6emJVq1a4eDBg5BIJOoOUSVycnKQnp4OQ0NDdYdS7UkkEty5cwe//vor+vTpAxMTE3h4eGDu3LlIT0/HrFmzcPXqVSQmJuLChQuYP3++fPUbAwMDBAQEyJM/AHAzsUf7Wk3AU+FoXQ4c9DS08Xn9TiqrkxB1oImg1WzTpk2Ijo7G4sWL1R0KIaUiEokwduxY+Pj44PTp01i9ejWGDBkCOzs7zJgxA2PHjq3Sk5onJycDAD0DWA4kEgnu3bun0MKXnJwMLS0ttGnTBrNmzYKXlxeaN28OkUhUYB0+Pj6IjIzEtm3bYGdnp/Aax3GY5TIYIZeWIV2cVeJBIQVhYJjtMhT6wqr7mSYEoC5gtUpOToadnR0GDBiAP//8U93hEKIywcHB+PXXX+Hr6wtDQ0NMnjwZU6dORa1atdQdWom9fPkS9vb2uHDhAjp1olafshCLxfKELyAgQCHha9u2LTw9PYtN+EojLP4lpt/cDIlUUuYkcJxjD4xp0EVFkRGiWvQMYBWxaNEiLFu2DM+fPy9ydCYhVdWrV6+wZs0a/PXXXxCLxRgzZgy+/fZbODo6qjs0pYWEhMDd3R1BQUH55k8kRfs04bt8+TKuXr2qkPB5eXnJEz7ZiPbyEhb/Et/f/gsZkuwSzw/I4zgwBkxo2Asj63cspwgJKTtKAKuAjx8/ws7ODl999RV+/fVXdYdDSLmKj4+XDxiJiYlB3759MWvWLLRt27bSDxi5fPkyvL298fTpUzRo0EDd4VRqlSnhK0hcZjJW3T+I6zEPlFonmAMHBgYrbRPMazoSTYxsKyZQQkqJEsAqYNasWdiyZQsiIiJgamqq7nAIqRBZWVnYs2cPVq9ejcePH6NVq1aYNWsW+vXrp7K1jlXt33//Rb9+/RATEwNzc3N1h1OpiMVihISEyLt0ZQmftra2QsLXrFkztSR8BWGM4W7ccxx5dQ3XosMhBQOP48D7/5hIBiZPDBvoW2FgvfbobNmUpnshVQIlgJXcu3fvUL9+fcyePZvmFSM1klQqhZ+fH1avXo2AgADY29vj22+/hY+PD7S186/Dqk67d+/GmDFjkJmZqdLn0qqiTxM+WQtfSkpKpU74ipKcnYbHSe/wJOkt4jNTIGVS6GhooYG+JRwNrWGpbaLuEAkpEUoAK7kJEybg8OHDePnyJf0+SY0XFBSE1atX49ChQzA2NsaUKVMwZcoUmJmZqTs0AMD69evx3XffITMzU92hVLjqlvARUt2VJF+jaWAq2PPnz7Ft2zasWLGCkj9CADRv3hwHDhzAy5cvsWbNGqxatQorVqyAj48Pvv32W7U/d5eYmFhjpoARi8W4e/euQpeuLOFr164dfvzxR3h5ecHDw4MSPkKqOGoBrGAjRozAlStX8OzZM2hpaak7HEIqnbi4OGzevBnr1q1DbGws+vXrh++++w6tW7dWSzyzZs3C8ePH8fTpU7Ucvzx9mvBdvnwZ165dU0j4ZC18lPARUjVQC2AlFRoain379mHLli2U/BFSCBMTE8ydOxczZ86UDxhp06YN2rRpg++++w59+vSp0AEjSUlJ1WYVkLwJ39WrV5Gampqvha9Zs2bQ0KBBD4RUZ9QCWIH69OmDx48f4+HDh3RzJURJUqkUJ0+exOrVq3H16lU0aNAAM2fOxOjRo8v1D6nU1FS8f/8e06ZNQ1paGq5cuQIer2qtnikWi3Hnzh2FFr7U1FTo6Ojka+GjexIhVR8NAqmEbty4gbZt22Lv3r0YPny4usMhpEq6desWVq9ejSNHjsDExARTp07F5MmTVTKVEmMMQUFB2Lp1Ky5duoSXL1/i09ujrq4u3N3dMXDgQIwePbpStgrm5OTk69KlhI+QmoMSwEqGMQZvb28kJCQgJCSkyrUiEFLZvHjxAr///ju2b98OABg7diy+/fZb2Nvbl6q+oKAgTJgwASEhIRAIBBCLxQWWk01aLRKJ8M0332DBggVqfZyDEj5CyKcoAaxkzp07h27duuHEiRPo3bu3usMhpNr4+PEjNm7ciD/++AMfP37EgAED8N1336Fly5ZK7S+RSDB//nwsW7YMPB4PEolE6WPzeDzUq1cPBw4cgIeHR2lPoURycnLydemmpaVBR0cH7du3lyd87u7ulPARUgNRAliJMMbkyx5dv3690i97RUhVlJGRgd27d+PXX3/Fs2fP0L59e8yaNQu9e/cutMVdLBZj1KhR8PX1hRK3wQLx+XwIhUKcPn0anp6eZTmFAhWW8Onq6iq08FHCRwgBKAGsVA4fPoxBgwbh8uXL5fIFQQj5j1QqxfHjx7F69Wpcv34djo6OmDlzJj7//HNoamoqlJ00aRK2bNlS6uRPhsfjQSQSISgoCI0bNy5TXZTwEULKghLASkIikaBJkyaoW7cuzp49q+5wCKlRAgMDsXr1ahw9ehRmZmb4+uuvMWnSJJiYmMDPzw+9evUqdF9dXV389NNPcHNzQ9OmTWFmZoaFCxdi0aJFBZYXCARwdnbG7du3IRAoP7tWTk4OgoOD5Qnf9evX5Qlf3i7dktRLCKmZKAGsJHbu3ImxY8ciODi4wp4RIoQoevbsGX777Tfs3LkTPB4Po0ePxqFDhxAfHw+pVFrgPjY2Nrh37x5CQ0Px9OlTfPXVV0UmgEDuAJGVK1di1qxZhZahhI8QUp4oAawEsrKy4OjoiGbNmuHQoUPqDoeQGi82NhYbN27E6tWrkZqaqvR+JiYm+PjxY7EJIADUqlUL7969kydveRO+a9euIT09nRI+Qki5oJVAKoE///wTb9++xenTp9UdCiEEgJmZGRYsWIBjx44hNDS0zM/+FSQmJgarVq0CY0zewpeeng49PT20b98eCxcuhJeXF5o2bUoJHyFEregOVA7S0tKwdOlSjB49Gk5OTuoOhxDyfwkJCbh371651c9xHObMmUMJHyGk0qM7UjlYu3YtEhISsGDBAnWHQtRMHBMH8fsYQCwBp6sNob01OJFQ3WHVWHfu3CnX+hljcHR0RHh4OCV8hJBKje5QKpaQkICVK1di4sSJsLW1VXc4pIIxqRQZV+8iefe/yLhxD9KPiYoF+HwIHWyg09cL+qP6QFC77EuYEeU9efIEHMeVS/evzNu3byn5I4RUenSXUrGVK1ciJycHc+fOVXcopIJlXA/BhxkrII54D/D5QEGrSkgkyH70EtlPXiFh9U7ojewN04WTwdPTqfiAa6CMjIwSr/hRUllZWeVWNyGEqAotSqtC0dHRWLt2LaZPn45atWqpOxxSQViOGLE/rkFkv2kQv47K3VhcgiGVAhIpUvacxJvWI5Fx4165x0ly1/AtbOoXVaEJmgkhVQElgCq0dOlSiESiIucBI9ULy85B9OgfkbztSO6GkiYXUikksfGIHDQDaecDVR8gUVC/fv1y7f4FAHt7+3KtnxBCVIG6gFUkIiICf/75JxYvXgwjIyN1h0MqyIfpy5F+8RZQlqRCygAmQfSYOahzejNEro6qC5AoKMmE7N27d4eOjg709PQAAI0aNcLAgQMBAH5+fsjIyMi3j0AgQKtWrVQTLCGElCOaCFpFfHx8cObMGbx48QI6OvQ8V02QejIAMWPnFfia2fo50B/Wo9B933WfgKw7DxU38nnQqFcH1pd30EjhctSoUSM8fvy42JbAiIiIQgdy2dra4vXr1wW+9s8//2DEiBFlDZMQQkqMVgKpYA8fPoSzszPWrVuHKVOmqDscUgGkaRl43XQQpIkpBbb+CWwtwTcxzLfdYs8KsOxsvG46uODuYo6D0Q9fwHimj+qDJgCAjRs3YurUqeXSFWxkZISoqCiIRCKV100IIcUpSb5GzwCqwE8//YS6deviq6++UncopIKkHjkPaUJyoV2/4leRyLrzUOGHEwnBNzVE8j6/wp8VZAxJWw6CZeeUY/Q126hRo2BgYACO41RaL4/Hw9dff03JHyGkSqAEsIyCgoJw5MgRLFq0CEIhddvVFElbDwMlTCD0R/QCk0qRstevyHLShGSknbpSlvBIEfT19bFx40aVtgDy+XzY2dnhxx9/VFmdhBBSnmgQSBnNnTsXjRo1wsiRI9UdCqkgkvgkZD96WaJ9eHo60OnjhYwrdyB+E1V0YQEf6VeCodu/UxmiJDKMMbx8+RIhISG4e/cu/Pz88Pz5c/Tu3Rt+fn5lnhaG4zhwHIc9e/ZAU1NTRVETQkj5ogSwDC5duoTz58/jyJEj4PP56g6HVJCssKcl3kd3QGfwtDWR8s+p4guLJfkHiJASi4qKwsiRI3H79m2kpaUByO2mlUqlEIlE2LNnD/r374+AgIBSJ4E8Hg88Hg8HDx5Ey5YtVRk+IYSUK+oCLiXGGObMmYPmzZujX79+6g6HVKCcF29L3P2rN7IXJHGJSPVTrms35+W70oRGPsEYw82bN+XJHwB5ordixQoYGBjAz88PY8aMAZCbzJUEn8+HsbExTp8+TfcAQkiVQwlgKZ04cQI3b97EL7/8ovKHyUnlxrKzAZ7y77mwkT00mzoh5dA5QMnBHSxHXNrwyP9ZWlpi586d+bYbGxtj/PjxAABNTU1s374dfn5+sLS0BIBiW/P5fD44jsPIkSPx5MkTdO7cWeWxE0JIeaMEsBSkUinmzp0Lb29vdOpEz2nVNJxQmDt5s5L0RvYCAKTsOVmCY9DTGWUllUrx5MkThW0cx2H27NnQ0tJS2N6jRw+8evUKx48fR/fu3eWTP+fdt379+vj+++8RERGBXbt2wdjYuFzPgRBCygt9y5TCvn37EB4ejsDAQGr9q4E06tdVfuUPoQb0BnVF5p2HyH4cofwx7KxLGR0BgLi4OIwaNQpnz57FvHnzcObMGQQHB0NfXx+TJk0qcB8+n48+ffqgT58+YIzh1atXePPmDcRiMfT09NCoUSPo6upW8JkQQkj5oASwhHJycjB//nz07duXlnyqoUQuDkqX1enZHnxjA8Qt2aL8AQR8iDwalSIyAgC3bt3C4MGDkZ6ejtOnT6Nbt24YP348WrZsie+//16pJI7jONSrVw/16tWrgIgJIaTiUQJYQtu2bUNERASOHTum7lCImvCN9CFsXB/Zj14U2xWsP6IXpGnpSD16QfkDiCXQ7tCsjFHWPIwxbNiwAd9++y08PDzg6+sLa+vcllRra2u8efMGAgHd8gghBKBnAEskIyMDixcvxogRI+Ds7KzucIgaGYwbqNRzgFFDZiLCthtYWobSdfOMDaDTs31ZwqtxUlJSMGLECHz99deYPHkyAgIC5MmfDCV/hBDyH0oAS+CPP/5AbGwsFi1apO5QiJrpDugMnolBiUYDK4XjYDhxCDihhmrrrcYePHiAFi1a4OTJk/D19cWaNWtoVR5CCCkGJYBKSkpKwvLlyzFu3DjY29urOxyiZjxtTZivmV2i0cDF4vOg4WADwynDVVdnNbdnzx60aNECAoEAwcHBGDx4sLpDIoSQKoESQCX9+uuvSE9Px08//aTuUEglodO9HfRG9CzxpNAF4nEAn49am+ZT658SMjMzMXHiRHz++ecYNGgQbt26BUdHR3WHRQghVQYlgEr48OEDfvvtN3z99dfyyWJJzZWamoqjR4+iS5cuaLJnNTS7tCpbEsjjAXw+LPYsh8i5geoCraYiIiLQrl077Ny5E3/++Sd27twJbW1tdYdFCCFVCj0VrYRly5aBz+fjhx9+UHcoRMUkHxMgSUwBOIBvagS+Qf4JgAHg/fv3OHHiBI4dOwZ/f3/k5OSu6CEUClFr+xIk/rwVSZsP5CZzkhKsK8vjgW9hitp/LoRmCxpYVJwTJ05g9OjRMDIywo0bN+Du7q7ukAghpEqiBLAYb968wcaNGzFv3jyYmJioOxxSRiw7B2mnriDl8Hlk3nkA6cdEhdf5VubQbOkC/aHdoeXVHByPh6ioKNSrVw9isRgcx8nXk+U4DlOnToVAJILp4qnQ6dkBsTNXIufpa0DAB8SSwgPhcQCPB32ffjCZOx48XWrBKopYLMZPP/2E5cuXo2/fvti5cyeMjIzUHRYhhFRZHGPFL2mQnJwMAwMDJCUlQV9fvyLiqjTGjRuH48eP48WLFwUuD0WqBsYYkncfR/wvWyGNT8ptqZMW0lLH5wMSCQTWtWG6bDq0urTG0KFDceTIEXnyJxMaGgoXFxeF42QGhiL57+PIuH4PkqhYxbqFGhA1sodOHy/oj+gJviklMcWJjo7G8OHDcfXqVSxbtgyzZs2iFXgIIaQAJcnXKAEswpMnT9C4cWOsXr0a06dPV3c4pJTE0R8RM3ExMq+HlGxHHgdIGXQHdYXBL9Pg2qoFnj59Kn+5UaNGePDgQZFVSOKTIH7/AUwsBk9XGxr1rMDRfHRKu3LlCoYOHQoAOHDgADp06KDmiAghpPIqSb5G30RFmD9/PiwtLTFx4kR1h0JKKedNFN73mQJJTHzJd/7/FC+pRy/gVUAgIp+9gI2NDd69ewfGGMaOHVtsFXxjA/CNDUp+7BqOMYZVq1Zhzpw5aN++Pfbt24fatWurOyxCCKk2aBRwIUJCQuDr64sFCxZAU1NT3eGQUpAkpSCy37Tc5E9SxPN4xVYkhVFsMi669kZYyD24ubkBAEaMGKGaQImChIQE9OvXDz/88AO+//57nD9/npI/QghRMWoBLMTcuXPh4OCAMWPGqDsUUkof562HOPJDoaNyhc4NYDxrLETuTuDp60L8Pgaphy8gceM+sIwshbJ8cDB5FwfJnlO4dOkSnj9/TlMClYO7d+9i0KBBSEhIwIkTJ9C7d291h0QIIdVSjUsAGWN48+YNwsLCkJSUBD6fDysrKzRt2lQ+yOPq1as4ffo0Dhw4QOuHVlHpV4KRuv90oa9rONjC6tQm5Lx4g4/z1kEalwTN1q4wmjUGIlcHRI+eU+B+8cv+Qt3eXmjatGl5hV4jMcawdetWTJs2DU2aNMHFixdRr149dYdFCCHVVo3JbkJDQ7Fp0yYcOHAAiYmJ+V7nOA5OTk4YP3489u/fDzc3NwwaNKjiAyUqkbh+L8AvfE4+vYGdwdMSIXrsPIhfRQIAMq7dBb+WCQzGfAaegS6kSan5d5QyJG0/AtMlX5dn+DVKWloaJk2ahL///huTJk3C77//DpFIpO6wCCGkWqv2CWBUVBQmTpyI48ePQyAQQCwWF1iOMYZHjx5hxowZYIzRwI8qLOdVJDIuBxVZhuXkfg6kyWkK26VJqWASifz1fCQSJO85CeM548HToiSlrJ48eYJBgwbh5cuX2LNnD0aOHKnukAghpEao1oNATpw4gYYNG+LUqVMAUGjyJ8MYg2xWnM2bN8PT0xOxsbFF7kMqn/SAIKCYaeJSDpyBJDEFZqtmQmBjAU5HC9pd2kB/TF8kbT8Klp5Z6L4sNR1Zdx+qOOqa5+DBg2jWrBnEYjGCgoIo+SOEkApUbRNAX19f9OvXDykpKZCUcgRoYGAg2rZtiw8fPqg4OlKesu49zp3MuQjit9F432MihA3rwSbYF3avzsFi7wqkHDiDuDlriz4Aj0NW2BMVRlyzZGdn45tvvsGQIUPQq1cv3L59G40aNVJ3WIQQUqNUyy7gmzdvYsSIEQoteqUhkUjw8uVL9OjRA7du3aIBIVVE9pNXRS/DBkBgXRu1/1kOSWwCosfOgyQuEZrujWD47WjwdLQQO31F4TvzeMh++lq1QdcQb9++xZAhQ3Dnzh388ccfmDx5Mq3qQQghalDtWgAzMjIwatQoAFAq+fvyyy/BGENKSkqBr0skEoSEhGDVqlUqjZOUn6K6b2WMf5oInq4OoobMRNrJAGQGhiJxwz7EzVsP/ZG9odnGrYgDMLCsbNUFXEOcPXsWTZs2RWRkJK5du4YpU6ZQ8kcIIWpS7RLA1atXIyIiQqluX0tLS6xevRrv378vshxjDPPnz8ebN29UFSYpR5xIo9gyoib1kfP0Vb5kMSvkEQBA2LCIKUg4DpxG8ccguSQSCRYuXIgePXqgRYsWuHv3Llq0aKHusAghpEarVglgTk4O1q1bB6m04Kk/8tq8eTOuXLmC8+fPF1uWMYY///yzrCGSCqBR3wYQFP0MoCT6I4SO9cDpaClsFzVrAgAQRxYx+IcxaNjVKXOcNUFsbCx69OiBxYsXY/HixTh58iRMTEzUHRYhhNR41SoBPHHiBD5+/KhU2ZEjR8LT0xOTJ09WqrxEIsGmTZtKPaCEVByRqyNQzB8BiVsOgmdiAMuDv0HnM29otXOH4fTPYbpkKrIfRyD94s3Cd5ZIc49BinTjxg00bdoU9+7dw7lz5zBv3jzweNXqlkMIIVVWtbobBwQEQEOJrjkzMzOsWbMGs2fPLrb791Px8fF48oRGf1Z2Wu3dAWnRz3+mn72OyAHTIU1Nh+nP36D2PyugN7Q7knf9i/d9pwKFzQMIAEINaHrQqNXCMMawZs0aeHp6wtbWFiEhIejcubO6wyKEEPKJajWs9fbt28jJySm23MaNG/HkyRNs2rSpxMcIDg6mKSsqOZGTHUQejZAV8rjIlsDM6yGIuh5SssoFfOgN6Qaenk4Zo6yekpOT8eWXX+LQoUOYOXMmli1bptQfZYQQQipWtUoAnz9/XmyZAQMGoE+fPqVay1UgECAiIqI0oZEKZjhlOGK++En1FUukWPrkJg5aWKBevXrQ1dWFpqYmhEIhhEIhunfvjtGjR6v+uFXA/fv3MXDgQMTExODw4cMYMGCAukMihBBSiGqVABa30oeOjg42bNiA9evXIzIyEgYGBgAAoVAIADAwMEBOTg7S09ML3J/jOKVaGIn66fT2hHaX1kj3vw2o6rlNjoPhlGGIeRiA6OhoREdHf/ISB8YYpFJpjUwAd+3ahUmTJsHBwQF37txB/fr11R0SIYSQIlSrZwC1tbWLfN3U1BS1a9fGrFmzkJiYKP8ZMWIEdHV1kZiYiH/++afQ/RljxR6DVA4cx8Hst+/B09MG+Cr4mPP50KhfF0Y/fIk9e/bAzc1NYQ47xhg4jsO8efPKfqwqJDMzE1999RV8fHwwfPhwBAYGUvJHCCFVQLVqAXRxcUFUVFShE0BHR0fDy8sr3/bZs2fD09MTPXr0KHIUsVgsRuPGjVUVLilngtqmsDy8Bu/7fZ07359EuemB8uHzIbA0g+Xh38HTFIEH4NChQ3B2dkZGRoa8mKamJm7evImGDRvWiFVjXrx4gcGDB+PRo0fYtm0bvvjiC3WHRAghREnVqgWwefPm4BexBmxWVhYCAgLy/URHR0MikSAgIAAPHjwo8hgeHh6qDpuUI5GLA+r4bYaGrRVQylUnNJs3htXpzRBYmMm32dvbKwwi4vP56NSpE7766is0adIEhw4dKtMyhJXdsWPH4OHhgZSUFNy8eZOSP0IIqWKqVQLYq1evYp8DLC2O49C4cWNYWVmVS/2k/Agb1oN1wE4YThsJaAgAXjGJ4P9f53S0YLp8Biz/XQ9BrfyTF48ePRqDBw8GAEyaNAknTpzA3bt3Ua9ePQwePBjNmzfHuXPnqlUimJOTg++++w79+/dHp06dEBwcDFdXV3WHRQghpIQ4psS3U3JyMgwMDJCUlAR9ff2KiKtUGGNwc3PD/fv3Vf6ly3EcNm/ejPHjx6u0XlKxJHGJSN7nh5QDZ5Dz7HX+bmENAUQuDtAf2Ru6AzqDl2elkLwSExOxYsUKzJo1S2GFi4CAAPz4448IDAyEt7c3li1bhpYtW5bHKVWYyMhIDBs2DDdu3MDKlSsxY8YMWsuXEEIqkZLka9UqAQSAgwcPYsiQISqtk8fjwczMDM+fP4eurq5K6ybqI83MQvbjCEgTUwCOA9/UEEIHW3Aaqnl+jzGGEydOYO7cuQgPD0e/fv2wdOnSKvkc6aVLlzBs2DAIBAIcOHAA7dq1U3dIhBBC8ihJvlatuoABYNCgQejbt2+RzwKWlFQqxZgxY3D48GFEREQovdYwqdx4miJoujWEtldzaHs2g6hxfZUlf0Buq3Hfvn1x79497N69G/fu3YOLiwt8fHzw+vVrlR2nPEmlUvzyyy/o3LkznJ2dERISQskfIYRUA9WuBRAAYmJi0LRpU3z48KHMa/dyHIfJkydj7969SEhIAACIRCI0aNAArq6ucHJywqhRo2BjY6OK0Ek1lp2djT///BNLlixBYmIiJk6ciLlz58Lc3FzdoRUoPj4eo0ePxqlTpzBv3jwsXLhQpX9YEUIIUa0a3QUs8/TpU3h6euLjx49lGhgyevRobN++Hbt378430pHH40EqlWLevHlYsmRJWUMmNURqairWrl2LlStXQiKRYObMmZg5c2aZry1pZhYyg8KRFfoE2Y8iwNIyAAEfGta1IHJxhGZLZwgslUs2g4ODMWjQIKSkpGDPnj3o0aNHmWIjhBBS/igB/L93795h9OjRuHTpUon24/P54DgOS5cuxXfffSdP9FxcXPDw4UP5ABMejwcLCwuEh4fD0NCwHM6AVGdxcXFYsWIF1q9fDx0dHcyZMweTJ0+GpqZmieoRv49B0l+Hkbz7BKTJqQCPlzvljVQKcMj9t1gCcIB2x5YwGD8YWt4tChzAwRjD5s2bMX36dLi5ucHX15datwkhpIqo0c8AfqpOnTq4ePEi/vzzT1haWgJAkRP0yl7z9vZGaGgofvjhB/B4ub8iHo+HFStWKIwulkql6Nu3b5VKiknlYWJigpUrV+L58+cYOHAgvv/+ezRo0ADbtm1TqtWaMYakXf/iTeuRSNx0IDf5A3ITP4kEYAyQstzkDwAYkH45CFFDZyFm7DyIYxMU6ktNTcWoUaMwefJkjB8/HleuXKHkjxBCqqlq3QL4KYlEAj8/Pxw8eBA3b97Eixcv5IM5tLW14e7ujnbt2uGLL75AgwYNCqyDMYbWrVsjKCgIjDG0adMG169fR+fOnbF7925YWFhU5CmRaubp06eYP38+Dhw4AEdHRyxduhQDBw4ssKVOmpmFmPELkX76WukOxueBp6cDi4O/QdOtIR49eoSBAwfizZs3+OuvvzBs2LAyng0hhJCKRl3ASsjKykJ6ejr4fD50dXXlLX3FCQgIgJeXF1q3bo0rV67g8uXLGD16NHJycrB9+3b06dOnnCMn1d3du3cxd+5cnDlzBs2aNcOyZcvQuXNn+essR4zoz2cj/dLt3Ba+0uLzwImEuD+lD0YungMbGxscOnQITk5OKjgLQgghFY26gJUgEolgZGQEfX19pZM/APD09MTBgwdx9OhRCAQCdO7cGaGhoWjdujX69u2Lr7/+WmF9WEJKyt3dHadPn8bly5ehoaGBLl26oFOnTrh9+zYAIH7ldqT7lzH5AwCJFNLMLJgu34Mhvfvi9u3blPwRQkgNUWNbAFWNMYaNGzdi5syZaNCgAfbv318lJ/wllUveyaS/7twb34QlFZr8iZo6wfjHcdBs3gTggKyQx4hf9hcyb98v/BgcB/3RfWC++rvyOg1CCCEVgFoA1YDjOEyZMkX+fGCzZs2wadOmarUOLKl4eSeT9gyLhqSQz5TIrSEsj68HpylEzOSl+DB5KTiREBaHf4eoWeF/jHCMIWXXcWS/eFtep0EIIaSSoQRQxZydnREUFIQvvvgCkydPRv/+/fHx40d1h0WqOD6fj6GtOsBNqgl+IX9TGP84DtLkVEQNnYX001eR5ncVkYO/BUvNgMmiKcUcgIfkXf+qPnBCCCGVEiWA5UBLSwsbNmzAsWPHcPXqVbi6usLf31/dYZEqLuXgOaCIlTg0Wzgj4/o9sIws+TaWloGMm/eg1cIZ/FomhVcukSJl7ylqsSaEkBqCEsBy9NlnnyEsLAwNGzZE586d8eOPPyInJ0fdYZEqKjP4ASAtfGlDTkMAZGfn286ycj9zQie7IuuXJqVC/CaqbEESQgipEigBLGdWVlY4d+4cfvnlF6xevRpt27bFixcv1B0WqYKy7j0Gimigy376CiKPxrmrgMjw+dB0b5T7v0bFD+DKCnta1jAJIYRUAZQAVgA+n4/Zs2fj+vXriIuLg5ubG/7++291h0WqECaVgqWkFVkm6a/DENavC9PlM8CvbQq+pTnMVs+CwLpWbh3Fde9ygCQuUUURE0IIqcwoAaxALVq0QEhICPr374/Ro0dj1KhRSE5OVndYpJpI2euHuMWboDekG2zvH4Vt6GEIHWyQuHE/AEASFVtMDVzZ5xYkhBBSJVACWMH09fWxe/du7NmzB8ePH4ebmxtu3ryp7rBIJcfxeOB0tIotl7h+LyIce+Nt+9F43XQQ3veaDJ6BHqRp6cgKfVL0zowp1U1MCCGk6qMEUE1GjhyJe/fuwdzcHO3atcPPP/8MiaTwB/wJEbk4KFcwOwfZjyMgfhcDgZU5dPt1RPLfJ8Ey8w8QyUuo7DEIIYRUaZQAqpGdnR2uXr2K2bNn46effkLnzp3x7t07dYdFKinNZo0BQeHTwAgb1oPRLB9od2kNrQ4eMJg0FHUubEPOy3eIX/5XsfVzutrQqGelypAJIYRUUpQAqpmGhgaWLl0Kf39/PHv2DC4uLjh69Ki6wyKVkO6ALoC48FZili2GVnsPmP8xFxZ7V0Lf5zMk7TqGyH7TwNKKWZ+az4fe4G7gSrAuNiGEkKqL1gKuROLi4jBu3DgcO3YMEyZMwG+//QZtbW11h0UqkXfdJyAr5DEglaq87jpXdkFUzFyBhBBCKi9aC7iKMjExwZEjR7B582bs3r0bzZo1Q2hoqLrDIpWIyfxJqk/++DzoDuxMyR8hhNQglABWMhzHYcKECQgODoaGhgZatGiBdevW0RJdBACg1cYNBuMGAqrqquXxwDPQg+myGaqpjxBCSJVACWAl1ahRI9y6dQsTJ07EN998g969e+PDhw/qDotUAsY/TYTI3Qngl/Hy5XEAn4faO3+m6V8IIaSGoQSwEtPU1MTatWtx8uRJBAUFwcXFBefOnVN3WETNeNqasPT9FZrNmygu+1YSfD44kRCWvr9Cq7WragMkhBBS6VECWAX06tULoaGhcHFxQbdu3TBr1ixkZxc/pxupvnh6OrA8shbGP3wJ8Pm5P0rtmJswajZrDOsru6HVzr0coySEEFJZ0SjgKkQqleL333/Hjz/+CGdnZ+zduxeOjo5K7RsaGoojR44gKCgId+/eRVpaGng8HiwtLdG6dWu0adMGQ4YMofe3Csp+EoHETQeQcvAckJ2TO1fgp9PFCPiARAowBpFbQxhMGAzdAZ1pyhdCCKlmSpKvUQJYBd25cwfDhw/H+/fvsX79eowdOxZcIV2BZ8+excKFC3Hz5k3w+XxIpdJ8A0oEAgEkEgk0NTUxduxYLFy4EGZmZhVxKkSFwgNv4fpvf2KQczNkPXwBaUoaOIEAGjaWELk1hGZLZ4ga11d3mIQQQsoJJYA1QGpqKr755hts374dQ4YMwZYtW2BoaCh/PSkpCTNmzMCOHTvA4/EgVXLqED6fD319fWzduhUDBw4sp+iJqiUkJMDe3h4JCQn4+PEjTExM1B0SIYSQCkbzANYAurq62LZtGw4cOICzZ8/C1dUV165dAwDExMSgdevW2L17NwAonfwBgEQiQWJiIgYNGoSff/65XGInqpWVlYU+ffogISEBABAUFKTmiAghhFR2lABWcUOGDEFoaCisra3h6emJ2bNnw9vbG8+ePYNEUviyYUWRNQrPmzcPv/32myrDJSomlUoxZswYBAYGAgB4PB5u3bql5qgIIYRUdpQAVgM2Nja4fPky5s+fjxUrVuDx48cQi8Uqqfu7777D3bt3VVIXUb25c+fiwIED8lZexhhu3ryp5qgIIYRUdpQAVhMCgQCtW7cGgEJXDfH09ARjrMCfli1bFrgPx3EYNWoUcnJyyi12UjqnT5/G8uXLFbYxxhAYGEgrxxBCCCkSJYDVyMKFC8FTYmqPH3/8Ea1atVL4CQ8PL7CsRCLBo0eP8O+//6o6XFJGjo6OGDx4sMLgH47jkJSUhIiICPUFRgghpNITqDsAohphYWHy58CK8+zZsxI9J8bn87F+/XoMGjSotOGRcmBnZwdfX1/ExsbC3Nwcw4cPR3JyMu7fv1+igT+EEEJqHkoAq4mjR4+Cz+eXeuBHUSQSCa5cuYL4+HgYGxurvH5SNleuXAEArFixAtbW1mqOhhBCSFVAXcDVxO3bt5Vu9dmwYQNycnKQlJSEM2fOoG3btkrtR4NBKqeLFy+iQYMGlPwRQghRGiWA1URISEixD/4nJSVhzZo1mDBhAry9vfHNN9/A2toaly9fRteuXYvcl8fj4f79+6oMmaiIv78/OnbsqO4wCCGEVCHUBVxNpKamFlvm3r17uHfvnvzf165dw9GjR3H//n2sXLkS586dK3RfPp+P5ORkVYRKVOj9+/d48uQJlixZou5QCCGEVCHUAlhN8Pn8Uu2XlJSEkydPwtXVFZqamoWWY4xBIKC/Fyobf39/AICXl5d6AyGEEFKl0Dd6NWFlZYXExMRS7ctxHIDC5w8EALFYDCsrK/m/ExISEBQUhNu3b+PWrVsYOHAgfHx8SnV8Unr+/v5wdXWFmZmZukMhhBBShVACWE20atUKT548KfEKIIaGhujduzdCQkKQlZVVZNkXL16gTZs2ePfuHd6+fQsA8pHHdnZ2lABWMMYYLl68SNPzEEIIKTFKAKuJtm3bYvv27UWW+eeff/DmzRsEBwfj48ePaNCgAWbOnIlatWoVm7zp6enh9OnTuHPnjsJ22bQznTp1KlP8pORevHiBt2/f0u+eEEJIidEzgNXE4MGDoaWlVWSZsLAwdOvWDX/99RcuXLiAn3/+GQ8fPkSbNm1w8eLFQvfj8/kYN24cbty4gaFDhxZYZu7cuZg1axb8/PyUGpBCys7f3x98Ph/t27dXdyiEEEKqGI4psWhocnIyDAwMkJSUBH19/YqIi5TCtGnTsHHjRpVPBs1xHB4/fgwHBwcwxrBo0SIsWrRI/rqNjQ08PT1x8eJFvH//HgKBAC1btkTHjh3RqVMntGrVCiKRSKUxEWDo0KF48+aN0ivAEEIIqd5Kkq9RC2A1smDBAhgYGMgHdagCj8fDt99+CwcHBwC5yeDChQuxY8cO+cjjESNGYNeuXXj79i2ePHmCdevWwcLCAhs2bICXlxeMjIzQtWtXrFixAsHBweWyWklNI5VKcenSJer+JYQQUirUAljNHDt2DP3791dJXQKBADY2Nrh//36B3csXLlzAhAkTcPDgQbi7u+d7XSqVIjQ0FP7+/rh48SKuXLmCtLQ0GBoawsvLC506dULHjh3h5OSk0qS1JggLC4OrqysuXrxIk0ATQggBULJ8jRLAamj58uX48ccfy1SHQCCAkZERAgMDYW9vr5K4srOzERQUhIsXL+LixYsIDAxETk4OLCws0LFjR3mXsY2NjUqOV52tWbMGs2fPRkJCQrHPfhJCCKkZKAEkWLt2LWbOnAkAJe5y5fF4qFevHs6ePauy5K8g6enpuHbtGi5evAh/f3/cuXMHjDHY29vLk0Fvb2+Ym5uXWwxVVd++fZGWllbk4B1CCCE1CyWABEDu0m+jRo3CgwcP5PP1FYXP50MqlWLmzJlYvHhxhbcsJSQk4PLly/Iu40ePHgEAnJ2d5d3Fnp6eNf4zKBaLYWJigu+//x5z585VdziEEEIqCUoAiZxYLMaJEyewfv16XLp0CUBuCx+fzwdjTD5xtL6+PsaNG4eJEyeiQYMG6gxZLjIyEv7+/vKE8M2bN+Dz+WjevLm8hbBNmzZFLmFXHd26dQutWrXCjRs30Lp1a3WHQwghpJKgBJAUKDExESEhIQgNDUVycjIEAgHq1KkDDw8PNGzYsNTrCVcExhhevnwpf37Q398fHz9+hEgkQtu2bdGpUyd06tQJHh4e1X7N4mXLlmHZsmWIj4+v9udKCCFEeZQAkmpPKpUiPDxcngwGBAQgJSUF+vr68PT0lHcZN2nSpNqNMO7cuTM0NTVx8uRJdYdCCCGkEqEEkNQ4OTk5CA4OlieEN27cQFZWFszNzRVGGNvZ2ak71DLJzMyEkZERfvnlF8yYMUPd4RBCCKlESpKvUf8RqRY0NDTQunVrtG7dGvPmzUNGRgZu3Lgh7zL29fWFVCqFra2tPBns2LEjateure7Q80lLS8PBgwdx9epV3Lx5E2/fvoVEIoG2tjbq1q2LzMxMmJmZgTFW7Vo3CSGEVAxqASQ1QlJSEgICAuQthOHh4QCARo0ayZ8f9PT0hKGhodpiTExMxOLFi/Hnn38iLS0NAoFAPkhHRpbwMcbg4uKC+fPnY+DAgeoIlxBCSCVDXcCEFCMmJkZhhHFERAR4PB48PDzkrYNt27aFtrZ2hcTj5+eHsWPHIi4uTul5GzmOA2MMAwYMwObNm2FmZlbOURJCCKnMKAEkpIQiIiLkyaC/vz9iYmIgFArRpk0beZdx8+bNoaGhofJjr1+/HtOmTQOPx4NUKi3x/nw+H1ZWVggICICtra3K4yOEEFI1UAJISBkwxvDw4UP584OXL19GcnIydHV10aFDB3mXsbOzM3g8XpmOtW3bNowbN67MMQsEAlhaWuL27duoVatWmesjhBBS9VACSIgKicVi3L17V946eO3aNWRmZsLU1BTe3t7yLuP69euXaFDGkydP4OLiguzsbJXEyefz0atXLxw7dowGhxBCSA1ECSAh5SgzMxOBgYHyLuPbt29DIpHA2tpangx26tQJlpaWhdbBGEOrVq1w9+7dfAM9PtW2bVvMmTMHrVu3hqamJt69e4fdu3dj6dKlhe6zb98+DBs2rEznSAghpOqhBJCQCpScnIyrV6/Ku4zDwsIAAA0bNpQng15eXjA2Npbvc/HiRXTu3LnIeocPH46///4bvr6+2Lt3L1JTU2Fvbw9LS0ssWbKkwH04joODgwMePXpErYCEEFLDUAJIiBrFxsbi0qVL8i7j58+fg+M4NG3aVP784IYNG3D69OlCW/8sLS3x5MkT7N69G1OmTClxDJcvX4anp2dZT4UQQkgVQgkgIZXI69evFaaciYqKKnaf+fPnY9GiRbCxscGbN29KdDyBQIDJkydj7dq1pQ2ZEEJIFVSSfK1sQxgJIcWysbHB2LFj8ffff+P9+/c4ePBgsft06NABcXFxaNiwIUJCQpCTk4OYmBhs2rQJenp6Re4rFotx+/ZtVYVPCCGkGqIEkJAKxHEcUlJSii1nZWUFbW1tHDx4EAcOHEDnzp2xatUqjB49Gn5+fsXuL3sOkRBCCCkIrQVMSAVLSUkpdtJnHo8HLS0tLFq0CCtWrAAABAQEIDs7G2vXrkWnTp1w8eLFQvdPT0+ntYIJIYQUiloACalgfD4fxT16GxcXBwA4e/aswvbTp08DANzd3Yvcn8fjUfJHCCGkUJQAElLB6tSpU2wCWFgXriypK27JOAsLi9IFRwghpEagBJCQCubh4VFsmcOHDwMAevToobC9Z8+eAICbN28Wui+fz0fLli3LECEhhJDqjp4BJKSCWVlZwdLSEpGRkYWWOX/+PI4fP4758+eDx+Ph5s2baNasGRYsWIATJ07g+vXrhe7LGEPbtm3LI3RCCCHVBLUAElLBOI7DxIkTweMVffkNHToUa9aswfjx43H69GlMmjQJv//+OwYNGlTkfjweD6NGjVJlyIQQQqoZmgiaEDWIioqCjY0NcnJyVFqvQCBA37590bdvX9jb20NXV1fhR1tbu9jEkxBCSNVUknyNuoAJUQMLCwssXLgQc+fOVVmdHMdBU1MTWVlZ8PHxKbCMvb09nj9/rrJjEkIIqZqoKYAQNXFwcFDpdC2MMaxfvx47duwodLWQxo0bq+RYhBBCqjZKAAmpYFKpFIsXL8bgwYPRs2dPWFtbQyAoe2P87Nmz4ePjAzMzMxw4cCDf6zweD8uXLy/zcQghhFR9lAASUoFSU1MxZMgQLFiwAEuWLMHx48cRGBiIRo0alaolkM/ng+M4LF26FL/88ot8e48ePTBu3Dj5834cx0EqlWLo0KE4d+6cys6HEEJI1UQJICEV5NWrV2jbti3Onj2Lo0ePYt68eeA4DpaWlggODsbChQvB5/PB5/OLrUtWpl69erhx4wbmzp2bL4H87bffYGlpCQDQ1dXF+fPnYWBggG7duqFnz5548OCB6k+SEEJIlUAJ4P/au/e4qus8j+Ovcw6geAevkKIlZFzU1BgNCuWYVlauU7pq4+y0Oro9nEVnxqk0Z13F0ZkttXKm0Rq3aXPnYTnaLLWTdsNLlIom6wWvIEoGGgoBgnI557d//JSLonI5cIDzfj4e5yHnd36/7+/z6wH05vf7XkSawI4dO4iMjKSwsJBdu3YxYcKEap97e3uzaNEiTp06xfz58+natWvFZ15eXnh5eVUbvTtixAjee+89UlNTGTFiRI3n7NixI+vXr8disRAfH89DDz3Ezp072bx5MydOnGDQoEE8++yznD9/vlGuWUREmi9NAyPSyNauXUtcXBwxMTFs3LixWri7GafTSVpaGl9//TVnzpyhvLycDh06MHDgQIYOHYqfn1+tz5+VlUVAQEC1O4SlpaX88Y9/JD4+nvLychYsWMDPf/5zfH1963WNIiLifnXJawqAIo2krKyMuXPnsmbNGuLi4li5ciXe3t7uLqua3Nxcli5dyh/+8AcCAwNZvnw5U6dO1VyBIiItUF3ymn7LizSCnJwcxowZw7p16/jTn/7E6tWrm134A/D39+eVV17hyJEjDBs2jGnTpjFixAi++OILd5cmIiKNSAFQxMUOHjxIZGQkR48eJTExkZ/+9KfuLum2QkJCeP/999mxYweGYRATE8NTTz2lSaNFRFopBUARF9q8eTP3338//v7+7N27lwceeMDdJdVJTEwMe/bsYf369ezdu5ewsDB+8YtfkJub6+7SRETEhRQARVzA6XSyePFiJk6cyOOPP05SUhJBQUHuLqterFYr06ZN4/jx4yxevJh169YRHBzMq6++SmlpqbvLExERF1AAFGmgS5cuMXHiRJYsWcJvfvMb3n33Xdq1a+fushrM19eXF198kbS0NCZNmsS8efMIDw/nb3/7G7UYOyYiIs2YAqBIA2RkZBAVFcWnn35KQkJCjRMyt3Q9e/bkjTfe4MCBAwQHB/Pkk08ycuRI9u3b5+7SRESknhQARepp+/btREZGUlxczO7duxk/fry7S2pUERERbNmyha1bt5KXl0dkZCTTpk0jMzPT3aWJiEgdKQCK3EZZWRlOp7PatjVr1jBmzBjuvfdekpOTCQ8Pd1N1Te/hhx8mJSWFN998k08//ZQBAwawcOFCCgsL3V2aiIjUkgKgyG08+eST3HfffRQXF1NaWsqzzz7L7NmzmT17Nlu3bsXf39/dJTY5Ly8vZs6cSVpaGvPmzWPVqlUEBwfz5ptvUl5e7u7yRETkNrQSiMgtHDx4kMGDBwMwfvx4cnNz2bNnD2vXrmX69Olurq75+Oabb1i4cCHr168nPDycFStW8Mgjj7i7LBERj6Kl4ESuyr0MW9PgwHnzlXcFLEC3djC4JwzpBQ/3h45taj7+mWee4S9/+UvFXa327dvz8ccfEx0d3XQX0YLs27ePefPmsXPnTsaOHcuKFSsYOHCgu8sSEfEICoDi8TLy4LVk+PAEOJxgs0J59W58eF3d1tYLJobCnB9Azw6Vn2dnZxMUFFTtkabFYiEhIYEnnniiia6k5TEMg4SEBJ5//nnS09OZMWMG8fHx9OrVy92liYi0aloLWDyWwwnr9sOY/4YPjpsBz+DG8EeVbVfKYcNhiH0HNh+Fa38S/f73v8fhcFQ7xjAMpkyZQl5eXuNeSAtmsViYMGEChw8fZtWqVWzatImQkBCWLVtGcXGxu8sTEREUAKUVKXXAv26BpV9AmRMcdZir2GFAcRn88hNYvAO+zy/g5ZdfxjAMrFbzx8RisRAaGsqsWbPw9fVtpKtoPXx8fJg7dy7p6enMmjWLJUuWMGDAANavX3/DqGoREWlaegQsrYJhmOHv7yfNO34N9cOgC6yZcgehoaH88Ic/JCoqiuHDh+v7vwHS09N54YUX2Lx5M8OGDWPlypWMHDnS3WWJiLQa6gMoHucvh+DFRNe2+dYTMPou17YpkJSUxC9/+Uv27t3LhAkTeOmllwgJCXF3WSIiLZ4CoHiUswUwer3Zl6+9tzmYI6w7hHeHru3gld3w6p7qx6wYA5PCbmwrLddsywr4+cK2n0Dnm4wQlvpzOp28++67LFiwgKysLGbPns2iRYvo2rWru0sTEWmxNAhEPMqb+6Hs6lgNv7YwdSD42OCTU7c+7nIZTHiv+utft5ifOYG8y7DhUKOW7rGsVitPP/00x44dY+nSpfz5z38mODiYVatWUVJS4u7yRERaPQVAadGKSmFjauWAj7OFMGgtTN4M//HlrY91GpByrvrr6IUqnwNvHzBHFkvj8PX1Zf78+aSlpTFlyhSee+45wsLC2LRpE7V4OCEiIvWkACgt2s5MuNyIK49lX4JD3zVe+2Lq0aMHa9as4dChQ9xzzz1MmjSJBx98kOTkZHeXJiLSKikASot26Lw5oXN9tPWCvT+FU3GwezrEj7qxv58FOHi+oVVKbYWFhfH3v/+dTz75hIKCAoYPH87TTz/NmTNn3F2aiEirogAoLVpqTv0e0R69AMuS4BefwD8lwKaj5qCQ9/8R2nlX7mezVn8sLE1jzJgxpKSksG7dOrZt28aAAQNYsGABBQUF7i5NRKRVUACUFi2/pH7z/v1nivlKyjRfK3aZk0AH+8PUiMr9nAYUlrqsXKkDm83GjBkzOHnyJM8//zyvvfYawcHBrFmzptryfCIiUncKgNKiWSyua2trmjmoZMh1S9ZaXXgOqbsOHToQHx/PiRMnGDduHD/72c8YNGgQH330kQaKiIjUkwKgtGiBHcDmwoBmsZh3/a6xWqB7O9e1L/XXu3dv3n77bfbt20fPnj157LHHGDt2LAcOHHB3aSIiLY4CoLRoA3u4Zuk3gHEhZv+/lHOV28qdMKini04gLjF06FASExNJSEggMzOTIUOGMGPGDLKzs91dmohIi6EAKC3a0IDqd+wARvWFccHw0NVl3EL8zffjgs2Rv3d0hM2T4JnB5r4j+8LzUbBqLBy/AO8ert7e9Y+Exf0sFgvjx4/n8OHDrF69moSEBEJCQoiPj6eoqMjd5YmINHtaCk5aNKcBMW+by8Fd+0ZO+mfoc5Nv0+i3oKAUXn7IXCquWzvzMe+3hfBxOry+t3LQh80C9wXAxklNcSXSEN9//z3Lli1j9erVdOvWjeXLl/PjH/8Yq1V/44qI59BawOJR/jMFlu503aPgqv44Dh4LaYSGpVGcOnWK+fPn89e//pUhQ4awcuVKYmNj3V2WiEiT0FrA4lF+NBD6dXHtYBCbBX4QCI8Gu65NaXx33XUXGzdu5Msvv8THxwe73c748eM5fvy4u0sTEWlWFAClxWvrBa897Lo7gBbM1UVWjtUUMC1VVFQUu3btYsOGDRw8eJCIiAji4uK4cEGzeouIgAKgtBKDe8FLDzW8HStm6HvjcQjq3PD2xH0sFgtTpkzh2LFjLFu2jHfeeYfg4GBefvllSkpKGta4YcCVUriQB2ey4NRZOP0tZF+AS8XgrMfyNCIiTUh9AKVVef8oPP+ZOTjEUcdbgjYLtPGCNeNgVL9GKU/cKCcnh8WLF/PGG28QFBTE7373OyZNmoSlLrOJOxxwPhe+PQ/FVyq3WyyAUXkb2maDgG4Q2AN829TUkoiIy6kPoHisJ0Nhy48grLv5vjb9Aq/tc38f+PzHCn+tVffu3Xn99dc5dOgQ4eHhTJ48mejoaHbt2lW7BnLzIfkwnDxTPfyBeUew6h8cDgecPQ/Jh8w7g7ojKCLNjAKgtDoh/pAwGdY+BsPvqNxus4C31Xxd69tnAex3wvoJ8N8TILCjGwqWJhUaGsqHH37IZ599RnFxMVFRUUyZMoWMjIyaDzAMSMuEQyehtKzuJzyTDfuPQokWlRaR5kOPgKXVyymCQ99Bag7kXTHDX1dfcxWRiB7Qpa27KxR3cTgcvPPOOyxcuJCLFy8yd+5cXnzxRbp06WLuYBhw4gyca+DgEQvg4wND7oE2Pg0tW0SkRpoHUESkDoqKilixYgUvvfQSvr6+LFmyhFmzZuF9/iKkn3XdiTq2gyGhV/sMioi4lgKgiEg9ZGVl8etf/5q3336bsQ/E8FH8y1gtFrBZoW8gtPeFDu3AxxtOZ5kjgKsaed/NGy++DHtT4a7e0EfrC4qI69Ulr3k1UU0iIs1eYGAgb731FnPmzOHKvkMYhmHerfPyMkf1XroMF7+HgO41N7D/6I3bOrWH4CC48L35PuNb6NnVDJEiIm6iACgicp177wmF/PLKDSWl8OX/mV97ed08ABYW3bgtsLvZlzD7aj9CwzD7FAYFuLRmEZG60ChgEZHrnbvomnZsVujuB/mFcKXK5NPZOa5pX0SknhQARUSul1/omna6+5uTQmdfN4r4SimUldd8jIhIE1AAFBGpyjBqfpRbHwHdzKCXk3fjZ646h4hIPSgAiohUZRjgcMHKHe3aQqcO8F2u2eb16jOptIiIiygAiohUdfuZsWonoJv57836+7nqPCIi9aAAKCJSldVqrtzREBYL9OhqPuYtulzzPl62Bp5ERKT+FABFRKo4k5lJ7pWbhLba6trFnOfv+sEfVbVv17BziIg0gAKgiHi08+fPs2HDBmbOnEn//v3p168fmz7ZgsN5XT9A/07QzQ+6djbft2trvu/mZ941rCqgGzgcZv+/mlit4NvG9RcjIlJLmghaRDxKXl4eO3bsIDExkcTERFJTUwEICwvjsccew263M3poJLaM7OoHhvSFtlVCWw9/8wWw+6A5WTRAG2/w6wTnL5oh8HoWzLkBtR6wiLiRAqCItGpFRUUkJSWRmJjI559/zv79+zEMg7vuugu73c7ChQuJjY2lV68q6/MaBmRdrAx1AHsO1e6EJWWw8+ubf24AgT3qdS0iIq6iACgirUpJSQl79uzh888/JzExkT179lBWVkZAQAB2u53Zs2djt9vp16/fzRuxWODOO+BYhusL9Otkrg8sIuJGCoAi0qKVl5ezf//+ike6SUlJXL58GT8/P2JjY3nllVcYPXo0AwYMwFKXx649/OG7i5Bb4LpirVYY0M917YmI1JMCoIi0KE6nk9TU1IrAt337dgoKCmjfvj0xMTEsXboUu93O4MGDsV4/OKMuLBYYcCfsP2I+1nWFe+6ENj6uaUtEpAEUAEWkWTMMg/T09IpHutu2bSMnJwcfHx+io6N57rnnsNvtREZG4u3t7dqT+3jD4HvgwPHq/QHr4547zcEfIiLNgAKgiDQ7Z8+erbjDl5iYyDfffIPNZiMyMpKZM2dit9uJiorC19e38YvxbQPDQuFkZs1r+t5OWx8z/HXu6PraRETqSQFQRNwuJyeH7du3V4zUPXnyJACDBw9m4sSJ2O12YmJi6NSpk3sK9PaGsP5wIQ8ys6Gw+Ob7WjBH+np7maN9+/QEm1b9EJHmRQFQRJpcQUEBO3furHise/DgQQDuvvtuRo8ezfLlyxk1ahTdunVzc6XXuTbxc2ERXMy/utRbMTicZp/Btm3MEb6dO5oTRjekD6KISCNSABRpAQwDLhTDFQf4WKFbO7C1oGxRXFzMV199VfFId9++fTgcDvr06cPo0aP51a9+RWxsLL1793Z3qbXTsb35EhFpoRQARZqp3Muw8QhsPw0Hz0NRlYGobWwQ3h0eDIIpERDYzLqXlZWVkZycXBH4vvrqK0pLS+nevTt2u53p06djt9vp379/3aZmERERl7AYhmHcbqeCggI6d+5Mfn6++/rgiHiI/BL4jy/hvVRwOsF5i32tFvPu4LgQ+PcY6NmhycqsxuFwcODAgYo+fF988QVFRUV06tSJUaNGmcurjR5NeHi4Ap+ISCOpS15TABRpRpIyYe7H5t0/521/MivZLNDWC347Gv5hQOPVd41hGBw7dqyiD9/27dvJy8vD19eXBx98ELvdjt1uZ8iQIXh56UGDiEhTqEte029mkWbig+Nm+IO6hT8AhwHFZTBnK5y7BP8yzPX1ZWRkVJua5dy5c3h7ezNixAjmzJmD3W5n+PDhtGnTxvUnFxERl1IAFGkGdp4xw19dg19V1w5dngRd2sLk8Jr3O336NAkJCcTFxd1ypYzs7Gy2bdtWEfgyMjKwWq0MHTqUn/zkJ9jtdqKjo2nfXoMhRERaGgVAETfLvwI//9jsy9feG+b8AMK6m4M8uraDV3bDq3tuPM7LCs8Mhklh0K8LlDgg7SIsS4J/2wb394agztWP2bt3L4888gi5ubmMGDGC4cOHV3yWm5vLjh07KvrxHT16FICIiAieeOKJirn4/Py0moWISEunACjiZsuSIO+KeQfPry1MHQhHc+CTUzA1ouZjrBZ483G4LxDe+Bq+zoJ23hDRA3y9odwJL3wGG56qPOaDDz5g8uTJlJWVYbPZ2LJlC3l5eRX9+FJSUjAMg/79+2O321m0aBGxsbH07NmzSf47iIhI01EAFHGjC8Ww6Ujlo9+zhTBorfm1X9ubB8BnBsOovvDUXyHlXOX2xNOVX391Fo7kmHcTX3/9deLi4qg65mvJkiUABAYGYrfbiYuLIzY2lr59+7rwCkVEpDlSABRxo/dSK/vu1cX0eyH52+rh73o2C6w/CEdW/wMffPDBjZ/bbKSkpBAREaGpWUREPIwCoIgbfZ5R94EfAR2gT2f4LAOeizIHe/i1hVN5sPZr2Gx23cNhmPt8s6eyA6HNZsPpdGIYBg6Hg4sXLyr8iYh4IAVAETdxGpCaU/fjel2d7PmpUHPKl0XboLDUfFy8aix4W+HdVHOf74rgSMY5jOKLJCcnk5yczK5du9i9ezf5+fmkp6czatQol12TiIi0DAqAIm6SXQhXyut+nPXqDbs2NngmAb4tNN9/kQn/OwXmDq8MgAAnc2H4HV159NFHefTRRwFzIuesrCwCAgIaeBUiItIStaDl5EVal8v1CH8AeZfNf9PzKsPfNTsyzXWBu/pWbqspZFosFu64445bzgMoIiKtl377i7iJj61+x53JN1f9qMm13nxV+xV666dcRESuo/81iLhJrw7mZM515TDg01MQ7A+9O1b/bFRfOP29Oa/gNf26NKRKERFpjdQHUMRNfGxwtz8cuVB9+6i+5qTO7X3M9yH+MC7Y/DrxtPlId8Uuc7//mmCuEnKpFKaEQ2h3+NlHlW11bmOOGhYREalKAVDEjR7sC8cvmnf1rvmNHfp0qnz/+N3mCyD6LXOy6Mx8mLgJ5kfDb+3gbTMnfZ7xISRmmPvaLBDdBzTLi4iIXE8BUMSNpoabS7lV9cCfa3fsiYsw/cb5nSs4DJg2qP61iYhI66U+gCJudKcfxPYz79a5ks0CwX4Q1du17YqISOugACjiZvGj6jcY5FacBqwYq8e/IiJSMwVAETcL6gxLRrm2zdmRMKSXa9sUEZHWQwFQpBmYGgFzfuCatp4KhV/d75q2RESkdVIAFGkm5t0Pi0eaj4Pr2ifQajEngZ59H6wYU7lcnIiISE0UAEWakX++F7b+CAb2MN/fLghe+7xvZ9j8j/BCtMKfiIjcnqaBEWlmQvzhfybD/nPwzgHYdhryS27cr523Oc/fPw2CB4IU/EREpPYUAEWaIYsFhgWYL8OA7EuQlgslDnNt3zu7mINHNMpXRETqQwFQpJmzWCCwo/kSERFxBfUBFBEREfEwCoAiIiIiHkYBUERERMTDKACKiIiIeBgFQBEREREPowAoIiIi4mEUAEVEREQ8jAKgiIiIiIdRABQRERHxMAqAIiIiIh5GAVBERETEwygAioiIiHgYBUARERERD6MAKCIiIuJhFABFREREPIwCoIiIiIiHUQAUERER8TAKgCIiIiIexqs2OxmGAUBBQUGjFiMiIiIi9XMtp13LbbdSqwBYWFgIQJ8+fRpQloiIiIg0tsLCQjp37nzLfSxGLWKi0+kkKyuLjh07YrFYXFagiIiIiLiGYRgUFhYSGBiI1XrrXn61CoAiIiIi0npoEIiIiIiIh1EAFBEREfEwCoAiIiIiHkYBUERERMTDKACKiIiIeBgFQBEREREPowAoIiIi4mH+H4HFhpT07U41AAAAAElFTkSuQmCC" }, "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] + "text/plain": "
", + "image/png": "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" }, "metadata": {}, "output_type": "display_data" @@ -402,591 +440,32 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Compare betweenness centrality values." + "The most obvious difference between the predecessor graphs is that the paths to node 17\n", + "go through the sparsified, black nodes. A bit less obvious is that between the first two\n", + "trees, the first dijkstra approach unveils that there are two shortest paths between 17\n", + "and 18, as 18 has two predecessors. The second approach (unrestricted, using\n", + "predecessor matrix), however, only shows one path, as such predecessor matrix is only\n", + "able to store one path per node pair.\n", + "\n", + "The comparison between the node betweenness shows the same. The first approaches yield\n", + "mostly the same results, but 2 and 0 as predecessors of 18 differ. The maximal\n", + "difference is just $1.1\\%$." ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 10, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T14:16:34.844049Z", - "start_time": "2023-05-15T14:16:34.754048Z" + "end_time": "2024-04-18T09:49:15.417307Z", + "start_time": "2024-04-18T09:49:15.370684Z" } }, "outputs": [ { "data": { - "text/html": [ - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
 Len scalesLin scales
 C_BC_B_pathsC_B_restrC_BC_B_pathsC_B_restrC_BC_B_pathsC_B_restr
90.3220.3220.0580.2580.2580.0450.5980.5980.057
00.3190.3160.2920.2320.2630.2410.3630.4330.472
20.2910.2920.3510.2450.2420.2970.4250.4270.939
60.2660.2660.2660.2240.2240.2220.4940.4940.612
180.2540.2540.0000.2410.2410.0000.3910.3910.000
70.2490.2250.0790.2270.2060.0610.4860.4410.102
80.2410.2220.0760.1960.1850.0410.4710.4550.051
10.1700.1700.3950.1280.1280.3240.2870.2870.914
150.1400.1400.1400.1030.1030.1020.2750.2750.334
100.1140.1230.1230.0830.0910.0910.1570.1670.229
130.0610.0530.0530.0480.0440.0460.0520.0460.047
160.0500.0500.0500.0100.0100.0090.0400.0400.041
50.0470.0470.2570.0360.0360.2240.0640.0640.750
110.0350.0410.0500.0090.0110.0140.0260.0300.038
40.0340.0380.3010.0190.0220.2640.0320.0350.902
30.0190.0380.3160.0090.0190.2820.0170.0340.980
120.0090.0060.0150.0050.0030.0080.0050.0030.010
140.0000.0500.0410.0000.0180.0090.0000.0440.032
170.0000.0000.0000.0000.0000.0000.0000.0000.000
190.0000.0000.0000.0000.0000.0000.0000.0000.000
\n" - ], - "text/plain": [ - "" - ] + "text/plain": "", + "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 Len scalesLin scales
 C_BC_B_pathsC_B_restrC_BC_B_pathsC_B_restrC_BC_B_pathsC_B_restr
90.3220.3220.0580.2580.2580.0450.5980.5980.057
00.3190.3160.2950.2320.2630.2130.3630.4330.344
20.2910.2920.3510.2450.2420.2970.4250.4270.939
60.2660.2660.2660.2240.2240.2220.4940.4940.612
180.2540.2540.0000.2410.2410.0000.3910.3910.000
70.2490.2250.0790.2270.2060.0610.4860.4410.102
80.2410.2220.0760.1960.1850.0410.4710.4550.051
10.1700.1700.3950.1280.1280.3240.2870.2870.914
150.1400.1400.1400.1030.1030.1020.2750.2750.334
100.1140.1230.1170.0830.0910.0860.1570.1670.222
130.0610.0530.0580.0480.0440.0480.0520.0460.051
160.0500.0500.0500.0100.0100.0090.0400.0400.041
50.0470.0470.2570.0360.0360.2240.0640.0640.750
110.0350.0410.0410.0090.0110.0090.0260.0300.032
40.0340.0380.3010.0190.0220.2640.0320.0350.902
30.0190.0380.3160.0090.0190.2820.0170.0340.980
120.0090.0060.0120.0050.0030.0070.0050.0030.008
140.0000.0500.0000.0000.0180.0000.0000.0440.000
170.0000.0000.0000.0000.0000.0000.0000.0000.000
190.0000.0000.0000.0000.0000.0000.0000.0000.000
\n" }, "metadata": {}, "output_type": "display_data" @@ -1006,1146 +485,36 @@ ").sort_values(by=[(\"\", \"C_B\")], ascending=False)\n", " .style.background_gradient(cmap=\"Blues\", axis=None)\n", " .format(precision=3)\n", - " .applymap_index(lambda x: f\"color: {G.nodes[x]['partition']}\" if x in G\n", - " .nodes else \"\"). \\\n", + " .map_index(lambda x: f\"color: {G.nodes[x]['partition']}\" if x in G\n", + " .nodes else \"\"). \\\n", " set_table_attributes('style=\"font-size: 12px\"'),\n", " )" ] }, + { + "cell_type": "markdown", + "source": [ + "When sorting after the linearly scaled edge betweenness for restricted paths, we see\n", + "mostly sparsified nodes at the top." + ], + "metadata": { + "collapsed": false + } + }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 11, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T14:16:49.842887Z", - "start_time": "2023-05-15T14:16:49.736334Z" + "end_time": "2024-04-18T09:49:46.517845Z", + "start_time": "2024-04-18T09:49:46.440574Z" } }, "outputs": [ { "data": { - "text/html": [ - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
  Len scalesLin scales
  C_B_eC_B_e_pathsC_B_e_restrC_B_eC_B_e_pathsC_B_e_restrC_B_eC_B_e_pathsC_B_e_restr
340.0290.0420.1630.0200.0260.1440.0370.0510.632
20.0360.0390.1680.0350.0380.1560.0430.0550.623
450.0260.0260.1450.0250.0250.1240.0420.0420.623
210.0070.0050.1470.0050.0040.1330.0070.0050.599
560.0320.0320.1260.0280.0280.1030.0590.0590.572
430.0240.0320.1610.0120.0190.1480.0270.0380.530
230.0410.0500.1710.0250.0350.1540.0580.0850.509
6150.1290.1290.1290.1000.1000.0990.3930.3930.498
010.0170.0180.1920.0090.0100.1840.0170.0180.424
120.0330.0390.1530.0220.0290.1410.0550.0810.413
540.0260.0260.1450.0200.0200.1380.0460.0460.345
15160.0890.0890.0890.0570.0570.0560.2640.2640.316
100.0640.0580.1000.0540.0470.0790.1610.1350.314
100.0790.0790.0950.0630.0630.0740.1820.1820.306
650.0320.0320.1260.0270.0270.1220.0510.0510.231
10110.0700.0760.0820.0430.0490.0550.1480.1620.225
0140.0410.0870.0760.0160.0610.0500.0410.1790.214
1300.0760.0760.0760.0740.0740.0740.1460.1460.146
170.0240.0240.0550.0240.0240.0450.0240.0240.129
1000.0800.0820.0760.0790.0800.0750.1160.1180.111
780.2030.1890.0680.1900.1780.0570.4990.4610.109
1560.0840.0840.0840.0840.0840.0840.1080.1080.108
890.1790.1790.0610.1600.1600.0420.4930.4930.059
11120.0360.0390.0500.0130.0140.0190.0360.0390.053
12130.0460.0450.0500.0450.0430.0470.0470.0450.053
980.0340.0340.0340.0280.0280.0280.0510.0510.051
690.1260.1260.0320.1220.1220.0270.2310.2310.051
16170.0470.0470.0470.0120.0120.0110.0470.0470.047
960.1260.1260.0320.1060.1060.0290.4020.4020.047
16150.0450.0450.0450.0450.0450.0450.0450.0450.045
710.0320.0320.0370.0290.0290.0360.0470.0470.045
14130.0070.0500.0450.0070.0210.0160.0070.0610.045
1760.0450.0450.0450.0450.0450.0450.0450.0450.045
11100.0430.0450.0420.0420.0430.0410.0430.0450.042
1400.0410.0420.0390.0410.0420.0390.0410.0420.039
870.0630.0550.0450.0560.0480.0380.0590.0490.033
2180.0780.0840.0260.0710.0720.0150.1000.1060.026
910.1450.1450.0260.1370.1370.0260.3260.3260.026
0100.0280.0340.0210.0210.0280.0170.0370.0470.023
180.1990.1920.0210.1910.1890.0170.3260.3190.021
270.1840.1710.0180.1720.1590.0160.4470.4140.021
480.0280.0240.0130.0270.0220.0120.0300.0280.017
720.0370.0290.0130.0350.0280.0120.0510.0340.014
13120.0200.0130.0110.0110.0080.0090.0210.0130.013
1820.2040.2030.0290.2010.2000.0330.3660.3660.013
12110.0090.0080.0110.0070.0070.0070.0090.0080.011
840.0220.0130.0110.0110.0100.0090.0220.0130.011
1800.0720.0740.0180.0710.0730.0220.0950.0950.009
13140.0070.0050.0080.0040.0040.0050.0070.0050.008
590.0320.0320.0080.0320.0320.0080.0320.0320.008
950.0320.0320.0080.0110.0110.0050.0320.0320.008
17160.0030.0030.0030.0030.0030.0030.0030.0030.003
0130.0500.0000.0000.0230.0000.0000.0630.0000.000
\n" - ], - "text/plain": [ - "" - ] + "text/plain": "", + "text/html": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
  Len scalesLin scales
  C_B_eC_B_e_pathsC_B_e_restrC_B_eC_B_e_pathsC_B_e_restrC_B_eC_B_e_pathsC_B_e_restr
340.0290.0420.1630.0200.0260.1440.0370.0510.632
20.0360.0390.1680.0350.0380.1560.0430.0550.623
450.0260.0260.1450.0250.0250.1240.0420.0420.623
210.0070.0050.1470.0050.0040.1330.0070.0050.599
560.0320.0320.1260.0280.0280.1030.0590.0590.572
430.0240.0320.1610.0120.0190.1480.0270.0380.530
230.0410.0500.1710.0250.0350.1540.0580.0850.509
6150.1290.1290.1290.1000.1000.0990.3930.3930.498
010.0170.0180.1920.0090.0100.1840.0170.0180.424
120.0330.0390.1530.0220.0290.1410.0550.0810.413
540.0260.0260.1450.0200.0200.1380.0460.0460.345
15160.0890.0890.0890.0570.0570.0560.2640.2640.316
100.0640.0580.1000.0540.0470.0790.1610.1350.314
100.0790.0790.0950.0630.0630.0740.1820.1820.306
650.0320.0320.1260.0270.0270.1220.0510.0510.231
10110.0700.0760.0740.0430.0490.0470.1480.1620.211
1300.0760.0760.0760.0740.0740.0740.1460.1460.146
170.0240.0240.0550.0240.0240.0450.0240.0240.129
1000.0800.0820.0790.0790.0800.0780.1160.1180.113
780.2030.1890.0680.1900.1780.0570.4990.4610.109
1560.0840.0840.0840.0840.0840.0840.1080.1080.108
890.1790.1790.0610.1600.1600.0420.4930.4930.059
980.0340.0340.0340.0280.0280.0280.0510.0510.051
690.1260.1260.0320.1220.1220.0270.2310.2310.051
12130.0460.0450.0470.0450.0430.0460.0470.0450.050
0130.0500.0000.0450.0230.0000.0160.0630.0000.048
16170.0470.0470.0470.0120.0120.0110.0470.0470.047
960.1260.1260.0320.1060.1060.0290.4020.4020.047
16150.0450.0450.0450.0450.0450.0450.0450.0450.045
710.0320.0320.0370.0290.0290.0360.0470.0470.045
1760.0450.0450.0450.0450.0450.0450.0450.0450.045
11120.0360.0390.0420.0130.0140.0150.0360.0390.042
100.0430.0450.0420.0420.0430.0410.0430.0450.042
1400.0410.0420.0390.0410.0420.0390.0410.0420.039
0140.0410.0870.0390.0160.0610.0130.0410.1790.039
870.0630.0550.0450.0560.0480.0380.0590.0490.033
910.1450.1450.0260.1370.1370.0260.3260.3260.026
2180.0780.0840.0260.0710.0720.0150.1000.1060.026
0180.1990.1920.0210.1910.1890.0170.3260.3190.021
270.1840.1710.0180.1720.1590.0160.4470.4140.021
13120.0200.0130.0160.0110.0080.0110.0210.0130.018
480.0280.0240.0130.0270.0220.0120.0300.0280.017
0100.0280.0340.0160.0210.0280.0120.0370.0470.017
720.0370.0290.0130.0350.0280.0120.0510.0340.014
1820.2040.2030.0290.2010.2000.0330.3660.3660.013
12110.0090.0080.0110.0070.0070.0070.0090.0080.011
840.0220.0130.0110.0110.0100.0090.0220.0130.011
1800.0720.0740.0180.0710.0730.0220.0950.0950.009
14130.0070.0500.0080.0070.0210.0080.0070.0610.008
950.0320.0320.0080.0110.0110.0050.0320.0320.008
13140.0070.0050.0080.0040.0040.0050.0070.0050.008
590.0320.0320.0080.0320.0320.0080.0320.0320.008
17160.0030.0030.0030.0030.0030.0030.0030.0030.003
\n" }, "metadata": {}, "output_type": "display_data" @@ -2165,48 +534,53 @@ ").sort_values(by=[(\"Lin scales\", \"C_B_e_restr\")], ascending=False)\n", " .style.background_gradient(cmap=\"Blues\", axis=None)\n", " .format(precision=3)\n", - " .applymap_index(lambda x: f\"color: {G.nodes[x]['partition']}\" if x in G\n", - " .nodes else \"\"). \\\n", + " .map_index(lambda x: f\"color: {G.nodes[x]['partition']}\" if x in G\n", + " .nodes else \"\"). \\\n", " set_table_attributes('style=\"font-size: 12px\"'),\n", " )" ] }, + { + "cell_type": "markdown", + "source": [ + "For a more intuitive comparison, we can plot the betweenness values for the edges\n", + "(and nodes) on the graph. The size of the nodes is proportional to the node betweenness\n", + "and the color of the edges is proportional to the edge betweenness." + ], + "metadata": { + "collapsed": false + } + }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 12, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T10:50:14.104517Z", - "start_time": "2023-05-15T10:50:12.444110Z" + "end_time": "2024-04-18T09:50:34.670455Z", + "start_time": "2024-04-18T09:50:33.125241Z" } }, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAGpCAYAAAAdhodAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACrBElEQVR4nOzdd3gc5bn38e+07ate3Du2MRgMmGZ67wFCSCANSINAICflTU9OSIMkpB0IoYWSHAIh5EDoxfRiijE22ICNca+S1bV1yvP+MbsryZJsyZasdn+uS15pdnZ2di3t/vYp96MppRRCCCGEEGLE0Af6BIQQQgghxJ4lAVAIIYQQYoSRACiEEEIIMcJIABRCCCGEGGEkAAohhBBCjDASAIUQQgghRhgJgEIIIYQQI4wEQCGEEEKIEUYCoBBCCCHECCMBUIgBcuedd6JpWoevyspKjj32WB555JFdPu6NN97InXfe2XcnKga1TZs28dOf/pTFixf3y/Hzv6dr1qwpbLv44ouZNGlSh/1+9atf8eCDD/bLOQgh+p4EQCEG2B133MGCBQt49dVXueWWWzAMg7POOouHH354l44nAXBk2bRpE1dffXW/BcCu/PjHP+aBBx7osE0CoBBDiznQJyDESLfvvvsyd+7cws+nnnoqpaWl3HPPPZx11lkDeGZiOEomk0Qikd06xtSpU/vobIQQA0VaAIUYZEKhEIFAAMuyOmzPZrP84he/YObMmQSDQSorK7nkkkuora0t7DNp0iSWLVvGCy+8UOhWnjRpEkopqqurueKKKwr7uq5LaWkpuq6zdevWwvbf//73mKZJY2NjYdvChQv52Mc+RllZGaFQiAMOOID77ruv07lv2bKFSy+9lHHjxhEIBJg8eTJXX301juMU9lmzZg2apnHdddfx+9//nsmTJxOLxTj88MN57bXXOhzv4osvJhaLsXLlSk4//XRisRjjx4/nW9/6FplMptfPD8Czzz7LscceS3l5OeFwmAkTJnDeeeeRTCYL+/zlL39h//33JxaLEY/HmTlzJj/4wQ929N8GQCaT4Wc/+xl77703oVCI8vJyjjvuOF599dXCPkopbrzxRubMmUM4HKa0tJRPfOITrFq1qsOxjj32WPbdd1/efPNNjjrqKCKRCFOmTOHaa6/F8zwAnn/+eQ4++GAALrnkksL/+U9/+tMOz9+7777LySefTDwe54QTTgDg6aef5uyzz2bcuHGEQiGmTZvGpZdeyrZt23b6OLfvAtY0jUQiwV133VU4h2OPPZY1a9ZgmibXXHNNp2O8+OKLaJrGv/71r53enxCiHyghxIC44447FKBee+01Zdu2ymazav369eqqq65Suq6rJ554orCv67rq1FNPVdFoVF199dXq6aefVrfddpsaO3asmjVrlkomk0oppRYtWqSmTJmiDjjgALVgwQK1YMECtWjRIqWUUhdccIGaPn164ZivvfaaAlQ4HFZ33313Yftpp52mDjnkkMLPzz77rAoEAuqoo45S//znP9UTTzyhLr74YgWoO+64o7Df5s2b1fjx49XEiRPVzTffrObPn69+/vOfq2AwqC6++OLCfqtXr1aAmjRpkjr11FPVgw8+qB588EE1e/ZsVVpaqhobGwv7XnTRRSoQCKi9995bXXfddWr+/PnqJz/5idI0TV199dW9fn5Wr16tQqGQOumkk9SDDz6onn/+eXX33Xerz33uc6qhoUEppdQ999yjAHXllVeqp556Ss2fP1/ddNNN6qqrrtrh/6dt2+q4445Tpmmqb3/72+qxxx5TDz30kPrBD36g7rnnnsJ+X/7yl5VlWepb3/qWeuKJJ9Q//vEPNXPmTFVdXa22bNlS2O+YY45R5eXlaq+99lI33XSTevrpp9Xll1+uAHXXXXcppZRqamoq/B796Ec/Kvyfr1+/vvD8WZalJk2apK655hr1zDPPqCeffFIppdRf/vIXdc0116iHHnpIvfDCC+quu+5S+++/v5oxY4bKZrOdfk9Xr17d4f9l4sSJhZ8XLFigwuGwOv300wvnsGzZMqWUUueee66aMGGCchynw/N1/vnnqzFjxijbtnf4vAoh+ocEQCEGSP6NdfuvYDCobrzxxg775kPJv//97w7b33zzTQV02H+fffZRxxxzTKf7u+222xSg1q1bp5RS6he/+IWaOXOm+tjHPqYuueQSpZRS2WxWRaNR9YMf/KBwu5kzZ6oDDjig0xv1mWeeqUaPHq1c11VKKXXppZeqWCym1q5d22G/6667TgGFQJAPgLNnz+4QCt544w0FdAhLF110kQLUfffd1+GYp59+upoxY0avn5/7779fAWrx4sWdnp+8r33ta6qkpKTb67vzt7/9TQHq1ltv7XafBQsWKED97ne/67B9/fr1KhwOq+985zuFbcccc4wC1Ouvv95h31mzZqlTTjml8HP+MbYP43n55+/222/f4bl7nqds21Zr165VgPrPf/5TuK4nAVAppaLRqLrooos6Hfu5555TgHrggQcK2zZu3KhM0+wQ4oUQe5Z0AQsxwP72t7/x5ptv8uabb/L4449z0UUXccUVV3DDDTcU9nnkkUcoKSnhrLPOwnGcwtecOXMYNWoUzz///E7v58QTTwRg/vz5gN8FeNJJJ3HiiSfy9NNPA7BgwQISiURh35UrV/LBBx/wmc98BqDDfZ9++uls3ryZ5cuXF87xuOOOY8yYMR32O+200wB44YUXOpzPGWecgWEYhZ/3228/ANauXdthP03TOo2F3G+//Trs19PnZ86cOQQCAb7yla9w1113dep2BTjkkENobGzkwgsv5D//+U+PukQBHn/8cUKhEF/4whe63eeRRx5B0zQ++9nPdjjPUaNGsf/++3f6fxw1ahSHHHLIDh97T5x33nmdttXU1HDZZZcxfvx4TNPEsiwmTpwIwPvvv9+r4+/Isccey/7778+f//znwrabbroJTdP4yle+0mf3I4ToHQmAQgywvffem7lz5zJ37lxOPfVUbr75Zk4++WS+853vFMbhbd26lcbGxsLYwPZfW7Zs6VFImThxIlOnTmX+/Pkkk0kWLFhQCIAbNmxg+fLlzJ8/n3A4zLx58wr3C/Dtb3+70/1efvnlAIX73rp1Kw8//HCn/fbZZ58O++WVl5d3+DkYDAKQSqU6bI9EIoRCoU77ptPpws89fX7yj7+qqoorrriCqVOnMnXqVP70pz8VjvW5z32O22+/nbVr13LeeedRVVXFoYceWgjJ3amtrWXMmDHoevcvq1u3bi2Mx9z+PF977bWdPkf5x779c7QjkUiEoqKiDts8z+Pkk0/m//7v//jOd77DM888wxtvvFEYg9mb4/fEVVddxTPPPMPy5cuxbZtbb72VT3ziE4waNapP70cI0XMyC1iIQWi//fbjySefZMWKFRxyyCFUVFRQXl7OE0880eX+8Xi8R8c94YQT+M9//sMLL7yA53kce+yxxONxxowZw9NPP838+fM56qijCmGsoqICgO9///t8/OMf7/KYM2bMKOy733778ctf/rLL/caMGdOjc9wVvXl+jjrqKI466ihc12XhwoVcf/31/Nd//RfV1dVccMEFgD+h4pJLLiGRSPDiiy/y3//935x55pmsWLGi0Eq2vcrKSl5++WU8z+s2BFZUVKBpGi+99FLhOW6vq227S9O0TtuWLl3KkiVLuPPOO7nooosK21euXNnn9w/w6U9/mu9+97v8+c9/5rDDDmPLli0dJiQJIfY8CYBCDEL5mm6VlZUAnHnmmdx77724rsuhhx66w9vuqIXoxBNP5JZbbuGPf/wjhx12WCEYnXDCCTzwwAO8+eab/OpXvyrsP2PGDPbaay+WLFnSYXtXzjzzTB577DGmTp1KaWlpTx9qn+jN85NnGAaHHnooM2fO5O6772bRokWFAJgXjUY57bTTyGaznHPOOSxbtqzbAHjaaadxzz33cOedd3bbDXzmmWdy7bXXsnHjRj75yU/27kF2o7uW0x3Jh8LtA+fNN9+8W+fR3TmEQiG+8pWvcMMNN/Dqq68yZ84cjjjiiF2+LyHE7pMAKMQAW7p0aaFMSl1dHf/3f//H008/zbnnnsvkyZMBuOCCC7j77rs5/fTT+frXv84hhxyCZVls2LCB5557jrPPPptzzz0XgNmzZ3Pvvffyz3/+kylTphAKhZg9ezYAxx9/PJqm8dRTT3H11VcXzuHEE08stATlx//l3XzzzZx22mmccsopXHzxxYwdO5b6+nref/99Fi1aVCjj8bOf/Yynn36aefPmcdVVVzFjxgzS6TRr1qzhscce46abbmLcuHH98hz29Pm56aabePbZZznjjDOYMGEC6XSa22+/vcPj/vKXv0w4HOaII45g9OjRbNmyhWuuuYbi4uJCyZWuXHjhhdxxxx1cdtllLF++nOOOOw7P83j99dfZe++9ueCCCzjiiCP4yle+wiWXXMLChQs5+uijiUajbN68mZdffpnZs2fz1a9+tVePferUqYTDYe6++2723ntvYrEYY8aM2WGL68yZM5k6dSrf+973UEpRVlbGww8/vNNu7h2ZPXs2zz//PA8//DCjR48mHo8XWocBLr/8cn7zm9/w1ltvcdttt+3y/Qgh+shAz0IRYqTqahZwcXGxmjNnjvr973+v0ul0h/1t21bXXXed2n///VUoFFKxWEzNnDlTXXrpperDDz8s7LdmzRp18sknq3g8roBOszUPOOAABahXXnmlsG3jxo0KUOXl5crzvE7numTJEvXJT35SVVVVKcuy1KhRo9Txxx+v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Npc9+MzT8NwIfP52WChH+kFIoeKRK0Whr+aHGER7+vpbXbLJqC6hiIisTgqAIk3EC+BffQUqXlTKZT4B8Phx+G8/gN+5bu7zI/kaxyYqALi2STYZI5uwSMftVdOGTkREzk4BUKSJPHoYhoqvfl0IfP5H8BvXzp0FTLnRyd2WhK1ZPhGRNUrv3iJN5P79516oeaIC3z8+9/HUTHcOhT8RkbVL7+AiTWS0tPDS73zGyks3FhERWTkKgCJNpMU5924ds9eLiMj6owAo0kRu2ja3h+9C4ja8vn9JhyMiIitEAVCkidy2C1KxV58FtAy4Yw+0uMsyLBERWWYKgCJNJBmDv/qZ6O8LhUDLgP4M/O71yzYsERFZZgqAIk3mrTvhf74N2hPR57YZhb7ZPr6v74cvv/Pl50VEZP1RHUCRJvSW7fCmi+DhQ1Ev4MpML+Cf3wMXd6z06EREZKkpAIo0qZgFt+6MPkREpLloCVhERESkySgAioiIiDQZBUARERGRJqMAKCIiItJkFABFREREmowCoIiIiEiTUQAUERERaTIKgCIiIiJNRgFQREREpMkoAIqIiIg0GQVAERERkSajACgiIiLSZBQARURERJqMAqCIiIhIk1EAFBEREWkyCoAiIiIiTUYBUERERKTJKACKiIiINBkFQBEREZEmowAoIiIi0mQUAEVERESajAKgiIiISJNRABQRERFpMgqAIiIiIk1GAVBERESkydjnclEYhgDk8/klHYyIiIiIXJjZnDab287mnAJgoVAAYNOmTYsYloiIiIgstUKhQDabPes1RngOMTEIAk6ePElLSwuGYTRsgCIiIiLSGGEYUigU2LBhA6Z59l1+5xQARURERGT90CEQERERkSajACgiIiLSZBQARURERJqMAqCIiIhIk1EAFBEREWkyCoAiIiIiTUYBUERERKTJ/H8bSrwldawG5gAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAGpCAYAAAAdhodAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAACrBElEQVR4nOzdd3gc5bn38e+07ate3Du2MRgMmGZ67wFCSCANSINAICflTU9OSIMkpB0IoYWSHAIh5EDoxfRiijE22ICNca+S1bV1yvP+MbsryZJsyZasdn+uS15pdnZ2di3t/vYp96MppRRCCCGEEGLE0Af6BIQQQgghxJ4lAVAIIYQQYoSRACiEEEIIMcJIABRCCCGEGGEkAAohhBBCjDASAIUQQgghRhgJgEIIIYQQI4wEQCGEEEKIEUYCoBBCCCHECCMBUIgBcuedd6JpWoevyspKjj32WB555JFdPu6NN97InXfe2XcnKga1TZs28dOf/pTFixf3y/Hzv6dr1qwpbLv44ouZNGlSh/1+9atf8eCDD/bLOQgh+p4EQCEG2B133MGCBQt49dVXueWWWzAMg7POOouHH354l44nAXBk2bRpE1dffXW/BcCu/PjHP+aBBx7osE0CoBBDiznQJyDESLfvvvsyd+7cws+nnnoqpaWl3HPPPZx11lkDeGZiOEomk0Qikd06xtSpU/vobIQQA0VaAIUYZEKhEIFAAMuyOmzPZrP84he/YObMmQSDQSorK7nkkkuora0t7DNp0iSWLVvGCy+8UOhWnjRpEkopqqurueKKKwr7uq5LaWkpuq6zdevWwvbf//73mKZJY2NjYdvChQv52Mc+RllZGaFQiAMOOID77ruv07lv2bKFSy+9lHHjxhEIBJg8eTJXX301juMU9lmzZg2apnHdddfx+9//nsmTJxOLxTj88MN57bXXOhzv4osvJhaLsXLlSk4//XRisRjjx4/nW9/6FplMptfPD8Czzz7LscceS3l5OeFwmAkTJnDeeeeRTCYL+/zlL39h//33JxaLEY/HmTlzJj/4wQ929N8GQCaT4Wc/+xl77703oVCI8vJyjjvuOF599dXCPkopbrzxRubMmUM4HKa0tJRPfOITrFq1qsOxjj32WPbdd1/efPNNjjrqKCKRCFOmTOHaa6/F8zwAnn/+eQ4++GAALrnkksL/+U9/+tMOz9+7777LySefTDwe54QTTgDg6aef5uyzz2bcuHGEQiGmTZvGpZdeyrZt23b6OLfvAtY0jUQiwV133VU4h2OPPZY1a9ZgmibXXHNNp2O8+OKLaJrGv/71r53enxCiHyghxIC44447FKBee+01Zdu2ymazav369eqqq65Suq6rJ554orCv67rq1FNPVdFoVF199dXq6aefVrfddpsaO3asmjVrlkomk0oppRYtWqSmTJmiDjjgALVgwQK1YMECtWjRIqWUUhdccIGaPn164ZivvfaaAlQ4HFZ33313Yftpp52mDjnkkMLPzz77rAoEAuqoo45S//znP9UTTzyhLr74YgWoO+64o7Df5s2b1fjx49XEiRPVzTffrObPn69+/vOfq2AwqC6++OLCfqtXr1aAmjRpkjr11FPVgw8+qB588EE1e/ZsVVpaqhobGwv7XnTRRSoQCKi9995bXXfddWr+/PnqJz/5idI0TV199dW9fn5Wr16tQqGQOumkk9SDDz6onn/+eXX33Xerz33uc6qhoUEppdQ999yjAHXllVeqp556Ss2fP1/ddNNN6qqrrtrh/6dt2+q4445Tpmmqb3/72+qxxx5TDz30kPrBD36g7rnnnsJ+X/7yl5VlWepb3/qWeuKJJ9Q//vEPNXPmTFVdXa22bNlS2O+YY45R5eXlaq+99lI33XSTevrpp9Xll1+uAHXXXXcppZRqamoq/B796Ec/Kvyfr1+/vvD8WZalJk2apK655hr1zDPPqCeffFIppdRf/vIXdc0116iHHnpIvfDCC+quu+5S+++/v5oxY4bKZrOdfk9Xr17d4f9l4sSJhZ8XLFigwuGwOv300wvnsGzZMqWUUueee66aMGGCchynw/N1/vnnqzFjxijbtnf4vAoh+ocEQCEGSP6NdfuvYDCobrzxxg775kPJv//97w7b33zzTQV02H+fffZRxxxzTKf7u+222xSg1q1bp5RS6he/+IWaOXOm+tjHPqYuueQSpZRS2WxWRaNR9YMf/KBwu5kzZ6oDDjig0xv1mWeeqUaPHq1c11VKKXXppZeqWCym1q5d22G/6667TgGFQJAPgLNnz+4QCt544w0FdAhLF110kQLUfffd1+GYp59+upoxY0avn5/7779fAWrx4sWdnp+8r33ta6qkpKTb67vzt7/9TQHq1ltv7XafBQsWKED97ne/67B9/fr1KhwOq+985zuFbcccc4wC1Ouvv95h31mzZqlTTjml8HP+MbYP43n55+/222/f4bl7nqds21Zr165VgPrPf/5TuK4nAVAppaLRqLrooos6Hfu5555TgHrggQcK2zZu3KhM0+wQ4oUQe5Z0AQsxwP72t7/x5ptv8uabb/L4449z0UUXccUVV3DDDTcU9nnkkUcoKSnhrLPOwnGcwtecOXMYNWoUzz///E7v58QTTwRg/vz5gN8FeNJJJ3HiiSfy9NNPA7BgwQISiURh35UrV/LBBx/wmc98BqDDfZ9++uls3ryZ5cuXF87xuOOOY8yYMR32O+200wB44YUXOpzPGWecgWEYhZ/3228/ANauXdthP03TOo2F3G+//Trs19PnZ86cOQQCAb7yla9w1113dep2BTjkkENobGzkwgsv5D//+U+PukQBHn/8cUKhEF/4whe63eeRRx5B0zQ++9nPdjjPUaNGsf/++3f6fxw1ahSHHHLIDh97T5x33nmdttXU1HDZZZcxfvx4TNPEsiwmTpwIwPvvv9+r4+/Isccey/7778+f//znwrabbroJTdP4yle+0mf3I4ToHQmAQgywvffem7lz5zJ37lxOPfVUbr75Zk4++WS+853vFMbhbd26lcbGxsLYwPZfW7Zs6VFImThxIlOnTmX+/Pkkk0kWLFhQCIAbNmxg+fLlzJ8/n3A4zLx58wr3C/Dtb3+70/1efvnlAIX73rp1Kw8//HCn/fbZZ58O++WVl5d3+DkYDAKQSqU6bI9EIoRCoU77ptPpws89fX7yj7+qqoorrriCqVOnMnXqVP70pz8VjvW5z32O22+/nbVr13LeeedRVVXFoYceWgjJ3amtrWXMmDHoevcvq1u3bi2Mx9z+PF977bWdPkf5x779c7QjkUiEoqKiDts8z+Pkk0/m//7v//jOd77DM888wxtvvFEYg9mb4/fEVVddxTPPPMPy5cuxbZtbb72VT3ziE4waNapP70cI0XMyC1iIQWi//fbjySefZMWKFRxyyCFUVFRQXl7OE0880eX+8Xi8R8c94YQT+M9//sMLL7yA53kce+yxxONxxowZw9NPP838+fM56qijCmGsoqICgO9///t8/OMf7/KYM2bMKOy733778ctf/rLL/caMGdOjc9wVvXl+jjrqKI466ihc12XhwoVcf/31/Nd//RfV1dVccMEFgD+h4pJLLiGRSPDiiy/y3//935x55pmsWLGi0Eq2vcrKSl5++WU8z+s2BFZUVKBpGi+99FLhOW6vq227S9O0TtuWLl3KkiVLuPPOO7nooosK21euXNnn9w/w6U9/mu9+97v8+c9/5rDDDmPLli0dJiQJIfY8CYBCDEL5mm6VlZUAnHnmmdx77724rsuhhx66w9vuqIXoxBNP5JZbbuGPf/wjhx12WCEYnXDCCTzwwAO8+eab/OpXvyrsP2PGDPbaay+WLFnSYXtXzjzzTB577DGmTp1KaWlpTx9qn+jN85NnGAaHHnooM2fO5O6772bRokWFAJgXjUY57bTTyGaznHPOOSxbtqzbAHjaaadxzz33cOedd3bbDXzmmWdy7bXXsnHjRj75yU/27kF2o7uW0x3Jh8LtA+fNN9+8W+fR3TmEQiG+8pWvcMMNN/Dqq68yZ84cjjjiiF2+LyHE7pMAKMQAW7p0aaFMSl1dHf/3f//H008/zbnnnsvkyZMBuOCCC7j77rs5/fTT+frXv84hhxyCZVls2LCB5557jrPPPptzzz0XgNmzZ3Pvvffyz3/+kylTphAKhZg9ezYAxx9/PJqm8dRTT3H11VcXzuHEE08stATlx//l3XzzzZx22mmccsopXHzxxYwdO5b6+nref/99Fi1aVCjj8bOf/Yynn36aefPmcdVVVzFjxgzS6TRr1qzhscce46abbmLcuHH98hz29Pm56aabePbZZznjjDOYMGEC6XSa22+/vcPj/vKXv0w4HOaII45g9OjRbNmyhWuuuYbi4uJCyZWuXHjhhdxxxx1cdtllLF++nOOOOw7P83j99dfZe++9ueCCCzjiiCP4yle+wiWXXMLChQs5+uijiUajbN68mZdffpnZs2fz1a9+tVePferUqYTDYe6++2723ntvYrEYY8aM2WGL68yZM5k6dSrf+973UEpRVlbGww8/vNNu7h2ZPXs2zz//PA8//DCjR48mHo8XWocBLr/8cn7zm9/w1ltvcdttt+3y/Qgh+shAz0IRYqTqahZwcXGxmjNnjvr973+v0ul0h/1t21bXXXed2n///VUoFFKxWEzNnDlTXXrpperDDz8s7LdmzRp18sknq3g8roBOszUPOOAABahXXnmlsG3jxo0KUOXl5crzvE7numTJEvXJT35SVVVVKcuy1KhRo9Txxx+v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Npc9+MzT8NwIfP52WChH+kFIoeKRK0Whr+aHGER7+vpbXbLJqC6hiIisTgqAIk3EC+BffQUqXlTKZT4B8Phx+G8/gN+5bu7zI/kaxyYqALi2STYZI5uwSMftVdOGTkREzk4BUKSJPHoYhoqvfl0IfP5H8BvXzp0FTLnRyd2WhK1ZPhGRNUrv3iJN5P79516oeaIC3z8+9/HUTHcOhT8RkbVL7+AiTWS0tPDS73zGyks3FhERWTkKgCJNpMU5924ds9eLiMj6owAo0kRu2ja3h+9C4ja8vn9JhyMiIitEAVCkidy2C1KxV58FtAy4Yw+0uMsyLBERWWYKgCJNJBmDv/qZ6O8LhUDLgP4M/O71yzYsERFZZgqAIk3mrTvhf74N2hPR57YZhb7ZPr6v74cvv/Pl50VEZP1RHUCRJvSW7fCmi+DhQ1Ev4MpML+Cf3wMXd6z06EREZKkpAIo0qZgFt+6MPkREpLloCVhERESkySgAioiIiDQZBUARERGRJqMAKCIiItJkFABFREREmowCoIiIiEiTUQAUERERaTIKgCIiIiJNRgFQREREpMkoAIqIiIg0GQVAERERkSajACgiIiLSZBQARURERJqMAqCIiIhIk1EAFBEREWkyCoAiIiIiTUYBUERERKTJKACKiIiINBkFQBEREZEmowAoIiIi0mQUAEVERESajAKgiIiISJNRABQRERFpMgqAIiIiIk1GAVBERESkydjnclEYhgDk8/klHYyIiIiIXJjZnDab287mnAJgoVAAYNOmTYsYloiIiIgstUKhQDabPes1RngOMTEIAk6ePElLSwuGYTRsgCIiIiLSGGEYUigU2LBhA6Z59l1+5xQARURERGT90CEQERERkSajACgiIiLSZBQARURERJqMAqCIiIhIk1EAFBEREWkyCoAiIiIiTUYBUERERKTJ/H8bSrwldawG5gAAAABJRU5ErkJggg==" }, "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAGpCAYAAAAdhodAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACy6klEQVR4nOzdd3xb5d338c9Z2vIeiZ29Q8iCsAlhb8ooUKClQAfQUri7Hui4WwpdFCh3J12U1QItLYWyygiUsAKEFUgIGZCd2PG2Nc+6nj+OJG/HTux4Xe/XK7F1dCQdyRpfXeN3KUIIgSRJkiRJkjRqqIN9AJIkSZIkSdK+JQOgJEmSJEnSKCMDoCRJkiRJ0igjA6AkSZIkSdIoIwOgJEmSJEnSKCMDoCRJkiRJ0igjA6AkSZIkSdIoIwOgJEmSJEnSKCMDoCRJkiRJ0igjA6A0bNx9990oitLuX2lpKUcffTSPP/74Hl/v7bffzt13391/ByoNaTt27OAHP/gB77777oBcf/Z5umnTpty2Sy+9lEmTJrXb7yc/+QmPPPLIgBxDb3R1TCNdT3/7Sy+9lEgksu8PSpIGiQyA0rBz1113sXz5cl599VX++Mc/omkaZ5xxBo899tgeXZ8MgKPLjh07uOGGGwYsAHble9/7Hg8//HC7bYMdALs6ppFuMP72kjRU6YN9AJLUV/vvvz+LFi3KnT755JMpLCzkgQce4IwzzhjEI5NGokQiQSgU2qvrmDp1aj8dTf8ZisckSdK+I1sApWEvEAjg8/kwDKPddtM0+dGPfsSsWbPw+/2UlpZy2WWXUVNTk9tn0qRJrF69mmXLluW6lSdNmoQQgvLycq666qrcvo7jUFhYiKqqVFdX57bfdttt6LpOY2Njbtubb77JJz7xCYqKiggEAixcuJAHH3yw07FXVVVxxRVXMG7cOHw+H5MnT+aGG27Atu3cPps2bUJRFG699VZuu+02Jk+eTCQS4bDDDuO1115rd33ZbqwNGzZw6qmnEolEGD9+PN/4xjdIp9N9fnwAnn/+eY4++miKi4sJBoNMmDCBT37ykyQSidw+v/vd75g/fz6RSIRoNMqsWbP4zne+09OfDYB0Os2NN97I7NmzCQQCFBcXc8wxx/Dqq6/m9hFCcPvtt7NgwQKCwSCFhYWce+65fPzxx+2u6+ijj2b//fdnxYoVLF68mFAoxJQpU7jppptwXReAF154gYMOOgiAyy67LPc3/8EPftDu8Xv//fc58cQTiUajHHfccQA8++yznHnmmYwbN45AIMC0adO44oorqK2t3e397NjdqigK8Xice+65J3cMRx99NJs2bULXdX760592uo4XX3wRRVH4xz/+0eNtrV69mhNPPJFQKERpaSlXXXUVTzzxBIqi8MILL3R7TAsXLmTx4sWdrs9xHCorKznnnHNy23r73Jk0aRKnn346Tz31FAcccADBYJBZs2Zx55137uYRa33e33zzzfz4xz9mwoQJBAIBFi1axHPPPddu3w0bNnDZZZcxffp0QqEQlZWVnHHGGbz//vu5fXb3t297Xbt77ezp812ShhQhScPEXXfdJQDx2muvCcuyhGmaYuvWreKaa64RqqqKp556Krev4zji5JNPFuFwWNxwww3i2WefFXfccYeorKwU++23n0gkEkIIId5++20xZcoUsXDhQrF8+XKxfPly8fbbbwshhLjgggvEjBkzctf52muvCUAEg0Fx33335bafcsop4uCDD86dfv7554XP5xOLFy8Wf//738VTTz0lLr30UgGIu+66K7ffzp07xfjx48XEiRPFH/7wB7F06VLxwx/+UPj9fnHppZfm9tu4caMAxKRJk8TJJ58sHnnkEfHII4+IuXPnisLCQtHY2Jjb95JLLhE+n0/Mnj1b3HrrrWLp0qXi+9//vlAURdxwww19fnw2btwoAoGAOOGEE8QjjzwiXnjhBXHfffeJiy++WDQ0NAghhHjggQcEIK6++mrxzDPPiKVLl4rf//734pprrunx72lZljjmmGOEruvim9/8pnjyySfFo48+Kr7zne+IBx54ILffF7/4RWEYhvjGN74hnnrqKXH//feLWbNmifLyclFVVZXbb8mSJaK4uFhMnz5d/P73vxfPPvus+PKXvywAcc899wghhGhqaso9j/73f/839zffunVr7vEzDENMmjRJ/PSnPxXPPfecePrpp4UQQvzud78TP/3pT8Wjjz4qli1bJu655x4xf/58MXPmTGGaZqfn6caNG9v9XSZOnJg7vXz5chEMBsWpp56aO4bVq1cLIYQ4++yzxYQJE4Rt2+0er/POO09UVFQIy7K6fUx37NghiouLxYQJE8Tdd98tnnzySXHxxReLSZMmCUD897//7faYfvnLXwpArFu3rt11PvnkkwIQjz76qBCi988dIYSYOHGiGDdunNhvv/3EvffeK55++mlx3nnnCUAsW7as2/shROvzfvz48eLII48UDz30kPjHP/4hDjroIGEYhnj11Vdz+y5btkx84xvfEP/85z/FsmXLxMMPPyzOOussEQwGxYcffiiE6N3fvjevnT19vkvSUCMDoDRsZN+8O/7z+/3i9ttvb7dv9k36oYceard9xYoVAmi3/5w5c8SSJUs63d4dd9whALFlyxYhhBA/+tGPxKxZs8QnPvEJcdlllwkhhDBNU4TDYfGd73wnd7lZs2aJhQsXdvqgPv3008XYsWOF4zhCCCGuuOIKEYlExObNm9vtd+uttwogFwiyH4Rz585tFwreeOMNAbQLS5dccokAxIMPPtjuOk899VQxc+bMPj8+//znPwUg3n333U6PT9ZXvvIVUVBQ0O353bn33nsFIP70pz91u8/y5csFIH7+85+3275161YRDAbFtddem9u2ZMkSAYjXX3+93b777befOOmkk3Kns/exbRjPyj5+d955Z4/H7rqusCxLbN68WQDi3//+d+683gRAIYQIh8Pikksu6XTd//3vfwUgHn744dy27du3C13X2wWRrvy///f/hKIouedO1kknnbTbAFhbWyt8Pl+757IQQpx//vmivLw893zuy2tr4sSJIhAItHuOJ5NJUVRUJK644ooe70v2eV9RUSGSyWRue3NzsygqKhLHH398t5e1bVuYpimmT58uvva1r3U6xp7+9rt77ezp812ShhrZBSwNO/feey8rVqxgxYoV/Oc//+GSSy7hqquu4je/+U1un8cff5yCggLOOOMMbNvO/VuwYAFjxoxp1xXWneOPPx6ApUuXAl4X4AknnMDxxx/Ps88+C8Dy5cuJx+O5fTds2MCHH37Ipz/9aYB2t33qqaeyc+dO1q5dmzvGY445hoqKinb7nXLKKQAsW7as3fGcdtppaJqWOz1v3jwANm/e3G4/RVE6jYWcN29eu/16+/gsWLAAn8/H5Zdfzj333NOp2xXg4IMPprGxkQsvvJB///vfveoSBfjPf/5DIBDgc5/7XLf7PP744yiKwmc+85l2xzlmzBjmz5/f6e84ZswYDj744B7ve2988pOf7LRt165dXHnllYwfPx5d1zEMg4kTJwKwZs2aPl1/T44++mjmz5/Pb3/729y23//+9yiKwuWXX97jZZctW8b+++/Pfvvt1277hRdeuNvbLS4u5owzzuCee+7JdZk3NDTw73//m89+9rPoujdkvK+vrQULFjBhwoTc6UAgwIwZM3r9NznnnHMIBAK509FolDPOOIMXX3wRx3EA73X2k5/8hP322w+fz4eu6/h8PtavX9+nv01vXjt7+nyXpKFGBkBp2Jk9ezaLFi1i0aJFnHzyyfzhD3/gxBNP5Nprr82Nw6uurqaxsTE3NrDtv6qqql69aU+cOJGpU6eydOlSEokEy5cvzwXAbdu2sXbtWpYuXUowGOTwww/P3S7AN7/5zU63++Uvfxkgd9vV1dU89thjnfabM2dOu/2yiouL2532+/0AJJPJdttDoVC7D8zsvqlUKne6t49P9v6XlZVx1VVXMXXqVKZOncovf/nL3HVdfPHF3HnnnWzevJlPfvKTlJWVccghh+RCcndqamqoqKhAVbt/G6qurs6Nx+x4nK+99tpuH6Psfe/4GPUkFAqRl5fXbpvrupx44on861//4tprr+W5557jjTfeyI3B7Mv198Y111zDc889x9q1a7Esiz/96U+ce+65jBkzpsfL1dXVUV5e3ml7V9u68rnPfY7t27fn/nYPPPAA6XSaSy+9NLdPX19be/s36eo+jxkzBtM0icViAHz961/ne9/7HmeddRaPPfYYr7/+OitWrGD+/Pl9/tvv7rWzp893SRpq5CxgaUSYN28eTz/9NOvWrePggw+mpKSE4uJinnrqqS73j0ajvbre4447jn//+98sW7YM13U5+uijiUajVFRU8Oyzz7J06VIWL16cC2MlJSUAfPvb3243aL6tmTNn5vadN28eP/7xj7vcr6KiolfHuCf68vgsXryYxYsX4zgOb775Jr/+9a/56le/Snl5ORdccAHgDaq/7LLLiMfjvPjii1x//fWcfvrprFu3LtdK1lFpaSkvv/wyrut2GwJLSkpQFIWXXnop9xi31dW2vaUoSqdtq1atYuXKldx9991ccsklue0bNmzo99sHuOiii7juuuv47W9/y6GHHkpVVVW7CUndKS4ubjdBKauqqqpXt3vSSSdRUVHBXXfdxUknncRdd93FIYcc0q5Fsb9eW73V1bFXVVXh8/lydfv++te/8tnPfpaf/OQn7farra2loKCgX48H9uz5LklDjQyA0oiQretVWloKwOmnn87f/vY3HMfhkEMO6fGyPbVGHH/88fzxj3/kF7/4BYceemjuw+24447j4YcfZsWKFe0+dGbOnMn06dNZuXJlpw+jjk4//XSefPJJpk6dSmFhYW/var/oy+OTpWkahxxyCLNmzeK+++7j7bffzgXArHA4zCmnnIJpmpx11lmsXr262w/EU045hQceeIC77767227g008/nZtuuont27dz/vnn9+1OdqO7ltOeZENhx8D5hz/8Ya+Oo7tjCAQCXH755fzmN7/h1VdfZcGCBRxxxBG7vc4lS5Zw66238sEHH7QLbX/72996dUyapnHxxRfzi1/8gpdeeok333yz033ck+fO3vjXv/7FLbfckmuZa2lp4bHHHmPx4sW5IRGKonT62zzxxBNs376dadOm5bbtyd++J315vkvSUCMDoDTsrFq1Klcmpa6ujn/96188++yznH322UyePBmACy64gPvuu49TTz2V//mf/+Hggw/GMAy2bdvGf//7X84880zOPvtsAObOncvf/vY3/v73vzNlyhQCgQBz584F4Nhjj0VRFJ555hluuOGG3DEcf/zxuZag7Pi/rD/84Q+ccsopnHTSSVx66aVUVlZSX1/PmjVrePvtt3NlPG688UaeffZZDj/8cK655hpmzpxJKpVi06ZNPPnkk/z+979n3LhxA/IY9vbx+f3vf8/zzz/PaaedxoQJE0ilUrkSHtn7/cUvfpFgMMgRRxzB2LFjqaqq4qc//Sn5+fm5shtdufDCC7nrrru48sorWbt2Lccccwyu6/L6668ze/ZsLrjgAo444gguv/xyLrvsMt58802OOuoowuEwO3fu5OWXX2bu3Ll86Utf6tN9nzp1KsFgkPvuu4/Zs2cTiUSoqKjoscV11qxZTJ06lW9961sIISgqKuKxxx7bq26/uXPn8sILL/DYY48xduxYotFornUY4Mtf/jI333wzb731FnfccUevrvOrX/0qd955J6eccgo33ngj5eXl3H///Xz44YcAPXa3Z33uc5/jZz/7GRdddBHBYJBPfepT7c7vy2urP2iaxgknnMDXv/51XNflZz/7Gc3Nze1ej6effjp33303s2bNYt68ebz11lvccsstnV4/e/K372hPn++SNOQM9iwUSeqtrmYB5+fniwULFojbbrtNpFKpdvtbliVuvfVWMX/+fBEIBEQkEhGz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", - "text/plain": [ - "
" - ] + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAGpCAYAAAAdhodAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAACy6klEQVR4nOzdd3xb5d338c9Z2vIeiZ29Q8iCsAlhb8ooUKClQAfQUri7Hui4WwpdFCh3J12U1QItLYWyygiUsAKEFUgIGZCd2PG2Nc+6nj+OJG/HTux4Xe/XK7F1dCQdyRpfXeN3KUIIgSRJkiRJkjRqqIN9AJIkSZIkSdK+JQOgJEmSJEnSKCMDoCRJkiRJ0igjA6AkSZIkSdIoIwOgJEmSJEnSKCMDoCRJkiRJ0igjA6AkSZIkSdIoIwOgJEmSJEnSKCMDoCRJkiRJ0igjA6A0bNx9990oitLuX2lpKUcffTSPP/74Hl/v7bffzt13391/ByoNaTt27OAHP/gB77777oBcf/Z5umnTpty2Sy+9lEmTJrXb7yc/+QmPPPLIgBxDb3R1TCNdT3/7Sy+9lEgksu8PSpIGiQyA0rBz1113sXz5cl599VX++Mc/omkaZ5xxBo899tgeXZ8MgKPLjh07uOGGGwYsAHble9/7Hg8//HC7bYMdALs6ppFuMP72kjRU6YN9AJLUV/vvvz+LFi3KnT755JMpLCzkgQce4IwzzhjEI5NGokQiQSgU2qvrmDp1aj8dTf8ZisckSdK+I1sApWEvEAjg8/kwDKPddtM0+dGPfsSsWbPw+/2UlpZy2WWXUVNTk9tn0qRJrF69mmXLluW6lSdNmoQQgvLycq666qrcvo7jUFhYiKqqVFdX57bfdttt6LpOY2Njbtubb77JJz7xCYqKiggEAixcuJAHH3yw07FXVVVxxRVXMG7cOHw+H5MnT+aGG27Atu3cPps2bUJRFG699VZuu+02Jk+eTCQS4bDDDuO1115rd33ZbqwNGzZw6qmnEolEGD9+PN/4xjdIp9N9fnwAnn/+eY4++miKi4sJBoNMmDCBT37ykyQSidw+v/vd75g/fz6RSIRoNMqsWbP4zne+09OfDYB0Os2NN97I7NmzCQQCFBcXc8wxx/Dqq6/m9hFCcPvtt7NgwQKCwSCFhYWce+65fPzxx+2u6+ijj2b//fdnxYoVLF68mFAoxJQpU7jppptwXReAF154gYMOOgiAyy67LPc3/8EPftDu8Xv//fc58cQTiUajHHfccQA8++yznHnmmYwbN45AIMC0adO44oorqK2t3e397NjdqigK8Xice+65J3cMRx99NJs2bULXdX760592uo4XX3wRRVH4xz/+0eNtrV69mhNPPJFQKERpaSlXXXUVTzzxBIqi8MILL3R7TAsXLmTx4sWdrs9xHCorKznnnHNy23r73Jk0aRKnn346Tz31FAcccADBYJBZs2Zx55137uYRa33e33zzzfz4xz9mwoQJBAIBFi1axHPPPddu3w0bNnDZZZcxffp0QqEQlZWVnHHGGbz//vu5fXb3t297Xbt77ezp812ShhQhScPEXXfdJQDx2muvCcuyhGmaYuvWreKaa64RqqqKp556Krev4zji5JNPFuFwWNxwww3i2WefFXfccYeorKwU++23n0gkEkIIId5++20xZcoUsXDhQrF8+XKxfPly8fbbbwshhLjgggvEjBkzctf52muvCUAEg0Fx33335bafcsop4uCDD86dfv7554XP5xOLFy8Wf//738VTTz0lLr30UgGIu+66K7ffzp07xfjx48XEiRPFH/7wB7F06VLxwx/+UPj9fnHppZfm9tu4caMAxKRJk8TJJ58sHnnkEfHII4+IuXPnisLCQtHY2Jjb95JLLhE+n0/Mnj1b3HrrrWLp0qXi+9//vlAURdxwww19fnw2btwoAoGAOOGEE8QjjzwiXnjhBXHfffeJiy++WDQ0NAghhHjggQcEIK6++mrxzDPPiKVLl4rf//734pprrunx72lZljjmmGOEruvim9/8pnjyySfFo48+Kr7zne+IBx54ILffF7/4RWEYhvjGN74hnnrqKXH//feLWbNmifLyclFVVZXbb8mSJaK4uFhMnz5d/P73vxfPPvus+PKXvywAcc899wghhGhqaso9j/73f/839zffunVr7vEzDENMmjRJ/PSnPxXPPfecePrpp4UQQvzud78TP/3pT8Wjjz4qli1bJu655x4xf/58MXPmTGGaZqfn6caNG9v9XSZOnJg7vXz5chEMBsWpp56aO4bVq1cLIYQ4++yzxYQJE4Rt2+0er/POO09UVFQIy7K6fUx37NghiouLxYQJE8Tdd98tnnzySXHxxReLSZMmCUD897//7faYfvnLXwpArFu3rt11PvnkkwIQjz76qBCi988dIYSYOHGiGDdunNhvv/3EvffeK55++mlx3nnnCUAsW7as2/shROvzfvz48eLII48UDz30kPjHP/4hDjroIGEYhnj11Vdz+y5btkx84xvfEP/85z/FsmXLxMMPPyzOOussEQwGxYcffiiE6N3fvjevnT19vkvSUCMDoDRsZN+8O/7z+/3i9ttvb7dv9k36oYceard9xYoVAmi3/5w5c8SSJUs63d4dd9whALFlyxYhhBA/+tGPxKxZs8QnPvEJcdlllwkhhDBNU4TDYfGd73wnd7lZs2aJhQsXdvqgPv3008XYsWOF4zhCCCGuuOIKEYlExObNm9vtd+uttwogFwiyH4Rz585tFwreeOMNAbQLS5dccokAxIMPPtjuOk899VQxc+bMPj8+//znPwUg3n333U6PT9ZXvvIVUVBQ0O353bn33nsFIP70pz91u8/y5csFIH7+85+3275161YRDAbFtddem9u2ZMkSAYjXX3+93b777befOOmkk3Kns/exbRjPyj5+d955Z4/H7rqusCxLbN68WQDi3//+d+683gRAIYQIh8Pikksu6XTd//3vfwUgHn744dy27du3C13X2wWRrvy///f/hKIouedO1kknnbTbAFhbWyt8Pl+757IQQpx//vmivLw893zuy2tr4sSJIhAItHuOJ5NJUVRUJK644ooe70v2eV9RUSGSyWRue3NzsygqKhLHH398t5e1bVuYpimmT58uvva1r3U6xp7+9rt77ezp812ShhrZBSwNO/feey8rVqxgxYoV/Oc//+GSSy7hqquu4je/+U1un8cff5yCggLOOOMMbNvO/VuwYAFjxoxp1xXWneOPPx6ApUuXAl4X4AknnMDxxx/Ps88+C8Dy5cuJx+O5fTds2MCHH37Ipz/9aYB2t33qqaeyc+dO1q5dmzvGY445hoqKinb7nXLKKQAsW7as3fGcdtppaJqWOz1v3jwANm/e3G4/RVE6jYWcN29eu/16+/gsWLAAn8/H5Zdfzj333NOp2xXg4IMPprGxkQsvvJB///vfveoSBfjPf/5DIBDgc5/7XLf7PP744yiKwmc+85l2xzlmzBjmz5/f6e84ZswYDj744B7ve2988pOf7LRt165dXHnllYwfPx5d1zEMg4kTJwKwZs2aPl1/T44++mjmz5/Pb3/729y23//+9yiKwuWXX97jZZctW8b+++/Pfvvt1277hRdeuNvbLS4u5owzzuCee+7JdZk3NDTw73//m89+9rPoujdkvK+vrQULFjBhwoTc6UAgwIwZM3r9NznnnHMIBAK509FolDPOOIMXX3wRx3EA73X2k5/8hP322w+fz4eu6/h8PtavX9+nv01vXjt7+nyXpKFGBkBp2Jk9ezaLFi1i0aJFnHzyyfzhD3/gxBNP5Nprr82Nw6uurqaxsTE3NrDtv6qqql69aU+cOJGpU6eydOlSEokEy5cvzwXAbdu2sXbtWpYuXUowGOTwww/P3S7AN7/5zU63++Uvfxkgd9vV1dU89thjnfabM2dOu/2yiouL2532+/0AJJPJdttDoVC7D8zsvqlUKne6t49P9v6XlZVx1VVXMXXqVKZOncovf/nL3HVdfPHF3HnnnWzevJlPfvKTlJWVccghh+RCcndqamqoqKhAVbt/G6qurs6Nx+x4nK+99tpuH6Psfe/4GPUkFAqRl5fXbpvrupx44on861//4tprr+W5557jjTfeyI3B7Mv198Y111zDc889x9q1a7Esiz/96U+ce+65jBkzpsfL1dXVUV5e3ml7V9u68rnPfY7t27fn/nYPPPAA6XSaSy+9NLdPX19be/s36eo+jxkzBtM0icViAHz961/ne9/7HmeddRaPPfYYr7/+OitWrGD+/Pl9/tvv7rWzp893SRpq5CxgaUSYN28eTz/9NOvWrePggw+mpKSE4uJinnrqqS73j0ajvbre4447jn//+98sW7YM13U5+uijiUajVFRU8Oyzz7J06VIWL16cC2MlJSUAfPvb3243aL6tmTNn5vadN28eP/7xj7vcr6KiolfHuCf68vgsXryYxYsX4zgOb775Jr/+9a/56le/Snl5ORdccAHgDaq/7LLLiMfjvPjii1x//fWcfvrprFu3LtdK1lFpaSkvv/wyrut2GwJLSkpQFIWXXnop9xi31dW2vaUoSqdtq1atYuXKldx9991ccsklue0bNmzo99sHuOiii7juuuv47W9/y6GHHkpVVVW7CUndKS4ubjdBKauqqqpXt3vSSSdRUVHBXXfdxUknncRdd93FIYcc0q5Fsb9eW73V1bFXVVXh8/lydfv++te/8tnPfpaf/OQn7farra2loKCgX48H9uz5LklDjQyA0oiQretVWloKwOmnn87f/vY3HMfhkEMO6fGyPbVGHH/88fzxj3/kF7/4BYceemjuw+24447j4YcfZsWKFe0+dGbOnMn06dNZuXJlpw+jjk4//XSefPJJpk6dSmFhYW/var/oy+OTpWkahxxyCLNmzeK+++7j7bffzgXArHA4zCmnnIJpmpx11lmsXr262w/EU045hQceeIC77767227g008/nZtuuont27dz/vnn9+1OdqO7ltOeZENhx8D5hz/8Ya+Oo7tjCAQCXH755fzmN7/h1VdfZcGCBRxxxBG7vc4lS5Zw66238sEHH7QLbX/72996dUyapnHxxRfzi1/8gpdeeok333yz033ck+fO3vjXv/7FLbfckmuZa2lp4bHHHmPx4sW5IRGKonT62zzxxBNs376dadOm5bbtyd++J315vkvSUCMDoDTsrFq1Klcmpa6ujn/96188++yznH322UyePBmACy64gPvuu49TTz2V//mf/+Hggw/GMAy2bdvGf//7X84880zOPvtsAObOncvf/vY3/v73vzNlyhQCgQBz584F4Nhjj0VRFJ555hluuOGG3DEcf/zxuZag7Pi/rD/84Q+ccsopnHTSSVx66aVUVlZSX1/PmjVrePvtt3NlPG688UaeffZZDj/8cK655hpmzpxJKpVi06ZNPPnkk/z+979n3LhxA/IY9vbx+f3vf8/zzz/PaaedxoQJE0ilUrkSHtn7/cUvfpFgMMgRRxzB2LFjqaqq4qc//Sn5+fm5shtdufDCC7nrrru48sorWbt2Lccccwyu6/L6668ze/ZsLrjgAo444gguv/xyLrvsMt58802OOuoowuEwO3fu5OWXX2bu3Ll86Utf6tN9nzp1KsFgkPvuu4/Zs2cTiUSoqKjoscV11qxZTJ06lW9961sIISgqKuKxxx7bq26/uXPn8sILL/DYY48xduxYotFornUY4Mtf/jI333wzb731FnfccUevrvOrX/0qd955J6eccgo33ngj5eXl3H///Xz44YcAPXa3Z33uc5/jZz/7GRdddBHBYJBPfepT7c7vy2urP2iaxgknnMDXv/51XNflZz/7Gc3Nze1ej6effjp33303s2bNYt68ebz11lvccsstnV4/e/K372hPn++SNOQM9iwUSeqtrmYB5+fniwULFojbbrtNpFKpdvtbliVuvfVWMX/+fBEIBEQkEhGz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" }, "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAGpCAYAAAAdhodAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC50ElEQVR4nOzdd3xb5d338c8Z2pL3doazyCYJK4FAk7AKCRtKoS0F+hQ6KHTeLTdtoVA6aGlL77YQWqBAS9krjAIJe2QxA4Ts7cR7aUvnnOv540iyHduJndjxut6vl2Pp6OjoSHakr6/xuxQhhECSJEmSJEkaNtT+PgFJkiRJkiTp0JIBUJIkSZIkaZiRAVCSJEmSJGmYkQFQkiRJkiRpmJEBUJIkSZIkaZiRAVCSJEmSJGmYkQFQkiRJkiRpmJEBUJIkSZIkaZiRAVCSJEmSJGmYkQFQOiTuvfdeFEVp91VYWMj8+fN59tlnD/i4t99+O/fee2/vnag0oO3evZtf/OIXfPjhh31y/PTv6bZt2zLbLrvsMioqKtrt9+tf/5qnnnqqT86hr/3nP//htttu69F9tm3bhqIoPf6/tnbtWn7xi1+0ez17yy9+8QsURen143ZHV+87r732Goqi8Nhjjx36k5KkHpIBUDqk/vnPf7J8+XLeeecd/v73v6NpGmeeeSbPPPPMAR1PBsDhZffu3dx44419FgA78/Of/5wnn3yy3bbhFgBLS0tZvnw5ixYt6tH91q5dy4033tgnAbA/yfcdaSjQ+/sEpOFl2rRpHHXUUZnrp512Grm5uTz44IOceeaZ/Xhm0lAUiUTwer0HdYxx48b10tn0XDKZRFEUdL1/3qpN08QwDFwuF3PmzOmXc5AkqW/IFkCpX7ndbpxOJw6Ho932RCLBzTffzKRJk3C5XBQWFnL55ZdTW1ub2aeiooJPP/2U119/PdOtXFFRgRCC4uJirrrqqsy+pmmSm5uLqqpUV1dntv/xj39E13Wampoy2959913OOuss8vLycLvdzJo1i0ceeaTDuVdVVfGNb3yDESNG4HQ6GTNmDDfeeCOGYWT2SXed3Xrrrfzxj39kzJgx+P1+jj32WFasWNHueJdddhl+v59NmzaxcOFC/H4/I0eO5Ic//CHxeLzHrw/AK6+8wvz588nPz8fj8TBq1CjOP/98IpFIZp877riDGTNm4Pf7CQQCTJo0ieuuu25fPzYA4vE4N910E5MnT8btdpOfn8+CBQt45513MvsIIbj99tuZOXMmHo+H3NxcLrjgArZs2dLuWPPnz2fatGmsXr2aE044Aa/Xy9ixY/ntb3+LZVmA3b129NFHA3D55Zdnfua/+MUv2r1+H3/8MaeeeiqBQICTTjoJgKVLl3L22WczYsQI3G4348eP5xvf+AZ1dXX7fZ57dwErikI4HOa+++7LnMP8+fPZtm0buq7zm9/8psMx3njjDRRF4dFHH+3ycdLdh//617/44Q9/SHl5OS6Xi02bNgGwbNkyTjrpJLKysvB6vcydO5eXX3653TFqa2u58sorGTlyZOb3Yu7cuSxbtizzOj/33HNs37693XAMaP1d/d3vfsfNN9/MmDFjcLlcvPrqq112Aa9bt46LL76Y4uJiXC4Xo0aN4qtf/SrxeJx7772XL3zhCwAsWLAg81htj9Gd5wTw3HPPMXPmTFwuF2PGjOHWW2/t+ge2l/Tv1ptvvsmcOXPweDyUl5fz85//HNM02+174403Mnv2bPLy8sjKyuKII47g7rvvRgiR2aer9522kskkP/3pTykrKyMrK4uTTz6Z9evXt9vngw8+4IwzzqCoqAiXy0VZWRmLFi1i165d3X5uknRQhCQdAv/85z8FIFasWCGSyaRIJBJi586d4pprrhGqqooXXnghs69pmuK0004TPp9P3HjjjWLp0qXirrvuEuXl5WLKlCkiEokIIYR4//33xdixY8WsWbPE8uXLxfLly8X7778vhBDioosuEocddljmmCtWrBCA8Hg84oEHHshsP/3008UxxxyTuf7KK68Ip9MpTjjhBPHwww+LF154QVx22WUCEP/85z8z++3Zs0eMHDlSjB49Wtx5551i2bJl4pe//KVwuVzisssuy+y3detWAYiKigpx2mmniaeeeko89dRTYvr06SI3N1c0NTVl9r300kuF0+kUkydPFrfeeqtYtmyZuP7664WiKOLGG2/s8euzdetW4Xa7xSmnnCKeeuop8dprr4kHHnhAXHLJJaKxsVEIIcSDDz4oAHH11VeLl156SSxbtkwsXrxYXHPNNfv8eSaTSbFgwQKh67r40Y9+JJ5//nmxZMkScd1114kHH3wws98VV1whHA6H+OEPfyheeOEF8Z///EdMmjRJFBcXi6qqqsx+8+bNE/n5+WLChAli8eLFYunSpeLb3/62AMR9990nhBCiubk583v0s5/9LPMz37lzZ+b1czgcoqKiQvzmN78RL7/8snjxxReFEELccccd4je/+Y1YsmSJeP3118V9990nZsyYISZOnCgSiUSH39OtW7e2+7mMHj06c3358uXC4/GIhQsXZs7h008/FUIIce6554pRo0YJwzDavV5f+MIXRFlZmUgmk12+pq+++qoARHl5ubjgggvEkiVLxLPPPivq6+vFv/71L6EoijjnnHPEE088IZ555hlxxhlnCE3TxLJlyzLH+PznPy8KCwvF3//+d/Haa6+Jp556Slx//fXioYceEkII8emnn4q5c+eKkpKSzLkvX7488/uSfvwFCxaIxx57TLz00kti69atmdva/h/48MMPhd/vFxUVFWLx4sXi5ZdfFv/+97/FhRdeKFpaWkRNTY349a9/LQDxt7/9LfNYNTU1QgjR7ee0bNkyoWmaOP7448UTTzwhHn30UXH00UeLUaNGie58hKV/t8rKysT//d//iRdffFFcc801AhBXXXVVu30vu+wycffdd4ulS5eKpUuXil/+8pfC4/G0+/+3r/ed9M+woqJCfPnLXxbPPfecePDBB8WoUaPEhAkTMr8XoVBI5Ofni6OOOko88sgj4vXXXxcPP/yw+OY3vynWrl273+ckSb1BBkDpkEh/sO795XK5xO23395u33Qoefzxx9ttX716tQDa7T916lQxb968Do931113CUDs2LFDCCHEzTffLCZNmiTOOusscfnllwshhEgkEsLn84nrrrsuc79JkyaJWbNmdfigPuOMM0RpaakwTVMIIcQ3vvEN4ff7xfbt29vtd+uttwogEwjSH5zTp09vFwpWrVolgHZh6dJLLxWAeOSRR9odc+HChWLixIk9fn0ee+wxAYgPP/yww+uT9p3vfEfk5OR0eXtX7r//fgGIf/zjH13us3z5cgGIP/zhD+2279y5U3g8HvHjH/84s23evHkCECtXrmy375QpU8TnP//5zPX0c2wbRNLSr98999yzz3O3LEskk0mxfft2AYinn346c1t3AqAQQvh8PnHppZd2OHY6ADz55JOZbZWVlULX9XYhojPp+37uc59rtz0cDou8vDxx5plntttumqaYMWNGuz9g/H6/+N73vrfPx1m0aFGH5yNE6+/quHHj2oXitre1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", - "text/plain": [ - "
" - ] + "text/plain": "
", + "image/png": "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csoppwCky+20HqoRjUb5+9//3uHj6qmWY0VRmDFjBr///e956KGH+PDDD3vkfiXpYGQAlI6oTz/9NF0mpaamhqeeeorFixdzwQUXMGbMGAAuvvhiHnnkEc4991y+/e1vM3v2bFwuF3v27OGNN97gc5/7HBdccAHQ8i36scceY+zYsXi9XqZPnw7AaaedhqIovPrqq9xyyy3pYzjjjDPSLUGp8X8p9957L+eccw6f+cxnuPzyyxk2bBi1tbWsX7+eDz/8MF3G49Zbb2Xx4sWceOKJXH/99UyaNIlYLMaOHTt46aWXuOeeew65e+xguvr83HPPPbz++ussXLiQkSNHEovFePDBBzMe99e//nV8Ph/z5s2jtLSU/fv3c/vtt5OdnZ0uudKRSy65hL/+9a9885vfZOPGjSxYsADbtnn//feZMmUKF198MfPmzeOqq67iiiuuYNWqVZxyyikEAgHKy8tZunQp06dP5+qrr+7WYx83bhw+n49HHnmEKVOmEAwGKSsrO2CL6+TJkxk3bhw//vGPEUKQl5fH888/f9Bu7gOZPn06b775Js8//zylpaWEQqF06zDAt771LX7961/zwQcfcP/99x/yfgCCwSB//OMfueyyy6itreXCCy+kqKiIqqoqPv74Y6qqqrj77rtpaGhgwYIFfOlLX2Ly5MmEQiFWrlzJyy+/nNGiPX36dJ566inuvvtujj32WFRVzajN2VW/+93vOOmkk5gzZw4//vGPGT9+PBUVFTz33HPce++9hEIhjjrqKAD+8pe/EAqF8Hq9jBkzhvz8/C49JoCf/exnnH322Zx55pl873vfw7IsfvWrXxEIBNJd3weTn5/P1Vdfza5du5g4cSIvvfQS9913H1dffTUjR44EnHG6v/vd7/jSl77EVVddRU1NDXfccUeHLdUHet/pihdeeIG77rqL888/n7FjxyKE4KmnnqK+vp4zzzyzy/cjSYelL2egSENHR7OAs7OzxcyZM8Xvfvc7EYvFMrY3DEPccccdYsaMGcLr9YpgMCgmT54svvGNb4jNmzent9uxY4c466yzRCgUEkC72Y2zZs0SgHj33XfTl+3du1cA7Wb2pXz88cfioosuEkVFRcLlcomSkhJx2mmniXvuuSdju6qqKnH99deLMWPGCJfLJfLy8sSxxx4rfvKTn4jm5mYhRMvsyd/85jft9gOI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" }, "metadata": {}, "output_type": "display_data" @@ -2249,22 +623,19 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "For our case of given graphs this can be simplified, as we always only have one path\n", - "between two nodes. This means that ``P`` doesn't need to be a dictionary, as it\n", - "would always only have one entry. All outputs can be lists. We do not need\n", - "``sigma`` as it would always be 2. We can omit it totally in the calculation, as it\n", - "would be 1 and correct for the linear factor when rescaling." + "## Simplify algorithm\n", + "\n", + "For our case of given graphs, the algorithm can be simplified, as we always only have\n", + "one path between two nodes. This means that `P` doesn't need to be a dictionary, as it\n", + "would always only have one entry. All outputs can be lists. We do not need `sigma` as it\n", + "would always be 2. We can omit it totally in the calculation, as it would be 1 and\n", + "correct for the linear factor when rescaling. As the predecessors are in the predecessor\n", + "matrix, we basically only need to figure out in which order to accumulate the\n", + "dependencies." ] }, { "cell_type": "code", - "execution_count": 10, - "metadata": { - "ExecuteTime": { - "end_time": "2023-05-15T10:50:14.112621Z", - "start_time": "2023-05-15T10:50:14.109782Z" - } - }, "outputs": [], "source": [ "def _single_source_given_paths_simplified(dist_row):\n", @@ -2297,15 +668,32 @@ " # If all nodes are unreachable, return empty list\n", " return []\n", " return list(dist_order)" - ] + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-04-18T09:51:07.533970Z", + "start_time": "2024-04-18T09:51:07.528496Z" + } + }, + "execution_count": 14 + }, + { + "cell_type": "markdown", + "source": [ + "The iteration over the nodes then becomes:" + ], + "metadata": { + "collapsed": false + } }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 15, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T10:50:14.187182Z", - "start_time": "2023-05-15T10:50:14.121109Z" + "end_time": "2024-04-18T09:51:29.611450Z", + "start_time": "2024-04-18T09:51:29.560024Z" } }, "outputs": [], @@ -2390,11 +778,11 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 16, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T10:50:14.270526Z", - "start_time": "2023-05-15T10:50:14.188645Z" + "end_time": "2024-04-18T09:51:44.214518Z", + "start_time": "2024-04-18T09:51:44.188049Z" } }, "outputs": [ @@ -2434,16 +822,19 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Compare performance" + "## Performance comparison\n", + "\n", + "We compare the performance of the simplified and the original betweenness centrality\n", + "calculation." ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 17, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T10:50:31.734144Z", - "start_time": "2023-05-15T10:50:14.270376Z" + "end_time": "2024-04-18T09:52:23.580242Z", + "start_time": "2024-04-18T09:52:00.815835Z" } }, "outputs": [ @@ -2451,9 +842,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "4.47 ms ± 1.15 ms per loop (mean ± std. dev. of 7 runs, 100 loops each)\n", - "9.8 ms ± 1.47 ms per loop (mean ± std. dev. of 7 runs, 100 loops each)\n", - "7.56 ms ± 715 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n" + "4.93 ms ± 659 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n", + "12.2 ms ± 488 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n", + "10.8 ms ± 1.19 ms per loop (mean ± std. dev. of 7 runs, 100 loops each)\n" ] } ], @@ -2467,19 +858,58 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The performance is not much better for small graphs like this, but for larger\n", - "graphs the implemented function [`betweenness_centrality_impl()`]\n", - "(shortest_paths_restricted) is orders of magnitude faster. See the source code linked in\n", - "[Implementation](#implementation)." + "On the first look, the simplified version is not faster, this is because the\n", + "example graph is too small. But for larger graphs the implemented function\n", + "[{py:func}`betweenness_centrality()`](betweenness_centrality_impl) is orders of\n", + "magnitude faster.\n", + "\n", + "In the [Implementation](#implementation) we also use arrays for the betweenness and\n", + "dependency values $\\delta$, which is more efficient than dictionaries. For\n", + "acceleration, we also use the {external+numba:mod}`numba` package to compile the\n", + "functions to machine code. {external+numba:mod}`numba` provides the\n", + "{external+numba:func}`njit` decorator, which can be used to pre-compile functions and\n", + "easy parallelization.\n", + "\n", + "### Real world example\n", + "\n", + "To compare further we use a real city, not especially large, but large enough for us\n", + "to see a difference." ] }, { "cell_type": "code", - "execution_count": 1, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'dict' object has no attribute 'graph'", + "output_type": "error", + "traceback": [ + "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", + "\u001B[0;31mAttributeError\u001B[0m Traceback (most recent call last)", + "Cell \u001B[0;32mIn[21], line 1\u001B[0m\n\u001B[0;32m----> 1\u001B[0m \u001B[43mpart\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mgraph\u001B[49m\n", + "\u001B[0;31mAttributeError\u001B[0m: 'dict' object has no attribute 'graph'" + ] + } + ], + "source": [ + "part.graph" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-04-18T09:54:47.350395Z", + "start_time": "2024-04-18T09:54:47.328785Z" + } + }, + "execution_count": 21 + }, + { + "cell_type": "code", + "execution_count": 29, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T11:07:39.687231Z", - "start_time": "2023-05-15T11:07:22.531071Z" + "end_time": "2024-04-18T10:04:17.300351Z", + "start_time": "2024-04-18T10:04:16.580503Z" } }, "outputs": [ @@ -2487,13708 +917,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2023-05-15 11:07:22,792 | DEBUG | __init__.py:307 | matplotlib data path: /home/carlsonb/miniconda3/envs/OSMnxPyrLab/lib/python3.10/site-packages/matplotlib/mpl-data\n", - "2023-05-15 11:07:22,797 | DEBUG | __init__.py:307 | CONFIGDIR=/home/carlsonb/.config/matplotlib\n", - "2023-05-15 11:07:22,799 | DEBUG | __init__.py:1475 | interactive is False\n", - "2023-05-15 11:07:22,800 | DEBUG | __init__.py:1476 | platform is linux\n", - "2023-05-15 11:07:22,851 | DEBUG | __init__.py:307 | CACHEDIR=/home/carlsonb/.cache/matplotlib\n", - "2023-05-15 11:07:22,856 | DEBUG | font_manager.py:1540 | Using fontManager instance from /home/carlsonb/.cache/matplotlib/fontlist-v330.json\n", - "2023-05-15 11:07:23,862 | DEBUG | session.py:15 | Could not import boto3, continuing with reduced functionality.\n", - "2023-05-15 11:07:23,864 | DEBUG | env.py:680 | PROJ data found in other locations: path='/home/carlsonb/miniconda3/envs/OSMnxPyrLab/share/proj'.\n", - "2023-05-15 11:07:24,449 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=265)\n", - " 2\tLOAD_FAST(arg=0, lineno=265)\n", - " 4\tLOAD_CONST(arg=1, lineno=265)\n", - " 6\tLOAD_FAST(arg=2, lineno=265)\n", - " 8\tBINARY_POWER(arg=None, lineno=265)\n", - " 10\tBINARY_MULTIPLY(arg=None, lineno=265)\n", - " 12\tLOAD_FAST(arg=1, lineno=265)\n", - " 14\tBINARY_ADD(arg=None, lineno=265)\n", - " 16\tRETURN_VALUE(arg=None, lineno=265)\n", - "2023-05-15 11:07:24,450 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:24,451 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,452 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=265)\n", - "2023-05-15 11:07:24,452 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,453 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_FAST(arg=0, lineno=265)\n", - "2023-05-15 11:07:24,453 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,454 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_CONST(arg=1, lineno=265)\n", - "2023-05-15 11:07:24,454 | DEBUG | byteflow.py:279 | stack ['$edge_u2.0']\n", - "2023-05-15 11:07:24,455 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=2, lineno=265)\n", - "2023-05-15 11:07:24,456 | DEBUG | byteflow.py:279 | stack ['$edge_u2.0', '$const4.1']\n", - "2023-05-15 11:07:24,456 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=BINARY_POWER(arg=None, lineno=265)\n", - "2023-05-15 11:07:24,457 | DEBUG | byteflow.py:279 | stack ['$edge_u2.0', '$const4.1', '$max_len6.2']\n", - "2023-05-15 11:07:24,457 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=BINARY_MULTIPLY(arg=None, lineno=265)\n", - "2023-05-15 11:07:24,458 | DEBUG | byteflow.py:279 | stack ['$edge_u2.0', '$8binary_power.3']\n", - "2023-05-15 11:07:24,458 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=LOAD_FAST(arg=1, lineno=265)\n", - "2023-05-15 11:07:24,458 | DEBUG | byteflow.py:279 | stack ['$10binary_multiply.4']\n", - "2023-05-15 11:07:24,459 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=BINARY_ADD(arg=None, lineno=265)\n", - "2023-05-15 11:07:24,459 | DEBUG | byteflow.py:279 | stack ['$10binary_multiply.4', '$edge_v12.5']\n", - "2023-05-15 11:07:24,460 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=RETURN_VALUE(arg=None, lineno=265)\n", - "2023-05-15 11:07:24,460 | DEBUG | byteflow.py:279 | stack ['$14binary_add.6']\n", - "2023-05-15 11:07:24,461 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:24,464 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:24,464 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:24,465 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:24,466 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:24,466 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:24,467 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:24,469 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:24,469 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:24,470 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$edge_u2.0'}), (4, {'res': '$const4.1'}), (6, {'res': '$max_len6.2'}), (8, {'lhs': '$const4.1', 'rhs': '$max_len6.2', 'res': '$8binary_power.3'}), (10, {'lhs': '$edge_u2.0', 'rhs': '$8binary_power.3', 'res': '$10binary_multiply.4'}), (12, {'res': '$edge_v12.5'}), (14, {'lhs': '$10binary_multiply.4', 'rhs': '$edge_v12.5', 'res': '$14binary_add.6'}), (16, {'retval': '$14binary_add.6', 'castval': '$16return_value.7'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:24,472 | DEBUG | interpreter.py:1342 | label 0:\n", - " edge_u = arg(0, name=edge_u) ['edge_u']\n", - " edge_v = arg(1, name=edge_v) ['edge_v']\n", - " max_len = arg(2, name=max_len) ['max_len']\n", - " $const4.1 = const(int, 10) ['$const4.1']\n", - " $8binary_power.3 = $const4.1 ** max_len ['$8binary_power.3', '$const4.1', 'max_len']\n", - " $10binary_multiply.4 = edge_u * $8binary_power.3 ['$10binary_multiply.4', '$8binary_power.3', 'edge_u']\n", - " $14binary_add.6 = $10binary_multiply.4 + edge_v ['$10binary_multiply.4', '$14binary_add.6', 'edge_v']\n", - " $16return_value.7 = cast(value=$14binary_add.6) ['$14binary_add.6', '$16return_value.7']\n", - " return $16return_value.7 ['$16return_value.7']\n", - "\n", - "2023-05-15 11:07:24,480 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:24,481 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,482 | DEBUG | ssa.py:193 | on stmt: edge_u = arg(0, name=edge_u)\n", - "2023-05-15 11:07:24,483 | DEBUG | ssa.py:193 | on stmt: edge_v = arg(1, name=edge_v)\n", - "2023-05-15 11:07:24,483 | DEBUG | ssa.py:193 | on stmt: max_len = arg(2, name=max_len)\n", - "2023-05-15 11:07:24,484 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(int, 10)\n", - "2023-05-15 11:07:24,484 | DEBUG | ssa.py:193 | on stmt: $8binary_power.3 = $const4.1 ** max_len\n", - "2023-05-15 11:07:24,485 | DEBUG | ssa.py:193 | on stmt: $10binary_multiply.4 = edge_u * $8binary_power.3\n", - "2023-05-15 11:07:24,485 | DEBUG | ssa.py:193 | on stmt: $14binary_add.6 = $10binary_multiply.4 + edge_v\n", - "2023-05-15 11:07:24,486 | DEBUG | ssa.py:193 | on stmt: $16return_value.7 = cast(value=$14binary_add.6)\n", - "2023-05-15 11:07:24,486 | DEBUG | ssa.py:193 | on stmt: return $16return_value.7\n", - "2023-05-15 11:07:24,487 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10binary_multiply.4': [],\n", - " '$14binary_add.6': [],\n", - " '$16return_value.7': [],\n", - " '$8binary_power.3': [],\n", - " '$const4.1': [],\n", - " 'edge_u': [],\n", - " 'edge_v': [],\n", - " 'max_len': []})\n", - "2023-05-15 11:07:24,488 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:24,510 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=216)\n", - " 2\tLOAD_DEREF(arg=1, lineno=216)\n", - " 4\tLOAD_CONST(arg=1, lineno=216)\n", - " 6\tCALL_FUNCTION(arg=1, lineno=216)\n", - " 8\tSTORE_FAST(arg=2, lineno=216)\n", - " 10\tLOAD_DEREF(arg=1, lineno=217)\n", - " 12\tLOAD_FAST(arg=0, lineno=217)\n", - " 14\tCALL_FUNCTION(arg=1, lineno=217)\n", - " 16\tSTORE_FAST(arg=0, lineno=217)\n", - " 18\tLOAD_FAST(arg=1, lineno=218)\n", - " 20\tLOAD_CONST(arg=2, lineno=218)\n", - " 22\tCOMPARE_OP(arg=0, lineno=218)\n", - " 24\tPOP_JUMP_IF_FALSE(arg=50, lineno=218)\n", - " 26\tLOAD_CONST(arg=3, lineno=219)\n", - " 28\tSTORE_FAST(arg=3, lineno=219)\n", - " 30\tLOAD_FAST(arg=1, lineno=220)\n", - " 32\tUNARY_NEGATIVE(arg=None, lineno=220)\n", - " 34\tSTORE_FAST(arg=4, lineno=220)\n", - " 36\tLOAD_FAST(arg=4, lineno=221)\n", - " 38\tLOAD_CONST(arg=2, lineno=221)\n", - " 40\tCOMPARE_OP(arg=0, lineno=221)\n", - " 42\tPOP_JUMP_IF_FALSE(arg=25, lineno=221)\n", - " 44\tLOAD_GLOBAL(arg=0, lineno=222)\n", - " 46\tRAISE_VARARGS(arg=1, lineno=222)\n", - "> 48\tLOAD_DEREF(arg=0, lineno=223)\n", - " 50\tPOP_JUMP_IF_FALSE(arg=49, lineno=223)\n", - " 52\tLOAD_FAST(arg=0, lineno=224)\n", - " 54\tLOAD_CONST(arg=2, lineno=224)\n", - " 56\tCOMPARE_OP(arg=2, lineno=224)\n", - " 58\tPOP_JUMP_IF_FALSE(arg=39, lineno=224)\n", - " 60\tLOAD_DEREF(arg=2, lineno=225)\n", - " 62\tPOP_JUMP_IF_FALSE(arg=35, lineno=225)\n", - " 64\tLOAD_DEREF(arg=2, lineno=226)\n", - " 66\tRETURN_VALUE(arg=None, lineno=226)\n", - "> 68\tLOAD_GLOBAL(arg=1, lineno=228)\n", - " 70\tLOAD_CONST(arg=4, lineno=228)\n", - " 72\tCALL_FUNCTION(arg=1, lineno=228)\n", - " 74\tRAISE_VARARGS(arg=1, lineno=228)\n", - "> 76\tLOAD_FAST(arg=0, lineno=229)\n", - " 78\tLOAD_CONST(arg=1, lineno=229)\n", - " 80\tCOMPARE_OP(arg=3, lineno=229)\n", - " 82\tPOP_JUMP_IF_FALSE(arg=49, lineno=229)\n", - " 84\tLOAD_FAST(arg=0, lineno=229)\n", - " 86\tLOAD_CONST(arg=5, lineno=229)\n", - " 88\tCOMPARE_OP(arg=3, lineno=229)\n", - " 90\tPOP_JUMP_IF_FALSE(arg=49, lineno=229)\n", - " 92\tLOAD_CONST(arg=2, lineno=230)\n", - " 94\tRETURN_VALUE(arg=None, lineno=230)\n", - "> 96\tJUMP_FORWARD(arg=4, lineno=230)\n", - "> 98\tLOAD_CONST(arg=6, lineno=232)\n", - " 100\tSTORE_FAST(arg=3, lineno=232)\n", - " 102\tLOAD_FAST(arg=1, lineno=233)\n", - " 104\tSTORE_FAST(arg=4, lineno=233)\n", - "> 106\tLOAD_FAST(arg=4, lineno=234)\n", - " 108\tLOAD_CONST(arg=7, lineno=234)\n", - " 110\tCOMPARE_OP(arg=4, lineno=234)\n", - " 112\tPOP_JUMP_IF_FALSE(arg=66, lineno=234)\n", - " 114\tLOAD_GLOBAL(arg=2, lineno=236)\n", - " 116\tLOAD_METHOD(arg=3, lineno=236)\n", - " 118\tLOAD_FAST(arg=0, lineno=236)\n", - " 120\tLOAD_GLOBAL(arg=4, lineno=236)\n", - " 122\tLOAD_FAST(arg=1, lineno=236)\n", - " 124\tCALL_FUNCTION(arg=1, lineno=236)\n", - " 126\tCALL_METHOD(arg=2, lineno=236)\n", - " 128\tRETURN_VALUE(arg=None, lineno=236)\n", - "> 130\tLOAD_FAST(arg=4, lineno=237)\n", - " 132\tLOAD_CONST(arg=2, lineno=237)\n", - " 134\tCOMPARE_OP(arg=3, lineno=237)\n", - " 136\tPOP_JUMP_IF_FALSE(arg=90, lineno=237)\n", - "> 138\tLOAD_FAST(arg=4, lineno=238)\n", - " 140\tLOAD_CONST(arg=1, lineno=238)\n", - " 142\tBINARY_AND(arg=None, lineno=238)\n", - " 144\tPOP_JUMP_IF_FALSE(arg=78, lineno=238)\n", - " 146\tLOAD_FAST(arg=2, lineno=239)\n", - " 148\tLOAD_FAST(arg=0, lineno=239)\n", - " 150\tINPLACE_MULTIPLY(arg=None, lineno=239)\n", - " 152\tSTORE_FAST(arg=2, lineno=239)\n", - "> 154\tLOAD_FAST(arg=4, lineno=240)\n", - " 156\tLOAD_CONST(arg=1, lineno=240)\n", - " 158\tINPLACE_RSHIFT(arg=None, lineno=240)\n", - " 160\tSTORE_FAST(arg=4, lineno=240)\n", - " 162\tLOAD_FAST(arg=0, lineno=241)\n", - " 164\tLOAD_FAST(arg=0, lineno=241)\n", - " 166\tINPLACE_MULTIPLY(arg=None, lineno=241)\n", - " 168\tSTORE_FAST(arg=0, lineno=241)\n", - " 170\tLOAD_FAST(arg=4, lineno=237)\n", - " 172\tLOAD_CONST(arg=2, lineno=237)\n", - " 174\tCOMPARE_OP(arg=3, lineno=237)\n", - " 176\tPOP_JUMP_IF_TRUE(arg=70, lineno=237)\n", - "> 178\tLOAD_FAST(arg=3, lineno=243)\n", - " 180\tPOP_JUMP_IF_FALSE(arg=96, lineno=243)\n", - " 182\tLOAD_CONST(arg=8, lineno=243)\n", - " 184\tLOAD_FAST(arg=2, lineno=243)\n", - " 186\tBINARY_TRUE_DIVIDE(arg=None, lineno=243)\n", - " 188\tRETURN_VALUE(arg=None, lineno=243)\n", - "> 190\tLOAD_FAST(arg=2, lineno=243)\n", - " 192\tRETURN_VALUE(arg=None, lineno=243)\n", - "2023-05-15 11:07:24,511 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:24,511 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,512 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=216)\n", - "2023-05-15 11:07:24,513 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,514 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_DEREF(arg=1, lineno=216)\n", - "2023-05-15 11:07:24,514 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,515 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_CONST(arg=1, lineno=216)\n", - "2023-05-15 11:07:24,516 | DEBUG | byteflow.py:279 | stack ['$2load_deref.0']\n", - "2023-05-15 11:07:24,516 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=CALL_FUNCTION(arg=1, lineno=216)\n", - "2023-05-15 11:07:24,517 | DEBUG | byteflow.py:279 | stack ['$2load_deref.0', '$const4.1']\n", - "2023-05-15 11:07:24,518 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=STORE_FAST(arg=2, lineno=216)\n", - "2023-05-15 11:07:24,518 | DEBUG | byteflow.py:279 | stack ['$6call_function.2']\n", - "2023-05-15 11:07:24,519 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_DEREF(arg=1, lineno=217)\n", - "2023-05-15 11:07:24,519 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,520 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=LOAD_FAST(arg=0, lineno=217)\n", - "2023-05-15 11:07:24,521 | DEBUG | byteflow.py:279 | stack ['$10load_deref.3']\n", - "2023-05-15 11:07:24,522 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=CALL_FUNCTION(arg=1, lineno=217)\n", - "2023-05-15 11:07:24,522 | DEBUG | byteflow.py:279 | stack ['$10load_deref.3', '$a12.4']\n", - "2023-05-15 11:07:24,523 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=STORE_FAST(arg=0, lineno=217)\n", - "2023-05-15 11:07:24,524 | DEBUG | byteflow.py:279 | stack ['$14call_function.5']\n", - "2023-05-15 11:07:24,524 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=LOAD_FAST(arg=1, lineno=218)\n", - "2023-05-15 11:07:24,525 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,525 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=LOAD_CONST(arg=2, lineno=218)\n", - "2023-05-15 11:07:24,526 | DEBUG | byteflow.py:279 | stack ['$b18.6']\n", - "2023-05-15 11:07:24,526 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=COMPARE_OP(arg=0, lineno=218)\n", - "2023-05-15 11:07:24,526 | DEBUG | byteflow.py:279 | stack ['$b18.6', '$const20.7']\n", - "2023-05-15 11:07:24,527 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=POP_JUMP_IF_FALSE(arg=50, lineno=218)\n", - "2023-05-15 11:07:24,527 | DEBUG | byteflow.py:279 | stack ['$22compare_op.8']\n", - "2023-05-15 11:07:24,528 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=26, stack=(), blockstack=(), npush=0), Edge(pc=98, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,529 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=26 nstack_initial=0), State(pc_initial=98 nstack_initial=0)])\n", - "2023-05-15 11:07:24,529 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,530 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=LOAD_CONST(arg=3, lineno=219)\n", - "2023-05-15 11:07:24,530 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,531 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=STORE_FAST(arg=3, lineno=219)\n", - "2023-05-15 11:07:24,532 | DEBUG | byteflow.py:279 | stack ['$const26.0']\n", - "2023-05-15 11:07:24,533 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=LOAD_FAST(arg=1, lineno=220)\n", - "2023-05-15 11:07:24,533 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,533 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=UNARY_NEGATIVE(arg=None, lineno=220)\n", - "2023-05-15 11:07:24,534 | DEBUG | byteflow.py:279 | stack ['$b30.1']\n", - "2023-05-15 11:07:24,534 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=STORE_FAST(arg=4, lineno=220)\n", - "2023-05-15 11:07:24,535 | DEBUG | byteflow.py:279 | stack ['$32unary_negative.2']\n", - "2023-05-15 11:07:24,535 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=LOAD_FAST(arg=4, lineno=221)\n", - "2023-05-15 11:07:24,536 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,536 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=LOAD_CONST(arg=2, lineno=221)\n", - "2023-05-15 11:07:24,536 | DEBUG | byteflow.py:279 | stack ['$exp36.3']\n", - "2023-05-15 11:07:24,537 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=COMPARE_OP(arg=0, lineno=221)\n", - "2023-05-15 11:07:24,537 | DEBUG | byteflow.py:279 | stack ['$exp36.3', '$const38.4']\n", - "2023-05-15 11:07:24,538 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=POP_JUMP_IF_FALSE(arg=25, lineno=221)\n", - "2023-05-15 11:07:24,538 | DEBUG | byteflow.py:279 | stack ['$40compare_op.5']\n", - "2023-05-15 11:07:24,538 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=44, stack=(), blockstack=(), npush=0), Edge(pc=48, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,539 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=98 nstack_initial=0), State(pc_initial=44 nstack_initial=0), State(pc_initial=48 nstack_initial=0)])\n", - "2023-05-15 11:07:24,539 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,540 | DEBUG | byteflow.py:278 | dispatch pc=98, inst=LOAD_CONST(arg=6, lineno=232)\n", - "2023-05-15 11:07:24,540 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,540 | DEBUG | byteflow.py:278 | dispatch pc=100, inst=STORE_FAST(arg=3, lineno=232)\n", - "2023-05-15 11:07:24,541 | DEBUG | byteflow.py:279 | stack ['$const98.0']\n", - "2023-05-15 11:07:24,541 | DEBUG | byteflow.py:278 | dispatch pc=102, inst=LOAD_FAST(arg=1, lineno=233)\n", - "2023-05-15 11:07:24,542 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,542 | DEBUG | byteflow.py:278 | dispatch pc=104, inst=STORE_FAST(arg=4, lineno=233)\n", - "2023-05-15 11:07:24,542 | DEBUG | byteflow.py:279 | stack ['$b102.1']\n", - "2023-05-15 11:07:24,543 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=106, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,543 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=44 nstack_initial=0), State(pc_initial=48 nstack_initial=0), State(pc_initial=106 nstack_initial=0)])\n", - "2023-05-15 11:07:24,543 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,544 | DEBUG | byteflow.py:278 | dispatch pc=44, inst=LOAD_GLOBAL(arg=0, lineno=222)\n", - "2023-05-15 11:07:24,544 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,545 | DEBUG | byteflow.py:278 | dispatch pc=46, inst=RAISE_VARARGS(arg=1, lineno=222)\n", - "2023-05-15 11:07:24,545 | DEBUG | byteflow.py:279 | stack ['$44load_global.0']\n", - "2023-05-15 11:07:24,545 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:24,546 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=48 nstack_initial=0), State(pc_initial=106 nstack_initial=0)])\n", - "2023-05-15 11:07:24,549 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,549 | DEBUG | byteflow.py:278 | dispatch pc=48, inst=LOAD_DEREF(arg=0, lineno=223)\n", - "2023-05-15 11:07:24,550 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,550 | DEBUG | byteflow.py:278 | dispatch pc=50, inst=POP_JUMP_IF_FALSE(arg=49, lineno=223)\n", - "2023-05-15 11:07:24,551 | DEBUG | byteflow.py:279 | stack ['$48load_deref.0']\n", - "2023-05-15 11:07:24,551 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=52, stack=(), blockstack=(), npush=0), Edge(pc=96, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,551 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=106 nstack_initial=0), State(pc_initial=52 nstack_initial=0), State(pc_initial=96 nstack_initial=0)])\n", - "2023-05-15 11:07:24,552 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,552 | DEBUG | byteflow.py:278 | dispatch pc=106, inst=LOAD_FAST(arg=4, lineno=234)\n", - "2023-05-15 11:07:24,553 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,553 | DEBUG | byteflow.py:278 | dispatch pc=108, inst=LOAD_CONST(arg=7, lineno=234)\n", - "2023-05-15 11:07:24,554 | DEBUG | byteflow.py:279 | stack ['$exp106.0']\n", - "2023-05-15 11:07:24,554 | DEBUG | byteflow.py:278 | dispatch pc=110, inst=COMPARE_OP(arg=4, lineno=234)\n", - "2023-05-15 11:07:24,555 | DEBUG | byteflow.py:279 | stack ['$exp106.0', '$const108.1']\n", - "2023-05-15 11:07:24,555 | DEBUG | byteflow.py:278 | dispatch pc=112, inst=POP_JUMP_IF_FALSE(arg=66, lineno=234)\n", - "2023-05-15 11:07:24,556 | DEBUG | byteflow.py:279 | stack ['$110compare_op.2']\n", - "2023-05-15 11:07:24,558 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=114, stack=(), blockstack=(), npush=0), Edge(pc=130, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,559 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=52 nstack_initial=0), State(pc_initial=96 nstack_initial=0), State(pc_initial=114 nstack_initial=0), State(pc_initial=130 nstack_initial=0)])\n", - "2023-05-15 11:07:24,559 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,560 | DEBUG | byteflow.py:278 | dispatch pc=52, inst=LOAD_FAST(arg=0, lineno=224)\n", - "2023-05-15 11:07:24,561 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,561 | DEBUG | byteflow.py:278 | dispatch pc=54, inst=LOAD_CONST(arg=2, lineno=224)\n", - "2023-05-15 11:07:24,562 | DEBUG | byteflow.py:279 | stack ['$a52.0']\n", - "2023-05-15 11:07:24,562 | DEBUG | byteflow.py:278 | dispatch pc=56, inst=COMPARE_OP(arg=2, lineno=224)\n", - "2023-05-15 11:07:24,563 | DEBUG | byteflow.py:279 | stack ['$a52.0', '$const54.1']\n", - "2023-05-15 11:07:24,564 | DEBUG | byteflow.py:278 | dispatch pc=58, inst=POP_JUMP_IF_FALSE(arg=39, lineno=224)\n", - "2023-05-15 11:07:24,564 | DEBUG | byteflow.py:279 | stack ['$56compare_op.2']\n", - "2023-05-15 11:07:24,565 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=60, stack=(), blockstack=(), npush=0), Edge(pc=76, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,565 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=96 nstack_initial=0), State(pc_initial=114 nstack_initial=0), State(pc_initial=130 nstack_initial=0), State(pc_initial=60 nstack_initial=0), State(pc_initial=76 nstack_initial=0)])\n", - "2023-05-15 11:07:24,566 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,566 | DEBUG | byteflow.py:278 | dispatch pc=96, inst=JUMP_FORWARD(arg=4, lineno=230)\n", - "2023-05-15 11:07:24,567 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,567 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=106, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,568 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=114 nstack_initial=0), State(pc_initial=130 nstack_initial=0), State(pc_initial=60 nstack_initial=0), State(pc_initial=76 nstack_initial=0), State(pc_initial=106 nstack_initial=0)])\n", - "2023-05-15 11:07:24,569 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,570 | DEBUG | byteflow.py:278 | dispatch pc=114, inst=LOAD_GLOBAL(arg=2, lineno=236)\n", - "2023-05-15 11:07:24,570 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,571 | DEBUG | byteflow.py:278 | dispatch pc=116, inst=LOAD_METHOD(arg=3, lineno=236)\n", - "2023-05-15 11:07:24,572 | DEBUG | byteflow.py:279 | stack ['$114load_global.0']\n", - "2023-05-15 11:07:24,572 | DEBUG | byteflow.py:278 | dispatch pc=118, inst=LOAD_FAST(arg=0, lineno=236)\n", - "2023-05-15 11:07:24,573 | DEBUG | byteflow.py:279 | stack ['$116load_method.1']\n", - "2023-05-15 11:07:24,573 | DEBUG | byteflow.py:278 | dispatch pc=120, inst=LOAD_GLOBAL(arg=4, lineno=236)\n", - "2023-05-15 11:07:24,574 | DEBUG | byteflow.py:279 | stack ['$116load_method.1', '$a118.2']\n", - "2023-05-15 11:07:24,575 | DEBUG | byteflow.py:278 | dispatch pc=122, inst=LOAD_FAST(arg=1, lineno=236)\n", - "2023-05-15 11:07:24,575 | DEBUG | byteflow.py:279 | stack ['$116load_method.1', '$a118.2', '$120load_global.3']\n", - "2023-05-15 11:07:24,576 | DEBUG | byteflow.py:278 | dispatch pc=124, inst=CALL_FUNCTION(arg=1, lineno=236)\n", - "2023-05-15 11:07:24,576 | DEBUG | byteflow.py:279 | stack ['$116load_method.1', '$a118.2', '$120load_global.3', '$b122.4']\n", - "2023-05-15 11:07:24,577 | DEBUG | byteflow.py:278 | dispatch pc=126, inst=CALL_METHOD(arg=2, lineno=236)\n", - "2023-05-15 11:07:24,577 | DEBUG | byteflow.py:279 | stack ['$116load_method.1', '$a118.2', '$124call_function.5']\n", - "2023-05-15 11:07:24,578 | DEBUG | byteflow.py:278 | dispatch pc=128, inst=RETURN_VALUE(arg=None, lineno=236)\n", - "2023-05-15 11:07:24,579 | DEBUG | byteflow.py:279 | stack ['$126call_method.6']\n", - "2023-05-15 11:07:24,580 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:24,580 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=130 nstack_initial=0), State(pc_initial=60 nstack_initial=0), State(pc_initial=76 nstack_initial=0), State(pc_initial=106 nstack_initial=0)])\n", - "2023-05-15 11:07:24,581 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,581 | DEBUG | byteflow.py:278 | dispatch pc=130, inst=LOAD_FAST(arg=4, lineno=237)\n", - "2023-05-15 11:07:24,581 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,582 | DEBUG | byteflow.py:278 | dispatch pc=132, inst=LOAD_CONST(arg=2, lineno=237)\n", - "2023-05-15 11:07:24,583 | DEBUG | byteflow.py:279 | stack ['$exp130.0']\n", - "2023-05-15 11:07:24,584 | DEBUG | byteflow.py:278 | dispatch pc=134, inst=COMPARE_OP(arg=3, lineno=237)\n", - "2023-05-15 11:07:24,584 | DEBUG | byteflow.py:279 | stack ['$exp130.0', '$const132.1']\n", - "2023-05-15 11:07:24,585 | DEBUG | byteflow.py:278 | dispatch pc=136, inst=POP_JUMP_IF_FALSE(arg=90, lineno=237)\n", - "2023-05-15 11:07:24,586 | DEBUG | byteflow.py:279 | stack ['$134compare_op.2']\n", - "2023-05-15 11:07:24,586 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=138, stack=(), blockstack=(), npush=0), Edge(pc=178, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,587 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=60 nstack_initial=0), State(pc_initial=76 nstack_initial=0), State(pc_initial=106 nstack_initial=0), State(pc_initial=138 nstack_initial=0), State(pc_initial=178 nstack_initial=0)])\n", - "2023-05-15 11:07:24,588 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,588 | DEBUG | byteflow.py:278 | dispatch pc=60, inst=LOAD_DEREF(arg=2, lineno=225)\n", - "2023-05-15 11:07:24,589 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,589 | DEBUG | byteflow.py:278 | dispatch pc=62, inst=POP_JUMP_IF_FALSE(arg=35, lineno=225)\n", - "2023-05-15 11:07:24,590 | DEBUG | byteflow.py:279 | stack ['$60load_deref.0']\n", - "2023-05-15 11:07:24,590 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=64, stack=(), blockstack=(), npush=0), Edge(pc=68, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,591 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=76 nstack_initial=0), State(pc_initial=106 nstack_initial=0), State(pc_initial=138 nstack_initial=0), State(pc_initial=178 nstack_initial=0), State(pc_initial=64 nstack_initial=0), State(pc_initial=68 nstack_initial=0)])\n", - "2023-05-15 11:07:24,591 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,592 | DEBUG | byteflow.py:278 | dispatch pc=76, inst=LOAD_FAST(arg=0, lineno=229)\n", - "2023-05-15 11:07:24,592 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,592 | DEBUG | byteflow.py:278 | dispatch pc=78, inst=LOAD_CONST(arg=1, lineno=229)\n", - "2023-05-15 11:07:24,593 | DEBUG | byteflow.py:279 | stack ['$a76.0']\n", - "2023-05-15 11:07:24,593 | DEBUG | byteflow.py:278 | dispatch pc=80, inst=COMPARE_OP(arg=3, lineno=229)\n", - "2023-05-15 11:07:24,594 | DEBUG | byteflow.py:279 | stack ['$a76.0', '$const78.1']\n", - "2023-05-15 11:07:24,594 | DEBUG | byteflow.py:278 | dispatch pc=82, inst=POP_JUMP_IF_FALSE(arg=49, lineno=229)\n", - "2023-05-15 11:07:24,595 | DEBUG | byteflow.py:279 | stack ['$80compare_op.2']\n", - "2023-05-15 11:07:24,595 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=84, stack=(), blockstack=(), npush=0), Edge(pc=96, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,596 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=106 nstack_initial=0), State(pc_initial=138 nstack_initial=0), State(pc_initial=178 nstack_initial=0), State(pc_initial=64 nstack_initial=0), State(pc_initial=68 nstack_initial=0), State(pc_initial=84 nstack_initial=0), State(pc_initial=96 nstack_initial=0)])\n", - "2023-05-15 11:07:24,596 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=138 nstack_initial=0), State(pc_initial=178 nstack_initial=0), State(pc_initial=64 nstack_initial=0), State(pc_initial=68 nstack_initial=0), State(pc_initial=84 nstack_initial=0), State(pc_initial=96 nstack_initial=0)])\n", - "2023-05-15 11:07:24,597 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,597 | DEBUG | byteflow.py:278 | dispatch pc=138, inst=LOAD_FAST(arg=4, lineno=238)\n", - "2023-05-15 11:07:24,598 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,598 | DEBUG | byteflow.py:278 | dispatch pc=140, inst=LOAD_CONST(arg=1, lineno=238)\n", - "2023-05-15 11:07:24,599 | DEBUG | byteflow.py:279 | stack ['$exp138.0']\n", - "2023-05-15 11:07:24,599 | DEBUG | byteflow.py:278 | dispatch pc=142, inst=BINARY_AND(arg=None, lineno=238)\n", - "2023-05-15 11:07:24,600 | DEBUG | byteflow.py:279 | stack ['$exp138.0', '$const140.1']\n", - "2023-05-15 11:07:24,600 | DEBUG | byteflow.py:278 | dispatch pc=144, inst=POP_JUMP_IF_FALSE(arg=78, lineno=238)\n", - "2023-05-15 11:07:24,601 | DEBUG | byteflow.py:279 | stack ['$142binary_and.2']\n", - "2023-05-15 11:07:24,601 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=146, stack=(), blockstack=(), npush=0), Edge(pc=154, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,602 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=178 nstack_initial=0), State(pc_initial=64 nstack_initial=0), State(pc_initial=68 nstack_initial=0), State(pc_initial=84 nstack_initial=0), State(pc_initial=96 nstack_initial=0), State(pc_initial=146 nstack_initial=0), State(pc_initial=154 nstack_initial=0)])\n", - "2023-05-15 11:07:24,602 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,603 | DEBUG | byteflow.py:278 | dispatch pc=178, inst=LOAD_FAST(arg=3, lineno=243)\n", - "2023-05-15 11:07:24,603 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,604 | DEBUG | byteflow.py:278 | dispatch pc=180, inst=POP_JUMP_IF_FALSE(arg=96, lineno=243)\n", - "2023-05-15 11:07:24,604 | DEBUG | byteflow.py:279 | stack ['$invert178.0']\n", - "2023-05-15 11:07:24,609 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=182, stack=(), blockstack=(), npush=0), Edge(pc=190, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,609 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=64 nstack_initial=0), State(pc_initial=68 nstack_initial=0), State(pc_initial=84 nstack_initial=0), State(pc_initial=96 nstack_initial=0), State(pc_initial=146 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=182 nstack_initial=0), State(pc_initial=190 nstack_initial=0)])\n", - "2023-05-15 11:07:24,610 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,610 | DEBUG | byteflow.py:278 | dispatch pc=64, inst=LOAD_DEREF(arg=2, lineno=226)\n", - "2023-05-15 11:07:24,611 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,612 | DEBUG | byteflow.py:278 | dispatch pc=66, inst=RETURN_VALUE(arg=None, lineno=226)\n", - "2023-05-15 11:07:24,613 | DEBUG | byteflow.py:279 | stack ['$64load_deref.0']\n", - "2023-05-15 11:07:24,613 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:24,614 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=68 nstack_initial=0), State(pc_initial=84 nstack_initial=0), State(pc_initial=96 nstack_initial=0), State(pc_initial=146 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=182 nstack_initial=0), State(pc_initial=190 nstack_initial=0)])\n", - "2023-05-15 11:07:24,614 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,615 | DEBUG | byteflow.py:278 | dispatch pc=68, inst=LOAD_GLOBAL(arg=1, lineno=228)\n", - "2023-05-15 11:07:24,615 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,616 | DEBUG | byteflow.py:278 | dispatch pc=70, inst=LOAD_CONST(arg=4, lineno=228)\n", - "2023-05-15 11:07:24,617 | DEBUG | byteflow.py:279 | stack ['$68load_global.0']\n", - "2023-05-15 11:07:24,617 | DEBUG | byteflow.py:278 | dispatch pc=72, inst=CALL_FUNCTION(arg=1, lineno=228)\n", - "2023-05-15 11:07:24,618 | DEBUG | byteflow.py:279 | stack ['$68load_global.0', '$const70.1']\n", - "2023-05-15 11:07:24,618 | DEBUG | byteflow.py:278 | dispatch pc=74, inst=RAISE_VARARGS(arg=1, lineno=228)\n", - "2023-05-15 11:07:24,619 | DEBUG | byteflow.py:279 | stack ['$72call_function.2']\n", - "2023-05-15 11:07:24,619 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:24,620 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=84 nstack_initial=0), State(pc_initial=96 nstack_initial=0), State(pc_initial=146 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=182 nstack_initial=0), State(pc_initial=190 nstack_initial=0)])\n", - "2023-05-15 11:07:24,620 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,621 | DEBUG | byteflow.py:278 | dispatch pc=84, inst=LOAD_FAST(arg=0, lineno=229)\n", - "2023-05-15 11:07:24,621 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,622 | DEBUG | byteflow.py:278 | dispatch pc=86, inst=LOAD_CONST(arg=5, lineno=229)\n", - "2023-05-15 11:07:24,622 | DEBUG | byteflow.py:279 | stack ['$a84.0']\n", - "2023-05-15 11:07:24,623 | DEBUG | byteflow.py:278 | dispatch pc=88, inst=COMPARE_OP(arg=3, lineno=229)\n", - "2023-05-15 11:07:24,623 | DEBUG | byteflow.py:279 | stack ['$a84.0', '$const86.1']\n", - "2023-05-15 11:07:24,623 | DEBUG | byteflow.py:278 | dispatch pc=90, inst=POP_JUMP_IF_FALSE(arg=49, lineno=229)\n", - "2023-05-15 11:07:24,624 | DEBUG | byteflow.py:279 | stack ['$88compare_op.2']\n", - "2023-05-15 11:07:24,624 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=92, stack=(), blockstack=(), npush=0), Edge(pc=96, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,625 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=96 nstack_initial=0), State(pc_initial=146 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=182 nstack_initial=0), State(pc_initial=190 nstack_initial=0), State(pc_initial=92 nstack_initial=0), State(pc_initial=96 nstack_initial=0)])\n", - "2023-05-15 11:07:24,625 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=146 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=182 nstack_initial=0), State(pc_initial=190 nstack_initial=0), State(pc_initial=92 nstack_initial=0), State(pc_initial=96 nstack_initial=0)])\n", - "2023-05-15 11:07:24,626 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,626 | DEBUG | byteflow.py:278 | dispatch pc=146, inst=LOAD_FAST(arg=2, lineno=239)\n", - "2023-05-15 11:07:24,627 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,627 | DEBUG | byteflow.py:278 | dispatch pc=148, inst=LOAD_FAST(arg=0, lineno=239)\n", - "2023-05-15 11:07:24,628 | DEBUG | byteflow.py:279 | stack ['$r146.0']\n", - "2023-05-15 11:07:24,628 | DEBUG | byteflow.py:278 | dispatch pc=150, inst=INPLACE_MULTIPLY(arg=None, lineno=239)\n", - "2023-05-15 11:07:24,629 | DEBUG | byteflow.py:279 | stack ['$r146.0', '$a148.1']\n", - "2023-05-15 11:07:24,633 | DEBUG | byteflow.py:278 | dispatch pc=152, inst=STORE_FAST(arg=2, lineno=239)\n", - "2023-05-15 11:07:24,633 | DEBUG | byteflow.py:279 | stack ['$150inplace_multiply.2']\n", - "2023-05-15 11:07:24,633 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=154, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,634 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=154 nstack_initial=0), State(pc_initial=182 nstack_initial=0), State(pc_initial=190 nstack_initial=0), State(pc_initial=92 nstack_initial=0), State(pc_initial=96 nstack_initial=0), State(pc_initial=154 nstack_initial=0)])\n", - "2023-05-15 11:07:24,635 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,635 | DEBUG | byteflow.py:278 | dispatch pc=154, inst=LOAD_FAST(arg=4, lineno=240)\n", - "2023-05-15 11:07:24,636 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,636 | DEBUG | byteflow.py:278 | dispatch pc=156, inst=LOAD_CONST(arg=1, lineno=240)\n", - "2023-05-15 11:07:24,637 | DEBUG | byteflow.py:279 | stack ['$exp154.0']\n", - "2023-05-15 11:07:24,637 | DEBUG | byteflow.py:278 | dispatch pc=158, inst=INPLACE_RSHIFT(arg=None, lineno=240)\n", - "2023-05-15 11:07:24,638 | DEBUG | byteflow.py:279 | stack ['$exp154.0', '$const156.1']\n", - "2023-05-15 11:07:24,638 | DEBUG | byteflow.py:278 | dispatch pc=160, inst=STORE_FAST(arg=4, lineno=240)\n", - "2023-05-15 11:07:24,639 | DEBUG | byteflow.py:279 | stack ['$158inplace_rshift.2']\n", - "2023-05-15 11:07:24,639 | DEBUG | byteflow.py:278 | dispatch pc=162, inst=LOAD_FAST(arg=0, lineno=241)\n", - "2023-05-15 11:07:24,640 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,640 | DEBUG | byteflow.py:278 | dispatch pc=164, inst=LOAD_FAST(arg=0, lineno=241)\n", - "2023-05-15 11:07:24,642 | DEBUG | byteflow.py:279 | stack ['$a162.3']\n", - "2023-05-15 11:07:24,642 | DEBUG | byteflow.py:278 | dispatch pc=166, inst=INPLACE_MULTIPLY(arg=None, lineno=241)\n", - "2023-05-15 11:07:24,642 | DEBUG | byteflow.py:279 | stack ['$a162.3', '$a164.4']\n", - "2023-05-15 11:07:24,643 | DEBUG | byteflow.py:278 | dispatch pc=168, inst=STORE_FAST(arg=0, lineno=241)\n", - "2023-05-15 11:07:24,644 | DEBUG | byteflow.py:279 | stack ['$166inplace_multiply.5']\n", - "2023-05-15 11:07:24,644 | DEBUG | byteflow.py:278 | dispatch pc=170, inst=LOAD_FAST(arg=4, lineno=237)\n", - "2023-05-15 11:07:24,645 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,646 | DEBUG | byteflow.py:278 | dispatch pc=172, inst=LOAD_CONST(arg=2, lineno=237)\n", - "2023-05-15 11:07:24,646 | DEBUG | byteflow.py:279 | stack ['$exp170.6']\n", - "2023-05-15 11:07:24,647 | DEBUG | byteflow.py:278 | dispatch pc=174, inst=COMPARE_OP(arg=3, lineno=237)\n", - "2023-05-15 11:07:24,648 | DEBUG | byteflow.py:279 | stack ['$exp170.6', '$const172.7']\n", - "2023-05-15 11:07:24,648 | DEBUG | byteflow.py:278 | dispatch pc=176, inst=POP_JUMP_IF_TRUE(arg=70, lineno=237)\n", - "2023-05-15 11:07:24,649 | DEBUG | byteflow.py:279 | stack ['$174compare_op.8']\n", - "2023-05-15 11:07:24,649 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=178, stack=(), blockstack=(), npush=0), Edge(pc=138, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:24,651 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=182 nstack_initial=0), State(pc_initial=190 nstack_initial=0), State(pc_initial=92 nstack_initial=0), State(pc_initial=96 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=178 nstack_initial=0), State(pc_initial=138 nstack_initial=0)])\n", - "2023-05-15 11:07:24,651 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,651 | DEBUG | byteflow.py:278 | dispatch pc=182, inst=LOAD_CONST(arg=8, lineno=243)\n", - "2023-05-15 11:07:24,652 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,652 | DEBUG | byteflow.py:278 | dispatch pc=184, inst=LOAD_FAST(arg=2, lineno=243)\n", - "2023-05-15 11:07:24,653 | DEBUG | byteflow.py:279 | stack ['$const182.0']\n", - "2023-05-15 11:07:24,654 | DEBUG | byteflow.py:278 | dispatch pc=186, inst=BINARY_TRUE_DIVIDE(arg=None, lineno=243)\n", - "2023-05-15 11:07:24,654 | DEBUG | byteflow.py:279 | stack ['$const182.0', '$r184.1']\n", - "2023-05-15 11:07:24,655 | DEBUG | byteflow.py:278 | dispatch pc=188, inst=RETURN_VALUE(arg=None, lineno=243)\n", - "2023-05-15 11:07:24,655 | DEBUG | byteflow.py:279 | stack ['$186binary_true_divide.2']\n", - "2023-05-15 11:07:24,655 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:24,656 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=190 nstack_initial=0), State(pc_initial=92 nstack_initial=0), State(pc_initial=96 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=178 nstack_initial=0), State(pc_initial=138 nstack_initial=0)])\n", - "2023-05-15 11:07:24,656 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,657 | DEBUG | byteflow.py:278 | dispatch pc=190, inst=LOAD_FAST(arg=2, lineno=243)\n", - "2023-05-15 11:07:24,657 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,657 | DEBUG | byteflow.py:278 | dispatch pc=192, inst=RETURN_VALUE(arg=None, lineno=243)\n", - "2023-05-15 11:07:24,658 | DEBUG | byteflow.py:279 | stack ['$r190.0']\n", - "2023-05-15 11:07:24,658 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:24,659 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=92 nstack_initial=0), State(pc_initial=96 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=178 nstack_initial=0), State(pc_initial=138 nstack_initial=0)])\n", - "2023-05-15 11:07:24,659 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:24,659 | DEBUG | byteflow.py:278 | dispatch pc=92, inst=LOAD_CONST(arg=2, lineno=230)\n", - "2023-05-15 11:07:24,660 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:24,660 | DEBUG | byteflow.py:278 | dispatch pc=94, inst=RETURN_VALUE(arg=None, lineno=230)\n", - "2023-05-15 11:07:24,661 | DEBUG | byteflow.py:279 | stack ['$const92.0']\n", - "2023-05-15 11:07:24,661 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:24,662 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=96 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=178 nstack_initial=0), State(pc_initial=138 nstack_initial=0)])\n", - "2023-05-15 11:07:24,662 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=154 nstack_initial=0), State(pc_initial=178 nstack_initial=0), State(pc_initial=138 nstack_initial=0)])\n", - "2023-05-15 11:07:24,663 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=178 nstack_initial=0), State(pc_initial=138 nstack_initial=0)])\n", - "2023-05-15 11:07:24,665 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=138 nstack_initial=0)])\n", - "2023-05-15 11:07:24,666 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:24,667 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=26 nstack_initial=0): set(),\n", - " State(pc_initial=44 nstack_initial=0): set(),\n", - " State(pc_initial=48 nstack_initial=0): set(),\n", - " State(pc_initial=52 nstack_initial=0): set(),\n", - " State(pc_initial=60 nstack_initial=0): set(),\n", - " State(pc_initial=64 nstack_initial=0): set(),\n", - " State(pc_initial=68 nstack_initial=0): set(),\n", - " State(pc_initial=76 nstack_initial=0): set(),\n", - " State(pc_initial=84 nstack_initial=0): set(),\n", - " State(pc_initial=92 nstack_initial=0): set(),\n", - " State(pc_initial=96 nstack_initial=0): set(),\n", - " State(pc_initial=98 nstack_initial=0): set(),\n", - " State(pc_initial=106 nstack_initial=0): set(),\n", - " State(pc_initial=114 nstack_initial=0): set(),\n", - " State(pc_initial=130 nstack_initial=0): set(),\n", - " State(pc_initial=138 nstack_initial=0): set(),\n", - " State(pc_initial=146 nstack_initial=0): set(),\n", - " State(pc_initial=154 nstack_initial=0): set(),\n", - " State(pc_initial=178 nstack_initial=0): set(),\n", - " State(pc_initial=182 nstack_initial=0): set(),\n", - " State(pc_initial=190 nstack_initial=0): set()})\n", - "2023-05-15 11:07:24,669 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:24,669 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:24,670 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:24,670 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:24,671 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:24,671 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:24,672 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_deref.0'}), (4, {'res': '$const4.1'}), (6, {'func': '$2load_deref.0', 'args': ['$const4.1'], 'res': '$6call_function.2'}), (8, {'value': '$6call_function.2'}), (10, {'res': '$10load_deref.3'}), (12, {'res': '$a12.4'}), (14, {'func': '$10load_deref.3', 'args': ['$a12.4'], 'res': '$14call_function.5'}), (16, {'value': '$14call_function.5'}), (18, {'res': '$b18.6'}), (20, {'res': '$const20.7'}), (22, {'lhs': '$b18.6', 'rhs': '$const20.7', 'res': '$22compare_op.8'}), (24, {'pred': '$22compare_op.8'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={26: (), 98: ()})\n", - "2023-05-15 11:07:24,672 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=26 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((26, {'res': '$const26.0'}), (28, {'value': '$const26.0'}), (30, {'res': '$b30.1'}), (32, {'value': '$b30.1', 'res': '$32unary_negative.2'}), (34, {'value': '$32unary_negative.2'}), (36, {'res': '$exp36.3'}), (38, {'res': '$const38.4'}), (40, {'lhs': '$exp36.3', 'rhs': '$const38.4', 'res': '$40compare_op.5'}), (42, {'pred': '$40compare_op.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={44: (), 48: ()})\n", - "2023-05-15 11:07:24,673 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=44 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((44, {'res': '$44load_global.0'}), (46, {'exc': '$44load_global.0'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:24,673 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=48 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((48, {'res': '$48load_deref.0'}), (50, {'pred': '$48load_deref.0'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={52: (), 96: ()})\n", - "2023-05-15 11:07:24,674 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=52 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((52, {'res': '$a52.0'}), (54, {'res': '$const54.1'}), (56, {'lhs': '$a52.0', 'rhs': '$const54.1', 'res': '$56compare_op.2'}), (58, {'pred': '$56compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={60: (), 76: ()})\n", - "2023-05-15 11:07:24,675 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=60 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((60, {'res': '$60load_deref.0'}), (62, {'pred': '$60load_deref.0'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={64: (), 68: ()})\n", - "2023-05-15 11:07:24,675 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=64 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((64, {'res': '$64load_deref.0'}), (66, {'retval': '$64load_deref.0', 'castval': '$66return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:24,676 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=68 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((68, {'res': '$68load_global.0'}), (70, {'res': '$const70.1'}), (72, {'func': '$68load_global.0', 'args': ['$const70.1'], 'res': '$72call_function.2'}), (74, {'exc': '$72call_function.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:24,676 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=76 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((76, {'res': '$a76.0'}), (78, {'res': '$const78.1'}), (80, {'lhs': '$a76.0', 'rhs': '$const78.1', 'res': '$80compare_op.2'}), (82, {'pred': '$80compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={84: (), 96: ()})\n", - "2023-05-15 11:07:24,676 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=84 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((84, {'res': '$a84.0'}), (86, {'res': '$const86.1'}), (88, {'lhs': '$a84.0', 'rhs': '$const86.1', 'res': '$88compare_op.2'}), (90, {'pred': '$88compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={92: (), 96: ()})\n", - "2023-05-15 11:07:24,677 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=92 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((92, {'res': '$const92.0'}), (94, {'retval': '$const92.0', 'castval': '$94return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:24,677 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=96 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((96, {}),), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={106: ()})\n", - "2023-05-15 11:07:24,677 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=98 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((98, {'res': '$const98.0'}), (100, {'value': '$const98.0'}), (102, {'res': '$b102.1'}), (104, {'value': '$b102.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={106: ()})\n", - "2023-05-15 11:07:24,678 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=106 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((106, {'res': '$exp106.0'}), (108, {'res': '$const108.1'}), (110, {'lhs': '$exp106.0', 'rhs': '$const108.1', 'res': '$110compare_op.2'}), (112, {'pred': '$110compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={114: (), 130: ()})\n", - "2023-05-15 11:07:24,678 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=114 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((114, {'res': '$114load_global.0'}), (116, {'item': '$114load_global.0', 'res': '$116load_method.1'}), (118, {'res': '$a118.2'}), (120, {'res': '$120load_global.3'}), (122, {'res': '$b122.4'}), (124, {'func': '$120load_global.3', 'args': ['$b122.4'], 'res': '$124call_function.5'}), (126, {'func': '$116load_method.1', 'args': ['$a118.2', '$124call_function.5'], 'res': '$126call_method.6'}), (128, {'retval': '$126call_method.6', 'castval': '$128return_value.7'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:24,680 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=130 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((130, {'res': '$exp130.0'}), (132, {'res': '$const132.1'}), (134, {'lhs': '$exp130.0', 'rhs': '$const132.1', 'res': '$134compare_op.2'}), (136, {'pred': '$134compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={138: (), 178: ()})\n", - "2023-05-15 11:07:24,680 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=138 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((138, {'res': '$exp138.0'}), (140, {'res': '$const140.1'}), (142, {'lhs': '$exp138.0', 'rhs': '$const140.1', 'res': '$142binary_and.2'}), (144, {'pred': '$142binary_and.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={146: (), 154: ()})\n", - "2023-05-15 11:07:24,680 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=146 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((146, {'res': '$r146.0'}), (148, {'res': '$a148.1'}), (150, {'lhs': '$r146.0', 'rhs': '$a148.1', 'res': '$150inplace_multiply.2'}), (152, {'value': '$150inplace_multiply.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={154: ()})\n", - "2023-05-15 11:07:24,681 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=154 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((154, {'res': '$exp154.0'}), (156, {'res': '$const156.1'}), (158, {'lhs': '$exp154.0', 'rhs': '$const156.1', 'res': '$158inplace_rshift.2'}), (160, {'value': '$158inplace_rshift.2'}), (162, {'res': '$a162.3'}), (164, {'res': '$a164.4'}), (166, {'lhs': '$a162.3', 'rhs': '$a164.4', 'res': '$166inplace_multiply.5'}), (168, {'value': '$166inplace_multiply.5'}), (170, {'res': '$exp170.6'}), (172, {'res': '$const172.7'}), (174, {'lhs': '$exp170.6', 'rhs': '$const172.7', 'res': '$174compare_op.8'}), (176, {'pred': '$174compare_op.8'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={178: (), 138: ()})\n", - "2023-05-15 11:07:24,681 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=178 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((178, {'res': '$invert178.0'}), (180, {'pred': '$invert178.0'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={182: (), 190: ()})\n", - "2023-05-15 11:07:24,682 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=182 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((182, {'res': '$const182.0'}), (184, {'res': '$r184.1'}), (186, {'lhs': '$const182.0', 'rhs': '$r184.1', 'res': '$186binary_true_divide.2'}), (188, {'retval': '$186binary_true_divide.2', 'castval': '$188return_value.3'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:24,682 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=190 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((190, {'res': '$r190.0'}), (192, {'retval': '$r190.0', 'castval': '$192return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:24,688 | DEBUG | interpreter.py:1342 | label 0:\n", - " a = arg(0, name=a) ['a']\n", - " b = arg(1, name=b) ['b']\n", - " $2load_deref.0 = freevar(tp: int64) ['$2load_deref.0']\n", - " $const4.1 = const(int, 1) ['$const4.1']\n", - " r = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None) ['$2load_deref.0', '$const4.1', 'r']\n", - " $10load_deref.3 = freevar(tp: int64) ['$10load_deref.3']\n", - " a.1 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None) ['$10load_deref.3', 'a', 'a.1']\n", - " $const20.7 = const(int, 0) ['$const20.7']\n", - " $22compare_op.8 = b < $const20.7 ['$22compare_op.8', '$const20.7', 'b']\n", - " bool24 = global(bool: ) ['bool24']\n", - " $24pred = call bool24($22compare_op.8, func=bool24, args=(Var($22compare_op.8, numbers.py:218),), kws=(), vararg=None, varkwarg=None, target=None) ['$22compare_op.8', '$24pred', 'bool24']\n", - " branch $24pred, 26, 98 ['$24pred']\n", - "label 26:\n", - " invert = const(bool, True) ['invert']\n", - " exp = unary(fn=, value=b) ['b', 'exp']\n", - " $const38.4 = const(int, 0) ['$const38.4']\n", - " $40compare_op.5 = exp < $const38.4 ['$40compare_op.5', '$const38.4', 'exp']\n", - " bool42 = global(bool: ) ['bool42']\n", - " $42pred = call bool42($40compare_op.5, func=bool42, args=(Var($40compare_op.5, numbers.py:221),), kws=(), vararg=None, varkwarg=None, target=None) ['$40compare_op.5', '$42pred', 'bool42']\n", - " branch $42pred, 44, 48 ['$42pred']\n", - "label 44:\n", - " $44load_global.0 = global(OverflowError: ) ['$44load_global.0']\n", - " raise $44load_global.0 ['$44load_global.0']\n", - "label 48:\n", - " $48load_deref.0 = freevar(is_integer: True) ['$48load_deref.0']\n", - " bool50 = global(bool: ) ['bool50']\n", - " $50pred = call bool50($48load_deref.0, func=bool50, args=(Var($48load_deref.0, numbers.py:223),), kws=(), vararg=None, varkwarg=None, target=None) ['$48load_deref.0', '$50pred', 'bool50']\n", - " branch $50pred, 52, 96 ['$50pred']\n", - "label 52:\n", - " $const54.1 = const(int, 0) ['$const54.1']\n", - " $56compare_op.2 = a.1 == $const54.1 ['$56compare_op.2', '$const54.1', 'a.1']\n", - " bool58 = global(bool: ) ['bool58']\n", - " $58pred = call bool58($56compare_op.2, func=bool58, args=(Var($56compare_op.2, numbers.py:224),), kws=(), vararg=None, varkwarg=None, target=None) ['$56compare_op.2', '$58pred', 'bool58']\n", - " branch $58pred, 60, 76 ['$58pred']\n", - "label 60:\n", - " $60load_deref.0 = freevar(zerodiv_return: False) ['$60load_deref.0']\n", - " bool62 = global(bool: ) ['bool62']\n", - " $62pred = call bool62($60load_deref.0, func=bool62, args=(Var($60load_deref.0, numbers.py:225),), kws=(), vararg=None, varkwarg=None, target=None) ['$60load_deref.0', '$62pred', 'bool62']\n", - " branch $62pred, 64, 68 ['$62pred']\n", - "label 64:\n", - " $64load_deref.0 = freevar(zerodiv_return: False) ['$64load_deref.0']\n", - " $66return_value.1 = cast(value=$64load_deref.0) ['$64load_deref.0', '$66return_value.1']\n", - " return $66return_value.1 ['$66return_value.1']\n", - "label 68:\n", - " $68load_global.0 = global(ZeroDivisionError: ) ['$68load_global.0']\n", - " $const70.1 = const(str, 0 cannot be raised to a negative power) ['$const70.1']\n", - " $72call_function.2 = call $68load_global.0($const70.1, func=$68load_global.0, args=[Var($const70.1, numbers.py:228)], kws=(), vararg=None, varkwarg=None, target=None) ['$68load_global.0', '$72call_function.2', '$const70.1']\n", - " raise $72call_function.2 ['$72call_function.2']\n", - "label 76:\n", - " $const78.1 = const(int, 1) ['$const78.1']\n", - " $80compare_op.2 = a.1 != $const78.1 ['$80compare_op.2', '$const78.1', 'a.1']\n", - " bool82 = global(bool: ) ['bool82']\n", - " $82pred = call bool82($80compare_op.2, func=bool82, args=(Var($80compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None) ['$80compare_op.2', '$82pred', 'bool82']\n", - " branch $82pred, 84, 96 ['$82pred']\n", - "label 84:\n", - " $const86.1 = const(int, -1) ['$const86.1']\n", - " $88compare_op.2 = a.1 != $const86.1 ['$88compare_op.2', '$const86.1', 'a.1']\n", - " bool90 = global(bool: ) ['bool90']\n", - " $90pred = call bool90($88compare_op.2, func=bool90, args=(Var($88compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None) ['$88compare_op.2', '$90pred', 'bool90']\n", - " branch $90pred, 92, 96 ['$90pred']\n", - "label 92:\n", - " $const92.0 = const(int, 0) ['$const92.0']\n", - " $94return_value.1 = cast(value=$const92.0) ['$94return_value.1', '$const92.0']\n", - " return $94return_value.1 ['$94return_value.1']\n", - "label 96:\n", - " jump 106 []\n", - "label 98:\n", - " invert = const(bool, False) ['invert']\n", - " exp = b ['b', 'exp']\n", - " jump 106 []\n", - "label 106:\n", - " $const108.1 = const(int, 65536) ['$const108.1']\n", - " $110compare_op.2 = exp > $const108.1 ['$110compare_op.2', '$const108.1', 'exp']\n", - " bool112 = global(bool: ) ['bool112']\n", - " $112pred = call bool112($110compare_op.2, func=bool112, args=(Var($110compare_op.2, numbers.py:234),), kws=(), vararg=None, varkwarg=None, target=None) ['$110compare_op.2', '$112pred', 'bool112']\n", - " branch $112pred, 114, 130 ['$112pred']\n", - "label 114:\n", - " $114load_global.0 = global(math: ) ['$114load_global.0']\n", - " $116load_method.1 = getattr(value=$114load_global.0, attr=pow) ['$114load_global.0', '$116load_method.1']\n", - " $120load_global.3 = global(float: ) ['$120load_global.3']\n", - " $124call_function.5 = call $120load_global.3(b, func=$120load_global.3, args=[Var(b, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None) ['$120load_global.3', '$124call_function.5', 'b']\n", - " $126call_method.6 = call $116load_method.1(a.1, $124call_function.5, func=$116load_method.1, args=[Var(a.1, numbers.py:217), Var($124call_function.5, numbers.py:236)], kws=(), vararg=None, varkwarg=None, target=None) ['$116load_method.1', '$124call_function.5', '$126call_method.6', 'a.1']\n", - " $128return_value.7 = cast(value=$126call_method.6) ['$126call_method.6', '$128return_value.7']\n", - " return $128return_value.7 ['$128return_value.7']\n", - "label 130:\n", - " $const132.1 = const(int, 0) ['$const132.1']\n", - " $134compare_op.2 = exp != $const132.1 ['$134compare_op.2', '$const132.1', 'exp']\n", - " bool136 = global(bool: ) ['bool136']\n", - " $136pred = call bool136($134compare_op.2, func=bool136, args=(Var($134compare_op.2, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None) ['$134compare_op.2', '$136pred', 'bool136']\n", - " branch $136pred, 138, 178 ['$136pred']\n", - "label 138:\n", - " $const140.1 = const(int, 1) ['$const140.1']\n", - " $142binary_and.2 = exp & $const140.1 ['$142binary_and.2', '$const140.1', 'exp']\n", - " bool144 = global(bool: ) ['bool144']\n", - " $144pred = call bool144($142binary_and.2, func=bool144, args=(Var($142binary_and.2, numbers.py:238),), kws=(), vararg=None, varkwarg=None, target=None) ['$142binary_and.2', '$144pred', 'bool144']\n", - " branch $144pred, 146, 154 ['$144pred']\n", - "label 146:\n", - " $150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined) ['$150inplace_multiply.2', 'a.1', 'r']\n", - " r = $150inplace_multiply.2 ['$150inplace_multiply.2', 'r']\n", - " jump 154 []\n", - "label 154:\n", - " $const156.1 = const(int, 1) ['$const156.1']\n", - " $158inplace_rshift.2 = inplace_binop(fn=, immutable_fn=, lhs=exp, rhs=$const156.1, static_lhs=Undefined, static_rhs=Undefined) ['$158inplace_rshift.2', '$const156.1', 'exp']\n", - " exp = $158inplace_rshift.2 ['$158inplace_rshift.2', 'exp']\n", - " $166inplace_multiply.5 = inplace_binop(fn=, immutable_fn=, lhs=a.1, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined) ['$166inplace_multiply.5', 'a.1', 'a.1']\n", - " a.1 = $166inplace_multiply.5 ['$166inplace_multiply.5', 'a.1']\n", - " $const172.7 = const(int, 0) ['$const172.7']\n", - " $174compare_op.8 = exp != $const172.7 ['$174compare_op.8', '$const172.7', 'exp']\n", - " bool176 = global(bool: ) ['bool176']\n", - " $176pred = call bool176($174compare_op.8, func=bool176, args=(Var($174compare_op.8, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None) ['$174compare_op.8', '$176pred', 'bool176']\n", - " branch $176pred, 138, 178 ['$176pred']\n", - "label 178:\n", - " bool180 = global(bool: ) ['bool180']\n", - " $180pred = call bool180(invert, func=bool180, args=(Var(invert, numbers.py:219),), kws=(), vararg=None, varkwarg=None, target=None) ['$180pred', 'bool180', 'invert']\n", - " branch $180pred, 182, 190 ['$180pred']\n", - "label 182:\n", - " $const182.0 = const(float, 1.0) ['$const182.0']\n", - " $186binary_true_divide.2 = $const182.0 / r ['$186binary_true_divide.2', '$const182.0', 'r']\n", - " $188return_value.3 = cast(value=$186binary_true_divide.2) ['$186binary_true_divide.2', '$188return_value.3']\n", - " return $188return_value.3 ['$188return_value.3']\n", - "label 190:\n", - " $192return_value.1 = cast(value=r) ['$192return_value.1', 'r']\n", - " return $192return_value.1 ['$192return_value.1']\n", - "\n", - "2023-05-15 11:07:24,709 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:24,710 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,711 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:24,711 | DEBUG | ssa.py:193 | on stmt: b = arg(1, name=b)\n", - "2023-05-15 11:07:24,712 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(tp: int64)\n", - "2023-05-15 11:07:24,712 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(int, 1)\n", - "2023-05-15 11:07:24,713 | DEBUG | ssa.py:193 | on stmt: r = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,714 | DEBUG | ssa.py:193 | on stmt: $10load_deref.3 = freevar(tp: int64)\n", - "2023-05-15 11:07:24,715 | DEBUG | ssa.py:193 | on stmt: a.1 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,716 | DEBUG | ssa.py:193 | on stmt: $const20.7 = const(int, 0)\n", - "2023-05-15 11:07:24,716 | DEBUG | ssa.py:193 | on stmt: $22compare_op.8 = b < $const20.7\n", - "2023-05-15 11:07:24,717 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:24,718 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22compare_op.8, func=bool24, args=(Var($22compare_op.8, numbers.py:218),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,719 | DEBUG | ssa.py:193 | on stmt: branch $24pred, 26, 98\n", - "2023-05-15 11:07:24,720 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 26\n", - "2023-05-15 11:07:24,721 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,722 | DEBUG | ssa.py:193 | on stmt: invert = const(bool, True)\n", - "2023-05-15 11:07:24,722 | DEBUG | ssa.py:193 | on stmt: exp = unary(fn=, value=b)\n", - "2023-05-15 11:07:24,723 | DEBUG | ssa.py:193 | on stmt: $const38.4 = const(int, 0)\n", - "2023-05-15 11:07:24,724 | DEBUG | ssa.py:193 | on stmt: $40compare_op.5 = exp < $const38.4\n", - "2023-05-15 11:07:24,724 | DEBUG | ssa.py:193 | on stmt: bool42 = global(bool: )\n", - "2023-05-15 11:07:24,726 | DEBUG | ssa.py:193 | on stmt: $42pred = call bool42($40compare_op.5, func=bool42, args=(Var($40compare_op.5, numbers.py:221),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,726 | DEBUG | ssa.py:193 | on stmt: branch $42pred, 44, 48\n", - "2023-05-15 11:07:24,727 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 44\n", - "2023-05-15 11:07:24,727 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,729 | DEBUG | ssa.py:193 | on stmt: $44load_global.0 = global(OverflowError: )\n", - "2023-05-15 11:07:24,730 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:24,730 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 48\n", - "2023-05-15 11:07:24,731 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,732 | DEBUG | ssa.py:193 | on stmt: $48load_deref.0 = freevar(is_integer: True)\n", - "2023-05-15 11:07:24,732 | DEBUG | ssa.py:193 | on stmt: bool50 = global(bool: )\n", - "2023-05-15 11:07:24,733 | DEBUG | ssa.py:193 | on stmt: $50pred = call bool50($48load_deref.0, func=bool50, args=(Var($48load_deref.0, numbers.py:223),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,733 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:24,734 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 52\n", - "2023-05-15 11:07:24,734 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,735 | DEBUG | ssa.py:193 | on stmt: $const54.1 = const(int, 0)\n", - "2023-05-15 11:07:24,735 | DEBUG | ssa.py:193 | on stmt: $56compare_op.2 = a.1 == $const54.1\n", - "2023-05-15 11:07:24,736 | DEBUG | ssa.py:193 | on stmt: bool58 = global(bool: )\n", - "2023-05-15 11:07:24,736 | DEBUG | ssa.py:193 | on stmt: $58pred = call bool58($56compare_op.2, func=bool58, args=(Var($56compare_op.2, numbers.py:224),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,737 | DEBUG | ssa.py:193 | on stmt: branch $58pred, 60, 76\n", - "2023-05-15 11:07:24,737 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 60\n", - "2023-05-15 11:07:24,738 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,738 | DEBUG | ssa.py:193 | on stmt: $60load_deref.0 = freevar(zerodiv_return: False)\n", - "2023-05-15 11:07:24,739 | DEBUG | ssa.py:193 | on stmt: bool62 = global(bool: )\n", - "2023-05-15 11:07:24,741 | DEBUG | ssa.py:193 | on stmt: $62pred = call bool62($60load_deref.0, func=bool62, args=(Var($60load_deref.0, numbers.py:225),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,742 | DEBUG | ssa.py:193 | on stmt: jump 68\n", - "2023-05-15 11:07:24,743 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 68\n", - "2023-05-15 11:07:24,743 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,745 | DEBUG | ssa.py:193 | on stmt: $68load_global.0 = global(ZeroDivisionError: )\n", - "2023-05-15 11:07:24,745 | DEBUG | ssa.py:193 | on stmt: $const70.1 = const(str, 0 cannot be raised to a negative power)\n", - "2023-05-15 11:07:24,746 | DEBUG | ssa.py:193 | on stmt: $72call_function.2 = call $68load_global.0($const70.1, func=$68load_global.0, args=[Var($const70.1, numbers.py:228)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,746 | DEBUG | ssa.py:193 | on stmt: raise ('0 cannot be raised to a negative power')\n", - "2023-05-15 11:07:24,747 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 76\n", - "2023-05-15 11:07:24,747 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,747 | DEBUG | ssa.py:193 | on stmt: $const78.1 = const(int, 1)\n", - "2023-05-15 11:07:24,748 | DEBUG | ssa.py:193 | on stmt: $80compare_op.2 = a.1 != $const78.1\n", - "2023-05-15 11:07:24,748 | DEBUG | ssa.py:193 | on stmt: bool82 = global(bool: )\n", - "2023-05-15 11:07:24,749 | DEBUG | ssa.py:193 | on stmt: $82pred = call bool82($80compare_op.2, func=bool82, args=(Var($80compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,749 | DEBUG | ssa.py:193 | on stmt: branch $82pred, 84, 96\n", - "2023-05-15 11:07:24,750 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 84\n", - "2023-05-15 11:07:24,753 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,753 | DEBUG | ssa.py:193 | on stmt: $const86.1 = const(int, -1)\n", - "2023-05-15 11:07:24,754 | DEBUG | ssa.py:193 | on stmt: $88compare_op.2 = a.1 != $const86.1\n", - "2023-05-15 11:07:24,754 | DEBUG | ssa.py:193 | on stmt: bool90 = global(bool: )\n", - "2023-05-15 11:07:24,756 | DEBUG | ssa.py:193 | on stmt: $90pred = call bool90($88compare_op.2, func=bool90, args=(Var($88compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,756 | DEBUG | ssa.py:193 | on stmt: branch $90pred, 92, 96\n", - "2023-05-15 11:07:24,757 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 92\n", - "2023-05-15 11:07:24,757 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,758 | DEBUG | ssa.py:193 | on stmt: $const92.0 = const(int, 0)\n", - "2023-05-15 11:07:24,758 | DEBUG | ssa.py:193 | on stmt: $94return_value.1 = cast(value=$const92.0)\n", - "2023-05-15 11:07:24,759 | DEBUG | ssa.py:193 | on stmt: return $94return_value.1\n", - "2023-05-15 11:07:24,759 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 96\n", - "2023-05-15 11:07:24,760 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,760 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:24,760 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 98\n", - "2023-05-15 11:07:24,761 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,761 | DEBUG | ssa.py:193 | on stmt: invert = const(bool, False)\n", - "2023-05-15 11:07:24,762 | DEBUG | ssa.py:193 | on stmt: exp = b\n", - "2023-05-15 11:07:24,762 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:24,763 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 106\n", - "2023-05-15 11:07:24,763 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,763 | DEBUG | ssa.py:193 | on stmt: $const108.1 = const(int, 65536)\n", - "2023-05-15 11:07:24,764 | DEBUG | ssa.py:193 | on stmt: $110compare_op.2 = exp > $const108.1\n", - "2023-05-15 11:07:24,764 | DEBUG | ssa.py:193 | on stmt: bool112 = global(bool: )\n", - "2023-05-15 11:07:24,765 | DEBUG | ssa.py:193 | on stmt: $112pred = call bool112($110compare_op.2, func=bool112, args=(Var($110compare_op.2, numbers.py:234),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,765 | DEBUG | ssa.py:193 | on stmt: branch $112pred, 114, 130\n", - "2023-05-15 11:07:24,766 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 114\n", - "2023-05-15 11:07:24,766 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,766 | DEBUG | ssa.py:193 | on stmt: $114load_global.0 = global(math: )\n", - "2023-05-15 11:07:24,767 | DEBUG | ssa.py:193 | on stmt: $116load_method.1 = getattr(value=$114load_global.0, attr=pow)\n", - "2023-05-15 11:07:24,767 | DEBUG | ssa.py:193 | on stmt: $120load_global.3 = global(float: )\n", - "2023-05-15 11:07:24,768 | DEBUG | ssa.py:193 | on stmt: $124call_function.5 = call $120load_global.3(b, func=$120load_global.3, args=[Var(b, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,768 | DEBUG | ssa.py:193 | on stmt: $126call_method.6 = call $116load_method.1(a.1, $124call_function.5, func=$116load_method.1, args=[Var(a.1, numbers.py:217), Var($124call_function.5, numbers.py:236)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,769 | DEBUG | ssa.py:193 | on stmt: $128return_value.7 = cast(value=$126call_method.6)\n", - "2023-05-15 11:07:24,769 | DEBUG | ssa.py:193 | on stmt: return $128return_value.7\n", - "2023-05-15 11:07:24,770 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 130\n", - "2023-05-15 11:07:24,770 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,770 | DEBUG | ssa.py:193 | on stmt: $const132.1 = const(int, 0)\n", - "2023-05-15 11:07:24,771 | DEBUG | ssa.py:193 | on stmt: $134compare_op.2 = exp != $const132.1\n", - "2023-05-15 11:07:24,771 | DEBUG | ssa.py:193 | on stmt: bool136 = global(bool: )\n", - "2023-05-15 11:07:24,772 | DEBUG | ssa.py:193 | on stmt: $136pred = call bool136($134compare_op.2, func=bool136, args=(Var($134compare_op.2, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,772 | DEBUG | ssa.py:193 | on stmt: branch $136pred, 138, 178\n", - "2023-05-15 11:07:24,773 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 138\n", - "2023-05-15 11:07:24,773 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,774 | DEBUG | ssa.py:193 | on stmt: $const140.1 = const(int, 1)\n", - "2023-05-15 11:07:24,774 | DEBUG | ssa.py:193 | on stmt: $142binary_and.2 = exp & $const140.1\n", - "2023-05-15 11:07:24,775 | DEBUG | ssa.py:193 | on stmt: bool144 = global(bool: )\n", - "2023-05-15 11:07:24,775 | DEBUG | ssa.py:193 | on stmt: $144pred = call bool144($142binary_and.2, func=bool144, args=(Var($142binary_and.2, numbers.py:238),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,777 | DEBUG | ssa.py:193 | on stmt: branch $144pred, 146, 154\n", - "2023-05-15 11:07:24,780 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 146\n", - "2023-05-15 11:07:24,781 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,781 | DEBUG | ssa.py:193 | on stmt: $150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:24,781 | DEBUG | ssa.py:193 | on stmt: r = $150inplace_multiply.2\n", - "2023-05-15 11:07:24,782 | DEBUG | ssa.py:193 | on stmt: jump 154\n", - "2023-05-15 11:07:24,783 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 154\n", - "2023-05-15 11:07:24,783 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,784 | DEBUG | ssa.py:193 | on stmt: $const156.1 = const(int, 1)\n", - "2023-05-15 11:07:24,784 | DEBUG | ssa.py:193 | on stmt: $158inplace_rshift.2 = inplace_binop(fn=, immutable_fn=, lhs=exp, rhs=$const156.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:24,785 | DEBUG | ssa.py:193 | on stmt: exp = $158inplace_rshift.2\n", - "2023-05-15 11:07:24,785 | DEBUG | ssa.py:193 | on stmt: $166inplace_multiply.5 = inplace_binop(fn=, immutable_fn=, lhs=a.1, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:24,785 | DEBUG | ssa.py:193 | on stmt: a.1 = $166inplace_multiply.5\n", - "2023-05-15 11:07:24,786 | DEBUG | ssa.py:193 | on stmt: $const172.7 = const(int, 0)\n", - "2023-05-15 11:07:24,786 | DEBUG | ssa.py:193 | on stmt: $174compare_op.8 = exp != $const172.7\n", - "2023-05-15 11:07:24,787 | DEBUG | ssa.py:193 | on stmt: bool176 = global(bool: )\n", - "2023-05-15 11:07:24,789 | DEBUG | ssa.py:193 | on stmt: $176pred = call bool176($174compare_op.8, func=bool176, args=(Var($174compare_op.8, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,789 | DEBUG | ssa.py:193 | on stmt: branch $176pred, 138, 178\n", - "2023-05-15 11:07:24,790 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 178\n", - "2023-05-15 11:07:24,790 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,792 | DEBUG | ssa.py:193 | on stmt: bool180 = global(bool: )\n", - "2023-05-15 11:07:24,792 | DEBUG | ssa.py:193 | on stmt: $180pred = call bool180(invert, func=bool180, args=(Var(invert, numbers.py:219),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,793 | DEBUG | ssa.py:193 | on stmt: branch $180pred, 182, 190\n", - "2023-05-15 11:07:24,794 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 182\n", - "2023-05-15 11:07:24,794 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,795 | DEBUG | ssa.py:193 | on stmt: $const182.0 = const(float, 1.0)\n", - "2023-05-15 11:07:24,796 | DEBUG | ssa.py:193 | on stmt: $186binary_true_divide.2 = $const182.0 / r\n", - "2023-05-15 11:07:24,796 | DEBUG | ssa.py:193 | on stmt: $188return_value.3 = cast(value=$186binary_true_divide.2)\n", - "2023-05-15 11:07:24,797 | DEBUG | ssa.py:193 | on stmt: return $188return_value.3\n", - "2023-05-15 11:07:24,797 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 190\n", - "2023-05-15 11:07:24,798 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,798 | DEBUG | ssa.py:193 | on stmt: $192return_value.1 = cast(value=r)\n", - "2023-05-15 11:07:24,799 | DEBUG | ssa.py:193 | on stmt: return $192return_value.1\n", - "2023-05-15 11:07:24,801 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10load_deref.3': [],\n", - " '$110compare_op.2': [],\n", - " '$112pred': [],\n", - " '$114load_global.0': [],\n", - " '$116load_method.1': [],\n", - " '$120load_global.3': [],\n", - " '$124call_function.5': [],\n", - " '$126call_method.6': [],\n", - " '$128return_value.7': [],\n", - " '$134compare_op.2': [],\n", - " '$136pred': [],\n", - " '$142binary_and.2': [],\n", - " '$144pred': [],\n", - " '$150inplace_multiply.2': [],\n", - " '$158inplace_rshift.2': [],\n", - " '$166inplace_multiply.5': [],\n", - " '$174compare_op.8': [],\n", - " '$176pred': [],\n", - " '$180pred': [],\n", - " '$186binary_true_divide.2': [],\n", - " '$188return_value.3': [],\n", - " '$192return_value.1': [],\n", - " '$22compare_op.8': [],\n", - " '$24pred': [],\n", - " '$2load_deref.0': [],\n", - " '$40compare_op.5': [],\n", - " '$42pred': [],\n", - " '$44load_global.0': [],\n", - " '$48load_deref.0': [],\n", - " '$50pred': [],\n", - " '$56compare_op.2': [],\n", - " '$58pred': [],\n", - " '$60load_deref.0': [],\n", - " '$62pred': [],\n", - " '$68load_global.0': [],\n", - " '$72call_function.2': [],\n", - " '$80compare_op.2': [],\n", - " '$82pred': [],\n", - " '$88compare_op.2': [],\n", - " '$90pred': [],\n", - " '$94return_value.1': [],\n", - " '$const108.1': [],\n", - " '$const132.1': [],\n", - " '$const140.1': [],\n", - " '$const156.1': [],\n", - " '$const172.7': [],\n", - " '$const182.0': [],\n", - " '$const20.7': [],\n", - " '$const38.4': [],\n", - " '$const4.1': [],\n", - " '$const54.1': [],\n", - " '$const70.1': [],\n", - " '$const78.1': [],\n", - " '$const86.1': [],\n", - " '$const92.0': [],\n", - " 'a': [],\n", - " 'a.1': [,\n", - " ],\n", - " 'b': [],\n", - " 'bool112': [],\n", - " 'bool136': [],\n", - " 'bool144': [],\n", - " 'bool176': [],\n", - " 'bool180': [],\n", - " 'bool24': [],\n", - " 'bool42': [],\n", - " 'bool50': [],\n", - " 'bool58': [],\n", - " 'bool62': [],\n", - " 'bool82': [],\n", - " 'bool90': [],\n", - " 'exp': [,\n", - " ,\n", - " ],\n", - " 'invert': [,\n", - " ],\n", - " 'r': [,\n", - " ]})\n", - "2023-05-15 11:07:24,802 | DEBUG | ssa.py:156 | SSA violators {'exp', 'invert', 'r', 'a.1'}\n", - "2023-05-15 11:07:24,802 | DEBUG | ssa.py:63 | Fix SSA violator on var exp\n", - "2023-05-15 11:07:24,803 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:24,803 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,804 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:24,804 | DEBUG | ssa.py:193 | on stmt: b = arg(1, name=b)\n", - "2023-05-15 11:07:24,806 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(tp: int64)\n", - "2023-05-15 11:07:24,806 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(int, 1)\n", - "2023-05-15 11:07:24,807 | DEBUG | ssa.py:193 | on stmt: r = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,807 | DEBUG | ssa.py:193 | on stmt: $10load_deref.3 = freevar(tp: int64)\n", - "2023-05-15 11:07:24,808 | DEBUG | ssa.py:193 | on stmt: a.1 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,809 | DEBUG | ssa.py:193 | on stmt: $const20.7 = const(int, 0)\n", - "2023-05-15 11:07:24,809 | DEBUG | ssa.py:193 | on stmt: $22compare_op.8 = b < $const20.7\n", - "2023-05-15 11:07:24,813 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:24,814 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22compare_op.8, func=bool24, args=(Var($22compare_op.8, numbers.py:218),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,814 | DEBUG | ssa.py:193 | on stmt: branch $24pred, 26, 98\n", - "2023-05-15 11:07:24,815 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:24,815 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,816 | DEBUG | ssa.py:193 | on stmt: invert = const(bool, True)\n", - "2023-05-15 11:07:24,816 | DEBUG | ssa.py:193 | on stmt: exp = unary(fn=, value=b)\n", - "2023-05-15 11:07:24,816 | DEBUG | ssa.py:269 | first assign: exp\n", - "2023-05-15 11:07:24,817 | DEBUG | ssa.py:199 | replaced with: exp = unary(fn=, value=b)\n", - "2023-05-15 11:07:24,817 | DEBUG | ssa.py:193 | on stmt: $const38.4 = const(int, 0)\n", - "2023-05-15 11:07:24,818 | DEBUG | ssa.py:193 | on stmt: $40compare_op.5 = exp < $const38.4\n", - "2023-05-15 11:07:24,818 | DEBUG | ssa.py:193 | on stmt: bool42 = global(bool: )\n", - "2023-05-15 11:07:24,819 | DEBUG | ssa.py:193 | on stmt: $42pred = call bool42($40compare_op.5, func=bool42, args=(Var($40compare_op.5, numbers.py:221),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,820 | DEBUG | ssa.py:193 | on stmt: branch $42pred, 44, 48\n", - "2023-05-15 11:07:24,820 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 44\n", - "2023-05-15 11:07:24,821 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,821 | DEBUG | ssa.py:193 | on stmt: $44load_global.0 = global(OverflowError: )\n", - "2023-05-15 11:07:24,822 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:24,822 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:24,823 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,823 | DEBUG | ssa.py:193 | on stmt: $48load_deref.0 = freevar(is_integer: True)\n", - "2023-05-15 11:07:24,823 | DEBUG | ssa.py:193 | on stmt: bool50 = global(bool: )\n", - "2023-05-15 11:07:24,824 | DEBUG | ssa.py:193 | on stmt: $50pred = call bool50($48load_deref.0, func=bool50, args=(Var($48load_deref.0, numbers.py:223),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,824 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:24,825 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 52\n", - "2023-05-15 11:07:24,825 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,825 | DEBUG | ssa.py:193 | on stmt: $const54.1 = const(int, 0)\n", - "2023-05-15 11:07:24,826 | DEBUG | ssa.py:193 | on stmt: $56compare_op.2 = a.1 == $const54.1\n", - "2023-05-15 11:07:24,826 | DEBUG | ssa.py:193 | on stmt: bool58 = global(bool: )\n", - "2023-05-15 11:07:24,827 | DEBUG | ssa.py:193 | on stmt: $58pred = call bool58($56compare_op.2, func=bool58, args=(Var($56compare_op.2, numbers.py:224),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,827 | DEBUG | ssa.py:193 | on stmt: branch $58pred, 60, 76\n", - "2023-05-15 11:07:24,827 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:24,828 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,828 | DEBUG | ssa.py:193 | on stmt: $60load_deref.0 = freevar(zerodiv_return: False)\n", - "2023-05-15 11:07:24,829 | DEBUG | ssa.py:193 | on stmt: bool62 = global(bool: )\n", - "2023-05-15 11:07:24,829 | DEBUG | ssa.py:193 | on stmt: $62pred = call bool62($60load_deref.0, func=bool62, args=(Var($60load_deref.0, numbers.py:225),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,830 | DEBUG | ssa.py:193 | on stmt: jump 68\n", - "2023-05-15 11:07:24,830 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:24,831 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,831 | DEBUG | ssa.py:193 | on stmt: $68load_global.0 = global(ZeroDivisionError: )\n", - "2023-05-15 11:07:24,831 | DEBUG | ssa.py:193 | on stmt: $const70.1 = const(str, 0 cannot be raised to a negative power)\n", - "2023-05-15 11:07:24,832 | DEBUG | ssa.py:193 | on stmt: $72call_function.2 = call $68load_global.0($const70.1, func=$68load_global.0, args=[Var($const70.1, numbers.py:228)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,832 | DEBUG | ssa.py:193 | on stmt: raise ('0 cannot be raised to a negative power')\n", - "2023-05-15 11:07:24,835 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 76\n", - "2023-05-15 11:07:24,837 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,837 | DEBUG | ssa.py:193 | on stmt: $const78.1 = const(int, 1)\n", - "2023-05-15 11:07:24,838 | DEBUG | ssa.py:193 | on stmt: $80compare_op.2 = a.1 != $const78.1\n", - "2023-05-15 11:07:24,838 | DEBUG | ssa.py:193 | on stmt: bool82 = global(bool: )\n", - "2023-05-15 11:07:24,838 | DEBUG | ssa.py:193 | on stmt: $82pred = call bool82($80compare_op.2, func=bool82, args=(Var($80compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,839 | DEBUG | ssa.py:193 | on stmt: branch $82pred, 84, 96\n", - "2023-05-15 11:07:24,840 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 84\n", - "2023-05-15 11:07:24,840 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,841 | DEBUG | ssa.py:193 | on stmt: $const86.1 = const(int, -1)\n", - "2023-05-15 11:07:24,841 | DEBUG | ssa.py:193 | on stmt: $88compare_op.2 = a.1 != $const86.1\n", - "2023-05-15 11:07:24,842 | DEBUG | ssa.py:193 | on stmt: bool90 = global(bool: )\n", - "2023-05-15 11:07:24,843 | DEBUG | ssa.py:193 | on stmt: $90pred = call bool90($88compare_op.2, func=bool90, args=(Var($88compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,843 | DEBUG | ssa.py:193 | on stmt: branch $90pred, 92, 96\n", - "2023-05-15 11:07:24,843 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 92\n", - "2023-05-15 11:07:24,844 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,845 | DEBUG | ssa.py:193 | on stmt: $const92.0 = const(int, 0)\n", - "2023-05-15 11:07:24,845 | DEBUG | ssa.py:193 | on stmt: $94return_value.1 = cast(value=$const92.0)\n", - "2023-05-15 11:07:24,846 | DEBUG | ssa.py:193 | on stmt: return $94return_value.1\n", - "2023-05-15 11:07:24,846 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:24,847 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,847 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:24,848 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:24,848 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,849 | DEBUG | ssa.py:193 | on stmt: invert = const(bool, False)\n", - "2023-05-15 11:07:24,849 | DEBUG | ssa.py:193 | on stmt: exp = b\n", - "2023-05-15 11:07:24,850 | DEBUG | ssa.py:199 | replaced with: exp.1 = b\n", - "2023-05-15 11:07:24,850 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:24,851 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:24,851 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,852 | DEBUG | ssa.py:193 | on stmt: $const108.1 = const(int, 65536)\n", - "2023-05-15 11:07:24,852 | DEBUG | ssa.py:193 | on stmt: $110compare_op.2 = exp > $const108.1\n", - "2023-05-15 11:07:24,853 | DEBUG | ssa.py:193 | on stmt: bool112 = global(bool: )\n", - "2023-05-15 11:07:24,853 | DEBUG | ssa.py:193 | on stmt: $112pred = call bool112($110compare_op.2, func=bool112, args=(Var($110compare_op.2, numbers.py:234),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,854 | DEBUG | ssa.py:193 | on stmt: branch $112pred, 114, 130\n", - "2023-05-15 11:07:24,854 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 114\n", - "2023-05-15 11:07:24,855 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,855 | DEBUG | ssa.py:193 | on stmt: $114load_global.0 = global(math: )\n", - "2023-05-15 11:07:24,856 | DEBUG | ssa.py:193 | on stmt: $116load_method.1 = getattr(value=$114load_global.0, attr=pow)\n", - "2023-05-15 11:07:24,861 | DEBUG | ssa.py:193 | on stmt: $120load_global.3 = global(float: )\n", - "2023-05-15 11:07:24,862 | DEBUG | ssa.py:193 | on stmt: $124call_function.5 = call $120load_global.3(b, func=$120load_global.3, args=[Var(b, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,862 | DEBUG | ssa.py:193 | on stmt: $126call_method.6 = call $116load_method.1(a.1, $124call_function.5, func=$116load_method.1, args=[Var(a.1, numbers.py:217), Var($124call_function.5, numbers.py:236)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,863 | DEBUG | ssa.py:193 | on stmt: $128return_value.7 = cast(value=$126call_method.6)\n", - "2023-05-15 11:07:24,863 | DEBUG | ssa.py:193 | on stmt: return $128return_value.7\n", - "2023-05-15 11:07:24,864 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 130\n", - "2023-05-15 11:07:24,864 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,867 | DEBUG | ssa.py:193 | on stmt: $const132.1 = const(int, 0)\n", - "2023-05-15 11:07:24,867 | DEBUG | ssa.py:193 | on stmt: $134compare_op.2 = exp != $const132.1\n", - "2023-05-15 11:07:24,868 | DEBUG | ssa.py:193 | on stmt: bool136 = global(bool: )\n", - "2023-05-15 11:07:24,868 | DEBUG | ssa.py:193 | on stmt: $136pred = call bool136($134compare_op.2, func=bool136, args=(Var($134compare_op.2, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,869 | DEBUG | ssa.py:193 | on stmt: branch $136pred, 138, 178\n", - "2023-05-15 11:07:24,869 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 138\n", - "2023-05-15 11:07:24,870 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,872 | DEBUG | ssa.py:193 | on stmt: $const140.1 = const(int, 1)\n", - "2023-05-15 11:07:24,872 | DEBUG | ssa.py:193 | on stmt: $142binary_and.2 = exp & $const140.1\n", - "2023-05-15 11:07:24,873 | DEBUG | ssa.py:193 | on stmt: bool144 = global(bool: )\n", - "2023-05-15 11:07:24,873 | DEBUG | ssa.py:193 | on stmt: $144pred = call bool144($142binary_and.2, func=bool144, args=(Var($142binary_and.2, numbers.py:238),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,874 | DEBUG | ssa.py:193 | on stmt: branch $144pred, 146, 154\n", - "2023-05-15 11:07:24,874 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:24,875 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,875 | DEBUG | ssa.py:193 | on stmt: $150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:24,876 | DEBUG | ssa.py:193 | on stmt: r = $150inplace_multiply.2\n", - "2023-05-15 11:07:24,876 | DEBUG | ssa.py:193 | on stmt: jump 154\n", - "2023-05-15 11:07:24,878 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:24,879 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,879 | DEBUG | ssa.py:193 | on stmt: $const156.1 = const(int, 1)\n", - "2023-05-15 11:07:24,879 | DEBUG | ssa.py:193 | on stmt: $158inplace_rshift.2 = inplace_binop(fn=, immutable_fn=, lhs=exp, rhs=$const156.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:24,880 | DEBUG | ssa.py:193 | on stmt: exp = $158inplace_rshift.2\n", - "2023-05-15 11:07:24,880 | DEBUG | ssa.py:199 | replaced with: exp.2 = $158inplace_rshift.2\n", - "2023-05-15 11:07:24,881 | DEBUG | ssa.py:193 | on stmt: $166inplace_multiply.5 = inplace_binop(fn=, immutable_fn=, lhs=a.1, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:24,881 | DEBUG | ssa.py:193 | on stmt: a.1 = $166inplace_multiply.5\n", - "2023-05-15 11:07:24,882 | DEBUG | ssa.py:193 | on stmt: $const172.7 = const(int, 0)\n", - "2023-05-15 11:07:24,882 | DEBUG | ssa.py:193 | on stmt: $174compare_op.8 = exp != $const172.7\n", - "2023-05-15 11:07:24,882 | DEBUG | ssa.py:193 | on stmt: bool176 = global(bool: )\n", - "2023-05-15 11:07:24,883 | DEBUG | ssa.py:193 | on stmt: $176pred = call bool176($174compare_op.8, func=bool176, args=(Var($174compare_op.8, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,885 | DEBUG | ssa.py:193 | on stmt: branch $176pred, 138, 178\n", - "2023-05-15 11:07:24,885 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 178\n", - "2023-05-15 11:07:24,886 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,887 | DEBUG | ssa.py:193 | on stmt: bool180 = global(bool: )\n", - "2023-05-15 11:07:24,888 | DEBUG | ssa.py:193 | on stmt: $180pred = call bool180(invert, func=bool180, args=(Var(invert, numbers.py:219),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,889 | DEBUG | ssa.py:193 | on stmt: branch $180pred, 182, 190\n", - "2023-05-15 11:07:24,889 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:24,890 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,890 | DEBUG | ssa.py:193 | on stmt: $const182.0 = const(float, 1.0)\n", - "2023-05-15 11:07:24,891 | DEBUG | ssa.py:193 | on stmt: $186binary_true_divide.2 = $const182.0 / r\n", - "2023-05-15 11:07:24,891 | DEBUG | ssa.py:193 | on stmt: $188return_value.3 = cast(value=$186binary_true_divide.2)\n", - "2023-05-15 11:07:24,892 | DEBUG | ssa.py:193 | on stmt: return $188return_value.3\n", - "2023-05-15 11:07:24,892 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 190\n", - "2023-05-15 11:07:24,892 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,894 | DEBUG | ssa.py:193 | on stmt: $192return_value.1 = cast(value=r)\n", - "2023-05-15 11:07:24,895 | DEBUG | ssa.py:193 | on stmt: return $192return_value.1\n", - "2023-05-15 11:07:24,896 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {26: [],\n", - " 98: [],\n", - " 154: []})\n", - "2023-05-15 11:07:24,897 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:24,897 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,898 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:24,899 | DEBUG | ssa.py:193 | on stmt: b = arg(1, name=b)\n", - "2023-05-15 11:07:24,899 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(tp: int64)\n", - "2023-05-15 11:07:24,900 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(int, 1)\n", - "2023-05-15 11:07:24,900 | DEBUG | ssa.py:193 | on stmt: r = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,901 | DEBUG | ssa.py:193 | on stmt: $10load_deref.3 = freevar(tp: int64)\n", - "2023-05-15 11:07:24,902 | DEBUG | ssa.py:193 | on stmt: a.1 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,902 | DEBUG | ssa.py:193 | on stmt: $const20.7 = const(int, 0)\n", - "2023-05-15 11:07:24,903 | DEBUG | ssa.py:193 | on stmt: $22compare_op.8 = b < $const20.7\n", - "2023-05-15 11:07:24,905 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:24,906 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22compare_op.8, func=bool24, args=(Var($22compare_op.8, numbers.py:218),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,906 | DEBUG | ssa.py:193 | on stmt: branch $24pred, 26, 98\n", - "2023-05-15 11:07:24,907 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:24,907 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,908 | DEBUG | ssa.py:193 | on stmt: invert = const(bool, True)\n", - "2023-05-15 11:07:24,908 | DEBUG | ssa.py:193 | on stmt: exp = unary(fn=, value=b)\n", - "2023-05-15 11:07:24,909 | DEBUG | ssa.py:193 | on stmt: $const38.4 = const(int, 0)\n", - "2023-05-15 11:07:24,909 | DEBUG | ssa.py:193 | on stmt: $40compare_op.5 = exp < $const38.4\n", - "2023-05-15 11:07:24,910 | DEBUG | ssa.py:353 | find_def var='exp' stmt=$40compare_op.5 = exp < $const38.4\n", - "2023-05-15 11:07:24,911 | DEBUG | ssa.py:193 | on stmt: bool42 = global(bool: )\n", - "2023-05-15 11:07:24,911 | DEBUG | ssa.py:193 | on stmt: $42pred = call bool42($40compare_op.5, func=bool42, args=(Var($40compare_op.5, numbers.py:221),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,912 | DEBUG | ssa.py:193 | on stmt: branch $42pred, 44, 48\n", - "2023-05-15 11:07:24,912 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 44\n", - "2023-05-15 11:07:24,913 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,913 | DEBUG | ssa.py:193 | on stmt: $44load_global.0 = global(OverflowError: )\n", - "2023-05-15 11:07:24,914 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:24,914 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:24,915 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,916 | DEBUG | ssa.py:193 | on stmt: $48load_deref.0 = freevar(is_integer: True)\n", - "2023-05-15 11:07:24,916 | DEBUG | ssa.py:193 | on stmt: bool50 = global(bool: )\n", - "2023-05-15 11:07:24,917 | DEBUG | ssa.py:193 | on stmt: $50pred = call bool50($48load_deref.0, func=bool50, args=(Var($48load_deref.0, numbers.py:223),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,917 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:24,918 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 52\n", - "2023-05-15 11:07:24,918 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,919 | DEBUG | ssa.py:193 | on stmt: $const54.1 = const(int, 0)\n", - "2023-05-15 11:07:24,919 | DEBUG | ssa.py:193 | on stmt: $56compare_op.2 = a.1 == $const54.1\n", - "2023-05-15 11:07:24,920 | DEBUG | ssa.py:193 | on stmt: bool58 = global(bool: )\n", - "2023-05-15 11:07:24,921 | DEBUG | ssa.py:193 | on stmt: $58pred = call bool58($56compare_op.2, func=bool58, args=(Var($56compare_op.2, numbers.py:224),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,921 | DEBUG | ssa.py:193 | on stmt: branch $58pred, 60, 76\n", - "2023-05-15 11:07:24,922 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:24,923 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,924 | DEBUG | ssa.py:193 | on stmt: $60load_deref.0 = freevar(zerodiv_return: False)\n", - "2023-05-15 11:07:24,926 | DEBUG | ssa.py:193 | on stmt: bool62 = global(bool: )\n", - "2023-05-15 11:07:24,927 | DEBUG | ssa.py:193 | on stmt: $62pred = call bool62($60load_deref.0, func=bool62, args=(Var($60load_deref.0, numbers.py:225),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,928 | DEBUG | ssa.py:193 | on stmt: jump 68\n", - "2023-05-15 11:07:24,929 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:24,929 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,930 | DEBUG | ssa.py:193 | on stmt: $68load_global.0 = global(ZeroDivisionError: )\n", - "2023-05-15 11:07:24,930 | DEBUG | ssa.py:193 | on stmt: $const70.1 = const(str, 0 cannot be raised to a negative power)\n", - "2023-05-15 11:07:24,930 | DEBUG | ssa.py:193 | on stmt: $72call_function.2 = call $68load_global.0($const70.1, func=$68load_global.0, args=[Var($const70.1, numbers.py:228)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,931 | DEBUG | ssa.py:193 | on stmt: raise ('0 cannot be raised to a negative power')\n", - "2023-05-15 11:07:24,932 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 76\n", - "2023-05-15 11:07:24,932 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,933 | DEBUG | ssa.py:193 | on stmt: $const78.1 = const(int, 1)\n", - "2023-05-15 11:07:24,933 | DEBUG | ssa.py:193 | on stmt: $80compare_op.2 = a.1 != $const78.1\n", - "2023-05-15 11:07:24,934 | DEBUG | ssa.py:193 | on stmt: bool82 = global(bool: )\n", - "2023-05-15 11:07:24,934 | DEBUG | ssa.py:193 | on stmt: $82pred = call bool82($80compare_op.2, func=bool82, args=(Var($80compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,935 | DEBUG | ssa.py:193 | on stmt: branch $82pred, 84, 96\n", - "2023-05-15 11:07:24,936 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 84\n", - "2023-05-15 11:07:24,936 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,939 | DEBUG | ssa.py:193 | on stmt: $const86.1 = const(int, -1)\n", - "2023-05-15 11:07:24,939 | DEBUG | ssa.py:193 | on stmt: $88compare_op.2 = a.1 != $const86.1\n", - "2023-05-15 11:07:24,940 | DEBUG | ssa.py:193 | on stmt: bool90 = global(bool: )\n", - "2023-05-15 11:07:24,941 | DEBUG | ssa.py:193 | on stmt: $90pred = call bool90($88compare_op.2, func=bool90, args=(Var($88compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,942 | DEBUG | ssa.py:193 | on stmt: branch $90pred, 92, 96\n", - "2023-05-15 11:07:24,943 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 92\n", - "2023-05-15 11:07:24,943 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,944 | DEBUG | ssa.py:193 | on stmt: $const92.0 = const(int, 0)\n", - "2023-05-15 11:07:24,944 | DEBUG | ssa.py:193 | on stmt: $94return_value.1 = cast(value=$const92.0)\n", - "2023-05-15 11:07:24,945 | DEBUG | ssa.py:193 | on stmt: return $94return_value.1\n", - "2023-05-15 11:07:24,949 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:24,949 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,950 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:24,950 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:24,951 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,951 | DEBUG | ssa.py:193 | on stmt: invert = const(bool, False)\n", - "2023-05-15 11:07:24,952 | DEBUG | ssa.py:193 | on stmt: exp.1 = b\n", - "2023-05-15 11:07:24,952 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:24,953 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:24,953 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,954 | DEBUG | ssa.py:193 | on stmt: $const108.1 = const(int, 65536)\n", - "2023-05-15 11:07:24,955 | DEBUG | ssa.py:193 | on stmt: $110compare_op.2 = exp > $const108.1\n", - "2023-05-15 11:07:24,955 | DEBUG | ssa.py:353 | find_def var='exp' stmt=$110compare_op.2 = exp > $const108.1\n", - "2023-05-15 11:07:24,957 | DEBUG | ssa.py:384 | find_def_from_top label 106\n", - "2023-05-15 11:07:24,957 | DEBUG | ssa.py:401 | insert phi node exp.3 = phi(incoming_values=[], incoming_blocks=[]) at 106\n", - "2023-05-15 11:07:24,958 | DEBUG | ssa.py:427 | find_def_from_bottom label 96\n", - "2023-05-15 11:07:24,958 | DEBUG | ssa.py:384 | find_def_from_top label 96\n", - "2023-05-15 11:07:24,959 | DEBUG | ssa.py:421 | idom 76 from label 96\n", - "2023-05-15 11:07:24,959 | DEBUG | ssa.py:427 | find_def_from_bottom label 76\n", - "2023-05-15 11:07:24,960 | DEBUG | ssa.py:384 | find_def_from_top label 76\n", - "2023-05-15 11:07:24,960 | DEBUG | ssa.py:421 | idom 52 from label 76\n", - "2023-05-15 11:07:24,961 | DEBUG | ssa.py:427 | find_def_from_bottom label 52\n", - "2023-05-15 11:07:24,961 | DEBUG | ssa.py:384 | find_def_from_top label 52\n", - "2023-05-15 11:07:24,962 | DEBUG | ssa.py:421 | idom 48 from label 52\n", - "2023-05-15 11:07:24,962 | DEBUG | ssa.py:427 | find_def_from_bottom label 48\n", - "2023-05-15 11:07:24,963 | DEBUG | ssa.py:384 | find_def_from_top label 48\n", - "2023-05-15 11:07:24,963 | DEBUG | ssa.py:421 | idom 26 from label 48\n", - "2023-05-15 11:07:24,963 | DEBUG | ssa.py:427 | find_def_from_bottom label 26\n", - "2023-05-15 11:07:24,964 | DEBUG | ssa.py:409 | incoming_def exp = unary(fn=, value=b)\n", - "2023-05-15 11:07:24,964 | DEBUG | ssa.py:427 | find_def_from_bottom label 98\n", - "2023-05-15 11:07:24,965 | DEBUG | ssa.py:409 | incoming_def exp.1 = b\n", - "2023-05-15 11:07:24,968 | DEBUG | ssa.py:199 | replaced with: $110compare_op.2 = exp.3 > $const108.1\n", - "2023-05-15 11:07:24,968 | DEBUG | ssa.py:193 | on stmt: bool112 = global(bool: )\n", - "2023-05-15 11:07:24,969 | DEBUG | ssa.py:193 | on stmt: $112pred = call bool112($110compare_op.2, func=bool112, args=(Var($110compare_op.2, numbers.py:234),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,970 | DEBUG | ssa.py:193 | on stmt: branch $112pred, 114, 130\n", - "2023-05-15 11:07:24,971 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 114\n", - "2023-05-15 11:07:24,971 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,972 | DEBUG | ssa.py:193 | on stmt: $114load_global.0 = global(math: )\n", - "2023-05-15 11:07:24,972 | DEBUG | ssa.py:193 | on stmt: $116load_method.1 = getattr(value=$114load_global.0, attr=pow)\n", - "2023-05-15 11:07:24,973 | DEBUG | ssa.py:193 | on stmt: $120load_global.3 = global(float: )\n", - "2023-05-15 11:07:24,973 | DEBUG | ssa.py:193 | on stmt: $124call_function.5 = call $120load_global.3(b, func=$120load_global.3, args=[Var(b, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,974 | DEBUG | ssa.py:193 | on stmt: $126call_method.6 = call $116load_method.1(a.1, $124call_function.5, func=$116load_method.1, args=[Var(a.1, numbers.py:217), Var($124call_function.5, numbers.py:236)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,974 | DEBUG | ssa.py:193 | on stmt: $128return_value.7 = cast(value=$126call_method.6)\n", - "2023-05-15 11:07:24,975 | DEBUG | ssa.py:193 | on stmt: return $128return_value.7\n", - "2023-05-15 11:07:24,975 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 130\n", - "2023-05-15 11:07:24,976 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,976 | DEBUG | ssa.py:193 | on stmt: $const132.1 = const(int, 0)\n", - "2023-05-15 11:07:24,977 | DEBUG | ssa.py:193 | on stmt: $134compare_op.2 = exp != $const132.1\n", - "2023-05-15 11:07:24,977 | DEBUG | ssa.py:353 | find_def var='exp' stmt=$134compare_op.2 = exp != $const132.1\n", - "2023-05-15 11:07:24,978 | DEBUG | ssa.py:384 | find_def_from_top label 130\n", - "2023-05-15 11:07:24,978 | DEBUG | ssa.py:421 | idom 106 from label 130\n", - "2023-05-15 11:07:24,979 | DEBUG | ssa.py:427 | find_def_from_bottom label 106\n", - "2023-05-15 11:07:24,980 | DEBUG | ssa.py:199 | replaced with: $134compare_op.2 = exp.3 != $const132.1\n", - "2023-05-15 11:07:24,980 | DEBUG | ssa.py:193 | on stmt: bool136 = global(bool: )\n", - "2023-05-15 11:07:24,981 | DEBUG | ssa.py:193 | on stmt: $136pred = call bool136($134compare_op.2, func=bool136, args=(Var($134compare_op.2, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,981 | DEBUG | ssa.py:193 | on stmt: branch $136pred, 138, 178\n", - "2023-05-15 11:07:24,981 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 138\n", - "2023-05-15 11:07:24,982 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,982 | DEBUG | ssa.py:193 | on stmt: $const140.1 = const(int, 1)\n", - "2023-05-15 11:07:24,983 | DEBUG | ssa.py:193 | on stmt: $142binary_and.2 = exp & $const140.1\n", - "2023-05-15 11:07:24,985 | DEBUG | ssa.py:353 | find_def var='exp' stmt=$142binary_and.2 = exp & $const140.1\n", - "2023-05-15 11:07:24,986 | DEBUG | ssa.py:384 | find_def_from_top label 138\n", - "2023-05-15 11:07:24,986 | DEBUG | ssa.py:401 | insert phi node exp.4 = phi(incoming_values=[], incoming_blocks=[]) at 138\n", - "2023-05-15 11:07:24,986 | DEBUG | ssa.py:427 | find_def_from_bottom label 130\n", - "2023-05-15 11:07:24,987 | DEBUG | ssa.py:384 | find_def_from_top label 130\n", - "2023-05-15 11:07:24,989 | DEBUG | ssa.py:421 | idom 106 from label 130\n", - "2023-05-15 11:07:24,989 | DEBUG | ssa.py:427 | find_def_from_bottom label 106\n", - "2023-05-15 11:07:24,989 | DEBUG | ssa.py:409 | incoming_def exp.3 = phi(incoming_values=[Var(exp, numbers.py:220), Var(exp.1, numbers.py:233)], incoming_blocks=[96, 98])\n", - "2023-05-15 11:07:24,990 | DEBUG | ssa.py:427 | find_def_from_bottom label 154\n", - "2023-05-15 11:07:24,990 | DEBUG | ssa.py:409 | incoming_def exp.2 = $158inplace_rshift.2\n", - "2023-05-15 11:07:24,991 | DEBUG | ssa.py:199 | replaced with: $142binary_and.2 = exp.4 & $const140.1\n", - "2023-05-15 11:07:24,992 | DEBUG | ssa.py:193 | on stmt: bool144 = global(bool: )\n", - "2023-05-15 11:07:24,992 | DEBUG | ssa.py:193 | on stmt: $144pred = call bool144($142binary_and.2, func=bool144, args=(Var($142binary_and.2, numbers.py:238),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:24,993 | DEBUG | ssa.py:193 | on stmt: branch $144pred, 146, 154\n", - "2023-05-15 11:07:24,993 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:24,994 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,994 | DEBUG | ssa.py:193 | on stmt: $150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:24,994 | DEBUG | ssa.py:193 | on stmt: r = $150inplace_multiply.2\n", - "2023-05-15 11:07:24,995 | DEBUG | ssa.py:193 | on stmt: jump 154\n", - "2023-05-15 11:07:24,995 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:24,995 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:24,996 | DEBUG | ssa.py:193 | on stmt: $const156.1 = const(int, 1)\n", - "2023-05-15 11:07:24,996 | DEBUG | ssa.py:193 | on stmt: $158inplace_rshift.2 = inplace_binop(fn=, immutable_fn=, lhs=exp, rhs=$const156.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:24,997 | DEBUG | ssa.py:353 | find_def var='exp' stmt=$158inplace_rshift.2 = inplace_binop(fn=, immutable_fn=, lhs=exp, rhs=$const156.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:24,997 | DEBUG | ssa.py:384 | find_def_from_top label 154\n", - "2023-05-15 11:07:24,998 | DEBUG | ssa.py:421 | idom 138 from label 154\n", - "2023-05-15 11:07:24,998 | DEBUG | ssa.py:427 | find_def_from_bottom label 138\n", - "2023-05-15 11:07:24,998 | DEBUG | ssa.py:199 | replaced with: $158inplace_rshift.2 = inplace_binop(fn=, immutable_fn=, lhs=exp.4, rhs=$const156.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,001 | DEBUG | ssa.py:193 | on stmt: exp.2 = $158inplace_rshift.2\n", - "2023-05-15 11:07:25,001 | DEBUG | ssa.py:193 | on stmt: $166inplace_multiply.5 = inplace_binop(fn=, immutable_fn=, lhs=a.1, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,002 | DEBUG | ssa.py:193 | on stmt: a.1 = $166inplace_multiply.5\n", - "2023-05-15 11:07:25,002 | DEBUG | ssa.py:193 | on stmt: $const172.7 = const(int, 0)\n", - "2023-05-15 11:07:25,004 | DEBUG | ssa.py:193 | on stmt: $174compare_op.8 = exp != $const172.7\n", - "2023-05-15 11:07:25,004 | DEBUG | ssa.py:353 | find_def var='exp' stmt=$174compare_op.8 = exp != $const172.7\n", - "2023-05-15 11:07:25,005 | DEBUG | ssa.py:199 | replaced with: $174compare_op.8 = exp.2 != $const172.7\n", - "2023-05-15 11:07:25,005 | DEBUG | ssa.py:193 | on stmt: bool176 = global(bool: )\n", - "2023-05-15 11:07:25,006 | DEBUG | ssa.py:193 | on stmt: $176pred = call bool176($174compare_op.8, func=bool176, args=(Var($174compare_op.8, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,006 | DEBUG | ssa.py:193 | on stmt: branch $176pred, 138, 178\n", - "2023-05-15 11:07:25,007 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 178\n", - "2023-05-15 11:07:25,007 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,008 | DEBUG | ssa.py:193 | on stmt: bool180 = global(bool: )\n", - "2023-05-15 11:07:25,008 | DEBUG | ssa.py:193 | on stmt: $180pred = call bool180(invert, func=bool180, args=(Var(invert, numbers.py:219),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,009 | DEBUG | ssa.py:193 | on stmt: branch $180pred, 182, 190\n", - "2023-05-15 11:07:25,009 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:25,009 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,010 | DEBUG | ssa.py:193 | on stmt: $const182.0 = const(float, 1.0)\n", - "2023-05-15 11:07:25,010 | DEBUG | ssa.py:193 | on stmt: $186binary_true_divide.2 = $const182.0 / r\n", - "2023-05-15 11:07:25,011 | DEBUG | ssa.py:193 | on stmt: $188return_value.3 = cast(value=$186binary_true_divide.2)\n", - "2023-05-15 11:07:25,011 | DEBUG | ssa.py:193 | on stmt: return $188return_value.3\n", - "2023-05-15 11:07:25,012 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 190\n", - "2023-05-15 11:07:25,012 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,012 | DEBUG | ssa.py:193 | on stmt: $192return_value.1 = cast(value=r)\n", - "2023-05-15 11:07:25,013 | DEBUG | ssa.py:193 | on stmt: return $192return_value.1\n", - "2023-05-15 11:07:25,013 | DEBUG | ssa.py:63 | Fix SSA violator on var invert\n", - "2023-05-15 11:07:25,014 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:25,014 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,015 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:25,015 | DEBUG | ssa.py:193 | on stmt: b = arg(1, name=b)\n", - "2023-05-15 11:07:25,016 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(tp: int64)\n", - "2023-05-15 11:07:25,017 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(int, 1)\n", - "2023-05-15 11:07:25,019 | DEBUG | ssa.py:193 | on stmt: r = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,020 | DEBUG | ssa.py:193 | on stmt: $10load_deref.3 = freevar(tp: int64)\n", - "2023-05-15 11:07:25,021 | DEBUG | ssa.py:193 | on stmt: a.1 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,022 | DEBUG | ssa.py:193 | on stmt: $const20.7 = const(int, 0)\n", - "2023-05-15 11:07:25,023 | DEBUG | ssa.py:193 | on stmt: $22compare_op.8 = b < $const20.7\n", - "2023-05-15 11:07:25,023 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:25,024 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22compare_op.8, func=bool24, args=(Var($22compare_op.8, numbers.py:218),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,025 | DEBUG | ssa.py:193 | on stmt: branch $24pred, 26, 98\n", - "2023-05-15 11:07:25,026 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:25,026 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,027 | DEBUG | ssa.py:193 | on stmt: invert = const(bool, True)\n", - "2023-05-15 11:07:25,027 | DEBUG | ssa.py:269 | first assign: invert\n", - "2023-05-15 11:07:25,028 | DEBUG | ssa.py:199 | replaced with: invert = const(bool, True)\n", - "2023-05-15 11:07:25,028 | DEBUG | ssa.py:193 | on stmt: exp = unary(fn=, value=b)\n", - "2023-05-15 11:07:25,029 | DEBUG | ssa.py:193 | on stmt: $const38.4 = const(int, 0)\n", - "2023-05-15 11:07:25,030 | DEBUG | ssa.py:193 | on stmt: $40compare_op.5 = exp < $const38.4\n", - "2023-05-15 11:07:25,030 | DEBUG | ssa.py:193 | on stmt: bool42 = global(bool: )\n", - "2023-05-15 11:07:25,031 | DEBUG | ssa.py:193 | on stmt: $42pred = call bool42($40compare_op.5, func=bool42, args=(Var($40compare_op.5, numbers.py:221),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,031 | DEBUG | ssa.py:193 | on stmt: branch $42pred, 44, 48\n", - "2023-05-15 11:07:25,032 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 44\n", - "2023-05-15 11:07:25,032 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,033 | DEBUG | ssa.py:193 | on stmt: $44load_global.0 = global(OverflowError: )\n", - "2023-05-15 11:07:25,033 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:25,034 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:25,035 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,035 | DEBUG | ssa.py:193 | on stmt: $48load_deref.0 = freevar(is_integer: True)\n", - "2023-05-15 11:07:25,036 | DEBUG | ssa.py:193 | on stmt: bool50 = global(bool: )\n", - "2023-05-15 11:07:25,037 | DEBUG | ssa.py:193 | on stmt: $50pred = call bool50($48load_deref.0, func=bool50, args=(Var($48load_deref.0, numbers.py:223),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,037 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:25,038 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 52\n", - "2023-05-15 11:07:25,038 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,039 | DEBUG | ssa.py:193 | on stmt: $const54.1 = const(int, 0)\n", - "2023-05-15 11:07:25,039 | DEBUG | ssa.py:193 | on stmt: $56compare_op.2 = a.1 == $const54.1\n", - "2023-05-15 11:07:25,040 | DEBUG | ssa.py:193 | on stmt: bool58 = global(bool: )\n", - "2023-05-15 11:07:25,040 | DEBUG | ssa.py:193 | on stmt: $58pred = call bool58($56compare_op.2, func=bool58, args=(Var($56compare_op.2, numbers.py:224),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,042 | DEBUG | ssa.py:193 | on stmt: branch $58pred, 60, 76\n", - "2023-05-15 11:07:25,043 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:25,043 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,044 | DEBUG | ssa.py:193 | on stmt: $60load_deref.0 = freevar(zerodiv_return: False)\n", - "2023-05-15 11:07:25,044 | DEBUG | ssa.py:193 | on stmt: bool62 = global(bool: )\n", - "2023-05-15 11:07:25,045 | DEBUG | ssa.py:193 | on stmt: $62pred = call bool62($60load_deref.0, func=bool62, args=(Var($60load_deref.0, numbers.py:225),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,046 | DEBUG | ssa.py:193 | on stmt: jump 68\n", - "2023-05-15 11:07:25,046 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:25,047 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,048 | DEBUG | ssa.py:193 | on stmt: $68load_global.0 = global(ZeroDivisionError: )\n", - "2023-05-15 11:07:25,049 | DEBUG | ssa.py:193 | on stmt: $const70.1 = const(str, 0 cannot be raised to a negative power)\n", - "2023-05-15 11:07:25,050 | DEBUG | ssa.py:193 | on stmt: $72call_function.2 = call $68load_global.0($const70.1, func=$68load_global.0, args=[Var($const70.1, numbers.py:228)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,050 | DEBUG | ssa.py:193 | on stmt: raise ('0 cannot be raised to a negative power')\n", - "2023-05-15 11:07:25,051 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 76\n", - "2023-05-15 11:07:25,051 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,052 | DEBUG | ssa.py:193 | on stmt: $const78.1 = const(int, 1)\n", - "2023-05-15 11:07:25,052 | DEBUG | ssa.py:193 | on stmt: $80compare_op.2 = a.1 != $const78.1\n", - "2023-05-15 11:07:25,053 | DEBUG | ssa.py:193 | on stmt: bool82 = global(bool: )\n", - "2023-05-15 11:07:25,053 | DEBUG | ssa.py:193 | on stmt: $82pred = call bool82($80compare_op.2, func=bool82, args=(Var($80compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,054 | DEBUG | ssa.py:193 | on stmt: branch $82pred, 84, 96\n", - "2023-05-15 11:07:25,054 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 84\n", - "2023-05-15 11:07:25,055 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,056 | DEBUG | ssa.py:193 | on stmt: $const86.1 = const(int, -1)\n", - "2023-05-15 11:07:25,057 | DEBUG | ssa.py:193 | on stmt: $88compare_op.2 = a.1 != $const86.1\n", - "2023-05-15 11:07:25,057 | DEBUG | ssa.py:193 | on stmt: bool90 = global(bool: )\n", - "2023-05-15 11:07:25,058 | DEBUG | ssa.py:193 | on stmt: $90pred = call bool90($88compare_op.2, func=bool90, args=(Var($88compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,058 | DEBUG | ssa.py:193 | on stmt: branch $90pred, 92, 96\n", - "2023-05-15 11:07:25,059 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 92\n", - "2023-05-15 11:07:25,060 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,060 | DEBUG | ssa.py:193 | on stmt: $const92.0 = const(int, 0)\n", - "2023-05-15 11:07:25,061 | DEBUG | ssa.py:193 | on stmt: $94return_value.1 = cast(value=$const92.0)\n", - "2023-05-15 11:07:25,061 | DEBUG | ssa.py:193 | on stmt: return $94return_value.1\n", - "2023-05-15 11:07:25,062 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:25,062 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,063 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:25,063 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:25,064 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,065 | DEBUG | ssa.py:193 | on stmt: invert = const(bool, False)\n", - "2023-05-15 11:07:25,066 | DEBUG | ssa.py:199 | replaced with: invert.1 = const(bool, False)\n", - "2023-05-15 11:07:25,067 | DEBUG | ssa.py:193 | on stmt: exp.1 = b\n", - "2023-05-15 11:07:25,068 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:25,068 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:25,069 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,070 | DEBUG | ssa.py:193 | on stmt: exp.3 = phi(incoming_values=[Var(exp, numbers.py:220), Var(exp.1, numbers.py:233)], incoming_blocks=[96, 98])\n", - "2023-05-15 11:07:25,070 | DEBUG | ssa.py:193 | on stmt: $const108.1 = const(int, 65536)\n", - "2023-05-15 11:07:25,071 | DEBUG | ssa.py:193 | on stmt: $110compare_op.2 = exp.3 > $const108.1\n", - "2023-05-15 11:07:25,071 | DEBUG | ssa.py:193 | on stmt: bool112 = global(bool: )\n", - "2023-05-15 11:07:25,072 | DEBUG | ssa.py:193 | on stmt: $112pred = call bool112($110compare_op.2, func=bool112, args=(Var($110compare_op.2, numbers.py:234),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,072 | DEBUG | ssa.py:193 | on stmt: branch $112pred, 114, 130\n", - "2023-05-15 11:07:25,073 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 114\n", - "2023-05-15 11:07:25,077 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,085 | DEBUG | ssa.py:193 | on stmt: $114load_global.0 = global(math: )\n", - "2023-05-15 11:07:25,086 | DEBUG | ssa.py:193 | on stmt: $116load_method.1 = getattr(value=$114load_global.0, attr=pow)\n", - "2023-05-15 11:07:25,087 | DEBUG | ssa.py:193 | on stmt: $120load_global.3 = global(float: )\n", - "2023-05-15 11:07:25,088 | DEBUG | ssa.py:193 | on stmt: $124call_function.5 = call $120load_global.3(b, func=$120load_global.3, args=[Var(b, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,088 | DEBUG | ssa.py:193 | on stmt: $126call_method.6 = call $116load_method.1(a.1, $124call_function.5, func=$116load_method.1, args=[Var(a.1, numbers.py:217), Var($124call_function.5, numbers.py:236)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,089 | DEBUG | ssa.py:193 | on stmt: $128return_value.7 = cast(value=$126call_method.6)\n", - "2023-05-15 11:07:25,089 | DEBUG | ssa.py:193 | on stmt: return $128return_value.7\n", - "2023-05-15 11:07:25,090 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 130\n", - "2023-05-15 11:07:25,092 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,092 | DEBUG | ssa.py:193 | on stmt: $const132.1 = const(int, 0)\n", - "2023-05-15 11:07:25,093 | DEBUG | ssa.py:193 | on stmt: $134compare_op.2 = exp.3 != $const132.1\n", - "2023-05-15 11:07:25,093 | DEBUG | ssa.py:193 | on stmt: bool136 = global(bool: )\n", - "2023-05-15 11:07:25,094 | DEBUG | ssa.py:193 | on stmt: $136pred = call bool136($134compare_op.2, func=bool136, args=(Var($134compare_op.2, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,095 | DEBUG | ssa.py:193 | on stmt: branch $136pred, 138, 178\n", - "2023-05-15 11:07:25,095 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 138\n", - "2023-05-15 11:07:25,096 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,096 | DEBUG | ssa.py:193 | on stmt: exp.4 = phi(incoming_values=[Var(exp.3, numbers.py:234), Var(exp.2, numbers.py:240)], incoming_blocks=[130, 154])\n", - "2023-05-15 11:07:25,097 | DEBUG | ssa.py:193 | on stmt: $const140.1 = const(int, 1)\n", - "2023-05-15 11:07:25,097 | DEBUG | ssa.py:193 | on stmt: $142binary_and.2 = exp.4 & $const140.1\n", - "2023-05-15 11:07:25,098 | DEBUG | ssa.py:193 | on stmt: bool144 = global(bool: )\n", - "2023-05-15 11:07:25,099 | DEBUG | ssa.py:193 | on stmt: $144pred = call bool144($142binary_and.2, func=bool144, args=(Var($142binary_and.2, numbers.py:238),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,100 | DEBUG | ssa.py:193 | on stmt: branch $144pred, 146, 154\n", - "2023-05-15 11:07:25,100 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:25,101 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,101 | DEBUG | ssa.py:193 | on stmt: $150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,102 | DEBUG | ssa.py:193 | on stmt: r = $150inplace_multiply.2\n", - "2023-05-15 11:07:25,102 | DEBUG | ssa.py:193 | on stmt: jump 154\n", - "2023-05-15 11:07:25,103 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:25,103 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,104 | DEBUG | ssa.py:193 | on stmt: $const156.1 = const(int, 1)\n", - "2023-05-15 11:07:25,104 | DEBUG | ssa.py:193 | on stmt: $158inplace_rshift.2 = inplace_binop(fn=, immutable_fn=, lhs=exp.4, rhs=$const156.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,105 | DEBUG | ssa.py:193 | on stmt: exp.2 = $158inplace_rshift.2\n", - "2023-05-15 11:07:25,106 | DEBUG | ssa.py:193 | on stmt: $166inplace_multiply.5 = inplace_binop(fn=, immutable_fn=, lhs=a.1, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,106 | DEBUG | ssa.py:193 | on stmt: a.1 = $166inplace_multiply.5\n", - "2023-05-15 11:07:25,106 | DEBUG | ssa.py:193 | on stmt: $const172.7 = const(int, 0)\n", - "2023-05-15 11:07:25,107 | DEBUG | ssa.py:193 | on stmt: $174compare_op.8 = exp.2 != $const172.7\n", - "2023-05-15 11:07:25,108 | DEBUG | ssa.py:193 | on stmt: bool176 = global(bool: )\n", - "2023-05-15 11:07:25,108 | DEBUG | ssa.py:193 | on stmt: $176pred = call bool176($174compare_op.8, func=bool176, args=(Var($174compare_op.8, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,109 | DEBUG | ssa.py:193 | on stmt: branch $176pred, 138, 178\n", - "2023-05-15 11:07:25,109 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 178\n", - "2023-05-15 11:07:25,110 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,110 | DEBUG | ssa.py:193 | on stmt: bool180 = global(bool: )\n", - "2023-05-15 11:07:25,111 | DEBUG | ssa.py:193 | on stmt: $180pred = call bool180(invert, func=bool180, args=(Var(invert, numbers.py:219),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,111 | DEBUG | ssa.py:193 | on stmt: branch $180pred, 182, 190\n", - "2023-05-15 11:07:25,112 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:25,112 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,113 | DEBUG | ssa.py:193 | on stmt: $const182.0 = const(float, 1.0)\n", - "2023-05-15 11:07:25,113 | DEBUG | ssa.py:193 | on stmt: $186binary_true_divide.2 = $const182.0 / r\n", - "2023-05-15 11:07:25,114 | DEBUG | ssa.py:193 | on stmt: $188return_value.3 = cast(value=$186binary_true_divide.2)\n", - "2023-05-15 11:07:25,114 | DEBUG | ssa.py:193 | on stmt: return $188return_value.3\n", - "2023-05-15 11:07:25,115 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 190\n", - "2023-05-15 11:07:25,115 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,116 | DEBUG | ssa.py:193 | on stmt: $192return_value.1 = cast(value=r)\n", - "2023-05-15 11:07:25,116 | DEBUG | ssa.py:193 | on stmt: return $192return_value.1\n", - "2023-05-15 11:07:25,117 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {26: [],\n", - " 98: []})\n", - "2023-05-15 11:07:25,117 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:25,118 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,118 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:25,119 | DEBUG | ssa.py:193 | on stmt: b = arg(1, name=b)\n", - "2023-05-15 11:07:25,119 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(tp: int64)\n", - "2023-05-15 11:07:25,120 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(int, 1)\n", - "2023-05-15 11:07:25,120 | DEBUG | ssa.py:193 | on stmt: r = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,121 | DEBUG | ssa.py:193 | on stmt: $10load_deref.3 = freevar(tp: int64)\n", - "2023-05-15 11:07:25,121 | DEBUG | ssa.py:193 | on stmt: a.1 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,122 | DEBUG | ssa.py:193 | on stmt: $const20.7 = const(int, 0)\n", - "2023-05-15 11:07:25,122 | DEBUG | ssa.py:193 | on stmt: $22compare_op.8 = b < $const20.7\n", - "2023-05-15 11:07:25,123 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:25,123 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22compare_op.8, func=bool24, args=(Var($22compare_op.8, numbers.py:218),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,124 | DEBUG | ssa.py:193 | on stmt: branch $24pred, 26, 98\n", - "2023-05-15 11:07:25,125 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:25,125 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,126 | DEBUG | ssa.py:193 | on stmt: invert = const(bool, True)\n", - "2023-05-15 11:07:25,127 | DEBUG | ssa.py:193 | on stmt: exp = unary(fn=, value=b)\n", - "2023-05-15 11:07:25,127 | DEBUG | ssa.py:193 | on stmt: $const38.4 = const(int, 0)\n", - "2023-05-15 11:07:25,128 | DEBUG | ssa.py:193 | on stmt: $40compare_op.5 = exp < $const38.4\n", - "2023-05-15 11:07:25,128 | DEBUG | ssa.py:193 | on stmt: bool42 = global(bool: )\n", - "2023-05-15 11:07:25,129 | DEBUG | ssa.py:193 | on stmt: $42pred = call bool42($40compare_op.5, func=bool42, args=(Var($40compare_op.5, numbers.py:221),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,130 | DEBUG | ssa.py:193 | on stmt: branch $42pred, 44, 48\n", - "2023-05-15 11:07:25,130 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 44\n", - "2023-05-15 11:07:25,131 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,131 | DEBUG | ssa.py:193 | on stmt: $44load_global.0 = global(OverflowError: )\n", - "2023-05-15 11:07:25,132 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:25,132 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:25,133 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,134 | DEBUG | ssa.py:193 | on stmt: $48load_deref.0 = freevar(is_integer: True)\n", - "2023-05-15 11:07:25,134 | DEBUG | ssa.py:193 | on stmt: bool50 = global(bool: )\n", - "2023-05-15 11:07:25,135 | DEBUG | ssa.py:193 | on stmt: $50pred = call bool50($48load_deref.0, func=bool50, args=(Var($48load_deref.0, numbers.py:223),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,135 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:25,136 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 52\n", - "2023-05-15 11:07:25,136 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,137 | DEBUG | ssa.py:193 | on stmt: $const54.1 = const(int, 0)\n", - "2023-05-15 11:07:25,137 | DEBUG | ssa.py:193 | on stmt: $56compare_op.2 = a.1 == $const54.1\n", - "2023-05-15 11:07:25,138 | DEBUG | ssa.py:193 | on stmt: bool58 = global(bool: )\n", - "2023-05-15 11:07:25,138 | DEBUG | ssa.py:193 | on stmt: $58pred = call bool58($56compare_op.2, func=bool58, args=(Var($56compare_op.2, numbers.py:224),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,139 | DEBUG | ssa.py:193 | on stmt: branch $58pred, 60, 76\n", - "2023-05-15 11:07:25,139 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:25,140 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,140 | DEBUG | ssa.py:193 | on stmt: $60load_deref.0 = freevar(zerodiv_return: False)\n", - "2023-05-15 11:07:25,141 | DEBUG | ssa.py:193 | on stmt: bool62 = global(bool: )\n", - "2023-05-15 11:07:25,141 | DEBUG | ssa.py:193 | on stmt: $62pred = call bool62($60load_deref.0, func=bool62, args=(Var($60load_deref.0, numbers.py:225),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,142 | DEBUG | ssa.py:193 | on stmt: jump 68\n", - "2023-05-15 11:07:25,143 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:25,143 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,144 | DEBUG | ssa.py:193 | on stmt: $68load_global.0 = global(ZeroDivisionError: )\n", - "2023-05-15 11:07:25,144 | DEBUG | ssa.py:193 | on stmt: $const70.1 = const(str, 0 cannot be raised to a negative power)\n", - "2023-05-15 11:07:25,145 | DEBUG | ssa.py:193 | on stmt: $72call_function.2 = call $68load_global.0($const70.1, func=$68load_global.0, args=[Var($const70.1, numbers.py:228)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,145 | DEBUG | ssa.py:193 | on stmt: raise ('0 cannot be raised to a negative power')\n", - "2023-05-15 11:07:25,146 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 76\n", - "2023-05-15 11:07:25,146 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,147 | DEBUG | ssa.py:193 | on stmt: $const78.1 = const(int, 1)\n", - "2023-05-15 11:07:25,148 | DEBUG | ssa.py:193 | on stmt: $80compare_op.2 = a.1 != $const78.1\n", - "2023-05-15 11:07:25,148 | DEBUG | ssa.py:193 | on stmt: bool82 = global(bool: )\n", - "2023-05-15 11:07:25,149 | DEBUG | ssa.py:193 | on stmt: $82pred = call bool82($80compare_op.2, func=bool82, args=(Var($80compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,149 | DEBUG | ssa.py:193 | on stmt: branch $82pred, 84, 96\n", - "2023-05-15 11:07:25,150 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 84\n", - "2023-05-15 11:07:25,150 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,151 | DEBUG | ssa.py:193 | on stmt: $const86.1 = const(int, -1)\n", - "2023-05-15 11:07:25,151 | DEBUG | ssa.py:193 | on stmt: $88compare_op.2 = a.1 != $const86.1\n", - "2023-05-15 11:07:25,152 | DEBUG | ssa.py:193 | on stmt: bool90 = global(bool: )\n", - "2023-05-15 11:07:25,152 | DEBUG | ssa.py:193 | on stmt: $90pred = call bool90($88compare_op.2, func=bool90, args=(Var($88compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,153 | DEBUG | ssa.py:193 | on stmt: branch $90pred, 92, 96\n", - "2023-05-15 11:07:25,153 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 92\n", - "2023-05-15 11:07:25,154 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,154 | DEBUG | ssa.py:193 | on stmt: $const92.0 = const(int, 0)\n", - "2023-05-15 11:07:25,155 | DEBUG | ssa.py:193 | on stmt: $94return_value.1 = cast(value=$const92.0)\n", - "2023-05-15 11:07:25,155 | DEBUG | ssa.py:193 | on stmt: return $94return_value.1\n", - "2023-05-15 11:07:25,156 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:25,157 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,157 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:25,158 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:25,158 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,159 | DEBUG | ssa.py:193 | on stmt: invert.1 = const(bool, False)\n", - "2023-05-15 11:07:25,159 | DEBUG | ssa.py:193 | on stmt: exp.1 = b\n", - "2023-05-15 11:07:25,160 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:25,160 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:25,161 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,161 | DEBUG | ssa.py:193 | on stmt: exp.3 = phi(incoming_values=[Var(exp, numbers.py:220), Var(exp.1, numbers.py:233)], incoming_blocks=[96, 98])\n", - "2023-05-15 11:07:25,161 | DEBUG | ssa.py:193 | on stmt: $const108.1 = const(int, 65536)\n", - "2023-05-15 11:07:25,162 | DEBUG | ssa.py:193 | on stmt: $110compare_op.2 = exp.3 > $const108.1\n", - "2023-05-15 11:07:25,162 | DEBUG | ssa.py:193 | on stmt: bool112 = global(bool: )\n", - "2023-05-15 11:07:25,163 | DEBUG | ssa.py:193 | on stmt: $112pred = call bool112($110compare_op.2, func=bool112, args=(Var($110compare_op.2, numbers.py:234),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,163 | DEBUG | ssa.py:193 | on stmt: branch $112pred, 114, 130\n", - "2023-05-15 11:07:25,164 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 114\n", - "2023-05-15 11:07:25,165 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,167 | DEBUG | ssa.py:193 | on stmt: $114load_global.0 = global(math: )\n", - "2023-05-15 11:07:25,168 | DEBUG | ssa.py:193 | on stmt: $116load_method.1 = getattr(value=$114load_global.0, attr=pow)\n", - "2023-05-15 11:07:25,168 | DEBUG | ssa.py:193 | on stmt: $120load_global.3 = global(float: )\n", - "2023-05-15 11:07:25,169 | DEBUG | ssa.py:193 | on stmt: $124call_function.5 = call $120load_global.3(b, func=$120load_global.3, args=[Var(b, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,169 | DEBUG | ssa.py:193 | on stmt: $126call_method.6 = call $116load_method.1(a.1, $124call_function.5, func=$116load_method.1, args=[Var(a.1, numbers.py:217), Var($124call_function.5, numbers.py:236)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,170 | DEBUG | ssa.py:193 | on stmt: $128return_value.7 = cast(value=$126call_method.6)\n", - "2023-05-15 11:07:25,170 | DEBUG | ssa.py:193 | on stmt: return $128return_value.7\n", - "2023-05-15 11:07:25,170 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 130\n", - "2023-05-15 11:07:25,171 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,171 | DEBUG | ssa.py:193 | on stmt: $const132.1 = const(int, 0)\n", - "2023-05-15 11:07:25,172 | DEBUG | ssa.py:193 | on stmt: $134compare_op.2 = exp.3 != $const132.1\n", - "2023-05-15 11:07:25,172 | DEBUG | ssa.py:193 | on stmt: bool136 = global(bool: )\n", - "2023-05-15 11:07:25,173 | DEBUG | ssa.py:193 | on stmt: $136pred = call bool136($134compare_op.2, func=bool136, args=(Var($134compare_op.2, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,173 | DEBUG | ssa.py:193 | on stmt: branch $136pred, 138, 178\n", - "2023-05-15 11:07:25,174 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 138\n", - "2023-05-15 11:07:25,174 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,174 | DEBUG | ssa.py:193 | on stmt: exp.4 = phi(incoming_values=[Var(exp.3, numbers.py:234), Var(exp.2, numbers.py:240)], incoming_blocks=[130, 154])\n", - "2023-05-15 11:07:25,175 | DEBUG | ssa.py:193 | on stmt: $const140.1 = const(int, 1)\n", - "2023-05-15 11:07:25,178 | DEBUG | ssa.py:193 | on stmt: $142binary_and.2 = exp.4 & $const140.1\n", - "2023-05-15 11:07:25,183 | DEBUG | ssa.py:193 | on stmt: bool144 = global(bool: )\n", - "2023-05-15 11:07:25,190 | DEBUG | ssa.py:193 | on stmt: $144pred = call bool144($142binary_and.2, func=bool144, args=(Var($142binary_and.2, numbers.py:238),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,191 | DEBUG | ssa.py:193 | on stmt: branch $144pred, 146, 154\n", - "2023-05-15 11:07:25,191 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:25,192 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,192 | DEBUG | ssa.py:193 | on stmt: $150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,193 | DEBUG | ssa.py:193 | on stmt: r = $150inplace_multiply.2\n", - "2023-05-15 11:07:25,193 | DEBUG | ssa.py:193 | on stmt: jump 154\n", - "2023-05-15 11:07:25,193 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:25,194 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,194 | DEBUG | ssa.py:193 | on stmt: $const156.1 = const(int, 1)\n", - "2023-05-15 11:07:25,195 | DEBUG | ssa.py:193 | on stmt: $158inplace_rshift.2 = inplace_binop(fn=, immutable_fn=, lhs=exp.4, rhs=$const156.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,195 | DEBUG | ssa.py:193 | on stmt: exp.2 = $158inplace_rshift.2\n", - "2023-05-15 11:07:25,195 | DEBUG | ssa.py:193 | on stmt: $166inplace_multiply.5 = inplace_binop(fn=, immutable_fn=, lhs=a.1, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,196 | DEBUG | ssa.py:193 | on stmt: a.1 = $166inplace_multiply.5\n", - "2023-05-15 11:07:25,196 | DEBUG | ssa.py:193 | on stmt: $const172.7 = const(int, 0)\n", - "2023-05-15 11:07:25,197 | DEBUG | ssa.py:193 | on stmt: $174compare_op.8 = exp.2 != $const172.7\n", - "2023-05-15 11:07:25,197 | DEBUG | ssa.py:193 | on stmt: bool176 = global(bool: )\n", - "2023-05-15 11:07:25,197 | DEBUG | ssa.py:193 | on stmt: $176pred = call bool176($174compare_op.8, func=bool176, args=(Var($174compare_op.8, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,198 | DEBUG | ssa.py:193 | on stmt: branch $176pred, 138, 178\n", - "2023-05-15 11:07:25,198 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 178\n", - "2023-05-15 11:07:25,199 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,199 | DEBUG | ssa.py:193 | on stmt: bool180 = global(bool: )\n", - "2023-05-15 11:07:25,199 | DEBUG | ssa.py:193 | on stmt: $180pred = call bool180(invert, func=bool180, args=(Var(invert, numbers.py:219),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,200 | DEBUG | ssa.py:353 | find_def var='invert' stmt=$180pred = call bool180(invert, func=bool180, args=(Var(invert, numbers.py:219),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,200 | DEBUG | ssa.py:384 | find_def_from_top label 178\n", - "2023-05-15 11:07:25,201 | DEBUG | ssa.py:421 | idom 130 from label 178\n", - "2023-05-15 11:07:25,201 | DEBUG | ssa.py:427 | find_def_from_bottom label 130\n", - "2023-05-15 11:07:25,205 | DEBUG | ssa.py:384 | find_def_from_top label 130\n", - "2023-05-15 11:07:25,205 | DEBUG | ssa.py:421 | idom 106 from label 130\n", - "2023-05-15 11:07:25,206 | DEBUG | ssa.py:427 | find_def_from_bottom label 106\n", - "2023-05-15 11:07:25,206 | DEBUG | ssa.py:384 | find_def_from_top label 106\n", - "2023-05-15 11:07:25,207 | DEBUG | ssa.py:401 | insert phi node invert.2 = phi(incoming_values=[], incoming_blocks=[]) at 106\n", - "2023-05-15 11:07:25,208 | DEBUG | ssa.py:427 | find_def_from_bottom label 96\n", - "2023-05-15 11:07:25,208 | DEBUG | ssa.py:384 | find_def_from_top label 96\n", - "2023-05-15 11:07:25,209 | DEBUG | ssa.py:421 | idom 76 from label 96\n", - "2023-05-15 11:07:25,210 | DEBUG | ssa.py:427 | find_def_from_bottom label 76\n", - "2023-05-15 11:07:25,211 | DEBUG | ssa.py:384 | find_def_from_top label 76\n", - "2023-05-15 11:07:25,211 | DEBUG | ssa.py:421 | idom 52 from label 76\n", - "2023-05-15 11:07:25,211 | DEBUG | ssa.py:427 | find_def_from_bottom label 52\n", - "2023-05-15 11:07:25,212 | DEBUG | ssa.py:384 | find_def_from_top label 52\n", - "2023-05-15 11:07:25,212 | DEBUG | ssa.py:421 | idom 48 from label 52\n", - "2023-05-15 11:07:25,213 | DEBUG | ssa.py:427 | find_def_from_bottom label 48\n", - "2023-05-15 11:07:25,213 | DEBUG | ssa.py:384 | find_def_from_top label 48\n", - "2023-05-15 11:07:25,214 | DEBUG | ssa.py:421 | idom 26 from label 48\n", - "2023-05-15 11:07:25,214 | DEBUG | ssa.py:427 | find_def_from_bottom label 26\n", - "2023-05-15 11:07:25,214 | DEBUG | ssa.py:409 | incoming_def invert = const(bool, True)\n", - "2023-05-15 11:07:25,215 | DEBUG | ssa.py:427 | find_def_from_bottom label 98\n", - "2023-05-15 11:07:25,215 | DEBUG | ssa.py:409 | incoming_def invert.1 = const(bool, False)\n", - "2023-05-15 11:07:25,216 | DEBUG | ssa.py:199 | replaced with: $180pred = call bool180(invert.2, func=bool180, args=(Var(invert.2, numbers.py:243),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,216 | DEBUG | ssa.py:193 | on stmt: branch $180pred, 182, 190\n", - "2023-05-15 11:07:25,217 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:25,217 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,218 | DEBUG | ssa.py:193 | on stmt: $const182.0 = const(float, 1.0)\n", - "2023-05-15 11:07:25,218 | DEBUG | ssa.py:193 | on stmt: $186binary_true_divide.2 = $const182.0 / r\n", - "2023-05-15 11:07:25,219 | DEBUG | ssa.py:193 | on stmt: $188return_value.3 = cast(value=$186binary_true_divide.2)\n", - "2023-05-15 11:07:25,219 | DEBUG | ssa.py:193 | on stmt: return $188return_value.3\n", - "2023-05-15 11:07:25,219 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 190\n", - "2023-05-15 11:07:25,220 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,220 | DEBUG | ssa.py:193 | on stmt: $192return_value.1 = cast(value=r)\n", - "2023-05-15 11:07:25,223 | DEBUG | ssa.py:193 | on stmt: return $192return_value.1\n", - "2023-05-15 11:07:25,224 | DEBUG | ssa.py:63 | Fix SSA violator on var r\n", - "2023-05-15 11:07:25,225 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:25,225 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,226 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:25,226 | DEBUG | ssa.py:193 | on stmt: b = arg(1, name=b)\n", - "2023-05-15 11:07:25,227 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(tp: int64)\n", - "2023-05-15 11:07:25,227 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(int, 1)\n", - "2023-05-15 11:07:25,227 | DEBUG | ssa.py:193 | on stmt: r = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,228 | DEBUG | ssa.py:269 | first assign: r\n", - "2023-05-15 11:07:25,228 | DEBUG | ssa.py:199 | replaced with: r = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,229 | DEBUG | ssa.py:193 | on stmt: $10load_deref.3 = freevar(tp: int64)\n", - "2023-05-15 11:07:25,229 | DEBUG | ssa.py:193 | on stmt: a.1 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,230 | DEBUG | ssa.py:193 | on stmt: $const20.7 = const(int, 0)\n", - "2023-05-15 11:07:25,230 | DEBUG | ssa.py:193 | on stmt: $22compare_op.8 = b < $const20.7\n", - "2023-05-15 11:07:25,231 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:25,231 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22compare_op.8, func=bool24, args=(Var($22compare_op.8, numbers.py:218),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,232 | DEBUG | ssa.py:193 | on stmt: branch $24pred, 26, 98\n", - "2023-05-15 11:07:25,232 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:25,233 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,233 | DEBUG | ssa.py:193 | on stmt: invert = const(bool, True)\n", - "2023-05-15 11:07:25,233 | DEBUG | ssa.py:193 | on stmt: exp = unary(fn=, value=b)\n", - "2023-05-15 11:07:25,234 | DEBUG | ssa.py:193 | on stmt: $const38.4 = const(int, 0)\n", - "2023-05-15 11:07:25,234 | DEBUG | ssa.py:193 | on stmt: $40compare_op.5 = exp < $const38.4\n", - "2023-05-15 11:07:25,235 | DEBUG | ssa.py:193 | on stmt: bool42 = global(bool: )\n", - "2023-05-15 11:07:25,235 | DEBUG | ssa.py:193 | on stmt: $42pred = call bool42($40compare_op.5, func=bool42, args=(Var($40compare_op.5, numbers.py:221),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,236 | DEBUG | ssa.py:193 | on stmt: branch $42pred, 44, 48\n", - "2023-05-15 11:07:25,236 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 44\n", - "2023-05-15 11:07:25,237 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,237 | DEBUG | ssa.py:193 | on stmt: $44load_global.0 = global(OverflowError: )\n", - "2023-05-15 11:07:25,237 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:25,238 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:25,238 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,239 | DEBUG | ssa.py:193 | on stmt: $48load_deref.0 = freevar(is_integer: True)\n", - "2023-05-15 11:07:25,239 | DEBUG | ssa.py:193 | on stmt: bool50 = global(bool: )\n", - "2023-05-15 11:07:25,240 | DEBUG | ssa.py:193 | on stmt: $50pred = call bool50($48load_deref.0, func=bool50, args=(Var($48load_deref.0, numbers.py:223),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,240 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:25,241 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 52\n", - "2023-05-15 11:07:25,241 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,242 | DEBUG | ssa.py:193 | on stmt: $const54.1 = const(int, 0)\n", - "2023-05-15 11:07:25,242 | DEBUG | ssa.py:193 | on stmt: $56compare_op.2 = a.1 == $const54.1\n", - "2023-05-15 11:07:25,242 | DEBUG | ssa.py:193 | on stmt: bool58 = global(bool: )\n", - "2023-05-15 11:07:25,243 | DEBUG | ssa.py:193 | on stmt: $58pred = call bool58($56compare_op.2, func=bool58, args=(Var($56compare_op.2, numbers.py:224),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,243 | DEBUG | ssa.py:193 | on stmt: branch $58pred, 60, 76\n", - "2023-05-15 11:07:25,244 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:25,244 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,245 | DEBUG | ssa.py:193 | on stmt: $60load_deref.0 = freevar(zerodiv_return: False)\n", - "2023-05-15 11:07:25,245 | DEBUG | ssa.py:193 | on stmt: bool62 = global(bool: )\n", - "2023-05-15 11:07:25,246 | DEBUG | ssa.py:193 | on stmt: $62pred = call bool62($60load_deref.0, func=bool62, args=(Var($60load_deref.0, numbers.py:225),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,255 | DEBUG | ssa.py:193 | on stmt: jump 68\n", - "2023-05-15 11:07:25,255 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:25,256 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,256 | DEBUG | ssa.py:193 | on stmt: $68load_global.0 = global(ZeroDivisionError: )\n", - "2023-05-15 11:07:25,258 | DEBUG | ssa.py:193 | on stmt: $const70.1 = const(str, 0 cannot be raised to a negative power)\n", - "2023-05-15 11:07:25,258 | DEBUG | ssa.py:193 | on stmt: $72call_function.2 = call $68load_global.0($const70.1, func=$68load_global.0, args=[Var($const70.1, numbers.py:228)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,259 | DEBUG | ssa.py:193 | on stmt: raise ('0 cannot be raised to a negative power')\n", - "2023-05-15 11:07:25,259 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 76\n", - "2023-05-15 11:07:25,261 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,261 | DEBUG | ssa.py:193 | on stmt: $const78.1 = const(int, 1)\n", - "2023-05-15 11:07:25,262 | DEBUG | ssa.py:193 | on stmt: $80compare_op.2 = a.1 != $const78.1\n", - "2023-05-15 11:07:25,262 | DEBUG | ssa.py:193 | on stmt: bool82 = global(bool: )\n", - "2023-05-15 11:07:25,264 | DEBUG | ssa.py:193 | on stmt: $82pred = call bool82($80compare_op.2, func=bool82, args=(Var($80compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,264 | DEBUG | ssa.py:193 | on stmt: branch $82pred, 84, 96\n", - "2023-05-15 11:07:25,265 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 84\n", - "2023-05-15 11:07:25,265 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,266 | DEBUG | ssa.py:193 | on stmt: $const86.1 = const(int, -1)\n", - "2023-05-15 11:07:25,267 | DEBUG | ssa.py:193 | on stmt: $88compare_op.2 = a.1 != $const86.1\n", - "2023-05-15 11:07:25,267 | DEBUG | ssa.py:193 | on stmt: bool90 = global(bool: )\n", - "2023-05-15 11:07:25,268 | DEBUG | ssa.py:193 | on stmt: $90pred = call bool90($88compare_op.2, func=bool90, args=(Var($88compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,268 | DEBUG | ssa.py:193 | on stmt: branch $90pred, 92, 96\n", - "2023-05-15 11:07:25,269 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 92\n", - "2023-05-15 11:07:25,269 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,270 | DEBUG | ssa.py:193 | on stmt: $const92.0 = const(int, 0)\n", - "2023-05-15 11:07:25,270 | DEBUG | ssa.py:193 | on stmt: $94return_value.1 = cast(value=$const92.0)\n", - "2023-05-15 11:07:25,270 | DEBUG | ssa.py:193 | on stmt: return $94return_value.1\n", - "2023-05-15 11:07:25,271 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:25,271 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,272 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:25,273 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:25,274 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,274 | DEBUG | ssa.py:193 | on stmt: invert.1 = const(bool, False)\n", - "2023-05-15 11:07:25,274 | DEBUG | ssa.py:193 | on stmt: exp.1 = b\n", - "2023-05-15 11:07:25,275 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:25,275 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:25,275 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,276 | DEBUG | ssa.py:193 | on stmt: invert.2 = phi(incoming_values=[Var(invert, numbers.py:219), Var(invert.1, numbers.py:232)], incoming_blocks=[96, 98])\n", - "2023-05-15 11:07:25,277 | DEBUG | ssa.py:193 | on stmt: exp.3 = phi(incoming_values=[Var(exp, numbers.py:220), Var(exp.1, numbers.py:233)], incoming_blocks=[96, 98])\n", - "2023-05-15 11:07:25,277 | DEBUG | ssa.py:193 | on stmt: $const108.1 = const(int, 65536)\n", - "2023-05-15 11:07:25,278 | DEBUG | ssa.py:193 | on stmt: $110compare_op.2 = exp.3 > $const108.1\n", - "2023-05-15 11:07:25,278 | DEBUG | ssa.py:193 | on stmt: bool112 = global(bool: )\n", - "2023-05-15 11:07:25,279 | DEBUG | ssa.py:193 | on stmt: $112pred = call bool112($110compare_op.2, func=bool112, args=(Var($110compare_op.2, numbers.py:234),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,279 | DEBUG | ssa.py:193 | on stmt: branch $112pred, 114, 130\n", - "2023-05-15 11:07:25,280 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 114\n", - "2023-05-15 11:07:25,280 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,280 | DEBUG | ssa.py:193 | on stmt: $114load_global.0 = global(math: )\n", - "2023-05-15 11:07:25,281 | DEBUG | ssa.py:193 | on stmt: $116load_method.1 = getattr(value=$114load_global.0, attr=pow)\n", - "2023-05-15 11:07:25,282 | DEBUG | ssa.py:193 | on stmt: $120load_global.3 = global(float: )\n", - "2023-05-15 11:07:25,282 | DEBUG | ssa.py:193 | on stmt: $124call_function.5 = call $120load_global.3(b, func=$120load_global.3, args=[Var(b, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,283 | DEBUG | ssa.py:193 | on stmt: $126call_method.6 = call $116load_method.1(a.1, $124call_function.5, func=$116load_method.1, args=[Var(a.1, numbers.py:217), Var($124call_function.5, numbers.py:236)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,283 | DEBUG | ssa.py:193 | on stmt: $128return_value.7 = cast(value=$126call_method.6)\n", - "2023-05-15 11:07:25,283 | DEBUG | ssa.py:193 | on stmt: return $128return_value.7\n", - "2023-05-15 11:07:25,284 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 130\n", - "2023-05-15 11:07:25,284 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,285 | DEBUG | ssa.py:193 | on stmt: $const132.1 = const(int, 0)\n", - "2023-05-15 11:07:25,285 | DEBUG | ssa.py:193 | on stmt: $134compare_op.2 = exp.3 != $const132.1\n", - "2023-05-15 11:07:25,285 | DEBUG | ssa.py:193 | on stmt: bool136 = global(bool: )\n", - "2023-05-15 11:07:25,286 | DEBUG | ssa.py:193 | on stmt: $136pred = call bool136($134compare_op.2, func=bool136, args=(Var($134compare_op.2, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,286 | DEBUG | ssa.py:193 | on stmt: branch $136pred, 138, 178\n", - "2023-05-15 11:07:25,287 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 138\n", - "2023-05-15 11:07:25,287 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,288 | DEBUG | ssa.py:193 | on stmt: exp.4 = phi(incoming_values=[Var(exp.3, numbers.py:234), Var(exp.2, numbers.py:240)], incoming_blocks=[130, 154])\n", - "2023-05-15 11:07:25,288 | DEBUG | ssa.py:193 | on stmt: $const140.1 = const(int, 1)\n", - "2023-05-15 11:07:25,289 | DEBUG | ssa.py:193 | on stmt: $142binary_and.2 = exp.4 & $const140.1\n", - "2023-05-15 11:07:25,289 | DEBUG | ssa.py:193 | on stmt: bool144 = global(bool: )\n", - "2023-05-15 11:07:25,290 | DEBUG | ssa.py:193 | on stmt: $144pred = call bool144($142binary_and.2, func=bool144, args=(Var($142binary_and.2, numbers.py:238),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,290 | DEBUG | ssa.py:193 | on stmt: branch $144pred, 146, 154\n", - "2023-05-15 11:07:25,291 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:25,291 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,292 | DEBUG | ssa.py:193 | on stmt: $150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,292 | DEBUG | ssa.py:193 | on stmt: r = $150inplace_multiply.2\n", - "2023-05-15 11:07:25,293 | DEBUG | ssa.py:199 | replaced with: r.1 = $150inplace_multiply.2\n", - "2023-05-15 11:07:25,293 | DEBUG | ssa.py:193 | on stmt: jump 154\n", - "2023-05-15 11:07:25,293 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:25,294 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,295 | DEBUG | ssa.py:193 | on stmt: $const156.1 = const(int, 1)\n", - "2023-05-15 11:07:25,295 | DEBUG | ssa.py:193 | on stmt: $158inplace_rshift.2 = inplace_binop(fn=, immutable_fn=, lhs=exp.4, rhs=$const156.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,296 | DEBUG | ssa.py:193 | on stmt: exp.2 = $158inplace_rshift.2\n", - "2023-05-15 11:07:25,296 | DEBUG | ssa.py:193 | on stmt: $166inplace_multiply.5 = inplace_binop(fn=, immutable_fn=, lhs=a.1, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,297 | DEBUG | ssa.py:193 | on stmt: a.1 = $166inplace_multiply.5\n", - "2023-05-15 11:07:25,297 | DEBUG | ssa.py:193 | on stmt: $const172.7 = const(int, 0)\n", - "2023-05-15 11:07:25,298 | DEBUG | ssa.py:193 | on stmt: $174compare_op.8 = exp.2 != $const172.7\n", - "2023-05-15 11:07:25,298 | DEBUG | ssa.py:193 | on stmt: bool176 = global(bool: )\n", - "2023-05-15 11:07:25,298 | DEBUG | ssa.py:193 | on stmt: $176pred = call bool176($174compare_op.8, func=bool176, args=(Var($174compare_op.8, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,299 | DEBUG | ssa.py:193 | on stmt: branch $176pred, 138, 178\n", - "2023-05-15 11:07:25,300 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 178\n", - "2023-05-15 11:07:25,300 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,301 | DEBUG | ssa.py:193 | on stmt: bool180 = global(bool: )\n", - "2023-05-15 11:07:25,301 | DEBUG | ssa.py:193 | on stmt: $180pred = call bool180(invert.2, func=bool180, args=(Var(invert.2, numbers.py:243),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,302 | DEBUG | ssa.py:193 | on stmt: branch $180pred, 182, 190\n", - "2023-05-15 11:07:25,303 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:25,303 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,304 | DEBUG | ssa.py:193 | on stmt: $const182.0 = const(float, 1.0)\n", - "2023-05-15 11:07:25,304 | DEBUG | ssa.py:193 | on stmt: $186binary_true_divide.2 = $const182.0 / r\n", - "2023-05-15 11:07:25,305 | DEBUG | ssa.py:193 | on stmt: $188return_value.3 = cast(value=$186binary_true_divide.2)\n", - "2023-05-15 11:07:25,305 | DEBUG | ssa.py:193 | on stmt: return $188return_value.3\n", - "2023-05-15 11:07:25,306 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 190\n", - "2023-05-15 11:07:25,306 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,307 | DEBUG | ssa.py:193 | on stmt: $192return_value.1 = cast(value=r)\n", - "2023-05-15 11:07:25,307 | DEBUG | ssa.py:193 | on stmt: return $192return_value.1\n", - "2023-05-15 11:07:25,308 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {0: [],\n", - " 146: []})\n", - "2023-05-15 11:07:25,312 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:25,313 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,314 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:25,315 | DEBUG | ssa.py:193 | on stmt: b = arg(1, name=b)\n", - "2023-05-15 11:07:25,315 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(tp: int64)\n", - "2023-05-15 11:07:25,316 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(int, 1)\n", - "2023-05-15 11:07:25,317 | DEBUG | ssa.py:193 | on stmt: r = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,317 | DEBUG | ssa.py:193 | on stmt: $10load_deref.3 = freevar(tp: int64)\n", - "2023-05-15 11:07:25,318 | DEBUG | ssa.py:193 | on stmt: a.1 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,318 | DEBUG | ssa.py:193 | on stmt: $const20.7 = const(int, 0)\n", - "2023-05-15 11:07:25,319 | DEBUG | ssa.py:193 | on stmt: $22compare_op.8 = b < $const20.7\n", - "2023-05-15 11:07:25,319 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:25,320 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22compare_op.8, func=bool24, args=(Var($22compare_op.8, numbers.py:218),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,320 | DEBUG | ssa.py:193 | on stmt: branch $24pred, 26, 98\n", - "2023-05-15 11:07:25,321 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:25,321 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,322 | DEBUG | ssa.py:193 | on stmt: invert = const(bool, True)\n", - "2023-05-15 11:07:25,322 | DEBUG | ssa.py:193 | on stmt: exp = unary(fn=, value=b)\n", - "2023-05-15 11:07:25,323 | DEBUG | ssa.py:193 | on stmt: $const38.4 = const(int, 0)\n", - "2023-05-15 11:07:25,323 | DEBUG | ssa.py:193 | on stmt: $40compare_op.5 = exp < $const38.4\n", - "2023-05-15 11:07:25,324 | DEBUG | ssa.py:193 | on stmt: bool42 = global(bool: )\n", - "2023-05-15 11:07:25,324 | DEBUG | ssa.py:193 | on stmt: $42pred = call bool42($40compare_op.5, func=bool42, args=(Var($40compare_op.5, numbers.py:221),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,325 | DEBUG | ssa.py:193 | on stmt: branch $42pred, 44, 48\n", - "2023-05-15 11:07:25,325 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 44\n", - "2023-05-15 11:07:25,326 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,326 | DEBUG | ssa.py:193 | on stmt: $44load_global.0 = global(OverflowError: )\n", - "2023-05-15 11:07:25,327 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:25,328 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:25,328 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,329 | DEBUG | ssa.py:193 | on stmt: $48load_deref.0 = freevar(is_integer: True)\n", - "2023-05-15 11:07:25,329 | DEBUG | ssa.py:193 | on stmt: bool50 = global(bool: )\n", - "2023-05-15 11:07:25,330 | DEBUG | ssa.py:193 | on stmt: $50pred = call bool50($48load_deref.0, func=bool50, args=(Var($48load_deref.0, numbers.py:223),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,331 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:25,332 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 52\n", - "2023-05-15 11:07:25,332 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,333 | DEBUG | ssa.py:193 | on stmt: $const54.1 = const(int, 0)\n", - "2023-05-15 11:07:25,333 | DEBUG | ssa.py:193 | on stmt: $56compare_op.2 = a.1 == $const54.1\n", - "2023-05-15 11:07:25,334 | DEBUG | ssa.py:193 | on stmt: bool58 = global(bool: )\n", - "2023-05-15 11:07:25,334 | DEBUG | ssa.py:193 | on stmt: $58pred = call bool58($56compare_op.2, func=bool58, args=(Var($56compare_op.2, numbers.py:224),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,335 | DEBUG | ssa.py:193 | on stmt: branch $58pred, 60, 76\n", - "2023-05-15 11:07:25,335 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:25,336 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,336 | DEBUG | ssa.py:193 | on stmt: $60load_deref.0 = freevar(zerodiv_return: False)\n", - "2023-05-15 11:07:25,337 | DEBUG | ssa.py:193 | on stmt: bool62 = global(bool: )\n", - "2023-05-15 11:07:25,337 | DEBUG | ssa.py:193 | on stmt: $62pred = call bool62($60load_deref.0, func=bool62, args=(Var($60load_deref.0, numbers.py:225),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,338 | DEBUG | ssa.py:193 | on stmt: jump 68\n", - "2023-05-15 11:07:25,339 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:25,339 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,340 | DEBUG | ssa.py:193 | on stmt: $68load_global.0 = global(ZeroDivisionError: )\n", - "2023-05-15 11:07:25,341 | DEBUG | ssa.py:193 | on stmt: $const70.1 = const(str, 0 cannot be raised to a negative power)\n", - "2023-05-15 11:07:25,341 | DEBUG | ssa.py:193 | on stmt: $72call_function.2 = call $68load_global.0($const70.1, func=$68load_global.0, args=[Var($const70.1, numbers.py:228)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,342 | DEBUG | ssa.py:193 | on stmt: raise ('0 cannot be raised to a negative power')\n", - "2023-05-15 11:07:25,342 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 76\n", - "2023-05-15 11:07:25,343 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,343 | DEBUG | ssa.py:193 | on stmt: $const78.1 = const(int, 1)\n", - "2023-05-15 11:07:25,344 | DEBUG | ssa.py:193 | on stmt: $80compare_op.2 = a.1 != $const78.1\n", - "2023-05-15 11:07:25,344 | DEBUG | ssa.py:193 | on stmt: bool82 = global(bool: )\n", - "2023-05-15 11:07:25,345 | DEBUG | ssa.py:193 | on stmt: $82pred = call bool82($80compare_op.2, func=bool82, args=(Var($80compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,346 | DEBUG | ssa.py:193 | on stmt: branch $82pred, 84, 96\n", - "2023-05-15 11:07:25,346 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 84\n", - "2023-05-15 11:07:25,347 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,347 | DEBUG | ssa.py:193 | on stmt: $const86.1 = const(int, -1)\n", - "2023-05-15 11:07:25,347 | DEBUG | ssa.py:193 | on stmt: $88compare_op.2 = a.1 != $const86.1\n", - "2023-05-15 11:07:25,348 | DEBUG | ssa.py:193 | on stmt: bool90 = global(bool: )\n", - "2023-05-15 11:07:25,349 | DEBUG | ssa.py:193 | on stmt: $90pred = call bool90($88compare_op.2, func=bool90, args=(Var($88compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,349 | DEBUG | ssa.py:193 | on stmt: branch $90pred, 92, 96\n", - "2023-05-15 11:07:25,350 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 92\n", - "2023-05-15 11:07:25,350 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,351 | DEBUG | ssa.py:193 | on stmt: $const92.0 = const(int, 0)\n", - "2023-05-15 11:07:25,354 | DEBUG | ssa.py:193 | on stmt: $94return_value.1 = cast(value=$const92.0)\n", - "2023-05-15 11:07:25,357 | DEBUG | ssa.py:193 | on stmt: return $94return_value.1\n", - "2023-05-15 11:07:25,362 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:25,363 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,363 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:25,364 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:25,365 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,365 | DEBUG | ssa.py:193 | on stmt: invert.1 = const(bool, False)\n", - "2023-05-15 11:07:25,366 | DEBUG | ssa.py:193 | on stmt: exp.1 = b\n", - "2023-05-15 11:07:25,366 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:25,366 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:25,367 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,368 | DEBUG | ssa.py:193 | on stmt: invert.2 = phi(incoming_values=[Var(invert, numbers.py:219), Var(invert.1, numbers.py:232)], incoming_blocks=[96, 98])\n", - "2023-05-15 11:07:25,368 | DEBUG | ssa.py:193 | on stmt: exp.3 = phi(incoming_values=[Var(exp, numbers.py:220), Var(exp.1, numbers.py:233)], incoming_blocks=[96, 98])\n", - "2023-05-15 11:07:25,368 | DEBUG | ssa.py:193 | on stmt: $const108.1 = const(int, 65536)\n", - "2023-05-15 11:07:25,369 | DEBUG | ssa.py:193 | on stmt: $110compare_op.2 = exp.3 > $const108.1\n", - "2023-05-15 11:07:25,369 | DEBUG | ssa.py:193 | on stmt: bool112 = global(bool: )\n", - "2023-05-15 11:07:25,370 | DEBUG | ssa.py:193 | on stmt: $112pred = call bool112($110compare_op.2, func=bool112, args=(Var($110compare_op.2, numbers.py:234),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,371 | DEBUG | ssa.py:193 | on stmt: branch $112pred, 114, 130\n", - "2023-05-15 11:07:25,371 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 114\n", - "2023-05-15 11:07:25,371 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,372 | DEBUG | ssa.py:193 | on stmt: $114load_global.0 = global(math: )\n", - "2023-05-15 11:07:25,373 | DEBUG | ssa.py:193 | on stmt: $116load_method.1 = getattr(value=$114load_global.0, attr=pow)\n", - "2023-05-15 11:07:25,373 | DEBUG | ssa.py:193 | on stmt: $120load_global.3 = global(float: )\n", - "2023-05-15 11:07:25,374 | DEBUG | ssa.py:193 | on stmt: $124call_function.5 = call $120load_global.3(b, func=$120load_global.3, args=[Var(b, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,374 | DEBUG | ssa.py:193 | on stmt: $126call_method.6 = call $116load_method.1(a.1, $124call_function.5, func=$116load_method.1, args=[Var(a.1, numbers.py:217), Var($124call_function.5, numbers.py:236)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,375 | DEBUG | ssa.py:193 | on stmt: $128return_value.7 = cast(value=$126call_method.6)\n", - "2023-05-15 11:07:25,375 | DEBUG | ssa.py:193 | on stmt: return $128return_value.7\n", - "2023-05-15 11:07:25,376 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 130\n", - "2023-05-15 11:07:25,376 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,377 | DEBUG | ssa.py:193 | on stmt: $const132.1 = const(int, 0)\n", - "2023-05-15 11:07:25,377 | DEBUG | ssa.py:193 | on stmt: $134compare_op.2 = exp.3 != $const132.1\n", - "2023-05-15 11:07:25,378 | DEBUG | ssa.py:193 | on stmt: bool136 = global(bool: )\n", - "2023-05-15 11:07:25,378 | DEBUG | ssa.py:193 | on stmt: $136pred = call bool136($134compare_op.2, func=bool136, args=(Var($134compare_op.2, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,379 | DEBUG | ssa.py:193 | on stmt: branch $136pred, 138, 178\n", - "2023-05-15 11:07:25,379 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 138\n", - "2023-05-15 11:07:25,379 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,380 | DEBUG | ssa.py:193 | on stmt: exp.4 = phi(incoming_values=[Var(exp.3, numbers.py:234), Var(exp.2, numbers.py:240)], incoming_blocks=[130, 154])\n", - "2023-05-15 11:07:25,380 | DEBUG | ssa.py:193 | on stmt: $const140.1 = const(int, 1)\n", - "2023-05-15 11:07:25,381 | DEBUG | ssa.py:193 | on stmt: $142binary_and.2 = exp.4 & $const140.1\n", - "2023-05-15 11:07:25,382 | DEBUG | ssa.py:193 | on stmt: bool144 = global(bool: )\n", - "2023-05-15 11:07:25,382 | DEBUG | ssa.py:193 | on stmt: $144pred = call bool144($142binary_and.2, func=bool144, args=(Var($142binary_and.2, numbers.py:238),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,383 | DEBUG | ssa.py:193 | on stmt: branch $144pred, 146, 154\n", - "2023-05-15 11:07:25,383 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:25,384 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,384 | DEBUG | ssa.py:193 | on stmt: $150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,385 | DEBUG | ssa.py:353 | find_def var='r' stmt=$150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,385 | DEBUG | ssa.py:384 | find_def_from_top label 146\n", - "2023-05-15 11:07:25,386 | DEBUG | ssa.py:421 | idom 138 from label 146\n", - "2023-05-15 11:07:25,386 | DEBUG | ssa.py:427 | find_def_from_bottom label 138\n", - "2023-05-15 11:07:25,388 | DEBUG | ssa.py:384 | find_def_from_top label 138\n", - "2023-05-15 11:07:25,388 | DEBUG | ssa.py:401 | insert phi node r.2 = phi(incoming_values=[], incoming_blocks=[]) at 138\n", - "2023-05-15 11:07:25,389 | DEBUG | ssa.py:427 | find_def_from_bottom label 130\n", - "2023-05-15 11:07:25,389 | DEBUG | ssa.py:384 | find_def_from_top label 130\n", - "2023-05-15 11:07:25,390 | DEBUG | ssa.py:421 | idom 106 from label 130\n", - "2023-05-15 11:07:25,390 | DEBUG | ssa.py:427 | find_def_from_bottom label 106\n", - "2023-05-15 11:07:25,391 | DEBUG | ssa.py:384 | find_def_from_top label 106\n", - "2023-05-15 11:07:25,391 | DEBUG | ssa.py:421 | idom 0 from label 106\n", - "2023-05-15 11:07:25,392 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:25,392 | DEBUG | ssa.py:409 | incoming_def r = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,393 | DEBUG | ssa.py:427 | find_def_from_bottom label 154\n", - "2023-05-15 11:07:25,394 | DEBUG | ssa.py:384 | find_def_from_top label 154\n", - "2023-05-15 11:07:25,394 | DEBUG | ssa.py:401 | insert phi node r.3 = phi(incoming_values=[], incoming_blocks=[]) at 154\n", - "2023-05-15 11:07:25,395 | DEBUG | ssa.py:427 | find_def_from_bottom label 138\n", - "2023-05-15 11:07:25,396 | DEBUG | ssa.py:409 | incoming_def r.2 = phi(incoming_values=[Var(r, numbers.py:216)], incoming_blocks=[130])\n", - "2023-05-15 11:07:25,396 | DEBUG | ssa.py:427 | find_def_from_bottom label 146\n", - "2023-05-15 11:07:25,397 | DEBUG | ssa.py:409 | incoming_def r.1 = $150inplace_multiply.2\n", - "2023-05-15 11:07:25,397 | DEBUG | ssa.py:409 | incoming_def r.3 = phi(incoming_values=[Var(r.2, numbers.py:239), Var(r.1, numbers.py:239)], incoming_blocks=[138, 146])\n", - "2023-05-15 11:07:25,398 | DEBUG | ssa.py:199 | replaced with: $150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r.2, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,398 | DEBUG | ssa.py:193 | on stmt: r.1 = $150inplace_multiply.2\n", - "2023-05-15 11:07:25,399 | DEBUG | ssa.py:193 | on stmt: jump 154\n", - "2023-05-15 11:07:25,399 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:25,400 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,401 | DEBUG | ssa.py:193 | on stmt: $const156.1 = const(int, 1)\n", - "2023-05-15 11:07:25,401 | DEBUG | ssa.py:193 | on stmt: $158inplace_rshift.2 = inplace_binop(fn=, immutable_fn=, lhs=exp.4, rhs=$const156.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,402 | DEBUG | ssa.py:193 | on stmt: exp.2 = $158inplace_rshift.2\n", - "2023-05-15 11:07:25,402 | DEBUG | ssa.py:193 | on stmt: $166inplace_multiply.5 = inplace_binop(fn=, immutable_fn=, lhs=a.1, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,403 | DEBUG | ssa.py:193 | on stmt: a.1 = $166inplace_multiply.5\n", - "2023-05-15 11:07:25,403 | DEBUG | ssa.py:193 | on stmt: $const172.7 = const(int, 0)\n", - "2023-05-15 11:07:25,404 | DEBUG | ssa.py:193 | on stmt: $174compare_op.8 = exp.2 != $const172.7\n", - "2023-05-15 11:07:25,404 | DEBUG | ssa.py:193 | on stmt: bool176 = global(bool: )\n", - "2023-05-15 11:07:25,405 | DEBUG | ssa.py:193 | on stmt: $176pred = call bool176($174compare_op.8, func=bool176, args=(Var($174compare_op.8, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,405 | DEBUG | ssa.py:193 | on stmt: branch $176pred, 138, 178\n", - "2023-05-15 11:07:25,406 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 178\n", - "2023-05-15 11:07:25,406 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,408 | DEBUG | ssa.py:193 | on stmt: bool180 = global(bool: )\n", - "2023-05-15 11:07:25,408 | DEBUG | ssa.py:193 | on stmt: $180pred = call bool180(invert.2, func=bool180, args=(Var(invert.2, numbers.py:243),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,409 | DEBUG | ssa.py:193 | on stmt: branch $180pred, 182, 190\n", - "2023-05-15 11:07:25,409 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:25,410 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,411 | DEBUG | ssa.py:193 | on stmt: $const182.0 = const(float, 1.0)\n", - "2023-05-15 11:07:25,411 | DEBUG | ssa.py:193 | on stmt: $186binary_true_divide.2 = $const182.0 / r\n", - "2023-05-15 11:07:25,412 | DEBUG | ssa.py:353 | find_def var='r' stmt=$186binary_true_divide.2 = $const182.0 / r\n", - "2023-05-15 11:07:25,412 | DEBUG | ssa.py:384 | find_def_from_top label 182\n", - "2023-05-15 11:07:25,413 | DEBUG | ssa.py:421 | idom 178 from label 182\n", - "2023-05-15 11:07:25,413 | DEBUG | ssa.py:427 | find_def_from_bottom label 178\n", - "2023-05-15 11:07:25,414 | DEBUG | ssa.py:384 | find_def_from_top label 178\n", - "2023-05-15 11:07:25,414 | DEBUG | ssa.py:401 | insert phi node r.4 = phi(incoming_values=[], incoming_blocks=[]) at 178\n", - "2023-05-15 11:07:25,415 | DEBUG | ssa.py:427 | find_def_from_bottom label 130\n", - "2023-05-15 11:07:25,415 | DEBUG | ssa.py:384 | find_def_from_top label 130\n", - "2023-05-15 11:07:25,415 | DEBUG | ssa.py:421 | idom 106 from label 130\n", - "2023-05-15 11:07:25,416 | DEBUG | ssa.py:427 | find_def_from_bottom label 106\n", - "2023-05-15 11:07:25,416 | DEBUG | ssa.py:384 | find_def_from_top label 106\n", - "2023-05-15 11:07:25,417 | DEBUG | ssa.py:421 | idom 0 from label 106\n", - "2023-05-15 11:07:25,417 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:25,418 | DEBUG | ssa.py:409 | incoming_def r = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,418 | DEBUG | ssa.py:427 | find_def_from_bottom label 154\n", - "2023-05-15 11:07:25,421 | DEBUG | ssa.py:409 | incoming_def r.3 = phi(incoming_values=[Var(r.2, numbers.py:239), Var(r.1, numbers.py:239)], incoming_blocks=[138, 146])\n", - "2023-05-15 11:07:25,422 | DEBUG | ssa.py:199 | replaced with: $186binary_true_divide.2 = $const182.0 / r.4\n", - "2023-05-15 11:07:25,422 | DEBUG | ssa.py:193 | on stmt: $188return_value.3 = cast(value=$186binary_true_divide.2)\n", - "2023-05-15 11:07:25,423 | DEBUG | ssa.py:193 | on stmt: return $188return_value.3\n", - "2023-05-15 11:07:25,423 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 190\n", - "2023-05-15 11:07:25,424 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,424 | DEBUG | ssa.py:193 | on stmt: $192return_value.1 = cast(value=r)\n", - "2023-05-15 11:07:25,425 | DEBUG | ssa.py:353 | find_def var='r' stmt=$192return_value.1 = cast(value=r)\n", - "2023-05-15 11:07:25,425 | DEBUG | ssa.py:384 | find_def_from_top label 190\n", - "2023-05-15 11:07:25,426 | DEBUG | ssa.py:421 | idom 178 from label 190\n", - "2023-05-15 11:07:25,426 | DEBUG | ssa.py:427 | find_def_from_bottom label 178\n", - "2023-05-15 11:07:25,427 | DEBUG | ssa.py:199 | replaced with: $192return_value.1 = cast(value=r.4)\n", - "2023-05-15 11:07:25,427 | DEBUG | ssa.py:193 | on stmt: return $192return_value.1\n", - "2023-05-15 11:07:25,428 | DEBUG | ssa.py:63 | Fix SSA violator on var a.1\n", - "2023-05-15 11:07:25,428 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:25,429 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,429 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:25,430 | DEBUG | ssa.py:193 | on stmt: b = arg(1, name=b)\n", - "2023-05-15 11:07:25,430 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(tp: int64)\n", - "2023-05-15 11:07:25,431 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(int, 1)\n", - "2023-05-15 11:07:25,431 | DEBUG | ssa.py:193 | on stmt: r = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,432 | DEBUG | ssa.py:193 | on stmt: $10load_deref.3 = freevar(tp: int64)\n", - "2023-05-15 11:07:25,432 | DEBUG | ssa.py:193 | on stmt: a.1 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,433 | DEBUG | ssa.py:269 | first assign: a.1\n", - "2023-05-15 11:07:25,433 | DEBUG | ssa.py:199 | replaced with: a.1 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,434 | DEBUG | ssa.py:193 | on stmt: $const20.7 = const(int, 0)\n", - "2023-05-15 11:07:25,434 | DEBUG | ssa.py:193 | on stmt: $22compare_op.8 = b < $const20.7\n", - "2023-05-15 11:07:25,435 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:25,435 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22compare_op.8, func=bool24, args=(Var($22compare_op.8, numbers.py:218),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,436 | DEBUG | ssa.py:193 | on stmt: branch $24pred, 26, 98\n", - "2023-05-15 11:07:25,436 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:25,437 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,437 | DEBUG | ssa.py:193 | on stmt: invert = const(bool, True)\n", - "2023-05-15 11:07:25,439 | DEBUG | ssa.py:193 | on stmt: exp = unary(fn=, value=b)\n", - "2023-05-15 11:07:25,439 | DEBUG | ssa.py:193 | on stmt: $const38.4 = const(int, 0)\n", - "2023-05-15 11:07:25,440 | DEBUG | ssa.py:193 | on stmt: $40compare_op.5 = exp < $const38.4\n", - "2023-05-15 11:07:25,440 | DEBUG | ssa.py:193 | on stmt: bool42 = global(bool: )\n", - "2023-05-15 11:07:25,441 | DEBUG | ssa.py:193 | on stmt: $42pred = call bool42($40compare_op.5, func=bool42, args=(Var($40compare_op.5, numbers.py:221),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,442 | DEBUG | ssa.py:193 | on stmt: branch $42pred, 44, 48\n", - "2023-05-15 11:07:25,443 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 44\n", - "2023-05-15 11:07:25,443 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,444 | DEBUG | ssa.py:193 | on stmt: $44load_global.0 = global(OverflowError: )\n", - "2023-05-15 11:07:25,444 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:25,445 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:25,445 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,446 | DEBUG | ssa.py:193 | on stmt: $48load_deref.0 = freevar(is_integer: True)\n", - "2023-05-15 11:07:25,446 | DEBUG | ssa.py:193 | on stmt: bool50 = global(bool: )\n", - "2023-05-15 11:07:25,447 | DEBUG | ssa.py:193 | on stmt: $50pred = call bool50($48load_deref.0, func=bool50, args=(Var($48load_deref.0, numbers.py:223),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,447 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:25,448 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 52\n", - "2023-05-15 11:07:25,448 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,449 | DEBUG | ssa.py:193 | on stmt: $const54.1 = const(int, 0)\n", - "2023-05-15 11:07:25,449 | DEBUG | ssa.py:193 | on stmt: $56compare_op.2 = a.1 == $const54.1\n", - "2023-05-15 11:07:25,450 | DEBUG | ssa.py:193 | on stmt: bool58 = global(bool: )\n", - "2023-05-15 11:07:25,450 | DEBUG | ssa.py:193 | on stmt: $58pred = call bool58($56compare_op.2, func=bool58, args=(Var($56compare_op.2, numbers.py:224),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,451 | DEBUG | ssa.py:193 | on stmt: branch $58pred, 60, 76\n", - "2023-05-15 11:07:25,452 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:25,452 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,453 | DEBUG | ssa.py:193 | on stmt: $60load_deref.0 = freevar(zerodiv_return: False)\n", - "2023-05-15 11:07:25,453 | DEBUG | ssa.py:193 | on stmt: bool62 = global(bool: )\n", - "2023-05-15 11:07:25,454 | DEBUG | ssa.py:193 | on stmt: $62pred = call bool62($60load_deref.0, func=bool62, args=(Var($60load_deref.0, numbers.py:225),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,454 | DEBUG | ssa.py:193 | on stmt: jump 68\n", - "2023-05-15 11:07:25,455 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:25,455 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,456 | DEBUG | ssa.py:193 | on stmt: $68load_global.0 = global(ZeroDivisionError: )\n", - "2023-05-15 11:07:25,456 | DEBUG | ssa.py:193 | on stmt: $const70.1 = const(str, 0 cannot be raised to a negative power)\n", - "2023-05-15 11:07:25,457 | DEBUG | ssa.py:193 | on stmt: $72call_function.2 = call $68load_global.0($const70.1, func=$68load_global.0, args=[Var($const70.1, numbers.py:228)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,457 | DEBUG | ssa.py:193 | on stmt: raise ('0 cannot be raised to a negative power')\n", - "2023-05-15 11:07:25,458 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 76\n", - "2023-05-15 11:07:25,458 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,459 | DEBUG | ssa.py:193 | on stmt: $const78.1 = const(int, 1)\n", - "2023-05-15 11:07:25,459 | DEBUG | ssa.py:193 | on stmt: $80compare_op.2 = a.1 != $const78.1\n", - "2023-05-15 11:07:25,460 | DEBUG | ssa.py:193 | on stmt: bool82 = global(bool: )\n", - "2023-05-15 11:07:25,460 | DEBUG | ssa.py:193 | on stmt: $82pred = call bool82($80compare_op.2, func=bool82, args=(Var($80compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,461 | DEBUG | ssa.py:193 | on stmt: branch $82pred, 84, 96\n", - "2023-05-15 11:07:25,461 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 84\n", - "2023-05-15 11:07:25,462 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,465 | DEBUG | ssa.py:193 | on stmt: $const86.1 = const(int, -1)\n", - "2023-05-15 11:07:25,467 | DEBUG | ssa.py:193 | on stmt: $88compare_op.2 = a.1 != $const86.1\n", - "2023-05-15 11:07:25,467 | DEBUG | ssa.py:193 | on stmt: bool90 = global(bool: )\n", - "2023-05-15 11:07:25,468 | DEBUG | ssa.py:193 | on stmt: $90pred = call bool90($88compare_op.2, func=bool90, args=(Var($88compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,469 | DEBUG | ssa.py:193 | on stmt: branch $90pred, 92, 96\n", - "2023-05-15 11:07:25,469 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 92\n", - "2023-05-15 11:07:25,470 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,470 | DEBUG | ssa.py:193 | on stmt: $const92.0 = const(int, 0)\n", - "2023-05-15 11:07:25,471 | DEBUG | ssa.py:193 | on stmt: $94return_value.1 = cast(value=$const92.0)\n", - "2023-05-15 11:07:25,471 | DEBUG | ssa.py:193 | on stmt: return $94return_value.1\n", - "2023-05-15 11:07:25,472 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:25,473 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,474 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:25,475 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:25,475 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,476 | DEBUG | ssa.py:193 | on stmt: invert.1 = const(bool, False)\n", - "2023-05-15 11:07:25,476 | DEBUG | ssa.py:193 | on stmt: exp.1 = b\n", - "2023-05-15 11:07:25,477 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:25,477 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:25,478 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,478 | DEBUG | ssa.py:193 | on stmt: invert.2 = phi(incoming_values=[Var(invert, numbers.py:219), Var(invert.1, numbers.py:232)], incoming_blocks=[96, 98])\n", - "2023-05-15 11:07:25,480 | DEBUG | ssa.py:193 | on stmt: exp.3 = phi(incoming_values=[Var(exp, numbers.py:220), Var(exp.1, numbers.py:233)], incoming_blocks=[96, 98])\n", - "2023-05-15 11:07:25,482 | DEBUG | ssa.py:193 | on stmt: $const108.1 = const(int, 65536)\n", - "2023-05-15 11:07:25,482 | DEBUG | ssa.py:193 | on stmt: $110compare_op.2 = exp.3 > $const108.1\n", - "2023-05-15 11:07:25,483 | DEBUG | ssa.py:193 | on stmt: bool112 = global(bool: )\n", - "2023-05-15 11:07:25,483 | DEBUG | ssa.py:193 | on stmt: $112pred = call bool112($110compare_op.2, func=bool112, args=(Var($110compare_op.2, numbers.py:234),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,484 | DEBUG | ssa.py:193 | on stmt: branch $112pred, 114, 130\n", - "2023-05-15 11:07:25,485 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 114\n", - "2023-05-15 11:07:25,487 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,489 | DEBUG | ssa.py:193 | on stmt: $114load_global.0 = global(math: )\n", - "2023-05-15 11:07:25,492 | DEBUG | ssa.py:193 | on stmt: $116load_method.1 = getattr(value=$114load_global.0, attr=pow)\n", - "2023-05-15 11:07:25,496 | DEBUG | ssa.py:193 | on stmt: $120load_global.3 = global(float: )\n", - "2023-05-15 11:07:25,504 | DEBUG | ssa.py:193 | on stmt: $124call_function.5 = call $120load_global.3(b, func=$120load_global.3, args=[Var(b, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,505 | DEBUG | ssa.py:193 | on stmt: $126call_method.6 = call $116load_method.1(a.1, $124call_function.5, func=$116load_method.1, args=[Var(a.1, numbers.py:217), Var($124call_function.5, numbers.py:236)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,505 | DEBUG | ssa.py:193 | on stmt: $128return_value.7 = cast(value=$126call_method.6)\n", - "2023-05-15 11:07:25,506 | DEBUG | ssa.py:193 | on stmt: return $128return_value.7\n", - "2023-05-15 11:07:25,507 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 130\n", - "2023-05-15 11:07:25,507 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,508 | DEBUG | ssa.py:193 | on stmt: $const132.1 = const(int, 0)\n", - "2023-05-15 11:07:25,508 | DEBUG | ssa.py:193 | on stmt: $134compare_op.2 = exp.3 != $const132.1\n", - "2023-05-15 11:07:25,509 | DEBUG | ssa.py:193 | on stmt: bool136 = global(bool: )\n", - "2023-05-15 11:07:25,515 | DEBUG | ssa.py:193 | on stmt: $136pred = call bool136($134compare_op.2, func=bool136, args=(Var($134compare_op.2, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,521 | DEBUG | ssa.py:193 | on stmt: branch $136pred, 138, 178\n", - "2023-05-15 11:07:25,522 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 138\n", - "2023-05-15 11:07:25,522 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,523 | DEBUG | ssa.py:193 | on stmt: r.2 = phi(incoming_values=[Var(r, numbers.py:216), Var(r.3, numbers.py:239)], incoming_blocks=[130, 154])\n", - "2023-05-15 11:07:25,524 | DEBUG | ssa.py:193 | on stmt: exp.4 = phi(incoming_values=[Var(exp.3, numbers.py:234), Var(exp.2, numbers.py:240)], incoming_blocks=[130, 154])\n", - "2023-05-15 11:07:25,524 | DEBUG | ssa.py:193 | on stmt: $const140.1 = const(int, 1)\n", - "2023-05-15 11:07:25,525 | DEBUG | ssa.py:193 | on stmt: $142binary_and.2 = exp.4 & $const140.1\n", - "2023-05-15 11:07:25,526 | DEBUG | ssa.py:193 | on stmt: bool144 = global(bool: )\n", - "2023-05-15 11:07:25,526 | DEBUG | ssa.py:193 | on stmt: $144pred = call bool144($142binary_and.2, func=bool144, args=(Var($142binary_and.2, numbers.py:238),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,527 | DEBUG | ssa.py:193 | on stmt: branch $144pred, 146, 154\n", - "2023-05-15 11:07:25,527 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:25,528 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,528 | DEBUG | ssa.py:193 | on stmt: $150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r.2, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,529 | DEBUG | ssa.py:193 | on stmt: r.1 = $150inplace_multiply.2\n", - "2023-05-15 11:07:25,529 | DEBUG | ssa.py:193 | on stmt: jump 154\n", - "2023-05-15 11:07:25,530 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:25,530 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,531 | DEBUG | ssa.py:193 | on stmt: r.3 = phi(incoming_values=[Var(r.2, numbers.py:239), Var(r.1, numbers.py:239)], incoming_blocks=[138, 146])\n", - "2023-05-15 11:07:25,531 | DEBUG | ssa.py:193 | on stmt: $const156.1 = const(int, 1)\n", - "2023-05-15 11:07:25,532 | DEBUG | ssa.py:193 | on stmt: $158inplace_rshift.2 = inplace_binop(fn=, immutable_fn=, lhs=exp.4, rhs=$const156.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,532 | DEBUG | ssa.py:193 | on stmt: exp.2 = $158inplace_rshift.2\n", - "2023-05-15 11:07:25,533 | DEBUG | ssa.py:193 | on stmt: $166inplace_multiply.5 = inplace_binop(fn=, immutable_fn=, lhs=a.1, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,533 | DEBUG | ssa.py:193 | on stmt: a.1 = $166inplace_multiply.5\n", - "2023-05-15 11:07:25,533 | DEBUG | ssa.py:199 | replaced with: a.1.1 = $166inplace_multiply.5\n", - "2023-05-15 11:07:25,534 | DEBUG | ssa.py:193 | on stmt: $const172.7 = const(int, 0)\n", - "2023-05-15 11:07:25,534 | DEBUG | ssa.py:193 | on stmt: $174compare_op.8 = exp.2 != $const172.7\n", - "2023-05-15 11:07:25,534 | DEBUG | ssa.py:193 | on stmt: bool176 = global(bool: )\n", - "2023-05-15 11:07:25,535 | DEBUG | ssa.py:193 | on stmt: $176pred = call bool176($174compare_op.8, func=bool176, args=(Var($174compare_op.8, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,535 | DEBUG | ssa.py:193 | on stmt: branch $176pred, 138, 178\n", - "2023-05-15 11:07:25,537 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 178\n", - "2023-05-15 11:07:25,541 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,541 | DEBUG | ssa.py:193 | on stmt: r.4 = phi(incoming_values=[Var(r, numbers.py:216), Var(r.3, numbers.py:239)], incoming_blocks=[130, 154])\n", - "2023-05-15 11:07:25,542 | DEBUG | ssa.py:193 | on stmt: bool180 = global(bool: )\n", - "2023-05-15 11:07:25,543 | DEBUG | ssa.py:193 | on stmt: $180pred = call bool180(invert.2, func=bool180, args=(Var(invert.2, numbers.py:243),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,543 | DEBUG | ssa.py:193 | on stmt: branch $180pred, 182, 190\n", - "2023-05-15 11:07:25,544 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:25,544 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,545 | DEBUG | ssa.py:193 | on stmt: $const182.0 = const(float, 1.0)\n", - "2023-05-15 11:07:25,546 | DEBUG | ssa.py:193 | on stmt: $186binary_true_divide.2 = $const182.0 / r.4\n", - "2023-05-15 11:07:25,546 | DEBUG | ssa.py:193 | on stmt: $188return_value.3 = cast(value=$186binary_true_divide.2)\n", - "2023-05-15 11:07:25,547 | DEBUG | ssa.py:193 | on stmt: return $188return_value.3\n", - "2023-05-15 11:07:25,547 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 190\n", - "2023-05-15 11:07:25,548 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,548 | DEBUG | ssa.py:193 | on stmt: $192return_value.1 = cast(value=r.4)\n", - "2023-05-15 11:07:25,548 | DEBUG | ssa.py:193 | on stmt: return $192return_value.1\n", - "2023-05-15 11:07:25,549 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {0: [],\n", - " 154: []})\n", - "2023-05-15 11:07:25,549 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:25,550 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,550 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:25,551 | DEBUG | ssa.py:193 | on stmt: b = arg(1, name=b)\n", - "2023-05-15 11:07:25,551 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(tp: int64)\n", - "2023-05-15 11:07:25,552 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(int, 1)\n", - "2023-05-15 11:07:25,555 | DEBUG | ssa.py:193 | on stmt: r = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,556 | DEBUG | ssa.py:193 | on stmt: $10load_deref.3 = freevar(tp: int64)\n", - "2023-05-15 11:07:25,557 | DEBUG | ssa.py:193 | on stmt: a.1 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,557 | DEBUG | ssa.py:193 | on stmt: $const20.7 = const(int, 0)\n", - "2023-05-15 11:07:25,558 | DEBUG | ssa.py:193 | on stmt: $22compare_op.8 = b < $const20.7\n", - "2023-05-15 11:07:25,559 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:25,559 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22compare_op.8, func=bool24, args=(Var($22compare_op.8, numbers.py:218),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,560 | DEBUG | ssa.py:193 | on stmt: branch $24pred, 26, 98\n", - "2023-05-15 11:07:25,560 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:25,561 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,561 | DEBUG | ssa.py:193 | on stmt: invert = const(bool, True)\n", - "2023-05-15 11:07:25,562 | DEBUG | ssa.py:193 | on stmt: exp = unary(fn=, value=b)\n", - "2023-05-15 11:07:25,562 | DEBUG | ssa.py:193 | on stmt: $const38.4 = const(int, 0)\n", - "2023-05-15 11:07:25,563 | DEBUG | ssa.py:193 | on stmt: $40compare_op.5 = exp < $const38.4\n", - "2023-05-15 11:07:25,563 | DEBUG | ssa.py:193 | on stmt: bool42 = global(bool: )\n", - "2023-05-15 11:07:25,564 | DEBUG | ssa.py:193 | on stmt: $42pred = call bool42($40compare_op.5, func=bool42, args=(Var($40compare_op.5, numbers.py:221),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,564 | DEBUG | ssa.py:193 | on stmt: branch $42pred, 44, 48\n", - "2023-05-15 11:07:25,565 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 44\n", - "2023-05-15 11:07:25,565 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,566 | DEBUG | ssa.py:193 | on stmt: $44load_global.0 = global(OverflowError: )\n", - "2023-05-15 11:07:25,567 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:25,567 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:25,568 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,568 | DEBUG | ssa.py:193 | on stmt: $48load_deref.0 = freevar(is_integer: True)\n", - "2023-05-15 11:07:25,568 | DEBUG | ssa.py:193 | on stmt: bool50 = global(bool: )\n", - "2023-05-15 11:07:25,569 | DEBUG | ssa.py:193 | on stmt: $50pred = call bool50($48load_deref.0, func=bool50, args=(Var($48load_deref.0, numbers.py:223),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,569 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:25,570 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 52\n", - "2023-05-15 11:07:25,570 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,571 | DEBUG | ssa.py:193 | on stmt: $const54.1 = const(int, 0)\n", - "2023-05-15 11:07:25,571 | DEBUG | ssa.py:193 | on stmt: $56compare_op.2 = a.1 == $const54.1\n", - "2023-05-15 11:07:25,572 | DEBUG | ssa.py:353 | find_def var='a.1' stmt=$56compare_op.2 = a.1 == $const54.1\n", - "2023-05-15 11:07:25,572 | DEBUG | ssa.py:384 | find_def_from_top label 52\n", - "2023-05-15 11:07:25,573 | DEBUG | ssa.py:421 | idom 48 from label 52\n", - "2023-05-15 11:07:25,573 | DEBUG | ssa.py:427 | find_def_from_bottom label 48\n", - "2023-05-15 11:07:25,574 | DEBUG | ssa.py:384 | find_def_from_top label 48\n", - "2023-05-15 11:07:25,574 | DEBUG | ssa.py:421 | idom 26 from label 48\n", - "2023-05-15 11:07:25,577 | DEBUG | ssa.py:427 | find_def_from_bottom label 26\n", - "2023-05-15 11:07:25,578 | DEBUG | ssa.py:384 | find_def_from_top label 26\n", - "2023-05-15 11:07:25,579 | DEBUG | ssa.py:421 | idom 0 from label 26\n", - "2023-05-15 11:07:25,579 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:25,580 | DEBUG | ssa.py:193 | on stmt: bool58 = global(bool: )\n", - "2023-05-15 11:07:25,580 | DEBUG | ssa.py:193 | on stmt: $58pred = call bool58($56compare_op.2, func=bool58, args=(Var($56compare_op.2, numbers.py:224),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,581 | DEBUG | ssa.py:193 | on stmt: branch $58pred, 60, 76\n", - "2023-05-15 11:07:25,581 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:25,582 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,582 | DEBUG | ssa.py:193 | on stmt: $60load_deref.0 = freevar(zerodiv_return: False)\n", - "2023-05-15 11:07:25,583 | DEBUG | ssa.py:193 | on stmt: bool62 = global(bool: )\n", - "2023-05-15 11:07:25,583 | DEBUG | ssa.py:193 | on stmt: $62pred = call bool62($60load_deref.0, func=bool62, args=(Var($60load_deref.0, numbers.py:225),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,584 | DEBUG | ssa.py:193 | on stmt: jump 68\n", - "2023-05-15 11:07:25,585 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:25,589 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,589 | DEBUG | ssa.py:193 | on stmt: $68load_global.0 = global(ZeroDivisionError: )\n", - "2023-05-15 11:07:25,590 | DEBUG | ssa.py:193 | on stmt: $const70.1 = const(str, 0 cannot be raised to a negative power)\n", - "2023-05-15 11:07:25,590 | DEBUG | ssa.py:193 | on stmt: $72call_function.2 = call $68load_global.0($const70.1, func=$68load_global.0, args=[Var($const70.1, numbers.py:228)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,590 | DEBUG | ssa.py:193 | on stmt: raise ('0 cannot be raised to a negative power')\n", - "2023-05-15 11:07:25,591 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 76\n", - "2023-05-15 11:07:25,591 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,592 | DEBUG | ssa.py:193 | on stmt: $const78.1 = const(int, 1)\n", - "2023-05-15 11:07:25,593 | DEBUG | ssa.py:193 | on stmt: $80compare_op.2 = a.1 != $const78.1\n", - "2023-05-15 11:07:25,593 | DEBUG | ssa.py:353 | find_def var='a.1' stmt=$80compare_op.2 = a.1 != $const78.1\n", - "2023-05-15 11:07:25,594 | DEBUG | ssa.py:384 | find_def_from_top label 76\n", - "2023-05-15 11:07:25,594 | DEBUG | ssa.py:421 | idom 52 from label 76\n", - "2023-05-15 11:07:25,595 | DEBUG | ssa.py:427 | find_def_from_bottom label 52\n", - "2023-05-15 11:07:25,595 | DEBUG | ssa.py:384 | find_def_from_top label 52\n", - "2023-05-15 11:07:25,596 | DEBUG | ssa.py:421 | idom 48 from label 52\n", - "2023-05-15 11:07:25,596 | DEBUG | ssa.py:427 | find_def_from_bottom label 48\n", - "2023-05-15 11:07:25,598 | DEBUG | ssa.py:384 | find_def_from_top label 48\n", - "2023-05-15 11:07:25,599 | DEBUG | ssa.py:421 | idom 26 from label 48\n", - "2023-05-15 11:07:25,600 | DEBUG | ssa.py:427 | find_def_from_bottom label 26\n", - "2023-05-15 11:07:25,600 | DEBUG | ssa.py:384 | find_def_from_top label 26\n", - "2023-05-15 11:07:25,601 | DEBUG | ssa.py:421 | idom 0 from label 26\n", - "2023-05-15 11:07:25,604 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:25,604 | DEBUG | ssa.py:193 | on stmt: bool82 = global(bool: )\n", - "2023-05-15 11:07:25,605 | DEBUG | ssa.py:193 | on stmt: $82pred = call bool82($80compare_op.2, func=bool82, args=(Var($80compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,606 | DEBUG | ssa.py:193 | on stmt: branch $82pred, 84, 96\n", - "2023-05-15 11:07:25,606 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 84\n", - "2023-05-15 11:07:25,607 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,608 | DEBUG | ssa.py:193 | on stmt: $const86.1 = const(int, -1)\n", - "2023-05-15 11:07:25,608 | DEBUG | ssa.py:193 | on stmt: $88compare_op.2 = a.1 != $const86.1\n", - "2023-05-15 11:07:25,609 | DEBUG | ssa.py:353 | find_def var='a.1' stmt=$88compare_op.2 = a.1 != $const86.1\n", - "2023-05-15 11:07:25,609 | DEBUG | ssa.py:384 | find_def_from_top label 84\n", - "2023-05-15 11:07:25,610 | DEBUG | ssa.py:421 | idom 76 from label 84\n", - "2023-05-15 11:07:25,610 | DEBUG | ssa.py:427 | find_def_from_bottom label 76\n", - "2023-05-15 11:07:25,611 | DEBUG | ssa.py:384 | find_def_from_top label 76\n", - "2023-05-15 11:07:25,611 | DEBUG | ssa.py:421 | idom 52 from label 76\n", - "2023-05-15 11:07:25,612 | DEBUG | ssa.py:427 | find_def_from_bottom label 52\n", - "2023-05-15 11:07:25,613 | DEBUG | ssa.py:384 | find_def_from_top label 52\n", - "2023-05-15 11:07:25,613 | DEBUG | ssa.py:421 | idom 48 from label 52\n", - "2023-05-15 11:07:25,614 | DEBUG | ssa.py:427 | find_def_from_bottom label 48\n", - "2023-05-15 11:07:25,614 | DEBUG | ssa.py:384 | find_def_from_top label 48\n", - "2023-05-15 11:07:25,615 | DEBUG | ssa.py:421 | idom 26 from label 48\n", - "2023-05-15 11:07:25,619 | DEBUG | ssa.py:427 | find_def_from_bottom label 26\n", - "2023-05-15 11:07:25,620 | DEBUG | ssa.py:384 | find_def_from_top label 26\n", - "2023-05-15 11:07:25,621 | DEBUG | ssa.py:421 | idom 0 from label 26\n", - "2023-05-15 11:07:25,621 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:25,622 | DEBUG | ssa.py:193 | on stmt: bool90 = global(bool: )\n", - "2023-05-15 11:07:25,623 | DEBUG | ssa.py:193 | on stmt: $90pred = call bool90($88compare_op.2, func=bool90, args=(Var($88compare_op.2, numbers.py:229),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,624 | DEBUG | ssa.py:193 | on stmt: branch $90pred, 92, 96\n", - "2023-05-15 11:07:25,624 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 92\n", - "2023-05-15 11:07:25,625 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,625 | DEBUG | ssa.py:193 | on stmt: $const92.0 = const(int, 0)\n", - "2023-05-15 11:07:25,626 | DEBUG | ssa.py:193 | on stmt: $94return_value.1 = cast(value=$const92.0)\n", - "2023-05-15 11:07:25,626 | DEBUG | ssa.py:193 | on stmt: return $94return_value.1\n", - "2023-05-15 11:07:25,627 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:25,627 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,628 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:25,628 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:25,629 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,629 | DEBUG | ssa.py:193 | on stmt: invert.1 = const(bool, False)\n", - "2023-05-15 11:07:25,630 | DEBUG | ssa.py:193 | on stmt: exp.1 = b\n", - "2023-05-15 11:07:25,630 | DEBUG | ssa.py:193 | on stmt: jump 106\n", - "2023-05-15 11:07:25,631 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:25,631 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,631 | DEBUG | ssa.py:193 | on stmt: invert.2 = phi(incoming_values=[Var(invert, numbers.py:219), Var(invert.1, numbers.py:232)], incoming_blocks=[96, 98])\n", - "2023-05-15 11:07:25,632 | DEBUG | ssa.py:193 | on stmt: exp.3 = phi(incoming_values=[Var(exp, numbers.py:220), Var(exp.1, numbers.py:233)], incoming_blocks=[96, 98])\n", - "2023-05-15 11:07:25,633 | DEBUG | ssa.py:193 | on stmt: $const108.1 = const(int, 65536)\n", - "2023-05-15 11:07:25,633 | DEBUG | ssa.py:193 | on stmt: $110compare_op.2 = exp.3 > $const108.1\n", - "2023-05-15 11:07:25,633 | DEBUG | ssa.py:193 | on stmt: bool112 = global(bool: )\n", - "2023-05-15 11:07:25,634 | DEBUG | ssa.py:193 | on stmt: $112pred = call bool112($110compare_op.2, func=bool112, args=(Var($110compare_op.2, numbers.py:234),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,635 | DEBUG | ssa.py:193 | on stmt: branch $112pred, 114, 130\n", - "2023-05-15 11:07:25,635 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 114\n", - "2023-05-15 11:07:25,636 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,636 | DEBUG | ssa.py:193 | on stmt: $114load_global.0 = global(math: )\n", - "2023-05-15 11:07:25,637 | DEBUG | ssa.py:193 | on stmt: $116load_method.1 = getattr(value=$114load_global.0, attr=pow)\n", - "2023-05-15 11:07:25,637 | DEBUG | ssa.py:193 | on stmt: $120load_global.3 = global(float: )\n", - "2023-05-15 11:07:25,638 | DEBUG | ssa.py:193 | on stmt: $124call_function.5 = call $120load_global.3(b, func=$120load_global.3, args=[Var(b, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,638 | DEBUG | ssa.py:193 | on stmt: $126call_method.6 = call $116load_method.1(a.1, $124call_function.5, func=$116load_method.1, args=[Var(a.1, numbers.py:217), Var($124call_function.5, numbers.py:236)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,638 | DEBUG | ssa.py:353 | find_def var='a.1' stmt=$126call_method.6 = call $116load_method.1(a.1, $124call_function.5, func=$116load_method.1, args=[Var(a.1, numbers.py:217), Var($124call_function.5, numbers.py:236)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,639 | DEBUG | ssa.py:384 | find_def_from_top label 114\n", - "2023-05-15 11:07:25,639 | DEBUG | ssa.py:421 | idom 106 from label 114\n", - "2023-05-15 11:07:25,640 | DEBUG | ssa.py:427 | find_def_from_bottom label 106\n", - "2023-05-15 11:07:25,641 | DEBUG | ssa.py:384 | find_def_from_top label 106\n", - "2023-05-15 11:07:25,641 | DEBUG | ssa.py:421 | idom 0 from label 106\n", - "2023-05-15 11:07:25,642 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:25,642 | DEBUG | ssa.py:193 | on stmt: $128return_value.7 = cast(value=$126call_method.6)\n", - "2023-05-15 11:07:25,643 | DEBUG | ssa.py:193 | on stmt: return $128return_value.7\n", - "2023-05-15 11:07:25,644 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 130\n", - "2023-05-15 11:07:25,644 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,645 | DEBUG | ssa.py:193 | on stmt: $const132.1 = const(int, 0)\n", - "2023-05-15 11:07:25,645 | DEBUG | ssa.py:193 | on stmt: $134compare_op.2 = exp.3 != $const132.1\n", - "2023-05-15 11:07:25,645 | DEBUG | ssa.py:193 | on stmt: bool136 = global(bool: )\n", - "2023-05-15 11:07:25,646 | DEBUG | ssa.py:193 | on stmt: $136pred = call bool136($134compare_op.2, func=bool136, args=(Var($134compare_op.2, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,646 | DEBUG | ssa.py:193 | on stmt: branch $136pred, 138, 178\n", - "2023-05-15 11:07:25,647 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 138\n", - "2023-05-15 11:07:25,647 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,648 | DEBUG | ssa.py:193 | on stmt: r.2 = phi(incoming_values=[Var(r, numbers.py:216), Var(r.3, numbers.py:239)], incoming_blocks=[130, 154])\n", - "2023-05-15 11:07:25,648 | DEBUG | ssa.py:193 | on stmt: exp.4 = phi(incoming_values=[Var(exp.3, numbers.py:234), Var(exp.2, numbers.py:240)], incoming_blocks=[130, 154])\n", - "2023-05-15 11:07:25,649 | DEBUG | ssa.py:193 | on stmt: $const140.1 = const(int, 1)\n", - "2023-05-15 11:07:25,649 | DEBUG | ssa.py:193 | on stmt: $142binary_and.2 = exp.4 & $const140.1\n", - "2023-05-15 11:07:25,650 | DEBUG | ssa.py:193 | on stmt: bool144 = global(bool: )\n", - "2023-05-15 11:07:25,650 | DEBUG | ssa.py:193 | on stmt: $144pred = call bool144($142binary_and.2, func=bool144, args=(Var($142binary_and.2, numbers.py:238),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,650 | DEBUG | ssa.py:193 | on stmt: branch $144pred, 146, 154\n", - "2023-05-15 11:07:25,651 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:25,651 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,652 | DEBUG | ssa.py:193 | on stmt: $150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r.2, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,652 | DEBUG | ssa.py:353 | find_def var='a.1' stmt=$150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r.2, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,653 | DEBUG | ssa.py:384 | find_def_from_top label 146\n", - "2023-05-15 11:07:25,653 | DEBUG | ssa.py:421 | idom 138 from label 146\n", - "2023-05-15 11:07:25,654 | DEBUG | ssa.py:427 | find_def_from_bottom label 138\n", - "2023-05-15 11:07:25,654 | DEBUG | ssa.py:384 | find_def_from_top label 138\n", - "2023-05-15 11:07:25,655 | DEBUG | ssa.py:401 | insert phi node a.1.2 = phi(incoming_values=[], incoming_blocks=[]) at 138\n", - "2023-05-15 11:07:25,655 | DEBUG | ssa.py:427 | find_def_from_bottom label 130\n", - "2023-05-15 11:07:25,656 | DEBUG | ssa.py:384 | find_def_from_top label 130\n", - "2023-05-15 11:07:25,656 | DEBUG | ssa.py:421 | idom 106 from label 130\n", - "2023-05-15 11:07:25,657 | DEBUG | ssa.py:427 | find_def_from_bottom label 106\n", - "2023-05-15 11:07:25,657 | DEBUG | ssa.py:384 | find_def_from_top label 106\n", - "2023-05-15 11:07:25,657 | DEBUG | ssa.py:421 | idom 0 from label 106\n", - "2023-05-15 11:07:25,658 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:25,658 | DEBUG | ssa.py:409 | incoming_def a.1 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:216)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,659 | DEBUG | ssa.py:427 | find_def_from_bottom label 154\n", - "2023-05-15 11:07:25,659 | DEBUG | ssa.py:409 | incoming_def a.1.1 = $166inplace_multiply.5\n", - "2023-05-15 11:07:25,660 | DEBUG | ssa.py:199 | replaced with: $150inplace_multiply.2 = inplace_binop(fn=, immutable_fn=, lhs=r.2, rhs=a.1.2, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,660 | DEBUG | ssa.py:193 | on stmt: r.1 = $150inplace_multiply.2\n", - "2023-05-15 11:07:25,661 | DEBUG | ssa.py:193 | on stmt: jump 154\n", - "2023-05-15 11:07:25,662 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:25,663 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,669 | DEBUG | ssa.py:193 | on stmt: r.3 = phi(incoming_values=[Var(r.2, numbers.py:239), Var(r.1, numbers.py:239)], incoming_blocks=[138, 146])\n", - "2023-05-15 11:07:25,676 | DEBUG | ssa.py:193 | on stmt: $const156.1 = const(int, 1)\n", - "2023-05-15 11:07:25,676 | DEBUG | ssa.py:193 | on stmt: $158inplace_rshift.2 = inplace_binop(fn=, immutable_fn=, lhs=exp.4, rhs=$const156.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,677 | DEBUG | ssa.py:193 | on stmt: exp.2 = $158inplace_rshift.2\n", - "2023-05-15 11:07:25,678 | DEBUG | ssa.py:193 | on stmt: $166inplace_multiply.5 = inplace_binop(fn=, immutable_fn=, lhs=a.1, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,679 | DEBUG | ssa.py:353 | find_def var='a.1' stmt=$166inplace_multiply.5 = inplace_binop(fn=, immutable_fn=, lhs=a.1, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,679 | DEBUG | ssa.py:384 | find_def_from_top label 154\n", - "2023-05-15 11:07:25,680 | DEBUG | ssa.py:421 | idom 138 from label 154\n", - "2023-05-15 11:07:25,681 | DEBUG | ssa.py:427 | find_def_from_bottom label 138\n", - "2023-05-15 11:07:25,682 | DEBUG | ssa.py:199 | replaced with: $166inplace_multiply.5 = inplace_binop(fn=, immutable_fn=, lhs=a.1.2, rhs=a.1.2, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:25,682 | DEBUG | ssa.py:193 | on stmt: a.1.1 = $166inplace_multiply.5\n", - "2023-05-15 11:07:25,683 | DEBUG | ssa.py:193 | on stmt: $const172.7 = const(int, 0)\n", - "2023-05-15 11:07:25,684 | DEBUG | ssa.py:193 | on stmt: $174compare_op.8 = exp.2 != $const172.7\n", - "2023-05-15 11:07:25,685 | DEBUG | ssa.py:193 | on stmt: bool176 = global(bool: )\n", - "2023-05-15 11:07:25,685 | DEBUG | ssa.py:193 | on stmt: $176pred = call bool176($174compare_op.8, func=bool176, args=(Var($174compare_op.8, numbers.py:237),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,686 | DEBUG | ssa.py:193 | on stmt: branch $176pred, 138, 178\n", - "2023-05-15 11:07:25,687 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 178\n", - "2023-05-15 11:07:25,688 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,689 | DEBUG | ssa.py:193 | on stmt: r.4 = phi(incoming_values=[Var(r, numbers.py:216), Var(r.3, numbers.py:239)], incoming_blocks=[130, 154])\n", - "2023-05-15 11:07:25,689 | DEBUG | ssa.py:193 | on stmt: bool180 = global(bool: )\n", - "2023-05-15 11:07:25,690 | DEBUG | ssa.py:193 | on stmt: $180pred = call bool180(invert.2, func=bool180, args=(Var(invert.2, numbers.py:243),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,690 | DEBUG | ssa.py:193 | on stmt: branch $180pred, 182, 190\n", - "2023-05-15 11:07:25,691 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:25,692 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,692 | DEBUG | ssa.py:193 | on stmt: $const182.0 = const(float, 1.0)\n", - "2023-05-15 11:07:25,693 | DEBUG | ssa.py:193 | on stmt: $186binary_true_divide.2 = $const182.0 / r.4\n", - "2023-05-15 11:07:25,693 | DEBUG | ssa.py:193 | on stmt: $188return_value.3 = cast(value=$186binary_true_divide.2)\n", - "2023-05-15 11:07:25,694 | DEBUG | ssa.py:193 | on stmt: return $188return_value.3\n", - "2023-05-15 11:07:25,694 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 190\n", - "2023-05-15 11:07:25,695 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,696 | DEBUG | ssa.py:193 | on stmt: $192return_value.1 = cast(value=r.4)\n", - "2023-05-15 11:07:25,697 | DEBUG | ssa.py:193 | on stmt: return $192return_value.1\n", - "2023-05-15 11:07:25,880 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=286)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=286)\n", - " 4\tLOAD_GLOBAL(arg=1, lineno=286)\n", - " 6\tLOAD_FAST(arg=0, lineno=286)\n", - " 8\tCALL_FUNCTION(arg=1, lineno=286)\n", - " 10\tLOAD_GLOBAL(arg=2, lineno=286)\n", - " 12\tLOAD_CONST(arg=1, lineno=286)\n", - " 14\tCALL_FUNCTION_KW(arg=2, lineno=286)\n", - " 16\tSTORE_FAST(arg=3, lineno=286)\n", - " 18\tLOAD_GLOBAL(arg=3, lineno=287)\n", - " 20\tLOAD_GLOBAL(arg=1, lineno=287)\n", - " 22\tLOAD_FAST(arg=0, lineno=287)\n", - " 24\tCALL_FUNCTION(arg=1, lineno=287)\n", - " 26\tCALL_FUNCTION(arg=1, lineno=287)\n", - " 28\tGET_ITER(arg=None, lineno=287)\n", - "> 30\tFOR_ITER(arg=14, lineno=287)\n", - " 32\tSTORE_FAST(arg=4, lineno=287)\n", - " 34\tLOAD_GLOBAL(arg=4, lineno=288)\n", - " 36\tLOAD_FAST(arg=0, lineno=288)\n", - " 38\tLOAD_FAST(arg=4, lineno=288)\n", - " 40\tBINARY_SUBSCR(arg=None, lineno=288)\n", - " 42\tLOAD_FAST(arg=1, lineno=288)\n", - " 44\tLOAD_FAST(arg=4, lineno=288)\n", - " 46\tBINARY_SUBSCR(arg=None, lineno=288)\n", - " 48\tLOAD_FAST(arg=2, lineno=288)\n", - " 50\tCALL_FUNCTION(arg=3, lineno=288)\n", - " 52\tLOAD_FAST(arg=3, lineno=288)\n", - " 54\tLOAD_FAST(arg=4, lineno=288)\n", - " 56\tSTORE_SUBSCR(arg=None, lineno=288)\n", - " 58\tJUMP_ABSOLUTE(arg=16, lineno=288)\n", - "> 60\tLOAD_FAST(arg=3, lineno=289)\n", - " 62\tRETURN_VALUE(arg=None, lineno=289)\n", - "2023-05-15 11:07:25,881 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:25,881 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:25,882 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=286)\n", - "2023-05-15 11:07:25,883 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:25,883 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=286)\n", - "2023-05-15 11:07:25,884 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:25,884 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_GLOBAL(arg=1, lineno=286)\n", - "2023-05-15 11:07:25,885 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:25,886 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=0, lineno=286)\n", - "2023-05-15 11:07:25,886 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$4load_global.1']\n", - "2023-05-15 11:07:25,887 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=CALL_FUNCTION(arg=1, lineno=286)\n", - "2023-05-15 11:07:25,887 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$4load_global.1', '$edge_u6.2']\n", - "2023-05-15 11:07:25,888 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_GLOBAL(arg=2, lineno=286)\n", - "2023-05-15 11:07:25,888 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8call_function.3']\n", - "2023-05-15 11:07:25,892 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=LOAD_CONST(arg=1, lineno=286)\n", - "2023-05-15 11:07:25,894 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8call_function.3', '$10load_global.4']\n", - "2023-05-15 11:07:25,895 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=CALL_FUNCTION_KW(arg=2, lineno=286)\n", - "2023-05-15 11:07:25,895 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8call_function.3', '$10load_global.4', '$const12.5']\n", - "2023-05-15 11:07:25,896 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=STORE_FAST(arg=3, lineno=286)\n", - "2023-05-15 11:07:25,897 | DEBUG | byteflow.py:279 | stack ['$14call_function_kw.6']\n", - "2023-05-15 11:07:25,898 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=LOAD_GLOBAL(arg=3, lineno=287)\n", - "2023-05-15 11:07:25,898 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:25,899 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=LOAD_GLOBAL(arg=1, lineno=287)\n", - "2023-05-15 11:07:25,899 | DEBUG | byteflow.py:279 | stack ['$18load_global.7']\n", - "2023-05-15 11:07:25,900 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=LOAD_FAST(arg=0, lineno=287)\n", - "2023-05-15 11:07:25,902 | DEBUG | byteflow.py:279 | stack ['$18load_global.7', '$20load_global.8']\n", - "2023-05-15 11:07:25,903 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=CALL_FUNCTION(arg=1, lineno=287)\n", - "2023-05-15 11:07:25,904 | DEBUG | byteflow.py:279 | stack ['$18load_global.7', '$20load_global.8', '$edge_u22.9']\n", - "2023-05-15 11:07:25,905 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=CALL_FUNCTION(arg=1, lineno=287)\n", - "2023-05-15 11:07:25,905 | DEBUG | byteflow.py:279 | stack ['$18load_global.7', '$24call_function.10']\n", - "2023-05-15 11:07:25,906 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=GET_ITER(arg=None, lineno=287)\n", - "2023-05-15 11:07:25,907 | DEBUG | byteflow.py:279 | stack ['$26call_function.11']\n", - "2023-05-15 11:07:25,908 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=30, stack=('$28get_iter.12',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:25,909 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=30 nstack_initial=1)])\n", - "2023-05-15 11:07:25,909 | DEBUG | byteflow.py:103 | stack: ['$phi30.0']\n", - "2023-05-15 11:07:25,910 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=FOR_ITER(arg=14, lineno=287)\n", - "2023-05-15 11:07:25,911 | DEBUG | byteflow.py:279 | stack ['$phi30.0']\n", - "2023-05-15 11:07:25,912 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=60, stack=(), blockstack=(), npush=0), Edge(pc=32, stack=('$phi30.0', '$30for_iter.2'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:25,912 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=60 nstack_initial=0), State(pc_initial=32 nstack_initial=2)])\n", - "2023-05-15 11:07:25,913 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:25,913 | DEBUG | byteflow.py:278 | dispatch pc=60, inst=LOAD_FAST(arg=3, lineno=289)\n", - "2023-05-15 11:07:25,914 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:25,914 | DEBUG | byteflow.py:278 | dispatch pc=62, inst=RETURN_VALUE(arg=None, lineno=289)\n", - "2023-05-15 11:07:25,915 | DEBUG | byteflow.py:279 | stack ['$edges60.0']\n", - "2023-05-15 11:07:25,915 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:25,917 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=32 nstack_initial=2)])\n", - "2023-05-15 11:07:25,917 | DEBUG | byteflow.py:103 | stack: ['$phi32.0', '$phi32.1']\n", - "2023-05-15 11:07:25,919 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=STORE_FAST(arg=4, lineno=287)\n", - "2023-05-15 11:07:25,919 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$phi32.1']\n", - "2023-05-15 11:07:25,920 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=LOAD_GLOBAL(arg=4, lineno=288)\n", - "2023-05-15 11:07:25,920 | DEBUG | byteflow.py:279 | stack ['$phi32.0']\n", - "2023-05-15 11:07:25,921 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=LOAD_FAST(arg=0, lineno=288)\n", - "2023-05-15 11:07:25,921 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2']\n", - "2023-05-15 11:07:25,922 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=LOAD_FAST(arg=4, lineno=288)\n", - "2023-05-15 11:07:25,922 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$edge_u36.3']\n", - "2023-05-15 11:07:25,923 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=BINARY_SUBSCR(arg=None, lineno=288)\n", - "2023-05-15 11:07:25,923 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$edge_u36.3', '$i38.4']\n", - "2023-05-15 11:07:25,924 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=LOAD_FAST(arg=1, lineno=288)\n", - "2023-05-15 11:07:25,926 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5']\n", - "2023-05-15 11:07:25,927 | DEBUG | byteflow.py:278 | dispatch pc=44, inst=LOAD_FAST(arg=4, lineno=288)\n", - "2023-05-15 11:07:25,927 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5', '$edge_v42.6']\n", - "2023-05-15 11:07:25,928 | DEBUG | byteflow.py:278 | dispatch pc=46, inst=BINARY_SUBSCR(arg=None, lineno=288)\n", - "2023-05-15 11:07:25,929 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5', '$edge_v42.6', '$i44.7']\n", - "2023-05-15 11:07:25,930 | DEBUG | byteflow.py:278 | dispatch pc=48, inst=LOAD_FAST(arg=2, lineno=288)\n", - "2023-05-15 11:07:25,930 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5', '$46binary_subscr.8']\n", - "2023-05-15 11:07:25,931 | DEBUG | byteflow.py:278 | dispatch pc=50, inst=CALL_FUNCTION(arg=3, lineno=288)\n", - "2023-05-15 11:07:25,932 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5', '$46binary_subscr.8', '$max_len48.9']\n", - "2023-05-15 11:07:25,933 | DEBUG | byteflow.py:278 | dispatch pc=52, inst=LOAD_FAST(arg=3, lineno=288)\n", - "2023-05-15 11:07:25,933 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$50call_function.10']\n", - "2023-05-15 11:07:25,934 | DEBUG | byteflow.py:278 | dispatch pc=54, inst=LOAD_FAST(arg=4, lineno=288)\n", - "2023-05-15 11:07:25,935 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$50call_function.10', '$edges52.11']\n", - "2023-05-15 11:07:25,935 | DEBUG | byteflow.py:278 | dispatch pc=56, inst=STORE_SUBSCR(arg=None, lineno=288)\n", - "2023-05-15 11:07:25,936 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$50call_function.10', '$edges52.11', '$i54.12']\n", - "2023-05-15 11:07:25,936 | DEBUG | byteflow.py:278 | dispatch pc=58, inst=JUMP_ABSOLUTE(arg=16, lineno=288)\n", - "2023-05-15 11:07:25,938 | DEBUG | byteflow.py:279 | stack ['$phi32.0']\n", - "2023-05-15 11:07:25,939 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=30, stack=('$phi32.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:25,939 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=30 nstack_initial=1)])\n", - "2023-05-15 11:07:25,940 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:25,941 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=30 nstack_initial=1): {'$phi30.0'},\n", - " State(pc_initial=32 nstack_initial=2): {'$phi32.1'},\n", - " State(pc_initial=60 nstack_initial=0): set()})\n", - "2023-05-15 11:07:25,941 | DEBUG | byteflow.py:192 | defmap: {'$phi30.0': State(pc_initial=0 nstack_initial=0),\n", - " '$phi32.1': State(pc_initial=30 nstack_initial=1)}\n", - "2023-05-15 11:07:25,942 | DEBUG | byteflow.py:193 | phismap: defaultdict(,\n", - " {'$phi30.0': {('$28get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi32.0', State(pc_initial=32 nstack_initial=2))},\n", - " '$phi32.0': {('$phi30.0', State(pc_initial=30 nstack_initial=1))},\n", - " '$phi32.1': {('$30for_iter.2',\n", - " State(pc_initial=30 nstack_initial=1))}})\n", - "2023-05-15 11:07:25,943 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi30.0': {('$28get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi30.0', State(pc_initial=30 nstack_initial=1))},\n", - " '$phi32.0': {('$28get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.1': {('$30for_iter.2',\n", - " State(pc_initial=30 nstack_initial=1))}})\n", - "2023-05-15 11:07:25,943 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi30.0': {('$28get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.0': {('$28get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.1': {('$30for_iter.2',\n", - " State(pc_initial=30 nstack_initial=1))}})\n", - "2023-05-15 11:07:25,944 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi30.0': {('$28get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.0': {('$28get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.1': {('$30for_iter.2',\n", - " State(pc_initial=30 nstack_initial=1))}})\n", - "2023-05-15 11:07:25,945 | DEBUG | byteflow.py:223 | keep phismap: {'$phi30.0': {('$28get_iter.12', State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.1': {('$30for_iter.2', State(pc_initial=30 nstack_initial=1))}}\n", - "2023-05-15 11:07:25,945 | DEBUG | byteflow.py:229 | new_out: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): {'$phi30.0': '$28get_iter.12'},\n", - " State(pc_initial=30 nstack_initial=1): {'$phi32.1': '$30for_iter.2'}})\n", - "2023-05-15 11:07:25,946 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:25,947 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$4load_global.1'}), (6, {'res': '$edge_u6.2'}), (8, {'func': '$4load_global.1', 'args': ['$edge_u6.2'], 'res': '$8call_function.3'}), (10, {'res': '$10load_global.4'}), (12, {'res': '$const12.5'}), (14, {'func': '$2load_global.0', 'args': ['$8call_function.3', '$10load_global.4'], 'names': '$const12.5', 'res': '$14call_function_kw.6'}), (16, {'value': '$14call_function_kw.6'}), (18, {'res': '$18load_global.7'}), (20, {'res': '$20load_global.8'}), (22, {'res': '$edge_u22.9'}), (24, {'func': '$20load_global.8', 'args': ['$edge_u22.9'], 'res': '$24call_function.10'}), (26, {'func': '$18load_global.7', 'args': ['$24call_function.10'], 'res': '$26call_function.11'}), (28, {'value': '$26call_function.11', 'res': '$28get_iter.12'})), outgoing_phis={'$phi30.0': '$28get_iter.12'}, blockstack=(), active_try_block=None, outgoing_edgepushed={30: ('$28get_iter.12',)})\n", - "2023-05-15 11:07:25,947 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=30 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((30, {'iterator': '$phi30.0', 'pair': '$30for_iter.1', 'indval': '$30for_iter.2', 'pred': '$30for_iter.3'}),), outgoing_phis={'$phi32.1': '$30for_iter.2'}, blockstack=(), active_try_block=None, outgoing_edgepushed={60: (), 32: ('$phi30.0', '$30for_iter.2')})\n", - "2023-05-15 11:07:25,950 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=32 nstack_initial=2):\n", - "AdaptBlockInfo(insts=((32, {'value': '$phi32.1'}), (34, {'res': '$34load_global.2'}), (36, {'res': '$edge_u36.3'}), (38, {'res': '$i38.4'}), (40, {'index': '$i38.4', 'target': '$edge_u36.3', 'res': '$40binary_subscr.5'}), (42, {'res': '$edge_v42.6'}), (44, {'res': '$i44.7'}), (46, {'index': '$i44.7', 'target': '$edge_v42.6', 'res': '$46binary_subscr.8'}), (48, {'res': '$max_len48.9'}), (50, {'func': '$34load_global.2', 'args': ['$40binary_subscr.5', '$46binary_subscr.8', '$max_len48.9'], 'res': '$50call_function.10'}), (52, {'res': '$edges52.11'}), (54, {'res': '$i54.12'}), (56, {'target': '$edges52.11', 'index': '$i54.12', 'value': '$50call_function.10'}), (58, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={30: ('$phi32.0',)})\n", - "2023-05-15 11:07:25,951 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=60 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((60, {'res': '$edges60.0'}), (62, {'retval': '$edges60.0', 'castval': '$62return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:25,953 | DEBUG | interpreter.py:1342 | label 0:\n", - " edge_u = arg(0, name=edge_u) ['edge_u']\n", - " edge_v = arg(1, name=edge_v) ['edge_v']\n", - " max_len = arg(2, name=max_len) ['max_len']\n", - " $2load_global.0 = global(empty: ) ['$2load_global.0']\n", - " $4load_global.1 = global(len: ) ['$4load_global.1']\n", - " $8call_function.3 = call $4load_global.1(edge_u, func=$4load_global.1, args=[Var(edge_u, utils.py:286)], kws=(), vararg=None, varkwarg=None, target=None) ['$4load_global.1', '$8call_function.3', 'edge_u']\n", - " $10load_global.4 = global(np_int64: ) ['$10load_global.4']\n", - " edges = call $2load_global.0($8call_function.3, func=$2load_global.0, args=[Var($8call_function.3, utils.py:286)], kws=[('dtype', Var($10load_global.4, utils.py:286))], vararg=None, varkwarg=None, target=None) ['$10load_global.4', '$2load_global.0', '$8call_function.3', 'edges']\n", - " $18load_global.7 = global(prange: ) ['$18load_global.7']\n", - " $20load_global.8 = global(len: ) ['$20load_global.8']\n", - " $24call_function.10 = call $20load_global.8(edge_u, func=$20load_global.8, args=[Var(edge_u, utils.py:286)], kws=(), vararg=None, varkwarg=None, target=None) ['$20load_global.8', '$24call_function.10', 'edge_u']\n", - " $26call_function.11 = call $18load_global.7($24call_function.10, func=$18load_global.7, args=[Var($24call_function.10, utils.py:287)], kws=(), vararg=None, varkwarg=None, target=None) ['$18load_global.7', '$24call_function.10', '$26call_function.11']\n", - " $28get_iter.12 = getiter(value=$26call_function.11) ['$26call_function.11', '$28get_iter.12']\n", - " $phi30.0 = $28get_iter.12 ['$28get_iter.12', '$phi30.0']\n", - " jump 30 []\n", - "label 30:\n", - " $30for_iter.1 = iternext(value=$phi30.0) ['$30for_iter.1', '$phi30.0']\n", - " $30for_iter.2 = pair_first(value=$30for_iter.1) ['$30for_iter.1', '$30for_iter.2']\n", - " $30for_iter.3 = pair_second(value=$30for_iter.1) ['$30for_iter.1', '$30for_iter.3']\n", - " $phi32.1 = $30for_iter.2 ['$30for_iter.2', '$phi32.1']\n", - " branch $30for_iter.3, 32, 60 ['$30for_iter.3']\n", - "label 32:\n", - " i = $phi32.1 ['$phi32.1', 'i']\n", - " $34load_global.2 = global(__edge_to_1d: CPUDispatcher()) ['$34load_global.2']\n", - " $40binary_subscr.5 = getitem(value=edge_u, index=i, fn=) ['$40binary_subscr.5', 'edge_u', 'i']\n", - " $46binary_subscr.8 = getitem(value=edge_v, index=i, fn=) ['$46binary_subscr.8', 'edge_v', 'i']\n", - " $50call_function.10 = call $34load_global.2($40binary_subscr.5, $46binary_subscr.8, max_len, func=$34load_global.2, args=[Var($40binary_subscr.5, utils.py:288), Var($46binary_subscr.8, utils.py:288), Var(max_len, utils.py:286)], kws=(), vararg=None, varkwarg=None, target=None) ['$34load_global.2', '$40binary_subscr.5', '$46binary_subscr.8', '$50call_function.10', 'max_len']\n", - " edges[i] = $50call_function.10 ['$50call_function.10', 'edges', 'i']\n", - " jump 30 []\n", - "label 60:\n", - " $62return_value.1 = cast(value=edges) ['$62return_value.1', 'edges']\n", - " return $62return_value.1 ['$62return_value.1']\n", - "\n", - "2023-05-15 11:07:25,966 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:25,967 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,968 | DEBUG | ssa.py:193 | on stmt: edge_u = arg(0, name=edge_u)\n", - "2023-05-15 11:07:25,968 | DEBUG | ssa.py:193 | on stmt: edge_v = arg(1, name=edge_v)\n", - "2023-05-15 11:07:25,969 | DEBUG | ssa.py:193 | on stmt: max_len = arg(2, name=max_len)\n", - "2023-05-15 11:07:25,969 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(empty: )\n", - "2023-05-15 11:07:25,969 | DEBUG | ssa.py:193 | on stmt: $4load_global.1 = global(len: )\n", - "2023-05-15 11:07:25,970 | DEBUG | ssa.py:193 | on stmt: $8call_function.3 = call $4load_global.1(edge_u, func=$4load_global.1, args=[Var(edge_u, utils.py:286)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,970 | DEBUG | ssa.py:193 | on stmt: $10load_global.4 = global(np_int64: )\n", - "2023-05-15 11:07:25,971 | DEBUG | ssa.py:193 | on stmt: edges = call $2load_global.0($8call_function.3, func=$2load_global.0, args=[Var($8call_function.3, utils.py:286)], kws=[('dtype', Var($10load_global.4, utils.py:286))], vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,972 | DEBUG | ssa.py:193 | on stmt: $18load_global.7 = global(prange: )\n", - "2023-05-15 11:07:25,973 | DEBUG | ssa.py:193 | on stmt: $20load_global.8 = global(len: )\n", - "2023-05-15 11:07:25,974 | DEBUG | ssa.py:193 | on stmt: $24call_function.10 = call $20load_global.8(edge_u, func=$20load_global.8, args=[Var(edge_u, utils.py:286)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,974 | DEBUG | ssa.py:193 | on stmt: $26call_function.11 = call $18load_global.7($24call_function.10, func=$18load_global.7, args=[Var($24call_function.10, utils.py:287)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,975 | DEBUG | ssa.py:193 | on stmt: $28get_iter.12 = getiter(value=$26call_function.11)\n", - "2023-05-15 11:07:25,975 | DEBUG | ssa.py:193 | on stmt: $phi30.0 = $28get_iter.12\n", - "2023-05-15 11:07:25,976 | DEBUG | ssa.py:193 | on stmt: jump 30\n", - "2023-05-15 11:07:25,976 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 30\n", - "2023-05-15 11:07:25,981 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,982 | DEBUG | ssa.py:193 | on stmt: $30for_iter.1 = iternext(value=$phi30.0)\n", - "2023-05-15 11:07:25,982 | DEBUG | ssa.py:193 | on stmt: $30for_iter.2 = pair_first(value=$30for_iter.1)\n", - "2023-05-15 11:07:25,983 | DEBUG | ssa.py:193 | on stmt: $30for_iter.3 = pair_second(value=$30for_iter.1)\n", - "2023-05-15 11:07:25,983 | DEBUG | ssa.py:193 | on stmt: $phi32.1 = $30for_iter.2\n", - "2023-05-15 11:07:25,984 | DEBUG | ssa.py:193 | on stmt: branch $30for_iter.3, 32, 60\n", - "2023-05-15 11:07:25,984 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 32\n", - "2023-05-15 11:07:25,985 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,986 | DEBUG | ssa.py:193 | on stmt: i = $phi32.1\n", - "2023-05-15 11:07:25,986 | DEBUG | ssa.py:193 | on stmt: $34load_global.2 = global(__edge_to_1d: CPUDispatcher())\n", - "2023-05-15 11:07:25,987 | DEBUG | ssa.py:193 | on stmt: $40binary_subscr.5 = getitem(value=edge_u, index=i, fn=)\n", - "2023-05-15 11:07:25,988 | DEBUG | ssa.py:193 | on stmt: $46binary_subscr.8 = getitem(value=edge_v, index=i, fn=)\n", - "2023-05-15 11:07:25,988 | DEBUG | ssa.py:193 | on stmt: $50call_function.10 = call $34load_global.2($40binary_subscr.5, $46binary_subscr.8, max_len, func=$34load_global.2, args=[Var($40binary_subscr.5, utils.py:288), Var($46binary_subscr.8, utils.py:288), Var(max_len, utils.py:286)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:25,989 | DEBUG | ssa.py:193 | on stmt: edges[i] = $50call_function.10\n", - "2023-05-15 11:07:25,990 | DEBUG | ssa.py:193 | on stmt: jump 30\n", - "2023-05-15 11:07:25,990 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 60\n", - "2023-05-15 11:07:25,991 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:25,991 | DEBUG | ssa.py:193 | on stmt: $62return_value.1 = cast(value=edges)\n", - "2023-05-15 11:07:25,992 | DEBUG | ssa.py:193 | on stmt: return $62return_value.1\n", - "2023-05-15 11:07:25,993 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10load_global.4': [],\n", - " '$18load_global.7': [],\n", - " '$20load_global.8': [],\n", - " '$24call_function.10': [],\n", - " '$26call_function.11': [],\n", - " '$28get_iter.12': [],\n", - " '$2load_global.0': [],\n", - " '$30for_iter.1': [],\n", - " '$30for_iter.2': [],\n", - " '$30for_iter.3': [],\n", - " '$34load_global.2': [],\n", - " '$40binary_subscr.5': [],\n", - " '$46binary_subscr.8': [],\n", - " '$4load_global.1': [],\n", - " '$50call_function.10': [],\n", - " '$62return_value.1': [],\n", - " '$8call_function.3': [],\n", - " '$phi30.0': [],\n", - " '$phi32.1': [],\n", - " 'edge_u': [],\n", - " 'edge_v': [],\n", - " 'edges': [],\n", - " 'i': [],\n", - " 'max_len': []})\n", - "2023-05-15 11:07:25,995 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:26,004 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4101)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=4101)\n", - " 4\tLOAD_FAST(arg=0, lineno=4101)\n", - " 6\tLOAD_FAST(arg=1, lineno=4101)\n", - " 8\tLOAD_DEREF(arg=0, lineno=4101)\n", - " 10\tCALL_FUNCTION(arg=3, lineno=4101)\n", - " 12\tRETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:26,005 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:26,005 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:26,006 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4101)\n", - "2023-05-15 11:07:26,007 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,007 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=4101)\n", - "2023-05-15 11:07:26,008 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,009 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=4101)\n", - "2023-05-15 11:07:26,010 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:26,010 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=1, lineno=4101)\n", - "2023-05-15 11:07:26,011 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1']\n", - "2023-05-15 11:07:26,012 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_DEREF(arg=0, lineno=4101)\n", - "2023-05-15 11:07:26,012 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2']\n", - "2023-05-15 11:07:26,013 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_FUNCTION(arg=3, lineno=4101)\n", - "2023-05-15 11:07:26,013 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2', '$8load_deref.3']\n", - "2023-05-15 11:07:26,014 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=RETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:26,015 | DEBUG | byteflow.py:279 | stack ['$10call_function.4']\n", - "2023-05-15 11:07:26,015 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:26,016 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:26,017 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:26,018 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:26,019 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:26,019 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:26,020 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:26,021 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:26,022 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:26,023 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$shape4.1'}), (6, {'res': '$dtype6.2'}), (8, {'res': '$8load_deref.3'}), (10, {'func': '$2load_global.0', 'args': ['$shape4.1', '$dtype6.2', '$8load_deref.3'], 'res': '$10call_function.4'}), (12, {'retval': '$10call_function.4', 'castval': '$12return_value.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:26,024 | DEBUG | interpreter.py:1342 | label 0:\n", - " shape = arg(0, name=shape) ['shape']\n", - " dtype = arg(1, name=dtype) ['dtype']\n", - " $2load_global.0 = global(numpy_empty_nd: ) ['$2load_global.0']\n", - " $8load_deref.3 = freevar(retty: array(int64, 1d, C)) ['$8load_deref.3']\n", - " $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None) ['$10call_function.4', '$2load_global.0', '$8load_deref.3', 'dtype', 'shape']\n", - " $12return_value.5 = cast(value=$10call_function.4) ['$10call_function.4', '$12return_value.5']\n", - " return $12return_value.5 ['$12return_value.5']\n", - "\n", - "2023-05-15 11:07:26,032 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:26,033 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,033 | DEBUG | ssa.py:193 | on stmt: shape = arg(0, name=shape)\n", - "2023-05-15 11:07:26,034 | DEBUG | ssa.py:193 | on stmt: dtype = arg(1, name=dtype)\n", - "2023-05-15 11:07:26,035 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(numpy_empty_nd: )\n", - "2023-05-15 11:07:26,035 | DEBUG | ssa.py:193 | on stmt: $8load_deref.3 = freevar(retty: array(int64, 1d, C))\n", - "2023-05-15 11:07:26,036 | DEBUG | ssa.py:193 | on stmt: $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,036 | DEBUG | ssa.py:193 | on stmt: $12return_value.5 = cast(value=$10call_function.4)\n", - "2023-05-15 11:07:26,037 | DEBUG | ssa.py:193 | on stmt: return $12return_value.5\n", - "2023-05-15 11:07:26,038 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10call_function.4': [],\n", - " '$12return_value.5': [],\n", - " '$2load_global.0': [],\n", - " '$8load_deref.3': [],\n", - " 'dtype': [],\n", - " 'shape': []})\n", - "2023-05-15 11:07:26,038 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:26,056 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=3979)\n", - " 2\tLOAD_FAST(arg=0, lineno=3979)\n", - " 4\tLOAD_METHOD(arg=0, lineno=3979)\n", - " 6\tLOAD_FAST(arg=1, lineno=3979)\n", - " 8\tLOAD_FAST(arg=2, lineno=3979)\n", - " 10\tCALL_METHOD(arg=2, lineno=3979)\n", - " 12\tRETURN_VALUE(arg=None, lineno=3979)\n", - "2023-05-15 11:07:26,056 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:26,057 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:26,057 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=3979)\n", - "2023-05-15 11:07:26,058 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,061 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_FAST(arg=0, lineno=3979)\n", - "2023-05-15 11:07:26,062 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,063 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_METHOD(arg=0, lineno=3979)\n", - "2023-05-15 11:07:26,080 | DEBUG | byteflow.py:279 | stack ['$arrtype2.0']\n", - "2023-05-15 11:07:26,084 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=1, lineno=3979)\n", - "2023-05-15 11:07:26,085 | DEBUG | byteflow.py:279 | stack ['$4load_method.1']\n", - "2023-05-15 11:07:26,086 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_FAST(arg=2, lineno=3979)\n", - "2023-05-15 11:07:26,086 | DEBUG | byteflow.py:279 | stack ['$4load_method.1', '$size6.2']\n", - "2023-05-15 11:07:26,088 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_METHOD(arg=2, lineno=3979)\n", - "2023-05-15 11:07:26,088 | DEBUG | byteflow.py:279 | stack ['$4load_method.1', '$size6.2', '$align8.3']\n", - "2023-05-15 11:07:26,089 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=RETURN_VALUE(arg=None, lineno=3979)\n", - "2023-05-15 11:07:26,090 | DEBUG | byteflow.py:279 | stack ['$10call_method.4']\n", - "2023-05-15 11:07:26,091 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:26,091 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:26,092 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:26,093 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:26,094 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:26,095 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:26,096 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:26,096 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:26,097 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:26,098 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$arrtype2.0'}), (4, {'item': '$arrtype2.0', 'res': '$4load_method.1'}), (6, {'res': '$size6.2'}), (8, {'res': '$align8.3'}), (10, {'func': '$4load_method.1', 'args': ['$size6.2', '$align8.3'], 'res': '$10call_method.4'}), (12, {'retval': '$10call_method.4', 'castval': '$12return_value.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:26,100 | DEBUG | interpreter.py:1342 | label 0:\n", - " arrtype = arg(0, name=arrtype) ['arrtype']\n", - " size = arg(1, name=size) ['size']\n", - " align = arg(2, name=align) ['align']\n", - " $4load_method.1 = getattr(value=arrtype, attr=_allocate) ['$4load_method.1', 'arrtype']\n", - " $10call_method.4 = call $4load_method.1(size, align, func=$4load_method.1, args=[Var(size, arrayobj.py:3979), Var(align, arrayobj.py:3979)], kws=(), vararg=None, varkwarg=None, target=None) ['$10call_method.4', '$4load_method.1', 'align', 'size']\n", - " $12return_value.5 = cast(value=$10call_method.4) ['$10call_method.4', '$12return_value.5']\n", - " return $12return_value.5 ['$12return_value.5']\n", - "\n", - "2023-05-15 11:07:26,110 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:26,111 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,112 | DEBUG | ssa.py:193 | on stmt: arrtype = arg(0, name=arrtype)\n", - "2023-05-15 11:07:26,112 | DEBUG | ssa.py:193 | on stmt: size = arg(1, name=size)\n", - "2023-05-15 11:07:26,113 | DEBUG | ssa.py:193 | on stmt: align = arg(2, name=align)\n", - "2023-05-15 11:07:26,115 | DEBUG | ssa.py:193 | on stmt: $4load_method.1 = getattr(value=arrtype, attr=_allocate)\n", - "2023-05-15 11:07:26,115 | DEBUG | ssa.py:193 | on stmt: $10call_method.4 = call $4load_method.1(size, align, func=$4load_method.1, args=[Var(size, arrayobj.py:3979), Var(align, arrayobj.py:3979)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,117 | DEBUG | ssa.py:193 | on stmt: $12return_value.5 = cast(value=$10call_method.4)\n", - "2023-05-15 11:07:26,117 | DEBUG | ssa.py:193 | on stmt: return $12return_value.5\n", - "2023-05-15 11:07:26,118 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10call_method.4': [],\n", - " '$12return_value.5': [],\n", - " '$4load_method.1': [],\n", - " 'align': [],\n", - " 'arrtype': [],\n", - " 'size': []})\n", - "2023-05-15 11:07:26,119 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:26,124 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=3972)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=3972)\n", - " 4\tLOAD_FAST(arg=1, lineno=3972)\n", - " 6\tLOAD_FAST(arg=2, lineno=3972)\n", - " 8\tCALL_FUNCTION(arg=2, lineno=3972)\n", - " 10\tRETURN_VALUE(arg=None, lineno=3972)\n", - "2023-05-15 11:07:26,125 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:26,126 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:26,127 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=3972)\n", - "2023-05-15 11:07:26,127 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,128 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=3972)\n", - "2023-05-15 11:07:26,130 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,130 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=1, lineno=3972)\n", - "2023-05-15 11:07:26,131 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:26,131 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=2, lineno=3972)\n", - "2023-05-15 11:07:26,132 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$allocsize4.1']\n", - "2023-05-15 11:07:26,132 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=CALL_FUNCTION(arg=2, lineno=3972)\n", - "2023-05-15 11:07:26,132 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$allocsize4.1', '$align6.2']\n", - "2023-05-15 11:07:26,133 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=RETURN_VALUE(arg=None, lineno=3972)\n", - "2023-05-15 11:07:26,133 | DEBUG | byteflow.py:279 | stack ['$8call_function.3']\n", - "2023-05-15 11:07:26,134 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:26,134 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:26,135 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:26,135 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:26,136 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:26,136 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:26,136 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:26,137 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:26,138 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:26,140 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$allocsize4.1'}), (6, {'res': '$align6.2'}), (8, {'func': '$2load_global.0', 'args': ['$allocsize4.1', '$align6.2'], 'res': '$8call_function.3'}), (10, {'retval': '$8call_function.3', 'castval': '$10return_value.4'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:26,141 | DEBUG | interpreter.py:1342 | label 0:\n", - " cls = arg(0, name=cls) ['cls']\n", - " allocsize = arg(1, name=allocsize) ['allocsize']\n", - " align = arg(2, name=align) ['align']\n", - " $2load_global.0 = global(intrin_alloc: ) ['$2load_global.0']\n", - " $8call_function.3 = call $2load_global.0(allocsize, align, func=$2load_global.0, args=[Var(allocsize, arrayobj.py:3972), Var(align, arrayobj.py:3972)], kws=(), vararg=None, varkwarg=None, target=None) ['$2load_global.0', '$8call_function.3', 'align', 'allocsize']\n", - " $10return_value.4 = cast(value=$8call_function.3) ['$10return_value.4', '$8call_function.3']\n", - " return $10return_value.4 ['$10return_value.4']\n", - "\n", - "2023-05-15 11:07:26,149 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:26,150 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,150 | DEBUG | ssa.py:193 | on stmt: cls = arg(0, name=cls)\n", - "2023-05-15 11:07:26,151 | DEBUG | ssa.py:193 | on stmt: allocsize = arg(1, name=allocsize)\n", - "2023-05-15 11:07:26,151 | DEBUG | ssa.py:193 | on stmt: align = arg(2, name=align)\n", - "2023-05-15 11:07:26,152 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(intrin_alloc: )\n", - "2023-05-15 11:07:26,153 | DEBUG | ssa.py:193 | on stmt: $8call_function.3 = call $2load_global.0(allocsize, align, func=$2load_global.0, args=[Var(allocsize, arrayobj.py:3972), Var(align, arrayobj.py:3972)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,154 | DEBUG | ssa.py:193 | on stmt: $10return_value.4 = cast(value=$8call_function.3)\n", - "2023-05-15 11:07:26,154 | DEBUG | ssa.py:193 | on stmt: return $10return_value.4\n", - "2023-05-15 11:07:26,155 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10return_value.4': [],\n", - " '$2load_global.0': [],\n", - " '$8call_function.3': [],\n", - " 'align': [],\n", - " 'allocsize': [],\n", - " 'cls': []})\n", - "2023-05-15 11:07:26,156 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:26,286 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=2)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=2)\n", - " 4\tLOAD_FAST(arg=0, lineno=2)\n", - " 6\tLOAD_CONST(arg=1, lineno=2)\n", - " 8\tBINARY_SUBSCR(arg=None, lineno=2)\n", - " 10\tLOAD_FAST(arg=0, lineno=2)\n", - " 12\tLOAD_CONST(arg=2, lineno=2)\n", - " 14\tBINARY_SUBSCR(arg=None, lineno=2)\n", - " 16\tLOAD_GLOBAL(arg=1, lineno=2)\n", - " 18\tLOAD_METHOD(arg=2, lineno=2)\n", - " 20\tLOAD_CONST(arg=2, lineno=2)\n", - " 22\tCALL_METHOD(arg=1, lineno=2)\n", - " 24\tBINARY_ADD(arg=None, lineno=2)\n", - " 26\tCALL_FUNCTION(arg=2, lineno=2)\n", - " 28\tGET_ITER(arg=None, lineno=2)\n", - "> 30\tFOR_ITER(arg=4, lineno=2)\n", - " 32\tSTORE_FAST(arg=5, lineno=2)\n", - " 34\tLOAD_CONST(arg=1, lineno=3)\n", - " 36\tSTORE_FAST(arg=6, lineno=3)\n", - " 38\tJUMP_ABSOLUTE(arg=16, lineno=3)\n", - "> 40\tLOAD_CONST(arg=0, lineno=4)\n", - " 42\tRETURN_VALUE(arg=None, lineno=4)\n", - "2023-05-15 11:07:26,287 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:26,287 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:26,288 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=2)\n", - "2023-05-15 11:07:26,288 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,289 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=2)\n", - "2023-05-15 11:07:26,289 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,289 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=2)\n", - "2023-05-15 11:07:26,290 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:26,290 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_CONST(arg=1, lineno=2)\n", - "2023-05-15 11:07:26,291 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$sched4.1']\n", - "2023-05-15 11:07:26,292 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=BINARY_SUBSCR(arg=None, lineno=2)\n", - "2023-05-15 11:07:26,293 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$sched4.1', '$const6.2']\n", - "2023-05-15 11:07:26,293 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_FAST(arg=0, lineno=2)\n", - "2023-05-15 11:07:26,294 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3']\n", - "2023-05-15 11:07:26,294 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=LOAD_CONST(arg=2, lineno=2)\n", - "2023-05-15 11:07:26,294 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$sched10.4']\n", - "2023-05-15 11:07:26,295 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=BINARY_SUBSCR(arg=None, lineno=2)\n", - "2023-05-15 11:07:26,295 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$sched10.4', '$const12.5']\n", - "2023-05-15 11:07:26,296 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=LOAD_GLOBAL(arg=1, lineno=2)\n", - "2023-05-15 11:07:26,297 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$14binary_subscr.6']\n", - "2023-05-15 11:07:26,297 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=LOAD_METHOD(arg=2, lineno=2)\n", - "2023-05-15 11:07:26,298 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$14binary_subscr.6', '$16load_global.7']\n", - "2023-05-15 11:07:26,298 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=LOAD_CONST(arg=2, lineno=2)\n", - "2023-05-15 11:07:26,299 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$14binary_subscr.6', '$18load_method.8']\n", - "2023-05-15 11:07:26,301 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=CALL_METHOD(arg=1, lineno=2)\n", - "2023-05-15 11:07:26,302 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$14binary_subscr.6', '$18load_method.8', '$const20.9']\n", - "2023-05-15 11:07:26,302 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=BINARY_ADD(arg=None, lineno=2)\n", - "2023-05-15 11:07:26,303 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$14binary_subscr.6', '$22call_method.10']\n", - "2023-05-15 11:07:26,303 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=CALL_FUNCTION(arg=2, lineno=2)\n", - "2023-05-15 11:07:26,304 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$24binary_add.11']\n", - "2023-05-15 11:07:26,304 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=GET_ITER(arg=None, lineno=2)\n", - "2023-05-15 11:07:26,305 | DEBUG | byteflow.py:279 | stack ['$26call_function.12']\n", - "2023-05-15 11:07:26,305 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=30, stack=('$28get_iter.13',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:26,306 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=30 nstack_initial=1)])\n", - "2023-05-15 11:07:26,306 | DEBUG | byteflow.py:103 | stack: ['$phi30.0']\n", - "2023-05-15 11:07:26,307 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=FOR_ITER(arg=4, lineno=2)\n", - "2023-05-15 11:07:26,307 | DEBUG | byteflow.py:279 | stack ['$phi30.0']\n", - "2023-05-15 11:07:26,307 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=40, stack=(), blockstack=(), npush=0), Edge(pc=32, stack=('$phi30.0', '$30for_iter.2'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:26,308 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=40 nstack_initial=0), State(pc_initial=32 nstack_initial=2)])\n", - "2023-05-15 11:07:26,308 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:26,309 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=LOAD_CONST(arg=0, lineno=4)\n", - "2023-05-15 11:07:26,311 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,311 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=RETURN_VALUE(arg=None, lineno=4)\n", - "2023-05-15 11:07:26,312 | DEBUG | byteflow.py:279 | stack ['$const40.0']\n", - "2023-05-15 11:07:26,312 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:26,313 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=32 nstack_initial=2)])\n", - "2023-05-15 11:07:26,313 | DEBUG | byteflow.py:103 | stack: ['$phi32.0', '$phi32.1']\n", - "2023-05-15 11:07:26,314 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=STORE_FAST(arg=5, lineno=2)\n", - "2023-05-15 11:07:26,314 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$phi32.1']\n", - "2023-05-15 11:07:26,314 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=LOAD_CONST(arg=1, lineno=3)\n", - "2023-05-15 11:07:26,315 | DEBUG | byteflow.py:279 | stack ['$phi32.0']\n", - "2023-05-15 11:07:26,315 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=STORE_FAST(arg=6, lineno=3)\n", - "2023-05-15 11:07:26,316 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$const34.2']\n", - "2023-05-15 11:07:26,316 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=JUMP_ABSOLUTE(arg=16, lineno=3)\n", - "2023-05-15 11:07:26,317 | DEBUG | byteflow.py:279 | stack ['$phi32.0']\n", - "2023-05-15 11:07:26,317 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=30, stack=('$phi32.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:26,318 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=30 nstack_initial=1)])\n", - "2023-05-15 11:07:26,318 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:26,319 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=30 nstack_initial=1): {'$phi30.0'},\n", - " State(pc_initial=32 nstack_initial=2): {'$phi32.1'},\n", - " State(pc_initial=40 nstack_initial=0): set()})\n", - "2023-05-15 11:07:26,319 | DEBUG | byteflow.py:192 | defmap: {'$phi30.0': State(pc_initial=0 nstack_initial=0),\n", - " '$phi32.1': State(pc_initial=30 nstack_initial=1)}\n", - "2023-05-15 11:07:26,320 | DEBUG | byteflow.py:193 | phismap: defaultdict(,\n", - " {'$phi30.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi32.0', State(pc_initial=32 nstack_initial=2))},\n", - " '$phi32.0': {('$phi30.0', State(pc_initial=30 nstack_initial=1))},\n", - " '$phi32.1': {('$30for_iter.2',\n", - " State(pc_initial=30 nstack_initial=1))}})\n", - "2023-05-15 11:07:26,321 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi30.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi30.0', State(pc_initial=30 nstack_initial=1))},\n", - " '$phi32.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.1': {('$30for_iter.2',\n", - " State(pc_initial=30 nstack_initial=1))}})\n", - "2023-05-15 11:07:26,321 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi30.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.1': {('$30for_iter.2',\n", - " State(pc_initial=30 nstack_initial=1))}})\n", - "2023-05-15 11:07:26,322 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi30.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.1': {('$30for_iter.2',\n", - " State(pc_initial=30 nstack_initial=1))}})\n", - "2023-05-15 11:07:26,323 | DEBUG | byteflow.py:223 | keep phismap: {'$phi30.0': {('$28get_iter.13', State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.1': {('$30for_iter.2', State(pc_initial=30 nstack_initial=1))}}\n", - "2023-05-15 11:07:26,323 | DEBUG | byteflow.py:229 | new_out: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): {'$phi30.0': '$28get_iter.13'},\n", - " State(pc_initial=30 nstack_initial=1): {'$phi32.1': '$30for_iter.2'}})\n", - "2023-05-15 11:07:26,324 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:26,324 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$sched4.1'}), (6, {'res': '$const6.2'}), (8, {'index': '$const6.2', 'target': '$sched4.1', 'res': '$8binary_subscr.3'}), (10, {'res': '$sched10.4'}), (12, {'res': '$const12.5'}), (14, {'index': '$const12.5', 'target': '$sched10.4', 'res': '$14binary_subscr.6'}), (16, {'res': '$16load_global.7'}), (18, {'item': '$16load_global.7', 'res': '$18load_method.8'}), (20, {'res': '$const20.9'}), (22, {'func': '$18load_method.8', 'args': ['$const20.9'], 'res': '$22call_method.10'}), (24, {'lhs': '$14binary_subscr.6', 'rhs': '$22call_method.10', 'res': '$24binary_add.11'}), (26, {'func': '$2load_global.0', 'args': ['$8binary_subscr.3', '$24binary_add.11'], 'res': '$26call_function.12'}), (28, {'value': '$26call_function.12', 'res': '$28get_iter.13'})), outgoing_phis={'$phi30.0': '$28get_iter.13'}, blockstack=(), active_try_block=None, outgoing_edgepushed={30: ('$28get_iter.13',)})\n", - "2023-05-15 11:07:26,325 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=30 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((30, {'iterator': '$phi30.0', 'pair': '$30for_iter.1', 'indval': '$30for_iter.2', 'pred': '$30for_iter.3'}),), outgoing_phis={'$phi32.1': '$30for_iter.2'}, blockstack=(), active_try_block=None, outgoing_edgepushed={40: (), 32: ('$phi30.0', '$30for_iter.2')})\n", - "2023-05-15 11:07:26,325 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=32 nstack_initial=2):\n", - "AdaptBlockInfo(insts=((32, {'value': '$phi32.1'}), (34, {'res': '$const34.2'}), (36, {'value': '$const34.2'}), (38, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={30: ('$phi32.0',)})\n", - "2023-05-15 11:07:26,328 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=40 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((40, {'res': '$const40.0'}), (42, {'retval': '$const40.0', 'castval': '$42return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:26,330 | DEBUG | interpreter.py:1342 | label 0:\n", - " sched = arg(0, name=sched) ['sched']\n", - " edge__u = arg(1, name=edge__u) ['edge__u']\n", - " edge__v = arg(2, name=edge__v) ['edge__v']\n", - " max__len = arg(3, name=max__len) ['max__len']\n", - " edges = arg(4, name=edges) ['edges']\n", - " $2load_global.0 = global(range: ) ['$2load_global.0']\n", - " $const6.2 = const(int, 0) ['$const6.2']\n", - " $8binary_subscr.3 = getitem(value=sched, index=$const6.2, fn=) ['$8binary_subscr.3', '$const6.2', 'sched']\n", - " $const12.5 = const(int, 1) ['$const12.5']\n", - " $14binary_subscr.6 = getitem(value=sched, index=$const12.5, fn=) ['$14binary_subscr.6', '$const12.5', 'sched']\n", - " $16load_global.7 = global(np: ) ['$16load_global.7']\n", - " $18load_method.8 = getattr(value=$16load_global.7, attr=uint8) ['$16load_global.7', '$18load_method.8']\n", - " $const20.9 = const(int, 1) ['$const20.9']\n", - " $22call_method.10 = call $18load_method.8($const20.9, func=$18load_method.8, args=[Var($const20.9, :2)], kws=(), vararg=None, varkwarg=None, target=None) ['$18load_method.8', '$22call_method.10', '$const20.9']\n", - " $24binary_add.11 = $14binary_subscr.6 + $22call_method.10 ['$14binary_subscr.6', '$22call_method.10', '$24binary_add.11']\n", - " $26call_function.12 = call $2load_global.0($8binary_subscr.3, $24binary_add.11, func=$2load_global.0, args=[Var($8binary_subscr.3, :2), Var($24binary_add.11, :2)], kws=(), vararg=None, varkwarg=None, target=None) ['$24binary_add.11', '$26call_function.12', '$2load_global.0', '$8binary_subscr.3']\n", - " $28get_iter.13 = getiter(value=$26call_function.12) ['$26call_function.12', '$28get_iter.13']\n", - " $phi30.0 = $28get_iter.13 ['$28get_iter.13', '$phi30.0']\n", - " jump 30 []\n", - "label 30:\n", - " $30for_iter.1 = iternext(value=$phi30.0) ['$30for_iter.1', '$phi30.0']\n", - " $30for_iter.2 = pair_first(value=$30for_iter.1) ['$30for_iter.1', '$30for_iter.2']\n", - " $30for_iter.3 = pair_second(value=$30for_iter.1) ['$30for_iter.1', '$30for_iter.3']\n", - " $phi32.1 = $30for_iter.2 ['$30for_iter.2', '$phi32.1']\n", - " branch $30for_iter.3, 32, 40 ['$30for_iter.3']\n", - "label 32:\n", - " parfor__index_5 = $phi32.1 ['$phi32.1', 'parfor__index_5']\n", - " __sentinel__0 = const(int, 0) ['__sentinel__0']\n", - " jump 30 []\n", - "label 40:\n", - " $const40.0 = const(NoneType, None) ['$const40.0']\n", - " $42return_value.1 = cast(value=$const40.0) ['$42return_value.1', '$const40.0']\n", - " return $42return_value.1 ['$42return_value.1']\n", - "\n", - "2023-05-15 11:07:26,342 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:26,343 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,343 | DEBUG | ssa.py:193 | on stmt: sched.20 = arg(0, name=sched)\n", - "2023-05-15 11:07:26,343 | DEBUG | ssa.py:193 | on stmt: edge__u = arg(1, name=edge__u)\n", - "2023-05-15 11:07:26,344 | DEBUG | ssa.py:193 | on stmt: edge__v = arg(2, name=edge__v)\n", - "2023-05-15 11:07:26,345 | DEBUG | ssa.py:193 | on stmt: max__len = arg(3, name=max__len)\n", - "2023-05-15 11:07:26,345 | DEBUG | ssa.py:193 | on stmt: edges = arg(4, name=edges)\n", - "2023-05-15 11:07:26,346 | DEBUG | ssa.py:193 | on stmt: $2load_global.0.21 = global(range: )\n", - "2023-05-15 11:07:26,346 | DEBUG | ssa.py:193 | on stmt: $const6.2.22 = const(int, 0)\n", - "2023-05-15 11:07:26,347 | DEBUG | ssa.py:193 | on stmt: $8binary_subscr.3.23 = getitem(value=sched.20, index=$const6.2.22, fn=)\n", - "2023-05-15 11:07:26,347 | DEBUG | ssa.py:193 | on stmt: $const12.5.24 = const(int, 1)\n", - "2023-05-15 11:07:26,347 | DEBUG | ssa.py:193 | on stmt: $14binary_subscr.6.25 = getitem(value=sched.20, index=$const12.5.24, fn=)\n", - "2023-05-15 11:07:26,348 | DEBUG | ssa.py:193 | on stmt: $16load_global.7.26 = global(np: )\n", - "2023-05-15 11:07:26,348 | DEBUG | ssa.py:193 | on stmt: $18load_method.8.27 = getattr(value=$16load_global.7.26, attr=uint8)\n", - "2023-05-15 11:07:26,350 | DEBUG | ssa.py:193 | on stmt: $const20.9.28 = const(int, 1)\n", - "2023-05-15 11:07:26,350 | DEBUG | ssa.py:193 | on stmt: $22call_method.10.29 = call $18load_method.8.27($const20.9.28, func=$18load_method.8.27, args=[Var($const20.9.28, :2)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,350 | DEBUG | ssa.py:193 | on stmt: $24binary_add.11.30 = $14binary_subscr.6.25 + $22call_method.10.29\n", - "2023-05-15 11:07:26,351 | DEBUG | ssa.py:193 | on stmt: $26call_function.12.31 = call $2load_global.0.21($8binary_subscr.3.23, $24binary_add.11.30, func=$2load_global.0.21, args=[Var($8binary_subscr.3.23, :2), Var($24binary_add.11.30, :2)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,351 | DEBUG | ssa.py:193 | on stmt: $28get_iter.13.32 = getiter(value=$26call_function.12.31)\n", - "2023-05-15 11:07:26,352 | DEBUG | ssa.py:193 | on stmt: $phi30.0.33 = $28get_iter.13.32\n", - "2023-05-15 11:07:26,352 | DEBUG | ssa.py:193 | on stmt: $34load_global.2 = global(__edge_to_1d: CPUDispatcher())\n", - "2023-05-15 11:07:26,353 | DEBUG | ssa.py:193 | on stmt: jump 30\n", - "2023-05-15 11:07:26,353 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 30\n", - "2023-05-15 11:07:26,353 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,354 | DEBUG | ssa.py:193 | on stmt: $30for_iter.1.34 = iternext(value=$phi30.0.33)\n", - "2023-05-15 11:07:26,354 | DEBUG | ssa.py:193 | on stmt: $30for_iter.2.35 = pair_first(value=$30for_iter.1.34)\n", - "2023-05-15 11:07:26,355 | DEBUG | ssa.py:193 | on stmt: $30for_iter.3.36 = pair_second(value=$30for_iter.1.34)\n", - "2023-05-15 11:07:26,355 | DEBUG | ssa.py:193 | on stmt: $phi32.1.37 = $30for_iter.2.35\n", - "2023-05-15 11:07:26,355 | DEBUG | ssa.py:193 | on stmt: branch $30for_iter.3.36, 32, 74\n", - "2023-05-15 11:07:26,356 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 32\n", - "2023-05-15 11:07:26,356 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,357 | DEBUG | ssa.py:193 | on stmt: parfor__index_5 = $phi32.1.37\n", - "2023-05-15 11:07:26,357 | DEBUG | ssa.py:193 | on stmt: jump 40\n", - "2023-05-15 11:07:26,357 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 74\n", - "2023-05-15 11:07:26,358 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,358 | DEBUG | ssa.py:193 | on stmt: $const40.0.38 = const(NoneType, None)\n", - "2023-05-15 11:07:26,358 | DEBUG | ssa.py:193 | on stmt: $42return_value.1.39 = cast(value=$const40.0.38)\n", - "2023-05-15 11:07:26,359 | DEBUG | ssa.py:193 | on stmt: return $42return_value.1.39\n", - "2023-05-15 11:07:26,359 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 40\n", - "2023-05-15 11:07:26,359 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,362 | DEBUG | ssa.py:193 | on stmt: $40binary_subscr.5 = getitem(value=edge__u, index=parfor__index_5, fn=)\n", - "2023-05-15 11:07:26,362 | DEBUG | ssa.py:193 | on stmt: $46binary_subscr.8 = getitem(value=edge__v, index=parfor__index_5, fn=)\n", - "2023-05-15 11:07:26,363 | DEBUG | ssa.py:193 | on stmt: $50call_function.10 = call $34load_global.2($40binary_subscr.5, $46binary_subscr.8, max__len, func=$34load_global.2, args=[Var($40binary_subscr.5, utils.py:288), Var($46binary_subscr.8, utils.py:288), Var(max__len, utils.py:286)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,363 | DEBUG | ssa.py:193 | on stmt: edges[parfor__index_5] = $50call_function.10\n", - "2023-05-15 11:07:26,364 | DEBUG | ssa.py:193 | on stmt: jump 73\n", - "2023-05-15 11:07:26,364 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 73\n", - "2023-05-15 11:07:26,365 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,366 | DEBUG | ssa.py:193 | on stmt: jump 30\n", - "2023-05-15 11:07:26,367 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$14binary_subscr.6.25': [],\n", - " '$16load_global.7.26': [],\n", - " '$18load_method.8.27': [],\n", - " '$22call_method.10.29': [],\n", - " '$24binary_add.11.30': [],\n", - " '$26call_function.12.31': [],\n", - " '$28get_iter.13.32': [],\n", - " '$2load_global.0.21': [],\n", - " '$30for_iter.1.34': [],\n", - " '$30for_iter.2.35': [],\n", - " '$30for_iter.3.36': [],\n", - " '$34load_global.2': [],\n", - " '$40binary_subscr.5': [],\n", - " '$42return_value.1.39': [],\n", - " '$46binary_subscr.8': [],\n", - " '$50call_function.10': [],\n", - " '$8binary_subscr.3.23': [],\n", - " '$const12.5.24': [],\n", - " '$const20.9.28': [],\n", - " '$const40.0.38': [],\n", - " '$const6.2.22': [],\n", - " '$phi30.0.33': [],\n", - " '$phi32.1.37': [],\n", - " 'edge__u': [],\n", - " 'edge__v': [],\n", - " 'edges': [],\n", - " 'max__len': [],\n", - " 'parfor__index_5': [],\n", - " 'sched.20': []})\n", - "2023-05-15 11:07:26,368 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:26,707 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=467)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=467)\n", - " 4\tLOAD_METHOD(arg=1, lineno=467)\n", - " 6\tLOAD_FAST(arg=0, lineno=467)\n", - " 8\tCALL_METHOD(arg=1, lineno=467)\n", - " 10\tSTORE_FAST(arg=1, lineno=467)\n", - " 12\tLOAD_FAST(arg=0, lineno=470)\n", - " 14\tLOAD_FAST(arg=1, lineno=470)\n", - " 16\tLOAD_CONST(arg=1, lineno=470)\n", - " 18\tBINARY_SUBSCR(arg=None, lineno=470)\n", - " 20\tBINARY_SUBSCR(arg=None, lineno=470)\n", - " 22\tLOAD_GLOBAL(arg=0, lineno=470)\n", - " 24\tLOAD_ATTR(arg=2, lineno=470)\n", - " 26\tCOMPARE_OP(arg=2, lineno=470)\n", - " 28\tPOP_JUMP_IF_FALSE(arg=31, lineno=470)\n", - "> 30\tLOAD_FAST(arg=1, lineno=471)\n", - " 32\tLOAD_CONST(arg=2, lineno=471)\n", - " 34\tLOAD_CONST(arg=1, lineno=471)\n", - " 36\tBUILD_SLICE(arg=2, lineno=471)\n", - " 38\tBINARY_SUBSCR(arg=None, lineno=471)\n", - " 40\tSTORE_FAST(arg=1, lineno=471)\n", - " 42\tLOAD_FAST(arg=0, lineno=470)\n", - " 44\tLOAD_FAST(arg=1, lineno=470)\n", - " 46\tLOAD_CONST(arg=1, lineno=470)\n", - " 48\tBINARY_SUBSCR(arg=None, lineno=470)\n", - " 50\tBINARY_SUBSCR(arg=None, lineno=470)\n", - " 52\tLOAD_GLOBAL(arg=0, lineno=470)\n", - " 54\tLOAD_ATTR(arg=2, lineno=470)\n", - " 56\tCOMPARE_OP(arg=2, lineno=470)\n", - " 58\tPOP_JUMP_IF_TRUE(arg=16, lineno=470)\n", - "> 60\tLOAD_FAST(arg=0, lineno=473)\n", - " 62\tLOAD_FAST(arg=1, lineno=473)\n", - " 64\tLOAD_CONST(arg=3, lineno=473)\n", - " 66\tBINARY_SUBSCR(arg=None, lineno=473)\n", - " 68\tBINARY_SUBSCR(arg=None, lineno=473)\n", - " 70\tLOAD_CONST(arg=3, lineno=473)\n", - " 72\tCOMPARE_OP(arg=2, lineno=473)\n", - " 74\tPOP_JUMP_IF_FALSE(arg=53, lineno=473)\n", - "> 76\tLOAD_FAST(arg=1, lineno=474)\n", - " 78\tLOAD_CONST(arg=4, lineno=474)\n", - " 80\tLOAD_CONST(arg=2, lineno=474)\n", - " 82\tBUILD_SLICE(arg=2, lineno=474)\n", - " 84\tBINARY_SUBSCR(arg=None, lineno=474)\n", - " 86\tSTORE_FAST(arg=1, lineno=474)\n", - " 88\tLOAD_FAST(arg=0, lineno=473)\n", - " 90\tLOAD_FAST(arg=1, lineno=473)\n", - " 92\tLOAD_CONST(arg=3, lineno=473)\n", - " 94\tBINARY_SUBSCR(arg=None, lineno=473)\n", - " 96\tBINARY_SUBSCR(arg=None, lineno=473)\n", - " 98\tLOAD_CONST(arg=3, lineno=473)\n", - " 100\tCOMPARE_OP(arg=2, lineno=473)\n", - " 102\tPOP_JUMP_IF_TRUE(arg=39, lineno=473)\n", - "> 104\tLOAD_FAST(arg=1, lineno=475)\n", - " 106\tLOAD_METHOD(arg=3, lineno=475)\n", - " 108\tLOAD_GLOBAL(arg=0, lineno=475)\n", - " 110\tLOAD_ATTR(arg=4, lineno=475)\n", - " 112\tCALL_METHOD(arg=1, lineno=475)\n", - " 114\tRETURN_VALUE(arg=None, lineno=475)\n", - "2023-05-15 11:07:26,707 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:26,708 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:26,708 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=467)\n", - "2023-05-15 11:07:26,709 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,709 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=467)\n", - "2023-05-15 11:07:26,710 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,711 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_METHOD(arg=1, lineno=467)\n", - "2023-05-15 11:07:26,711 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:26,711 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=0, lineno=467)\n", - "2023-05-15 11:07:26,712 | DEBUG | byteflow.py:279 | stack ['$4load_method.1']\n", - "2023-05-15 11:07:26,712 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=CALL_METHOD(arg=1, lineno=467)\n", - "2023-05-15 11:07:26,713 | DEBUG | byteflow.py:279 | stack ['$4load_method.1', '$dist_row6.2']\n", - "2023-05-15 11:07:26,713 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=STORE_FAST(arg=1, lineno=467)\n", - "2023-05-15 11:07:26,714 | DEBUG | byteflow.py:279 | stack ['$8call_method.3']\n", - "2023-05-15 11:07:26,715 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=LOAD_FAST(arg=0, lineno=470)\n", - "2023-05-15 11:07:26,715 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,716 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=LOAD_FAST(arg=1, lineno=470)\n", - "2023-05-15 11:07:26,716 | DEBUG | byteflow.py:279 | stack ['$dist_row12.4']\n", - "2023-05-15 11:07:26,717 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=LOAD_CONST(arg=1, lineno=470)\n", - "2023-05-15 11:07:26,717 | DEBUG | byteflow.py:279 | stack ['$dist_row12.4', '$dist_order14.5']\n", - "2023-05-15 11:07:26,718 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=BINARY_SUBSCR(arg=None, lineno=470)\n", - "2023-05-15 11:07:26,719 | DEBUG | byteflow.py:279 | stack ['$dist_row12.4', '$dist_order14.5', '$const16.6']\n", - "2023-05-15 11:07:26,720 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=BINARY_SUBSCR(arg=None, lineno=470)\n", - "2023-05-15 11:07:26,722 | DEBUG | byteflow.py:279 | stack ['$dist_row12.4', '$18binary_subscr.7']\n", - "2023-05-15 11:07:26,723 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=LOAD_GLOBAL(arg=0, lineno=470)\n", - "2023-05-15 11:07:26,723 | DEBUG | byteflow.py:279 | stack ['$20binary_subscr.8']\n", - "2023-05-15 11:07:26,724 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=LOAD_ATTR(arg=2, lineno=470)\n", - "2023-05-15 11:07:26,724 | DEBUG | byteflow.py:279 | stack ['$20binary_subscr.8', '$22load_global.9']\n", - "2023-05-15 11:07:26,725 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=COMPARE_OP(arg=2, lineno=470)\n", - "2023-05-15 11:07:26,725 | DEBUG | byteflow.py:279 | stack ['$20binary_subscr.8', '$24load_attr.10']\n", - "2023-05-15 11:07:26,726 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=POP_JUMP_IF_FALSE(arg=31, lineno=470)\n", - "2023-05-15 11:07:26,726 | DEBUG | byteflow.py:279 | stack ['$26compare_op.11']\n", - "2023-05-15 11:07:26,727 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=30, stack=(), blockstack=(), npush=0), Edge(pc=60, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:26,727 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=30 nstack_initial=0), State(pc_initial=60 nstack_initial=0)])\n", - "2023-05-15 11:07:26,727 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:26,729 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=LOAD_FAST(arg=1, lineno=471)\n", - "2023-05-15 11:07:26,730 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,730 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=LOAD_CONST(arg=2, lineno=471)\n", - "2023-05-15 11:07:26,731 | DEBUG | byteflow.py:279 | stack ['$dist_order30.0']\n", - "2023-05-15 11:07:26,731 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=LOAD_CONST(arg=1, lineno=471)\n", - "2023-05-15 11:07:26,732 | DEBUG | byteflow.py:279 | stack ['$dist_order30.0', '$const32.1']\n", - "2023-05-15 11:07:26,732 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=BUILD_SLICE(arg=2, lineno=471)\n", - "2023-05-15 11:07:26,732 | DEBUG | byteflow.py:279 | stack ['$dist_order30.0', '$const32.1', '$const34.2']\n", - "2023-05-15 11:07:26,734 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=BINARY_SUBSCR(arg=None, lineno=471)\n", - "2023-05-15 11:07:26,734 | DEBUG | byteflow.py:279 | stack ['$dist_order30.0', '$36build_slice.4']\n", - "2023-05-15 11:07:26,735 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=STORE_FAST(arg=1, lineno=471)\n", - "2023-05-15 11:07:26,735 | DEBUG | byteflow.py:279 | stack ['$38binary_subscr.5']\n", - "2023-05-15 11:07:26,735 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=LOAD_FAST(arg=0, lineno=470)\n", - "2023-05-15 11:07:26,736 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,736 | DEBUG | byteflow.py:278 | dispatch pc=44, inst=LOAD_FAST(arg=1, lineno=470)\n", - "2023-05-15 11:07:26,737 | DEBUG | byteflow.py:279 | stack ['$dist_row42.6']\n", - "2023-05-15 11:07:26,737 | DEBUG | byteflow.py:278 | dispatch pc=46, inst=LOAD_CONST(arg=1, lineno=470)\n", - "2023-05-15 11:07:26,737 | DEBUG | byteflow.py:279 | stack ['$dist_row42.6', '$dist_order44.7']\n", - "2023-05-15 11:07:26,738 | DEBUG | byteflow.py:278 | dispatch pc=48, inst=BINARY_SUBSCR(arg=None, lineno=470)\n", - "2023-05-15 11:07:26,738 | DEBUG | byteflow.py:279 | stack ['$dist_row42.6', '$dist_order44.7', '$const46.8']\n", - "2023-05-15 11:07:26,739 | DEBUG | byteflow.py:278 | dispatch pc=50, inst=BINARY_SUBSCR(arg=None, lineno=470)\n", - "2023-05-15 11:07:26,739 | DEBUG | byteflow.py:279 | stack ['$dist_row42.6', '$48binary_subscr.9']\n", - "2023-05-15 11:07:26,740 | DEBUG | byteflow.py:278 | dispatch pc=52, inst=LOAD_GLOBAL(arg=0, lineno=470)\n", - "2023-05-15 11:07:26,740 | DEBUG | byteflow.py:279 | stack ['$50binary_subscr.10']\n", - "2023-05-15 11:07:26,740 | DEBUG | byteflow.py:278 | dispatch pc=54, inst=LOAD_ATTR(arg=2, lineno=470)\n", - "2023-05-15 11:07:26,741 | DEBUG | byteflow.py:279 | stack ['$50binary_subscr.10', '$52load_global.11']\n", - "2023-05-15 11:07:26,741 | DEBUG | byteflow.py:278 | dispatch pc=56, inst=COMPARE_OP(arg=2, lineno=470)\n", - "2023-05-15 11:07:26,742 | DEBUG | byteflow.py:279 | stack ['$50binary_subscr.10', '$54load_attr.12']\n", - "2023-05-15 11:07:26,742 | DEBUG | byteflow.py:278 | dispatch pc=58, inst=POP_JUMP_IF_TRUE(arg=16, lineno=470)\n", - "2023-05-15 11:07:26,744 | DEBUG | byteflow.py:279 | stack ['$56compare_op.13']\n", - "2023-05-15 11:07:26,744 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=60, stack=(), blockstack=(), npush=0), Edge(pc=30, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:26,745 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=60 nstack_initial=0), State(pc_initial=60 nstack_initial=0), State(pc_initial=30 nstack_initial=0)])\n", - "2023-05-15 11:07:26,745 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:26,746 | DEBUG | byteflow.py:278 | dispatch pc=60, inst=LOAD_FAST(arg=0, lineno=473)\n", - "2023-05-15 11:07:26,746 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,747 | DEBUG | byteflow.py:278 | dispatch pc=62, inst=LOAD_FAST(arg=1, lineno=473)\n", - "2023-05-15 11:07:26,747 | DEBUG | byteflow.py:279 | stack ['$dist_row60.0']\n", - "2023-05-15 11:07:26,748 | DEBUG | byteflow.py:278 | dispatch pc=64, inst=LOAD_CONST(arg=3, lineno=473)\n", - "2023-05-15 11:07:26,748 | DEBUG | byteflow.py:279 | stack ['$dist_row60.0', '$dist_order62.1']\n", - "2023-05-15 11:07:26,749 | DEBUG | byteflow.py:278 | dispatch pc=66, inst=BINARY_SUBSCR(arg=None, lineno=473)\n", - "2023-05-15 11:07:26,749 | DEBUG | byteflow.py:279 | stack ['$dist_row60.0', '$dist_order62.1', '$const64.2']\n", - "2023-05-15 11:07:26,749 | DEBUG | byteflow.py:278 | dispatch pc=68, inst=BINARY_SUBSCR(arg=None, lineno=473)\n", - "2023-05-15 11:07:26,750 | DEBUG | byteflow.py:279 | stack ['$dist_row60.0', '$66binary_subscr.3']\n", - "2023-05-15 11:07:26,750 | DEBUG | byteflow.py:278 | dispatch pc=70, inst=LOAD_CONST(arg=3, lineno=473)\n", - "2023-05-15 11:07:26,750 | DEBUG | byteflow.py:279 | stack ['$68binary_subscr.4']\n", - "2023-05-15 11:07:26,751 | DEBUG | byteflow.py:278 | dispatch pc=72, inst=COMPARE_OP(arg=2, lineno=473)\n", - "2023-05-15 11:07:26,751 | DEBUG | byteflow.py:279 | stack ['$68binary_subscr.4', '$const70.5']\n", - "2023-05-15 11:07:26,753 | DEBUG | byteflow.py:278 | dispatch pc=74, inst=POP_JUMP_IF_FALSE(arg=53, lineno=473)\n", - "2023-05-15 11:07:26,753 | DEBUG | byteflow.py:279 | stack ['$72compare_op.6']\n", - "2023-05-15 11:07:26,753 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=76, stack=(), blockstack=(), npush=0), Edge(pc=104, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:26,754 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=60 nstack_initial=0), State(pc_initial=30 nstack_initial=0), State(pc_initial=76 nstack_initial=0), State(pc_initial=104 nstack_initial=0)])\n", - "2023-05-15 11:07:26,754 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=30 nstack_initial=0), State(pc_initial=76 nstack_initial=0), State(pc_initial=104 nstack_initial=0)])\n", - "2023-05-15 11:07:26,755 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=76 nstack_initial=0), State(pc_initial=104 nstack_initial=0)])\n", - "2023-05-15 11:07:26,755 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:26,755 | DEBUG | byteflow.py:278 | dispatch pc=76, inst=LOAD_FAST(arg=1, lineno=474)\n", - "2023-05-15 11:07:26,756 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,756 | DEBUG | byteflow.py:278 | dispatch pc=78, inst=LOAD_CONST(arg=4, lineno=474)\n", - "2023-05-15 11:07:26,756 | DEBUG | byteflow.py:279 | stack ['$dist_order76.0']\n", - "2023-05-15 11:07:26,757 | DEBUG | byteflow.py:278 | dispatch pc=80, inst=LOAD_CONST(arg=2, lineno=474)\n", - "2023-05-15 11:07:26,757 | DEBUG | byteflow.py:279 | stack ['$dist_order76.0', '$const78.1']\n", - "2023-05-15 11:07:26,758 | DEBUG | byteflow.py:278 | dispatch pc=82, inst=BUILD_SLICE(arg=2, lineno=474)\n", - "2023-05-15 11:07:26,758 | DEBUG | byteflow.py:279 | stack ['$dist_order76.0', '$const78.1', '$const80.2']\n", - "2023-05-15 11:07:26,758 | DEBUG | byteflow.py:278 | dispatch pc=84, inst=BINARY_SUBSCR(arg=None, lineno=474)\n", - "2023-05-15 11:07:26,759 | DEBUG | byteflow.py:279 | stack ['$dist_order76.0', '$82build_slice.4']\n", - "2023-05-15 11:07:26,759 | DEBUG | byteflow.py:278 | dispatch pc=86, inst=STORE_FAST(arg=1, lineno=474)\n", - "2023-05-15 11:07:26,760 | DEBUG | byteflow.py:279 | stack ['$84binary_subscr.5']\n", - "2023-05-15 11:07:26,760 | DEBUG | byteflow.py:278 | dispatch pc=88, inst=LOAD_FAST(arg=0, lineno=473)\n", - "2023-05-15 11:07:26,761 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,761 | DEBUG | byteflow.py:278 | dispatch pc=90, inst=LOAD_FAST(arg=1, lineno=473)\n", - "2023-05-15 11:07:26,762 | DEBUG | byteflow.py:279 | stack ['$dist_row88.6']\n", - "2023-05-15 11:07:26,763 | DEBUG | byteflow.py:278 | dispatch pc=92, inst=LOAD_CONST(arg=3, lineno=473)\n", - "2023-05-15 11:07:26,763 | DEBUG | byteflow.py:279 | stack ['$dist_row88.6', '$dist_order90.7']\n", - "2023-05-15 11:07:26,764 | DEBUG | byteflow.py:278 | dispatch pc=94, inst=BINARY_SUBSCR(arg=None, lineno=473)\n", - "2023-05-15 11:07:26,764 | DEBUG | byteflow.py:279 | stack ['$dist_row88.6', '$dist_order90.7', '$const92.8']\n", - "2023-05-15 11:07:26,765 | DEBUG | byteflow.py:278 | dispatch pc=96, inst=BINARY_SUBSCR(arg=None, lineno=473)\n", - "2023-05-15 11:07:26,765 | DEBUG | byteflow.py:279 | stack ['$dist_row88.6', '$94binary_subscr.9']\n", - "2023-05-15 11:07:26,766 | DEBUG | byteflow.py:278 | dispatch pc=98, inst=LOAD_CONST(arg=3, lineno=473)\n", - "2023-05-15 11:07:26,766 | DEBUG | byteflow.py:279 | stack ['$96binary_subscr.10']\n", - "2023-05-15 11:07:26,767 | DEBUG | byteflow.py:278 | dispatch pc=100, inst=COMPARE_OP(arg=2, lineno=473)\n", - "2023-05-15 11:07:26,768 | DEBUG | byteflow.py:279 | stack ['$96binary_subscr.10', '$const98.11']\n", - "2023-05-15 11:07:26,768 | DEBUG | byteflow.py:278 | dispatch pc=102, inst=POP_JUMP_IF_TRUE(arg=39, lineno=473)\n", - "2023-05-15 11:07:26,769 | DEBUG | byteflow.py:279 | stack ['$100compare_op.12']\n", - "2023-05-15 11:07:26,769 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=104, stack=(), blockstack=(), npush=0), Edge(pc=76, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:26,770 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=104 nstack_initial=0), State(pc_initial=104 nstack_initial=0), State(pc_initial=76 nstack_initial=0)])\n", - "2023-05-15 11:07:26,770 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:26,771 | DEBUG | byteflow.py:278 | dispatch pc=104, inst=LOAD_FAST(arg=1, lineno=475)\n", - "2023-05-15 11:07:26,773 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,773 | DEBUG | byteflow.py:278 | dispatch pc=106, inst=LOAD_METHOD(arg=3, lineno=475)\n", - "2023-05-15 11:07:26,773 | DEBUG | byteflow.py:279 | stack ['$dist_order104.0']\n", - "2023-05-15 11:07:26,774 | DEBUG | byteflow.py:278 | dispatch pc=108, inst=LOAD_GLOBAL(arg=0, lineno=475)\n", - "2023-05-15 11:07:26,774 | DEBUG | byteflow.py:279 | stack ['$106load_method.1']\n", - "2023-05-15 11:07:26,775 | DEBUG | byteflow.py:278 | dispatch pc=110, inst=LOAD_ATTR(arg=4, lineno=475)\n", - "2023-05-15 11:07:26,775 | DEBUG | byteflow.py:279 | stack ['$106load_method.1', '$108load_global.2']\n", - "2023-05-15 11:07:26,776 | DEBUG | byteflow.py:278 | dispatch pc=112, inst=CALL_METHOD(arg=1, lineno=475)\n", - "2023-05-15 11:07:26,776 | DEBUG | byteflow.py:279 | stack ['$106load_method.1', '$110load_attr.3']\n", - "2023-05-15 11:07:26,777 | DEBUG | byteflow.py:278 | dispatch pc=114, inst=RETURN_VALUE(arg=None, lineno=475)\n", - "2023-05-15 11:07:26,777 | DEBUG | byteflow.py:279 | stack ['$112call_method.4']\n", - "2023-05-15 11:07:26,777 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:26,778 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=104 nstack_initial=0), State(pc_initial=76 nstack_initial=0)])\n", - "2023-05-15 11:07:26,779 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=76 nstack_initial=0)])\n", - "2023-05-15 11:07:26,780 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:26,780 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=30 nstack_initial=0): set(),\n", - " State(pc_initial=60 nstack_initial=0): set(),\n", - " State(pc_initial=76 nstack_initial=0): set(),\n", - " State(pc_initial=104 nstack_initial=0): set()})\n", - "2023-05-15 11:07:26,781 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:26,781 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:26,782 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:26,782 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:26,784 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:26,785 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:26,785 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'item': '$2load_global.0', 'res': '$4load_method.1'}), (6, {'res': '$dist_row6.2'}), (8, {'func': '$4load_method.1', 'args': ['$dist_row6.2'], 'res': '$8call_method.3'}), (10, {'value': '$8call_method.3'}), (12, {'res': '$dist_row12.4'}), (14, {'res': '$dist_order14.5'}), (16, {'res': '$const16.6'}), (18, {'index': '$const16.6', 'target': '$dist_order14.5', 'res': '$18binary_subscr.7'}), (20, {'index': '$18binary_subscr.7', 'target': '$dist_row12.4', 'res': '$20binary_subscr.8'}), (22, {'res': '$22load_global.9'}), (24, {'item': '$22load_global.9', 'res': '$24load_attr.10'}), (26, {'lhs': '$20binary_subscr.8', 'rhs': '$24load_attr.10', 'res': '$26compare_op.11'}), (28, {'pred': '$26compare_op.11'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={30: (), 60: ()})\n", - "2023-05-15 11:07:26,786 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=30 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((30, {'res': '$dist_order30.0'}), (32, {'res': '$const32.1'}), (34, {'res': '$const34.2'}), (36, {'start': '$const32.1', 'stop': '$const34.2', 'step': None, 'res': '$36build_slice.4', 'slicevar': '$36build_slice.3'}), (38, {'index': '$36build_slice.4', 'target': '$dist_order30.0', 'res': '$38binary_subscr.5'}), (40, {'value': '$38binary_subscr.5'}), (42, {'res': '$dist_row42.6'}), (44, {'res': '$dist_order44.7'}), (46, {'res': '$const46.8'}), (48, {'index': '$const46.8', 'target': '$dist_order44.7', 'res': '$48binary_subscr.9'}), (50, {'index': '$48binary_subscr.9', 'target': '$dist_row42.6', 'res': '$50binary_subscr.10'}), (52, {'res': '$52load_global.11'}), (54, {'item': '$52load_global.11', 'res': '$54load_attr.12'}), (56, {'lhs': '$50binary_subscr.10', 'rhs': '$54load_attr.12', 'res': '$56compare_op.13'}), (58, {'pred': '$56compare_op.13'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={60: (), 30: ()})\n", - "2023-05-15 11:07:26,787 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=60 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((60, {'res': '$dist_row60.0'}), (62, {'res': '$dist_order62.1'}), (64, {'res': '$const64.2'}), (66, {'index': '$const64.2', 'target': '$dist_order62.1', 'res': '$66binary_subscr.3'}), (68, {'index': '$66binary_subscr.3', 'target': '$dist_row60.0', 'res': '$68binary_subscr.4'}), (70, {'res': '$const70.5'}), (72, {'lhs': '$68binary_subscr.4', 'rhs': '$const70.5', 'res': '$72compare_op.6'}), (74, {'pred': '$72compare_op.6'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={76: (), 104: ()})\n", - "2023-05-15 11:07:26,787 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=76 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((76, {'res': '$dist_order76.0'}), (78, {'res': '$const78.1'}), (80, {'res': '$const80.2'}), (82, {'start': '$const78.1', 'stop': '$const80.2', 'step': None, 'res': '$82build_slice.4', 'slicevar': '$82build_slice.3'}), (84, {'index': '$82build_slice.4', 'target': '$dist_order76.0', 'res': '$84binary_subscr.5'}), (86, {'value': '$84binary_subscr.5'}), (88, {'res': '$dist_row88.6'}), (90, {'res': '$dist_order90.7'}), (92, {'res': '$const92.8'}), (94, {'index': '$const92.8', 'target': '$dist_order90.7', 'res': '$94binary_subscr.9'}), (96, {'index': '$94binary_subscr.9', 'target': '$dist_row88.6', 'res': '$96binary_subscr.10'}), (98, {'res': '$const98.11'}), (100, {'lhs': '$96binary_subscr.10', 'rhs': '$const98.11', 'res': '$100compare_op.12'}), (102, {'pred': '$100compare_op.12'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={104: (), 76: ()})\n", - "2023-05-15 11:07:26,788 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=104 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((104, {'res': '$dist_order104.0'}), (106, {'item': '$dist_order104.0', 'res': '$106load_method.1'}), (108, {'res': '$108load_global.2'}), (110, {'item': '$108load_global.2', 'res': '$110load_attr.3'}), (112, {'func': '$106load_method.1', 'args': ['$110load_attr.3'], 'res': '$112call_method.4'}), (114, {'retval': '$112call_method.4', 'castval': '$114return_value.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:26,791 | DEBUG | interpreter.py:1342 | label 0:\n", - " dist_row = arg(0, name=dist_row) ['dist_row']\n", - " $2load_global.0 = global(np: ) ['$2load_global.0']\n", - " $4load_method.1 = getattr(value=$2load_global.0, attr=argsort) ['$2load_global.0', '$4load_method.1']\n", - " dist_order = call $4load_method.1(dist_row, func=$4load_method.1, args=[Var(dist_row, measures.py:467)], kws=(), vararg=None, varkwarg=None, target=None) ['$4load_method.1', 'dist_order', 'dist_row']\n", - " $const16.6 = const(int, -1) ['$const16.6']\n", - " $18binary_subscr.7 = getitem(value=dist_order, index=$const16.6, fn=) ['$18binary_subscr.7', '$const16.6', 'dist_order']\n", - " $20binary_subscr.8 = getitem(value=dist_row, index=$18binary_subscr.7, fn=) ['$18binary_subscr.7', '$20binary_subscr.8', 'dist_row']\n", - " $22load_global.9 = global(np: ) ['$22load_global.9']\n", - " $24load_attr.10 = getattr(value=$22load_global.9, attr=inf) ['$22load_global.9', '$24load_attr.10']\n", - " $26compare_op.11 = $20binary_subscr.8 == $24load_attr.10 ['$20binary_subscr.8', '$24load_attr.10', '$26compare_op.11']\n", - " bool28 = global(bool: ) ['bool28']\n", - " $28pred = call bool28($26compare_op.11, func=bool28, args=(Var($26compare_op.11, measures.py:470),), kws=(), vararg=None, varkwarg=None, target=None) ['$26compare_op.11', '$28pred', 'bool28']\n", - " branch $28pred, 30, 60 ['$28pred']\n", - "label 30:\n", - " $const32.1 = const(NoneType, None) ['$const32.1']\n", - " $const34.2 = const(int, -1) ['$const34.2']\n", - " $36build_slice.3 = global(slice: ) ['$36build_slice.3']\n", - " $36build_slice.4 = call $36build_slice.3($const32.1, $const34.2, func=$36build_slice.3, args=(Var($const32.1, measures.py:471), Var($const34.2, measures.py:471)), kws=(), vararg=None, varkwarg=None, target=None) ['$36build_slice.3', '$36build_slice.4', '$const32.1', '$const34.2']\n", - " dist_order = getitem(value=dist_order, index=$36build_slice.4, fn=) ['$36build_slice.4', 'dist_order', 'dist_order']\n", - " $const46.8 = const(int, -1) ['$const46.8']\n", - " $48binary_subscr.9 = getitem(value=dist_order, index=$const46.8, fn=) ['$48binary_subscr.9', '$const46.8', 'dist_order']\n", - " $50binary_subscr.10 = getitem(value=dist_row, index=$48binary_subscr.9, fn=) ['$48binary_subscr.9', '$50binary_subscr.10', 'dist_row']\n", - " $52load_global.11 = global(np: ) ['$52load_global.11']\n", - " $54load_attr.12 = getattr(value=$52load_global.11, attr=inf) ['$52load_global.11', '$54load_attr.12']\n", - " $56compare_op.13 = $50binary_subscr.10 == $54load_attr.12 ['$50binary_subscr.10', '$54load_attr.12', '$56compare_op.13']\n", - " bool58 = global(bool: ) ['bool58']\n", - " $58pred = call bool58($56compare_op.13, func=bool58, args=(Var($56compare_op.13, measures.py:470),), kws=(), vararg=None, varkwarg=None, target=None) ['$56compare_op.13', '$58pred', 'bool58']\n", - " branch $58pred, 30, 60 ['$58pred']\n", - "label 60:\n", - " $const64.2 = const(int, 0) ['$const64.2']\n", - " $66binary_subscr.3 = getitem(value=dist_order, index=$const64.2, fn=) ['$66binary_subscr.3', '$const64.2', 'dist_order']\n", - " $68binary_subscr.4 = getitem(value=dist_row, index=$66binary_subscr.3, fn=) ['$66binary_subscr.3', '$68binary_subscr.4', 'dist_row']\n", - " $const70.5 = const(int, 0) ['$const70.5']\n", - " $72compare_op.6 = $68binary_subscr.4 == $const70.5 ['$68binary_subscr.4', '$72compare_op.6', '$const70.5']\n", - " bool74 = global(bool: ) ['bool74']\n", - " $74pred = call bool74($72compare_op.6, func=bool74, args=(Var($72compare_op.6, measures.py:473),), kws=(), vararg=None, varkwarg=None, target=None) ['$72compare_op.6', '$74pred', 'bool74']\n", - " branch $74pred, 76, 104 ['$74pred']\n", - "label 76:\n", - " $const78.1 = const(int, 1) ['$const78.1']\n", - " $const80.2 = const(NoneType, None) ['$const80.2']\n", - " $82build_slice.3 = global(slice: ) ['$82build_slice.3']\n", - " $82build_slice.4 = call $82build_slice.3($const78.1, $const80.2, func=$82build_slice.3, args=(Var($const78.1, measures.py:474), Var($const80.2, measures.py:474)), kws=(), vararg=None, varkwarg=None, target=None) ['$82build_slice.3', '$82build_slice.4', '$const78.1', '$const80.2']\n", - " dist_order = getitem(value=dist_order, index=$82build_slice.4, fn=) ['$82build_slice.4', 'dist_order', 'dist_order']\n", - " $const92.8 = const(int, 0) ['$const92.8']\n", - " $94binary_subscr.9 = getitem(value=dist_order, index=$const92.8, fn=) ['$94binary_subscr.9', '$const92.8', 'dist_order']\n", - " $96binary_subscr.10 = getitem(value=dist_row, index=$94binary_subscr.9, fn=) ['$94binary_subscr.9', '$96binary_subscr.10', 'dist_row']\n", - " $const98.11 = const(int, 0) ['$const98.11']\n", - " $100compare_op.12 = $96binary_subscr.10 == $const98.11 ['$100compare_op.12', '$96binary_subscr.10', '$const98.11']\n", - " bool102 = global(bool: ) ['bool102']\n", - " $102pred = call bool102($100compare_op.12, func=bool102, args=(Var($100compare_op.12, measures.py:473),), kws=(), vararg=None, varkwarg=None, target=None) ['$100compare_op.12', '$102pred', 'bool102']\n", - " branch $102pred, 76, 104 ['$102pred']\n", - "label 104:\n", - " $106load_method.1 = getattr(value=dist_order, attr=astype) ['$106load_method.1', 'dist_order']\n", - " $108load_global.2 = global(np: ) ['$108load_global.2']\n", - " $110load_attr.3 = getattr(value=$108load_global.2, attr=int32) ['$108load_global.2', '$110load_attr.3']\n", - " $112call_method.4 = call $106load_method.1($110load_attr.3, func=$106load_method.1, args=[Var($110load_attr.3, measures.py:475)], kws=(), vararg=None, varkwarg=None, target=None) ['$106load_method.1', '$110load_attr.3', '$112call_method.4']\n", - " $114return_value.5 = cast(value=$112call_method.4) ['$112call_method.4', '$114return_value.5']\n", - " return $114return_value.5 ['$114return_value.5']\n", - "\n", - "2023-05-15 11:07:26,808 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:26,809 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,809 | DEBUG | ssa.py:193 | on stmt: dist_row = arg(0, name=dist_row)\n", - "2023-05-15 11:07:26,810 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:26,810 | DEBUG | ssa.py:193 | on stmt: $4load_method.1 = getattr(value=$2load_global.0, attr=argsort)\n", - "2023-05-15 11:07:26,811 | DEBUG | ssa.py:193 | on stmt: dist_order = call $4load_method.1(dist_row, func=$4load_method.1, args=[Var(dist_row, measures.py:467)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,811 | DEBUG | ssa.py:193 | on stmt: $const16.6 = const(int, -1)\n", - "2023-05-15 11:07:26,811 | DEBUG | ssa.py:193 | on stmt: $18binary_subscr.7 = static_getitem(value=dist_order, index=-1, index_var=$const16.6, fn=)\n", - "2023-05-15 11:07:26,812 | DEBUG | ssa.py:193 | on stmt: $20binary_subscr.8 = getitem(value=dist_row, index=$18binary_subscr.7, fn=)\n", - "2023-05-15 11:07:26,813 | DEBUG | ssa.py:193 | on stmt: $22load_global.9 = global(np: )\n", - "2023-05-15 11:07:26,813 | DEBUG | ssa.py:193 | on stmt: $24load_attr.10 = getattr(value=$22load_global.9, attr=inf)\n", - "2023-05-15 11:07:26,815 | DEBUG | ssa.py:193 | on stmt: $26compare_op.11 = $20binary_subscr.8 == $24load_attr.10\n", - "2023-05-15 11:07:26,816 | DEBUG | ssa.py:193 | on stmt: bool28 = global(bool: )\n", - "2023-05-15 11:07:26,816 | DEBUG | ssa.py:193 | on stmt: $28pred = call bool28($26compare_op.11, func=bool28, args=(Var($26compare_op.11, measures.py:470),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,817 | DEBUG | ssa.py:193 | on stmt: branch $28pred, 30, 60\n", - "2023-05-15 11:07:26,818 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 30\n", - "2023-05-15 11:07:26,819 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,819 | DEBUG | ssa.py:193 | on stmt: $const32.1 = const(NoneType, None)\n", - "2023-05-15 11:07:26,820 | DEBUG | ssa.py:193 | on stmt: $const34.2 = const(int, -1)\n", - "2023-05-15 11:07:26,821 | DEBUG | ssa.py:193 | on stmt: $36build_slice.3 = global(slice: )\n", - "2023-05-15 11:07:26,822 | DEBUG | ssa.py:193 | on stmt: $36build_slice.4 = call $36build_slice.3($const32.1, $const34.2, func=$36build_slice.3, args=(Var($const32.1, measures.py:471), Var($const34.2, measures.py:471)), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,822 | DEBUG | ssa.py:193 | on stmt: dist_order = static_getitem(value=dist_order, index=slice(None, -1, None), index_var=$36build_slice.4, fn=)\n", - "2023-05-15 11:07:26,823 | DEBUG | ssa.py:193 | on stmt: $const46.8 = const(int, -1)\n", - "2023-05-15 11:07:26,824 | DEBUG | ssa.py:193 | on stmt: $48binary_subscr.9 = static_getitem(value=dist_order, index=-1, index_var=$const46.8, fn=)\n", - "2023-05-15 11:07:26,825 | DEBUG | ssa.py:193 | on stmt: $50binary_subscr.10 = getitem(value=dist_row, index=$48binary_subscr.9, fn=)\n", - "2023-05-15 11:07:26,825 | DEBUG | ssa.py:193 | on stmt: $52load_global.11 = global(np: )\n", - "2023-05-15 11:07:26,826 | DEBUG | ssa.py:193 | on stmt: $54load_attr.12 = getattr(value=$52load_global.11, attr=inf)\n", - "2023-05-15 11:07:26,826 | DEBUG | ssa.py:193 | on stmt: $56compare_op.13 = $50binary_subscr.10 == $54load_attr.12\n", - "2023-05-15 11:07:26,827 | DEBUG | ssa.py:193 | on stmt: bool58 = global(bool: )\n", - "2023-05-15 11:07:26,828 | DEBUG | ssa.py:193 | on stmt: $58pred = call bool58($56compare_op.13, func=bool58, args=(Var($56compare_op.13, measures.py:470),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,829 | DEBUG | ssa.py:193 | on stmt: branch $58pred, 30, 60\n", - "2023-05-15 11:07:26,829 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 60\n", - "2023-05-15 11:07:26,830 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,830 | DEBUG | ssa.py:193 | on stmt: $const64.2 = const(int, 0)\n", - "2023-05-15 11:07:26,831 | DEBUG | ssa.py:193 | on stmt: $66binary_subscr.3 = static_getitem(value=dist_order, index=0, index_var=$const64.2, fn=)\n", - "2023-05-15 11:07:26,831 | DEBUG | ssa.py:193 | on stmt: $68binary_subscr.4 = getitem(value=dist_row, index=$66binary_subscr.3, fn=)\n", - "2023-05-15 11:07:26,832 | DEBUG | ssa.py:193 | on stmt: $const70.5 = const(int, 0)\n", - "2023-05-15 11:07:26,832 | DEBUG | ssa.py:193 | on stmt: $72compare_op.6 = $68binary_subscr.4 == $const70.5\n", - "2023-05-15 11:07:26,832 | DEBUG | ssa.py:193 | on stmt: bool74 = global(bool: )\n", - "2023-05-15 11:07:26,833 | DEBUG | ssa.py:193 | on stmt: $74pred = call bool74($72compare_op.6, func=bool74, args=(Var($72compare_op.6, measures.py:473),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,834 | DEBUG | ssa.py:193 | on stmt: branch $74pred, 76, 104\n", - "2023-05-15 11:07:26,835 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 76\n", - "2023-05-15 11:07:26,835 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,836 | DEBUG | ssa.py:193 | on stmt: $const78.1 = const(int, 1)\n", - "2023-05-15 11:07:26,837 | DEBUG | ssa.py:193 | on stmt: $const80.2 = const(NoneType, None)\n", - "2023-05-15 11:07:26,837 | DEBUG | ssa.py:193 | on stmt: $82build_slice.3 = global(slice: )\n", - "2023-05-15 11:07:26,838 | DEBUG | ssa.py:193 | on stmt: $82build_slice.4 = call $82build_slice.3($const78.1, $const80.2, func=$82build_slice.3, args=(Var($const78.1, measures.py:474), Var($const80.2, measures.py:474)), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,838 | DEBUG | ssa.py:193 | on stmt: dist_order = static_getitem(value=dist_order, index=slice(1, None, None), index_var=$82build_slice.4, fn=)\n", - "2023-05-15 11:07:26,839 | DEBUG | ssa.py:193 | on stmt: $const92.8 = const(int, 0)\n", - "2023-05-15 11:07:26,839 | DEBUG | ssa.py:193 | on stmt: $94binary_subscr.9 = static_getitem(value=dist_order, index=0, index_var=$const92.8, fn=)\n", - "2023-05-15 11:07:26,840 | DEBUG | ssa.py:193 | on stmt: $96binary_subscr.10 = getitem(value=dist_row, index=$94binary_subscr.9, fn=)\n", - "2023-05-15 11:07:26,840 | DEBUG | ssa.py:193 | on stmt: $const98.11 = const(int, 0)\n", - "2023-05-15 11:07:26,841 | DEBUG | ssa.py:193 | on stmt: $100compare_op.12 = $96binary_subscr.10 == $const98.11\n", - "2023-05-15 11:07:26,841 | DEBUG | ssa.py:193 | on stmt: bool102 = global(bool: )\n", - "2023-05-15 11:07:26,842 | DEBUG | ssa.py:193 | on stmt: $102pred = call bool102($100compare_op.12, func=bool102, args=(Var($100compare_op.12, measures.py:473),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,842 | DEBUG | ssa.py:193 | on stmt: branch $102pred, 76, 104\n", - "2023-05-15 11:07:26,843 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 104\n", - "2023-05-15 11:07:26,843 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,844 | DEBUG | ssa.py:193 | on stmt: $106load_method.1 = getattr(value=dist_order, attr=astype)\n", - "2023-05-15 11:07:26,844 | DEBUG | ssa.py:193 | on stmt: $108load_global.2 = global(np: )\n", - "2023-05-15 11:07:26,845 | DEBUG | ssa.py:193 | on stmt: $110load_attr.3 = getattr(value=$108load_global.2, attr=int32)\n", - "2023-05-15 11:07:26,845 | DEBUG | ssa.py:193 | on stmt: $112call_method.4 = call $106load_method.1($110load_attr.3, func=$106load_method.1, args=[Var($110load_attr.3, measures.py:475)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,845 | DEBUG | ssa.py:193 | on stmt: $114return_value.5 = cast(value=$112call_method.4)\n", - "2023-05-15 11:07:26,848 | DEBUG | ssa.py:193 | on stmt: return $114return_value.5\n", - "2023-05-15 11:07:26,849 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$100compare_op.12': [],\n", - " '$102pred': [],\n", - " '$106load_method.1': [],\n", - " '$108load_global.2': [],\n", - " '$110load_attr.3': [],\n", - " '$112call_method.4': [],\n", - " '$114return_value.5': [],\n", - " '$18binary_subscr.7': [],\n", - " '$20binary_subscr.8': [],\n", - " '$22load_global.9': [],\n", - " '$24load_attr.10': [],\n", - " '$26compare_op.11': [],\n", - " '$28pred': [],\n", - " '$2load_global.0': [],\n", - " '$36build_slice.3': [],\n", - " '$36build_slice.4': [],\n", - " '$48binary_subscr.9': [],\n", - " '$4load_method.1': [],\n", - " '$50binary_subscr.10': [],\n", - " '$52load_global.11': [],\n", - " '$54load_attr.12': [],\n", - " '$56compare_op.13': [],\n", - " '$58pred': [],\n", - " '$66binary_subscr.3': [],\n", - " '$68binary_subscr.4': [],\n", - " '$72compare_op.6': [],\n", - " '$74pred': [],\n", - " '$82build_slice.3': [],\n", - " '$82build_slice.4': [],\n", - " '$94binary_subscr.9': [],\n", - " '$96binary_subscr.10': [],\n", - " '$const16.6': [],\n", - " '$const32.1': [],\n", - " '$const34.2': [],\n", - " '$const46.8': [],\n", - " '$const64.2': [],\n", - " '$const70.5': [],\n", - " '$const78.1': [],\n", - " '$const80.2': [],\n", - " '$const92.8': [],\n", - " '$const98.11': [],\n", - " 'bool102': [],\n", - " 'bool28': [],\n", - " 'bool58': [],\n", - " 'bool74': [],\n", - " 'dist_order': [,\n", - " ,\n", - " ],\n", - " 'dist_row': []})\n", - "2023-05-15 11:07:26,850 | DEBUG | ssa.py:156 | SSA violators {'dist_order'}\n", - "2023-05-15 11:07:26,850 | DEBUG | ssa.py:63 | Fix SSA violator on var dist_order\n", - "2023-05-15 11:07:26,851 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:26,851 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,851 | DEBUG | ssa.py:193 | on stmt: dist_row = arg(0, name=dist_row)\n", - "2023-05-15 11:07:26,852 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:26,852 | DEBUG | ssa.py:193 | on stmt: $4load_method.1 = getattr(value=$2load_global.0, attr=argsort)\n", - "2023-05-15 11:07:26,853 | DEBUG | ssa.py:193 | on stmt: dist_order = call $4load_method.1(dist_row, func=$4load_method.1, args=[Var(dist_row, measures.py:467)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,853 | DEBUG | ssa.py:269 | first assign: dist_order\n", - "2023-05-15 11:07:26,854 | DEBUG | ssa.py:199 | replaced with: dist_order = call $4load_method.1(dist_row, func=$4load_method.1, args=[Var(dist_row, measures.py:467)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,854 | DEBUG | ssa.py:193 | on stmt: $const16.6 = const(int, -1)\n", - "2023-05-15 11:07:26,855 | DEBUG | ssa.py:193 | on stmt: $18binary_subscr.7 = static_getitem(value=dist_order, index=-1, index_var=$const16.6, fn=)\n", - "2023-05-15 11:07:26,855 | DEBUG | ssa.py:193 | on stmt: $20binary_subscr.8 = getitem(value=dist_row, index=$18binary_subscr.7, fn=)\n", - "2023-05-15 11:07:26,855 | DEBUG | ssa.py:193 | on stmt: $22load_global.9 = global(np: )\n", - "2023-05-15 11:07:26,856 | DEBUG | ssa.py:193 | on stmt: $24load_attr.10 = getattr(value=$22load_global.9, attr=inf)\n", - "2023-05-15 11:07:26,856 | DEBUG | ssa.py:193 | on stmt: $26compare_op.11 = $20binary_subscr.8 == $24load_attr.10\n", - "2023-05-15 11:07:26,856 | DEBUG | ssa.py:193 | on stmt: bool28 = global(bool: )\n", - "2023-05-15 11:07:26,857 | DEBUG | ssa.py:193 | on stmt: $28pred = call bool28($26compare_op.11, func=bool28, args=(Var($26compare_op.11, measures.py:470),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,857 | DEBUG | ssa.py:193 | on stmt: branch $28pred, 30, 60\n", - "2023-05-15 11:07:26,857 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 30\n", - "2023-05-15 11:07:26,858 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,859 | DEBUG | ssa.py:193 | on stmt: $const32.1 = const(NoneType, None)\n", - "2023-05-15 11:07:26,860 | DEBUG | ssa.py:193 | on stmt: $const34.2 = const(int, -1)\n", - "2023-05-15 11:07:26,860 | DEBUG | ssa.py:193 | on stmt: $36build_slice.3 = global(slice: )\n", - "2023-05-15 11:07:26,861 | DEBUG | ssa.py:193 | on stmt: $36build_slice.4 = call $36build_slice.3($const32.1, $const34.2, func=$36build_slice.3, args=(Var($const32.1, measures.py:471), Var($const34.2, measures.py:471)), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,861 | DEBUG | ssa.py:193 | on stmt: dist_order = static_getitem(value=dist_order, index=slice(None, -1, None), index_var=$36build_slice.4, fn=)\n", - "2023-05-15 11:07:26,861 | DEBUG | ssa.py:199 | replaced with: dist_order.1 = static_getitem(value=dist_order, index=slice(None, -1, None), index_var=$36build_slice.4, fn=)\n", - "2023-05-15 11:07:26,862 | DEBUG | ssa.py:193 | on stmt: $const46.8 = const(int, -1)\n", - "2023-05-15 11:07:26,862 | DEBUG | ssa.py:193 | on stmt: $48binary_subscr.9 = static_getitem(value=dist_order, index=-1, index_var=$const46.8, fn=)\n", - "2023-05-15 11:07:26,863 | DEBUG | ssa.py:193 | on stmt: $50binary_subscr.10 = getitem(value=dist_row, index=$48binary_subscr.9, fn=)\n", - "2023-05-15 11:07:26,863 | DEBUG | ssa.py:193 | on stmt: $52load_global.11 = global(np: )\n", - "2023-05-15 11:07:26,863 | DEBUG | ssa.py:193 | on stmt: $54load_attr.12 = getattr(value=$52load_global.11, attr=inf)\n", - "2023-05-15 11:07:26,864 | DEBUG | ssa.py:193 | on stmt: $56compare_op.13 = $50binary_subscr.10 == $54load_attr.12\n", - "2023-05-15 11:07:26,864 | DEBUG | ssa.py:193 | on stmt: bool58 = global(bool: )\n", - "2023-05-15 11:07:26,864 | DEBUG | ssa.py:193 | on stmt: $58pred = call bool58($56compare_op.13, func=bool58, args=(Var($56compare_op.13, measures.py:470),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,865 | DEBUG | ssa.py:193 | on stmt: branch $58pred, 30, 60\n", - "2023-05-15 11:07:26,865 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:26,866 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,866 | DEBUG | ssa.py:193 | on stmt: $const64.2 = const(int, 0)\n", - "2023-05-15 11:07:26,867 | DEBUG | ssa.py:193 | on stmt: $66binary_subscr.3 = static_getitem(value=dist_order, index=0, index_var=$const64.2, fn=)\n", - "2023-05-15 11:07:26,867 | DEBUG | ssa.py:193 | on stmt: $68binary_subscr.4 = getitem(value=dist_row, index=$66binary_subscr.3, fn=)\n", - "2023-05-15 11:07:26,867 | DEBUG | ssa.py:193 | on stmt: $const70.5 = const(int, 0)\n", - "2023-05-15 11:07:26,868 | DEBUG | ssa.py:193 | on stmt: $72compare_op.6 = $68binary_subscr.4 == $const70.5\n", - "2023-05-15 11:07:26,868 | DEBUG | ssa.py:193 | on stmt: bool74 = global(bool: )\n", - "2023-05-15 11:07:26,869 | DEBUG | ssa.py:193 | on stmt: $74pred = call bool74($72compare_op.6, func=bool74, args=(Var($72compare_op.6, measures.py:473),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,869 | DEBUG | ssa.py:193 | on stmt: branch $74pred, 76, 104\n", - "2023-05-15 11:07:26,870 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 76\n", - "2023-05-15 11:07:26,870 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,871 | DEBUG | ssa.py:193 | on stmt: $const78.1 = const(int, 1)\n", - "2023-05-15 11:07:26,871 | DEBUG | ssa.py:193 | on stmt: $const80.2 = const(NoneType, None)\n", - "2023-05-15 11:07:26,872 | DEBUG | ssa.py:193 | on stmt: $82build_slice.3 = global(slice: )\n", - "2023-05-15 11:07:26,872 | DEBUG | ssa.py:193 | on stmt: $82build_slice.4 = call $82build_slice.3($const78.1, $const80.2, func=$82build_slice.3, args=(Var($const78.1, measures.py:474), Var($const80.2, measures.py:474)), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,873 | DEBUG | ssa.py:193 | on stmt: dist_order = static_getitem(value=dist_order, index=slice(1, None, None), index_var=$82build_slice.4, fn=)\n", - "2023-05-15 11:07:26,873 | DEBUG | ssa.py:199 | replaced with: dist_order.2 = static_getitem(value=dist_order, index=slice(1, None, None), index_var=$82build_slice.4, fn=)\n", - "2023-05-15 11:07:26,874 | DEBUG | ssa.py:193 | on stmt: $const92.8 = const(int, 0)\n", - "2023-05-15 11:07:26,874 | DEBUG | ssa.py:193 | on stmt: $94binary_subscr.9 = static_getitem(value=dist_order, index=0, index_var=$const92.8, fn=)\n", - "2023-05-15 11:07:26,875 | DEBUG | ssa.py:193 | on stmt: $96binary_subscr.10 = getitem(value=dist_row, index=$94binary_subscr.9, fn=)\n", - "2023-05-15 11:07:26,875 | DEBUG | ssa.py:193 | on stmt: $const98.11 = const(int, 0)\n", - "2023-05-15 11:07:26,876 | DEBUG | ssa.py:193 | on stmt: $100compare_op.12 = $96binary_subscr.10 == $const98.11\n", - "2023-05-15 11:07:26,876 | DEBUG | ssa.py:193 | on stmt: bool102 = global(bool: )\n", - "2023-05-15 11:07:26,877 | DEBUG | ssa.py:193 | on stmt: $102pred = call bool102($100compare_op.12, func=bool102, args=(Var($100compare_op.12, measures.py:473),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,877 | DEBUG | ssa.py:193 | on stmt: branch $102pred, 76, 104\n", - "2023-05-15 11:07:26,878 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 104\n", - "2023-05-15 11:07:26,878 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,879 | DEBUG | ssa.py:193 | on stmt: $106load_method.1 = getattr(value=dist_order, attr=astype)\n", - "2023-05-15 11:07:26,879 | DEBUG | ssa.py:193 | on stmt: $108load_global.2 = global(np: )\n", - "2023-05-15 11:07:26,879 | DEBUG | ssa.py:193 | on stmt: $110load_attr.3 = getattr(value=$108load_global.2, attr=int32)\n", - "2023-05-15 11:07:26,880 | DEBUG | ssa.py:193 | on stmt: $112call_method.4 = call $106load_method.1($110load_attr.3, func=$106load_method.1, args=[Var($110load_attr.3, measures.py:475)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,880 | DEBUG | ssa.py:193 | on stmt: $114return_value.5 = cast(value=$112call_method.4)\n", - "2023-05-15 11:07:26,881 | DEBUG | ssa.py:193 | on stmt: return $114return_value.5\n", - "2023-05-15 11:07:26,881 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {0: [],\n", - " 30: [],\n", - " 76: []})\n", - "2023-05-15 11:07:26,882 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:26,882 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,882 | DEBUG | ssa.py:193 | on stmt: dist_row = arg(0, name=dist_row)\n", - "2023-05-15 11:07:26,883 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:26,883 | DEBUG | ssa.py:193 | on stmt: $4load_method.1 = getattr(value=$2load_global.0, attr=argsort)\n", - "2023-05-15 11:07:26,883 | DEBUG | ssa.py:193 | on stmt: dist_order = call $4load_method.1(dist_row, func=$4load_method.1, args=[Var(dist_row, measures.py:467)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,884 | DEBUG | ssa.py:193 | on stmt: $const16.6 = const(int, -1)\n", - "2023-05-15 11:07:26,884 | DEBUG | ssa.py:193 | on stmt: $18binary_subscr.7 = static_getitem(value=dist_order, index=-1, index_var=$const16.6, fn=)\n", - "2023-05-15 11:07:26,885 | DEBUG | ssa.py:353 | find_def var='dist_order' stmt=$18binary_subscr.7 = static_getitem(value=dist_order, index=-1, index_var=$const16.6, fn=)\n", - "2023-05-15 11:07:26,885 | DEBUG | ssa.py:193 | on stmt: $20binary_subscr.8 = getitem(value=dist_row, index=$18binary_subscr.7, fn=)\n", - "2023-05-15 11:07:26,885 | DEBUG | ssa.py:193 | on stmt: $22load_global.9 = global(np: )\n", - "2023-05-15 11:07:26,886 | DEBUG | ssa.py:193 | on stmt: $24load_attr.10 = getattr(value=$22load_global.9, attr=inf)\n", - "2023-05-15 11:07:26,886 | DEBUG | ssa.py:193 | on stmt: $26compare_op.11 = $20binary_subscr.8 == $24load_attr.10\n", - "2023-05-15 11:07:26,887 | DEBUG | ssa.py:193 | on stmt: bool28 = global(bool: )\n", - "2023-05-15 11:07:26,887 | DEBUG | ssa.py:193 | on stmt: $28pred = call bool28($26compare_op.11, func=bool28, args=(Var($26compare_op.11, measures.py:470),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,889 | DEBUG | ssa.py:193 | on stmt: branch $28pred, 30, 60\n", - "2023-05-15 11:07:26,889 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 30\n", - "2023-05-15 11:07:26,889 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,890 | DEBUG | ssa.py:193 | on stmt: $const32.1 = const(NoneType, None)\n", - "2023-05-15 11:07:26,890 | DEBUG | ssa.py:193 | on stmt: $const34.2 = const(int, -1)\n", - "2023-05-15 11:07:26,894 | DEBUG | ssa.py:193 | on stmt: $36build_slice.3 = global(slice: )\n", - "2023-05-15 11:07:26,896 | DEBUG | ssa.py:193 | on stmt: $36build_slice.4 = call $36build_slice.3($const32.1, $const34.2, func=$36build_slice.3, args=(Var($const32.1, measures.py:471), Var($const34.2, measures.py:471)), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,896 | DEBUG | ssa.py:193 | on stmt: dist_order.1 = static_getitem(value=dist_order, index=slice(None, -1, None), index_var=$36build_slice.4, fn=)\n", - "2023-05-15 11:07:26,896 | DEBUG | ssa.py:353 | find_def var='dist_order' stmt=dist_order.1 = static_getitem(value=dist_order, index=slice(None, -1, None), index_var=$36build_slice.4, fn=)\n", - "2023-05-15 11:07:26,897 | DEBUG | ssa.py:384 | find_def_from_top label 30\n", - "2023-05-15 11:07:26,897 | DEBUG | ssa.py:401 | insert phi node dist_order.3 = phi(incoming_values=[], incoming_blocks=[]) at 30\n", - "2023-05-15 11:07:26,898 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:26,898 | DEBUG | ssa.py:409 | incoming_def dist_order = call $4load_method.1(dist_row, func=$4load_method.1, args=[Var(dist_row, measures.py:467)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,898 | DEBUG | ssa.py:427 | find_def_from_bottom label 30\n", - "2023-05-15 11:07:26,899 | DEBUG | ssa.py:409 | incoming_def dist_order.1 = static_getitem(value=dist_order, index=slice(None, -1, None), index_var=$36build_slice.4, fn=)\n", - "2023-05-15 11:07:26,899 | DEBUG | ssa.py:199 | replaced with: dist_order.1 = static_getitem(value=dist_order.3, index=slice(None, -1, None), index_var=$36build_slice.4, fn=)\n", - "2023-05-15 11:07:26,900 | DEBUG | ssa.py:193 | on stmt: $const46.8 = const(int, -1)\n", - "2023-05-15 11:07:26,900 | DEBUG | ssa.py:193 | on stmt: $48binary_subscr.9 = static_getitem(value=dist_order, index=-1, index_var=$const46.8, fn=)\n", - "2023-05-15 11:07:26,900 | DEBUG | ssa.py:353 | find_def var='dist_order' stmt=$48binary_subscr.9 = static_getitem(value=dist_order, index=-1, index_var=$const46.8, fn=)\n", - "2023-05-15 11:07:26,901 | DEBUG | ssa.py:199 | replaced with: $48binary_subscr.9 = static_getitem(value=dist_order.1, index=-1, index_var=$const46.8, fn=)\n", - "2023-05-15 11:07:26,901 | DEBUG | ssa.py:193 | on stmt: $50binary_subscr.10 = getitem(value=dist_row, index=$48binary_subscr.9, fn=)\n", - "2023-05-15 11:07:26,902 | DEBUG | ssa.py:193 | on stmt: $52load_global.11 = global(np: )\n", - "2023-05-15 11:07:26,902 | DEBUG | ssa.py:193 | on stmt: $54load_attr.12 = getattr(value=$52load_global.11, attr=inf)\n", - "2023-05-15 11:07:26,904 | DEBUG | ssa.py:193 | on stmt: $56compare_op.13 = $50binary_subscr.10 == $54load_attr.12\n", - "2023-05-15 11:07:26,904 | DEBUG | ssa.py:193 | on stmt: bool58 = global(bool: )\n", - "2023-05-15 11:07:26,905 | DEBUG | ssa.py:193 | on stmt: $58pred = call bool58($56compare_op.13, func=bool58, args=(Var($56compare_op.13, measures.py:470),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,905 | DEBUG | ssa.py:193 | on stmt: branch $58pred, 30, 60\n", - "2023-05-15 11:07:26,906 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:26,907 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,907 | DEBUG | ssa.py:193 | on stmt: $const64.2 = const(int, 0)\n", - "2023-05-15 11:07:26,907 | DEBUG | ssa.py:193 | on stmt: $66binary_subscr.3 = static_getitem(value=dist_order, index=0, index_var=$const64.2, fn=)\n", - "2023-05-15 11:07:26,908 | DEBUG | ssa.py:353 | find_def var='dist_order' stmt=$66binary_subscr.3 = static_getitem(value=dist_order, index=0, index_var=$const64.2, fn=)\n", - "2023-05-15 11:07:26,909 | DEBUG | ssa.py:384 | find_def_from_top label 60\n", - "2023-05-15 11:07:26,909 | DEBUG | ssa.py:401 | insert phi node dist_order.4 = phi(incoming_values=[], incoming_blocks=[]) at 60\n", - "2023-05-15 11:07:26,910 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:26,910 | DEBUG | ssa.py:409 | incoming_def dist_order = call $4load_method.1(dist_row, func=$4load_method.1, args=[Var(dist_row, measures.py:467)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,911 | DEBUG | ssa.py:427 | find_def_from_bottom label 30\n", - "2023-05-15 11:07:26,911 | DEBUG | ssa.py:409 | incoming_def dist_order.1 = static_getitem(value=dist_order.3, index=slice(None, -1, None), index_var=$36build_slice.4, fn=)\n", - "2023-05-15 11:07:26,911 | DEBUG | ssa.py:199 | replaced with: $66binary_subscr.3 = static_getitem(value=dist_order.4, index=0, index_var=$const64.2, fn=)\n", - "2023-05-15 11:07:26,912 | DEBUG | ssa.py:193 | on stmt: $68binary_subscr.4 = getitem(value=dist_row, index=$66binary_subscr.3, fn=)\n", - "2023-05-15 11:07:26,912 | DEBUG | ssa.py:193 | on stmt: $const70.5 = const(int, 0)\n", - "2023-05-15 11:07:26,912 | DEBUG | ssa.py:193 | on stmt: $72compare_op.6 = $68binary_subscr.4 == $const70.5\n", - "2023-05-15 11:07:26,913 | DEBUG | ssa.py:193 | on stmt: bool74 = global(bool: )\n", - "2023-05-15 11:07:26,913 | DEBUG | ssa.py:193 | on stmt: $74pred = call bool74($72compare_op.6, func=bool74, args=(Var($72compare_op.6, measures.py:473),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,914 | DEBUG | ssa.py:193 | on stmt: branch $74pred, 76, 104\n", - "2023-05-15 11:07:26,914 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 76\n", - "2023-05-15 11:07:26,914 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,915 | DEBUG | ssa.py:193 | on stmt: $const78.1 = const(int, 1)\n", - "2023-05-15 11:07:26,915 | DEBUG | ssa.py:193 | on stmt: $const80.2 = const(NoneType, None)\n", - "2023-05-15 11:07:26,916 | DEBUG | ssa.py:193 | on stmt: $82build_slice.3 = global(slice: )\n", - "2023-05-15 11:07:26,918 | DEBUG | ssa.py:193 | on stmt: $82build_slice.4 = call $82build_slice.3($const78.1, $const80.2, func=$82build_slice.3, args=(Var($const78.1, measures.py:474), Var($const80.2, measures.py:474)), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,918 | DEBUG | ssa.py:193 | on stmt: dist_order.2 = static_getitem(value=dist_order, index=slice(1, None, None), index_var=$82build_slice.4, fn=)\n", - "2023-05-15 11:07:26,919 | DEBUG | ssa.py:353 | find_def var='dist_order' stmt=dist_order.2 = static_getitem(value=dist_order, index=slice(1, None, None), index_var=$82build_slice.4, fn=)\n", - "2023-05-15 11:07:26,919 | DEBUG | ssa.py:384 | find_def_from_top label 76\n", - "2023-05-15 11:07:26,920 | DEBUG | ssa.py:401 | insert phi node dist_order.5 = phi(incoming_values=[], incoming_blocks=[]) at 76\n", - "2023-05-15 11:07:26,920 | DEBUG | ssa.py:427 | find_def_from_bottom label 60\n", - "2023-05-15 11:07:26,921 | DEBUG | ssa.py:409 | incoming_def dist_order.4 = phi(incoming_values=[Var(dist_order, measures.py:467), Var(dist_order.1, measures.py:471)], incoming_blocks=[0, 30])\n", - "2023-05-15 11:07:26,921 | DEBUG | ssa.py:427 | find_def_from_bottom label 76\n", - "2023-05-15 11:07:26,922 | DEBUG | ssa.py:409 | incoming_def dist_order.2 = static_getitem(value=dist_order, index=slice(1, None, None), index_var=$82build_slice.4, fn=)\n", - "2023-05-15 11:07:26,922 | DEBUG | ssa.py:199 | replaced with: dist_order.2 = static_getitem(value=dist_order.5, index=slice(1, None, None), index_var=$82build_slice.4, fn=)\n", - "2023-05-15 11:07:26,923 | DEBUG | ssa.py:193 | on stmt: $const92.8 = const(int, 0)\n", - "2023-05-15 11:07:26,923 | DEBUG | ssa.py:193 | on stmt: $94binary_subscr.9 = static_getitem(value=dist_order, index=0, index_var=$const92.8, fn=)\n", - "2023-05-15 11:07:26,923 | DEBUG | ssa.py:353 | find_def var='dist_order' stmt=$94binary_subscr.9 = static_getitem(value=dist_order, index=0, index_var=$const92.8, fn=)\n", - "2023-05-15 11:07:26,924 | DEBUG | ssa.py:199 | replaced with: $94binary_subscr.9 = static_getitem(value=dist_order.2, index=0, index_var=$const92.8, fn=)\n", - "2023-05-15 11:07:26,928 | DEBUG | ssa.py:193 | on stmt: $96binary_subscr.10 = getitem(value=dist_row, index=$94binary_subscr.9, fn=)\n", - "2023-05-15 11:07:26,928 | DEBUG | ssa.py:193 | on stmt: $const98.11 = const(int, 0)\n", - "2023-05-15 11:07:26,929 | DEBUG | ssa.py:193 | on stmt: $100compare_op.12 = $96binary_subscr.10 == $const98.11\n", - "2023-05-15 11:07:26,929 | DEBUG | ssa.py:193 | on stmt: bool102 = global(bool: )\n", - "2023-05-15 11:07:26,930 | DEBUG | ssa.py:193 | on stmt: $102pred = call bool102($100compare_op.12, func=bool102, args=(Var($100compare_op.12, measures.py:473),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,931 | DEBUG | ssa.py:193 | on stmt: branch $102pred, 76, 104\n", - "2023-05-15 11:07:26,932 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 104\n", - "2023-05-15 11:07:26,932 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:26,932 | DEBUG | ssa.py:193 | on stmt: $106load_method.1 = getattr(value=dist_order, attr=astype)\n", - "2023-05-15 11:07:26,933 | DEBUG | ssa.py:353 | find_def var='dist_order' stmt=$106load_method.1 = getattr(value=dist_order, attr=astype)\n", - "2023-05-15 11:07:26,933 | DEBUG | ssa.py:384 | find_def_from_top label 104\n", - "2023-05-15 11:07:26,934 | DEBUG | ssa.py:401 | insert phi node dist_order.6 = phi(incoming_values=[], incoming_blocks=[]) at 104\n", - "2023-05-15 11:07:26,934 | DEBUG | ssa.py:427 | find_def_from_bottom label 60\n", - "2023-05-15 11:07:26,935 | DEBUG | ssa.py:409 | incoming_def dist_order.4 = phi(incoming_values=[Var(dist_order, measures.py:467), Var(dist_order.1, measures.py:471)], incoming_blocks=[0, 30])\n", - "2023-05-15 11:07:26,935 | DEBUG | ssa.py:427 | find_def_from_bottom label 76\n", - "2023-05-15 11:07:26,936 | DEBUG | ssa.py:409 | incoming_def dist_order.2 = static_getitem(value=dist_order.5, index=slice(1, None, None), index_var=$82build_slice.4, fn=)\n", - "2023-05-15 11:07:26,936 | DEBUG | ssa.py:199 | replaced with: $106load_method.1 = getattr(value=dist_order.6, attr=astype)\n", - "2023-05-15 11:07:26,936 | DEBUG | ssa.py:193 | on stmt: $108load_global.2 = global(np: )\n", - "2023-05-15 11:07:26,937 | DEBUG | ssa.py:193 | on stmt: $110load_attr.3 = getattr(value=$108load_global.2, attr=int32)\n", - "2023-05-15 11:07:26,937 | DEBUG | ssa.py:193 | on stmt: $112call_method.4 = call $106load_method.1($110load_attr.3, func=$106load_method.1, args=[Var($110load_attr.3, measures.py:475)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:26,938 | DEBUG | ssa.py:193 | on stmt: $114return_value.5 = cast(value=$112call_method.4)\n", - "2023-05-15 11:07:26,940 | DEBUG | ssa.py:193 | on stmt: return $114return_value.5\n", - "2023-05-15 11:07:26,981 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=5798)\n", - " 2\tLOAD_DEREF(arg=0, lineno=5798)\n", - " 4\tLOAD_FAST(arg=0, lineno=5798)\n", - " 6\tCALL_FUNCTION(arg=1, lineno=5798)\n", - " 8\tRETURN_VALUE(arg=None, lineno=5798)\n", - "2023-05-15 11:07:26,982 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:26,982 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:26,983 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=5798)\n", - "2023-05-15 11:07:26,984 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,984 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_DEREF(arg=0, lineno=5798)\n", - "2023-05-15 11:07:26,985 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:26,986 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=5798)\n", - "2023-05-15 11:07:26,986 | DEBUG | byteflow.py:279 | stack ['$2load_deref.0']\n", - "2023-05-15 11:07:26,987 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=CALL_FUNCTION(arg=1, lineno=5798)\n", - "2023-05-15 11:07:26,987 | DEBUG | byteflow.py:279 | stack ['$2load_deref.0', '$arr4.1']\n", - "2023-05-15 11:07:26,988 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=RETURN_VALUE(arg=None, lineno=5798)\n", - "2023-05-15 11:07:26,989 | DEBUG | byteflow.py:279 | stack ['$6call_function.2']\n", - "2023-05-15 11:07:26,989 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:26,990 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:26,990 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:26,991 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:26,991 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:26,992 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:26,993 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:26,993 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:26,994 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:26,994 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_deref.0'}), (4, {'res': '$arr4.1'}), (6, {'func': '$2load_deref.0', 'args': ['$arr4.1'], 'res': '$6call_function.2'}), (8, {'retval': '$6call_function.2', 'castval': '$8return_value.3'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:26,995 | DEBUG | interpreter.py:1342 | label 0:\n", - " arr = arg(0, name=arr) ['arr']\n", - " $2load_deref.0 = freevar(sort_func: .run_quicksort at 0x7ff8dbab8280>) ['$2load_deref.0']\n", - " $6call_function.2 = call $2load_deref.0(arr, func=$2load_deref.0, args=[Var(arr, arrayobj.py:5798)], kws=(), vararg=None, varkwarg=None, target=None) ['$2load_deref.0', '$6call_function.2', 'arr']\n", - " $8return_value.3 = cast(value=$6call_function.2) ['$6call_function.2', '$8return_value.3']\n", - " return $8return_value.3 ['$8return_value.3']\n", - "\n", - "2023-05-15 11:07:27,005 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:27,005 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,006 | DEBUG | ssa.py:193 | on stmt: arr = arg(0, name=arr)\n", - "2023-05-15 11:07:27,007 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(sort_func: .run_quicksort at 0x7ff8dbab8280>)\n", - "2023-05-15 11:07:27,008 | DEBUG | ssa.py:193 | on stmt: $6call_function.2 = call $2load_deref.0(arr, func=$2load_deref.0, args=[Var(arr, arrayobj.py:5798)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,008 | DEBUG | ssa.py:193 | on stmt: $8return_value.3 = cast(value=$6call_function.2)\n", - "2023-05-15 11:07:27,009 | DEBUG | ssa.py:193 | on stmt: return $8return_value.3\n", - "2023-05-15 11:07:27,010 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$2load_deref.0': [],\n", - " '$6call_function.2': [],\n", - " '$8return_value.3': [],\n", - " 'arr': []})\n", - "2023-05-15 11:07:27,010 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:27,016 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=202)\n", - " 2\tLOAD_FAST(arg=0, lineno=202)\n", - " 4\tLOAD_ATTR(arg=0, lineno=202)\n", - " 6\tLOAD_CONST(arg=1, lineno=202)\n", - " 8\tCOMPARE_OP(arg=2, lineno=202)\n", - " 10\tPOP_JUMP_IF_FALSE(arg=11, lineno=202)\n", - " 12\tLOAD_DEREF(arg=0, lineno=203)\n", - " 14\tLOAD_FAST(arg=0, lineno=203)\n", - " 16\tCALL_FUNCTION(arg=1, lineno=203)\n", - " 18\tRETURN_VALUE(arg=None, lineno=203)\n", - "> 20\tLOAD_GLOBAL(arg=1, lineno=205)\n", - " 22\tLOAD_METHOD(arg=2, lineno=205)\n", - " 24\tLOAD_FAST(arg=0, lineno=205)\n", - " 26\tLOAD_ATTR(arg=3, lineno=205)\n", - " 28\tLOAD_CONST(arg=0, lineno=205)\n", - " 30\tLOAD_CONST(arg=2, lineno=205)\n", - " 32\tBUILD_SLICE(arg=2, lineno=205)\n", - " 34\tBINARY_SUBSCR(arg=None, lineno=205)\n", - " 36\tCALL_METHOD(arg=1, lineno=205)\n", - " 38\tGET_ITER(arg=None, lineno=205)\n", - "> 40\tFOR_ITER(arg=8, lineno=205)\n", - " 42\tSTORE_FAST(arg=1, lineno=205)\n", - " 44\tLOAD_DEREF(arg=0, lineno=206)\n", - " 46\tLOAD_FAST(arg=0, lineno=206)\n", - " 48\tLOAD_FAST(arg=1, lineno=206)\n", - " 50\tBINARY_SUBSCR(arg=None, lineno=206)\n", - " 52\tCALL_FUNCTION(arg=1, lineno=206)\n", - " 54\tPOP_TOP(arg=None, lineno=206)\n", - " 56\tJUMP_ABSOLUTE(arg=21, lineno=206)\n", - "> 58\tLOAD_FAST(arg=0, lineno=207)\n", - " 60\tRETURN_VALUE(arg=None, lineno=207)\n", - "2023-05-15 11:07:27,016 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:27,017 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,018 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=202)\n", - "2023-05-15 11:07:27,018 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,019 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_FAST(arg=0, lineno=202)\n", - "2023-05-15 11:07:27,019 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,020 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_ATTR(arg=0, lineno=202)\n", - "2023-05-15 11:07:27,021 | DEBUG | byteflow.py:279 | stack ['$A2.0']\n", - "2023-05-15 11:07:27,023 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_CONST(arg=1, lineno=202)\n", - "2023-05-15 11:07:27,023 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1']\n", - "2023-05-15 11:07:27,024 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=COMPARE_OP(arg=2, lineno=202)\n", - "2023-05-15 11:07:27,024 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$const6.2']\n", - "2023-05-15 11:07:27,026 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=POP_JUMP_IF_FALSE(arg=11, lineno=202)\n", - "2023-05-15 11:07:27,026 | DEBUG | byteflow.py:279 | stack ['$8compare_op.3']\n", - "2023-05-15 11:07:27,027 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=12, stack=(), blockstack=(), npush=0), Edge(pc=20, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:27,027 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=12 nstack_initial=0), State(pc_initial=20 nstack_initial=0)])\n", - "2023-05-15 11:07:27,029 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,029 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=LOAD_DEREF(arg=0, lineno=203)\n", - "2023-05-15 11:07:27,030 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,030 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=LOAD_FAST(arg=0, lineno=203)\n", - "2023-05-15 11:07:27,031 | DEBUG | byteflow.py:279 | stack ['$12load_deref.0']\n", - "2023-05-15 11:07:27,031 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=CALL_FUNCTION(arg=1, lineno=203)\n", - "2023-05-15 11:07:27,032 | DEBUG | byteflow.py:279 | stack ['$12load_deref.0', '$A14.1']\n", - "2023-05-15 11:07:27,033 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=RETURN_VALUE(arg=None, lineno=203)\n", - "2023-05-15 11:07:27,035 | DEBUG | byteflow.py:279 | stack ['$16call_function.2']\n", - "2023-05-15 11:07:27,035 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:27,036 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=20 nstack_initial=0)])\n", - "2023-05-15 11:07:27,036 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,038 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=LOAD_GLOBAL(arg=1, lineno=205)\n", - "2023-05-15 11:07:27,038 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,039 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=LOAD_METHOD(arg=2, lineno=205)\n", - "2023-05-15 11:07:27,040 | DEBUG | byteflow.py:279 | stack ['$20load_global.0']\n", - "2023-05-15 11:07:27,041 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=LOAD_FAST(arg=0, lineno=205)\n", - "2023-05-15 11:07:27,041 | DEBUG | byteflow.py:279 | stack ['$22load_method.1']\n", - "2023-05-15 11:07:27,042 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=LOAD_ATTR(arg=3, lineno=205)\n", - "2023-05-15 11:07:27,043 | DEBUG | byteflow.py:279 | stack ['$22load_method.1', '$A24.2']\n", - "2023-05-15 11:07:27,044 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=LOAD_CONST(arg=0, lineno=205)\n", - "2023-05-15 11:07:27,044 | DEBUG | byteflow.py:279 | stack ['$22load_method.1', '$26load_attr.3']\n", - "2023-05-15 11:07:27,045 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=LOAD_CONST(arg=2, lineno=205)\n", - "2023-05-15 11:07:27,046 | DEBUG | byteflow.py:279 | stack ['$22load_method.1', '$26load_attr.3', '$const28.4']\n", - "2023-05-15 11:07:27,047 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=BUILD_SLICE(arg=2, lineno=205)\n", - "2023-05-15 11:07:27,047 | DEBUG | byteflow.py:279 | stack ['$22load_method.1', '$26load_attr.3', '$const28.4', '$const30.5']\n", - "2023-05-15 11:07:27,048 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=BINARY_SUBSCR(arg=None, lineno=205)\n", - "2023-05-15 11:07:27,049 | DEBUG | byteflow.py:279 | stack ['$22load_method.1', '$26load_attr.3', '$32build_slice.7']\n", - "2023-05-15 11:07:27,049 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=CALL_METHOD(arg=1, lineno=205)\n", - "2023-05-15 11:07:27,050 | DEBUG | byteflow.py:279 | stack ['$22load_method.1', '$34binary_subscr.8']\n", - "2023-05-15 11:07:27,051 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=GET_ITER(arg=None, lineno=205)\n", - "2023-05-15 11:07:27,052 | DEBUG | byteflow.py:279 | stack ['$36call_method.9']\n", - "2023-05-15 11:07:27,052 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=40, stack=('$38get_iter.10',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:27,053 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=40 nstack_initial=1)])\n", - "2023-05-15 11:07:27,053 | DEBUG | byteflow.py:103 | stack: ['$phi40.0']\n", - "2023-05-15 11:07:27,054 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=FOR_ITER(arg=8, lineno=205)\n", - "2023-05-15 11:07:27,054 | DEBUG | byteflow.py:279 | stack ['$phi40.0']\n", - "2023-05-15 11:07:27,055 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=58, stack=(), blockstack=(), npush=0), Edge(pc=42, stack=('$phi40.0', '$40for_iter.2'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:27,057 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=58 nstack_initial=0), State(pc_initial=42 nstack_initial=2)])\n", - "2023-05-15 11:07:27,058 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,058 | DEBUG | byteflow.py:278 | dispatch pc=58, inst=LOAD_FAST(arg=0, lineno=207)\n", - "2023-05-15 11:07:27,059 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,060 | DEBUG | byteflow.py:278 | dispatch pc=60, inst=RETURN_VALUE(arg=None, lineno=207)\n", - "2023-05-15 11:07:27,060 | DEBUG | byteflow.py:279 | stack ['$A58.0']\n", - "2023-05-15 11:07:27,062 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:27,062 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=42 nstack_initial=2)])\n", - "2023-05-15 11:07:27,063 | DEBUG | byteflow.py:103 | stack: ['$phi42.0', '$phi42.1']\n", - "2023-05-15 11:07:27,063 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=STORE_FAST(arg=1, lineno=205)\n", - "2023-05-15 11:07:27,065 | DEBUG | byteflow.py:279 | stack ['$phi42.0', '$phi42.1']\n", - "2023-05-15 11:07:27,065 | DEBUG | byteflow.py:278 | dispatch pc=44, inst=LOAD_DEREF(arg=0, lineno=206)\n", - "2023-05-15 11:07:27,066 | DEBUG | byteflow.py:279 | stack ['$phi42.0']\n", - "2023-05-15 11:07:27,066 | DEBUG | byteflow.py:278 | dispatch pc=46, inst=LOAD_FAST(arg=0, lineno=206)\n", - "2023-05-15 11:07:27,068 | DEBUG | byteflow.py:279 | stack ['$phi42.0', '$44load_deref.2']\n", - "2023-05-15 11:07:27,068 | DEBUG | byteflow.py:278 | dispatch pc=48, inst=LOAD_FAST(arg=1, lineno=206)\n", - "2023-05-15 11:07:27,069 | DEBUG | byteflow.py:279 | stack ['$phi42.0', '$44load_deref.2', '$A46.3']\n", - "2023-05-15 11:07:27,069 | DEBUG | byteflow.py:278 | dispatch pc=50, inst=BINARY_SUBSCR(arg=None, lineno=206)\n", - "2023-05-15 11:07:27,070 | DEBUG | byteflow.py:279 | stack ['$phi42.0', '$44load_deref.2', '$A46.3', '$idx48.4']\n", - "2023-05-15 11:07:27,070 | DEBUG | byteflow.py:278 | dispatch pc=52, inst=CALL_FUNCTION(arg=1, lineno=206)\n", - "2023-05-15 11:07:27,071 | DEBUG | byteflow.py:279 | stack ['$phi42.0', '$44load_deref.2', '$50binary_subscr.5']\n", - "2023-05-15 11:07:27,073 | DEBUG | byteflow.py:278 | dispatch pc=54, inst=POP_TOP(arg=None, lineno=206)\n", - "2023-05-15 11:07:27,073 | DEBUG | byteflow.py:279 | stack ['$phi42.0', '$52call_function.6']\n", - "2023-05-15 11:07:27,074 | DEBUG | byteflow.py:278 | dispatch pc=56, inst=JUMP_ABSOLUTE(arg=21, lineno=206)\n", - "2023-05-15 11:07:27,074 | DEBUG | byteflow.py:279 | stack ['$phi42.0']\n", - "2023-05-15 11:07:27,076 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=40, stack=('$phi42.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:27,076 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=40 nstack_initial=1)])\n", - "2023-05-15 11:07:27,077 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:27,077 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=12 nstack_initial=0): set(),\n", - " State(pc_initial=20 nstack_initial=0): set(),\n", - " State(pc_initial=40 nstack_initial=1): {'$phi40.0'},\n", - " State(pc_initial=42 nstack_initial=2): {'$phi42.1'},\n", - " State(pc_initial=58 nstack_initial=0): set()})\n", - "2023-05-15 11:07:27,078 | DEBUG | byteflow.py:192 | defmap: {'$phi40.0': State(pc_initial=20 nstack_initial=0),\n", - " '$phi42.1': State(pc_initial=40 nstack_initial=1)}\n", - "2023-05-15 11:07:27,078 | DEBUG | byteflow.py:193 | phismap: defaultdict(,\n", - " {'$phi40.0': {('$38get_iter.10',\n", - " State(pc_initial=20 nstack_initial=0)),\n", - " ('$phi42.0', State(pc_initial=42 nstack_initial=2))},\n", - " '$phi42.0': {('$phi40.0', State(pc_initial=40 nstack_initial=1))},\n", - " '$phi42.1': {('$40for_iter.2',\n", - " State(pc_initial=40 nstack_initial=1))}})\n", - "2023-05-15 11:07:27,079 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi40.0': {('$38get_iter.10',\n", - " State(pc_initial=20 nstack_initial=0)),\n", - " ('$phi40.0', State(pc_initial=40 nstack_initial=1))},\n", - " '$phi42.0': {('$38get_iter.10',\n", - " State(pc_initial=20 nstack_initial=0))},\n", - " '$phi42.1': {('$40for_iter.2',\n", - " State(pc_initial=40 nstack_initial=1))}})\n", - "2023-05-15 11:07:27,080 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi40.0': {('$38get_iter.10',\n", - " State(pc_initial=20 nstack_initial=0))},\n", - " '$phi42.0': {('$38get_iter.10',\n", - " State(pc_initial=20 nstack_initial=0))},\n", - " '$phi42.1': {('$40for_iter.2',\n", - " State(pc_initial=40 nstack_initial=1))}})\n", - "2023-05-15 11:07:27,080 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi40.0': {('$38get_iter.10',\n", - " State(pc_initial=20 nstack_initial=0))},\n", - " '$phi42.0': {('$38get_iter.10',\n", - " State(pc_initial=20 nstack_initial=0))},\n", - " '$phi42.1': {('$40for_iter.2',\n", - " State(pc_initial=40 nstack_initial=1))}})\n", - "2023-05-15 11:07:27,082 | DEBUG | byteflow.py:223 | keep phismap: {'$phi40.0': {('$38get_iter.10', State(pc_initial=20 nstack_initial=0))},\n", - " '$phi42.1': {('$40for_iter.2', State(pc_initial=40 nstack_initial=1))}}\n", - "2023-05-15 11:07:27,082 | DEBUG | byteflow.py:229 | new_out: defaultdict(,\n", - " {State(pc_initial=20 nstack_initial=0): {'$phi40.0': '$38get_iter.10'},\n", - " State(pc_initial=40 nstack_initial=1): {'$phi42.1': '$40for_iter.2'}})\n", - "2023-05-15 11:07:27,083 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:27,083 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$A2.0'}), (4, {'item': '$A2.0', 'res': '$4load_attr.1'}), (6, {'res': '$const6.2'}), (8, {'lhs': '$4load_attr.1', 'rhs': '$const6.2', 'res': '$8compare_op.3'}), (10, {'pred': '$8compare_op.3'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={12: (), 20: ()})\n", - "2023-05-15 11:07:27,084 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=12 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((12, {'res': '$12load_deref.0'}), (14, {'res': '$A14.1'}), (16, {'func': '$12load_deref.0', 'args': ['$A14.1'], 'res': '$16call_function.2'}), (18, {'retval': '$16call_function.2', 'castval': '$18return_value.3'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:27,085 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=20 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((20, {'res': '$20load_global.0'}), (22, {'item': '$20load_global.0', 'res': '$22load_method.1'}), (24, {'res': '$A24.2'}), (26, {'item': '$A24.2', 'res': '$26load_attr.3'}), (28, {'res': '$const28.4'}), (30, {'res': '$const30.5'}), (32, {'start': '$const28.4', 'stop': '$const30.5', 'step': None, 'res': '$32build_slice.7', 'slicevar': '$32build_slice.6'}), (34, {'index': '$32build_slice.7', 'target': '$26load_attr.3', 'res': '$34binary_subscr.8'}), (36, {'func': '$22load_method.1', 'args': ['$34binary_subscr.8'], 'res': '$36call_method.9'}), (38, {'value': '$36call_method.9', 'res': '$38get_iter.10'})), outgoing_phis={'$phi40.0': '$38get_iter.10'}, blockstack=(), active_try_block=None, outgoing_edgepushed={40: ('$38get_iter.10',)})\n", - "2023-05-15 11:07:27,085 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=40 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((40, {'iterator': '$phi40.0', 'pair': '$40for_iter.1', 'indval': '$40for_iter.2', 'pred': '$40for_iter.3'}),), outgoing_phis={'$phi42.1': '$40for_iter.2'}, blockstack=(), active_try_block=None, outgoing_edgepushed={58: (), 42: ('$phi40.0', '$40for_iter.2')})\n", - "2023-05-15 11:07:27,086 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=42 nstack_initial=2):\n", - "AdaptBlockInfo(insts=((42, {'value': '$phi42.1'}), (44, {'res': '$44load_deref.2'}), (46, {'res': '$A46.3'}), (48, {'res': '$idx48.4'}), (50, {'index': '$idx48.4', 'target': '$A46.3', 'res': '$50binary_subscr.5'}), (52, {'func': '$44load_deref.2', 'args': ['$50binary_subscr.5'], 'res': '$52call_function.6'}), (56, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={40: ('$phi42.0',)})\n", - "2023-05-15 11:07:27,086 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=58 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((58, {'res': '$A58.0'}), (60, {'retval': '$A58.0', 'castval': '$60return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:27,088 | DEBUG | interpreter.py:1342 | label 0:\n", - " A = arg(0, name=A) ['A']\n", - " $4load_attr.1 = getattr(value=A, attr=ndim) ['$4load_attr.1', 'A']\n", - " $const6.2 = const(int, 1) ['$const6.2']\n", - " $8compare_op.3 = $4load_attr.1 == $const6.2 ['$4load_attr.1', '$8compare_op.3', '$const6.2']\n", - " bool10 = global(bool: ) ['bool10']\n", - " $10pred = call bool10($8compare_op.3, func=bool10, args=(Var($8compare_op.3, quicksort.py:202),), kws=(), vararg=None, varkwarg=None, target=None) ['$10pred', '$8compare_op.3', 'bool10']\n", - " branch $10pred, 12, 20 ['$10pred']\n", - "label 12:\n", - " $12load_deref.0 = freevar(run_quicksort1: .run_quicksort1 at 0x7ff8dbab8160>) ['$12load_deref.0']\n", - " $16call_function.2 = call $12load_deref.0(A, func=$12load_deref.0, args=[Var(A, quicksort.py:202)], kws=(), vararg=None, varkwarg=None, target=None) ['$12load_deref.0', '$16call_function.2', 'A']\n", - " $18return_value.3 = cast(value=$16call_function.2) ['$16call_function.2', '$18return_value.3']\n", - " return $18return_value.3 ['$18return_value.3']\n", - "label 20:\n", - " $20load_global.0 = global(np: ) ['$20load_global.0']\n", - " $22load_method.1 = getattr(value=$20load_global.0, attr=ndindex) ['$20load_global.0', '$22load_method.1']\n", - " $26load_attr.3 = getattr(value=A, attr=shape) ['$26load_attr.3', 'A']\n", - " $const28.4 = const(NoneType, None) ['$const28.4']\n", - " $const30.5 = const(int, -1) ['$const30.5']\n", - " $32build_slice.6 = global(slice: ) ['$32build_slice.6']\n", - " $32build_slice.7 = call $32build_slice.6($const28.4, $const30.5, func=$32build_slice.6, args=(Var($const28.4, quicksort.py:205), Var($const30.5, quicksort.py:205)), kws=(), vararg=None, varkwarg=None, target=None) ['$32build_slice.6', '$32build_slice.7', '$const28.4', '$const30.5']\n", - " $34binary_subscr.8 = getitem(value=$26load_attr.3, index=$32build_slice.7, fn=) ['$26load_attr.3', '$32build_slice.7', '$34binary_subscr.8']\n", - " $36call_method.9 = call $22load_method.1($34binary_subscr.8, func=$22load_method.1, args=[Var($34binary_subscr.8, quicksort.py:205)], kws=(), vararg=None, varkwarg=None, target=None) ['$22load_method.1', '$34binary_subscr.8', '$36call_method.9']\n", - " $38get_iter.10 = getiter(value=$36call_method.9) ['$36call_method.9', '$38get_iter.10']\n", - " $phi40.0 = $38get_iter.10 ['$38get_iter.10', '$phi40.0']\n", - " jump 40 []\n", - "label 40:\n", - " $40for_iter.1 = iternext(value=$phi40.0) ['$40for_iter.1', '$phi40.0']\n", - " $40for_iter.2 = pair_first(value=$40for_iter.1) ['$40for_iter.1', '$40for_iter.2']\n", - " $40for_iter.3 = pair_second(value=$40for_iter.1) ['$40for_iter.1', '$40for_iter.3']\n", - " $phi42.1 = $40for_iter.2 ['$40for_iter.2', '$phi42.1']\n", - " branch $40for_iter.3, 42, 58 ['$40for_iter.3']\n", - "label 42:\n", - " idx = $phi42.1 ['$phi42.1', 'idx']\n", - " $44load_deref.2 = freevar(run_quicksort1: .run_quicksort1 at 0x7ff8dbab8160>) ['$44load_deref.2']\n", - " $50binary_subscr.5 = getitem(value=A, index=idx, fn=) ['$50binary_subscr.5', 'A', 'idx']\n", - " $52call_function.6 = call $44load_deref.2($50binary_subscr.5, func=$44load_deref.2, args=[Var($50binary_subscr.5, quicksort.py:206)], kws=(), vararg=None, varkwarg=None, target=None) ['$44load_deref.2', '$50binary_subscr.5', '$52call_function.6']\n", - " jump 40 []\n", - "label 58:\n", - " $60return_value.1 = cast(value=A) ['$60return_value.1', 'A']\n", - " return $60return_value.1 ['$60return_value.1']\n", - "\n", - "2023-05-15 11:07:27,095 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:27,095 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,096 | DEBUG | ssa.py:193 | on stmt: A = arg(0, name=A)\n", - "2023-05-15 11:07:27,096 | DEBUG | ssa.py:193 | on stmt: $4load_attr.1 = const(int, 1)\n", - "2023-05-15 11:07:27,098 | DEBUG | ssa.py:193 | on stmt: $const6.2 = const(int, 1)\n", - "2023-05-15 11:07:27,098 | DEBUG | ssa.py:193 | on stmt: $8compare_op.3 = const(int, 1)\n", - "2023-05-15 11:07:27,099 | DEBUG | ssa.py:193 | on stmt: bool10 = global(bool: )\n", - "2023-05-15 11:07:27,099 | DEBUG | ssa.py:193 | on stmt: $10pred = call bool10($8compare_op.3, func=bool10, args=(Var($8compare_op.3, quicksort.py:202),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,099 | DEBUG | ssa.py:193 | on stmt: jump 12\n", - "2023-05-15 11:07:27,100 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 12\n", - "2023-05-15 11:07:27,100 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,101 | DEBUG | ssa.py:193 | on stmt: $12load_deref.0 = freevar(run_quicksort1: .run_quicksort1 at 0x7ff8dbab8160>)\n", - "2023-05-15 11:07:27,102 | DEBUG | ssa.py:193 | on stmt: $16call_function.2 = call $12load_deref.0(A, func=$12load_deref.0, args=[Var(A, quicksort.py:202)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,102 | DEBUG | ssa.py:193 | on stmt: $18return_value.3 = cast(value=$16call_function.2)\n", - "2023-05-15 11:07:27,102 | DEBUG | ssa.py:193 | on stmt: return $18return_value.3\n", - "2023-05-15 11:07:27,103 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10pred': [],\n", - " '$12load_deref.0': [],\n", - " '$16call_function.2': [],\n", - " '$18return_value.3': [],\n", - " '$4load_attr.1': [],\n", - " '$8compare_op.3': [],\n", - " '$const6.2': [],\n", - " 'A': [],\n", - " 'bool10': []})\n", - "2023-05-15 11:07:27,103 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:27,109 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=166)\n", - " 2\tLOAD_DEREF(arg=1, lineno=166)\n", - " 4\tLOAD_FAST(arg=0, lineno=166)\n", - " 6\tCALL_FUNCTION(arg=1, lineno=166)\n", - " 8\tSTORE_FAST(arg=1, lineno=166)\n", - " 10\tLOAD_GLOBAL(arg=0, lineno=168)\n", - " 12\tLOAD_FAST(arg=0, lineno=168)\n", - " 14\tCALL_FUNCTION(arg=1, lineno=168)\n", - " 16\tLOAD_CONST(arg=1, lineno=168)\n", - " 18\tCOMPARE_OP(arg=0, lineno=168)\n", - " 20\tPOP_JUMP_IF_FALSE(arg=14, lineno=168)\n", - " 22\tLOAD_FAST(arg=1, lineno=169)\n", - " 24\tRETURN_VALUE(arg=None, lineno=169)\n", - "> 26\tLOAD_GLOBAL(arg=1, lineno=171)\n", - " 28\tLOAD_DEREF(arg=3, lineno=171)\n", - " 30\tLOAD_DEREF(arg=3, lineno=171)\n", - " 32\tCALL_FUNCTION(arg=2, lineno=171)\n", - " 34\tBUILD_LIST(arg=1, lineno=171)\n", - " 36\tLOAD_GLOBAL(arg=2, lineno=171)\n", - " 38\tBINARY_MULTIPLY(arg=None, lineno=171)\n", - " 40\tSTORE_FAST(arg=2, lineno=171)\n", - " 42\tLOAD_GLOBAL(arg=1, lineno=172)\n", - " 44\tLOAD_DEREF(arg=3, lineno=172)\n", - " 46\tLOAD_GLOBAL(arg=0, lineno=172)\n", - " 48\tLOAD_FAST(arg=0, lineno=172)\n", - " 50\tCALL_FUNCTION(arg=1, lineno=172)\n", - " 52\tLOAD_CONST(arg=2, lineno=172)\n", - " 54\tBINARY_SUBTRACT(arg=None, lineno=172)\n", - " 56\tCALL_FUNCTION(arg=2, lineno=172)\n", - " 58\tLOAD_FAST(arg=2, lineno=172)\n", - " 60\tLOAD_CONST(arg=3, lineno=172)\n", - " 62\tSTORE_SUBSCR(arg=None, lineno=172)\n", - " 64\tLOAD_CONST(arg=2, lineno=173)\n", - " 66\tSTORE_FAST(arg=3, lineno=173)\n", - " 68\tLOAD_FAST(arg=3, lineno=175)\n", - " 70\tLOAD_CONST(arg=3, lineno=175)\n", - " 72\tCOMPARE_OP(arg=4, lineno=175)\n", - " 74\tPOP_JUMP_IF_FALSE(arg=136, lineno=175)\n", - "> 76\tLOAD_FAST(arg=3, lineno=176)\n", - " 78\tLOAD_CONST(arg=2, lineno=176)\n", - " 80\tINPLACE_SUBTRACT(arg=None, lineno=176)\n", - " 82\tSTORE_FAST(arg=3, lineno=176)\n", - " 84\tLOAD_FAST(arg=2, lineno=177)\n", - " 86\tLOAD_FAST(arg=3, lineno=177)\n", - " 88\tBINARY_SUBSCR(arg=None, lineno=177)\n", - " 90\tUNPACK_SEQUENCE(arg=2, lineno=177)\n", - " 92\tSTORE_FAST(arg=4, lineno=177)\n", - " 94\tSTORE_FAST(arg=5, lineno=177)\n", - " 96\tLOAD_FAST(arg=5, lineno=179)\n", - " 98\tLOAD_FAST(arg=4, lineno=179)\n", - " 100\tBINARY_SUBTRACT(arg=None, lineno=179)\n", - " 102\tLOAD_GLOBAL(arg=3, lineno=179)\n", - " 104\tCOMPARE_OP(arg=5, lineno=179)\n", - " 106\tPOP_JUMP_IF_FALSE(arg=125, lineno=179)\n", - "> 108\tLOAD_FAST(arg=3, lineno=180)\n", - " 110\tLOAD_GLOBAL(arg=2, lineno=180)\n", - " 112\tCOMPARE_OP(arg=0, lineno=180)\n", - " 114\tPOP_JUMP_IF_TRUE(arg=61, lineno=180)\n", - " 116\tLOAD_ASSERTION_ERROR(arg=None, lineno=180)\n", - " 118\tRAISE_VARARGS(arg=1, lineno=180)\n", - "> 120\tLOAD_DEREF(arg=2, lineno=181)\n", - " 122\tLOAD_FAST(arg=0, lineno=181)\n", - " 124\tLOAD_FAST(arg=1, lineno=181)\n", - " 126\tLOAD_FAST(arg=4, lineno=181)\n", - " 128\tLOAD_FAST(arg=5, lineno=181)\n", - " 130\tCALL_FUNCTION(arg=4, lineno=181)\n", - " 132\tSTORE_FAST(arg=6, lineno=181)\n", - " 134\tLOAD_FAST(arg=5, lineno=183)\n", - " 136\tLOAD_FAST(arg=6, lineno=183)\n", - " 138\tBINARY_SUBTRACT(arg=None, lineno=183)\n", - " 140\tLOAD_FAST(arg=6, lineno=183)\n", - " 142\tLOAD_FAST(arg=4, lineno=183)\n", - " 144\tBINARY_SUBTRACT(arg=None, lineno=183)\n", - " 146\tCOMPARE_OP(arg=4, lineno=183)\n", - " 148\tPOP_JUMP_IF_FALSE(arg=98, lineno=183)\n", - " 150\tLOAD_FAST(arg=5, lineno=185)\n", - " 152\tLOAD_FAST(arg=6, lineno=185)\n", - " 154\tCOMPARE_OP(arg=4, lineno=185)\n", - " 156\tPOP_JUMP_IF_FALSE(arg=93, lineno=185)\n", - " 158\tLOAD_GLOBAL(arg=1, lineno=186)\n", - " 160\tLOAD_FAST(arg=6, lineno=186)\n", - " 162\tLOAD_CONST(arg=2, lineno=186)\n", - " 164\tBINARY_ADD(arg=None, lineno=186)\n", - " 166\tLOAD_FAST(arg=5, lineno=186)\n", - " 168\tCALL_FUNCTION(arg=2, lineno=186)\n", - " 170\tLOAD_FAST(arg=2, lineno=186)\n", - " 172\tLOAD_FAST(arg=3, lineno=186)\n", - " 174\tSTORE_SUBSCR(arg=None, lineno=186)\n", - " 176\tLOAD_FAST(arg=3, lineno=187)\n", - " 178\tLOAD_CONST(arg=2, lineno=187)\n", - " 180\tINPLACE_ADD(arg=None, lineno=187)\n", - " 182\tSTORE_FAST(arg=3, lineno=187)\n", - "> 184\tLOAD_FAST(arg=6, lineno=188)\n", - " 186\tLOAD_CONST(arg=2, lineno=188)\n", - " 188\tBINARY_SUBTRACT(arg=None, lineno=188)\n", - " 190\tSTORE_FAST(arg=5, lineno=188)\n", - " 192\tJUMP_FORWARD(arg=21, lineno=188)\n", - "> 194\tLOAD_FAST(arg=6, lineno=190)\n", - " 196\tLOAD_FAST(arg=4, lineno=190)\n", - " 198\tCOMPARE_OP(arg=4, lineno=190)\n", - " 200\tPOP_JUMP_IF_FALSE(arg=115, lineno=190)\n", - " 202\tLOAD_GLOBAL(arg=1, lineno=191)\n", - " 204\tLOAD_FAST(arg=4, lineno=191)\n", - " 206\tLOAD_FAST(arg=6, lineno=191)\n", - " 208\tLOAD_CONST(arg=2, lineno=191)\n", - " 210\tBINARY_SUBTRACT(arg=None, lineno=191)\n", - " 212\tCALL_FUNCTION(arg=2, lineno=191)\n", - " 214\tLOAD_FAST(arg=2, lineno=191)\n", - " 216\tLOAD_FAST(arg=3, lineno=191)\n", - " 218\tSTORE_SUBSCR(arg=None, lineno=191)\n", - " 220\tLOAD_FAST(arg=3, lineno=192)\n", - " 222\tLOAD_CONST(arg=2, lineno=192)\n", - " 224\tINPLACE_ADD(arg=None, lineno=192)\n", - " 226\tSTORE_FAST(arg=3, lineno=192)\n", - "> 228\tLOAD_FAST(arg=6, lineno=193)\n", - " 230\tLOAD_CONST(arg=2, lineno=193)\n", - " 232\tBINARY_ADD(arg=None, lineno=193)\n", - " 234\tSTORE_FAST(arg=4, lineno=193)\n", - "> 236\tLOAD_FAST(arg=5, lineno=179)\n", - " 238\tLOAD_FAST(arg=4, lineno=179)\n", - " 240\tBINARY_SUBTRACT(arg=None, lineno=179)\n", - " 242\tLOAD_GLOBAL(arg=3, lineno=179)\n", - " 244\tCOMPARE_OP(arg=5, lineno=179)\n", - " 246\tPOP_JUMP_IF_TRUE(arg=55, lineno=179)\n", - "> 248\tLOAD_DEREF(arg=0, lineno=195)\n", - " 250\tLOAD_FAST(arg=0, lineno=195)\n", - " 252\tLOAD_FAST(arg=1, lineno=195)\n", - " 254\tLOAD_FAST(arg=4, lineno=195)\n", - " 256\tLOAD_FAST(arg=5, lineno=195)\n", - " 258\tCALL_FUNCTION(arg=4, lineno=195)\n", - " 260\tPOP_TOP(arg=None, lineno=195)\n", - " 262\tLOAD_FAST(arg=3, lineno=175)\n", - " 264\tLOAD_CONST(arg=3, lineno=175)\n", - " 266\tCOMPARE_OP(arg=4, lineno=175)\n", - " 268\tPOP_JUMP_IF_TRUE(arg=39, lineno=175)\n", - "> 270\tLOAD_FAST(arg=1, lineno=197)\n", - " 272\tRETURN_VALUE(arg=None, lineno=197)\n", - "2023-05-15 11:07:27,110 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:27,110 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,111 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=166)\n", - "2023-05-15 11:07:27,111 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,112 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_DEREF(arg=1, lineno=166)\n", - "2023-05-15 11:07:27,112 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,113 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=166)\n", - "2023-05-15 11:07:27,114 | DEBUG | byteflow.py:279 | stack ['$2load_deref.0']\n", - "2023-05-15 11:07:27,114 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=CALL_FUNCTION(arg=1, lineno=166)\n", - "2023-05-15 11:07:27,115 | DEBUG | byteflow.py:279 | stack ['$2load_deref.0', '$A4.1']\n", - "2023-05-15 11:07:27,115 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=STORE_FAST(arg=1, lineno=166)\n", - "2023-05-15 11:07:27,116 | DEBUG | byteflow.py:279 | stack ['$6call_function.2']\n", - "2023-05-15 11:07:27,116 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_GLOBAL(arg=0, lineno=168)\n", - "2023-05-15 11:07:27,117 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,117 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=LOAD_FAST(arg=0, lineno=168)\n", - "2023-05-15 11:07:27,118 | DEBUG | byteflow.py:279 | stack ['$10load_global.3']\n", - "2023-05-15 11:07:27,118 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=CALL_FUNCTION(arg=1, lineno=168)\n", - "2023-05-15 11:07:27,118 | DEBUG | byteflow.py:279 | stack ['$10load_global.3', '$A12.4']\n", - "2023-05-15 11:07:27,119 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=LOAD_CONST(arg=1, lineno=168)\n", - "2023-05-15 11:07:27,119 | DEBUG | byteflow.py:279 | stack ['$14call_function.5']\n", - "2023-05-15 11:07:27,121 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=COMPARE_OP(arg=0, lineno=168)\n", - "2023-05-15 11:07:27,121 | DEBUG | byteflow.py:279 | stack ['$14call_function.5', '$const16.6']\n", - "2023-05-15 11:07:27,121 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=POP_JUMP_IF_FALSE(arg=14, lineno=168)\n", - "2023-05-15 11:07:27,122 | DEBUG | byteflow.py:279 | stack ['$18compare_op.7']\n", - "2023-05-15 11:07:27,122 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=22, stack=(), blockstack=(), npush=0), Edge(pc=26, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:27,123 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=22 nstack_initial=0), State(pc_initial=26 nstack_initial=0)])\n", - "2023-05-15 11:07:27,124 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,124 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=LOAD_FAST(arg=1, lineno=169)\n", - "2023-05-15 11:07:27,124 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,125 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=RETURN_VALUE(arg=None, lineno=169)\n", - "2023-05-15 11:07:27,125 | DEBUG | byteflow.py:279 | stack ['$R22.0']\n", - "2023-05-15 11:07:27,126 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:27,126 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=26 nstack_initial=0)])\n", - "2023-05-15 11:07:27,127 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,127 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=LOAD_GLOBAL(arg=1, lineno=171)\n", - "2023-05-15 11:07:27,128 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,128 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=LOAD_DEREF(arg=3, lineno=171)\n", - "2023-05-15 11:07:27,129 | DEBUG | byteflow.py:279 | stack ['$26load_global.0']\n", - "2023-05-15 11:07:27,129 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=LOAD_DEREF(arg=3, lineno=171)\n", - "2023-05-15 11:07:27,129 | DEBUG | byteflow.py:279 | stack ['$26load_global.0', '$28load_deref.1']\n", - "2023-05-15 11:07:27,130 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=CALL_FUNCTION(arg=2, lineno=171)\n", - "2023-05-15 11:07:27,130 | DEBUG | byteflow.py:279 | stack ['$26load_global.0', '$28load_deref.1', '$30load_deref.2']\n", - "2023-05-15 11:07:27,131 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=BUILD_LIST(arg=1, lineno=171)\n", - "2023-05-15 11:07:27,131 | DEBUG | byteflow.py:279 | stack ['$32call_function.3']\n", - "2023-05-15 11:07:27,131 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=LOAD_GLOBAL(arg=2, lineno=171)\n", - "2023-05-15 11:07:27,133 | DEBUG | byteflow.py:279 | stack ['$34build_list.4']\n", - "2023-05-15 11:07:27,134 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=BINARY_MULTIPLY(arg=None, lineno=171)\n", - "2023-05-15 11:07:27,134 | DEBUG | byteflow.py:279 | stack ['$34build_list.4', '$36load_global.5']\n", - "2023-05-15 11:07:27,134 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=STORE_FAST(arg=2, lineno=171)\n", - "2023-05-15 11:07:27,135 | DEBUG | byteflow.py:279 | stack ['$38binary_multiply.6']\n", - "2023-05-15 11:07:27,135 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=LOAD_GLOBAL(arg=1, lineno=172)\n", - "2023-05-15 11:07:27,136 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,136 | DEBUG | byteflow.py:278 | dispatch pc=44, inst=LOAD_DEREF(arg=3, lineno=172)\n", - "2023-05-15 11:07:27,137 | DEBUG | byteflow.py:279 | stack ['$42load_global.7']\n", - "2023-05-15 11:07:27,138 | DEBUG | byteflow.py:278 | dispatch pc=46, inst=LOAD_GLOBAL(arg=0, lineno=172)\n", - "2023-05-15 11:07:27,138 | DEBUG | byteflow.py:279 | stack ['$42load_global.7', '$44load_deref.8']\n", - "2023-05-15 11:07:27,138 | DEBUG | byteflow.py:278 | dispatch pc=48, inst=LOAD_FAST(arg=0, lineno=172)\n", - "2023-05-15 11:07:27,139 | DEBUG | byteflow.py:279 | stack ['$42load_global.7', '$44load_deref.8', '$46load_global.9']\n", - "2023-05-15 11:07:27,139 | DEBUG | byteflow.py:278 | dispatch pc=50, inst=CALL_FUNCTION(arg=1, lineno=172)\n", - "2023-05-15 11:07:27,140 | DEBUG | byteflow.py:279 | stack ['$42load_global.7', '$44load_deref.8', '$46load_global.9', '$A48.10']\n", - "2023-05-15 11:07:27,140 | DEBUG | byteflow.py:278 | dispatch pc=52, inst=LOAD_CONST(arg=2, lineno=172)\n", - "2023-05-15 11:07:27,141 | DEBUG | byteflow.py:279 | stack ['$42load_global.7', '$44load_deref.8', '$50call_function.11']\n", - "2023-05-15 11:07:27,141 | DEBUG | byteflow.py:278 | dispatch pc=54, inst=BINARY_SUBTRACT(arg=None, lineno=172)\n", - "2023-05-15 11:07:27,142 | DEBUG | byteflow.py:279 | stack ['$42load_global.7', '$44load_deref.8', '$50call_function.11', '$const52.12']\n", - "2023-05-15 11:07:27,142 | DEBUG | byteflow.py:278 | dispatch pc=56, inst=CALL_FUNCTION(arg=2, lineno=172)\n", - "2023-05-15 11:07:27,142 | DEBUG | byteflow.py:279 | stack ['$42load_global.7', '$44load_deref.8', '$54binary_subtract.13']\n", - "2023-05-15 11:07:27,143 | DEBUG | byteflow.py:278 | dispatch pc=58, inst=LOAD_FAST(arg=2, lineno=172)\n", - "2023-05-15 11:07:27,143 | DEBUG | byteflow.py:279 | stack ['$56call_function.14']\n", - "2023-05-15 11:07:27,144 | DEBUG | byteflow.py:278 | dispatch pc=60, inst=LOAD_CONST(arg=3, lineno=172)\n", - "2023-05-15 11:07:27,144 | DEBUG | byteflow.py:279 | stack ['$56call_function.14', '$stack58.15']\n", - "2023-05-15 11:07:27,145 | DEBUG | byteflow.py:278 | dispatch pc=62, inst=STORE_SUBSCR(arg=None, lineno=172)\n", - "2023-05-15 11:07:27,145 | DEBUG | byteflow.py:279 | stack ['$56call_function.14', '$stack58.15', '$const60.16']\n", - "2023-05-15 11:07:27,146 | DEBUG | byteflow.py:278 | dispatch pc=64, inst=LOAD_CONST(arg=2, lineno=173)\n", - "2023-05-15 11:07:27,149 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,150 | DEBUG | byteflow.py:278 | dispatch pc=66, inst=STORE_FAST(arg=3, lineno=173)\n", - "2023-05-15 11:07:27,150 | DEBUG | byteflow.py:279 | stack ['$const64.17']\n", - "2023-05-15 11:07:27,151 | DEBUG | byteflow.py:278 | dispatch pc=68, inst=LOAD_FAST(arg=3, lineno=175)\n", - "2023-05-15 11:07:27,152 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,152 | DEBUG | byteflow.py:278 | dispatch pc=70, inst=LOAD_CONST(arg=3, lineno=175)\n", - "2023-05-15 11:07:27,153 | DEBUG | byteflow.py:279 | stack ['$n68.18']\n", - "2023-05-15 11:07:27,153 | DEBUG | byteflow.py:278 | dispatch pc=72, inst=COMPARE_OP(arg=4, lineno=175)\n", - "2023-05-15 11:07:27,154 | DEBUG | byteflow.py:279 | stack ['$n68.18', '$const70.19']\n", - "2023-05-15 11:07:27,155 | DEBUG | byteflow.py:278 | dispatch pc=74, inst=POP_JUMP_IF_FALSE(arg=136, lineno=175)\n", - "2023-05-15 11:07:27,155 | DEBUG | byteflow.py:279 | stack ['$72compare_op.20']\n", - "2023-05-15 11:07:27,156 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=76, stack=(), blockstack=(), npush=0), Edge(pc=270, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:27,156 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=76 nstack_initial=0), State(pc_initial=270 nstack_initial=0)])\n", - "2023-05-15 11:07:27,157 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,157 | DEBUG | byteflow.py:278 | dispatch pc=76, inst=LOAD_FAST(arg=3, lineno=176)\n", - "2023-05-15 11:07:27,158 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,158 | DEBUG | byteflow.py:278 | dispatch pc=78, inst=LOAD_CONST(arg=2, lineno=176)\n", - "2023-05-15 11:07:27,159 | DEBUG | byteflow.py:279 | stack ['$n76.0']\n", - "2023-05-15 11:07:27,160 | DEBUG | byteflow.py:278 | dispatch pc=80, inst=INPLACE_SUBTRACT(arg=None, lineno=176)\n", - "2023-05-15 11:07:27,160 | DEBUG | byteflow.py:279 | stack ['$n76.0', '$const78.1']\n", - "2023-05-15 11:07:27,161 | DEBUG | byteflow.py:278 | dispatch pc=82, inst=STORE_FAST(arg=3, lineno=176)\n", - "2023-05-15 11:07:27,161 | DEBUG | byteflow.py:279 | stack ['$80inplace_subtract.2']\n", - "2023-05-15 11:07:27,163 | DEBUG | byteflow.py:278 | dispatch pc=84, inst=LOAD_FAST(arg=2, lineno=177)\n", - "2023-05-15 11:07:27,164 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,165 | DEBUG | byteflow.py:278 | dispatch pc=86, inst=LOAD_FAST(arg=3, lineno=177)\n", - "2023-05-15 11:07:27,166 | DEBUG | byteflow.py:279 | stack ['$stack84.3']\n", - "2023-05-15 11:07:27,166 | DEBUG | byteflow.py:278 | dispatch pc=88, inst=BINARY_SUBSCR(arg=None, lineno=177)\n", - "2023-05-15 11:07:27,167 | DEBUG | byteflow.py:279 | stack ['$stack84.3', '$n86.4']\n", - "2023-05-15 11:07:27,168 | DEBUG | byteflow.py:278 | dispatch pc=90, inst=UNPACK_SEQUENCE(arg=2, lineno=177)\n", - "2023-05-15 11:07:27,168 | DEBUG | byteflow.py:279 | stack ['$88binary_subscr.5']\n", - "2023-05-15 11:07:27,169 | DEBUG | byteflow.py:278 | dispatch pc=92, inst=STORE_FAST(arg=4, lineno=177)\n", - "2023-05-15 11:07:27,169 | DEBUG | byteflow.py:279 | stack ['$90unpack_sequence.7', '$90unpack_sequence.6']\n", - "2023-05-15 11:07:27,170 | DEBUG | byteflow.py:278 | dispatch pc=94, inst=STORE_FAST(arg=5, lineno=177)\n", - "2023-05-15 11:07:27,170 | DEBUG | byteflow.py:279 | stack ['$90unpack_sequence.7']\n", - "2023-05-15 11:07:27,171 | DEBUG | byteflow.py:278 | dispatch pc=96, inst=LOAD_FAST(arg=5, lineno=179)\n", - "2023-05-15 11:07:27,172 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,172 | DEBUG | byteflow.py:278 | dispatch pc=98, inst=LOAD_FAST(arg=4, lineno=179)\n", - "2023-05-15 11:07:27,173 | DEBUG | byteflow.py:279 | stack ['$high96.9']\n", - "2023-05-15 11:07:27,173 | DEBUG | byteflow.py:278 | dispatch pc=100, inst=BINARY_SUBTRACT(arg=None, lineno=179)\n", - "2023-05-15 11:07:27,173 | DEBUG | byteflow.py:279 | stack ['$high96.9', '$low98.10']\n", - "2023-05-15 11:07:27,174 | DEBUG | byteflow.py:278 | dispatch pc=102, inst=LOAD_GLOBAL(arg=3, lineno=179)\n", - "2023-05-15 11:07:27,175 | DEBUG | byteflow.py:279 | stack ['$100binary_subtract.11']\n", - "2023-05-15 11:07:27,175 | DEBUG | byteflow.py:278 | dispatch pc=104, inst=COMPARE_OP(arg=5, lineno=179)\n", - "2023-05-15 11:07:27,176 | DEBUG | byteflow.py:279 | stack ['$100binary_subtract.11', '$102load_global.12']\n", - "2023-05-15 11:07:27,176 | DEBUG | byteflow.py:278 | dispatch pc=106, inst=POP_JUMP_IF_FALSE(arg=125, lineno=179)\n", - "2023-05-15 11:07:27,177 | DEBUG | byteflow.py:279 | stack ['$104compare_op.13']\n", - "2023-05-15 11:07:27,177 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=108, stack=(), blockstack=(), npush=0), Edge(pc=248, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:27,178 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=270 nstack_initial=0), State(pc_initial=108 nstack_initial=0), State(pc_initial=248 nstack_initial=0)])\n", - "2023-05-15 11:07:27,178 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,179 | DEBUG | byteflow.py:278 | dispatch pc=270, inst=LOAD_FAST(arg=1, lineno=197)\n", - "2023-05-15 11:07:27,179 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,179 | DEBUG | byteflow.py:278 | dispatch pc=272, inst=RETURN_VALUE(arg=None, lineno=197)\n", - "2023-05-15 11:07:27,180 | DEBUG | byteflow.py:279 | stack ['$R270.0']\n", - "2023-05-15 11:07:27,180 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:27,181 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=108 nstack_initial=0), State(pc_initial=248 nstack_initial=0)])\n", - "2023-05-15 11:07:27,181 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,182 | DEBUG | byteflow.py:278 | dispatch pc=108, inst=LOAD_FAST(arg=3, lineno=180)\n", - "2023-05-15 11:07:27,182 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,182 | DEBUG | byteflow.py:278 | dispatch pc=110, inst=LOAD_GLOBAL(arg=2, lineno=180)\n", - "2023-05-15 11:07:27,183 | DEBUG | byteflow.py:279 | stack ['$n108.0']\n", - "2023-05-15 11:07:27,183 | DEBUG | byteflow.py:278 | dispatch pc=112, inst=COMPARE_OP(arg=0, lineno=180)\n", - "2023-05-15 11:07:27,183 | DEBUG | byteflow.py:279 | stack ['$n108.0', '$110load_global.1']\n", - "2023-05-15 11:07:27,184 | DEBUG | byteflow.py:278 | dispatch pc=114, inst=POP_JUMP_IF_TRUE(arg=61, lineno=180)\n", - "2023-05-15 11:07:27,187 | DEBUG | byteflow.py:279 | stack ['$112compare_op.2']\n", - "2023-05-15 11:07:27,187 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=116, stack=(), blockstack=(), npush=0), Edge(pc=120, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:27,188 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=248 nstack_initial=0), State(pc_initial=116 nstack_initial=0), State(pc_initial=120 nstack_initial=0)])\n", - "2023-05-15 11:07:27,188 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,189 | DEBUG | byteflow.py:278 | dispatch pc=248, inst=LOAD_DEREF(arg=0, lineno=195)\n", - "2023-05-15 11:07:27,190 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,190 | DEBUG | byteflow.py:278 | dispatch pc=250, inst=LOAD_FAST(arg=0, lineno=195)\n", - "2023-05-15 11:07:27,191 | DEBUG | byteflow.py:279 | stack ['$248load_deref.0']\n", - "2023-05-15 11:07:27,191 | DEBUG | byteflow.py:278 | dispatch pc=252, inst=LOAD_FAST(arg=1, lineno=195)\n", - "2023-05-15 11:07:27,192 | DEBUG | byteflow.py:279 | stack ['$248load_deref.0', '$A250.1']\n", - "2023-05-15 11:07:27,192 | DEBUG | byteflow.py:278 | dispatch pc=254, inst=LOAD_FAST(arg=4, lineno=195)\n", - "2023-05-15 11:07:27,193 | DEBUG | byteflow.py:279 | stack ['$248load_deref.0', '$A250.1', '$R252.2']\n", - "2023-05-15 11:07:27,193 | DEBUG | byteflow.py:278 | dispatch pc=256, inst=LOAD_FAST(arg=5, lineno=195)\n", - "2023-05-15 11:07:27,193 | DEBUG | byteflow.py:279 | stack ['$248load_deref.0', '$A250.1', '$R252.2', '$low254.3']\n", - "2023-05-15 11:07:27,195 | DEBUG | byteflow.py:278 | dispatch pc=258, inst=CALL_FUNCTION(arg=4, lineno=195)\n", - "2023-05-15 11:07:27,195 | DEBUG | byteflow.py:279 | stack ['$248load_deref.0', '$A250.1', '$R252.2', '$low254.3', '$high256.4']\n", - "2023-05-15 11:07:27,195 | DEBUG | byteflow.py:278 | dispatch pc=260, inst=POP_TOP(arg=None, lineno=195)\n", - "2023-05-15 11:07:27,196 | DEBUG | byteflow.py:279 | stack ['$258call_function.5']\n", - "2023-05-15 11:07:27,196 | DEBUG | byteflow.py:278 | dispatch pc=262, inst=LOAD_FAST(arg=3, lineno=175)\n", - "2023-05-15 11:07:27,196 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,197 | DEBUG | byteflow.py:278 | dispatch pc=264, inst=LOAD_CONST(arg=3, lineno=175)\n", - "2023-05-15 11:07:27,197 | DEBUG | byteflow.py:279 | stack ['$n262.6']\n", - "2023-05-15 11:07:27,198 | DEBUG | byteflow.py:278 | dispatch pc=266, inst=COMPARE_OP(arg=4, lineno=175)\n", - "2023-05-15 11:07:27,198 | DEBUG | byteflow.py:279 | stack ['$n262.6', '$const264.7']\n", - "2023-05-15 11:07:27,199 | DEBUG | byteflow.py:278 | dispatch pc=268, inst=POP_JUMP_IF_TRUE(arg=39, lineno=175)\n", - "2023-05-15 11:07:27,200 | DEBUG | byteflow.py:279 | stack ['$266compare_op.8']\n", - "2023-05-15 11:07:27,200 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=270, stack=(), blockstack=(), npush=0), Edge(pc=76, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:27,200 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=116 nstack_initial=0), State(pc_initial=120 nstack_initial=0), State(pc_initial=270 nstack_initial=0), State(pc_initial=76 nstack_initial=0)])\n", - "2023-05-15 11:07:27,201 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,202 | DEBUG | byteflow.py:278 | dispatch pc=116, inst=LOAD_ASSERTION_ERROR(arg=None, lineno=180)\n", - "2023-05-15 11:07:27,202 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,203 | DEBUG | byteflow.py:278 | dispatch pc=118, inst=RAISE_VARARGS(arg=1, lineno=180)\n", - "2023-05-15 11:07:27,204 | DEBUG | byteflow.py:279 | stack ['$assertion_error116.0']\n", - "2023-05-15 11:07:27,204 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:27,205 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=120 nstack_initial=0), State(pc_initial=270 nstack_initial=0), State(pc_initial=76 nstack_initial=0)])\n", - "2023-05-15 11:07:27,205 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,206 | DEBUG | byteflow.py:278 | dispatch pc=120, inst=LOAD_DEREF(arg=2, lineno=181)\n", - "2023-05-15 11:07:27,207 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,207 | DEBUG | byteflow.py:278 | dispatch pc=122, inst=LOAD_FAST(arg=0, lineno=181)\n", - "2023-05-15 11:07:27,207 | DEBUG | byteflow.py:279 | stack ['$120load_deref.0']\n", - "2023-05-15 11:07:27,208 | DEBUG | byteflow.py:278 | dispatch pc=124, inst=LOAD_FAST(arg=1, lineno=181)\n", - "2023-05-15 11:07:27,208 | DEBUG | byteflow.py:279 | stack ['$120load_deref.0', '$A122.1']\n", - "2023-05-15 11:07:27,208 | DEBUG | byteflow.py:278 | dispatch pc=126, inst=LOAD_FAST(arg=4, lineno=181)\n", - "2023-05-15 11:07:27,209 | DEBUG | byteflow.py:279 | stack ['$120load_deref.0', '$A122.1', '$R124.2']\n", - "2023-05-15 11:07:27,210 | DEBUG | byteflow.py:278 | dispatch pc=128, inst=LOAD_FAST(arg=5, lineno=181)\n", - "2023-05-15 11:07:27,210 | DEBUG | byteflow.py:279 | stack ['$120load_deref.0', '$A122.1', '$R124.2', '$low126.3']\n", - "2023-05-15 11:07:27,211 | DEBUG | byteflow.py:278 | dispatch pc=130, inst=CALL_FUNCTION(arg=4, lineno=181)\n", - "2023-05-15 11:07:27,211 | DEBUG | byteflow.py:279 | stack ['$120load_deref.0', '$A122.1', '$R124.2', '$low126.3', '$high128.4']\n", - "2023-05-15 11:07:27,211 | DEBUG | byteflow.py:278 | dispatch pc=132, inst=STORE_FAST(arg=6, lineno=181)\n", - "2023-05-15 11:07:27,212 | DEBUG | byteflow.py:279 | stack ['$130call_function.5']\n", - "2023-05-15 11:07:27,213 | DEBUG | byteflow.py:278 | dispatch pc=134, inst=LOAD_FAST(arg=5, lineno=183)\n", - "2023-05-15 11:07:27,213 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,214 | DEBUG | byteflow.py:278 | dispatch pc=136, inst=LOAD_FAST(arg=6, lineno=183)\n", - "2023-05-15 11:07:27,214 | DEBUG | byteflow.py:279 | stack ['$high134.6']\n", - "2023-05-15 11:07:27,214 | DEBUG | byteflow.py:278 | dispatch pc=138, inst=BINARY_SUBTRACT(arg=None, lineno=183)\n", - "2023-05-15 11:07:27,215 | DEBUG | byteflow.py:279 | stack ['$high134.6', '$i136.7']\n", - "2023-05-15 11:07:27,215 | DEBUG | byteflow.py:278 | dispatch pc=140, inst=LOAD_FAST(arg=6, lineno=183)\n", - "2023-05-15 11:07:27,216 | DEBUG | byteflow.py:279 | stack ['$138binary_subtract.8']\n", - "2023-05-15 11:07:27,217 | DEBUG | byteflow.py:278 | dispatch pc=142, inst=LOAD_FAST(arg=4, lineno=183)\n", - "2023-05-15 11:07:27,217 | DEBUG | byteflow.py:279 | stack ['$138binary_subtract.8', '$i140.9']\n", - "2023-05-15 11:07:27,217 | DEBUG | byteflow.py:278 | dispatch pc=144, inst=BINARY_SUBTRACT(arg=None, lineno=183)\n", - "2023-05-15 11:07:27,218 | DEBUG | byteflow.py:279 | stack ['$138binary_subtract.8', '$i140.9', '$low142.10']\n", - "2023-05-15 11:07:27,219 | DEBUG | byteflow.py:278 | dispatch pc=146, inst=COMPARE_OP(arg=4, lineno=183)\n", - "2023-05-15 11:07:27,219 | DEBUG | byteflow.py:279 | stack ['$138binary_subtract.8', '$144binary_subtract.11']\n", - "2023-05-15 11:07:27,219 | DEBUG | byteflow.py:278 | dispatch pc=148, inst=POP_JUMP_IF_FALSE(arg=98, lineno=183)\n", - "2023-05-15 11:07:27,220 | DEBUG | byteflow.py:279 | stack ['$146compare_op.12']\n", - "2023-05-15 11:07:27,220 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=150, stack=(), blockstack=(), npush=0), Edge(pc=194, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:27,221 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=270 nstack_initial=0), State(pc_initial=76 nstack_initial=0), State(pc_initial=150 nstack_initial=0), State(pc_initial=194 nstack_initial=0)])\n", - "2023-05-15 11:07:27,221 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=76 nstack_initial=0), State(pc_initial=150 nstack_initial=0), State(pc_initial=194 nstack_initial=0)])\n", - "2023-05-15 11:07:27,221 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=150 nstack_initial=0), State(pc_initial=194 nstack_initial=0)])\n", - "2023-05-15 11:07:27,222 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,222 | DEBUG | byteflow.py:278 | dispatch pc=150, inst=LOAD_FAST(arg=5, lineno=185)\n", - "2023-05-15 11:07:27,223 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,223 | DEBUG | byteflow.py:278 | dispatch pc=152, inst=LOAD_FAST(arg=6, lineno=185)\n", - "2023-05-15 11:07:27,223 | DEBUG | byteflow.py:279 | stack ['$high150.0']\n", - "2023-05-15 11:07:27,224 | DEBUG | byteflow.py:278 | dispatch pc=154, inst=COMPARE_OP(arg=4, lineno=185)\n", - "2023-05-15 11:07:27,225 | DEBUG | byteflow.py:279 | stack ['$high150.0', '$i152.1']\n", - "2023-05-15 11:07:27,225 | DEBUG | byteflow.py:278 | dispatch pc=156, inst=POP_JUMP_IF_FALSE(arg=93, lineno=185)\n", - "2023-05-15 11:07:27,225 | DEBUG | byteflow.py:279 | stack ['$154compare_op.2']\n", - "2023-05-15 11:07:27,226 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=158, stack=(), blockstack=(), npush=0), Edge(pc=184, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:27,227 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=194 nstack_initial=0), State(pc_initial=158 nstack_initial=0), State(pc_initial=184 nstack_initial=0)])\n", - "2023-05-15 11:07:27,227 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,227 | DEBUG | byteflow.py:278 | dispatch pc=194, inst=LOAD_FAST(arg=6, lineno=190)\n", - "2023-05-15 11:07:27,228 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,228 | DEBUG | byteflow.py:278 | dispatch pc=196, inst=LOAD_FAST(arg=4, lineno=190)\n", - "2023-05-15 11:07:27,229 | DEBUG | byteflow.py:279 | stack ['$i194.0']\n", - "2023-05-15 11:07:27,230 | DEBUG | byteflow.py:278 | dispatch pc=198, inst=COMPARE_OP(arg=4, lineno=190)\n", - "2023-05-15 11:07:27,230 | DEBUG | byteflow.py:279 | stack ['$i194.0', '$low196.1']\n", - "2023-05-15 11:07:27,231 | DEBUG | byteflow.py:278 | dispatch pc=200, inst=POP_JUMP_IF_FALSE(arg=115, lineno=190)\n", - "2023-05-15 11:07:27,231 | DEBUG | byteflow.py:279 | stack ['$198compare_op.2']\n", - "2023-05-15 11:07:27,232 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=202, stack=(), blockstack=(), npush=0), Edge(pc=228, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:27,232 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=158 nstack_initial=0), State(pc_initial=184 nstack_initial=0), State(pc_initial=202 nstack_initial=0), State(pc_initial=228 nstack_initial=0)])\n", - "2023-05-15 11:07:27,233 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:27,234 | DEBUG | byteflow.py:278 | dispatch pc=158, inst=LOAD_GLOBAL(arg=1, lineno=186)\n", - "2023-05-15 11:07:27,234 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,235 | DEBUG | byteflow.py:278 | dispatch pc=160, inst=LOAD_FAST(arg=6, lineno=186)\n", - "2023-05-15 11:07:27,235 | DEBUG | byteflow.py:279 | stack ['$158load_global.0']\n", - "2023-05-15 11:07:27,236 | DEBUG | byteflow.py:278 | dispatch pc=162, inst=LOAD_CONST(arg=2, lineno=186)\n", - "2023-05-15 11:07:27,236 | DEBUG | byteflow.py:279 | stack ['$158load_global.0', '$i160.1']\n", - "2023-05-15 11:07:27,237 | DEBUG | byteflow.py:278 | dispatch pc=164, inst=BINARY_ADD(arg=None, lineno=186)\n", - "2023-05-15 11:07:27,237 | DEBUG | byteflow.py:279 | stack ['$158load_global.0', '$i160.1', '$const162.2']\n", - "2023-05-15 11:07:27,238 | DEBUG | byteflow.py:278 | dispatch pc=166, inst=LOAD_FAST(arg=5, lineno=186)\n", - "2023-05-15 11:07:27,238 | DEBUG | byteflow.py:279 | stack ['$158load_global.0', '$164binary_add.3']\n", - "2023-05-15 11:07:27,239 | DEBUG | byteflow.py:278 | dispatch pc=168, inst=CALL_FUNCTION(arg=2, lineno=186)\n", - "2023-05-15 11:07:27,239 | DEBUG | byteflow.py:279 | stack ['$158load_global.0', '$164binary_add.3', '$high166.4']\n", - "2023-05-15 11:07:27,240 | DEBUG | byteflow.py:278 | dispatch pc=170, inst=LOAD_FAST(arg=2, lineno=186)\n", - "2023-05-15 11:07:27,241 | DEBUG | byteflow.py:279 | stack ['$168call_function.5']\n", - "2023-05-15 11:07:27,241 | DEBUG | byteflow.py:278 | dispatch pc=172, inst=LOAD_FAST(arg=3, lineno=186)\n", - "2023-05-15 11:07:27,241 | DEBUG | byteflow.py:279 | stack ['$168call_function.5', '$stack170.6']\n", - "2023-05-15 11:07:27,242 | DEBUG | byteflow.py:278 | dispatch pc=174, inst=STORE_SUBSCR(arg=None, lineno=186)\n", - "2023-05-15 11:07:27,242 | DEBUG | byteflow.py:279 | stack ['$168call_function.5', '$stack170.6', '$n172.7']\n", - "2023-05-15 11:07:27,243 | DEBUG | byteflow.py:278 | dispatch pc=176, inst=LOAD_FAST(arg=3, lineno=187)\n", - "2023-05-15 11:07:27,247 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:27,249 | DEBUG | byteflow.py:278 | dispatch pc=178, inst=LOAD_CONST(arg=2, lineno=187)\n", - "2023-05-15 11:07:27,249 | DEBUG | byteflow.py:279 | stack ['$n176.8']\n", - "2023-05-15 11:07:27,250 | DEBUG | byteflow.py:278 | dispatch pc=180, inst=INPLACE_ADD(arg=None, lineno=187)\n", - "2023-05-15 11:07:27,251 | DEBUG | byteflow.py:279 | stack ['$n176.8', '$const178.9']\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "IOPub message rate exceeded.\n", - "The notebook server will temporarily stop sending output\n", - "to the client in order to avoid crashing it.\n", - "To change this limit, set the config variable\n", - "`--NotebookApp.iopub_msg_rate_limit`.\n", - "\n", - "Current values:\n", - "NotebookApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n", - "NotebookApp.rate_limit_window=3.0 (secs)\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-05-15 11:07:27,924 | DEBUG | ssa.py:193 | on stmt: n.6 = phi(incoming_values=[Var(n.7, quicksort.py:176), Var(n.9, quicksort.py:176)], incoming_blocks=[184, 228])\n", - "2023-05-15 11:07:27,924 | DEBUG | ssa.py:193 | on stmt: high.3 = phi(incoming_values=[Var(high.1, quicksort.py:188), Var(high.2, quicksort.py:181)], incoming_blocks=[184, 228])\n", - "2023-05-15 11:07:27,925 | DEBUG | ssa.py:193 | on stmt: $240binary_subtract.2 = high.3 - low\n", - "2023-05-15 11:07:27,925 | DEBUG | ssa.py:193 | on stmt: $242load_global.3 = global(SMALL_QUICKSORT: 15)\n", - "2023-05-15 11:07:27,926 | DEBUG | ssa.py:193 | on stmt: $244compare_op.4 = $240binary_subtract.2 >= $242load_global.3\n", - "2023-05-15 11:07:27,926 | DEBUG | ssa.py:193 | on stmt: bool246 = global(bool: )\n", - "2023-05-15 11:07:27,927 | DEBUG | ssa.py:193 | on stmt: $246pred = call bool246($244compare_op.4, func=bool246, args=(Var($244compare_op.4, quicksort.py:179),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,927 | DEBUG | ssa.py:193 | on stmt: branch $246pred, 108, 248\n", - "2023-05-15 11:07:27,928 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 248\n", - "2023-05-15 11:07:27,928 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,928 | DEBUG | ssa.py:193 | on stmt: n.5 = phi(incoming_values=[Var(n.1, quicksort.py:176), Var(n.6, quicksort.py:176)], incoming_blocks=[76, 236])\n", - "2023-05-15 11:07:27,929 | DEBUG | ssa.py:193 | on stmt: high.4 = phi(incoming_values=[Var(high, quicksort.py:177), Var(high.3, quicksort.py:181)], incoming_blocks=[76, 236])\n", - "2023-05-15 11:07:27,929 | DEBUG | ssa.py:193 | on stmt: $248load_deref.0 = freevar(insertion_sort: .insertion_sort at 0x7ff8dbbf3d90>)\n", - "2023-05-15 11:07:27,930 | DEBUG | ssa.py:193 | on stmt: $258call_function.5 = call $248load_deref.0(A, R, low, high.4, func=$248load_deref.0, args=[Var(A, quicksort.py:166), Var(R, quicksort.py:166), Var(low, quicksort.py:177), Var(high.4, quicksort.py:195)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,930 | DEBUG | ssa.py:193 | on stmt: $const264.7 = const(int, 0)\n", - "2023-05-15 11:07:27,931 | DEBUG | ssa.py:193 | on stmt: $266compare_op.8 = n.5 > $const264.7\n", - "2023-05-15 11:07:27,931 | DEBUG | ssa.py:193 | on stmt: bool268 = global(bool: )\n", - "2023-05-15 11:07:27,931 | DEBUG | ssa.py:193 | on stmt: $268pred = call bool268($266compare_op.8, func=bool268, args=(Var($266compare_op.8, quicksort.py:175),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,932 | DEBUG | ssa.py:193 | on stmt: branch $268pred, 76, 270\n", - "2023-05-15 11:07:27,932 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 270\n", - "2023-05-15 11:07:27,932 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,933 | DEBUG | ssa.py:193 | on stmt: $272return_value.1 = cast(value=R)\n", - "2023-05-15 11:07:27,933 | DEBUG | ssa.py:193 | on stmt: return $272return_value.1\n", - "2023-05-15 11:07:27,934 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {76: [],\n", - " 228: []})\n", - "2023-05-15 11:07:27,934 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:27,935 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,935 | DEBUG | ssa.py:193 | on stmt: A = arg(0, name=A)\n", - "2023-05-15 11:07:27,935 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(make_res: .make_res at 0x7ff8dbbf3b50>)\n", - "2023-05-15 11:07:27,936 | DEBUG | ssa.py:193 | on stmt: R = call $2load_deref.0(A, func=$2load_deref.0, args=[Var(A, quicksort.py:166)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,936 | DEBUG | ssa.py:193 | on stmt: $10load_global.3 = global(len: )\n", - "2023-05-15 11:07:27,937 | DEBUG | ssa.py:193 | on stmt: $14call_function.5 = call $10load_global.3(A, func=$10load_global.3, args=[Var(A, quicksort.py:166)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,937 | DEBUG | ssa.py:193 | on stmt: $const16.6 = const(int, 2)\n", - "2023-05-15 11:07:27,937 | DEBUG | ssa.py:193 | on stmt: $18compare_op.7 = $14call_function.5 < $const16.6\n", - "2023-05-15 11:07:27,938 | DEBUG | ssa.py:193 | on stmt: bool20 = global(bool: )\n", - "2023-05-15 11:07:27,938 | DEBUG | ssa.py:193 | on stmt: $20pred = call bool20($18compare_op.7, func=bool20, args=(Var($18compare_op.7, quicksort.py:168),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,939 | DEBUG | ssa.py:193 | on stmt: branch $20pred, 22, 26\n", - "2023-05-15 11:07:27,939 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 22\n", - "2023-05-15 11:07:27,939 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,940 | DEBUG | ssa.py:193 | on stmt: $24return_value.1 = cast(value=R)\n", - "2023-05-15 11:07:27,940 | DEBUG | ssa.py:193 | on stmt: return $24return_value.1\n", - "2023-05-15 11:07:27,943 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:27,946 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,946 | DEBUG | ssa.py:193 | on stmt: $26load_global.0 = global(Partition: )\n", - "2023-05-15 11:07:27,946 | DEBUG | ssa.py:193 | on stmt: $28load_deref.1 = freevar(zero: 0)\n", - "2023-05-15 11:07:27,947 | DEBUG | ssa.py:193 | on stmt: $30load_deref.2 = freevar(zero: 0)\n", - "2023-05-15 11:07:27,947 | DEBUG | ssa.py:193 | on stmt: $32call_function.3 = call $26load_global.0($28load_deref.1, $30load_deref.2, func=$26load_global.0, args=[Var($28load_deref.1, quicksort.py:171), Var($30load_deref.2, quicksort.py:171)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,948 | DEBUG | ssa.py:193 | on stmt: $34build_list.4 = build_list(items=[Var($32call_function.3, quicksort.py:171)])\n", - "2023-05-15 11:07:27,948 | DEBUG | ssa.py:193 | on stmt: $36load_global.5 = global(MAX_STACK: 100)\n", - "2023-05-15 11:07:27,948 | DEBUG | ssa.py:193 | on stmt: stack = $34build_list.4 * $36load_global.5\n", - "2023-05-15 11:07:27,949 | DEBUG | ssa.py:193 | on stmt: $42load_global.7 = global(Partition: )\n", - "2023-05-15 11:07:27,950 | DEBUG | ssa.py:193 | on stmt: $44load_deref.8 = freevar(zero: 0)\n", - "2023-05-15 11:07:27,951 | DEBUG | ssa.py:193 | on stmt: $46load_global.9 = global(len: )\n", - "2023-05-15 11:07:27,951 | DEBUG | ssa.py:193 | on stmt: $50call_function.11 = call $46load_global.9(A, func=$46load_global.9, args=[Var(A, quicksort.py:166)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,952 | DEBUG | ssa.py:193 | on stmt: $const52.12 = const(int, 1)\n", - "2023-05-15 11:07:27,952 | DEBUG | ssa.py:193 | on stmt: $54binary_subtract.13 = $50call_function.11 - $const52.12\n", - "2023-05-15 11:07:27,952 | DEBUG | ssa.py:193 | on stmt: $56call_function.14 = call $42load_global.7($44load_deref.8, $54binary_subtract.13, func=$42load_global.7, args=[Var($44load_deref.8, quicksort.py:172), Var($54binary_subtract.13, quicksort.py:172)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,953 | DEBUG | ssa.py:193 | on stmt: $const60.16 = const(int, 0)\n", - "2023-05-15 11:07:27,953 | DEBUG | ssa.py:193 | on stmt: stack[0] = $56call_function.14\n", - "2023-05-15 11:07:27,954 | DEBUG | ssa.py:193 | on stmt: n = const(int, 1)\n", - "2023-05-15 11:07:27,954 | DEBUG | ssa.py:193 | on stmt: $const70.19 = const(int, 0)\n", - "2023-05-15 11:07:27,954 | DEBUG | ssa.py:193 | on stmt: $72compare_op.20 = n > $const70.19\n", - "2023-05-15 11:07:27,955 | DEBUG | ssa.py:193 | on stmt: bool74 = global(bool: )\n", - "2023-05-15 11:07:27,955 | DEBUG | ssa.py:193 | on stmt: $74pred = call bool74($72compare_op.20, func=bool74, args=(Var($72compare_op.20, quicksort.py:175),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,957 | DEBUG | ssa.py:193 | on stmt: branch $74pred, 76, 270\n", - "2023-05-15 11:07:27,957 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 76\n", - "2023-05-15 11:07:27,957 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,958 | DEBUG | ssa.py:193 | on stmt: n.4 = phi(incoming_values=[Var(n.5, quicksort.py:176), Var(n, quicksort.py:173)], incoming_blocks=[248, 26])\n", - "2023-05-15 11:07:27,958 | DEBUG | ssa.py:193 | on stmt: $const78.1 = const(int, 1)\n", - "2023-05-15 11:07:27,959 | DEBUG | ssa.py:193 | on stmt: $80inplace_subtract.2 = inplace_binop(fn=, immutable_fn=, lhs=n.4, rhs=$const78.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:27,959 | DEBUG | ssa.py:193 | on stmt: n.1 = $80inplace_subtract.2\n", - "2023-05-15 11:07:27,960 | DEBUG | ssa.py:193 | on stmt: $88binary_subscr.5 = getitem(value=stack, index=n.1, fn=)\n", - "2023-05-15 11:07:27,960 | DEBUG | ssa.py:193 | on stmt: $90unpack_sequence.8 = exhaust_iter(value=$88binary_subscr.5, count=2)\n", - "2023-05-15 11:07:27,962 | DEBUG | ssa.py:193 | on stmt: $90unpack_sequence.6 = static_getitem(value=$90unpack_sequence.8, index=0, index_var=None, fn=)\n", - "2023-05-15 11:07:27,962 | DEBUG | ssa.py:193 | on stmt: $90unpack_sequence.7 = static_getitem(value=$90unpack_sequence.8, index=1, index_var=None, fn=)\n", - "2023-05-15 11:07:27,962 | DEBUG | ssa.py:193 | on stmt: low = $90unpack_sequence.6\n", - "2023-05-15 11:07:27,963 | DEBUG | ssa.py:193 | on stmt: high = $90unpack_sequence.7\n", - "2023-05-15 11:07:27,963 | DEBUG | ssa.py:193 | on stmt: $100binary_subtract.11 = high - low\n", - "2023-05-15 11:07:27,964 | DEBUG | ssa.py:353 | find_def var='low' stmt=$100binary_subtract.11 = high - low\n", - "2023-05-15 11:07:27,965 | DEBUG | ssa.py:193 | on stmt: $102load_global.12 = global(SMALL_QUICKSORT: 15)\n", - "2023-05-15 11:07:27,965 | DEBUG | ssa.py:193 | on stmt: $104compare_op.13 = $100binary_subtract.11 >= $102load_global.12\n", - "2023-05-15 11:07:27,966 | DEBUG | ssa.py:193 | on stmt: bool106 = global(bool: )\n", - "2023-05-15 11:07:27,966 | DEBUG | ssa.py:193 | on stmt: $106pred = call bool106($104compare_op.13, func=bool106, args=(Var($104compare_op.13, quicksort.py:179),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,966 | DEBUG | ssa.py:193 | on stmt: branch $106pred, 108, 248\n", - "2023-05-15 11:07:27,968 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 108\n", - "2023-05-15 11:07:27,968 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,969 | DEBUG | ssa.py:193 | on stmt: n.8 = phi(incoming_values=[Var(n.1, quicksort.py:176), Var(n.6, quicksort.py:176)], incoming_blocks=[76, 236])\n", - "2023-05-15 11:07:27,969 | DEBUG | ssa.py:193 | on stmt: high.2 = phi(incoming_values=[Var(high, quicksort.py:177), Var(high.3, quicksort.py:181)], incoming_blocks=[76, 236])\n", - "2023-05-15 11:07:27,970 | DEBUG | ssa.py:193 | on stmt: $110load_global.1 = global(MAX_STACK: 100)\n", - "2023-05-15 11:07:27,971 | DEBUG | ssa.py:193 | on stmt: $112compare_op.2 = n.8 < $110load_global.1\n", - "2023-05-15 11:07:27,971 | DEBUG | ssa.py:193 | on stmt: bool114 = global(bool: )\n", - "2023-05-15 11:07:27,971 | DEBUG | ssa.py:193 | on stmt: $114pred = call bool114($112compare_op.2, func=bool114, args=(Var($112compare_op.2, quicksort.py:180),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,972 | DEBUG | ssa.py:193 | on stmt: branch $114pred, 120, 116\n", - "2023-05-15 11:07:27,972 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 116\n", - "2023-05-15 11:07:27,973 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,973 | DEBUG | ssa.py:193 | on stmt: $assertion_error116.0 = global(AssertionError: )\n", - "2023-05-15 11:07:27,974 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:27,974 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 120\n", - "2023-05-15 11:07:27,975 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,976 | DEBUG | ssa.py:193 | on stmt: $120load_deref.0 = freevar(partition: .partition at 0x7ff8dbbf3eb0>)\n", - "2023-05-15 11:07:27,977 | DEBUG | ssa.py:193 | on stmt: i = call $120load_deref.0(A, R, low, high.2, func=$120load_deref.0, args=[Var(A, quicksort.py:166), Var(R, quicksort.py:166), Var(low, quicksort.py:177), Var(high.2, quicksort.py:181)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,978 | DEBUG | ssa.py:353 | find_def var='low' stmt=i = call $120load_deref.0(A, R, low, high.2, func=$120load_deref.0, args=[Var(A, quicksort.py:166), Var(R, quicksort.py:166), Var(low, quicksort.py:177), Var(high.2, quicksort.py:181)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,978 | DEBUG | ssa.py:384 | find_def_from_top label 120\n", - "2023-05-15 11:07:27,979 | DEBUG | ssa.py:421 | idom 108 from label 120\n", - "2023-05-15 11:07:27,979 | DEBUG | ssa.py:427 | find_def_from_bottom label 108\n", - "2023-05-15 11:07:27,981 | DEBUG | ssa.py:384 | find_def_from_top label 108\n", - "2023-05-15 11:07:27,981 | DEBUG | ssa.py:401 | insert phi node low.2 = phi(incoming_values=[], incoming_blocks=[]) at 108\n", - "2023-05-15 11:07:27,981 | DEBUG | ssa.py:427 | find_def_from_bottom label 76\n", - "2023-05-15 11:07:27,982 | DEBUG | ssa.py:409 | incoming_def low = $90unpack_sequence.6\n", - "2023-05-15 11:07:27,982 | DEBUG | ssa.py:427 | find_def_from_bottom label 236\n", - "2023-05-15 11:07:27,983 | DEBUG | ssa.py:384 | find_def_from_top label 236\n", - "2023-05-15 11:07:27,983 | DEBUG | ssa.py:401 | insert phi node low.3 = phi(incoming_values=[], incoming_blocks=[]) at 236\n", - "2023-05-15 11:07:27,983 | DEBUG | ssa.py:427 | find_def_from_bottom label 184\n", - "2023-05-15 11:07:27,984 | DEBUG | ssa.py:384 | find_def_from_top label 184\n", - "2023-05-15 11:07:27,984 | DEBUG | ssa.py:421 | idom 150 from label 184\n", - "2023-05-15 11:07:27,985 | DEBUG | ssa.py:427 | find_def_from_bottom label 150\n", - "2023-05-15 11:07:27,985 | DEBUG | ssa.py:384 | find_def_from_top label 150\n", - "2023-05-15 11:07:27,986 | DEBUG | ssa.py:421 | idom 120 from label 150\n", - "2023-05-15 11:07:27,987 | DEBUG | ssa.py:427 | find_def_from_bottom label 120\n", - "2023-05-15 11:07:27,988 | DEBUG | ssa.py:384 | find_def_from_top label 120\n", - "2023-05-15 11:07:27,988 | DEBUG | ssa.py:421 | idom 108 from label 120\n", - "2023-05-15 11:07:27,988 | DEBUG | ssa.py:427 | find_def_from_bottom label 108\n", - "2023-05-15 11:07:27,989 | DEBUG | ssa.py:409 | incoming_def low.2 = phi(incoming_values=[Var(low, quicksort.py:177)], incoming_blocks=[76])\n", - "2023-05-15 11:07:27,989 | DEBUG | ssa.py:427 | find_def_from_bottom label 228\n", - "2023-05-15 11:07:27,990 | DEBUG | ssa.py:409 | incoming_def low.1 = i + $const230.1\n", - "2023-05-15 11:07:27,990 | DEBUG | ssa.py:409 | incoming_def low.3 = phi(incoming_values=[Var(low.2, quicksort.py:181), Var(low.1, quicksort.py:193)], incoming_blocks=[184, 228])\n", - "2023-05-15 11:07:27,991 | DEBUG | ssa.py:199 | replaced with: i = call $120load_deref.0(A, R, low.2, high.2, func=$120load_deref.0, args=[Var(A, quicksort.py:166), Var(R, quicksort.py:166), Var(low.2, quicksort.py:181), Var(high.2, quicksort.py:181)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,991 | DEBUG | ssa.py:193 | on stmt: $138binary_subtract.8 = high.2 - i\n", - "2023-05-15 11:07:27,991 | DEBUG | ssa.py:193 | on stmt: $144binary_subtract.11 = i - low\n", - "2023-05-15 11:07:27,992 | DEBUG | ssa.py:353 | find_def var='low' stmt=$144binary_subtract.11 = i - low\n", - "2023-05-15 11:07:27,992 | DEBUG | ssa.py:384 | find_def_from_top label 120\n", - "2023-05-15 11:07:27,993 | DEBUG | ssa.py:421 | idom 108 from label 120\n", - "2023-05-15 11:07:27,993 | DEBUG | ssa.py:427 | find_def_from_bottom label 108\n", - "2023-05-15 11:07:27,994 | DEBUG | ssa.py:199 | replaced with: $144binary_subtract.11 = i - low.2\n", - "2023-05-15 11:07:27,994 | DEBUG | ssa.py:193 | on stmt: $146compare_op.12 = $138binary_subtract.8 > $144binary_subtract.11\n", - "2023-05-15 11:07:27,994 | DEBUG | ssa.py:193 | on stmt: bool148 = global(bool: )\n", - "2023-05-15 11:07:27,995 | DEBUG | ssa.py:193 | on stmt: $148pred = call bool148($146compare_op.12, func=bool148, args=(Var($146compare_op.12, quicksort.py:183),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,995 | DEBUG | ssa.py:193 | on stmt: branch $148pred, 150, 194\n", - "2023-05-15 11:07:27,996 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 150\n", - "2023-05-15 11:07:27,996 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,996 | DEBUG | ssa.py:193 | on stmt: $154compare_op.2 = high.2 > i\n", - "2023-05-15 11:07:27,997 | DEBUG | ssa.py:193 | on stmt: bool156 = global(bool: )\n", - "2023-05-15 11:07:27,997 | DEBUG | ssa.py:193 | on stmt: $156pred = call bool156($154compare_op.2, func=bool156, args=(Var($154compare_op.2, quicksort.py:185),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:27,998 | DEBUG | ssa.py:193 | on stmt: branch $156pred, 158, 184\n", - "2023-05-15 11:07:27,998 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 158\n", - "2023-05-15 11:07:27,998 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:27,999 | DEBUG | ssa.py:193 | on stmt: $158load_global.0 = global(Partition: )\n", - "2023-05-15 11:07:27,999 | DEBUG | ssa.py:193 | on stmt: $const162.2 = const(int, 1)\n", - "2023-05-15 11:07:28,000 | DEBUG | ssa.py:193 | on stmt: $164binary_add.3 = i + $const162.2\n", - "2023-05-15 11:07:28,000 | DEBUG | ssa.py:193 | on stmt: $168call_function.5 = call $158load_global.0($164binary_add.3, high.2, func=$158load_global.0, args=[Var($164binary_add.3, quicksort.py:186), Var(high.2, quicksort.py:181)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,001 | DEBUG | ssa.py:193 | on stmt: stack[n.8] = $168call_function.5\n", - "2023-05-15 11:07:28,001 | DEBUG | ssa.py:193 | on stmt: $const178.9 = const(int, 1)\n", - "2023-05-15 11:07:28,002 | DEBUG | ssa.py:193 | on stmt: $180inplace_add.10 = inplace_binop(fn=, immutable_fn=, lhs=n.8, rhs=$const178.9, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:28,002 | DEBUG | ssa.py:193 | on stmt: n.2 = $180inplace_add.10\n", - "2023-05-15 11:07:28,003 | DEBUG | ssa.py:193 | on stmt: jump 184\n", - "2023-05-15 11:07:28,003 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 184\n", - "2023-05-15 11:07:28,003 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,004 | DEBUG | ssa.py:193 | on stmt: n.7 = phi(incoming_values=[Var(n.2, quicksort.py:187), Var(n.8, quicksort.py:176)], incoming_blocks=[158, 150])\n", - "2023-05-15 11:07:28,004 | DEBUG | ssa.py:193 | on stmt: $const186.1 = const(int, 1)\n", - "2023-05-15 11:07:28,005 | DEBUG | ssa.py:193 | on stmt: high.1 = i - $const186.1\n", - "2023-05-15 11:07:28,005 | DEBUG | ssa.py:193 | on stmt: jump 236\n", - "2023-05-15 11:07:28,006 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 194\n", - "2023-05-15 11:07:28,006 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,006 | DEBUG | ssa.py:193 | on stmt: $198compare_op.2 = i > low\n", - "2023-05-15 11:07:28,007 | DEBUG | ssa.py:353 | find_def var='low' stmt=$198compare_op.2 = i > low\n", - "2023-05-15 11:07:28,007 | DEBUG | ssa.py:384 | find_def_from_top label 194\n", - "2023-05-15 11:07:28,008 | DEBUG | ssa.py:421 | idom 120 from label 194\n", - "2023-05-15 11:07:28,008 | DEBUG | ssa.py:427 | find_def_from_bottom label 120\n", - "2023-05-15 11:07:28,013 | DEBUG | ssa.py:384 | find_def_from_top label 120\n", - "2023-05-15 11:07:28,018 | DEBUG | ssa.py:421 | idom 108 from label 120\n", - "2023-05-15 11:07:28,018 | DEBUG | ssa.py:427 | find_def_from_bottom label 108\n", - "2023-05-15 11:07:28,019 | DEBUG | ssa.py:199 | replaced with: $198compare_op.2 = i > low.2\n", - "2023-05-15 11:07:28,020 | DEBUG | ssa.py:193 | on stmt: bool200 = global(bool: )\n", - "2023-05-15 11:07:28,021 | DEBUG | ssa.py:193 | on stmt: $200pred = call bool200($198compare_op.2, func=bool200, args=(Var($198compare_op.2, quicksort.py:190),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,022 | DEBUG | ssa.py:193 | on stmt: branch $200pred, 202, 228\n", - "2023-05-15 11:07:28,022 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 202\n", - "2023-05-15 11:07:28,023 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,024 | DEBUG | ssa.py:193 | on stmt: $202load_global.0 = global(Partition: )\n", - "2023-05-15 11:07:28,025 | DEBUG | ssa.py:193 | on stmt: $const208.3 = const(int, 1)\n", - "2023-05-15 11:07:28,025 | DEBUG | ssa.py:193 | on stmt: $210binary_subtract.4 = i - $const208.3\n", - "2023-05-15 11:07:28,026 | DEBUG | ssa.py:193 | on stmt: $212call_function.5 = call $202load_global.0(low, $210binary_subtract.4, func=$202load_global.0, args=[Var(low, quicksort.py:177), Var($210binary_subtract.4, quicksort.py:191)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,027 | DEBUG | ssa.py:353 | find_def var='low' stmt=$212call_function.5 = call $202load_global.0(low, $210binary_subtract.4, func=$202load_global.0, args=[Var(low, quicksort.py:177), Var($210binary_subtract.4, quicksort.py:191)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,027 | DEBUG | ssa.py:384 | find_def_from_top label 202\n", - "2023-05-15 11:07:28,028 | DEBUG | ssa.py:421 | idom 194 from label 202\n", - "2023-05-15 11:07:28,029 | DEBUG | ssa.py:427 | find_def_from_bottom label 194\n", - "2023-05-15 11:07:28,029 | DEBUG | ssa.py:384 | find_def_from_top label 194\n", - "2023-05-15 11:07:28,030 | DEBUG | ssa.py:421 | idom 120 from label 194\n", - "2023-05-15 11:07:28,030 | DEBUG | ssa.py:427 | find_def_from_bottom label 120\n", - "2023-05-15 11:07:28,030 | DEBUG | ssa.py:384 | find_def_from_top label 120\n", - "2023-05-15 11:07:28,031 | DEBUG | ssa.py:421 | idom 108 from label 120\n", - "2023-05-15 11:07:28,031 | DEBUG | ssa.py:427 | find_def_from_bottom label 108\n", - "2023-05-15 11:07:28,032 | DEBUG | ssa.py:199 | replaced with: $212call_function.5 = call $202load_global.0(low.2, $210binary_subtract.4, func=$202load_global.0, args=[Var(low.2, quicksort.py:181), Var($210binary_subtract.4, quicksort.py:191)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,033 | DEBUG | ssa.py:193 | on stmt: stack[n.8] = $212call_function.5\n", - "2023-05-15 11:07:28,033 | DEBUG | ssa.py:193 | on stmt: $const222.9 = const(int, 1)\n", - "2023-05-15 11:07:28,034 | DEBUG | ssa.py:193 | on stmt: $224inplace_add.10 = inplace_binop(fn=, immutable_fn=, lhs=n.8, rhs=$const222.9, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:28,034 | DEBUG | ssa.py:193 | on stmt: n.3 = $224inplace_add.10\n", - "2023-05-15 11:07:28,035 | DEBUG | ssa.py:193 | on stmt: jump 228\n", - "2023-05-15 11:07:28,035 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 228\n", - "2023-05-15 11:07:28,036 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,036 | DEBUG | ssa.py:193 | on stmt: n.9 = phi(incoming_values=[Var(n.3, quicksort.py:192), Var(n.8, quicksort.py:176)], incoming_blocks=[202, 194])\n", - "2023-05-15 11:07:28,036 | DEBUG | ssa.py:193 | on stmt: $const230.1 = const(int, 1)\n", - "2023-05-15 11:07:28,038 | DEBUG | ssa.py:193 | on stmt: low.1 = i + $const230.1\n", - "2023-05-15 11:07:28,038 | DEBUG | ssa.py:193 | on stmt: jump 236\n", - "2023-05-15 11:07:28,039 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 236\n", - "2023-05-15 11:07:28,039 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,039 | DEBUG | ssa.py:193 | on stmt: n.6 = phi(incoming_values=[Var(n.7, quicksort.py:176), Var(n.9, quicksort.py:176)], incoming_blocks=[184, 228])\n", - "2023-05-15 11:07:28,040 | DEBUG | ssa.py:193 | on stmt: high.3 = phi(incoming_values=[Var(high.1, quicksort.py:188), Var(high.2, quicksort.py:181)], incoming_blocks=[184, 228])\n", - "2023-05-15 11:07:28,041 | DEBUG | ssa.py:193 | on stmt: $240binary_subtract.2 = high.3 - low\n", - "2023-05-15 11:07:28,041 | DEBUG | ssa.py:353 | find_def var='low' stmt=$240binary_subtract.2 = high.3 - low\n", - "2023-05-15 11:07:28,043 | DEBUG | ssa.py:199 | replaced with: $240binary_subtract.2 = high.3 - low.3\n", - "2023-05-15 11:07:28,043 | DEBUG | ssa.py:193 | on stmt: $242load_global.3 = global(SMALL_QUICKSORT: 15)\n", - "2023-05-15 11:07:28,043 | DEBUG | ssa.py:193 | on stmt: $244compare_op.4 = $240binary_subtract.2 >= $242load_global.3\n", - "2023-05-15 11:07:28,044 | DEBUG | ssa.py:193 | on stmt: bool246 = global(bool: )\n", - "2023-05-15 11:07:28,045 | DEBUG | ssa.py:193 | on stmt: $246pred = call bool246($244compare_op.4, func=bool246, args=(Var($244compare_op.4, quicksort.py:179),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,046 | DEBUG | ssa.py:193 | on stmt: branch $246pred, 108, 248\n", - "2023-05-15 11:07:28,046 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 248\n", - "2023-05-15 11:07:28,047 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,047 | DEBUG | ssa.py:193 | on stmt: n.5 = phi(incoming_values=[Var(n.1, quicksort.py:176), Var(n.6, quicksort.py:176)], incoming_blocks=[76, 236])\n", - "2023-05-15 11:07:28,048 | DEBUG | ssa.py:193 | on stmt: high.4 = phi(incoming_values=[Var(high, quicksort.py:177), Var(high.3, quicksort.py:181)], incoming_blocks=[76, 236])\n", - "2023-05-15 11:07:28,048 | DEBUG | ssa.py:193 | on stmt: $248load_deref.0 = freevar(insertion_sort: .insertion_sort at 0x7ff8dbbf3d90>)\n", - "2023-05-15 11:07:28,049 | DEBUG | ssa.py:193 | on stmt: $258call_function.5 = call $248load_deref.0(A, R, low, high.4, func=$248load_deref.0, args=[Var(A, quicksort.py:166), Var(R, quicksort.py:166), Var(low, quicksort.py:177), Var(high.4, quicksort.py:195)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,049 | DEBUG | ssa.py:353 | find_def var='low' stmt=$258call_function.5 = call $248load_deref.0(A, R, low, high.4, func=$248load_deref.0, args=[Var(A, quicksort.py:166), Var(R, quicksort.py:166), Var(low, quicksort.py:177), Var(high.4, quicksort.py:195)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,050 | DEBUG | ssa.py:384 | find_def_from_top label 248\n", - "2023-05-15 11:07:28,050 | DEBUG | ssa.py:401 | insert phi node low.4 = phi(incoming_values=[], incoming_blocks=[]) at 248\n", - "2023-05-15 11:07:28,051 | DEBUG | ssa.py:427 | find_def_from_bottom label 76\n", - "2023-05-15 11:07:28,051 | DEBUG | ssa.py:409 | incoming_def low = $90unpack_sequence.6\n", - "2023-05-15 11:07:28,052 | DEBUG | ssa.py:427 | find_def_from_bottom label 236\n", - "2023-05-15 11:07:28,052 | DEBUG | ssa.py:409 | incoming_def low.3 = phi(incoming_values=[Var(low.2, quicksort.py:181), Var(low.1, quicksort.py:193)], incoming_blocks=[184, 228])\n", - "2023-05-15 11:07:28,053 | DEBUG | ssa.py:199 | replaced with: $258call_function.5 = call $248load_deref.0(A, R, low.4, high.4, func=$248load_deref.0, args=[Var(A, quicksort.py:166), Var(R, quicksort.py:166), Var(low.4, quicksort.py:195), Var(high.4, quicksort.py:195)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,053 | DEBUG | ssa.py:193 | on stmt: $const264.7 = const(int, 0)\n", - "2023-05-15 11:07:28,054 | DEBUG | ssa.py:193 | on stmt: $266compare_op.8 = n.5 > $const264.7\n", - "2023-05-15 11:07:28,054 | DEBUG | ssa.py:193 | on stmt: bool268 = global(bool: )\n", - "2023-05-15 11:07:28,055 | DEBUG | ssa.py:193 | on stmt: $268pred = call bool268($266compare_op.8, func=bool268, args=(Var($266compare_op.8, quicksort.py:175),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,055 | DEBUG | ssa.py:193 | on stmt: branch $268pred, 76, 270\n", - "2023-05-15 11:07:28,057 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 270\n", - "2023-05-15 11:07:28,058 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,059 | DEBUG | ssa.py:193 | on stmt: $272return_value.1 = cast(value=R)\n", - "2023-05-15 11:07:28,059 | DEBUG | ssa.py:193 | on stmt: return $272return_value.1\n", - "2023-05-15 11:07:28,069 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=43)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=43)\n", - " 4\tLOAD_METHOD(arg=1, lineno=43)\n", - " 6\tLOAD_FAST(arg=0, lineno=43)\n", - " 8\tLOAD_ATTR(arg=2, lineno=43)\n", - " 10\tCALL_METHOD(arg=1, lineno=43)\n", - " 12\tRETURN_VALUE(arg=None, lineno=43)\n", - "2023-05-15 11:07:28,070 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:28,070 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,071 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=43)\n", - "2023-05-15 11:07:28,072 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,072 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=43)\n", - "2023-05-15 11:07:28,073 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,074 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_METHOD(arg=1, lineno=43)\n", - "2023-05-15 11:07:28,075 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:28,075 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=0, lineno=43)\n", - "2023-05-15 11:07:28,076 | DEBUG | byteflow.py:279 | stack ['$4load_method.1']\n", - "2023-05-15 11:07:28,077 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_ATTR(arg=2, lineno=43)\n", - "2023-05-15 11:07:28,077 | DEBUG | byteflow.py:279 | stack ['$4load_method.1', '$A6.2']\n", - "2023-05-15 11:07:28,078 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_METHOD(arg=1, lineno=43)\n", - "2023-05-15 11:07:28,078 | DEBUG | byteflow.py:279 | stack ['$4load_method.1', '$8load_attr.3']\n", - "2023-05-15 11:07:28,079 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=RETURN_VALUE(arg=None, lineno=43)\n", - "2023-05-15 11:07:28,079 | DEBUG | byteflow.py:279 | stack ['$10call_method.4']\n", - "2023-05-15 11:07:28,080 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:28,080 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:28,081 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:28,081 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:28,082 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:28,082 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:28,083 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:28,083 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:28,083 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:28,084 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'item': '$2load_global.0', 'res': '$4load_method.1'}), (6, {'res': '$A6.2'}), (8, {'item': '$A6.2', 'res': '$8load_attr.3'}), (10, {'func': '$4load_method.1', 'args': ['$8load_attr.3'], 'res': '$10call_method.4'}), (12, {'retval': '$10call_method.4', 'castval': '$12return_value.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:28,085 | DEBUG | interpreter.py:1342 | label 0:\n", - " A = arg(0, name=A) ['A']\n", - " $2load_global.0 = global(np: ) ['$2load_global.0']\n", - " $4load_method.1 = getattr(value=$2load_global.0, attr=arange) ['$2load_global.0', '$4load_method.1']\n", - " $8load_attr.3 = getattr(value=A, attr=size) ['$8load_attr.3', 'A']\n", - " $10call_method.4 = call $4load_method.1($8load_attr.3, func=$4load_method.1, args=[Var($8load_attr.3, quicksort.py:43)], kws=(), vararg=None, varkwarg=None, target=None) ['$10call_method.4', '$4load_method.1', '$8load_attr.3']\n", - " $12return_value.5 = cast(value=$10call_method.4) ['$10call_method.4', '$12return_value.5']\n", - " return $12return_value.5 ['$12return_value.5']\n", - "\n", - "2023-05-15 11:07:28,096 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:28,097 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,098 | DEBUG | ssa.py:193 | on stmt: A = arg(0, name=A)\n", - "2023-05-15 11:07:28,098 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:28,099 | DEBUG | ssa.py:193 | on stmt: $4load_method.1 = getattr(value=$2load_global.0, attr=arange)\n", - "2023-05-15 11:07:28,099 | DEBUG | ssa.py:193 | on stmt: $8load_attr.3 = getattr(value=A, attr=size)\n", - "2023-05-15 11:07:28,100 | DEBUG | ssa.py:193 | on stmt: $10call_method.4 = call $4load_method.1($8load_attr.3, func=$4load_method.1, args=[Var($8load_attr.3, quicksort.py:43)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,100 | DEBUG | ssa.py:193 | on stmt: $12return_value.5 = cast(value=$10call_method.4)\n", - "2023-05-15 11:07:28,101 | DEBUG | ssa.py:193 | on stmt: return $12return_value.5\n", - "2023-05-15 11:07:28,102 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10call_method.4': [],\n", - " '$12return_value.5': [],\n", - " '$2load_global.0': [],\n", - " '$4load_method.1': [],\n", - " '$8load_attr.3': [],\n", - " 'A': []})\n", - "2023-05-15 11:07:28,102 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:28,109 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4516)\n", - " 2\tLOAD_DEREF(arg=0, lineno=4516)\n", - " 4\tLOAD_CONST(arg=0, lineno=4516)\n", - " 6\tIS_OP(arg=1, lineno=4516)\n", - " 8\tPOP_JUMP_IF_FALSE(arg=8, lineno=4516)\n", - " 10\tLOAD_DEREF(arg=0, lineno=4516)\n", - " 12\tJUMP_FORWARD(arg=1, lineno=4516)\n", - "> 14\tLOAD_FAST(arg=0, lineno=4516)\n", - "> 16\tSTORE_FAST(arg=4, lineno=4516)\n", - " 18\tLOAD_DEREF(arg=2, lineno=4517)\n", - " 20\tLOAD_CONST(arg=0, lineno=4517)\n", - " 22\tIS_OP(arg=1, lineno=4517)\n", - " 24\tPOP_JUMP_IF_FALSE(arg=16, lineno=4517)\n", - " 26\tLOAD_DEREF(arg=2, lineno=4517)\n", - " 28\tJUMP_FORWARD(arg=1, lineno=4517)\n", - "> 30\tLOAD_FAST(arg=1, lineno=4517)\n", - "> 32\tSTORE_FAST(arg=5, lineno=4517)\n", - " 34\tLOAD_DEREF(arg=1, lineno=4518)\n", - " 36\tLOAD_CONST(arg=0, lineno=4518)\n", - " 38\tIS_OP(arg=1, lineno=4518)\n", - " 40\tPOP_JUMP_IF_FALSE(arg=24, lineno=4518)\n", - " 42\tLOAD_DEREF(arg=1, lineno=4518)\n", - " 44\tJUMP_FORWARD(arg=1, lineno=4518)\n", - "> 46\tLOAD_FAST(arg=2, lineno=4518)\n", - "> 48\tSTORE_FAST(arg=6, lineno=4518)\n", - " 50\tLOAD_FAST(arg=6, lineno=4520)\n", - " 52\tLOAD_CONST(arg=0, lineno=4520)\n", - " 54\tIS_OP(arg=1, lineno=4520)\n", - " 56\tPOP_JUMP_IF_FALSE(arg=32, lineno=4520)\n", - " 58\tLOAD_FAST(arg=6, lineno=4520)\n", - " 60\tJUMP_FORWARD(arg=1, lineno=4520)\n", - "> 62\tLOAD_CONST(arg=1, lineno=4520)\n", - "> 64\tSTORE_FAST(arg=7, lineno=4520)\n", - " 66\tLOAD_FAST(arg=5, lineno=4521)\n", - " 68\tLOAD_CONST(arg=0, lineno=4521)\n", - " 70\tIS_OP(arg=0, lineno=4521)\n", - " 72\tPOP_JUMP_IF_FALSE(arg=44, lineno=4521)\n", - " 74\tLOAD_CONST(arg=2, lineno=4522)\n", - " 76\tLOAD_FAST(arg=4, lineno=4522)\n", - " 78\tROT_TWO(arg=None, lineno=4522)\n", - " 80\tSTORE_FAST(arg=8, lineno=4522)\n", - " 82\tSTORE_FAST(arg=9, lineno=4522)\n", - " 84\tJUMP_FORWARD(arg=5, lineno=4522)\n", - "> 86\tLOAD_FAST(arg=4, lineno=4524)\n", - " 88\tLOAD_FAST(arg=5, lineno=4524)\n", - " 90\tROT_TWO(arg=None, lineno=4524)\n", - " 92\tSTORE_FAST(arg=8, lineno=4524)\n", - " 94\tSTORE_FAST(arg=9, lineno=4524)\n", - "> 96\tLOAD_FAST(arg=7, lineno=4526)\n", - " 98\tLOAD_CONST(arg=2, lineno=4526)\n", - " 100\tCOMPARE_OP(arg=2, lineno=4526)\n", - " 102\tPOP_JUMP_IF_FALSE(arg=57, lineno=4526)\n", - " 104\tLOAD_GLOBAL(arg=0, lineno=4527)\n", - " 106\tLOAD_CONST(arg=3, lineno=4527)\n", - " 108\tCALL_FUNCTION(arg=1, lineno=4527)\n", - " 110\tRAISE_VARARGS(arg=1, lineno=4527)\n", - "> 112\tLOAD_FAST(arg=9, lineno=4529)\n", - " 114\tLOAD_FAST(arg=8, lineno=4529)\n", - " 116\tBINARY_SUBTRACT(arg=None, lineno=4529)\n", - " 118\tLOAD_FAST(arg=7, lineno=4529)\n", - " 120\tBINARY_TRUE_DIVIDE(arg=None, lineno=4529)\n", - " 122\tSTORE_FAST(arg=10, lineno=4529)\n", - " 124\tLOAD_GLOBAL(arg=1, lineno=4530)\n", - " 126\tLOAD_GLOBAL(arg=2, lineno=4530)\n", - " 128\tLOAD_METHOD(arg=3, lineno=4530)\n", - " 130\tLOAD_FAST(arg=10, lineno=4530)\n", - " 132\tLOAD_ATTR(arg=4, lineno=4530)\n", - " 134\tCALL_METHOD(arg=1, lineno=4530)\n", - " 136\tCALL_FUNCTION(arg=1, lineno=4530)\n", - " 138\tSTORE_FAST(arg=11, lineno=4530)\n", - " 140\tLOAD_DEREF(arg=4, lineno=4533)\n", - " 142\tLOAD_CONST(arg=4, lineno=4533)\n", - " 144\tIS_OP(arg=0, lineno=4533)\n", - " 146\tPOP_JUMP_IF_FALSE(arg=92, lineno=4533)\n", - " 148\tLOAD_GLOBAL(arg=1, lineno=4534)\n", - " 150\tLOAD_GLOBAL(arg=2, lineno=4534)\n", - " 152\tLOAD_METHOD(arg=3, lineno=4534)\n", - " 154\tLOAD_FAST(arg=10, lineno=4534)\n", - " 156\tLOAD_ATTR(arg=5, lineno=4534)\n", - " 158\tCALL_METHOD(arg=1, lineno=4534)\n", - " 160\tCALL_FUNCTION(arg=1, lineno=4534)\n", - " 162\tSTORE_FAST(arg=12, lineno=4534)\n", - " 164\tLOAD_GLOBAL(arg=6, lineno=4535)\n", - " 166\tLOAD_GLOBAL(arg=7, lineno=4535)\n", - " 168\tLOAD_FAST(arg=12, lineno=4535)\n", - " 170\tLOAD_FAST(arg=11, lineno=4535)\n", - " 172\tCALL_FUNCTION(arg=2, lineno=4535)\n", - " 174\tLOAD_CONST(arg=2, lineno=4535)\n", - " 176\tCALL_FUNCTION(arg=2, lineno=4535)\n", - " 178\tSTORE_FAST(arg=13, lineno=4535)\n", - " 180\tJUMP_FORWARD(arg=5, lineno=4535)\n", - "> 182\tLOAD_GLOBAL(arg=6, lineno=4537)\n", - " 184\tLOAD_FAST(arg=11, lineno=4537)\n", - " 186\tLOAD_CONST(arg=2, lineno=4537)\n", - " 188\tCALL_FUNCTION(arg=2, lineno=4537)\n", - " 190\tSTORE_FAST(arg=13, lineno=4537)\n", - "> 192\tLOAD_GLOBAL(arg=8, lineno=4538)\n", - " 194\tLOAD_METHOD(arg=9, lineno=4538)\n", - " 196\tLOAD_FAST(arg=13, lineno=4538)\n", - " 198\tLOAD_DEREF(arg=3, lineno=4538)\n", - " 200\tCALL_METHOD(arg=2, lineno=4538)\n", - " 202\tSTORE_FAST(arg=14, lineno=4538)\n", - " 204\tLOAD_FAST(arg=8, lineno=4539)\n", - " 206\tSTORE_FAST(arg=15, lineno=4539)\n", - " 208\tLOAD_GLOBAL(arg=10, lineno=4540)\n", - " 210\tLOAD_FAST(arg=13, lineno=4540)\n", - " 212\tCALL_FUNCTION(arg=1, lineno=4540)\n", - " 214\tGET_ITER(arg=None, lineno=4540)\n", - "> 216\tFOR_ITER(arg=10, lineno=4540)\n", - " 218\tSTORE_FAST(arg=16, lineno=4540)\n", - " 220\tLOAD_FAST(arg=15, lineno=4541)\n", - " 222\tLOAD_FAST(arg=16, lineno=4541)\n", - " 224\tLOAD_FAST(arg=7, lineno=4541)\n", - " 226\tBINARY_MULTIPLY(arg=None, lineno=4541)\n", - " 228\tBINARY_ADD(arg=None, lineno=4541)\n", - " 230\tLOAD_FAST(arg=14, lineno=4541)\n", - " 232\tLOAD_FAST(arg=16, lineno=4541)\n", - " 234\tSTORE_SUBSCR(arg=None, lineno=4541)\n", - " 236\tJUMP_ABSOLUTE(arg=109, lineno=4541)\n", - "> 238\tLOAD_FAST(arg=14, lineno=4542)\n", - " 240\tRETURN_VALUE(arg=None, lineno=4542)\n", - "2023-05-15 11:07:28,110 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:28,110 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,111 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4516)\n", - "2023-05-15 11:07:28,111 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,112 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_DEREF(arg=0, lineno=4516)\n", - "2023-05-15 11:07:28,112 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,113 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_CONST(arg=0, lineno=4516)\n", - "2023-05-15 11:07:28,113 | DEBUG | byteflow.py:279 | stack ['$2load_deref.0']\n", - "2023-05-15 11:07:28,114 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=IS_OP(arg=1, lineno=4516)\n", - "2023-05-15 11:07:28,114 | DEBUG | byteflow.py:279 | stack ['$2load_deref.0', '$const4.1']\n", - "2023-05-15 11:07:28,114 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=POP_JUMP_IF_FALSE(arg=8, lineno=4516)\n", - "2023-05-15 11:07:28,115 | DEBUG | byteflow.py:279 | stack ['$6is_op.2']\n", - "2023-05-15 11:07:28,115 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=10, stack=(), blockstack=(), npush=0), Edge(pc=14, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,118 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=10 nstack_initial=0), State(pc_initial=14 nstack_initial=0)])\n", - "2023-05-15 11:07:28,118 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,119 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_DEREF(arg=0, lineno=4516)\n", - "2023-05-15 11:07:28,119 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,120 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=JUMP_FORWARD(arg=1, lineno=4516)\n", - "2023-05-15 11:07:28,121 | DEBUG | byteflow.py:279 | stack ['$10load_deref.0']\n", - "2023-05-15 11:07:28,122 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=16, stack=('$10load_deref.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,122 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=14 nstack_initial=0), State(pc_initial=16 nstack_initial=1)])\n", - "2023-05-15 11:07:28,123 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,123 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=LOAD_FAST(arg=0, lineno=4516)\n", - "2023-05-15 11:07:28,124 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,124 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=16, stack=('$start14.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,125 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=16 nstack_initial=1), State(pc_initial=16 nstack_initial=1)])\n", - "2023-05-15 11:07:28,125 | DEBUG | byteflow.py:103 | stack: ['$phi16.0']\n", - "2023-05-15 11:07:28,126 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=STORE_FAST(arg=4, lineno=4516)\n", - "2023-05-15 11:07:28,126 | DEBUG | byteflow.py:279 | stack ['$phi16.0']\n", - "2023-05-15 11:07:28,127 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=LOAD_DEREF(arg=2, lineno=4517)\n", - "2023-05-15 11:07:28,127 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,128 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=LOAD_CONST(arg=0, lineno=4517)\n", - "2023-05-15 11:07:28,128 | DEBUG | byteflow.py:279 | stack ['$18load_deref.1']\n", - "2023-05-15 11:07:28,129 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=IS_OP(arg=1, lineno=4517)\n", - "2023-05-15 11:07:28,129 | DEBUG | byteflow.py:279 | stack ['$18load_deref.1', '$const20.2']\n", - "2023-05-15 11:07:28,130 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=POP_JUMP_IF_FALSE(arg=16, lineno=4517)\n", - "2023-05-15 11:07:28,130 | DEBUG | byteflow.py:279 | stack ['$22is_op.3']\n", - "2023-05-15 11:07:28,131 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=26, stack=(), blockstack=(), npush=0), Edge(pc=30, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,131 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=16 nstack_initial=1), State(pc_initial=26 nstack_initial=0), State(pc_initial=30 nstack_initial=0)])\n", - "2023-05-15 11:07:28,132 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=26 nstack_initial=0), State(pc_initial=30 nstack_initial=0)])\n", - "2023-05-15 11:07:28,132 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,133 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=LOAD_DEREF(arg=2, lineno=4517)\n", - "2023-05-15 11:07:28,133 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,133 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=JUMP_FORWARD(arg=1, lineno=4517)\n", - "2023-05-15 11:07:28,134 | DEBUG | byteflow.py:279 | stack ['$26load_deref.0']\n", - "2023-05-15 11:07:28,134 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=32, stack=('$26load_deref.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,135 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=30 nstack_initial=0), State(pc_initial=32 nstack_initial=1)])\n", - "2023-05-15 11:07:28,135 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,136 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=LOAD_FAST(arg=1, lineno=4517)\n", - "2023-05-15 11:07:28,139 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,139 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=32, stack=('$stop30.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,140 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=32 nstack_initial=1), State(pc_initial=32 nstack_initial=1)])\n", - "2023-05-15 11:07:28,140 | DEBUG | byteflow.py:103 | stack: ['$phi32.0']\n", - "2023-05-15 11:07:28,141 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=STORE_FAST(arg=5, lineno=4517)\n", - "2023-05-15 11:07:28,142 | DEBUG | byteflow.py:279 | stack ['$phi32.0']\n", - "2023-05-15 11:07:28,142 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=LOAD_DEREF(arg=1, lineno=4518)\n", - "2023-05-15 11:07:28,143 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,143 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=LOAD_CONST(arg=0, lineno=4518)\n", - "2023-05-15 11:07:28,143 | DEBUG | byteflow.py:279 | stack ['$34load_deref.1']\n", - "2023-05-15 11:07:28,144 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=IS_OP(arg=1, lineno=4518)\n", - "2023-05-15 11:07:28,145 | DEBUG | byteflow.py:279 | stack ['$34load_deref.1', '$const36.2']\n", - "2023-05-15 11:07:28,146 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=POP_JUMP_IF_FALSE(arg=24, lineno=4518)\n", - "2023-05-15 11:07:28,146 | DEBUG | byteflow.py:279 | stack ['$38is_op.3']\n", - "2023-05-15 11:07:28,147 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=42, stack=(), blockstack=(), npush=0), Edge(pc=46, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,148 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=32 nstack_initial=1), State(pc_initial=42 nstack_initial=0), State(pc_initial=46 nstack_initial=0)])\n", - "2023-05-15 11:07:28,148 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=42 nstack_initial=0), State(pc_initial=46 nstack_initial=0)])\n", - "2023-05-15 11:07:28,149 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,149 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=LOAD_DEREF(arg=1, lineno=4518)\n", - "2023-05-15 11:07:28,149 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,150 | DEBUG | byteflow.py:278 | dispatch pc=44, inst=JUMP_FORWARD(arg=1, lineno=4518)\n", - "2023-05-15 11:07:28,150 | DEBUG | byteflow.py:279 | stack ['$42load_deref.0']\n", - "2023-05-15 11:07:28,151 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=48, stack=('$42load_deref.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,151 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=46 nstack_initial=0), State(pc_initial=48 nstack_initial=1)])\n", - "2023-05-15 11:07:28,152 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,152 | DEBUG | byteflow.py:278 | dispatch pc=46, inst=LOAD_FAST(arg=2, lineno=4518)\n", - "2023-05-15 11:07:28,152 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,153 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=48, stack=('$step46.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,153 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=48 nstack_initial=1), State(pc_initial=48 nstack_initial=1)])\n", - "2023-05-15 11:07:28,154 | DEBUG | byteflow.py:103 | stack: ['$phi48.0']\n", - "2023-05-15 11:07:28,154 | DEBUG | byteflow.py:278 | dispatch pc=48, inst=STORE_FAST(arg=6, lineno=4518)\n", - "2023-05-15 11:07:28,155 | DEBUG | byteflow.py:279 | stack ['$phi48.0']\n", - "2023-05-15 11:07:28,155 | DEBUG | byteflow.py:278 | dispatch pc=50, inst=LOAD_FAST(arg=6, lineno=4520)\n", - "2023-05-15 11:07:28,155 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,156 | DEBUG | byteflow.py:278 | dispatch pc=52, inst=LOAD_CONST(arg=0, lineno=4520)\n", - "2023-05-15 11:07:28,156 | DEBUG | byteflow.py:279 | stack ['$lit_step50.1']\n", - "2023-05-15 11:07:28,156 | DEBUG | byteflow.py:278 | dispatch pc=54, inst=IS_OP(arg=1, lineno=4520)\n", - "2023-05-15 11:07:28,157 | DEBUG | byteflow.py:279 | stack ['$lit_step50.1', '$const52.2']\n", - "2023-05-15 11:07:28,157 | DEBUG | byteflow.py:278 | dispatch pc=56, inst=POP_JUMP_IF_FALSE(arg=32, lineno=4520)\n", - "2023-05-15 11:07:28,158 | DEBUG | byteflow.py:279 | stack ['$54is_op.3']\n", - "2023-05-15 11:07:28,158 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=58, stack=(), blockstack=(), npush=0), Edge(pc=62, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,159 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=48 nstack_initial=1), State(pc_initial=58 nstack_initial=0), State(pc_initial=62 nstack_initial=0)])\n", - "2023-05-15 11:07:28,159 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=58 nstack_initial=0), State(pc_initial=62 nstack_initial=0)])\n", - "2023-05-15 11:07:28,160 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,160 | DEBUG | byteflow.py:278 | dispatch pc=58, inst=LOAD_FAST(arg=6, lineno=4520)\n", - "2023-05-15 11:07:28,161 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,161 | DEBUG | byteflow.py:278 | dispatch pc=60, inst=JUMP_FORWARD(arg=1, lineno=4520)\n", - "2023-05-15 11:07:28,162 | DEBUG | byteflow.py:279 | stack ['$lit_step58.0']\n", - "2023-05-15 11:07:28,162 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=64, stack=('$lit_step58.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,163 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=62 nstack_initial=0), State(pc_initial=64 nstack_initial=1)])\n", - "2023-05-15 11:07:28,163 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,164 | DEBUG | byteflow.py:278 | dispatch pc=62, inst=LOAD_CONST(arg=1, lineno=4520)\n", - "2023-05-15 11:07:28,164 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,165 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=64, stack=('$const62.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,165 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=64 nstack_initial=1), State(pc_initial=64 nstack_initial=1)])\n", - "2023-05-15 11:07:28,166 | DEBUG | byteflow.py:103 | stack: ['$phi64.0']\n", - "2023-05-15 11:07:28,166 | DEBUG | byteflow.py:278 | dispatch pc=64, inst=STORE_FAST(arg=7, lineno=4520)\n", - "2023-05-15 11:07:28,167 | DEBUG | byteflow.py:279 | stack ['$phi64.0']\n", - "2023-05-15 11:07:28,167 | DEBUG | byteflow.py:278 | dispatch pc=66, inst=LOAD_FAST(arg=5, lineno=4521)\n", - "2023-05-15 11:07:28,168 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,168 | DEBUG | byteflow.py:278 | dispatch pc=68, inst=LOAD_CONST(arg=0, lineno=4521)\n", - "2023-05-15 11:07:28,169 | DEBUG | byteflow.py:279 | stack ['$lit_stop66.1']\n", - "2023-05-15 11:07:28,169 | DEBUG | byteflow.py:278 | dispatch pc=70, inst=IS_OP(arg=0, lineno=4521)\n", - "2023-05-15 11:07:28,170 | DEBUG | byteflow.py:279 | stack ['$lit_stop66.1', '$const68.2']\n", - "2023-05-15 11:07:28,170 | DEBUG | byteflow.py:278 | dispatch pc=72, inst=POP_JUMP_IF_FALSE(arg=44, lineno=4521)\n", - "2023-05-15 11:07:28,171 | DEBUG | byteflow.py:279 | stack ['$70is_op.3']\n", - "2023-05-15 11:07:28,171 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=74, stack=(), blockstack=(), npush=0), Edge(pc=86, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,172 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=64 nstack_initial=1), State(pc_initial=74 nstack_initial=0), State(pc_initial=86 nstack_initial=0)])\n", - "2023-05-15 11:07:28,172 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=74 nstack_initial=0), State(pc_initial=86 nstack_initial=0)])\n", - "2023-05-15 11:07:28,172 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,173 | DEBUG | byteflow.py:278 | dispatch pc=74, inst=LOAD_CONST(arg=2, lineno=4522)\n", - "2023-05-15 11:07:28,173 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,174 | DEBUG | byteflow.py:278 | dispatch pc=76, inst=LOAD_FAST(arg=4, lineno=4522)\n", - "2023-05-15 11:07:28,174 | DEBUG | byteflow.py:279 | stack ['$const74.0']\n", - "2023-05-15 11:07:28,175 | DEBUG | byteflow.py:278 | dispatch pc=78, inst=ROT_TWO(arg=None, lineno=4522)\n", - "2023-05-15 11:07:28,175 | DEBUG | byteflow.py:279 | stack ['$const74.0', '$lit_start76.1']\n", - "2023-05-15 11:07:28,175 | DEBUG | byteflow.py:278 | dispatch pc=80, inst=STORE_FAST(arg=8, lineno=4522)\n", - "2023-05-15 11:07:28,176 | DEBUG | byteflow.py:279 | stack ['$lit_start76.1', '$const74.0']\n", - "2023-05-15 11:07:28,176 | DEBUG | byteflow.py:278 | dispatch pc=82, inst=STORE_FAST(arg=9, lineno=4522)\n", - "2023-05-15 11:07:28,176 | DEBUG | byteflow.py:279 | stack ['$lit_start76.1']\n", - "2023-05-15 11:07:28,177 | DEBUG | byteflow.py:278 | dispatch pc=84, inst=JUMP_FORWARD(arg=5, lineno=4522)\n", - "2023-05-15 11:07:28,177 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,180 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=96, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,181 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=86 nstack_initial=0), State(pc_initial=96 nstack_initial=0)])\n", - "2023-05-15 11:07:28,181 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,189 | DEBUG | byteflow.py:278 | dispatch pc=86, inst=LOAD_FAST(arg=4, lineno=4524)\n", - "2023-05-15 11:07:28,191 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,191 | DEBUG | byteflow.py:278 | dispatch pc=88, inst=LOAD_FAST(arg=5, lineno=4524)\n", - "2023-05-15 11:07:28,192 | DEBUG | byteflow.py:279 | stack ['$lit_start86.0']\n", - "2023-05-15 11:07:28,192 | DEBUG | byteflow.py:278 | dispatch pc=90, inst=ROT_TWO(arg=None, lineno=4524)\n", - "2023-05-15 11:07:28,193 | DEBUG | byteflow.py:279 | stack ['$lit_start86.0', '$lit_stop88.1']\n", - "2023-05-15 11:07:28,193 | DEBUG | byteflow.py:278 | dispatch pc=92, inst=STORE_FAST(arg=8, lineno=4524)\n", - "2023-05-15 11:07:28,193 | DEBUG | byteflow.py:279 | stack ['$lit_stop88.1', '$lit_start86.0']\n", - "2023-05-15 11:07:28,194 | DEBUG | byteflow.py:278 | dispatch pc=94, inst=STORE_FAST(arg=9, lineno=4524)\n", - "2023-05-15 11:07:28,195 | DEBUG | byteflow.py:279 | stack ['$lit_stop88.1']\n", - "2023-05-15 11:07:28,196 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=96, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,196 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=96 nstack_initial=0), State(pc_initial=96 nstack_initial=0)])\n", - "2023-05-15 11:07:28,196 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,197 | DEBUG | byteflow.py:278 | dispatch pc=96, inst=LOAD_FAST(arg=7, lineno=4526)\n", - "2023-05-15 11:07:28,197 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,198 | DEBUG | byteflow.py:278 | dispatch pc=98, inst=LOAD_CONST(arg=2, lineno=4526)\n", - "2023-05-15 11:07:28,198 | DEBUG | byteflow.py:279 | stack ['$_step96.0']\n", - "2023-05-15 11:07:28,199 | DEBUG | byteflow.py:278 | dispatch pc=100, inst=COMPARE_OP(arg=2, lineno=4526)\n", - "2023-05-15 11:07:28,199 | DEBUG | byteflow.py:279 | stack ['$_step96.0', '$const98.1']\n", - "2023-05-15 11:07:28,199 | DEBUG | byteflow.py:278 | dispatch pc=102, inst=POP_JUMP_IF_FALSE(arg=57, lineno=4526)\n", - "2023-05-15 11:07:28,200 | DEBUG | byteflow.py:279 | stack ['$100compare_op.2']\n", - "2023-05-15 11:07:28,200 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=104, stack=(), blockstack=(), npush=0), Edge(pc=112, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,200 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=96 nstack_initial=0), State(pc_initial=104 nstack_initial=0), State(pc_initial=112 nstack_initial=0)])\n", - "2023-05-15 11:07:28,201 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=104 nstack_initial=0), State(pc_initial=112 nstack_initial=0)])\n", - "2023-05-15 11:07:28,201 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,202 | DEBUG | byteflow.py:278 | dispatch pc=104, inst=LOAD_GLOBAL(arg=0, lineno=4527)\n", - "2023-05-15 11:07:28,202 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,203 | DEBUG | byteflow.py:278 | dispatch pc=106, inst=LOAD_CONST(arg=3, lineno=4527)\n", - "2023-05-15 11:07:28,203 | DEBUG | byteflow.py:279 | stack ['$104load_global.0']\n", - "2023-05-15 11:07:28,206 | DEBUG | byteflow.py:278 | dispatch pc=108, inst=CALL_FUNCTION(arg=1, lineno=4527)\n", - "2023-05-15 11:07:28,207 | DEBUG | byteflow.py:279 | stack ['$104load_global.0', '$const106.1']\n", - "2023-05-15 11:07:28,207 | DEBUG | byteflow.py:278 | dispatch pc=110, inst=RAISE_VARARGS(arg=1, lineno=4527)\n", - "2023-05-15 11:07:28,208 | DEBUG | byteflow.py:279 | stack ['$108call_function.2']\n", - "2023-05-15 11:07:28,209 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:28,209 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=112 nstack_initial=0)])\n", - "2023-05-15 11:07:28,209 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,210 | DEBUG | byteflow.py:278 | dispatch pc=112, inst=LOAD_FAST(arg=9, lineno=4529)\n", - "2023-05-15 11:07:28,210 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,211 | DEBUG | byteflow.py:278 | dispatch pc=114, inst=LOAD_FAST(arg=8, lineno=4529)\n", - "2023-05-15 11:07:28,211 | DEBUG | byteflow.py:279 | stack ['$_stop112.0']\n", - "2023-05-15 11:07:28,212 | DEBUG | byteflow.py:278 | dispatch pc=116, inst=BINARY_SUBTRACT(arg=None, lineno=4529)\n", - "2023-05-15 11:07:28,212 | DEBUG | byteflow.py:279 | stack ['$_stop112.0', '$_start114.1']\n", - "2023-05-15 11:07:28,212 | DEBUG | byteflow.py:278 | dispatch pc=118, inst=LOAD_FAST(arg=7, lineno=4529)\n", - "2023-05-15 11:07:28,213 | DEBUG | byteflow.py:279 | stack ['$116binary_subtract.2']\n", - "2023-05-15 11:07:28,213 | DEBUG | byteflow.py:278 | dispatch pc=120, inst=BINARY_TRUE_DIVIDE(arg=None, lineno=4529)\n", - "2023-05-15 11:07:28,214 | DEBUG | byteflow.py:279 | stack ['$116binary_subtract.2', '$_step118.3']\n", - "2023-05-15 11:07:28,215 | DEBUG | byteflow.py:278 | dispatch pc=122, inst=STORE_FAST(arg=10, lineno=4529)\n", - "2023-05-15 11:07:28,215 | DEBUG | byteflow.py:279 | stack ['$120binary_true_divide.4']\n", - "2023-05-15 11:07:28,216 | DEBUG | byteflow.py:278 | dispatch pc=124, inst=LOAD_GLOBAL(arg=1, lineno=4530)\n", - "2023-05-15 11:07:28,216 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,217 | DEBUG | byteflow.py:278 | dispatch pc=126, inst=LOAD_GLOBAL(arg=2, lineno=4530)\n", - "2023-05-15 11:07:28,217 | DEBUG | byteflow.py:279 | stack ['$124load_global.5']\n", - "2023-05-15 11:07:28,218 | DEBUG | byteflow.py:278 | dispatch pc=128, inst=LOAD_METHOD(arg=3, lineno=4530)\n", - "2023-05-15 11:07:28,218 | DEBUG | byteflow.py:279 | stack ['$124load_global.5', '$126load_global.6']\n", - "2023-05-15 11:07:28,220 | DEBUG | byteflow.py:278 | dispatch pc=130, inst=LOAD_FAST(arg=10, lineno=4530)\n", - "2023-05-15 11:07:28,220 | DEBUG | byteflow.py:279 | stack ['$124load_global.5', '$128load_method.7']\n", - "2023-05-15 11:07:28,221 | DEBUG | byteflow.py:278 | dispatch pc=132, inst=LOAD_ATTR(arg=4, lineno=4530)\n", - "2023-05-15 11:07:28,221 | DEBUG | byteflow.py:279 | stack ['$124load_global.5', '$128load_method.7', '$nitems_c130.8']\n", - "2023-05-15 11:07:28,222 | DEBUG | byteflow.py:278 | dispatch pc=134, inst=CALL_METHOD(arg=1, lineno=4530)\n", - "2023-05-15 11:07:28,222 | DEBUG | byteflow.py:279 | stack ['$124load_global.5', '$128load_method.7', '$132load_attr.9']\n", - "2023-05-15 11:07:28,222 | DEBUG | byteflow.py:278 | dispatch pc=136, inst=CALL_FUNCTION(arg=1, lineno=4530)\n", - "2023-05-15 11:07:28,223 | DEBUG | byteflow.py:279 | stack ['$124load_global.5', '$134call_method.10']\n", - "2023-05-15 11:07:28,223 | DEBUG | byteflow.py:278 | dispatch pc=138, inst=STORE_FAST(arg=11, lineno=4530)\n", - "2023-05-15 11:07:28,224 | DEBUG | byteflow.py:279 | stack ['$136call_function.11']\n", - "2023-05-15 11:07:28,224 | DEBUG | byteflow.py:278 | dispatch pc=140, inst=LOAD_DEREF(arg=4, lineno=4533)\n", - "2023-05-15 11:07:28,225 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,225 | DEBUG | byteflow.py:278 | dispatch pc=142, inst=LOAD_CONST(arg=4, lineno=4533)\n", - "2023-05-15 11:07:28,225 | DEBUG | byteflow.py:279 | stack ['$140load_deref.12']\n", - "2023-05-15 11:07:28,226 | DEBUG | byteflow.py:278 | dispatch pc=144, inst=IS_OP(arg=0, lineno=4533)\n", - "2023-05-15 11:07:28,226 | DEBUG | byteflow.py:279 | stack ['$140load_deref.12', '$const142.13']\n", - "2023-05-15 11:07:28,227 | DEBUG | byteflow.py:278 | dispatch pc=146, inst=POP_JUMP_IF_FALSE(arg=92, lineno=4533)\n", - "2023-05-15 11:07:28,227 | DEBUG | byteflow.py:279 | stack ['$144is_op.14']\n", - "2023-05-15 11:07:28,227 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=148, stack=(), blockstack=(), npush=0), Edge(pc=182, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,228 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=148 nstack_initial=0), State(pc_initial=182 nstack_initial=0)])\n", - "2023-05-15 11:07:28,228 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,229 | DEBUG | byteflow.py:278 | dispatch pc=148, inst=LOAD_GLOBAL(arg=1, lineno=4534)\n", - "2023-05-15 11:07:28,229 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,229 | DEBUG | byteflow.py:278 | dispatch pc=150, inst=LOAD_GLOBAL(arg=2, lineno=4534)\n", - "2023-05-15 11:07:28,230 | DEBUG | byteflow.py:279 | stack ['$148load_global.0']\n", - "2023-05-15 11:07:28,230 | DEBUG | byteflow.py:278 | dispatch pc=152, inst=LOAD_METHOD(arg=3, lineno=4534)\n", - "2023-05-15 11:07:28,231 | DEBUG | byteflow.py:279 | stack ['$148load_global.0', '$150load_global.1']\n", - "2023-05-15 11:07:28,231 | DEBUG | byteflow.py:278 | dispatch pc=154, inst=LOAD_FAST(arg=10, lineno=4534)\n", - "2023-05-15 11:07:28,231 | DEBUG | byteflow.py:279 | stack ['$148load_global.0', '$152load_method.2']\n", - "2023-05-15 11:07:28,232 | DEBUG | byteflow.py:278 | dispatch pc=156, inst=LOAD_ATTR(arg=5, lineno=4534)\n", - "2023-05-15 11:07:28,232 | DEBUG | byteflow.py:279 | stack ['$148load_global.0', '$152load_method.2', '$nitems_c154.3']\n", - "2023-05-15 11:07:28,233 | DEBUG | byteflow.py:278 | dispatch pc=158, inst=CALL_METHOD(arg=1, lineno=4534)\n", - "2023-05-15 11:07:28,233 | DEBUG | byteflow.py:279 | stack ['$148load_global.0', '$152load_method.2', '$156load_attr.4']\n", - "2023-05-15 11:07:28,233 | DEBUG | byteflow.py:278 | dispatch pc=160, inst=CALL_FUNCTION(arg=1, lineno=4534)\n", - "2023-05-15 11:07:28,234 | DEBUG | byteflow.py:279 | stack ['$148load_global.0', '$158call_method.5']\n", - "2023-05-15 11:07:28,234 | DEBUG | byteflow.py:278 | dispatch pc=162, inst=STORE_FAST(arg=12, lineno=4534)\n", - "2023-05-15 11:07:28,235 | DEBUG | byteflow.py:279 | stack ['$160call_function.6']\n", - "2023-05-15 11:07:28,235 | DEBUG | byteflow.py:278 | dispatch pc=164, inst=LOAD_GLOBAL(arg=6, lineno=4535)\n", - "2023-05-15 11:07:28,235 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,236 | DEBUG | byteflow.py:278 | dispatch pc=166, inst=LOAD_GLOBAL(arg=7, lineno=4535)\n", - "2023-05-15 11:07:28,236 | DEBUG | byteflow.py:279 | stack ['$164load_global.7']\n", - "2023-05-15 11:07:28,237 | DEBUG | byteflow.py:278 | dispatch pc=168, inst=LOAD_FAST(arg=12, lineno=4535)\n", - "2023-05-15 11:07:28,237 | DEBUG | byteflow.py:279 | stack ['$164load_global.7', '$166load_global.8']\n", - "2023-05-15 11:07:28,239 | DEBUG | byteflow.py:278 | dispatch pc=170, inst=LOAD_FAST(arg=11, lineno=4535)\n", - "2023-05-15 11:07:28,240 | DEBUG | byteflow.py:279 | stack ['$164load_global.7', '$166load_global.8', '$nitems_i168.9']\n", - "2023-05-15 11:07:28,240 | DEBUG | byteflow.py:278 | dispatch pc=172, inst=CALL_FUNCTION(arg=2, lineno=4535)\n", - "2023-05-15 11:07:28,241 | DEBUG | byteflow.py:279 | stack ['$164load_global.7', '$166load_global.8', '$nitems_i168.9', '$nitems_r170.10']\n", - "2023-05-15 11:07:28,241 | DEBUG | byteflow.py:278 | dispatch pc=174, inst=LOAD_CONST(arg=2, lineno=4535)\n", - "2023-05-15 11:07:28,241 | DEBUG | byteflow.py:279 | stack ['$164load_global.7', '$172call_function.11']\n", - "2023-05-15 11:07:28,242 | DEBUG | byteflow.py:278 | dispatch pc=176, inst=CALL_FUNCTION(arg=2, lineno=4535)\n", - "2023-05-15 11:07:28,242 | DEBUG | byteflow.py:279 | stack ['$164load_global.7', '$172call_function.11', '$const174.12']\n", - "2023-05-15 11:07:28,243 | DEBUG | byteflow.py:278 | dispatch pc=178, inst=STORE_FAST(arg=13, lineno=4535)\n", - "2023-05-15 11:07:28,243 | DEBUG | byteflow.py:279 | stack ['$176call_function.13']\n", - "2023-05-15 11:07:28,243 | DEBUG | byteflow.py:278 | dispatch pc=180, inst=JUMP_FORWARD(arg=5, lineno=4535)\n", - "2023-05-15 11:07:28,244 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,244 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=192, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,245 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=182 nstack_initial=0), State(pc_initial=192 nstack_initial=0)])\n", - "2023-05-15 11:07:28,245 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,245 | DEBUG | byteflow.py:278 | dispatch pc=182, inst=LOAD_GLOBAL(arg=6, lineno=4537)\n", - "2023-05-15 11:07:28,246 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,248 | DEBUG | byteflow.py:278 | dispatch pc=184, inst=LOAD_FAST(arg=11, lineno=4537)\n", - "2023-05-15 11:07:28,248 | DEBUG | byteflow.py:279 | stack ['$182load_global.0']\n", - "2023-05-15 11:07:28,249 | DEBUG | byteflow.py:278 | dispatch pc=186, inst=LOAD_CONST(arg=2, lineno=4537)\n", - "2023-05-15 11:07:28,249 | DEBUG | byteflow.py:279 | stack ['$182load_global.0', '$nitems_r184.1']\n", - "2023-05-15 11:07:28,254 | DEBUG | byteflow.py:278 | dispatch pc=188, inst=CALL_FUNCTION(arg=2, lineno=4537)\n", - "2023-05-15 11:07:28,255 | DEBUG | byteflow.py:279 | stack ['$182load_global.0', '$nitems_r184.1', '$const186.2']\n", - "2023-05-15 11:07:28,255 | DEBUG | byteflow.py:278 | dispatch pc=190, inst=STORE_FAST(arg=13, lineno=4537)\n", - "2023-05-15 11:07:28,256 | DEBUG | byteflow.py:279 | stack ['$188call_function.3']\n", - "2023-05-15 11:07:28,257 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=192, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,257 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=192 nstack_initial=0), State(pc_initial=192 nstack_initial=0)])\n", - "2023-05-15 11:07:28,257 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,259 | DEBUG | byteflow.py:278 | dispatch pc=192, inst=LOAD_GLOBAL(arg=8, lineno=4538)\n", - "2023-05-15 11:07:28,259 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,259 | DEBUG | byteflow.py:278 | dispatch pc=194, inst=LOAD_METHOD(arg=9, lineno=4538)\n", - "2023-05-15 11:07:28,260 | DEBUG | byteflow.py:279 | stack ['$192load_global.0']\n", - "2023-05-15 11:07:28,260 | DEBUG | byteflow.py:278 | dispatch pc=196, inst=LOAD_FAST(arg=13, lineno=4538)\n", - "2023-05-15 11:07:28,261 | DEBUG | byteflow.py:279 | stack ['$194load_method.1']\n", - "2023-05-15 11:07:28,262 | DEBUG | byteflow.py:278 | dispatch pc=198, inst=LOAD_DEREF(arg=3, lineno=4538)\n", - "2023-05-15 11:07:28,262 | DEBUG | byteflow.py:279 | stack ['$194load_method.1', '$nitems196.2']\n", - "2023-05-15 11:07:28,263 | DEBUG | byteflow.py:278 | dispatch pc=200, inst=CALL_METHOD(arg=2, lineno=4538)\n", - "2023-05-15 11:07:28,263 | DEBUG | byteflow.py:279 | stack ['$194load_method.1', '$nitems196.2', '$198load_deref.3']\n", - "2023-05-15 11:07:28,264 | DEBUG | byteflow.py:278 | dispatch pc=202, inst=STORE_FAST(arg=14, lineno=4538)\n", - "2023-05-15 11:07:28,264 | DEBUG | byteflow.py:279 | stack ['$200call_method.4']\n", - "2023-05-15 11:07:28,264 | DEBUG | byteflow.py:278 | dispatch pc=204, inst=LOAD_FAST(arg=8, lineno=4539)\n", - "2023-05-15 11:07:28,265 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,265 | DEBUG | byteflow.py:278 | dispatch pc=206, inst=STORE_FAST(arg=15, lineno=4539)\n", - "2023-05-15 11:07:28,266 | DEBUG | byteflow.py:279 | stack ['$_start204.5']\n", - "2023-05-15 11:07:28,266 | DEBUG | byteflow.py:278 | dispatch pc=208, inst=LOAD_GLOBAL(arg=10, lineno=4540)\n", - "2023-05-15 11:07:28,267 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,267 | DEBUG | byteflow.py:278 | dispatch pc=210, inst=LOAD_FAST(arg=13, lineno=4540)\n", - "2023-05-15 11:07:28,267 | DEBUG | byteflow.py:279 | stack ['$208load_global.6']\n", - "2023-05-15 11:07:28,268 | DEBUG | byteflow.py:278 | dispatch pc=212, inst=CALL_FUNCTION(arg=1, lineno=4540)\n", - "2023-05-15 11:07:28,268 | DEBUG | byteflow.py:279 | stack ['$208load_global.6', '$nitems210.7']\n", - "2023-05-15 11:07:28,269 | DEBUG | byteflow.py:278 | dispatch pc=214, inst=GET_ITER(arg=None, lineno=4540)\n", - "2023-05-15 11:07:28,269 | DEBUG | byteflow.py:279 | stack ['$212call_function.8']\n", - "2023-05-15 11:07:28,270 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=216, stack=('$214get_iter.9',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,270 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=192 nstack_initial=0), State(pc_initial=216 nstack_initial=1)])\n", - "2023-05-15 11:07:28,271 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=216 nstack_initial=1)])\n", - "2023-05-15 11:07:28,271 | DEBUG | byteflow.py:103 | stack: ['$phi216.0']\n", - "2023-05-15 11:07:28,272 | DEBUG | byteflow.py:278 | dispatch pc=216, inst=FOR_ITER(arg=10, lineno=4540)\n", - "2023-05-15 11:07:28,273 | DEBUG | byteflow.py:279 | stack ['$phi216.0']\n", - "2023-05-15 11:07:28,273 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=238, stack=(), blockstack=(), npush=0), Edge(pc=218, stack=('$phi216.0', '$216for_iter.2'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,274 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=238 nstack_initial=0), State(pc_initial=218 nstack_initial=2)])\n", - "2023-05-15 11:07:28,274 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:28,274 | DEBUG | byteflow.py:278 | dispatch pc=238, inst=LOAD_FAST(arg=14, lineno=4542)\n", - "2023-05-15 11:07:28,275 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:28,275 | DEBUG | byteflow.py:278 | dispatch pc=240, inst=RETURN_VALUE(arg=None, lineno=4542)\n", - "2023-05-15 11:07:28,276 | DEBUG | byteflow.py:279 | stack ['$arr238.0']\n", - "2023-05-15 11:07:28,276 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:28,277 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=218 nstack_initial=2)])\n", - "2023-05-15 11:07:28,277 | DEBUG | byteflow.py:103 | stack: ['$phi218.0', '$phi218.1']\n", - "2023-05-15 11:07:28,278 | DEBUG | byteflow.py:278 | dispatch pc=218, inst=STORE_FAST(arg=16, lineno=4540)\n", - "2023-05-15 11:07:28,278 | DEBUG | byteflow.py:279 | stack ['$phi218.0', '$phi218.1']\n", - "2023-05-15 11:07:28,278 | DEBUG | byteflow.py:278 | dispatch pc=220, inst=LOAD_FAST(arg=15, lineno=4541)\n", - "2023-05-15 11:07:28,279 | DEBUG | byteflow.py:279 | stack ['$phi218.0']\n", - "2023-05-15 11:07:28,279 | DEBUG | byteflow.py:278 | dispatch pc=222, inst=LOAD_FAST(arg=16, lineno=4541)\n", - "2023-05-15 11:07:28,283 | DEBUG | byteflow.py:279 | stack ['$phi218.0', '$val220.2']\n", - "2023-05-15 11:07:28,284 | DEBUG | byteflow.py:278 | dispatch pc=224, inst=LOAD_FAST(arg=7, lineno=4541)\n", - "2023-05-15 11:07:28,284 | DEBUG | byteflow.py:279 | stack ['$phi218.0', '$val220.2', '$i222.3']\n", - "2023-05-15 11:07:28,285 | DEBUG | byteflow.py:278 | dispatch pc=226, inst=BINARY_MULTIPLY(arg=None, lineno=4541)\n", - "2023-05-15 11:07:28,286 | DEBUG | byteflow.py:279 | stack ['$phi218.0', '$val220.2', '$i222.3', '$_step224.4']\n", - "2023-05-15 11:07:28,288 | DEBUG | byteflow.py:278 | dispatch pc=228, inst=BINARY_ADD(arg=None, lineno=4541)\n", - "2023-05-15 11:07:28,289 | DEBUG | byteflow.py:279 | stack ['$phi218.0', '$val220.2', '$226binary_multiply.5']\n", - "2023-05-15 11:07:28,289 | DEBUG | byteflow.py:278 | dispatch pc=230, inst=LOAD_FAST(arg=14, lineno=4541)\n", - "2023-05-15 11:07:28,289 | DEBUG | byteflow.py:279 | stack ['$phi218.0', '$228binary_add.6']\n", - "2023-05-15 11:07:28,290 | DEBUG | byteflow.py:278 | dispatch pc=232, inst=LOAD_FAST(arg=16, lineno=4541)\n", - "2023-05-15 11:07:28,290 | DEBUG | byteflow.py:279 | stack ['$phi218.0', '$228binary_add.6', '$arr230.7']\n", - "2023-05-15 11:07:28,291 | DEBUG | byteflow.py:278 | dispatch pc=234, inst=STORE_SUBSCR(arg=None, lineno=4541)\n", - "2023-05-15 11:07:28,291 | DEBUG | byteflow.py:279 | stack ['$phi218.0', '$228binary_add.6', '$arr230.7', '$i232.8']\n", - "2023-05-15 11:07:28,292 | DEBUG | byteflow.py:278 | dispatch pc=236, inst=JUMP_ABSOLUTE(arg=109, lineno=4541)\n", - "2023-05-15 11:07:28,292 | DEBUG | byteflow.py:279 | stack ['$phi218.0']\n", - "2023-05-15 11:07:28,292 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=216, stack=('$phi218.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:28,293 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=216 nstack_initial=1)])\n", - "2023-05-15 11:07:28,294 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:28,295 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=10 nstack_initial=0): set(),\n", - " State(pc_initial=14 nstack_initial=0): set(),\n", - " State(pc_initial=16 nstack_initial=1): {'$phi16.0'},\n", - " State(pc_initial=26 nstack_initial=0): set(),\n", - " State(pc_initial=30 nstack_initial=0): set(),\n", - " State(pc_initial=32 nstack_initial=1): {'$phi32.0'},\n", - " State(pc_initial=42 nstack_initial=0): set(),\n", - " State(pc_initial=46 nstack_initial=0): set(),\n", - " State(pc_initial=48 nstack_initial=1): {'$phi48.0'},\n", - " State(pc_initial=58 nstack_initial=0): set(),\n", - " State(pc_initial=62 nstack_initial=0): set(),\n", - " State(pc_initial=64 nstack_initial=1): {'$phi64.0'},\n", - " State(pc_initial=74 nstack_initial=0): set(),\n", - " State(pc_initial=86 nstack_initial=0): set(),\n", - " State(pc_initial=96 nstack_initial=0): set(),\n", - " State(pc_initial=104 nstack_initial=0): set(),\n", - " State(pc_initial=112 nstack_initial=0): set(),\n", - " State(pc_initial=148 nstack_initial=0): set(),\n", - " State(pc_initial=182 nstack_initial=0): set(),\n", - " State(pc_initial=192 nstack_initial=0): set(),\n", - " State(pc_initial=216 nstack_initial=1): {'$phi216.0'},\n", - " State(pc_initial=218 nstack_initial=2): {'$phi218.1'},\n", - " State(pc_initial=238 nstack_initial=0): set()})\n", - "2023-05-15 11:07:28,296 | DEBUG | byteflow.py:192 | defmap: {'$phi16.0': State(pc_initial=14 nstack_initial=0),\n", - " '$phi216.0': State(pc_initial=192 nstack_initial=0),\n", - " '$phi218.1': State(pc_initial=216 nstack_initial=1),\n", - " '$phi32.0': State(pc_initial=26 nstack_initial=0),\n", - " '$phi48.0': State(pc_initial=46 nstack_initial=0),\n", - " '$phi64.0': State(pc_initial=62 nstack_initial=0)}\n", - "2023-05-15 11:07:28,297 | DEBUG | byteflow.py:193 | phismap: defaultdict(,\n", - " {'$phi16.0': {('$10load_deref.0',\n", - " State(pc_initial=10 nstack_initial=0)),\n", - " ('$start14.0',\n", - " State(pc_initial=14 nstack_initial=0))},\n", - " '$phi216.0': {('$214get_iter.9',\n", - " State(pc_initial=192 nstack_initial=0)),\n", - " ('$phi218.0',\n", - " State(pc_initial=218 nstack_initial=2))},\n", - " '$phi218.0': {('$phi216.0',\n", - " State(pc_initial=216 nstack_initial=1))},\n", - " '$phi218.1': {('$216for_iter.2',\n", - " State(pc_initial=216 nstack_initial=1))},\n", - " '$phi32.0': {('$26load_deref.0',\n", - " State(pc_initial=26 nstack_initial=0)),\n", - " ('$stop30.0', State(pc_initial=30 nstack_initial=0))},\n", - " '$phi48.0': {('$42load_deref.0',\n", - " State(pc_initial=42 nstack_initial=0)),\n", - " ('$step46.0', State(pc_initial=46 nstack_initial=0))},\n", - " '$phi64.0': {('$const62.0', State(pc_initial=62 nstack_initial=0)),\n", - " ('$lit_step58.0',\n", - " State(pc_initial=58 nstack_initial=0))}})\n", - "2023-05-15 11:07:28,299 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi16.0': {('$10load_deref.0',\n", - " State(pc_initial=10 nstack_initial=0)),\n", - " ('$start14.0',\n", - " State(pc_initial=14 nstack_initial=0))},\n", - " '$phi216.0': {('$214get_iter.9',\n", - " State(pc_initial=192 nstack_initial=0)),\n", - " ('$phi216.0',\n", - " State(pc_initial=216 nstack_initial=1))},\n", - " '$phi218.0': {('$214get_iter.9',\n", - " State(pc_initial=192 nstack_initial=0))},\n", - " '$phi218.1': {('$216for_iter.2',\n", - " State(pc_initial=216 nstack_initial=1))},\n", - " '$phi32.0': {('$26load_deref.0',\n", - " State(pc_initial=26 nstack_initial=0)),\n", - " ('$stop30.0', State(pc_initial=30 nstack_initial=0))},\n", - " '$phi48.0': {('$42load_deref.0',\n", - " State(pc_initial=42 nstack_initial=0)),\n", - " ('$step46.0', State(pc_initial=46 nstack_initial=0))},\n", - " '$phi64.0': {('$const62.0', State(pc_initial=62 nstack_initial=0)),\n", - " ('$lit_step58.0',\n", - " State(pc_initial=58 nstack_initial=0))}})\n", - "2023-05-15 11:07:28,299 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi16.0': {('$10load_deref.0',\n", - " State(pc_initial=10 nstack_initial=0)),\n", - " ('$start14.0',\n", - " State(pc_initial=14 nstack_initial=0))},\n", - " '$phi216.0': {('$214get_iter.9',\n", - " State(pc_initial=192 nstack_initial=0))},\n", - " '$phi218.0': {('$214get_iter.9',\n", - " State(pc_initial=192 nstack_initial=0))},\n", - " '$phi218.1': {('$216for_iter.2',\n", - " State(pc_initial=216 nstack_initial=1))},\n", - " '$phi32.0': {('$26load_deref.0',\n", - " State(pc_initial=26 nstack_initial=0)),\n", - " ('$stop30.0', State(pc_initial=30 nstack_initial=0))},\n", - " '$phi48.0': {('$42load_deref.0',\n", - " State(pc_initial=42 nstack_initial=0)),\n", - " ('$step46.0', State(pc_initial=46 nstack_initial=0))},\n", - " '$phi64.0': {('$const62.0', State(pc_initial=62 nstack_initial=0)),\n", - " ('$lit_step58.0',\n", - " State(pc_initial=58 nstack_initial=0))}})\n", - "2023-05-15 11:07:28,300 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi16.0': {('$10load_deref.0',\n", - " State(pc_initial=10 nstack_initial=0)),\n", - " ('$start14.0',\n", - " State(pc_initial=14 nstack_initial=0))},\n", - " '$phi216.0': {('$214get_iter.9',\n", - " State(pc_initial=192 nstack_initial=0))},\n", - " '$phi218.0': {('$214get_iter.9',\n", - " State(pc_initial=192 nstack_initial=0))},\n", - " '$phi218.1': {('$216for_iter.2',\n", - " State(pc_initial=216 nstack_initial=1))},\n", - " '$phi32.0': {('$26load_deref.0',\n", - " State(pc_initial=26 nstack_initial=0)),\n", - " ('$stop30.0', State(pc_initial=30 nstack_initial=0))},\n", - " '$phi48.0': {('$42load_deref.0',\n", - " State(pc_initial=42 nstack_initial=0)),\n", - " ('$step46.0', State(pc_initial=46 nstack_initial=0))},\n", - " '$phi64.0': {('$const62.0', State(pc_initial=62 nstack_initial=0)),\n", - " ('$lit_step58.0',\n", - " State(pc_initial=58 nstack_initial=0))}})\n", - "2023-05-15 11:07:28,301 | DEBUG | byteflow.py:223 | keep phismap: {'$phi16.0': {('$10load_deref.0', State(pc_initial=10 nstack_initial=0)),\n", - " ('$start14.0', State(pc_initial=14 nstack_initial=0))},\n", - " '$phi216.0': {('$214get_iter.9', State(pc_initial=192 nstack_initial=0))},\n", - " '$phi218.1': {('$216for_iter.2', State(pc_initial=216 nstack_initial=1))},\n", - " '$phi32.0': {('$26load_deref.0', State(pc_initial=26 nstack_initial=0)),\n", - " ('$stop30.0', State(pc_initial=30 nstack_initial=0))},\n", - " '$phi48.0': {('$42load_deref.0', State(pc_initial=42 nstack_initial=0)),\n", - " ('$step46.0', State(pc_initial=46 nstack_initial=0))},\n", - " '$phi64.0': {('$const62.0', State(pc_initial=62 nstack_initial=0)),\n", - " ('$lit_step58.0', State(pc_initial=58 nstack_initial=0))}}\n", - "2023-05-15 11:07:28,301 | DEBUG | byteflow.py:229 | new_out: defaultdict(,\n", - " {State(pc_initial=10 nstack_initial=0): {'$phi16.0': '$10load_deref.0'},\n", - " State(pc_initial=14 nstack_initial=0): {'$phi16.0': '$start14.0'},\n", - " State(pc_initial=26 nstack_initial=0): {'$phi32.0': '$26load_deref.0'},\n", - " State(pc_initial=30 nstack_initial=0): {'$phi32.0': '$stop30.0'},\n", - " State(pc_initial=42 nstack_initial=0): {'$phi48.0': '$42load_deref.0'},\n", - " State(pc_initial=46 nstack_initial=0): {'$phi48.0': '$step46.0'},\n", - " State(pc_initial=58 nstack_initial=0): {'$phi64.0': '$lit_step58.0'},\n", - " State(pc_initial=62 nstack_initial=0): {'$phi64.0': '$const62.0'},\n", - " State(pc_initial=192 nstack_initial=0): {'$phi216.0': '$214get_iter.9'},\n", - " State(pc_initial=216 nstack_initial=1): {'$phi218.1': '$216for_iter.2'}})\n", - "2023-05-15 11:07:28,302 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:28,304 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_deref.0'}), (4, {'res': '$const4.1'}), (6, {'lhs': '$2load_deref.0', 'rhs': '$const4.1', 'res': '$6is_op.2'}), (8, {'pred': '$6is_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={10: (), 14: ()})\n", - "2023-05-15 11:07:28,304 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=10 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((10, {'res': '$10load_deref.0'}), (12, {})), outgoing_phis={'$phi16.0': '$10load_deref.0'}, blockstack=(), active_try_block=None, outgoing_edgepushed={16: ('$10load_deref.0',)})\n", - "2023-05-15 11:07:28,304 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=14 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((14, {'res': '$start14.0'}),), outgoing_phis={'$phi16.0': '$start14.0'}, blockstack=(), active_try_block=None, outgoing_edgepushed={16: ('$start14.0',)})\n", - "2023-05-15 11:07:28,305 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=16 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((16, {'value': '$phi16.0'}), (18, {'res': '$18load_deref.1'}), (20, {'res': '$const20.2'}), (22, {'lhs': '$18load_deref.1', 'rhs': '$const20.2', 'res': '$22is_op.3'}), (24, {'pred': '$22is_op.3'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={26: (), 30: ()})\n", - "2023-05-15 11:07:28,306 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=26 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((26, {'res': '$26load_deref.0'}), (28, {})), outgoing_phis={'$phi32.0': '$26load_deref.0'}, blockstack=(), active_try_block=None, outgoing_edgepushed={32: ('$26load_deref.0',)})\n", - "2023-05-15 11:07:28,307 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=30 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((30, {'res': '$stop30.0'}),), outgoing_phis={'$phi32.0': '$stop30.0'}, blockstack=(), active_try_block=None, outgoing_edgepushed={32: ('$stop30.0',)})\n", - "2023-05-15 11:07:28,307 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=32 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((32, {'value': '$phi32.0'}), (34, {'res': '$34load_deref.1'}), (36, {'res': '$const36.2'}), (38, {'lhs': '$34load_deref.1', 'rhs': '$const36.2', 'res': '$38is_op.3'}), (40, {'pred': '$38is_op.3'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={42: (), 46: ()})\n", - "2023-05-15 11:07:28,308 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=42 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((42, {'res': '$42load_deref.0'}), (44, {})), outgoing_phis={'$phi48.0': '$42load_deref.0'}, blockstack=(), active_try_block=None, outgoing_edgepushed={48: ('$42load_deref.0',)})\n", - "2023-05-15 11:07:28,309 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=46 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((46, {'res': '$step46.0'}),), outgoing_phis={'$phi48.0': '$step46.0'}, blockstack=(), active_try_block=None, outgoing_edgepushed={48: ('$step46.0',)})\n", - "2023-05-15 11:07:28,309 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=48 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((48, {'value': '$phi48.0'}), (50, {'res': '$lit_step50.1'}), (52, {'res': '$const52.2'}), (54, {'lhs': '$lit_step50.1', 'rhs': '$const52.2', 'res': '$54is_op.3'}), (56, {'pred': '$54is_op.3'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={58: (), 62: ()})\n", - "2023-05-15 11:07:28,310 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=58 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((58, {'res': '$lit_step58.0'}), (60, {})), outgoing_phis={'$phi64.0': '$lit_step58.0'}, blockstack=(), active_try_block=None, outgoing_edgepushed={64: ('$lit_step58.0',)})\n", - "2023-05-15 11:07:28,310 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=62 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((62, {'res': '$const62.0'}),), outgoing_phis={'$phi64.0': '$const62.0'}, blockstack=(), active_try_block=None, outgoing_edgepushed={64: ('$const62.0',)})\n", - "2023-05-15 11:07:28,311 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=64 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((64, {'value': '$phi64.0'}), (66, {'res': '$lit_stop66.1'}), (68, {'res': '$const68.2'}), (70, {'lhs': '$lit_stop66.1', 'rhs': '$const68.2', 'res': '$70is_op.3'}), (72, {'pred': '$70is_op.3'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={74: (), 86: ()})\n", - "2023-05-15 11:07:28,311 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=74 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((74, {'res': '$const74.0'}), (76, {'res': '$lit_start76.1'}), (80, {'value': '$const74.0'}), (82, {'value': '$lit_start76.1'}), (84, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={96: ()})\n", - "2023-05-15 11:07:28,312 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=86 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((86, {'res': '$lit_start86.0'}), (88, {'res': '$lit_stop88.1'}), (92, {'value': '$lit_start86.0'}), (94, {'value': '$lit_stop88.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={96: ()})\n", - "2023-05-15 11:07:28,312 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=96 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((96, {'res': '$_step96.0'}), (98, {'res': '$const98.1'}), (100, {'lhs': '$_step96.0', 'rhs': '$const98.1', 'res': '$100compare_op.2'}), (102, {'pred': '$100compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={104: (), 112: ()})\n", - "2023-05-15 11:07:28,313 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=104 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((104, {'res': '$104load_global.0'}), (106, {'res': '$const106.1'}), (108, {'func': '$104load_global.0', 'args': ['$const106.1'], 'res': '$108call_function.2'}), (110, {'exc': '$108call_function.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:28,313 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=112 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((112, {'res': '$_stop112.0'}), (114, {'res': '$_start114.1'}), (116, {'lhs': '$_stop112.0', 'rhs': '$_start114.1', 'res': '$116binary_subtract.2'}), (118, {'res': '$_step118.3'}), (120, {'lhs': '$116binary_subtract.2', 'rhs': '$_step118.3', 'res': '$120binary_true_divide.4'}), (122, {'value': '$120binary_true_divide.4'}), (124, {'res': '$124load_global.5'}), (126, {'res': '$126load_global.6'}), (128, {'item': '$126load_global.6', 'res': '$128load_method.7'}), (130, {'res': '$nitems_c130.8'}), (132, {'item': '$nitems_c130.8', 'res': '$132load_attr.9'}), (134, {'func': '$128load_method.7', 'args': ['$132load_attr.9'], 'res': '$134call_method.10'}), (136, {'func': '$124load_global.5', 'args': ['$134call_method.10'], 'res': '$136call_function.11'}), (138, {'value': '$136call_function.11'}), (140, {'res': '$140load_deref.12'}), (142, {'res': '$const142.13'}), (144, {'lhs': '$140load_deref.12', 'rhs': '$const142.13', 'res': '$144is_op.14'}), (146, {'pred': '$144is_op.14'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={148: (), 182: ()})\n", - "2023-05-15 11:07:28,314 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=148 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((148, {'res': '$148load_global.0'}), (150, {'res': '$150load_global.1'}), (152, {'item': '$150load_global.1', 'res': '$152load_method.2'}), (154, {'res': '$nitems_c154.3'}), (156, {'item': '$nitems_c154.3', 'res': '$156load_attr.4'}), (158, {'func': '$152load_method.2', 'args': ['$156load_attr.4'], 'res': '$158call_method.5'}), (160, {'func': '$148load_global.0', 'args': ['$158call_method.5'], 'res': '$160call_function.6'}), (162, {'value': '$160call_function.6'}), (164, {'res': '$164load_global.7'}), (166, {'res': '$166load_global.8'}), (168, {'res': '$nitems_i168.9'}), (170, {'res': '$nitems_r170.10'}), (172, {'func': '$166load_global.8', 'args': ['$nitems_i168.9', '$nitems_r170.10'], 'res': '$172call_function.11'}), (174, {'res': '$const174.12'}), (176, {'func': '$164load_global.7', 'args': ['$172call_function.11', '$const174.12'], 'res': '$176call_function.13'}), (178, {'value': '$176call_function.13'}), (180, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={192: ()})\n", - "2023-05-15 11:07:28,314 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=182 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((182, {'res': '$182load_global.0'}), (184, {'res': '$nitems_r184.1'}), (186, {'res': '$const186.2'}), (188, {'func': '$182load_global.0', 'args': ['$nitems_r184.1', '$const186.2'], 'res': '$188call_function.3'}), (190, {'value': '$188call_function.3'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={192: ()})\n", - "2023-05-15 11:07:28,315 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=192 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((192, {'res': '$192load_global.0'}), (194, {'item': '$192load_global.0', 'res': '$194load_method.1'}), (196, {'res': '$nitems196.2'}), (198, {'res': '$198load_deref.3'}), (200, {'func': '$194load_method.1', 'args': ['$nitems196.2', '$198load_deref.3'], 'res': '$200call_method.4'}), (202, {'value': '$200call_method.4'}), (204, {'res': '$_start204.5'}), (206, {'value': '$_start204.5'}), (208, {'res': '$208load_global.6'}), (210, {'res': '$nitems210.7'}), (212, {'func': '$208load_global.6', 'args': ['$nitems210.7'], 'res': '$212call_function.8'}), (214, {'value': '$212call_function.8', 'res': '$214get_iter.9'})), outgoing_phis={'$phi216.0': '$214get_iter.9'}, blockstack=(), active_try_block=None, outgoing_edgepushed={216: ('$214get_iter.9',)})\n", - "2023-05-15 11:07:28,315 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=216 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((216, {'iterator': '$phi216.0', 'pair': '$216for_iter.1', 'indval': '$216for_iter.2', 'pred': '$216for_iter.3'}),), outgoing_phis={'$phi218.1': '$216for_iter.2'}, blockstack=(), active_try_block=None, outgoing_edgepushed={238: (), 218: ('$phi216.0', '$216for_iter.2')})\n", - "2023-05-15 11:07:28,316 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=218 nstack_initial=2):\n", - "AdaptBlockInfo(insts=((218, {'value': '$phi218.1'}), (220, {'res': '$val220.2'}), (222, {'res': '$i222.3'}), (224, {'res': '$_step224.4'}), (226, {'lhs': '$i222.3', 'rhs': '$_step224.4', 'res': '$226binary_multiply.5'}), (228, {'lhs': '$val220.2', 'rhs': '$226binary_multiply.5', 'res': '$228binary_add.6'}), (230, {'res': '$arr230.7'}), (232, {'res': '$i232.8'}), (234, {'target': '$arr230.7', 'index': '$i232.8', 'value': '$228binary_add.6'}), (236, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={216: ('$phi218.0',)})\n", - "2023-05-15 11:07:28,316 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=238 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((238, {'res': '$arr238.0'}), (240, {'retval': '$arr238.0', 'castval': '$240return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:28,320 | DEBUG | interpreter.py:1342 | label 0:\n", - " start = arg(0, name=start) ['start']\n", - " stop = arg(1, name=stop) ['stop']\n", - " step = arg(2, name=step) ['step']\n", - " dtype = arg(3, name=dtype) ['dtype']\n", - " $2load_deref.0 = freevar(start_value: None) ['$2load_deref.0']\n", - " $const4.1 = const(NoneType, None) ['$const4.1']\n", - " $6is_op.2 = $2load_deref.0 is not $const4.1 ['$2load_deref.0', '$6is_op.2', '$const4.1']\n", - " bool8 = global(bool: ) ['bool8']\n", - " $8pred = call bool8($6is_op.2, func=bool8, args=(Var($6is_op.2, arrayobj.py:4516),), kws=(), vararg=None, varkwarg=None, target=None) ['$6is_op.2', '$8pred', 'bool8']\n", - " branch $8pred, 10, 14 ['$8pred']\n", - "label 10:\n", - " $10load_deref.0 = freevar(start_value: None) ['$10load_deref.0']\n", - " $phi16.0 = $10load_deref.0 ['$10load_deref.0', '$phi16.0']\n", - " jump 16 []\n", - "label 14:\n", - " $phi16.0 = start ['$phi16.0', 'start']\n", - " jump 16 []\n", - "label 16:\n", - " lit_start = $phi16.0 ['$phi16.0', 'lit_start']\n", - " $18load_deref.1 = freevar(stop_value: None) ['$18load_deref.1']\n", - " $const20.2 = const(NoneType, None) ['$const20.2']\n", - " $22is_op.3 = $18load_deref.1 is not $const20.2 ['$18load_deref.1', '$22is_op.3', '$const20.2']\n", - " bool24 = global(bool: ) ['bool24']\n", - " $24pred = call bool24($22is_op.3, func=bool24, args=(Var($22is_op.3, arrayobj.py:4517),), kws=(), vararg=None, varkwarg=None, target=None) ['$22is_op.3', '$24pred', 'bool24']\n", - " branch $24pred, 26, 30 ['$24pred']\n", - "label 26:\n", - " $26load_deref.0 = freevar(stop_value: None) ['$26load_deref.0']\n", - " $phi32.0 = $26load_deref.0 ['$26load_deref.0', '$phi32.0']\n", - " jump 32 []\n", - "label 30:\n", - " $phi32.0 = stop ['$phi32.0', 'stop']\n", - " jump 32 []\n", - "label 32:\n", - " lit_stop = $phi32.0 ['$phi32.0', 'lit_stop']\n", - " $34load_deref.1 = freevar(step_value: None) ['$34load_deref.1']\n", - " $const36.2 = const(NoneType, None) ['$const36.2']\n", - " $38is_op.3 = $34load_deref.1 is not $const36.2 ['$34load_deref.1', '$38is_op.3', '$const36.2']\n", - " bool40 = global(bool: ) ['bool40']\n", - " $40pred = call bool40($38is_op.3, func=bool40, args=(Var($38is_op.3, arrayobj.py:4518),), kws=(), vararg=None, varkwarg=None, target=None) ['$38is_op.3', '$40pred', 'bool40']\n", - " branch $40pred, 42, 46 ['$40pred']\n", - "label 42:\n", - " $42load_deref.0 = freevar(step_value: None) ['$42load_deref.0']\n", - " $phi48.0 = $42load_deref.0 ['$42load_deref.0', '$phi48.0']\n", - " jump 48 []\n", - "label 46:\n", - " $phi48.0 = step ['$phi48.0', 'step']\n", - " jump 48 []\n", - "label 48:\n", - " lit_step = $phi48.0 ['$phi48.0', 'lit_step']\n", - " $const52.2 = const(NoneType, None) ['$const52.2']\n", - " $54is_op.3 = lit_step is not $const52.2 ['$54is_op.3', '$const52.2', 'lit_step']\n", - " bool56 = global(bool: ) ['bool56']\n", - " $56pred = call bool56($54is_op.3, func=bool56, args=(Var($54is_op.3, arrayobj.py:4520),), kws=(), vararg=None, varkwarg=None, target=None) ['$54is_op.3', '$56pred', 'bool56']\n", - " branch $56pred, 58, 62 ['$56pred']\n", - "label 58:\n", - " $phi64.0 = lit_step ['$phi64.0', 'lit_step']\n", - " jump 64 []\n", - "label 62:\n", - " $const62.0 = const(int, 1) ['$const62.0']\n", - " $phi64.0 = $const62.0 ['$const62.0', '$phi64.0']\n", - " jump 64 []\n", - "label 64:\n", - " _step = $phi64.0 ['$phi64.0', '_step']\n", - " $const68.2 = const(NoneType, None) ['$const68.2']\n", - " $70is_op.3 = lit_stop is $const68.2 ['$70is_op.3', '$const68.2', 'lit_stop']\n", - " bool72 = global(bool: ) ['bool72']\n", - " $72pred = call bool72($70is_op.3, func=bool72, args=(Var($70is_op.3, arrayobj.py:4521),), kws=(), vararg=None, varkwarg=None, target=None) ['$70is_op.3', '$72pred', 'bool72']\n", - " branch $72pred, 74, 86 ['$72pred']\n", - "label 74:\n", - " _start = const(int, 0) ['_start']\n", - " _stop = lit_start ['_stop', 'lit_start']\n", - " jump 96 []\n", - "label 86:\n", - " _start = lit_start ['_start', 'lit_start']\n", - " _stop = lit_stop ['_stop', 'lit_stop']\n", - " jump 96 []\n", - "label 96:\n", - " $const98.1 = const(int, 0) ['$const98.1']\n", - " $100compare_op.2 = _step == $const98.1 ['$100compare_op.2', '$const98.1', '_step']\n", - " bool102 = global(bool: ) ['bool102']\n", - " $102pred = call bool102($100compare_op.2, func=bool102, args=(Var($100compare_op.2, arrayobj.py:4526),), kws=(), vararg=None, varkwarg=None, target=None) ['$100compare_op.2', '$102pred', 'bool102']\n", - " branch $102pred, 104, 112 ['$102pred']\n", - "label 104:\n", - " $104load_global.0 = global(ValueError: ) ['$104load_global.0']\n", - " $const106.1 = const(str, Maximum allowed size exceeded) ['$const106.1']\n", - " $108call_function.2 = call $104load_global.0($const106.1, func=$104load_global.0, args=[Var($const106.1, arrayobj.py:4527)], kws=(), vararg=None, varkwarg=None, target=None) ['$104load_global.0', '$108call_function.2', '$const106.1']\n", - " raise $108call_function.2 ['$108call_function.2']\n", - "label 112:\n", - " $116binary_subtract.2 = _stop - _start ['$116binary_subtract.2', '_start', '_stop']\n", - " nitems_c = $116binary_subtract.2 / _step ['$116binary_subtract.2', '_step', 'nitems_c']\n", - " $124load_global.5 = global(int: ) ['$124load_global.5']\n", - " $126load_global.6 = global(math: ) ['$126load_global.6']\n", - " $128load_method.7 = getattr(value=$126load_global.6, attr=ceil) ['$126load_global.6', '$128load_method.7']\n", - " $132load_attr.9 = getattr(value=nitems_c, attr=real) ['$132load_attr.9', 'nitems_c']\n", - " $134call_method.10 = call $128load_method.7($132load_attr.9, func=$128load_method.7, args=[Var($132load_attr.9, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None) ['$128load_method.7', '$132load_attr.9', '$134call_method.10']\n", - " nitems_r = call $124load_global.5($134call_method.10, func=$124load_global.5, args=[Var($134call_method.10, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None) ['$124load_global.5', '$134call_method.10', 'nitems_r']\n", - " $140load_deref.12 = freevar(use_complex: False) ['$140load_deref.12']\n", - " $const142.13 = const(bool, True) ['$const142.13']\n", - " $144is_op.14 = $140load_deref.12 is $const142.13 ['$140load_deref.12', '$144is_op.14', '$const142.13']\n", - " bool146 = global(bool: ) ['bool146']\n", - " $146pred = call bool146($144is_op.14, func=bool146, args=(Var($144is_op.14, arrayobj.py:4533),), kws=(), vararg=None, varkwarg=None, target=None) ['$144is_op.14', '$146pred', 'bool146']\n", - " branch $146pred, 148, 182 ['$146pred']\n", - "label 148:\n", - " $148load_global.0 = global(int: ) ['$148load_global.0']\n", - " $150load_global.1 = global(math: ) ['$150load_global.1']\n", - " $152load_method.2 = getattr(value=$150load_global.1, attr=ceil) ['$150load_global.1', '$152load_method.2']\n", - " $156load_attr.4 = getattr(value=nitems_c, attr=imag) ['$156load_attr.4', 'nitems_c']\n", - " $158call_method.5 = call $152load_method.2($156load_attr.4, func=$152load_method.2, args=[Var($156load_attr.4, arrayobj.py:4534)], kws=(), vararg=None, varkwarg=None, target=None) ['$152load_method.2', '$156load_attr.4', '$158call_method.5']\n", - " nitems_i = call $148load_global.0($158call_method.5, func=$148load_global.0, args=[Var($158call_method.5, arrayobj.py:4534)], kws=(), vararg=None, varkwarg=None, target=None) ['$148load_global.0', '$158call_method.5', 'nitems_i']\n", - " $164load_global.7 = global(max: ) ['$164load_global.7']\n", - " $166load_global.8 = global(min: ) ['$166load_global.8']\n", - " $172call_function.11 = call $166load_global.8(nitems_i, nitems_r, func=$166load_global.8, args=[Var(nitems_i, arrayobj.py:4534), Var(nitems_r, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None) ['$166load_global.8', '$172call_function.11', 'nitems_i', 'nitems_r']\n", - " $const174.12 = const(int, 0) ['$const174.12']\n", - " nitems = call $164load_global.7($172call_function.11, $const174.12, func=$164load_global.7, args=[Var($172call_function.11, arrayobj.py:4535), Var($const174.12, arrayobj.py:4535)], kws=(), vararg=None, varkwarg=None, target=None) ['$164load_global.7', '$172call_function.11', '$const174.12', 'nitems']\n", - " jump 192 []\n", - "label 182:\n", - " $182load_global.0 = global(max: ) ['$182load_global.0']\n", - " $const186.2 = const(int, 0) ['$const186.2']\n", - " nitems = call $182load_global.0(nitems_r, $const186.2, func=$182load_global.0, args=[Var(nitems_r, arrayobj.py:4530), Var($const186.2, arrayobj.py:4537)], kws=(), vararg=None, varkwarg=None, target=None) ['$182load_global.0', '$const186.2', 'nitems', 'nitems_r']\n", - " jump 192 []\n", - "label 192:\n", - " $192load_global.0 = global(np: ) ['$192load_global.0']\n", - " $194load_method.1 = getattr(value=$192load_global.0, attr=empty) ['$192load_global.0', '$194load_method.1']\n", - " $198load_deref.3 = freevar(true_dtype: int64) ['$198load_deref.3']\n", - " arr = call $194load_method.1(nitems, $198load_deref.3, func=$194load_method.1, args=[Var(nitems, arrayobj.py:4535), Var($198load_deref.3, arrayobj.py:4538)], kws=(), vararg=None, varkwarg=None, target=None) ['$194load_method.1', '$198load_deref.3', 'arr', 'nitems']\n", - " val = _start ['_start', 'val']\n", - " $208load_global.6 = global(range: ) ['$208load_global.6']\n", - " $212call_function.8 = call $208load_global.6(nitems, func=$208load_global.6, args=[Var(nitems, arrayobj.py:4535)], kws=(), vararg=None, varkwarg=None, target=None) ['$208load_global.6', '$212call_function.8', 'nitems']\n", - " $214get_iter.9 = getiter(value=$212call_function.8) ['$212call_function.8', '$214get_iter.9']\n", - " $phi216.0 = $214get_iter.9 ['$214get_iter.9', '$phi216.0']\n", - " jump 216 []\n", - "label 216:\n", - " $216for_iter.1 = iternext(value=$phi216.0) ['$216for_iter.1', '$phi216.0']\n", - " $216for_iter.2 = pair_first(value=$216for_iter.1) ['$216for_iter.1', '$216for_iter.2']\n", - " $216for_iter.3 = pair_second(value=$216for_iter.1) ['$216for_iter.1', '$216for_iter.3']\n", - " $phi218.1 = $216for_iter.2 ['$216for_iter.2', '$phi218.1']\n", - " branch $216for_iter.3, 218, 238 ['$216for_iter.3']\n", - "label 218:\n", - " i = $phi218.1 ['$phi218.1', 'i']\n", - " $226binary_multiply.5 = i * _step ['$226binary_multiply.5', '_step', 'i']\n", - " $228binary_add.6 = val + $226binary_multiply.5 ['$226binary_multiply.5', '$228binary_add.6', 'val']\n", - " arr[i] = $228binary_add.6 ['$228binary_add.6', 'arr', 'i']\n", - " jump 216 []\n", - "label 238:\n", - " $240return_value.1 = cast(value=arr) ['$240return_value.1', 'arr']\n", - " return $240return_value.1 ['$240return_value.1']\n", - "\n", - "2023-05-15 11:07:28,340 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:28,341 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,342 | DEBUG | ssa.py:193 | on stmt: start = arg(0, name=start)\n", - "2023-05-15 11:07:28,342 | DEBUG | ssa.py:193 | on stmt: stop = arg(1, name=stop)\n", - "2023-05-15 11:07:28,343 | DEBUG | ssa.py:193 | on stmt: step = arg(2, name=step)\n", - "2023-05-15 11:07:28,343 | DEBUG | ssa.py:193 | on stmt: dtype = arg(3, name=dtype)\n", - "2023-05-15 11:07:28,344 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(start_value: None)\n", - "2023-05-15 11:07:28,344 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(NoneType, None)\n", - "2023-05-15 11:07:28,344 | DEBUG | ssa.py:193 | on stmt: $6is_op.2 = const(int, 0)\n", - "2023-05-15 11:07:28,345 | DEBUG | ssa.py:193 | on stmt: bool8 = global(bool: )\n", - "2023-05-15 11:07:28,345 | DEBUG | ssa.py:193 | on stmt: $8pred = call bool8($6is_op.2, func=bool8, args=(Var($6is_op.2, arrayobj.py:4516),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,345 | DEBUG | ssa.py:193 | on stmt: jump 14\n", - "2023-05-15 11:07:28,346 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 14\n", - "2023-05-15 11:07:28,346 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,346 | DEBUG | ssa.py:193 | on stmt: $phi16.0 = start\n", - "2023-05-15 11:07:28,347 | DEBUG | ssa.py:193 | on stmt: jump 16\n", - "2023-05-15 11:07:28,347 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 16\n", - "2023-05-15 11:07:28,348 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,350 | DEBUG | ssa.py:193 | on stmt: lit_start = $phi16.0\n", - "2023-05-15 11:07:28,351 | DEBUG | ssa.py:193 | on stmt: $18load_deref.1 = freevar(stop_value: None)\n", - "2023-05-15 11:07:28,351 | DEBUG | ssa.py:193 | on stmt: $const20.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,351 | DEBUG | ssa.py:193 | on stmt: $22is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,352 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:28,352 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22is_op.3, func=bool24, args=(Var($22is_op.3, arrayobj.py:4517),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,353 | DEBUG | ssa.py:193 | on stmt: jump 30\n", - "2023-05-15 11:07:28,353 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 30\n", - "2023-05-15 11:07:28,354 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,355 | DEBUG | ssa.py:193 | on stmt: $phi32.0 = stop\n", - "2023-05-15 11:07:28,355 | DEBUG | ssa.py:193 | on stmt: jump 32\n", - "2023-05-15 11:07:28,356 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 32\n", - "2023-05-15 11:07:28,356 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,357 | DEBUG | ssa.py:193 | on stmt: lit_stop = $phi32.0\n", - "2023-05-15 11:07:28,357 | DEBUG | ssa.py:193 | on stmt: $34load_deref.1 = freevar(step_value: None)\n", - "2023-05-15 11:07:28,358 | DEBUG | ssa.py:193 | on stmt: $const36.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,358 | DEBUG | ssa.py:193 | on stmt: $38is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,358 | DEBUG | ssa.py:193 | on stmt: bool40 = global(bool: )\n", - "2023-05-15 11:07:28,360 | DEBUG | ssa.py:193 | on stmt: $40pred = call bool40($38is_op.3, func=bool40, args=(Var($38is_op.3, arrayobj.py:4518),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,360 | DEBUG | ssa.py:193 | on stmt: jump 46\n", - "2023-05-15 11:07:28,361 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 46\n", - "2023-05-15 11:07:28,361 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,362 | DEBUG | ssa.py:193 | on stmt: $phi48.0 = step\n", - "2023-05-15 11:07:28,363 | DEBUG | ssa.py:193 | on stmt: jump 48\n", - "2023-05-15 11:07:28,363 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 48\n", - "2023-05-15 11:07:28,364 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,364 | DEBUG | ssa.py:193 | on stmt: lit_step = $phi48.0\n", - "2023-05-15 11:07:28,365 | DEBUG | ssa.py:193 | on stmt: $const52.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,365 | DEBUG | ssa.py:193 | on stmt: $54is_op.3 = lit_step is not $const52.2\n", - "2023-05-15 11:07:28,366 | DEBUG | ssa.py:193 | on stmt: bool56 = global(bool: )\n", - "2023-05-15 11:07:28,366 | DEBUG | ssa.py:193 | on stmt: $56pred = call bool56($54is_op.3, func=bool56, args=(Var($54is_op.3, arrayobj.py:4520),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,367 | DEBUG | ssa.py:193 | on stmt: branch $56pred, 58, 62\n", - "2023-05-15 11:07:28,367 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 58\n", - "2023-05-15 11:07:28,368 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,368 | DEBUG | ssa.py:193 | on stmt: $phi64.0 = lit_step\n", - "2023-05-15 11:07:28,369 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,369 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 62\n", - "2023-05-15 11:07:28,369 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,370 | DEBUG | ssa.py:193 | on stmt: $const62.0 = const(int, 1)\n", - "2023-05-15 11:07:28,370 | DEBUG | ssa.py:193 | on stmt: $phi64.0 = $const62.0\n", - "2023-05-15 11:07:28,372 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,372 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 64\n", - "2023-05-15 11:07:28,373 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,373 | DEBUG | ssa.py:193 | on stmt: _step = $phi64.0\n", - "2023-05-15 11:07:28,374 | DEBUG | ssa.py:193 | on stmt: $const68.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,375 | DEBUG | ssa.py:193 | on stmt: $70is_op.3 = lit_stop is $const68.2\n", - "2023-05-15 11:07:28,375 | DEBUG | ssa.py:193 | on stmt: bool72 = global(bool: )\n", - "2023-05-15 11:07:28,376 | DEBUG | ssa.py:193 | on stmt: $72pred = call bool72($70is_op.3, func=bool72, args=(Var($70is_op.3, arrayobj.py:4521),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,376 | DEBUG | ssa.py:193 | on stmt: branch $72pred, 74, 86\n", - "2023-05-15 11:07:28,376 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 74\n", - "2023-05-15 11:07:28,377 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,378 | DEBUG | ssa.py:193 | on stmt: _start = const(int, 0)\n", - "2023-05-15 11:07:28,378 | DEBUG | ssa.py:193 | on stmt: _stop = lit_start\n", - "2023-05-15 11:07:28,378 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,379 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 86\n", - "2023-05-15 11:07:28,379 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,380 | DEBUG | ssa.py:193 | on stmt: _start = lit_start\n", - "2023-05-15 11:07:28,381 | DEBUG | ssa.py:193 | on stmt: _stop = lit_stop\n", - "2023-05-15 11:07:28,381 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,381 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 96\n", - "2023-05-15 11:07:28,382 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,382 | DEBUG | ssa.py:193 | on stmt: $const98.1 = const(int, 0)\n", - "2023-05-15 11:07:28,383 | DEBUG | ssa.py:193 | on stmt: $100compare_op.2 = _step == $const98.1\n", - "2023-05-15 11:07:28,384 | DEBUG | ssa.py:193 | on stmt: bool102 = global(bool: )\n", - "2023-05-15 11:07:28,384 | DEBUG | ssa.py:193 | on stmt: $102pred = call bool102($100compare_op.2, func=bool102, args=(Var($100compare_op.2, arrayobj.py:4526),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,384 | DEBUG | ssa.py:193 | on stmt: branch $102pred, 104, 112\n", - "2023-05-15 11:07:28,385 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 104\n", - "2023-05-15 11:07:28,385 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,386 | DEBUG | ssa.py:193 | on stmt: $104load_global.0 = global(ValueError: )\n", - "2023-05-15 11:07:28,387 | DEBUG | ssa.py:193 | on stmt: $const106.1 = const(str, Maximum allowed size exceeded)\n", - "2023-05-15 11:07:28,387 | DEBUG | ssa.py:193 | on stmt: $108call_function.2 = call $104load_global.0($const106.1, func=$104load_global.0, args=[Var($const106.1, arrayobj.py:4527)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,387 | DEBUG | ssa.py:193 | on stmt: raise ('Maximum allowed size exceeded')\n", - "2023-05-15 11:07:28,388 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 112\n", - "2023-05-15 11:07:28,388 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,389 | DEBUG | ssa.py:193 | on stmt: $116binary_subtract.2 = _stop - _start\n", - "2023-05-15 11:07:28,389 | DEBUG | ssa.py:193 | on stmt: nitems_c = $116binary_subtract.2 / _step\n", - "2023-05-15 11:07:28,389 | DEBUG | ssa.py:193 | on stmt: $124load_global.5 = global(int: )\n", - "2023-05-15 11:07:28,391 | DEBUG | ssa.py:193 | on stmt: $126load_global.6 = global(math: )\n", - "2023-05-15 11:07:28,391 | DEBUG | ssa.py:193 | on stmt: $128load_method.7 = getattr(value=$126load_global.6, attr=ceil)\n", - "2023-05-15 11:07:28,391 | DEBUG | ssa.py:193 | on stmt: $132load_attr.9 = getattr(value=nitems_c, attr=real)\n", - "2023-05-15 11:07:28,392 | DEBUG | ssa.py:193 | on stmt: $134call_method.10 = call $128load_method.7($132load_attr.9, func=$128load_method.7, args=[Var($132load_attr.9, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,392 | DEBUG | ssa.py:193 | on stmt: nitems_r = call $124load_global.5($134call_method.10, func=$124load_global.5, args=[Var($134call_method.10, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,393 | DEBUG | ssa.py:193 | on stmt: $140load_deref.12 = freevar(use_complex: False)\n", - "2023-05-15 11:07:28,394 | DEBUG | ssa.py:193 | on stmt: $const142.13 = const(bool, True)\n", - "2023-05-15 11:07:28,394 | DEBUG | ssa.py:193 | on stmt: $144is_op.14 = const(int, 0)\n", - "2023-05-15 11:07:28,395 | DEBUG | ssa.py:193 | on stmt: bool146 = global(bool: )\n", - "2023-05-15 11:07:28,395 | DEBUG | ssa.py:193 | on stmt: $146pred = call bool146($144is_op.14, func=bool146, args=(Var($144is_op.14, arrayobj.py:4533),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,395 | DEBUG | ssa.py:193 | on stmt: jump 182\n", - "2023-05-15 11:07:28,396 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 182\n", - "2023-05-15 11:07:28,396 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,397 | DEBUG | ssa.py:193 | on stmt: $182load_global.0 = global(max: )\n", - "2023-05-15 11:07:28,398 | DEBUG | ssa.py:193 | on stmt: $const186.2 = const(int, 0)\n", - "2023-05-15 11:07:28,398 | DEBUG | ssa.py:193 | on stmt: nitems = call $182load_global.0(nitems_r, $const186.2, func=$182load_global.0, args=[Var(nitems_r, arrayobj.py:4530), Var($const186.2, arrayobj.py:4537)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,398 | DEBUG | ssa.py:193 | on stmt: jump 192\n", - "2023-05-15 11:07:28,399 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 192\n", - "2023-05-15 11:07:28,400 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,400 | DEBUG | ssa.py:193 | on stmt: $192load_global.0 = global(np: )\n", - "2023-05-15 11:07:28,401 | DEBUG | ssa.py:193 | on stmt: $194load_method.1 = getattr(value=$192load_global.0, attr=empty)\n", - "2023-05-15 11:07:28,401 | DEBUG | ssa.py:193 | on stmt: $198load_deref.3 = freevar(true_dtype: int64)\n", - "2023-05-15 11:07:28,401 | DEBUG | ssa.py:193 | on stmt: arr = call $194load_method.1(nitems, $198load_deref.3, func=$194load_method.1, args=[Var(nitems, arrayobj.py:4535), Var($198load_deref.3, arrayobj.py:4538)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,402 | DEBUG | ssa.py:193 | on stmt: val = _start\n", - "2023-05-15 11:07:28,402 | DEBUG | ssa.py:193 | on stmt: $208load_global.6 = global(range: )\n", - "2023-05-15 11:07:28,402 | DEBUG | ssa.py:193 | on stmt: $212call_function.8 = call $208load_global.6(nitems, func=$208load_global.6, args=[Var(nitems, arrayobj.py:4535)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,403 | DEBUG | ssa.py:193 | on stmt: $214get_iter.9 = getiter(value=$212call_function.8)\n", - "2023-05-15 11:07:28,403 | DEBUG | ssa.py:193 | on stmt: $phi216.0 = $214get_iter.9\n", - "2023-05-15 11:07:28,404 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:28,405 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 216\n", - "2023-05-15 11:07:28,407 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,407 | DEBUG | ssa.py:193 | on stmt: $216for_iter.1 = iternext(value=$phi216.0)\n", - "2023-05-15 11:07:28,407 | DEBUG | ssa.py:193 | on stmt: $216for_iter.2 = pair_first(value=$216for_iter.1)\n", - "2023-05-15 11:07:28,408 | DEBUG | ssa.py:193 | on stmt: $216for_iter.3 = pair_second(value=$216for_iter.1)\n", - "2023-05-15 11:07:28,408 | DEBUG | ssa.py:193 | on stmt: $phi218.1 = $216for_iter.2\n", - "2023-05-15 11:07:28,409 | DEBUG | ssa.py:193 | on stmt: branch $216for_iter.3, 218, 238\n", - "2023-05-15 11:07:28,409 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 218\n", - "2023-05-15 11:07:28,410 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,410 | DEBUG | ssa.py:193 | on stmt: i = $phi218.1\n", - "2023-05-15 11:07:28,411 | DEBUG | ssa.py:193 | on stmt: $226binary_multiply.5 = i * _step\n", - "2023-05-15 11:07:28,411 | DEBUG | ssa.py:193 | on stmt: $228binary_add.6 = val + $226binary_multiply.5\n", - "2023-05-15 11:07:28,411 | DEBUG | ssa.py:193 | on stmt: arr[i] = $228binary_add.6\n", - "2023-05-15 11:07:28,412 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:28,412 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 238\n", - "2023-05-15 11:07:28,413 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,413 | DEBUG | ssa.py:193 | on stmt: $240return_value.1 = cast(value=arr)\n", - "2023-05-15 11:07:28,414 | DEBUG | ssa.py:193 | on stmt: return $240return_value.1\n", - "2023-05-15 11:07:28,415 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$100compare_op.2': [],\n", - " '$102pred': [],\n", - " '$104load_global.0': [],\n", - " '$108call_function.2': [],\n", - " '$116binary_subtract.2': [],\n", - " '$124load_global.5': [],\n", - " '$126load_global.6': [],\n", - " '$128load_method.7': [],\n", - " '$132load_attr.9': [],\n", - " '$134call_method.10': [],\n", - " '$140load_deref.12': [],\n", - " '$144is_op.14': [],\n", - " '$146pred': [],\n", - " '$182load_global.0': [],\n", - " '$18load_deref.1': [],\n", - " '$192load_global.0': [],\n", - " '$194load_method.1': [],\n", - " '$198load_deref.3': [],\n", - " '$208load_global.6': [],\n", - " '$212call_function.8': [],\n", - " '$214get_iter.9': [],\n", - " '$216for_iter.1': [],\n", - " '$216for_iter.2': [],\n", - " '$216for_iter.3': [],\n", - " '$226binary_multiply.5': [],\n", - " '$228binary_add.6': [],\n", - " '$22is_op.3': [],\n", - " '$240return_value.1': [],\n", - " '$24pred': [],\n", - " '$2load_deref.0': [],\n", - " '$34load_deref.1': [],\n", - " '$38is_op.3': [],\n", - " '$40pred': [],\n", - " '$54is_op.3': [],\n", - " '$56pred': [],\n", - " '$6is_op.2': [],\n", - " '$70is_op.3': [],\n", - " '$72pred': [],\n", - " '$8pred': [],\n", - " '$const106.1': [],\n", - " '$const142.13': [],\n", - " '$const186.2': [],\n", - " '$const20.2': [],\n", - " '$const36.2': [],\n", - " '$const4.1': [],\n", - " '$const52.2': [],\n", - " '$const62.0': [],\n", - " '$const68.2': [],\n", - " '$const98.1': [],\n", - " '$phi16.0': [],\n", - " '$phi216.0': [],\n", - " '$phi218.1': [],\n", - " '$phi32.0': [],\n", - " '$phi48.0': [],\n", - " '$phi64.0': [,\n", - " ],\n", - " '_start': [,\n", - " ],\n", - " '_step': [],\n", - " '_stop': [,\n", - " ],\n", - " 'arr': [],\n", - " 'bool102': [],\n", - " 'bool146': [],\n", - " 'bool24': [],\n", - " 'bool40': [],\n", - " 'bool56': [],\n", - " 'bool72': [],\n", - " 'bool8': [],\n", - " 'dtype': [],\n", - " 'i': [],\n", - " 'lit_start': [],\n", - " 'lit_step': [],\n", - " 'lit_stop': [],\n", - " 'nitems': [],\n", - " 'nitems_c': [],\n", - " 'nitems_r': [],\n", - " 'start': [],\n", - " 'step': [],\n", - " 'stop': [],\n", - " 'val': []})\n", - "2023-05-15 11:07:28,416 | DEBUG | ssa.py:156 | SSA violators {'$phi64.0', '_stop', '_start'}\n", - "2023-05-15 11:07:28,416 | DEBUG | ssa.py:63 | Fix SSA violator on var $phi64.0\n", - "2023-05-15 11:07:28,416 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:28,417 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,419 | DEBUG | ssa.py:193 | on stmt: start = arg(0, name=start)\n", - "2023-05-15 11:07:28,419 | DEBUG | ssa.py:193 | on stmt: stop = arg(1, name=stop)\n", - "2023-05-15 11:07:28,420 | DEBUG | ssa.py:193 | on stmt: step = arg(2, name=step)\n", - "2023-05-15 11:07:28,420 | DEBUG | ssa.py:193 | on stmt: dtype = arg(3, name=dtype)\n", - "2023-05-15 11:07:28,421 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(start_value: None)\n", - "2023-05-15 11:07:28,421 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(NoneType, None)\n", - "2023-05-15 11:07:28,421 | DEBUG | ssa.py:193 | on stmt: $6is_op.2 = const(int, 0)\n", - "2023-05-15 11:07:28,422 | DEBUG | ssa.py:193 | on stmt: bool8 = global(bool: )\n", - "2023-05-15 11:07:28,423 | DEBUG | ssa.py:193 | on stmt: $8pred = call bool8($6is_op.2, func=bool8, args=(Var($6is_op.2, arrayobj.py:4516),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,423 | DEBUG | ssa.py:193 | on stmt: jump 14\n", - "2023-05-15 11:07:28,423 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 14\n", - "2023-05-15 11:07:28,424 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,424 | DEBUG | ssa.py:193 | on stmt: $phi16.0 = start\n", - "2023-05-15 11:07:28,425 | DEBUG | ssa.py:193 | on stmt: jump 16\n", - "2023-05-15 11:07:28,425 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 16\n", - "2023-05-15 11:07:28,427 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,427 | DEBUG | ssa.py:193 | on stmt: lit_start = $phi16.0\n", - "2023-05-15 11:07:28,428 | DEBUG | ssa.py:193 | on stmt: $18load_deref.1 = freevar(stop_value: None)\n", - "2023-05-15 11:07:28,428 | DEBUG | ssa.py:193 | on stmt: $const20.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,429 | DEBUG | ssa.py:193 | on stmt: $22is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,429 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:28,429 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22is_op.3, func=bool24, args=(Var($22is_op.3, arrayobj.py:4517),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,430 | DEBUG | ssa.py:193 | on stmt: jump 30\n", - "2023-05-15 11:07:28,430 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 30\n", - "2023-05-15 11:07:28,431 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,431 | DEBUG | ssa.py:193 | on stmt: $phi32.0 = stop\n", - "2023-05-15 11:07:28,431 | DEBUG | ssa.py:193 | on stmt: jump 32\n", - "2023-05-15 11:07:28,432 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 32\n", - "2023-05-15 11:07:28,432 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,433 | DEBUG | ssa.py:193 | on stmt: lit_stop = $phi32.0\n", - "2023-05-15 11:07:28,433 | DEBUG | ssa.py:193 | on stmt: $34load_deref.1 = freevar(step_value: None)\n", - "2023-05-15 11:07:28,433 | DEBUG | ssa.py:193 | on stmt: $const36.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,434 | DEBUG | ssa.py:193 | on stmt: $38is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,434 | DEBUG | ssa.py:193 | on stmt: bool40 = global(bool: )\n", - "2023-05-15 11:07:28,434 | DEBUG | ssa.py:193 | on stmt: $40pred = call bool40($38is_op.3, func=bool40, args=(Var($38is_op.3, arrayobj.py:4518),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,435 | DEBUG | ssa.py:193 | on stmt: jump 46\n", - "2023-05-15 11:07:28,435 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:28,436 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,436 | DEBUG | ssa.py:193 | on stmt: $phi48.0 = step\n", - "2023-05-15 11:07:28,436 | DEBUG | ssa.py:193 | on stmt: jump 48\n", - "2023-05-15 11:07:28,437 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:28,437 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,437 | DEBUG | ssa.py:193 | on stmt: lit_step = $phi48.0\n", - "2023-05-15 11:07:28,438 | DEBUG | ssa.py:193 | on stmt: $const52.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,441 | DEBUG | ssa.py:193 | on stmt: $54is_op.3 = lit_step is not $const52.2\n", - "2023-05-15 11:07:28,443 | DEBUG | ssa.py:193 | on stmt: bool56 = global(bool: )\n", - "2023-05-15 11:07:28,443 | DEBUG | ssa.py:193 | on stmt: $56pred = call bool56($54is_op.3, func=bool56, args=(Var($54is_op.3, arrayobj.py:4520),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,444 | DEBUG | ssa.py:193 | on stmt: branch $56pred, 58, 62\n", - "2023-05-15 11:07:28,444 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 58\n", - "2023-05-15 11:07:28,444 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,445 | DEBUG | ssa.py:193 | on stmt: $phi64.0 = lit_step\n", - "2023-05-15 11:07:28,445 | DEBUG | ssa.py:269 | first assign: $phi64.0\n", - "2023-05-15 11:07:28,446 | DEBUG | ssa.py:199 | replaced with: $phi64.0 = lit_step\n", - "2023-05-15 11:07:28,447 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,447 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 62\n", - "2023-05-15 11:07:28,447 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,448 | DEBUG | ssa.py:193 | on stmt: $const62.0 = const(int, 1)\n", - "2023-05-15 11:07:28,448 | DEBUG | ssa.py:193 | on stmt: $phi64.0 = $const62.0\n", - "2023-05-15 11:07:28,449 | DEBUG | ssa.py:199 | replaced with: $phi64.0.1 = $const62.0\n", - "2023-05-15 11:07:28,450 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,450 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 64\n", - "2023-05-15 11:07:28,450 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,451 | DEBUG | ssa.py:193 | on stmt: _step = $phi64.0\n", - "2023-05-15 11:07:28,451 | DEBUG | ssa.py:193 | on stmt: $const68.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,452 | DEBUG | ssa.py:193 | on stmt: $70is_op.3 = lit_stop is $const68.2\n", - "2023-05-15 11:07:28,453 | DEBUG | ssa.py:193 | on stmt: bool72 = global(bool: )\n", - "2023-05-15 11:07:28,453 | DEBUG | ssa.py:193 | on stmt: $72pred = call bool72($70is_op.3, func=bool72, args=(Var($70is_op.3, arrayobj.py:4521),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,453 | DEBUG | ssa.py:193 | on stmt: branch $72pred, 74, 86\n", - "2023-05-15 11:07:28,454 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 74\n", - "2023-05-15 11:07:28,454 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,455 | DEBUG | ssa.py:193 | on stmt: _start = const(int, 0)\n", - "2023-05-15 11:07:28,456 | DEBUG | ssa.py:193 | on stmt: _stop = lit_start\n", - "2023-05-15 11:07:28,456 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,456 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 86\n", - "2023-05-15 11:07:28,457 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,457 | DEBUG | ssa.py:193 | on stmt: _start = lit_start\n", - "2023-05-15 11:07:28,458 | DEBUG | ssa.py:193 | on stmt: _stop = lit_stop\n", - "2023-05-15 11:07:28,458 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,458 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:28,459 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,459 | DEBUG | ssa.py:193 | on stmt: $const98.1 = const(int, 0)\n", - "2023-05-15 11:07:28,459 | DEBUG | ssa.py:193 | on stmt: $100compare_op.2 = _step == $const98.1\n", - "2023-05-15 11:07:28,460 | DEBUG | ssa.py:193 | on stmt: bool102 = global(bool: )\n", - "2023-05-15 11:07:28,461 | DEBUG | ssa.py:193 | on stmt: $102pred = call bool102($100compare_op.2, func=bool102, args=(Var($100compare_op.2, arrayobj.py:4526),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,462 | DEBUG | ssa.py:193 | on stmt: branch $102pred, 104, 112\n", - "2023-05-15 11:07:28,462 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 104\n", - "2023-05-15 11:07:28,463 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,463 | DEBUG | ssa.py:193 | on stmt: $104load_global.0 = global(ValueError: )\n", - "2023-05-15 11:07:28,464 | DEBUG | ssa.py:193 | on stmt: $const106.1 = const(str, Maximum allowed size exceeded)\n", - "2023-05-15 11:07:28,465 | DEBUG | ssa.py:193 | on stmt: $108call_function.2 = call $104load_global.0($const106.1, func=$104load_global.0, args=[Var($const106.1, arrayobj.py:4527)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,465 | DEBUG | ssa.py:193 | on stmt: raise ('Maximum allowed size exceeded')\n", - "2023-05-15 11:07:28,466 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 112\n", - "2023-05-15 11:07:28,466 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,467 | DEBUG | ssa.py:193 | on stmt: $116binary_subtract.2 = _stop - _start\n", - "2023-05-15 11:07:28,467 | DEBUG | ssa.py:193 | on stmt: nitems_c = $116binary_subtract.2 / _step\n", - "2023-05-15 11:07:28,468 | DEBUG | ssa.py:193 | on stmt: $124load_global.5 = global(int: )\n", - "2023-05-15 11:07:28,468 | DEBUG | ssa.py:193 | on stmt: $126load_global.6 = global(math: )\n", - "2023-05-15 11:07:28,469 | DEBUG | ssa.py:193 | on stmt: $128load_method.7 = getattr(value=$126load_global.6, attr=ceil)\n", - "2023-05-15 11:07:28,469 | DEBUG | ssa.py:193 | on stmt: $132load_attr.9 = getattr(value=nitems_c, attr=real)\n", - "2023-05-15 11:07:28,470 | DEBUG | ssa.py:193 | on stmt: $134call_method.10 = call $128load_method.7($132load_attr.9, func=$128load_method.7, args=[Var($132load_attr.9, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,470 | DEBUG | ssa.py:193 | on stmt: nitems_r = call $124load_global.5($134call_method.10, func=$124load_global.5, args=[Var($134call_method.10, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,471 | DEBUG | ssa.py:193 | on stmt: $140load_deref.12 = freevar(use_complex: False)\n", - "2023-05-15 11:07:28,471 | DEBUG | ssa.py:193 | on stmt: $const142.13 = const(bool, True)\n", - "2023-05-15 11:07:28,472 | DEBUG | ssa.py:193 | on stmt: $144is_op.14 = const(int, 0)\n", - "2023-05-15 11:07:28,472 | DEBUG | ssa.py:193 | on stmt: bool146 = global(bool: )\n", - "2023-05-15 11:07:28,473 | DEBUG | ssa.py:193 | on stmt: $146pred = call bool146($144is_op.14, func=bool146, args=(Var($144is_op.14, arrayobj.py:4533),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,474 | DEBUG | ssa.py:193 | on stmt: jump 182\n", - "2023-05-15 11:07:28,474 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:28,475 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,475 | DEBUG | ssa.py:193 | on stmt: $182load_global.0 = global(max: )\n", - "2023-05-15 11:07:28,475 | DEBUG | ssa.py:193 | on stmt: $const186.2 = const(int, 0)\n", - "2023-05-15 11:07:28,476 | DEBUG | ssa.py:193 | on stmt: nitems = call $182load_global.0(nitems_r, $const186.2, func=$182load_global.0, args=[Var(nitems_r, arrayobj.py:4530), Var($const186.2, arrayobj.py:4537)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,477 | DEBUG | ssa.py:193 | on stmt: jump 192\n", - "2023-05-15 11:07:28,477 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 192\n", - "2023-05-15 11:07:28,478 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,478 | DEBUG | ssa.py:193 | on stmt: $192load_global.0 = global(np: )\n", - "2023-05-15 11:07:28,479 | DEBUG | ssa.py:193 | on stmt: $194load_method.1 = getattr(value=$192load_global.0, attr=empty)\n", - "2023-05-15 11:07:28,479 | DEBUG | ssa.py:193 | on stmt: $198load_deref.3 = freevar(true_dtype: int64)\n", - "2023-05-15 11:07:28,480 | DEBUG | ssa.py:193 | on stmt: arr = call $194load_method.1(nitems, $198load_deref.3, func=$194load_method.1, args=[Var(nitems, arrayobj.py:4535), Var($198load_deref.3, arrayobj.py:4538)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,480 | DEBUG | ssa.py:193 | on stmt: val = _start\n", - "2023-05-15 11:07:28,481 | DEBUG | ssa.py:193 | on stmt: $208load_global.6 = global(range: )\n", - "2023-05-15 11:07:28,481 | DEBUG | ssa.py:193 | on stmt: $212call_function.8 = call $208load_global.6(nitems, func=$208load_global.6, args=[Var(nitems, arrayobj.py:4535)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,482 | DEBUG | ssa.py:193 | on stmt: $214get_iter.9 = getiter(value=$212call_function.8)\n", - "2023-05-15 11:07:28,483 | DEBUG | ssa.py:193 | on stmt: $phi216.0 = $214get_iter.9\n", - "2023-05-15 11:07:28,483 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:28,484 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 216\n", - "2023-05-15 11:07:28,485 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,485 | DEBUG | ssa.py:193 | on stmt: $216for_iter.1 = iternext(value=$phi216.0)\n", - "2023-05-15 11:07:28,485 | DEBUG | ssa.py:193 | on stmt: $216for_iter.2 = pair_first(value=$216for_iter.1)\n", - "2023-05-15 11:07:28,486 | DEBUG | ssa.py:193 | on stmt: $216for_iter.3 = pair_second(value=$216for_iter.1)\n", - "2023-05-15 11:07:28,486 | DEBUG | ssa.py:193 | on stmt: $phi218.1 = $216for_iter.2\n", - "2023-05-15 11:07:28,486 | DEBUG | ssa.py:193 | on stmt: branch $216for_iter.3, 218, 238\n", - "2023-05-15 11:07:28,487 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 218\n", - "2023-05-15 11:07:28,488 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,488 | DEBUG | ssa.py:193 | on stmt: i = $phi218.1\n", - "2023-05-15 11:07:28,489 | DEBUG | ssa.py:193 | on stmt: $226binary_multiply.5 = i * _step\n", - "2023-05-15 11:07:28,489 | DEBUG | ssa.py:193 | on stmt: $228binary_add.6 = val + $226binary_multiply.5\n", - "2023-05-15 11:07:28,491 | DEBUG | ssa.py:193 | on stmt: arr[i] = $228binary_add.6\n", - "2023-05-15 11:07:28,491 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:28,492 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 238\n", - "2023-05-15 11:07:28,492 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,494 | DEBUG | ssa.py:193 | on stmt: $240return_value.1 = cast(value=arr)\n", - "2023-05-15 11:07:28,494 | DEBUG | ssa.py:193 | on stmt: return $240return_value.1\n", - "2023-05-15 11:07:28,495 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {58: [],\n", - " 62: []})\n", - "2023-05-15 11:07:28,495 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:28,497 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,497 | DEBUG | ssa.py:193 | on stmt: start = arg(0, name=start)\n", - "2023-05-15 11:07:28,498 | DEBUG | ssa.py:193 | on stmt: stop = arg(1, name=stop)\n", - "2023-05-15 11:07:28,498 | DEBUG | ssa.py:193 | on stmt: step = arg(2, name=step)\n", - "2023-05-15 11:07:28,499 | DEBUG | ssa.py:193 | on stmt: dtype = arg(3, name=dtype)\n", - "2023-05-15 11:07:28,500 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(start_value: None)\n", - "2023-05-15 11:07:28,501 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(NoneType, None)\n", - "2023-05-15 11:07:28,502 | DEBUG | ssa.py:193 | on stmt: $6is_op.2 = const(int, 0)\n", - "2023-05-15 11:07:28,502 | DEBUG | ssa.py:193 | on stmt: bool8 = global(bool: )\n", - "2023-05-15 11:07:28,503 | DEBUG | ssa.py:193 | on stmt: $8pred = call bool8($6is_op.2, func=bool8, args=(Var($6is_op.2, arrayobj.py:4516),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,503 | DEBUG | ssa.py:193 | on stmt: jump 14\n", - "2023-05-15 11:07:28,504 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 14\n", - "2023-05-15 11:07:28,505 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,505 | DEBUG | ssa.py:193 | on stmt: $phi16.0 = start\n", - "2023-05-15 11:07:28,505 | DEBUG | ssa.py:193 | on stmt: jump 16\n", - "2023-05-15 11:07:28,506 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 16\n", - "2023-05-15 11:07:28,506 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,507 | DEBUG | ssa.py:193 | on stmt: lit_start = $phi16.0\n", - "2023-05-15 11:07:28,508 | DEBUG | ssa.py:193 | on stmt: $18load_deref.1 = freevar(stop_value: None)\n", - "2023-05-15 11:07:28,508 | DEBUG | ssa.py:193 | on stmt: $const20.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,509 | DEBUG | ssa.py:193 | on stmt: $22is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,509 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:28,510 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22is_op.3, func=bool24, args=(Var($22is_op.3, arrayobj.py:4517),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,511 | DEBUG | ssa.py:193 | on stmt: jump 30\n", - "2023-05-15 11:07:28,511 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 30\n", - "2023-05-15 11:07:28,512 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,512 | DEBUG | ssa.py:193 | on stmt: $phi32.0 = stop\n", - "2023-05-15 11:07:28,513 | DEBUG | ssa.py:193 | on stmt: jump 32\n", - "2023-05-15 11:07:28,513 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 32\n", - "2023-05-15 11:07:28,514 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,514 | DEBUG | ssa.py:193 | on stmt: lit_stop = $phi32.0\n", - "2023-05-15 11:07:28,514 | DEBUG | ssa.py:193 | on stmt: $34load_deref.1 = freevar(step_value: None)\n", - "2023-05-15 11:07:28,515 | DEBUG | ssa.py:193 | on stmt: $const36.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,516 | DEBUG | ssa.py:193 | on stmt: $38is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,516 | DEBUG | ssa.py:193 | on stmt: bool40 = global(bool: )\n", - "2023-05-15 11:07:28,517 | DEBUG | ssa.py:193 | on stmt: $40pred = call bool40($38is_op.3, func=bool40, args=(Var($38is_op.3, arrayobj.py:4518),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,517 | DEBUG | ssa.py:193 | on stmt: jump 46\n", - "2023-05-15 11:07:28,518 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:28,518 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,519 | DEBUG | ssa.py:193 | on stmt: $phi48.0 = step\n", - "2023-05-15 11:07:28,519 | DEBUG | ssa.py:193 | on stmt: jump 48\n", - "2023-05-15 11:07:28,520 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:28,520 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,520 | DEBUG | ssa.py:193 | on stmt: lit_step = $phi48.0\n", - "2023-05-15 11:07:28,521 | DEBUG | ssa.py:193 | on stmt: $const52.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,521 | DEBUG | ssa.py:193 | on stmt: $54is_op.3 = lit_step is not $const52.2\n", - "2023-05-15 11:07:28,522 | DEBUG | ssa.py:193 | on stmt: bool56 = global(bool: )\n", - "2023-05-15 11:07:28,522 | DEBUG | ssa.py:193 | on stmt: $56pred = call bool56($54is_op.3, func=bool56, args=(Var($54is_op.3, arrayobj.py:4520),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,522 | DEBUG | ssa.py:193 | on stmt: branch $56pred, 58, 62\n", - "2023-05-15 11:07:28,523 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 58\n", - "2023-05-15 11:07:28,523 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,524 | DEBUG | ssa.py:193 | on stmt: $phi64.0 = lit_step\n", - "2023-05-15 11:07:28,524 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,524 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 62\n", - "2023-05-15 11:07:28,525 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,525 | DEBUG | ssa.py:193 | on stmt: $const62.0 = const(int, 1)\n", - "2023-05-15 11:07:28,525 | DEBUG | ssa.py:193 | on stmt: $phi64.0.1 = $const62.0\n", - "2023-05-15 11:07:28,526 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,526 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 64\n", - "2023-05-15 11:07:28,526 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,527 | DEBUG | ssa.py:193 | on stmt: _step = $phi64.0\n", - "2023-05-15 11:07:28,527 | DEBUG | ssa.py:353 | find_def var='$phi64.0' stmt=_step = $phi64.0\n", - "2023-05-15 11:07:28,528 | DEBUG | ssa.py:384 | find_def_from_top label 64\n", - "2023-05-15 11:07:28,528 | DEBUG | ssa.py:401 | insert phi node $phi64.0.2 = phi(incoming_values=[], incoming_blocks=[]) at 64\n", - "2023-05-15 11:07:28,528 | DEBUG | ssa.py:427 | find_def_from_bottom label 58\n", - "2023-05-15 11:07:28,529 | DEBUG | ssa.py:409 | incoming_def $phi64.0 = lit_step\n", - "2023-05-15 11:07:28,529 | DEBUG | ssa.py:427 | find_def_from_bottom label 62\n", - "2023-05-15 11:07:28,529 | DEBUG | ssa.py:409 | incoming_def $phi64.0.1 = $const62.0\n", - "2023-05-15 11:07:28,530 | DEBUG | ssa.py:199 | replaced with: _step = $phi64.0.2\n", - "2023-05-15 11:07:28,530 | DEBUG | ssa.py:193 | on stmt: $const68.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,531 | DEBUG | ssa.py:193 | on stmt: $70is_op.3 = lit_stop is $const68.2\n", - "2023-05-15 11:07:28,531 | DEBUG | ssa.py:193 | on stmt: bool72 = global(bool: )\n", - "2023-05-15 11:07:28,532 | DEBUG | ssa.py:193 | on stmt: $72pred = call bool72($70is_op.3, func=bool72, args=(Var($70is_op.3, arrayobj.py:4521),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,532 | DEBUG | ssa.py:193 | on stmt: branch $72pred, 74, 86\n", - "2023-05-15 11:07:28,532 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 74\n", - "2023-05-15 11:07:28,533 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,540 | DEBUG | ssa.py:193 | on stmt: _start = const(int, 0)\n", - "2023-05-15 11:07:28,540 | DEBUG | ssa.py:193 | on stmt: _stop = lit_start\n", - "2023-05-15 11:07:28,541 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,541 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 86\n", - "2023-05-15 11:07:28,541 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,542 | DEBUG | ssa.py:193 | on stmt: _start = lit_start\n", - "2023-05-15 11:07:28,543 | DEBUG | ssa.py:193 | on stmt: _stop = lit_stop\n", - "2023-05-15 11:07:28,543 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,544 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:28,544 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,544 | DEBUG | ssa.py:193 | on stmt: $const98.1 = const(int, 0)\n", - "2023-05-15 11:07:28,545 | DEBUG | ssa.py:193 | on stmt: $100compare_op.2 = _step == $const98.1\n", - "2023-05-15 11:07:28,545 | DEBUG | ssa.py:193 | on stmt: bool102 = global(bool: )\n", - "2023-05-15 11:07:28,546 | DEBUG | ssa.py:193 | on stmt: $102pred = call bool102($100compare_op.2, func=bool102, args=(Var($100compare_op.2, arrayobj.py:4526),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,546 | DEBUG | ssa.py:193 | on stmt: branch $102pred, 104, 112\n", - "2023-05-15 11:07:28,547 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 104\n", - "2023-05-15 11:07:28,547 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,549 | DEBUG | ssa.py:193 | on stmt: $104load_global.0 = global(ValueError: )\n", - "2023-05-15 11:07:28,549 | DEBUG | ssa.py:193 | on stmt: $const106.1 = const(str, Maximum allowed size exceeded)\n", - "2023-05-15 11:07:28,550 | DEBUG | ssa.py:193 | on stmt: $108call_function.2 = call $104load_global.0($const106.1, func=$104load_global.0, args=[Var($const106.1, arrayobj.py:4527)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,550 | DEBUG | ssa.py:193 | on stmt: raise ('Maximum allowed size exceeded')\n", - "2023-05-15 11:07:28,551 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 112\n", - "2023-05-15 11:07:28,551 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,552 | DEBUG | ssa.py:193 | on stmt: $116binary_subtract.2 = _stop - _start\n", - "2023-05-15 11:07:28,553 | DEBUG | ssa.py:193 | on stmt: nitems_c = $116binary_subtract.2 / _step\n", - "2023-05-15 11:07:28,553 | DEBUG | ssa.py:193 | on stmt: $124load_global.5 = global(int: )\n", - "2023-05-15 11:07:28,553 | DEBUG | ssa.py:193 | on stmt: $126load_global.6 = global(math: )\n", - "2023-05-15 11:07:28,554 | DEBUG | ssa.py:193 | on stmt: $128load_method.7 = getattr(value=$126load_global.6, attr=ceil)\n", - "2023-05-15 11:07:28,554 | DEBUG | ssa.py:193 | on stmt: $132load_attr.9 = getattr(value=nitems_c, attr=real)\n", - "2023-05-15 11:07:28,555 | DEBUG | ssa.py:193 | on stmt: $134call_method.10 = call $128load_method.7($132load_attr.9, func=$128load_method.7, args=[Var($132load_attr.9, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,555 | DEBUG | ssa.py:193 | on stmt: nitems_r = call $124load_global.5($134call_method.10, func=$124load_global.5, args=[Var($134call_method.10, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,556 | DEBUG | ssa.py:193 | on stmt: $140load_deref.12 = freevar(use_complex: False)\n", - "2023-05-15 11:07:28,556 | DEBUG | ssa.py:193 | on stmt: $const142.13 = const(bool, True)\n", - "2023-05-15 11:07:28,557 | DEBUG | ssa.py:193 | on stmt: $144is_op.14 = const(int, 0)\n", - "2023-05-15 11:07:28,557 | DEBUG | ssa.py:193 | on stmt: bool146 = global(bool: )\n", - "2023-05-15 11:07:28,558 | DEBUG | ssa.py:193 | on stmt: $146pred = call bool146($144is_op.14, func=bool146, args=(Var($144is_op.14, arrayobj.py:4533),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,558 | DEBUG | ssa.py:193 | on stmt: jump 182\n", - "2023-05-15 11:07:28,559 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:28,559 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,560 | DEBUG | ssa.py:193 | on stmt: $182load_global.0 = global(max: )\n", - "2023-05-15 11:07:28,560 | DEBUG | ssa.py:193 | on stmt: $const186.2 = const(int, 0)\n", - "2023-05-15 11:07:28,560 | DEBUG | ssa.py:193 | on stmt: nitems = call $182load_global.0(nitems_r, $const186.2, func=$182load_global.0, args=[Var(nitems_r, arrayobj.py:4530), Var($const186.2, arrayobj.py:4537)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,561 | DEBUG | ssa.py:193 | on stmt: jump 192\n", - "2023-05-15 11:07:28,561 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 192\n", - "2023-05-15 11:07:28,562 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,562 | DEBUG | ssa.py:193 | on stmt: $192load_global.0 = global(np: )\n", - "2023-05-15 11:07:28,563 | DEBUG | ssa.py:193 | on stmt: $194load_method.1 = getattr(value=$192load_global.0, attr=empty)\n", - "2023-05-15 11:07:28,564 | DEBUG | ssa.py:193 | on stmt: $198load_deref.3 = freevar(true_dtype: int64)\n", - "2023-05-15 11:07:28,566 | DEBUG | ssa.py:193 | on stmt: arr = call $194load_method.1(nitems, $198load_deref.3, func=$194load_method.1, args=[Var(nitems, arrayobj.py:4535), Var($198load_deref.3, arrayobj.py:4538)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,567 | DEBUG | ssa.py:193 | on stmt: val = _start\n", - "2023-05-15 11:07:28,568 | DEBUG | ssa.py:193 | on stmt: $208load_global.6 = global(range: )\n", - "2023-05-15 11:07:28,568 | DEBUG | ssa.py:193 | on stmt: $212call_function.8 = call $208load_global.6(nitems, func=$208load_global.6, args=[Var(nitems, arrayobj.py:4535)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,569 | DEBUG | ssa.py:193 | on stmt: $214get_iter.9 = getiter(value=$212call_function.8)\n", - "2023-05-15 11:07:28,569 | DEBUG | ssa.py:193 | on stmt: $phi216.0 = $214get_iter.9\n", - "2023-05-15 11:07:28,570 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:28,571 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 216\n", - "2023-05-15 11:07:28,571 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,571 | DEBUG | ssa.py:193 | on stmt: $216for_iter.1 = iternext(value=$phi216.0)\n", - "2023-05-15 11:07:28,572 | DEBUG | ssa.py:193 | on stmt: $216for_iter.2 = pair_first(value=$216for_iter.1)\n", - "2023-05-15 11:07:28,573 | DEBUG | ssa.py:193 | on stmt: $216for_iter.3 = pair_second(value=$216for_iter.1)\n", - "2023-05-15 11:07:28,574 | DEBUG | ssa.py:193 | on stmt: $phi218.1 = $216for_iter.2\n", - "2023-05-15 11:07:28,575 | DEBUG | ssa.py:193 | on stmt: branch $216for_iter.3, 218, 238\n", - "2023-05-15 11:07:28,575 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 218\n", - "2023-05-15 11:07:28,576 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,577 | DEBUG | ssa.py:193 | on stmt: i = $phi218.1\n", - "2023-05-15 11:07:28,577 | DEBUG | ssa.py:193 | on stmt: $226binary_multiply.5 = i * _step\n", - "2023-05-15 11:07:28,577 | DEBUG | ssa.py:193 | on stmt: $228binary_add.6 = val + $226binary_multiply.5\n", - "2023-05-15 11:07:28,578 | DEBUG | ssa.py:193 | on stmt: arr[i] = $228binary_add.6\n", - "2023-05-15 11:07:28,579 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:28,579 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 238\n", - "2023-05-15 11:07:28,579 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,580 | DEBUG | ssa.py:193 | on stmt: $240return_value.1 = cast(value=arr)\n", - "2023-05-15 11:07:28,580 | DEBUG | ssa.py:193 | on stmt: return $240return_value.1\n", - "2023-05-15 11:07:28,583 | DEBUG | ssa.py:63 | Fix SSA violator on var _stop\n", - "2023-05-15 11:07:28,584 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:28,584 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,585 | DEBUG | ssa.py:193 | on stmt: start = arg(0, name=start)\n", - "2023-05-15 11:07:28,585 | DEBUG | ssa.py:193 | on stmt: stop = arg(1, name=stop)\n", - "2023-05-15 11:07:28,586 | DEBUG | ssa.py:193 | on stmt: step = arg(2, name=step)\n", - "2023-05-15 11:07:28,586 | DEBUG | ssa.py:193 | on stmt: dtype = arg(3, name=dtype)\n", - "2023-05-15 11:07:28,587 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(start_value: None)\n", - "2023-05-15 11:07:28,588 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(NoneType, None)\n", - "2023-05-15 11:07:28,588 | DEBUG | ssa.py:193 | on stmt: $6is_op.2 = const(int, 0)\n", - "2023-05-15 11:07:28,589 | DEBUG | ssa.py:193 | on stmt: bool8 = global(bool: )\n", - "2023-05-15 11:07:28,591 | DEBUG | ssa.py:193 | on stmt: $8pred = call bool8($6is_op.2, func=bool8, args=(Var($6is_op.2, arrayobj.py:4516),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,591 | DEBUG | ssa.py:193 | on stmt: jump 14\n", - "2023-05-15 11:07:28,592 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 14\n", - "2023-05-15 11:07:28,592 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,593 | DEBUG | ssa.py:193 | on stmt: $phi16.0 = start\n", - "2023-05-15 11:07:28,593 | DEBUG | ssa.py:193 | on stmt: jump 16\n", - "2023-05-15 11:07:28,594 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 16\n", - "2023-05-15 11:07:28,594 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,595 | DEBUG | ssa.py:193 | on stmt: lit_start = $phi16.0\n", - "2023-05-15 11:07:28,595 | DEBUG | ssa.py:193 | on stmt: $18load_deref.1 = freevar(stop_value: None)\n", - "2023-05-15 11:07:28,596 | DEBUG | ssa.py:193 | on stmt: $const20.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,596 | DEBUG | ssa.py:193 | on stmt: $22is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,597 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:28,597 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22is_op.3, func=bool24, args=(Var($22is_op.3, arrayobj.py:4517),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,598 | DEBUG | ssa.py:193 | on stmt: jump 30\n", - "2023-05-15 11:07:28,598 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 30\n", - "2023-05-15 11:07:28,599 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,600 | DEBUG | ssa.py:193 | on stmt: $phi32.0 = stop\n", - "2023-05-15 11:07:28,600 | DEBUG | ssa.py:193 | on stmt: jump 32\n", - "2023-05-15 11:07:28,601 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 32\n", - "2023-05-15 11:07:28,601 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,602 | DEBUG | ssa.py:193 | on stmt: lit_stop = $phi32.0\n", - "2023-05-15 11:07:28,603 | DEBUG | ssa.py:193 | on stmt: $34load_deref.1 = freevar(step_value: None)\n", - "2023-05-15 11:07:28,603 | DEBUG | ssa.py:193 | on stmt: $const36.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,604 | DEBUG | ssa.py:193 | on stmt: $38is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,604 | DEBUG | ssa.py:193 | on stmt: bool40 = global(bool: )\n", - "2023-05-15 11:07:28,605 | DEBUG | ssa.py:193 | on stmt: $40pred = call bool40($38is_op.3, func=bool40, args=(Var($38is_op.3, arrayobj.py:4518),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,606 | DEBUG | ssa.py:193 | on stmt: jump 46\n", - "2023-05-15 11:07:28,606 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:28,607 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,607 | DEBUG | ssa.py:193 | on stmt: $phi48.0 = step\n", - "2023-05-15 11:07:28,608 | DEBUG | ssa.py:193 | on stmt: jump 48\n", - "2023-05-15 11:07:28,609 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:28,610 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,610 | DEBUG | ssa.py:193 | on stmt: lit_step = $phi48.0\n", - "2023-05-15 11:07:28,611 | DEBUG | ssa.py:193 | on stmt: $const52.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,611 | DEBUG | ssa.py:193 | on stmt: $54is_op.3 = lit_step is not $const52.2\n", - "2023-05-15 11:07:28,612 | DEBUG | ssa.py:193 | on stmt: bool56 = global(bool: )\n", - "2023-05-15 11:07:28,612 | DEBUG | ssa.py:193 | on stmt: $56pred = call bool56($54is_op.3, func=bool56, args=(Var($54is_op.3, arrayobj.py:4520),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,613 | DEBUG | ssa.py:193 | on stmt: branch $56pred, 58, 62\n", - "2023-05-15 11:07:28,613 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 58\n", - "2023-05-15 11:07:28,614 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,614 | DEBUG | ssa.py:193 | on stmt: $phi64.0 = lit_step\n", - "2023-05-15 11:07:28,615 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,615 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 62\n", - "2023-05-15 11:07:28,616 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,616 | DEBUG | ssa.py:193 | on stmt: $const62.0 = const(int, 1)\n", - "2023-05-15 11:07:28,617 | DEBUG | ssa.py:193 | on stmt: $phi64.0.1 = $const62.0\n", - "2023-05-15 11:07:28,617 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,618 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 64\n", - "2023-05-15 11:07:28,618 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,619 | DEBUG | ssa.py:193 | on stmt: $phi64.0.2 = phi(incoming_values=[Var($phi64.0, arrayobj.py:4520), Var($phi64.0.1, arrayobj.py:4520)], incoming_blocks=[58, 62])\n", - "2023-05-15 11:07:28,619 | DEBUG | ssa.py:193 | on stmt: _step = $phi64.0.2\n", - "2023-05-15 11:07:28,620 | DEBUG | ssa.py:193 | on stmt: $const68.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,620 | DEBUG | ssa.py:193 | on stmt: $70is_op.3 = lit_stop is $const68.2\n", - "2023-05-15 11:07:28,621 | DEBUG | ssa.py:193 | on stmt: bool72 = global(bool: )\n", - "2023-05-15 11:07:28,621 | DEBUG | ssa.py:193 | on stmt: $72pred = call bool72($70is_op.3, func=bool72, args=(Var($70is_op.3, arrayobj.py:4521),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,622 | DEBUG | ssa.py:193 | on stmt: branch $72pred, 74, 86\n", - "2023-05-15 11:07:28,627 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 74\n", - "2023-05-15 11:07:28,631 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,632 | DEBUG | ssa.py:193 | on stmt: _start = const(int, 0)\n", - "2023-05-15 11:07:28,632 | DEBUG | ssa.py:193 | on stmt: _stop = lit_start\n", - "2023-05-15 11:07:28,632 | DEBUG | ssa.py:269 | first assign: _stop\n", - "2023-05-15 11:07:28,634 | DEBUG | ssa.py:199 | replaced with: _stop = lit_start\n", - "2023-05-15 11:07:28,634 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,635 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 86\n", - "2023-05-15 11:07:28,635 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,636 | DEBUG | ssa.py:193 | on stmt: _start = lit_start\n", - "2023-05-15 11:07:28,636 | DEBUG | ssa.py:193 | on stmt: _stop = lit_stop\n", - "2023-05-15 11:07:28,637 | DEBUG | ssa.py:199 | replaced with: _stop.1 = lit_stop\n", - "2023-05-15 11:07:28,637 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,638 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:28,638 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,639 | DEBUG | ssa.py:193 | on stmt: $const98.1 = const(int, 0)\n", - "2023-05-15 11:07:28,639 | DEBUG | ssa.py:193 | on stmt: $100compare_op.2 = _step == $const98.1\n", - "2023-05-15 11:07:28,640 | DEBUG | ssa.py:193 | on stmt: bool102 = global(bool: )\n", - "2023-05-15 11:07:28,640 | DEBUG | ssa.py:193 | on stmt: $102pred = call bool102($100compare_op.2, func=bool102, args=(Var($100compare_op.2, arrayobj.py:4526),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,641 | DEBUG | ssa.py:193 | on stmt: branch $102pred, 104, 112\n", - "2023-05-15 11:07:28,641 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 104\n", - "2023-05-15 11:07:28,642 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,642 | DEBUG | ssa.py:193 | on stmt: $104load_global.0 = global(ValueError: )\n", - "2023-05-15 11:07:28,643 | DEBUG | ssa.py:193 | on stmt: $const106.1 = const(str, Maximum allowed size exceeded)\n", - "2023-05-15 11:07:28,643 | DEBUG | ssa.py:193 | on stmt: $108call_function.2 = call $104load_global.0($const106.1, func=$104load_global.0, args=[Var($const106.1, arrayobj.py:4527)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,644 | DEBUG | ssa.py:193 | on stmt: raise ('Maximum allowed size exceeded')\n", - "2023-05-15 11:07:28,644 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 112\n", - "2023-05-15 11:07:28,645 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,645 | DEBUG | ssa.py:193 | on stmt: $116binary_subtract.2 = _stop - _start\n", - "2023-05-15 11:07:28,646 | DEBUG | ssa.py:193 | on stmt: nitems_c = $116binary_subtract.2 / _step\n", - "2023-05-15 11:07:28,646 | DEBUG | ssa.py:193 | on stmt: $124load_global.5 = global(int: )\n", - "2023-05-15 11:07:28,647 | DEBUG | ssa.py:193 | on stmt: $126load_global.6 = global(math: )\n", - "2023-05-15 11:07:28,647 | DEBUG | ssa.py:193 | on stmt: $128load_method.7 = getattr(value=$126load_global.6, attr=ceil)\n", - "2023-05-15 11:07:28,648 | DEBUG | ssa.py:193 | on stmt: $132load_attr.9 = getattr(value=nitems_c, attr=real)\n", - "2023-05-15 11:07:28,648 | DEBUG | ssa.py:193 | on stmt: $134call_method.10 = call $128load_method.7($132load_attr.9, func=$128load_method.7, args=[Var($132load_attr.9, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,649 | DEBUG | ssa.py:193 | on stmt: nitems_r = call $124load_global.5($134call_method.10, func=$124load_global.5, args=[Var($134call_method.10, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,649 | DEBUG | ssa.py:193 | on stmt: $140load_deref.12 = freevar(use_complex: False)\n", - "2023-05-15 11:07:28,650 | DEBUG | ssa.py:193 | on stmt: $const142.13 = const(bool, True)\n", - "2023-05-15 11:07:28,651 | DEBUG | ssa.py:193 | on stmt: $144is_op.14 = const(int, 0)\n", - "2023-05-15 11:07:28,651 | DEBUG | ssa.py:193 | on stmt: bool146 = global(bool: )\n", - "2023-05-15 11:07:28,652 | DEBUG | ssa.py:193 | on stmt: $146pred = call bool146($144is_op.14, func=bool146, args=(Var($144is_op.14, arrayobj.py:4533),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,652 | DEBUG | ssa.py:193 | on stmt: jump 182\n", - "2023-05-15 11:07:28,652 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:28,653 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,653 | DEBUG | ssa.py:193 | on stmt: $182load_global.0 = global(max: )\n", - "2023-05-15 11:07:28,654 | DEBUG | ssa.py:193 | on stmt: $const186.2 = const(int, 0)\n", - "2023-05-15 11:07:28,654 | DEBUG | ssa.py:193 | on stmt: nitems = call $182load_global.0(nitems_r, $const186.2, func=$182load_global.0, args=[Var(nitems_r, arrayobj.py:4530), Var($const186.2, arrayobj.py:4537)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,655 | DEBUG | ssa.py:193 | on stmt: jump 192\n", - "2023-05-15 11:07:28,655 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 192\n", - "2023-05-15 11:07:28,656 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,656 | DEBUG | ssa.py:193 | on stmt: $192load_global.0 = global(np: )\n", - "2023-05-15 11:07:28,657 | DEBUG | ssa.py:193 | on stmt: $194load_method.1 = getattr(value=$192load_global.0, attr=empty)\n", - "2023-05-15 11:07:28,657 | DEBUG | ssa.py:193 | on stmt: $198load_deref.3 = freevar(true_dtype: int64)\n", - "2023-05-15 11:07:28,658 | DEBUG | ssa.py:193 | on stmt: arr = call $194load_method.1(nitems, $198load_deref.3, func=$194load_method.1, args=[Var(nitems, arrayobj.py:4535), Var($198load_deref.3, arrayobj.py:4538)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,658 | DEBUG | ssa.py:193 | on stmt: val = _start\n", - "2023-05-15 11:07:28,658 | DEBUG | ssa.py:193 | on stmt: $208load_global.6 = global(range: )\n", - "2023-05-15 11:07:28,659 | DEBUG | ssa.py:193 | on stmt: $212call_function.8 = call $208load_global.6(nitems, func=$208load_global.6, args=[Var(nitems, arrayobj.py:4535)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,659 | DEBUG | ssa.py:193 | on stmt: $214get_iter.9 = getiter(value=$212call_function.8)\n", - "2023-05-15 11:07:28,660 | DEBUG | ssa.py:193 | on stmt: $phi216.0 = $214get_iter.9\n", - "2023-05-15 11:07:28,660 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:28,660 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 216\n", - "2023-05-15 11:07:28,661 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,661 | DEBUG | ssa.py:193 | on stmt: $216for_iter.1 = iternext(value=$phi216.0)\n", - "2023-05-15 11:07:28,662 | DEBUG | ssa.py:193 | on stmt: $216for_iter.2 = pair_first(value=$216for_iter.1)\n", - "2023-05-15 11:07:28,662 | DEBUG | ssa.py:193 | on stmt: $216for_iter.3 = pair_second(value=$216for_iter.1)\n", - "2023-05-15 11:07:28,663 | DEBUG | ssa.py:193 | on stmt: $phi218.1 = $216for_iter.2\n", - "2023-05-15 11:07:28,663 | DEBUG | ssa.py:193 | on stmt: branch $216for_iter.3, 218, 238\n", - "2023-05-15 11:07:28,663 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 218\n", - "2023-05-15 11:07:28,664 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,664 | DEBUG | ssa.py:193 | on stmt: i = $phi218.1\n", - "2023-05-15 11:07:28,665 | DEBUG | ssa.py:193 | on stmt: $226binary_multiply.5 = i * _step\n", - "2023-05-15 11:07:28,665 | DEBUG | ssa.py:193 | on stmt: $228binary_add.6 = val + $226binary_multiply.5\n", - "2023-05-15 11:07:28,666 | DEBUG | ssa.py:193 | on stmt: arr[i] = $228binary_add.6\n", - "2023-05-15 11:07:28,666 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:28,667 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 238\n", - "2023-05-15 11:07:28,667 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,667 | DEBUG | ssa.py:193 | on stmt: $240return_value.1 = cast(value=arr)\n", - "2023-05-15 11:07:28,668 | DEBUG | ssa.py:193 | on stmt: return $240return_value.1\n", - "2023-05-15 11:07:28,668 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {74: [],\n", - " 86: []})\n", - "2023-05-15 11:07:28,669 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:28,669 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,670 | DEBUG | ssa.py:193 | on stmt: start = arg(0, name=start)\n", - "2023-05-15 11:07:28,670 | DEBUG | ssa.py:193 | on stmt: stop = arg(1, name=stop)\n", - "2023-05-15 11:07:28,671 | DEBUG | ssa.py:193 | on stmt: step = arg(2, name=step)\n", - "2023-05-15 11:07:28,671 | DEBUG | ssa.py:193 | on stmt: dtype = arg(3, name=dtype)\n", - "2023-05-15 11:07:28,672 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(start_value: None)\n", - "2023-05-15 11:07:28,673 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(NoneType, None)\n", - "2023-05-15 11:07:28,679 | DEBUG | ssa.py:193 | on stmt: $6is_op.2 = const(int, 0)\n", - "2023-05-15 11:07:28,681 | DEBUG | ssa.py:193 | on stmt: bool8 = global(bool: )\n", - "2023-05-15 11:07:28,688 | DEBUG | ssa.py:193 | on stmt: $8pred = call bool8($6is_op.2, func=bool8, args=(Var($6is_op.2, arrayobj.py:4516),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,690 | DEBUG | ssa.py:193 | on stmt: jump 14\n", - "2023-05-15 11:07:28,690 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 14\n", - "2023-05-15 11:07:28,691 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,691 | DEBUG | ssa.py:193 | on stmt: $phi16.0 = start\n", - "2023-05-15 11:07:28,693 | DEBUG | ssa.py:193 | on stmt: jump 16\n", - "2023-05-15 11:07:28,693 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 16\n", - "2023-05-15 11:07:28,694 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,694 | DEBUG | ssa.py:193 | on stmt: lit_start = $phi16.0\n", - "2023-05-15 11:07:28,695 | DEBUG | ssa.py:193 | on stmt: $18load_deref.1 = freevar(stop_value: None)\n", - "2023-05-15 11:07:28,695 | DEBUG | ssa.py:193 | on stmt: $const20.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,696 | DEBUG | ssa.py:193 | on stmt: $22is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,697 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:28,698 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22is_op.3, func=bool24, args=(Var($22is_op.3, arrayobj.py:4517),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,699 | DEBUG | ssa.py:193 | on stmt: jump 30\n", - "2023-05-15 11:07:28,699 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 30\n", - "2023-05-15 11:07:28,700 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,700 | DEBUG | ssa.py:193 | on stmt: $phi32.0 = stop\n", - "2023-05-15 11:07:28,701 | DEBUG | ssa.py:193 | on stmt: jump 32\n", - "2023-05-15 11:07:28,702 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 32\n", - "2023-05-15 11:07:28,702 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,703 | DEBUG | ssa.py:193 | on stmt: lit_stop = $phi32.0\n", - "2023-05-15 11:07:28,703 | DEBUG | ssa.py:193 | on stmt: $34load_deref.1 = freevar(step_value: None)\n", - "2023-05-15 11:07:28,704 | DEBUG | ssa.py:193 | on stmt: $const36.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,704 | DEBUG | ssa.py:193 | on stmt: $38is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,705 | DEBUG | ssa.py:193 | on stmt: bool40 = global(bool: )\n", - "2023-05-15 11:07:28,705 | DEBUG | ssa.py:193 | on stmt: $40pred = call bool40($38is_op.3, func=bool40, args=(Var($38is_op.3, arrayobj.py:4518),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,706 | DEBUG | ssa.py:193 | on stmt: jump 46\n", - "2023-05-15 11:07:28,707 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:28,707 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,707 | DEBUG | ssa.py:193 | on stmt: $phi48.0 = step\n", - "2023-05-15 11:07:28,708 | DEBUG | ssa.py:193 | on stmt: jump 48\n", - "2023-05-15 11:07:28,709 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:28,709 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,710 | DEBUG | ssa.py:193 | on stmt: lit_step = $phi48.0\n", - "2023-05-15 11:07:28,710 | DEBUG | ssa.py:193 | on stmt: $const52.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,710 | DEBUG | ssa.py:193 | on stmt: $54is_op.3 = lit_step is not $const52.2\n", - "2023-05-15 11:07:28,711 | DEBUG | ssa.py:193 | on stmt: bool56 = global(bool: )\n", - "2023-05-15 11:07:28,712 | DEBUG | ssa.py:193 | on stmt: $56pred = call bool56($54is_op.3, func=bool56, args=(Var($54is_op.3, arrayobj.py:4520),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,712 | DEBUG | ssa.py:193 | on stmt: branch $56pred, 58, 62\n", - "2023-05-15 11:07:28,713 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 58\n", - "2023-05-15 11:07:28,713 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,714 | DEBUG | ssa.py:193 | on stmt: $phi64.0 = lit_step\n", - "2023-05-15 11:07:28,714 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,715 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 62\n", - "2023-05-15 11:07:28,715 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,716 | DEBUG | ssa.py:193 | on stmt: $const62.0 = const(int, 1)\n", - "2023-05-15 11:07:28,716 | DEBUG | ssa.py:193 | on stmt: $phi64.0.1 = $const62.0\n", - "2023-05-15 11:07:28,717 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,717 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 64\n", - "2023-05-15 11:07:28,718 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,718 | DEBUG | ssa.py:193 | on stmt: $phi64.0.2 = phi(incoming_values=[Var($phi64.0, arrayobj.py:4520), Var($phi64.0.1, arrayobj.py:4520)], incoming_blocks=[58, 62])\n", - "2023-05-15 11:07:28,719 | DEBUG | ssa.py:193 | on stmt: _step = $phi64.0.2\n", - "2023-05-15 11:07:28,720 | DEBUG | ssa.py:193 | on stmt: $const68.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,720 | DEBUG | ssa.py:193 | on stmt: $70is_op.3 = lit_stop is $const68.2\n", - "2023-05-15 11:07:28,721 | DEBUG | ssa.py:193 | on stmt: bool72 = global(bool: )\n", - "2023-05-15 11:07:28,721 | DEBUG | ssa.py:193 | on stmt: $72pred = call bool72($70is_op.3, func=bool72, args=(Var($70is_op.3, arrayobj.py:4521),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,722 | DEBUG | ssa.py:193 | on stmt: branch $72pred, 74, 86\n", - "2023-05-15 11:07:28,722 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 74\n", - "2023-05-15 11:07:28,722 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,723 | DEBUG | ssa.py:193 | on stmt: _start = const(int, 0)\n", - "2023-05-15 11:07:28,723 | DEBUG | ssa.py:193 | on stmt: _stop = lit_start\n", - "2023-05-15 11:07:28,724 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,724 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 86\n", - "2023-05-15 11:07:28,725 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,725 | DEBUG | ssa.py:193 | on stmt: _start = lit_start\n", - "2023-05-15 11:07:28,726 | DEBUG | ssa.py:193 | on stmt: _stop.1 = lit_stop\n", - "2023-05-15 11:07:28,726 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,727 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:28,727 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,728 | DEBUG | ssa.py:193 | on stmt: $const98.1 = const(int, 0)\n", - "2023-05-15 11:07:28,728 | DEBUG | ssa.py:193 | on stmt: $100compare_op.2 = _step == $const98.1\n", - "2023-05-15 11:07:28,729 | DEBUG | ssa.py:193 | on stmt: bool102 = global(bool: )\n", - "2023-05-15 11:07:28,729 | DEBUG | ssa.py:193 | on stmt: $102pred = call bool102($100compare_op.2, func=bool102, args=(Var($100compare_op.2, arrayobj.py:4526),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,730 | DEBUG | ssa.py:193 | on stmt: branch $102pred, 104, 112\n", - "2023-05-15 11:07:28,730 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 104\n", - "2023-05-15 11:07:28,731 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,731 | DEBUG | ssa.py:193 | on stmt: $104load_global.0 = global(ValueError: )\n", - "2023-05-15 11:07:28,732 | DEBUG | ssa.py:193 | on stmt: $const106.1 = const(str, Maximum allowed size exceeded)\n", - "2023-05-15 11:07:28,732 | DEBUG | ssa.py:193 | on stmt: $108call_function.2 = call $104load_global.0($const106.1, func=$104load_global.0, args=[Var($const106.1, arrayobj.py:4527)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,733 | DEBUG | ssa.py:193 | on stmt: raise ('Maximum allowed size exceeded')\n", - "2023-05-15 11:07:28,733 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 112\n", - "2023-05-15 11:07:28,734 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,734 | DEBUG | ssa.py:193 | on stmt: $116binary_subtract.2 = _stop - _start\n", - "2023-05-15 11:07:28,735 | DEBUG | ssa.py:353 | find_def var='_stop' stmt=$116binary_subtract.2 = _stop - _start\n", - "2023-05-15 11:07:28,736 | DEBUG | ssa.py:384 | find_def_from_top label 112\n", - "2023-05-15 11:07:28,736 | DEBUG | ssa.py:421 | idom 96 from label 112\n", - "2023-05-15 11:07:28,737 | DEBUG | ssa.py:427 | find_def_from_bottom label 96\n", - "2023-05-15 11:07:28,737 | DEBUG | ssa.py:384 | find_def_from_top label 96\n", - "2023-05-15 11:07:28,738 | DEBUG | ssa.py:401 | insert phi node _stop.2 = phi(incoming_values=[], incoming_blocks=[]) at 96\n", - "2023-05-15 11:07:28,738 | DEBUG | ssa.py:427 | find_def_from_bottom label 74\n", - "2023-05-15 11:07:28,739 | DEBUG | ssa.py:409 | incoming_def _stop = lit_start\n", - "2023-05-15 11:07:28,739 | DEBUG | ssa.py:427 | find_def_from_bottom label 86\n", - "2023-05-15 11:07:28,740 | DEBUG | ssa.py:409 | incoming_def _stop.1 = lit_stop\n", - "2023-05-15 11:07:28,741 | DEBUG | ssa.py:199 | replaced with: $116binary_subtract.2 = _stop.2 - _start\n", - "2023-05-15 11:07:28,741 | DEBUG | ssa.py:193 | on stmt: nitems_c = $116binary_subtract.2 / _step\n", - "2023-05-15 11:07:28,741 | DEBUG | ssa.py:193 | on stmt: $124load_global.5 = global(int: )\n", - "2023-05-15 11:07:28,742 | DEBUG | ssa.py:193 | on stmt: $126load_global.6 = global(math: )\n", - "2023-05-15 11:07:28,743 | DEBUG | ssa.py:193 | on stmt: $128load_method.7 = getattr(value=$126load_global.6, attr=ceil)\n", - "2023-05-15 11:07:28,743 | DEBUG | ssa.py:193 | on stmt: $132load_attr.9 = getattr(value=nitems_c, attr=real)\n", - "2023-05-15 11:07:28,744 | DEBUG | ssa.py:193 | on stmt: $134call_method.10 = call $128load_method.7($132load_attr.9, func=$128load_method.7, args=[Var($132load_attr.9, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,744 | DEBUG | ssa.py:193 | on stmt: nitems_r = call $124load_global.5($134call_method.10, func=$124load_global.5, args=[Var($134call_method.10, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,745 | DEBUG | ssa.py:193 | on stmt: $140load_deref.12 = freevar(use_complex: False)\n", - "2023-05-15 11:07:28,745 | DEBUG | ssa.py:193 | on stmt: $const142.13 = const(bool, True)\n", - "2023-05-15 11:07:28,746 | DEBUG | ssa.py:193 | on stmt: $144is_op.14 = const(int, 0)\n", - "2023-05-15 11:07:28,746 | DEBUG | ssa.py:193 | on stmt: bool146 = global(bool: )\n", - "2023-05-15 11:07:28,746 | DEBUG | ssa.py:193 | on stmt: $146pred = call bool146($144is_op.14, func=bool146, args=(Var($144is_op.14, arrayobj.py:4533),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,747 | DEBUG | ssa.py:193 | on stmt: jump 182\n", - "2023-05-15 11:07:28,747 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:28,748 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,748 | DEBUG | ssa.py:193 | on stmt: $182load_global.0 = global(max: )\n", - "2023-05-15 11:07:28,749 | DEBUG | ssa.py:193 | on stmt: $const186.2 = const(int, 0)\n", - "2023-05-15 11:07:28,749 | DEBUG | ssa.py:193 | on stmt: nitems = call $182load_global.0(nitems_r, $const186.2, func=$182load_global.0, args=[Var(nitems_r, arrayobj.py:4530), Var($const186.2, arrayobj.py:4537)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,750 | DEBUG | ssa.py:193 | on stmt: jump 192\n", - "2023-05-15 11:07:28,750 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 192\n", - "2023-05-15 11:07:28,751 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,751 | DEBUG | ssa.py:193 | on stmt: $192load_global.0 = global(np: )\n", - "2023-05-15 11:07:28,752 | DEBUG | ssa.py:193 | on stmt: $194load_method.1 = getattr(value=$192load_global.0, attr=empty)\n", - "2023-05-15 11:07:28,752 | DEBUG | ssa.py:193 | on stmt: $198load_deref.3 = freevar(true_dtype: int64)\n", - "2023-05-15 11:07:28,753 | DEBUG | ssa.py:193 | on stmt: arr = call $194load_method.1(nitems, $198load_deref.3, func=$194load_method.1, args=[Var(nitems, arrayobj.py:4535), Var($198load_deref.3, arrayobj.py:4538)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,753 | DEBUG | ssa.py:193 | on stmt: val = _start\n", - "2023-05-15 11:07:28,754 | DEBUG | ssa.py:193 | on stmt: $208load_global.6 = global(range: )\n", - "2023-05-15 11:07:28,754 | DEBUG | ssa.py:193 | on stmt: $212call_function.8 = call $208load_global.6(nitems, func=$208load_global.6, args=[Var(nitems, arrayobj.py:4535)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,755 | DEBUG | ssa.py:193 | on stmt: $214get_iter.9 = getiter(value=$212call_function.8)\n", - "2023-05-15 11:07:28,755 | DEBUG | ssa.py:193 | on stmt: $phi216.0 = $214get_iter.9\n", - "2023-05-15 11:07:28,756 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:28,756 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 216\n", - "2023-05-15 11:07:28,757 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,757 | DEBUG | ssa.py:193 | on stmt: $216for_iter.1 = iternext(value=$phi216.0)\n", - "2023-05-15 11:07:28,758 | DEBUG | ssa.py:193 | on stmt: $216for_iter.2 = pair_first(value=$216for_iter.1)\n", - "2023-05-15 11:07:28,758 | DEBUG | ssa.py:193 | on stmt: $216for_iter.3 = pair_second(value=$216for_iter.1)\n", - "2023-05-15 11:07:28,759 | DEBUG | ssa.py:193 | on stmt: $phi218.1 = $216for_iter.2\n", - "2023-05-15 11:07:28,759 | DEBUG | ssa.py:193 | on stmt: branch $216for_iter.3, 218, 238\n", - "2023-05-15 11:07:28,760 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 218\n", - "2023-05-15 11:07:28,760 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,761 | DEBUG | ssa.py:193 | on stmt: i = $phi218.1\n", - "2023-05-15 11:07:28,761 | DEBUG | ssa.py:193 | on stmt: $226binary_multiply.5 = i * _step\n", - "2023-05-15 11:07:28,762 | DEBUG | ssa.py:193 | on stmt: $228binary_add.6 = val + $226binary_multiply.5\n", - "2023-05-15 11:07:28,762 | DEBUG | ssa.py:193 | on stmt: arr[i] = $228binary_add.6\n", - "2023-05-15 11:07:28,763 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:28,763 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 238\n", - "2023-05-15 11:07:28,764 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,764 | DEBUG | ssa.py:193 | on stmt: $240return_value.1 = cast(value=arr)\n", - "2023-05-15 11:07:28,765 | DEBUG | ssa.py:193 | on stmt: return $240return_value.1\n", - "2023-05-15 11:07:28,765 | DEBUG | ssa.py:63 | Fix SSA violator on var _start\n", - "2023-05-15 11:07:28,766 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:28,766 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,767 | DEBUG | ssa.py:193 | on stmt: start = arg(0, name=start)\n", - "2023-05-15 11:07:28,767 | DEBUG | ssa.py:193 | on stmt: stop = arg(1, name=stop)\n", - "2023-05-15 11:07:28,768 | DEBUG | ssa.py:193 | on stmt: step = arg(2, name=step)\n", - "2023-05-15 11:07:28,768 | DEBUG | ssa.py:193 | on stmt: dtype = arg(3, name=dtype)\n", - "2023-05-15 11:07:28,769 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(start_value: None)\n", - "2023-05-15 11:07:28,770 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(NoneType, None)\n", - "2023-05-15 11:07:28,770 | DEBUG | ssa.py:193 | on stmt: $6is_op.2 = const(int, 0)\n", - "2023-05-15 11:07:28,771 | DEBUG | ssa.py:193 | on stmt: bool8 = global(bool: )\n", - "2023-05-15 11:07:28,771 | DEBUG | ssa.py:193 | on stmt: $8pred = call bool8($6is_op.2, func=bool8, args=(Var($6is_op.2, arrayobj.py:4516),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,772 | DEBUG | ssa.py:193 | on stmt: jump 14\n", - "2023-05-15 11:07:28,772 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 14\n", - "2023-05-15 11:07:28,773 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,774 | DEBUG | ssa.py:193 | on stmt: $phi16.0 = start\n", - "2023-05-15 11:07:28,774 | DEBUG | ssa.py:193 | on stmt: jump 16\n", - "2023-05-15 11:07:28,775 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 16\n", - "2023-05-15 11:07:28,775 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,776 | DEBUG | ssa.py:193 | on stmt: lit_start = $phi16.0\n", - "2023-05-15 11:07:28,777 | DEBUG | ssa.py:193 | on stmt: $18load_deref.1 = freevar(stop_value: None)\n", - "2023-05-15 11:07:28,777 | DEBUG | ssa.py:193 | on stmt: $const20.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,778 | DEBUG | ssa.py:193 | on stmt: $22is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,778 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:28,779 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22is_op.3, func=bool24, args=(Var($22is_op.3, arrayobj.py:4517),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,779 | DEBUG | ssa.py:193 | on stmt: jump 30\n", - "2023-05-15 11:07:28,780 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 30\n", - "2023-05-15 11:07:28,780 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,781 | DEBUG | ssa.py:193 | on stmt: $phi32.0 = stop\n", - "2023-05-15 11:07:28,781 | DEBUG | ssa.py:193 | on stmt: jump 32\n", - "2023-05-15 11:07:28,782 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 32\n", - "2023-05-15 11:07:28,782 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,783 | DEBUG | ssa.py:193 | on stmt: lit_stop = $phi32.0\n", - "2023-05-15 11:07:28,783 | DEBUG | ssa.py:193 | on stmt: $34load_deref.1 = freevar(step_value: None)\n", - "2023-05-15 11:07:28,784 | DEBUG | ssa.py:193 | on stmt: $const36.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,784 | DEBUG | ssa.py:193 | on stmt: $38is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,785 | DEBUG | ssa.py:193 | on stmt: bool40 = global(bool: )\n", - "2023-05-15 11:07:28,786 | DEBUG | ssa.py:193 | on stmt: $40pred = call bool40($38is_op.3, func=bool40, args=(Var($38is_op.3, arrayobj.py:4518),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,786 | DEBUG | ssa.py:193 | on stmt: jump 46\n", - "2023-05-15 11:07:28,787 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:28,787 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,788 | DEBUG | ssa.py:193 | on stmt: $phi48.0 = step\n", - "2023-05-15 11:07:28,788 | DEBUG | ssa.py:193 | on stmt: jump 48\n", - "2023-05-15 11:07:28,789 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:28,797 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,805 | DEBUG | ssa.py:193 | on stmt: lit_step = $phi48.0\n", - "2023-05-15 11:07:28,812 | DEBUG | ssa.py:193 | on stmt: $const52.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,816 | DEBUG | ssa.py:193 | on stmt: $54is_op.3 = lit_step is not $const52.2\n", - "2023-05-15 11:07:28,818 | DEBUG | ssa.py:193 | on stmt: bool56 = global(bool: )\n", - "2023-05-15 11:07:28,818 | DEBUG | ssa.py:193 | on stmt: $56pred = call bool56($54is_op.3, func=bool56, args=(Var($54is_op.3, arrayobj.py:4520),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,822 | DEBUG | ssa.py:193 | on stmt: branch $56pred, 58, 62\n", - "2023-05-15 11:07:28,829 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 58\n", - "2023-05-15 11:07:28,829 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,830 | DEBUG | ssa.py:193 | on stmt: $phi64.0 = lit_step\n", - "2023-05-15 11:07:28,830 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,831 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 62\n", - "2023-05-15 11:07:28,832 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,832 | DEBUG | ssa.py:193 | on stmt: $const62.0 = const(int, 1)\n", - "2023-05-15 11:07:28,833 | DEBUG | ssa.py:193 | on stmt: $phi64.0.1 = $const62.0\n", - "2023-05-15 11:07:28,834 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,834 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 64\n", - "2023-05-15 11:07:28,835 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,835 | DEBUG | ssa.py:193 | on stmt: $phi64.0.2 = phi(incoming_values=[Var($phi64.0, arrayobj.py:4520), Var($phi64.0.1, arrayobj.py:4520)], incoming_blocks=[58, 62])\n", - "2023-05-15 11:07:28,836 | DEBUG | ssa.py:193 | on stmt: _step = $phi64.0.2\n", - "2023-05-15 11:07:28,836 | DEBUG | ssa.py:193 | on stmt: $const68.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,837 | DEBUG | ssa.py:193 | on stmt: $70is_op.3 = lit_stop is $const68.2\n", - "2023-05-15 11:07:28,837 | DEBUG | ssa.py:193 | on stmt: bool72 = global(bool: )\n", - "2023-05-15 11:07:28,838 | DEBUG | ssa.py:193 | on stmt: $72pred = call bool72($70is_op.3, func=bool72, args=(Var($70is_op.3, arrayobj.py:4521),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,838 | DEBUG | ssa.py:193 | on stmt: branch $72pred, 74, 86\n", - "2023-05-15 11:07:28,839 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 74\n", - "2023-05-15 11:07:28,839 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,840 | DEBUG | ssa.py:193 | on stmt: _start = const(int, 0)\n", - "2023-05-15 11:07:28,840 | DEBUG | ssa.py:269 | first assign: _start\n", - "2023-05-15 11:07:28,841 | DEBUG | ssa.py:199 | replaced with: _start = const(int, 0)\n", - "2023-05-15 11:07:28,842 | DEBUG | ssa.py:193 | on stmt: _stop = lit_start\n", - "2023-05-15 11:07:28,842 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,843 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 86\n", - "2023-05-15 11:07:28,843 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,844 | DEBUG | ssa.py:193 | on stmt: _start = lit_start\n", - "2023-05-15 11:07:28,844 | DEBUG | ssa.py:199 | replaced with: _start.1 = lit_start\n", - "2023-05-15 11:07:28,845 | DEBUG | ssa.py:193 | on stmt: _stop.1 = lit_stop\n", - "2023-05-15 11:07:28,845 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,846 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:28,847 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,847 | DEBUG | ssa.py:193 | on stmt: _stop.2 = phi(incoming_values=[Var(_stop, arrayobj.py:4522), Var(_stop.1, arrayobj.py:4524)], incoming_blocks=[74, 86])\n", - "2023-05-15 11:07:28,848 | DEBUG | ssa.py:193 | on stmt: $const98.1 = const(int, 0)\n", - "2023-05-15 11:07:28,849 | DEBUG | ssa.py:193 | on stmt: $100compare_op.2 = _step == $const98.1\n", - "2023-05-15 11:07:28,849 | DEBUG | ssa.py:193 | on stmt: bool102 = global(bool: )\n", - "2023-05-15 11:07:28,850 | DEBUG | ssa.py:193 | on stmt: $102pred = call bool102($100compare_op.2, func=bool102, args=(Var($100compare_op.2, arrayobj.py:4526),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,850 | DEBUG | ssa.py:193 | on stmt: branch $102pred, 104, 112\n", - "2023-05-15 11:07:28,851 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 104\n", - "2023-05-15 11:07:28,851 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,852 | DEBUG | ssa.py:193 | on stmt: $104load_global.0 = global(ValueError: )\n", - "2023-05-15 11:07:28,855 | DEBUG | ssa.py:193 | on stmt: $const106.1 = const(str, Maximum allowed size exceeded)\n", - "2023-05-15 11:07:28,860 | DEBUG | ssa.py:193 | on stmt: $108call_function.2 = call $104load_global.0($const106.1, func=$104load_global.0, args=[Var($const106.1, arrayobj.py:4527)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,861 | DEBUG | ssa.py:193 | on stmt: raise ('Maximum allowed size exceeded')\n", - "2023-05-15 11:07:28,861 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 112\n", - "2023-05-15 11:07:28,862 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,863 | DEBUG | ssa.py:193 | on stmt: $116binary_subtract.2 = _stop.2 - _start\n", - "2023-05-15 11:07:28,864 | DEBUG | ssa.py:193 | on stmt: nitems_c = $116binary_subtract.2 / _step\n", - "2023-05-15 11:07:28,865 | DEBUG | ssa.py:193 | on stmt: $124load_global.5 = global(int: )\n", - "2023-05-15 11:07:28,865 | DEBUG | ssa.py:193 | on stmt: $126load_global.6 = global(math: )\n", - "2023-05-15 11:07:28,867 | DEBUG | ssa.py:193 | on stmt: $128load_method.7 = getattr(value=$126load_global.6, attr=ceil)\n", - "2023-05-15 11:07:28,867 | DEBUG | ssa.py:193 | on stmt: $132load_attr.9 = getattr(value=nitems_c, attr=real)\n", - "2023-05-15 11:07:28,868 | DEBUG | ssa.py:193 | on stmt: $134call_method.10 = call $128load_method.7($132load_attr.9, func=$128load_method.7, args=[Var($132load_attr.9, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,868 | DEBUG | ssa.py:193 | on stmt: nitems_r = call $124load_global.5($134call_method.10, func=$124load_global.5, args=[Var($134call_method.10, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,870 | DEBUG | ssa.py:193 | on stmt: $140load_deref.12 = freevar(use_complex: False)\n", - "2023-05-15 11:07:28,870 | DEBUG | ssa.py:193 | on stmt: $const142.13 = const(bool, True)\n", - "2023-05-15 11:07:28,871 | DEBUG | ssa.py:193 | on stmt: $144is_op.14 = const(int, 0)\n", - "2023-05-15 11:07:28,871 | DEBUG | ssa.py:193 | on stmt: bool146 = global(bool: )\n", - "2023-05-15 11:07:28,873 | DEBUG | ssa.py:193 | on stmt: $146pred = call bool146($144is_op.14, func=bool146, args=(Var($144is_op.14, arrayobj.py:4533),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,873 | DEBUG | ssa.py:193 | on stmt: jump 182\n", - "2023-05-15 11:07:28,874 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:28,875 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,875 | DEBUG | ssa.py:193 | on stmt: $182load_global.0 = global(max: )\n", - "2023-05-15 11:07:28,881 | DEBUG | ssa.py:193 | on stmt: $const186.2 = const(int, 0)\n", - "2023-05-15 11:07:28,882 | DEBUG | ssa.py:193 | on stmt: nitems = call $182load_global.0(nitems_r, $const186.2, func=$182load_global.0, args=[Var(nitems_r, arrayobj.py:4530), Var($const186.2, arrayobj.py:4537)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,883 | DEBUG | ssa.py:193 | on stmt: jump 192\n", - "2023-05-15 11:07:28,884 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 192\n", - "2023-05-15 11:07:28,885 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,885 | DEBUG | ssa.py:193 | on stmt: $192load_global.0 = global(np: )\n", - "2023-05-15 11:07:28,886 | DEBUG | ssa.py:193 | on stmt: $194load_method.1 = getattr(value=$192load_global.0, attr=empty)\n", - "2023-05-15 11:07:28,887 | DEBUG | ssa.py:193 | on stmt: $198load_deref.3 = freevar(true_dtype: int64)\n", - "2023-05-15 11:07:28,887 | DEBUG | ssa.py:193 | on stmt: arr = call $194load_method.1(nitems, $198load_deref.3, func=$194load_method.1, args=[Var(nitems, arrayobj.py:4535), Var($198load_deref.3, arrayobj.py:4538)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,888 | DEBUG | ssa.py:193 | on stmt: val = _start\n", - "2023-05-15 11:07:28,888 | DEBUG | ssa.py:193 | on stmt: $208load_global.6 = global(range: )\n", - "2023-05-15 11:07:28,889 | DEBUG | ssa.py:193 | on stmt: $212call_function.8 = call $208load_global.6(nitems, func=$208load_global.6, args=[Var(nitems, arrayobj.py:4535)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,890 | DEBUG | ssa.py:193 | on stmt: $214get_iter.9 = getiter(value=$212call_function.8)\n", - "2023-05-15 11:07:28,890 | DEBUG | ssa.py:193 | on stmt: $phi216.0 = $214get_iter.9\n", - "2023-05-15 11:07:28,891 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:28,891 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 216\n", - "2023-05-15 11:07:28,892 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,892 | DEBUG | ssa.py:193 | on stmt: $216for_iter.1 = iternext(value=$phi216.0)\n", - "2023-05-15 11:07:28,893 | DEBUG | ssa.py:193 | on stmt: $216for_iter.2 = pair_first(value=$216for_iter.1)\n", - "2023-05-15 11:07:28,893 | DEBUG | ssa.py:193 | on stmt: $216for_iter.3 = pair_second(value=$216for_iter.1)\n", - "2023-05-15 11:07:28,894 | DEBUG | ssa.py:193 | on stmt: $phi218.1 = $216for_iter.2\n", - "2023-05-15 11:07:28,895 | DEBUG | ssa.py:193 | on stmt: branch $216for_iter.3, 218, 238\n", - "2023-05-15 11:07:28,895 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 218\n", - "2023-05-15 11:07:28,896 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,896 | DEBUG | ssa.py:193 | on stmt: i = $phi218.1\n", - "2023-05-15 11:07:28,897 | DEBUG | ssa.py:193 | on stmt: $226binary_multiply.5 = i * _step\n", - "2023-05-15 11:07:28,897 | DEBUG | ssa.py:193 | on stmt: $228binary_add.6 = val + $226binary_multiply.5\n", - "2023-05-15 11:07:28,898 | DEBUG | ssa.py:193 | on stmt: arr[i] = $228binary_add.6\n", - "2023-05-15 11:07:28,898 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:28,899 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 238\n", - "2023-05-15 11:07:28,900 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,900 | DEBUG | ssa.py:193 | on stmt: $240return_value.1 = cast(value=arr)\n", - "2023-05-15 11:07:28,901 | DEBUG | ssa.py:193 | on stmt: return $240return_value.1\n", - "2023-05-15 11:07:28,901 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {74: [],\n", - " 86: []})\n", - "2023-05-15 11:07:28,902 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:28,902 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,903 | DEBUG | ssa.py:193 | on stmt: start = arg(0, name=start)\n", - "2023-05-15 11:07:28,904 | DEBUG | ssa.py:193 | on stmt: stop = arg(1, name=stop)\n", - "2023-05-15 11:07:28,904 | DEBUG | ssa.py:193 | on stmt: step = arg(2, name=step)\n", - "2023-05-15 11:07:28,905 | DEBUG | ssa.py:193 | on stmt: dtype = arg(3, name=dtype)\n", - "2023-05-15 11:07:28,905 | DEBUG | ssa.py:193 | on stmt: $2load_deref.0 = freevar(start_value: None)\n", - "2023-05-15 11:07:28,906 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(NoneType, None)\n", - "2023-05-15 11:07:28,906 | DEBUG | ssa.py:193 | on stmt: $6is_op.2 = const(int, 0)\n", - "2023-05-15 11:07:28,907 | DEBUG | ssa.py:193 | on stmt: bool8 = global(bool: )\n", - "2023-05-15 11:07:28,908 | DEBUG | ssa.py:193 | on stmt: $8pred = call bool8($6is_op.2, func=bool8, args=(Var($6is_op.2, arrayobj.py:4516),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,908 | DEBUG | ssa.py:193 | on stmt: jump 14\n", - "2023-05-15 11:07:28,909 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 14\n", - "2023-05-15 11:07:28,909 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,910 | DEBUG | ssa.py:193 | on stmt: $phi16.0 = start\n", - "2023-05-15 11:07:28,910 | DEBUG | ssa.py:193 | on stmt: jump 16\n", - "2023-05-15 11:07:28,911 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 16\n", - "2023-05-15 11:07:28,912 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,912 | DEBUG | ssa.py:193 | on stmt: lit_start = $phi16.0\n", - "2023-05-15 11:07:28,913 | DEBUG | ssa.py:193 | on stmt: $18load_deref.1 = freevar(stop_value: None)\n", - "2023-05-15 11:07:28,913 | DEBUG | ssa.py:193 | on stmt: $const20.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,914 | DEBUG | ssa.py:193 | on stmt: $22is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,915 | DEBUG | ssa.py:193 | on stmt: bool24 = global(bool: )\n", - "2023-05-15 11:07:28,915 | DEBUG | ssa.py:193 | on stmt: $24pred = call bool24($22is_op.3, func=bool24, args=(Var($22is_op.3, arrayobj.py:4517),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,916 | DEBUG | ssa.py:193 | on stmt: jump 30\n", - "2023-05-15 11:07:28,917 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 30\n", - "2023-05-15 11:07:28,917 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,918 | DEBUG | ssa.py:193 | on stmt: $phi32.0 = stop\n", - "2023-05-15 11:07:28,921 | DEBUG | ssa.py:193 | on stmt: jump 32\n", - "2023-05-15 11:07:28,923 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 32\n", - "2023-05-15 11:07:28,924 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,925 | DEBUG | ssa.py:193 | on stmt: lit_stop = $phi32.0\n", - "2023-05-15 11:07:28,925 | DEBUG | ssa.py:193 | on stmt: $34load_deref.1 = freevar(step_value: None)\n", - "2023-05-15 11:07:28,927 | DEBUG | ssa.py:193 | on stmt: $const36.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,929 | DEBUG | ssa.py:193 | on stmt: $38is_op.3 = const(int, 0)\n", - "2023-05-15 11:07:28,929 | DEBUG | ssa.py:193 | on stmt: bool40 = global(bool: )\n", - "2023-05-15 11:07:28,933 | DEBUG | ssa.py:193 | on stmt: $40pred = call bool40($38is_op.3, func=bool40, args=(Var($38is_op.3, arrayobj.py:4518),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,934 | DEBUG | ssa.py:193 | on stmt: jump 46\n", - "2023-05-15 11:07:28,935 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:28,938 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,938 | DEBUG | ssa.py:193 | on stmt: $phi48.0 = step\n", - "2023-05-15 11:07:28,939 | DEBUG | ssa.py:193 | on stmt: jump 48\n", - "2023-05-15 11:07:28,940 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:28,940 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,941 | DEBUG | ssa.py:193 | on stmt: lit_step = $phi48.0\n", - "2023-05-15 11:07:28,941 | DEBUG | ssa.py:193 | on stmt: $const52.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,943 | DEBUG | ssa.py:193 | on stmt: $54is_op.3 = lit_step is not $const52.2\n", - "2023-05-15 11:07:28,944 | DEBUG | ssa.py:193 | on stmt: bool56 = global(bool: )\n", - "2023-05-15 11:07:28,944 | DEBUG | ssa.py:193 | on stmt: $56pred = call bool56($54is_op.3, func=bool56, args=(Var($54is_op.3, arrayobj.py:4520),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,945 | DEBUG | ssa.py:193 | on stmt: branch $56pred, 58, 62\n", - "2023-05-15 11:07:28,945 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 58\n", - "2023-05-15 11:07:28,945 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,946 | DEBUG | ssa.py:193 | on stmt: $phi64.0 = lit_step\n", - "2023-05-15 11:07:28,946 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,947 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 62\n", - "2023-05-15 11:07:28,948 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,949 | DEBUG | ssa.py:193 | on stmt: $const62.0 = const(int, 1)\n", - "2023-05-15 11:07:28,950 | DEBUG | ssa.py:193 | on stmt: $phi64.0.1 = $const62.0\n", - "2023-05-15 11:07:28,950 | DEBUG | ssa.py:193 | on stmt: jump 64\n", - "2023-05-15 11:07:28,951 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 64\n", - "2023-05-15 11:07:28,951 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,951 | DEBUG | ssa.py:193 | on stmt: $phi64.0.2 = phi(incoming_values=[Var($phi64.0, arrayobj.py:4520), Var($phi64.0.1, arrayobj.py:4520)], incoming_blocks=[58, 62])\n", - "2023-05-15 11:07:28,952 | DEBUG | ssa.py:193 | on stmt: _step = $phi64.0.2\n", - "2023-05-15 11:07:28,952 | DEBUG | ssa.py:193 | on stmt: $const68.2 = const(NoneType, None)\n", - "2023-05-15 11:07:28,953 | DEBUG | ssa.py:193 | on stmt: $70is_op.3 = lit_stop is $const68.2\n", - "2023-05-15 11:07:28,954 | DEBUG | ssa.py:193 | on stmt: bool72 = global(bool: )\n", - "2023-05-15 11:07:28,954 | DEBUG | ssa.py:193 | on stmt: $72pred = call bool72($70is_op.3, func=bool72, args=(Var($70is_op.3, arrayobj.py:4521),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,956 | DEBUG | ssa.py:193 | on stmt: branch $72pred, 74, 86\n", - "2023-05-15 11:07:28,958 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 74\n", - "2023-05-15 11:07:28,959 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,959 | DEBUG | ssa.py:193 | on stmt: _start = const(int, 0)\n", - "2023-05-15 11:07:28,960 | DEBUG | ssa.py:193 | on stmt: _stop = lit_start\n", - "2023-05-15 11:07:28,961 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,961 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 86\n", - "2023-05-15 11:07:28,962 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,962 | DEBUG | ssa.py:193 | on stmt: _start.1 = lit_start\n", - "2023-05-15 11:07:28,964 | DEBUG | ssa.py:193 | on stmt: _stop.1 = lit_stop\n", - "2023-05-15 11:07:28,964 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:28,965 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:28,965 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,966 | DEBUG | ssa.py:193 | on stmt: _stop.2 = phi(incoming_values=[Var(_stop, arrayobj.py:4522), Var(_stop.1, arrayobj.py:4524)], incoming_blocks=[74, 86])\n", - "2023-05-15 11:07:28,966 | DEBUG | ssa.py:193 | on stmt: $const98.1 = const(int, 0)\n", - "2023-05-15 11:07:28,967 | DEBUG | ssa.py:193 | on stmt: $100compare_op.2 = _step == $const98.1\n", - "2023-05-15 11:07:28,967 | DEBUG | ssa.py:193 | on stmt: bool102 = global(bool: )\n", - "2023-05-15 11:07:28,968 | DEBUG | ssa.py:193 | on stmt: $102pred = call bool102($100compare_op.2, func=bool102, args=(Var($100compare_op.2, arrayobj.py:4526),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,968 | DEBUG | ssa.py:193 | on stmt: branch $102pred, 104, 112\n", - "2023-05-15 11:07:28,970 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 104\n", - "2023-05-15 11:07:28,970 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,971 | DEBUG | ssa.py:193 | on stmt: $104load_global.0 = global(ValueError: )\n", - "2023-05-15 11:07:28,971 | DEBUG | ssa.py:193 | on stmt: $const106.1 = const(str, Maximum allowed size exceeded)\n", - "2023-05-15 11:07:28,972 | DEBUG | ssa.py:193 | on stmt: $108call_function.2 = call $104load_global.0($const106.1, func=$104load_global.0, args=[Var($const106.1, arrayobj.py:4527)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,973 | DEBUG | ssa.py:193 | on stmt: raise ('Maximum allowed size exceeded')\n", - "2023-05-15 11:07:28,974 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 112\n", - "2023-05-15 11:07:28,974 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,976 | DEBUG | ssa.py:193 | on stmt: $116binary_subtract.2 = _stop.2 - _start\n", - "2023-05-15 11:07:28,976 | DEBUG | ssa.py:353 | find_def var='_start' stmt=$116binary_subtract.2 = _stop.2 - _start\n", - "2023-05-15 11:07:28,977 | DEBUG | ssa.py:384 | find_def_from_top label 112\n", - "2023-05-15 11:07:28,977 | DEBUG | ssa.py:421 | idom 96 from label 112\n", - "2023-05-15 11:07:28,978 | DEBUG | ssa.py:427 | find_def_from_bottom label 96\n", - "2023-05-15 11:07:28,979 | DEBUG | ssa.py:384 | find_def_from_top label 96\n", - "2023-05-15 11:07:28,980 | DEBUG | ssa.py:401 | insert phi node _start.2 = phi(incoming_values=[], incoming_blocks=[]) at 96\n", - "2023-05-15 11:07:28,980 | DEBUG | ssa.py:427 | find_def_from_bottom label 74\n", - "2023-05-15 11:07:28,981 | DEBUG | ssa.py:409 | incoming_def _start = const(int, 0)\n", - "2023-05-15 11:07:28,982 | DEBUG | ssa.py:427 | find_def_from_bottom label 86\n", - "2023-05-15 11:07:28,983 | DEBUG | ssa.py:409 | incoming_def _start.1 = lit_start\n", - "2023-05-15 11:07:28,983 | DEBUG | ssa.py:199 | replaced with: $116binary_subtract.2 = _stop.2 - _start.2\n", - "2023-05-15 11:07:28,984 | DEBUG | ssa.py:193 | on stmt: nitems_c = $116binary_subtract.2 / _step\n", - "2023-05-15 11:07:28,984 | DEBUG | ssa.py:193 | on stmt: $124load_global.5 = global(int: )\n", - "2023-05-15 11:07:28,985 | DEBUG | ssa.py:193 | on stmt: $126load_global.6 = global(math: )\n", - "2023-05-15 11:07:28,985 | DEBUG | ssa.py:193 | on stmt: $128load_method.7 = getattr(value=$126load_global.6, attr=ceil)\n", - "2023-05-15 11:07:28,986 | DEBUG | ssa.py:193 | on stmt: $132load_attr.9 = getattr(value=nitems_c, attr=real)\n", - "2023-05-15 11:07:28,986 | DEBUG | ssa.py:193 | on stmt: $134call_method.10 = call $128load_method.7($132load_attr.9, func=$128load_method.7, args=[Var($132load_attr.9, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,987 | DEBUG | ssa.py:193 | on stmt: nitems_r = call $124load_global.5($134call_method.10, func=$124load_global.5, args=[Var($134call_method.10, arrayobj.py:4530)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,987 | DEBUG | ssa.py:193 | on stmt: $140load_deref.12 = freevar(use_complex: False)\n", - "2023-05-15 11:07:28,988 | DEBUG | ssa.py:193 | on stmt: $const142.13 = const(bool, True)\n", - "2023-05-15 11:07:28,988 | DEBUG | ssa.py:193 | on stmt: $144is_op.14 = const(int, 0)\n", - "2023-05-15 11:07:28,989 | DEBUG | ssa.py:193 | on stmt: bool146 = global(bool: )\n", - "2023-05-15 11:07:28,989 | DEBUG | ssa.py:193 | on stmt: $146pred = call bool146($144is_op.14, func=bool146, args=(Var($144is_op.14, arrayobj.py:4533),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,989 | DEBUG | ssa.py:193 | on stmt: jump 182\n", - "2023-05-15 11:07:28,990 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 182\n", - "2023-05-15 11:07:28,990 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,991 | DEBUG | ssa.py:193 | on stmt: $182load_global.0 = global(max: )\n", - "2023-05-15 11:07:28,991 | DEBUG | ssa.py:193 | on stmt: $const186.2 = const(int, 0)\n", - "2023-05-15 11:07:28,992 | DEBUG | ssa.py:193 | on stmt: nitems = call $182load_global.0(nitems_r, $const186.2, func=$182load_global.0, args=[Var(nitems_r, arrayobj.py:4530), Var($const186.2, arrayobj.py:4537)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,992 | DEBUG | ssa.py:193 | on stmt: jump 192\n", - "2023-05-15 11:07:28,992 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 192\n", - "2023-05-15 11:07:28,993 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:28,993 | DEBUG | ssa.py:193 | on stmt: $192load_global.0 = global(np: )\n", - "2023-05-15 11:07:28,995 | DEBUG | ssa.py:193 | on stmt: $194load_method.1 = getattr(value=$192load_global.0, attr=empty)\n", - "2023-05-15 11:07:28,996 | DEBUG | ssa.py:193 | on stmt: $198load_deref.3 = freevar(true_dtype: int64)\n", - "2023-05-15 11:07:28,996 | DEBUG | ssa.py:193 | on stmt: arr = call $194load_method.1(nitems, $198load_deref.3, func=$194load_method.1, args=[Var(nitems, arrayobj.py:4535), Var($198load_deref.3, arrayobj.py:4538)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:28,997 | DEBUG | ssa.py:193 | on stmt: val = _start\n", - "2023-05-15 11:07:28,997 | DEBUG | ssa.py:353 | find_def var='_start' stmt=val = _start\n", - "2023-05-15 11:07:28,998 | DEBUG | ssa.py:384 | find_def_from_top label 192\n", - "2023-05-15 11:07:28,999 | DEBUG | ssa.py:421 | idom 182 from label 192\n", - "2023-05-15 11:07:28,999 | DEBUG | ssa.py:427 | find_def_from_bottom label 182\n", - "2023-05-15 11:07:29,000 | DEBUG | ssa.py:384 | find_def_from_top label 182\n", - "2023-05-15 11:07:29,000 | DEBUG | ssa.py:421 | idom 112 from label 182\n", - "2023-05-15 11:07:29,001 | DEBUG | ssa.py:427 | find_def_from_bottom label 112\n", - "2023-05-15 11:07:29,002 | DEBUG | ssa.py:384 | find_def_from_top label 112\n", - "2023-05-15 11:07:29,002 | DEBUG | ssa.py:421 | idom 96 from label 112\n", - "2023-05-15 11:07:29,005 | DEBUG | ssa.py:427 | find_def_from_bottom label 96\n", - "2023-05-15 11:07:29,005 | DEBUG | ssa.py:199 | replaced with: val = _start.2\n", - "2023-05-15 11:07:29,006 | DEBUG | ssa.py:193 | on stmt: $208load_global.6 = global(range: )\n", - "2023-05-15 11:07:29,007 | DEBUG | ssa.py:193 | on stmt: $212call_function.8 = call $208load_global.6(nitems, func=$208load_global.6, args=[Var(nitems, arrayobj.py:4535)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,007 | DEBUG | ssa.py:193 | on stmt: $214get_iter.9 = getiter(value=$212call_function.8)\n", - "2023-05-15 11:07:29,008 | DEBUG | ssa.py:193 | on stmt: $phi216.0 = $214get_iter.9\n", - "2023-05-15 11:07:29,018 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:29,020 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 216\n", - "2023-05-15 11:07:29,021 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,021 | DEBUG | ssa.py:193 | on stmt: $216for_iter.1 = iternext(value=$phi216.0)\n", - "2023-05-15 11:07:29,023 | DEBUG | ssa.py:193 | on stmt: $216for_iter.2 = pair_first(value=$216for_iter.1)\n", - "2023-05-15 11:07:29,023 | DEBUG | ssa.py:193 | on stmt: $216for_iter.3 = pair_second(value=$216for_iter.1)\n", - "2023-05-15 11:07:29,024 | DEBUG | ssa.py:193 | on stmt: $phi218.1 = $216for_iter.2\n", - "2023-05-15 11:07:29,024 | DEBUG | ssa.py:193 | on stmt: branch $216for_iter.3, 218, 238\n", - "2023-05-15 11:07:29,025 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 218\n", - "2023-05-15 11:07:29,028 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,029 | DEBUG | ssa.py:193 | on stmt: i = $phi218.1\n", - "2023-05-15 11:07:29,029 | DEBUG | ssa.py:193 | on stmt: $226binary_multiply.5 = i * _step\n", - "2023-05-15 11:07:29,031 | DEBUG | ssa.py:193 | on stmt: $228binary_add.6 = val + $226binary_multiply.5\n", - "2023-05-15 11:07:29,032 | DEBUG | ssa.py:193 | on stmt: arr[i] = $228binary_add.6\n", - "2023-05-15 11:07:29,039 | DEBUG | ssa.py:193 | on stmt: jump 216\n", - "2023-05-15 11:07:29,048 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 238\n", - "2023-05-15 11:07:29,050 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,051 | DEBUG | ssa.py:193 | on stmt: $240return_value.1 = cast(value=arr)\n", - "2023-05-15 11:07:29,055 | DEBUG | ssa.py:193 | on stmt: return $240return_value.1\n", - "2023-05-15 11:07:29,081 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4101)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=4101)\n", - " 4\tLOAD_FAST(arg=0, lineno=4101)\n", - " 6\tLOAD_FAST(arg=1, lineno=4101)\n", - " 8\tLOAD_DEREF(arg=0, lineno=4101)\n", - " 10\tCALL_FUNCTION(arg=3, lineno=4101)\n", - " 12\tRETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:29,088 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:29,090 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,091 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4101)\n", - "2023-05-15 11:07:29,092 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,093 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=4101)\n", - "2023-05-15 11:07:29,094 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,095 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=4101)\n", - "2023-05-15 11:07:29,096 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:29,097 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=1, lineno=4101)\n", - "2023-05-15 11:07:29,098 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1']\n", - "2023-05-15 11:07:29,099 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_DEREF(arg=0, lineno=4101)\n", - "2023-05-15 11:07:29,100 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2']\n", - "2023-05-15 11:07:29,106 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_FUNCTION(arg=3, lineno=4101)\n", - "2023-05-15 11:07:29,107 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2', '$8load_deref.3']\n", - "2023-05-15 11:07:29,107 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=RETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:29,109 | DEBUG | byteflow.py:279 | stack ['$10call_function.4']\n", - "2023-05-15 11:07:29,109 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:29,110 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:29,111 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:29,111 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:29,113 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:29,113 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:29,114 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:29,115 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:29,116 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:29,117 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$shape4.1'}), (6, {'res': '$dtype6.2'}), (8, {'res': '$8load_deref.3'}), (10, {'func': '$2load_global.0', 'args': ['$shape4.1', '$dtype6.2', '$8load_deref.3'], 'res': '$10call_function.4'}), (12, {'retval': '$10call_function.4', 'castval': '$12return_value.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:29,118 | DEBUG | interpreter.py:1342 | label 0:\n", - " shape = arg(0, name=shape) ['shape']\n", - " dtype = arg(1, name=dtype) ['dtype']\n", - " $2load_global.0 = global(numpy_empty_nd: ) ['$2load_global.0']\n", - " $8load_deref.3 = freevar(retty: array(int64, 1d, C)) ['$8load_deref.3']\n", - " $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None) ['$10call_function.4', '$2load_global.0', '$8load_deref.3', 'dtype', 'shape']\n", - " $12return_value.5 = cast(value=$10call_function.4) ['$10call_function.4', '$12return_value.5']\n", - " return $12return_value.5 ['$12return_value.5']\n", - "\n", - "2023-05-15 11:07:29,127 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:29,128 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,128 | DEBUG | ssa.py:193 | on stmt: shape = arg(0, name=shape)\n", - "2023-05-15 11:07:29,129 | DEBUG | ssa.py:193 | on stmt: dtype = arg(1, name=dtype)\n", - "2023-05-15 11:07:29,129 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(numpy_empty_nd: )\n", - "2023-05-15 11:07:29,130 | DEBUG | ssa.py:193 | on stmt: $8load_deref.3 = freevar(retty: array(int64, 1d, C))\n", - "2023-05-15 11:07:29,130 | DEBUG | ssa.py:193 | on stmt: $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,131 | DEBUG | ssa.py:193 | on stmt: $12return_value.5 = cast(value=$10call_function.4)\n", - "2023-05-15 11:07:29,132 | DEBUG | ssa.py:193 | on stmt: return $12return_value.5\n", - "2023-05-15 11:07:29,133 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10call_function.4': [],\n", - " '$12return_value.5': [],\n", - " '$2load_global.0': [],\n", - " '$8load_deref.3': [],\n", - " 'dtype': [],\n", - " 'shape': []})\n", - "2023-05-15 11:07:29,134 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:29,417 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=92)\n", - " 2\tLOAD_FAST(arg=2, lineno=92)\n", - " 4\tLOAD_CONST(arg=1, lineno=92)\n", - " 6\tCOMPARE_OP(arg=5, lineno=92)\n", - " 8\tPOP_JUMP_IF_TRUE(arg=8, lineno=92)\n", - " 10\tLOAD_ASSERTION_ERROR(arg=None, lineno=92)\n", - " 12\tRAISE_VARARGS(arg=1, lineno=92)\n", - "> 14\tLOAD_FAST(arg=3, lineno=93)\n", - " 16\tLOAD_FAST(arg=2, lineno=93)\n", - " 18\tCOMPARE_OP(arg=4, lineno=93)\n", - " 20\tPOP_JUMP_IF_TRUE(arg=14, lineno=93)\n", - " 22\tLOAD_ASSERTION_ERROR(arg=None, lineno=93)\n", - " 24\tRAISE_VARARGS(arg=1, lineno=93)\n", - "> 26\tLOAD_FAST(arg=2, lineno=95)\n", - " 28\tLOAD_FAST(arg=3, lineno=95)\n", - " 30\tBINARY_ADD(arg=None, lineno=95)\n", - " 32\tLOAD_CONST(arg=2, lineno=95)\n", - " 34\tBINARY_RSHIFT(arg=None, lineno=95)\n", - " 36\tSTORE_FAST(arg=4, lineno=95)\n", - " 38\tLOAD_DEREF(arg=1, lineno=102)\n", - " 40\tLOAD_DEREF(arg=0, lineno=102)\n", - " 42\tLOAD_FAST(arg=0, lineno=102)\n", - " 44\tLOAD_FAST(arg=1, lineno=102)\n", - " 46\tLOAD_FAST(arg=4, lineno=102)\n", - " 48\tBINARY_SUBSCR(arg=None, lineno=102)\n", - " 50\tCALL_FUNCTION(arg=2, lineno=102)\n", - " 52\tLOAD_DEREF(arg=0, lineno=102)\n", - " 54\tLOAD_FAST(arg=0, lineno=102)\n", - " 56\tLOAD_FAST(arg=1, lineno=102)\n", - " 58\tLOAD_FAST(arg=2, lineno=102)\n", - " 60\tBINARY_SUBSCR(arg=None, lineno=102)\n", - " 62\tCALL_FUNCTION(arg=2, lineno=102)\n", - " 64\tCALL_FUNCTION(arg=2, lineno=102)\n", - " 66\tPOP_JUMP_IF_FALSE(arg=48, lineno=102)\n", - " 68\tLOAD_FAST(arg=1, lineno=103)\n", - " 70\tLOAD_FAST(arg=4, lineno=103)\n", - " 72\tBINARY_SUBSCR(arg=None, lineno=103)\n", - " 74\tLOAD_FAST(arg=1, lineno=103)\n", - " 76\tLOAD_FAST(arg=2, lineno=103)\n", - " 78\tBINARY_SUBSCR(arg=None, lineno=103)\n", - " 80\tROT_TWO(arg=None, lineno=103)\n", - " 82\tLOAD_FAST(arg=1, lineno=103)\n", - " 84\tLOAD_FAST(arg=2, lineno=103)\n", - " 86\tSTORE_SUBSCR(arg=None, lineno=103)\n", - " 88\tLOAD_FAST(arg=1, lineno=103)\n", - " 90\tLOAD_FAST(arg=4, lineno=103)\n", - " 92\tSTORE_SUBSCR(arg=None, lineno=103)\n", - "> 94\tLOAD_DEREF(arg=1, lineno=104)\n", - " 96\tLOAD_DEREF(arg=0, lineno=104)\n", - " 98\tLOAD_FAST(arg=0, lineno=104)\n", - " 100\tLOAD_FAST(arg=1, lineno=104)\n", - " 102\tLOAD_FAST(arg=3, lineno=104)\n", - " 104\tBINARY_SUBSCR(arg=None, lineno=104)\n", - " 106\tCALL_FUNCTION(arg=2, lineno=104)\n", - " 108\tLOAD_DEREF(arg=0, lineno=104)\n", - " 110\tLOAD_FAST(arg=0, lineno=104)\n", - " 112\tLOAD_FAST(arg=1, lineno=104)\n", - " 114\tLOAD_FAST(arg=4, lineno=104)\n", - " 116\tBINARY_SUBSCR(arg=None, lineno=104)\n", - " 118\tCALL_FUNCTION(arg=2, lineno=104)\n", - " 120\tCALL_FUNCTION(arg=2, lineno=104)\n", - " 122\tPOP_JUMP_IF_FALSE(arg=76, lineno=104)\n", - " 124\tLOAD_FAST(arg=1, lineno=105)\n", - " 126\tLOAD_FAST(arg=4, lineno=105)\n", - " 128\tBINARY_SUBSCR(arg=None, lineno=105)\n", - " 130\tLOAD_FAST(arg=1, lineno=105)\n", - " 132\tLOAD_FAST(arg=3, lineno=105)\n", - " 134\tBINARY_SUBSCR(arg=None, lineno=105)\n", - " 136\tROT_TWO(arg=None, lineno=105)\n", - " 138\tLOAD_FAST(arg=1, lineno=105)\n", - " 140\tLOAD_FAST(arg=3, lineno=105)\n", - " 142\tSTORE_SUBSCR(arg=None, lineno=105)\n", - " 144\tLOAD_FAST(arg=1, lineno=105)\n", - " 146\tLOAD_FAST(arg=4, lineno=105)\n", - " 148\tSTORE_SUBSCR(arg=None, lineno=105)\n", - "> 150\tLOAD_DEREF(arg=1, lineno=106)\n", - " 152\tLOAD_DEREF(arg=0, lineno=106)\n", - " 154\tLOAD_FAST(arg=0, lineno=106)\n", - " 156\tLOAD_FAST(arg=1, lineno=106)\n", - " 158\tLOAD_FAST(arg=4, lineno=106)\n", - " 160\tBINARY_SUBSCR(arg=None, lineno=106)\n", - " 162\tCALL_FUNCTION(arg=2, lineno=106)\n", - " 164\tLOAD_DEREF(arg=0, lineno=106)\n", - " 166\tLOAD_FAST(arg=0, lineno=106)\n", - " 168\tLOAD_FAST(arg=1, lineno=106)\n", - " 170\tLOAD_FAST(arg=2, lineno=106)\n", - " 172\tBINARY_SUBSCR(arg=None, lineno=106)\n", - " 174\tCALL_FUNCTION(arg=2, lineno=106)\n", - " 176\tCALL_FUNCTION(arg=2, lineno=106)\n", - " 178\tPOP_JUMP_IF_FALSE(arg=104, lineno=106)\n", - " 180\tLOAD_FAST(arg=1, lineno=107)\n", - " 182\tLOAD_FAST(arg=4, lineno=107)\n", - " 184\tBINARY_SUBSCR(arg=None, lineno=107)\n", - " 186\tLOAD_FAST(arg=1, lineno=107)\n", - " 188\tLOAD_FAST(arg=2, lineno=107)\n", - " 190\tBINARY_SUBSCR(arg=None, lineno=107)\n", - " 192\tROT_TWO(arg=None, lineno=107)\n", - " 194\tLOAD_FAST(arg=1, lineno=107)\n", - " 196\tLOAD_FAST(arg=2, lineno=107)\n", - " 198\tSTORE_SUBSCR(arg=None, lineno=107)\n", - " 200\tLOAD_FAST(arg=1, lineno=107)\n", - " 202\tLOAD_FAST(arg=4, lineno=107)\n", - " 204\tSTORE_SUBSCR(arg=None, lineno=107)\n", - "> 206\tLOAD_DEREF(arg=0, lineno=108)\n", - " 208\tLOAD_FAST(arg=0, lineno=108)\n", - " 210\tLOAD_FAST(arg=1, lineno=108)\n", - " 212\tLOAD_FAST(arg=4, lineno=108)\n", - " 214\tBINARY_SUBSCR(arg=None, lineno=108)\n", - " 216\tCALL_FUNCTION(arg=2, lineno=108)\n", - " 218\tSTORE_FAST(arg=5, lineno=108)\n", - " 220\tLOAD_FAST(arg=1, lineno=111)\n", - " 222\tLOAD_FAST(arg=4, lineno=111)\n", - " 224\tBINARY_SUBSCR(arg=None, lineno=111)\n", - " 226\tLOAD_FAST(arg=1, lineno=111)\n", - " 228\tLOAD_FAST(arg=3, lineno=111)\n", - " 230\tBINARY_SUBSCR(arg=None, lineno=111)\n", - " 232\tROT_TWO(arg=None, lineno=111)\n", - " 234\tLOAD_FAST(arg=1, lineno=111)\n", - " 236\tLOAD_FAST(arg=3, lineno=111)\n", - " 238\tSTORE_SUBSCR(arg=None, lineno=111)\n", - " 240\tLOAD_FAST(arg=1, lineno=111)\n", - " 242\tLOAD_FAST(arg=4, lineno=111)\n", - " 244\tSTORE_SUBSCR(arg=None, lineno=111)\n", - " 246\tLOAD_FAST(arg=2, lineno=112)\n", - " 248\tSTORE_FAST(arg=6, lineno=112)\n", - " 250\tLOAD_FAST(arg=3, lineno=113)\n", - " 252\tLOAD_CONST(arg=2, lineno=113)\n", - " 254\tBINARY_SUBTRACT(arg=None, lineno=113)\n", - " 256\tSTORE_FAST(arg=7, lineno=113)\n", - " 258\tNOP(arg=None, lineno=114)\n", - "> 260\tLOAD_FAST(arg=6, lineno=115)\n", - " 262\tLOAD_FAST(arg=3, lineno=115)\n", - " 264\tCOMPARE_OP(arg=0, lineno=115)\n", - " 266\tPOP_JUMP_IF_FALSE(arg=163, lineno=115)\n", - " 268\tLOAD_DEREF(arg=1, lineno=115)\n", - " 270\tLOAD_DEREF(arg=0, lineno=115)\n", - " 272\tLOAD_FAST(arg=0, lineno=115)\n", - " 274\tLOAD_FAST(arg=1, lineno=115)\n", - " 276\tLOAD_FAST(arg=6, lineno=115)\n", - " 278\tBINARY_SUBSCR(arg=None, lineno=115)\n", - " 280\tCALL_FUNCTION(arg=2, lineno=115)\n", - " 282\tLOAD_FAST(arg=5, lineno=115)\n", - " 284\tCALL_FUNCTION(arg=2, lineno=115)\n", - " 286\tPOP_JUMP_IF_FALSE(arg=163, lineno=115)\n", - "> 288\tLOAD_FAST(arg=6, lineno=116)\n", - " 290\tLOAD_CONST(arg=2, lineno=116)\n", - " 292\tINPLACE_ADD(arg=None, lineno=116)\n", - " 294\tSTORE_FAST(arg=6, lineno=116)\n", - " 296\tLOAD_FAST(arg=6, lineno=115)\n", - " 298\tLOAD_FAST(arg=3, lineno=115)\n", - " 300\tCOMPARE_OP(arg=0, lineno=115)\n", - " 302\tPOP_JUMP_IF_FALSE(arg=163, lineno=115)\n", - " 304\tLOAD_DEREF(arg=1, lineno=115)\n", - " 306\tLOAD_DEREF(arg=0, lineno=115)\n", - " 308\tLOAD_FAST(arg=0, lineno=115)\n", - " 310\tLOAD_FAST(arg=1, lineno=115)\n", - " 312\tLOAD_FAST(arg=6, lineno=115)\n", - " 314\tBINARY_SUBSCR(arg=None, lineno=115)\n", - " 316\tCALL_FUNCTION(arg=2, lineno=115)\n", - " 318\tLOAD_FAST(arg=5, lineno=115)\n", - " 320\tCALL_FUNCTION(arg=2, lineno=115)\n", - " 322\tPOP_JUMP_IF_TRUE(arg=145, lineno=115)\n", - "> 324\tLOAD_FAST(arg=7, lineno=117)\n", - " 326\tLOAD_FAST(arg=2, lineno=117)\n", - " 328\tCOMPARE_OP(arg=5, lineno=117)\n", - " 330\tPOP_JUMP_IF_FALSE(arg=195, lineno=117)\n", - " 332\tLOAD_DEREF(arg=1, lineno=117)\n", - " 334\tLOAD_FAST(arg=5, lineno=117)\n", - " 336\tLOAD_DEREF(arg=0, lineno=117)\n", - " 338\tLOAD_FAST(arg=0, lineno=117)\n", - " 340\tLOAD_FAST(arg=1, lineno=117)\n", - " 342\tLOAD_FAST(arg=7, lineno=117)\n", - " 344\tBINARY_SUBSCR(arg=None, lineno=117)\n", - " 346\tCALL_FUNCTION(arg=2, lineno=117)\n", - " 348\tCALL_FUNCTION(arg=2, lineno=117)\n", - " 350\tPOP_JUMP_IF_FALSE(arg=195, lineno=117)\n", - "> 352\tLOAD_FAST(arg=7, lineno=118)\n", - " 354\tLOAD_CONST(arg=2, lineno=118)\n", - " 356\tINPLACE_SUBTRACT(arg=None, lineno=118)\n", - " 358\tSTORE_FAST(arg=7, lineno=118)\n", - " 360\tLOAD_FAST(arg=7, lineno=117)\n", - " 362\tLOAD_FAST(arg=2, lineno=117)\n", - " 364\tCOMPARE_OP(arg=5, lineno=117)\n", - " 366\tPOP_JUMP_IF_FALSE(arg=195, lineno=117)\n", - " 368\tLOAD_DEREF(arg=1, lineno=117)\n", - " 370\tLOAD_FAST(arg=5, lineno=117)\n", - " 372\tLOAD_DEREF(arg=0, lineno=117)\n", - " 374\tLOAD_FAST(arg=0, lineno=117)\n", - " 376\tLOAD_FAST(arg=1, lineno=117)\n", - " 378\tLOAD_FAST(arg=7, lineno=117)\n", - " 380\tBINARY_SUBSCR(arg=None, lineno=117)\n", - " 382\tCALL_FUNCTION(arg=2, lineno=117)\n", - " 384\tCALL_FUNCTION(arg=2, lineno=117)\n", - " 386\tPOP_JUMP_IF_TRUE(arg=177, lineno=117)\n", - "> 388\tLOAD_FAST(arg=6, lineno=119)\n", - " 390\tLOAD_FAST(arg=7, lineno=119)\n", - " 392\tCOMPARE_OP(arg=5, lineno=119)\n", - " 394\tPOP_JUMP_IF_FALSE(arg=200, lineno=119)\n", - " 396\tJUMP_FORWARD(arg=22, lineno=120)\n", - "> 398\tLOAD_FAST(arg=1, lineno=121)\n", - " 400\tLOAD_FAST(arg=7, lineno=121)\n", - " 402\tBINARY_SUBSCR(arg=None, lineno=121)\n", - " 404\tLOAD_FAST(arg=1, lineno=121)\n", - " 406\tLOAD_FAST(arg=6, lineno=121)\n", - " 408\tBINARY_SUBSCR(arg=None, lineno=121)\n", - " 410\tROT_TWO(arg=None, lineno=121)\n", - " 412\tLOAD_FAST(arg=1, lineno=121)\n", - " 414\tLOAD_FAST(arg=6, lineno=121)\n", - " 416\tSTORE_SUBSCR(arg=None, lineno=121)\n", - " 418\tLOAD_FAST(arg=1, lineno=121)\n", - " 420\tLOAD_FAST(arg=7, lineno=121)\n", - " 422\tSTORE_SUBSCR(arg=None, lineno=121)\n", - " 424\tLOAD_FAST(arg=6, lineno=122)\n", - " 426\tLOAD_CONST(arg=2, lineno=122)\n", - " 428\tINPLACE_ADD(arg=None, lineno=122)\n", - " 430\tSTORE_FAST(arg=6, lineno=122)\n", - " 432\tLOAD_FAST(arg=7, lineno=123)\n", - " 434\tLOAD_CONST(arg=2, lineno=123)\n", - " 436\tINPLACE_SUBTRACT(arg=None, lineno=123)\n", - " 438\tSTORE_FAST(arg=7, lineno=123)\n", - " 440\tJUMP_ABSOLUTE(arg=131, lineno=114)\n", - "> 442\tLOAD_FAST(arg=1, lineno=126)\n", - " 444\tLOAD_FAST(arg=3, lineno=126)\n", - " 446\tBINARY_SUBSCR(arg=None, lineno=126)\n", - " 448\tLOAD_FAST(arg=1, lineno=126)\n", - " 450\tLOAD_FAST(arg=6, lineno=126)\n", - " 452\tBINARY_SUBSCR(arg=None, lineno=126)\n", - " 454\tROT_TWO(arg=None, lineno=126)\n", - " 456\tLOAD_FAST(arg=1, lineno=126)\n", - " 458\tLOAD_FAST(arg=6, lineno=126)\n", - " 460\tSTORE_SUBSCR(arg=None, lineno=126)\n", - " 462\tLOAD_FAST(arg=1, lineno=126)\n", - " 464\tLOAD_FAST(arg=3, lineno=126)\n", - " 466\tSTORE_SUBSCR(arg=None, lineno=126)\n", - " 468\tLOAD_FAST(arg=6, lineno=127)\n", - " 470\tRETURN_VALUE(arg=None, lineno=127)\n", - "2023-05-15 11:07:29,418 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:29,418 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,419 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=92)\n", - "2023-05-15 11:07:29,420 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,421 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_FAST(arg=2, lineno=92)\n", - "2023-05-15 11:07:29,422 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,422 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_CONST(arg=1, lineno=92)\n", - "2023-05-15 11:07:29,423 | DEBUG | byteflow.py:279 | stack ['$low2.0']\n", - "2023-05-15 11:07:29,424 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=COMPARE_OP(arg=5, lineno=92)\n", - "2023-05-15 11:07:29,424 | DEBUG | byteflow.py:279 | stack ['$low2.0', '$const4.1']\n", - "2023-05-15 11:07:29,425 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=POP_JUMP_IF_TRUE(arg=8, lineno=92)\n", - "2023-05-15 11:07:29,426 | DEBUG | byteflow.py:279 | stack ['$6compare_op.2']\n", - "2023-05-15 11:07:29,427 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=10, stack=(), blockstack=(), npush=0), Edge(pc=14, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,428 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=10 nstack_initial=0), State(pc_initial=14 nstack_initial=0)])\n", - "2023-05-15 11:07:29,428 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,429 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_ASSERTION_ERROR(arg=None, lineno=92)\n", - "2023-05-15 11:07:29,430 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,430 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=RAISE_VARARGS(arg=1, lineno=92)\n", - "2023-05-15 11:07:29,431 | DEBUG | byteflow.py:279 | stack ['$assertion_error10.0']\n", - "2023-05-15 11:07:29,431 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:29,432 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=14 nstack_initial=0)])\n", - "2023-05-15 11:07:29,433 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,434 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=LOAD_FAST(arg=3, lineno=93)\n", - "2023-05-15 11:07:29,434 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,435 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=LOAD_FAST(arg=2, lineno=93)\n", - "2023-05-15 11:07:29,435 | DEBUG | byteflow.py:279 | stack ['$high14.0']\n", - "2023-05-15 11:07:29,436 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=COMPARE_OP(arg=4, lineno=93)\n", - "2023-05-15 11:07:29,437 | DEBUG | byteflow.py:279 | stack ['$high14.0', '$low16.1']\n", - "2023-05-15 11:07:29,437 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=POP_JUMP_IF_TRUE(arg=14, lineno=93)\n", - "2023-05-15 11:07:29,438 | DEBUG | byteflow.py:279 | stack ['$18compare_op.2']\n", - "2023-05-15 11:07:29,439 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=22, stack=(), blockstack=(), npush=0), Edge(pc=26, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,439 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=22 nstack_initial=0), State(pc_initial=26 nstack_initial=0)])\n", - "2023-05-15 11:07:29,440 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,441 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=LOAD_ASSERTION_ERROR(arg=None, lineno=93)\n", - "2023-05-15 11:07:29,441 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,442 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=RAISE_VARARGS(arg=1, lineno=93)\n", - "2023-05-15 11:07:29,442 | DEBUG | byteflow.py:279 | stack ['$assertion_error22.0']\n", - "2023-05-15 11:07:29,443 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:29,443 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=26 nstack_initial=0)])\n", - "2023-05-15 11:07:29,444 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,444 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=LOAD_FAST(arg=2, lineno=95)\n", - "2023-05-15 11:07:29,445 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,445 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=LOAD_FAST(arg=3, lineno=95)\n", - "2023-05-15 11:07:29,446 | DEBUG | byteflow.py:279 | stack ['$low26.0']\n", - "2023-05-15 11:07:29,446 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=BINARY_ADD(arg=None, lineno=95)\n", - "2023-05-15 11:07:29,447 | DEBUG | byteflow.py:279 | stack ['$low26.0', '$high28.1']\n", - "2023-05-15 11:07:29,447 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=LOAD_CONST(arg=2, lineno=95)\n", - "2023-05-15 11:07:29,448 | DEBUG | byteflow.py:279 | stack ['$30binary_add.2']\n", - "2023-05-15 11:07:29,448 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=BINARY_RSHIFT(arg=None, lineno=95)\n", - "2023-05-15 11:07:29,449 | DEBUG | byteflow.py:279 | stack ['$30binary_add.2', '$const32.3']\n", - "2023-05-15 11:07:29,449 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=STORE_FAST(arg=4, lineno=95)\n", - "2023-05-15 11:07:29,450 | DEBUG | byteflow.py:279 | stack ['$34binary_rshift.4']\n", - "2023-05-15 11:07:29,451 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=LOAD_DEREF(arg=1, lineno=102)\n", - "2023-05-15 11:07:29,451 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,452 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=LOAD_DEREF(arg=0, lineno=102)\n", - "2023-05-15 11:07:29,452 | DEBUG | byteflow.py:279 | stack ['$38load_deref.5']\n", - "2023-05-15 11:07:29,453 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=LOAD_FAST(arg=0, lineno=102)\n", - "2023-05-15 11:07:29,453 | DEBUG | byteflow.py:279 | stack ['$38load_deref.5', '$40load_deref.6']\n", - "2023-05-15 11:07:29,454 | DEBUG | byteflow.py:278 | dispatch pc=44, inst=LOAD_FAST(arg=1, lineno=102)\n", - "2023-05-15 11:07:29,454 | DEBUG | byteflow.py:279 | stack ['$38load_deref.5', '$40load_deref.6', '$A42.7']\n", - "2023-05-15 11:07:29,455 | DEBUG | byteflow.py:278 | dispatch pc=46, inst=LOAD_FAST(arg=4, lineno=102)\n", - "2023-05-15 11:07:29,455 | DEBUG | byteflow.py:279 | stack ['$38load_deref.5', '$40load_deref.6', '$A42.7', '$R44.8']\n", - "2023-05-15 11:07:29,456 | DEBUG | byteflow.py:278 | dispatch pc=48, inst=BINARY_SUBSCR(arg=None, lineno=102)\n", - "2023-05-15 11:07:29,456 | DEBUG | byteflow.py:279 | stack ['$38load_deref.5', '$40load_deref.6', '$A42.7', '$R44.8', '$mid46.9']\n", - "2023-05-15 11:07:29,457 | DEBUG | byteflow.py:278 | dispatch pc=50, inst=CALL_FUNCTION(arg=2, lineno=102)\n", - "2023-05-15 11:07:29,457 | DEBUG | byteflow.py:279 | stack ['$38load_deref.5', '$40load_deref.6', '$A42.7', '$48binary_subscr.10']\n", - "2023-05-15 11:07:29,458 | DEBUG | byteflow.py:278 | dispatch pc=52, inst=LOAD_DEREF(arg=0, lineno=102)\n", - "2023-05-15 11:07:29,458 | DEBUG | byteflow.py:279 | stack ['$38load_deref.5', '$50call_function.11']\n", - "2023-05-15 11:07:29,459 | DEBUG | byteflow.py:278 | dispatch pc=54, inst=LOAD_FAST(arg=0, lineno=102)\n", - "2023-05-15 11:07:29,459 | DEBUG | byteflow.py:279 | stack ['$38load_deref.5', '$50call_function.11', '$52load_deref.12']\n", - "2023-05-15 11:07:29,460 | DEBUG | byteflow.py:278 | dispatch pc=56, inst=LOAD_FAST(arg=1, lineno=102)\n", - "2023-05-15 11:07:29,460 | DEBUG | byteflow.py:279 | stack ['$38load_deref.5', '$50call_function.11', '$52load_deref.12', '$A54.13']\n", - "2023-05-15 11:07:29,461 | DEBUG | byteflow.py:278 | dispatch pc=58, inst=LOAD_FAST(arg=2, lineno=102)\n", - "2023-05-15 11:07:29,462 | DEBUG | byteflow.py:279 | stack ['$38load_deref.5', '$50call_function.11', '$52load_deref.12', '$A54.13', '$R56.14']\n", - "2023-05-15 11:07:29,462 | DEBUG | byteflow.py:278 | dispatch pc=60, inst=BINARY_SUBSCR(arg=None, lineno=102)\n", - "2023-05-15 11:07:29,463 | DEBUG | byteflow.py:279 | stack ['$38load_deref.5', '$50call_function.11', '$52load_deref.12', '$A54.13', '$R56.14', '$low58.15']\n", - "2023-05-15 11:07:29,463 | DEBUG | byteflow.py:278 | dispatch pc=62, inst=CALL_FUNCTION(arg=2, lineno=102)\n", - "2023-05-15 11:07:29,464 | DEBUG | byteflow.py:279 | stack ['$38load_deref.5', '$50call_function.11', '$52load_deref.12', '$A54.13', '$60binary_subscr.16']\n", - "2023-05-15 11:07:29,464 | DEBUG | byteflow.py:278 | dispatch pc=64, inst=CALL_FUNCTION(arg=2, lineno=102)\n", - "2023-05-15 11:07:29,465 | DEBUG | byteflow.py:279 | stack ['$38load_deref.5', '$50call_function.11', '$62call_function.17']\n", - "2023-05-15 11:07:29,465 | DEBUG | byteflow.py:278 | dispatch pc=66, inst=POP_JUMP_IF_FALSE(arg=48, lineno=102)\n", - "2023-05-15 11:07:29,466 | DEBUG | byteflow.py:279 | stack ['$64call_function.18']\n", - "2023-05-15 11:07:29,466 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=68, stack=(), blockstack=(), npush=0), Edge(pc=94, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,467 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=68 nstack_initial=0), State(pc_initial=94 nstack_initial=0)])\n", - "2023-05-15 11:07:29,467 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,468 | DEBUG | byteflow.py:278 | dispatch pc=68, inst=LOAD_FAST(arg=1, lineno=103)\n", - "2023-05-15 11:07:29,468 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,469 | DEBUG | byteflow.py:278 | dispatch pc=70, inst=LOAD_FAST(arg=4, lineno=103)\n", - "2023-05-15 11:07:29,470 | DEBUG | byteflow.py:279 | stack ['$R68.0']\n", - "2023-05-15 11:07:29,470 | DEBUG | byteflow.py:278 | dispatch pc=72, inst=BINARY_SUBSCR(arg=None, lineno=103)\n", - "2023-05-15 11:07:29,470 | DEBUG | byteflow.py:279 | stack ['$R68.0', '$mid70.1']\n", - "2023-05-15 11:07:29,471 | DEBUG | byteflow.py:278 | dispatch pc=74, inst=LOAD_FAST(arg=1, lineno=103)\n", - "2023-05-15 11:07:29,472 | DEBUG | byteflow.py:279 | stack ['$72binary_subscr.2']\n", - "2023-05-15 11:07:29,472 | DEBUG | byteflow.py:278 | dispatch pc=76, inst=LOAD_FAST(arg=2, lineno=103)\n", - "2023-05-15 11:07:29,472 | DEBUG | byteflow.py:279 | stack ['$72binary_subscr.2', '$R74.3']\n", - "2023-05-15 11:07:29,473 | DEBUG | byteflow.py:278 | dispatch pc=78, inst=BINARY_SUBSCR(arg=None, lineno=103)\n", - "2023-05-15 11:07:29,473 | DEBUG | byteflow.py:279 | stack ['$72binary_subscr.2', '$R74.3', '$low76.4']\n", - "2023-05-15 11:07:29,474 | DEBUG | byteflow.py:278 | dispatch pc=80, inst=ROT_TWO(arg=None, lineno=103)\n", - "2023-05-15 11:07:29,475 | DEBUG | byteflow.py:279 | stack ['$72binary_subscr.2', '$78binary_subscr.5']\n", - "2023-05-15 11:07:29,475 | DEBUG | byteflow.py:278 | dispatch pc=82, inst=LOAD_FAST(arg=1, lineno=103)\n", - "2023-05-15 11:07:29,476 | DEBUG | byteflow.py:279 | stack ['$78binary_subscr.5', '$72binary_subscr.2']\n", - "2023-05-15 11:07:29,476 | DEBUG | byteflow.py:278 | dispatch pc=84, inst=LOAD_FAST(arg=2, lineno=103)\n", - "2023-05-15 11:07:29,477 | DEBUG | byteflow.py:279 | stack ['$78binary_subscr.5', '$72binary_subscr.2', '$R82.6']\n", - "2023-05-15 11:07:29,477 | DEBUG | byteflow.py:278 | dispatch pc=86, inst=STORE_SUBSCR(arg=None, lineno=103)\n", - "2023-05-15 11:07:29,478 | DEBUG | byteflow.py:279 | stack ['$78binary_subscr.5', '$72binary_subscr.2', '$R82.6', '$low84.7']\n", - "2023-05-15 11:07:29,478 | DEBUG | byteflow.py:278 | dispatch pc=88, inst=LOAD_FAST(arg=1, lineno=103)\n", - "2023-05-15 11:07:29,479 | DEBUG | byteflow.py:279 | stack ['$78binary_subscr.5']\n", - "2023-05-15 11:07:29,479 | DEBUG | byteflow.py:278 | dispatch pc=90, inst=LOAD_FAST(arg=4, lineno=103)\n", - "2023-05-15 11:07:29,480 | DEBUG | byteflow.py:279 | stack ['$78binary_subscr.5', '$R88.8']\n", - "2023-05-15 11:07:29,480 | DEBUG | byteflow.py:278 | dispatch pc=92, inst=STORE_SUBSCR(arg=None, lineno=103)\n", - "2023-05-15 11:07:29,480 | DEBUG | byteflow.py:279 | stack ['$78binary_subscr.5', '$R88.8', '$mid90.9']\n", - "2023-05-15 11:07:29,481 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=94, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,481 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=94 nstack_initial=0), State(pc_initial=94 nstack_initial=0)])\n", - "2023-05-15 11:07:29,482 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,484 | DEBUG | byteflow.py:278 | dispatch pc=94, inst=LOAD_DEREF(arg=1, lineno=104)\n", - "2023-05-15 11:07:29,485 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,485 | DEBUG | byteflow.py:278 | dispatch pc=96, inst=LOAD_DEREF(arg=0, lineno=104)\n", - "2023-05-15 11:07:29,488 | DEBUG | byteflow.py:279 | stack ['$94load_deref.0']\n", - "2023-05-15 11:07:29,489 | DEBUG | byteflow.py:278 | dispatch pc=98, inst=LOAD_FAST(arg=0, lineno=104)\n", - "2023-05-15 11:07:29,490 | DEBUG | byteflow.py:279 | stack ['$94load_deref.0', '$96load_deref.1']\n", - "2023-05-15 11:07:29,493 | DEBUG | byteflow.py:278 | dispatch pc=100, inst=LOAD_FAST(arg=1, lineno=104)\n", - "2023-05-15 11:07:29,493 | DEBUG | byteflow.py:279 | stack ['$94load_deref.0', '$96load_deref.1', '$A98.2']\n", - "2023-05-15 11:07:29,494 | DEBUG | byteflow.py:278 | dispatch pc=102, inst=LOAD_FAST(arg=3, lineno=104)\n", - "2023-05-15 11:07:29,494 | DEBUG | byteflow.py:279 | stack ['$94load_deref.0', '$96load_deref.1', '$A98.2', '$R100.3']\n", - "2023-05-15 11:07:29,495 | DEBUG | byteflow.py:278 | dispatch pc=104, inst=BINARY_SUBSCR(arg=None, lineno=104)\n", - "2023-05-15 11:07:29,496 | DEBUG | byteflow.py:279 | stack ['$94load_deref.0', '$96load_deref.1', '$A98.2', '$R100.3', '$high102.4']\n", - "2023-05-15 11:07:29,496 | DEBUG | byteflow.py:278 | dispatch pc=106, inst=CALL_FUNCTION(arg=2, lineno=104)\n", - "2023-05-15 11:07:29,496 | DEBUG | byteflow.py:279 | stack ['$94load_deref.0', '$96load_deref.1', '$A98.2', '$104binary_subscr.5']\n", - "2023-05-15 11:07:29,497 | DEBUG | byteflow.py:278 | dispatch pc=108, inst=LOAD_DEREF(arg=0, lineno=104)\n", - "2023-05-15 11:07:29,497 | DEBUG | byteflow.py:279 | stack ['$94load_deref.0', '$106call_function.6']\n", - "2023-05-15 11:07:29,498 | DEBUG | byteflow.py:278 | dispatch pc=110, inst=LOAD_FAST(arg=0, lineno=104)\n", - "2023-05-15 11:07:29,498 | DEBUG | byteflow.py:279 | stack ['$94load_deref.0', '$106call_function.6', '$108load_deref.7']\n", - "2023-05-15 11:07:29,499 | DEBUG | byteflow.py:278 | dispatch pc=112, inst=LOAD_FAST(arg=1, lineno=104)\n", - "2023-05-15 11:07:29,499 | DEBUG | byteflow.py:279 | stack ['$94load_deref.0', '$106call_function.6', '$108load_deref.7', '$A110.8']\n", - "2023-05-15 11:07:29,500 | DEBUG | byteflow.py:278 | dispatch pc=114, inst=LOAD_FAST(arg=4, lineno=104)\n", - "2023-05-15 11:07:29,501 | DEBUG | byteflow.py:279 | stack ['$94load_deref.0', '$106call_function.6', '$108load_deref.7', '$A110.8', '$R112.9']\n", - "2023-05-15 11:07:29,502 | DEBUG | byteflow.py:278 | dispatch pc=116, inst=BINARY_SUBSCR(arg=None, lineno=104)\n", - "2023-05-15 11:07:29,502 | DEBUG | byteflow.py:279 | stack ['$94load_deref.0', '$106call_function.6', '$108load_deref.7', '$A110.8', '$R112.9', '$mid114.10']\n", - "2023-05-15 11:07:29,503 | DEBUG | byteflow.py:278 | dispatch pc=118, inst=CALL_FUNCTION(arg=2, lineno=104)\n", - "2023-05-15 11:07:29,503 | DEBUG | byteflow.py:279 | stack ['$94load_deref.0', '$106call_function.6', '$108load_deref.7', '$A110.8', '$116binary_subscr.11']\n", - "2023-05-15 11:07:29,504 | DEBUG | byteflow.py:278 | dispatch pc=120, inst=CALL_FUNCTION(arg=2, lineno=104)\n", - "2023-05-15 11:07:29,504 | DEBUG | byteflow.py:279 | stack ['$94load_deref.0', '$106call_function.6', '$118call_function.12']\n", - "2023-05-15 11:07:29,505 | DEBUG | byteflow.py:278 | dispatch pc=122, inst=POP_JUMP_IF_FALSE(arg=76, lineno=104)\n", - "2023-05-15 11:07:29,505 | DEBUG | byteflow.py:279 | stack ['$120call_function.13']\n", - "2023-05-15 11:07:29,506 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=124, stack=(), blockstack=(), npush=0), Edge(pc=150, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,506 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=94 nstack_initial=0), State(pc_initial=124 nstack_initial=0), State(pc_initial=150 nstack_initial=0)])\n", - "2023-05-15 11:07:29,507 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=124 nstack_initial=0), State(pc_initial=150 nstack_initial=0)])\n", - "2023-05-15 11:07:29,507 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,508 | DEBUG | byteflow.py:278 | dispatch pc=124, inst=LOAD_FAST(arg=1, lineno=105)\n", - "2023-05-15 11:07:29,508 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,509 | DEBUG | byteflow.py:278 | dispatch pc=126, inst=LOAD_FAST(arg=4, lineno=105)\n", - "2023-05-15 11:07:29,509 | DEBUG | byteflow.py:279 | stack ['$R124.0']\n", - "2023-05-15 11:07:29,510 | DEBUG | byteflow.py:278 | dispatch pc=128, inst=BINARY_SUBSCR(arg=None, lineno=105)\n", - "2023-05-15 11:07:29,510 | DEBUG | byteflow.py:279 | stack ['$R124.0', '$mid126.1']\n", - "2023-05-15 11:07:29,511 | DEBUG | byteflow.py:278 | dispatch pc=130, inst=LOAD_FAST(arg=1, lineno=105)\n", - "2023-05-15 11:07:29,511 | DEBUG | byteflow.py:279 | stack ['$128binary_subscr.2']\n", - "2023-05-15 11:07:29,512 | DEBUG | byteflow.py:278 | dispatch pc=132, inst=LOAD_FAST(arg=3, lineno=105)\n", - "2023-05-15 11:07:29,512 | DEBUG | byteflow.py:279 | stack ['$128binary_subscr.2', '$R130.3']\n", - "2023-05-15 11:07:29,513 | DEBUG | byteflow.py:278 | dispatch pc=134, inst=BINARY_SUBSCR(arg=None, lineno=105)\n", - "2023-05-15 11:07:29,513 | DEBUG | byteflow.py:279 | stack ['$128binary_subscr.2', '$R130.3', '$high132.4']\n", - "2023-05-15 11:07:29,513 | DEBUG | byteflow.py:278 | dispatch pc=136, inst=ROT_TWO(arg=None, lineno=105)\n", - "2023-05-15 11:07:29,514 | DEBUG | byteflow.py:279 | stack ['$128binary_subscr.2', '$134binary_subscr.5']\n", - "2023-05-15 11:07:29,515 | DEBUG | byteflow.py:278 | dispatch pc=138, inst=LOAD_FAST(arg=1, lineno=105)\n", - "2023-05-15 11:07:29,515 | DEBUG | byteflow.py:279 | stack ['$134binary_subscr.5', '$128binary_subscr.2']\n", - "2023-05-15 11:07:29,515 | DEBUG | byteflow.py:278 | dispatch pc=140, inst=LOAD_FAST(arg=3, lineno=105)\n", - "2023-05-15 11:07:29,516 | DEBUG | byteflow.py:279 | stack ['$134binary_subscr.5', '$128binary_subscr.2', '$R138.6']\n", - "2023-05-15 11:07:29,516 | DEBUG | byteflow.py:278 | dispatch pc=142, inst=STORE_SUBSCR(arg=None, lineno=105)\n", - "2023-05-15 11:07:29,516 | DEBUG | byteflow.py:279 | stack ['$134binary_subscr.5', '$128binary_subscr.2', '$R138.6', '$high140.7']\n", - "2023-05-15 11:07:29,517 | DEBUG | byteflow.py:278 | dispatch pc=144, inst=LOAD_FAST(arg=1, lineno=105)\n", - "2023-05-15 11:07:29,518 | DEBUG | byteflow.py:279 | stack ['$134binary_subscr.5']\n", - "2023-05-15 11:07:29,518 | DEBUG | byteflow.py:278 | dispatch pc=146, inst=LOAD_FAST(arg=4, lineno=105)\n", - "2023-05-15 11:07:29,519 | DEBUG | byteflow.py:279 | stack ['$134binary_subscr.5', '$R144.8']\n", - "2023-05-15 11:07:29,519 | DEBUG | byteflow.py:278 | dispatch pc=148, inst=STORE_SUBSCR(arg=None, lineno=105)\n", - "2023-05-15 11:07:29,520 | DEBUG | byteflow.py:279 | stack ['$134binary_subscr.5', '$R144.8', '$mid146.9']\n", - "2023-05-15 11:07:29,520 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=150, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,521 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=150 nstack_initial=0), State(pc_initial=150 nstack_initial=0)])\n", - "2023-05-15 11:07:29,521 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,522 | DEBUG | byteflow.py:278 | dispatch pc=150, inst=LOAD_DEREF(arg=1, lineno=106)\n", - "2023-05-15 11:07:29,522 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,523 | DEBUG | byteflow.py:278 | dispatch pc=152, inst=LOAD_DEREF(arg=0, lineno=106)\n", - "2023-05-15 11:07:29,523 | DEBUG | byteflow.py:279 | stack ['$150load_deref.0']\n", - "2023-05-15 11:07:29,524 | DEBUG | byteflow.py:278 | dispatch pc=154, inst=LOAD_FAST(arg=0, lineno=106)\n", - "2023-05-15 11:07:29,525 | DEBUG | byteflow.py:279 | stack ['$150load_deref.0', '$152load_deref.1']\n", - "2023-05-15 11:07:29,525 | DEBUG | byteflow.py:278 | dispatch pc=156, inst=LOAD_FAST(arg=1, lineno=106)\n", - "2023-05-15 11:07:29,526 | DEBUG | byteflow.py:279 | stack ['$150load_deref.0', '$152load_deref.1', '$A154.2']\n", - "2023-05-15 11:07:29,526 | DEBUG | byteflow.py:278 | dispatch pc=158, inst=LOAD_FAST(arg=4, lineno=106)\n", - "2023-05-15 11:07:29,527 | DEBUG | byteflow.py:279 | stack ['$150load_deref.0', '$152load_deref.1', '$A154.2', '$R156.3']\n", - "2023-05-15 11:07:29,527 | DEBUG | byteflow.py:278 | dispatch pc=160, inst=BINARY_SUBSCR(arg=None, lineno=106)\n", - "2023-05-15 11:07:29,528 | DEBUG | byteflow.py:279 | stack ['$150load_deref.0', '$152load_deref.1', '$A154.2', '$R156.3', '$mid158.4']\n", - "2023-05-15 11:07:29,529 | DEBUG | byteflow.py:278 | dispatch pc=162, inst=CALL_FUNCTION(arg=2, lineno=106)\n", - "2023-05-15 11:07:29,529 | DEBUG | byteflow.py:279 | stack ['$150load_deref.0', '$152load_deref.1', '$A154.2', '$160binary_subscr.5']\n", - "2023-05-15 11:07:29,530 | DEBUG | byteflow.py:278 | dispatch pc=164, inst=LOAD_DEREF(arg=0, lineno=106)\n", - "2023-05-15 11:07:29,530 | DEBUG | byteflow.py:279 | stack ['$150load_deref.0', '$162call_function.6']\n", - "2023-05-15 11:07:29,531 | DEBUG | byteflow.py:278 | dispatch pc=166, inst=LOAD_FAST(arg=0, lineno=106)\n", - "2023-05-15 11:07:29,531 | DEBUG | byteflow.py:279 | stack ['$150load_deref.0', '$162call_function.6', '$164load_deref.7']\n", - "2023-05-15 11:07:29,532 | DEBUG | byteflow.py:278 | dispatch pc=168, inst=LOAD_FAST(arg=1, lineno=106)\n", - "2023-05-15 11:07:29,532 | DEBUG | byteflow.py:279 | stack ['$150load_deref.0', '$162call_function.6', '$164load_deref.7', '$A166.8']\n", - "2023-05-15 11:07:29,533 | DEBUG | byteflow.py:278 | dispatch pc=170, inst=LOAD_FAST(arg=2, lineno=106)\n", - "2023-05-15 11:07:29,534 | DEBUG | byteflow.py:279 | stack ['$150load_deref.0', '$162call_function.6', '$164load_deref.7', '$A166.8', '$R168.9']\n", - "2023-05-15 11:07:29,534 | DEBUG | byteflow.py:278 | dispatch pc=172, inst=BINARY_SUBSCR(arg=None, lineno=106)\n", - "2023-05-15 11:07:29,535 | DEBUG | byteflow.py:279 | stack ['$150load_deref.0', '$162call_function.6', '$164load_deref.7', '$A166.8', '$R168.9', '$low170.10']\n", - "2023-05-15 11:07:29,535 | DEBUG | byteflow.py:278 | dispatch pc=174, inst=CALL_FUNCTION(arg=2, lineno=106)\n", - "2023-05-15 11:07:29,536 | DEBUG | byteflow.py:279 | stack ['$150load_deref.0', '$162call_function.6', '$164load_deref.7', '$A166.8', '$172binary_subscr.11']\n", - "2023-05-15 11:07:29,537 | DEBUG | byteflow.py:278 | dispatch pc=176, inst=CALL_FUNCTION(arg=2, lineno=106)\n", - "2023-05-15 11:07:29,537 | DEBUG | byteflow.py:279 | stack ['$150load_deref.0', '$162call_function.6', '$174call_function.12']\n", - "2023-05-15 11:07:29,538 | DEBUG | byteflow.py:278 | dispatch pc=178, inst=POP_JUMP_IF_FALSE(arg=104, lineno=106)\n", - "2023-05-15 11:07:29,538 | DEBUG | byteflow.py:279 | stack ['$176call_function.13']\n", - "2023-05-15 11:07:29,539 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=180, stack=(), blockstack=(), npush=0), Edge(pc=206, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,539 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=150 nstack_initial=0), State(pc_initial=180 nstack_initial=0), State(pc_initial=206 nstack_initial=0)])\n", - "2023-05-15 11:07:29,540 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=180 nstack_initial=0), State(pc_initial=206 nstack_initial=0)])\n", - "2023-05-15 11:07:29,541 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,541 | DEBUG | byteflow.py:278 | dispatch pc=180, inst=LOAD_FAST(arg=1, lineno=107)\n", - "2023-05-15 11:07:29,542 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,542 | DEBUG | byteflow.py:278 | dispatch pc=182, inst=LOAD_FAST(arg=4, lineno=107)\n", - "2023-05-15 11:07:29,543 | DEBUG | byteflow.py:279 | stack ['$R180.0']\n", - "2023-05-15 11:07:29,543 | DEBUG | byteflow.py:278 | dispatch pc=184, inst=BINARY_SUBSCR(arg=None, lineno=107)\n", - "2023-05-15 11:07:29,544 | DEBUG | byteflow.py:279 | stack ['$R180.0', '$mid182.1']\n", - "2023-05-15 11:07:29,544 | DEBUG | byteflow.py:278 | dispatch pc=186, inst=LOAD_FAST(arg=1, lineno=107)\n", - "2023-05-15 11:07:29,545 | DEBUG | byteflow.py:279 | stack ['$184binary_subscr.2']\n", - "2023-05-15 11:07:29,546 | DEBUG | byteflow.py:278 | dispatch pc=188, inst=LOAD_FAST(arg=2, lineno=107)\n", - "2023-05-15 11:07:29,546 | DEBUG | byteflow.py:279 | stack ['$184binary_subscr.2', '$R186.3']\n", - "2023-05-15 11:07:29,547 | DEBUG | byteflow.py:278 | dispatch pc=190, inst=BINARY_SUBSCR(arg=None, lineno=107)\n", - "2023-05-15 11:07:29,547 | DEBUG | byteflow.py:279 | stack ['$184binary_subscr.2', '$R186.3', '$low188.4']\n", - "2023-05-15 11:07:29,548 | DEBUG | byteflow.py:278 | dispatch pc=192, inst=ROT_TWO(arg=None, lineno=107)\n", - "2023-05-15 11:07:29,549 | DEBUG | byteflow.py:279 | stack ['$184binary_subscr.2', '$190binary_subscr.5']\n", - "2023-05-15 11:07:29,549 | DEBUG | byteflow.py:278 | dispatch pc=194, inst=LOAD_FAST(arg=1, lineno=107)\n", - "2023-05-15 11:07:29,550 | DEBUG | byteflow.py:279 | stack ['$190binary_subscr.5', '$184binary_subscr.2']\n", - "2023-05-15 11:07:29,550 | DEBUG | byteflow.py:278 | dispatch pc=196, inst=LOAD_FAST(arg=2, lineno=107)\n", - "2023-05-15 11:07:29,551 | DEBUG | byteflow.py:279 | stack ['$190binary_subscr.5', '$184binary_subscr.2', '$R194.6']\n", - "2023-05-15 11:07:29,551 | DEBUG | byteflow.py:278 | dispatch pc=198, inst=STORE_SUBSCR(arg=None, lineno=107)\n", - "2023-05-15 11:07:29,552 | DEBUG | byteflow.py:279 | stack ['$190binary_subscr.5', '$184binary_subscr.2', '$R194.6', '$low196.7']\n", - "2023-05-15 11:07:29,553 | DEBUG | byteflow.py:278 | dispatch pc=200, inst=LOAD_FAST(arg=1, lineno=107)\n", - "2023-05-15 11:07:29,553 | DEBUG | byteflow.py:279 | stack ['$190binary_subscr.5']\n", - "2023-05-15 11:07:29,554 | DEBUG | byteflow.py:278 | dispatch pc=202, inst=LOAD_FAST(arg=4, lineno=107)\n", - "2023-05-15 11:07:29,554 | DEBUG | byteflow.py:279 | stack ['$190binary_subscr.5', '$R200.8']\n", - "2023-05-15 11:07:29,555 | DEBUG | byteflow.py:278 | dispatch pc=204, inst=STORE_SUBSCR(arg=None, lineno=107)\n", - "2023-05-15 11:07:29,555 | DEBUG | byteflow.py:279 | stack ['$190binary_subscr.5', '$R200.8', '$mid202.9']\n", - "2023-05-15 11:07:29,556 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=206, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,557 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=206 nstack_initial=0), State(pc_initial=206 nstack_initial=0)])\n", - "2023-05-15 11:07:29,557 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,558 | DEBUG | byteflow.py:278 | dispatch pc=206, inst=LOAD_DEREF(arg=0, lineno=108)\n", - "2023-05-15 11:07:29,558 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,559 | DEBUG | byteflow.py:278 | dispatch pc=208, inst=LOAD_FAST(arg=0, lineno=108)\n", - "2023-05-15 11:07:29,559 | DEBUG | byteflow.py:279 | stack ['$206load_deref.0']\n", - "2023-05-15 11:07:29,560 | DEBUG | byteflow.py:278 | dispatch pc=210, inst=LOAD_FAST(arg=1, lineno=108)\n", - "2023-05-15 11:07:29,561 | DEBUG | byteflow.py:279 | stack ['$206load_deref.0', '$A208.1']\n", - "2023-05-15 11:07:29,561 | DEBUG | byteflow.py:278 | dispatch pc=212, inst=LOAD_FAST(arg=4, lineno=108)\n", - "2023-05-15 11:07:29,562 | DEBUG | byteflow.py:279 | stack ['$206load_deref.0', '$A208.1', '$R210.2']\n", - "2023-05-15 11:07:29,562 | DEBUG | byteflow.py:278 | dispatch pc=214, inst=BINARY_SUBSCR(arg=None, lineno=108)\n", - "2023-05-15 11:07:29,563 | DEBUG | byteflow.py:279 | stack ['$206load_deref.0', '$A208.1', '$R210.2', '$mid212.3']\n", - "2023-05-15 11:07:29,563 | DEBUG | byteflow.py:278 | dispatch pc=216, inst=CALL_FUNCTION(arg=2, lineno=108)\n", - "2023-05-15 11:07:29,564 | DEBUG | byteflow.py:279 | stack ['$206load_deref.0', '$A208.1', '$214binary_subscr.4']\n", - "2023-05-15 11:07:29,565 | DEBUG | byteflow.py:278 | dispatch pc=218, inst=STORE_FAST(arg=5, lineno=108)\n", - "2023-05-15 11:07:29,565 | DEBUG | byteflow.py:279 | stack ['$216call_function.5']\n", - "2023-05-15 11:07:29,566 | DEBUG | byteflow.py:278 | dispatch pc=220, inst=LOAD_FAST(arg=1, lineno=111)\n", - "2023-05-15 11:07:29,566 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,567 | DEBUG | byteflow.py:278 | dispatch pc=222, inst=LOAD_FAST(arg=4, lineno=111)\n", - "2023-05-15 11:07:29,567 | DEBUG | byteflow.py:279 | stack ['$R220.6']\n", - "2023-05-15 11:07:29,568 | DEBUG | byteflow.py:278 | dispatch pc=224, inst=BINARY_SUBSCR(arg=None, lineno=111)\n", - "2023-05-15 11:07:29,569 | DEBUG | byteflow.py:279 | stack ['$R220.6', '$mid222.7']\n", - "2023-05-15 11:07:29,569 | DEBUG | byteflow.py:278 | dispatch pc=226, inst=LOAD_FAST(arg=1, lineno=111)\n", - "2023-05-15 11:07:29,570 | DEBUG | byteflow.py:279 | stack ['$224binary_subscr.8']\n", - "2023-05-15 11:07:29,570 | DEBUG | byteflow.py:278 | dispatch pc=228, inst=LOAD_FAST(arg=3, lineno=111)\n", - "2023-05-15 11:07:29,571 | DEBUG | byteflow.py:279 | stack ['$224binary_subscr.8', '$R226.9']\n", - "2023-05-15 11:07:29,571 | DEBUG | byteflow.py:278 | dispatch pc=230, inst=BINARY_SUBSCR(arg=None, lineno=111)\n", - "2023-05-15 11:07:29,572 | DEBUG | byteflow.py:279 | stack ['$224binary_subscr.8', '$R226.9', '$high228.10']\n", - "2023-05-15 11:07:29,573 | DEBUG | byteflow.py:278 | dispatch pc=232, inst=ROT_TWO(arg=None, lineno=111)\n", - "2023-05-15 11:07:29,573 | DEBUG | byteflow.py:279 | stack ['$224binary_subscr.8', '$230binary_subscr.11']\n", - "2023-05-15 11:07:29,574 | DEBUG | byteflow.py:278 | dispatch pc=234, inst=LOAD_FAST(arg=1, lineno=111)\n", - "2023-05-15 11:07:29,574 | DEBUG | byteflow.py:279 | stack ['$230binary_subscr.11', '$224binary_subscr.8']\n", - "2023-05-15 11:07:29,575 | DEBUG | byteflow.py:278 | dispatch pc=236, inst=LOAD_FAST(arg=3, lineno=111)\n", - "2023-05-15 11:07:29,576 | DEBUG | byteflow.py:279 | stack ['$230binary_subscr.11', '$224binary_subscr.8', '$R234.12']\n", - "2023-05-15 11:07:29,576 | DEBUG | byteflow.py:278 | dispatch pc=238, inst=STORE_SUBSCR(arg=None, lineno=111)\n", - "2023-05-15 11:07:29,577 | DEBUG | byteflow.py:279 | stack ['$230binary_subscr.11', '$224binary_subscr.8', '$R234.12', '$high236.13']\n", - "2023-05-15 11:07:29,587 | DEBUG | byteflow.py:278 | dispatch pc=240, inst=LOAD_FAST(arg=1, lineno=111)\n", - "2023-05-15 11:07:29,592 | DEBUG | byteflow.py:279 | stack ['$230binary_subscr.11']\n", - "2023-05-15 11:07:29,593 | DEBUG | byteflow.py:278 | dispatch pc=242, inst=LOAD_FAST(arg=4, lineno=111)\n", - "2023-05-15 11:07:29,593 | DEBUG | byteflow.py:279 | stack ['$230binary_subscr.11', '$R240.14']\n", - "2023-05-15 11:07:29,594 | DEBUG | byteflow.py:278 | dispatch pc=244, inst=STORE_SUBSCR(arg=None, lineno=111)\n", - "2023-05-15 11:07:29,594 | DEBUG | byteflow.py:279 | stack ['$230binary_subscr.11', '$R240.14', '$mid242.15']\n", - "2023-05-15 11:07:29,595 | DEBUG | byteflow.py:278 | dispatch pc=246, inst=LOAD_FAST(arg=2, lineno=112)\n", - "2023-05-15 11:07:29,595 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,595 | DEBUG | byteflow.py:278 | dispatch pc=248, inst=STORE_FAST(arg=6, lineno=112)\n", - "2023-05-15 11:07:29,596 | DEBUG | byteflow.py:279 | stack ['$low246.16']\n", - "2023-05-15 11:07:29,597 | DEBUG | byteflow.py:278 | dispatch pc=250, inst=LOAD_FAST(arg=3, lineno=113)\n", - "2023-05-15 11:07:29,597 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,598 | DEBUG | byteflow.py:278 | dispatch pc=252, inst=LOAD_CONST(arg=2, lineno=113)\n", - "2023-05-15 11:07:29,598 | DEBUG | byteflow.py:279 | stack ['$high250.17']\n", - "2023-05-15 11:07:29,598 | DEBUG | byteflow.py:278 | dispatch pc=254, inst=BINARY_SUBTRACT(arg=None, lineno=113)\n", - "2023-05-15 11:07:29,599 | DEBUG | byteflow.py:279 | stack ['$high250.17', '$const252.18']\n", - "2023-05-15 11:07:29,600 | DEBUG | byteflow.py:278 | dispatch pc=256, inst=STORE_FAST(arg=7, lineno=113)\n", - "2023-05-15 11:07:29,601 | DEBUG | byteflow.py:279 | stack ['$254binary_subtract.19']\n", - "2023-05-15 11:07:29,602 | DEBUG | byteflow.py:278 | dispatch pc=258, inst=NOP(arg=None, lineno=114)\n", - "2023-05-15 11:07:29,602 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,603 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=260, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,604 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=206 nstack_initial=0), State(pc_initial=260 nstack_initial=0)])\n", - "2023-05-15 11:07:29,605 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=260 nstack_initial=0)])\n", - "2023-05-15 11:07:29,605 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,606 | DEBUG | byteflow.py:278 | dispatch pc=260, inst=LOAD_FAST(arg=6, lineno=115)\n", - "2023-05-15 11:07:29,607 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,608 | DEBUG | byteflow.py:278 | dispatch pc=262, inst=LOAD_FAST(arg=3, lineno=115)\n", - "2023-05-15 11:07:29,608 | DEBUG | byteflow.py:279 | stack ['$i260.0']\n", - "2023-05-15 11:07:29,609 | DEBUG | byteflow.py:278 | dispatch pc=264, inst=COMPARE_OP(arg=0, lineno=115)\n", - "2023-05-15 11:07:29,610 | DEBUG | byteflow.py:279 | stack ['$i260.0', '$high262.1']\n", - "2023-05-15 11:07:29,610 | DEBUG | byteflow.py:278 | dispatch pc=266, inst=POP_JUMP_IF_FALSE(arg=163, lineno=115)\n", - "2023-05-15 11:07:29,611 | DEBUG | byteflow.py:279 | stack ['$264compare_op.2']\n", - "2023-05-15 11:07:29,612 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=268, stack=(), blockstack=(), npush=0), Edge(pc=324, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,613 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=268 nstack_initial=0), State(pc_initial=324 nstack_initial=0)])\n", - "2023-05-15 11:07:29,613 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,614 | DEBUG | byteflow.py:278 | dispatch pc=268, inst=LOAD_DEREF(arg=1, lineno=115)\n", - "2023-05-15 11:07:29,615 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,615 | DEBUG | byteflow.py:278 | dispatch pc=270, inst=LOAD_DEREF(arg=0, lineno=115)\n", - "2023-05-15 11:07:29,616 | DEBUG | byteflow.py:279 | stack ['$268load_deref.0']\n", - "2023-05-15 11:07:29,617 | DEBUG | byteflow.py:278 | dispatch pc=272, inst=LOAD_FAST(arg=0, lineno=115)\n", - "2023-05-15 11:07:29,618 | DEBUG | byteflow.py:279 | stack ['$268load_deref.0', '$270load_deref.1']\n", - "2023-05-15 11:07:29,619 | DEBUG | byteflow.py:278 | dispatch pc=274, inst=LOAD_FAST(arg=1, lineno=115)\n", - "2023-05-15 11:07:29,619 | DEBUG | byteflow.py:279 | stack ['$268load_deref.0', '$270load_deref.1', '$A272.2']\n", - "2023-05-15 11:07:29,620 | DEBUG | byteflow.py:278 | dispatch pc=276, inst=LOAD_FAST(arg=6, lineno=115)\n", - "2023-05-15 11:07:29,620 | DEBUG | byteflow.py:279 | stack ['$268load_deref.0', '$270load_deref.1', '$A272.2', '$R274.3']\n", - "2023-05-15 11:07:29,621 | DEBUG | byteflow.py:278 | dispatch pc=278, inst=BINARY_SUBSCR(arg=None, lineno=115)\n", - "2023-05-15 11:07:29,621 | DEBUG | byteflow.py:279 | stack ['$268load_deref.0', '$270load_deref.1', '$A272.2', '$R274.3', '$i276.4']\n", - "2023-05-15 11:07:29,622 | DEBUG | byteflow.py:278 | dispatch pc=280, inst=CALL_FUNCTION(arg=2, lineno=115)\n", - "2023-05-15 11:07:29,622 | DEBUG | byteflow.py:279 | stack ['$268load_deref.0', '$270load_deref.1', '$A272.2', '$278binary_subscr.5']\n", - "2023-05-15 11:07:29,623 | DEBUG | byteflow.py:278 | dispatch pc=282, inst=LOAD_FAST(arg=5, lineno=115)\n", - "2023-05-15 11:07:29,623 | DEBUG | byteflow.py:279 | stack ['$268load_deref.0', '$280call_function.6']\n", - "2023-05-15 11:07:29,624 | DEBUG | byteflow.py:278 | dispatch pc=284, inst=CALL_FUNCTION(arg=2, lineno=115)\n", - "2023-05-15 11:07:29,625 | DEBUG | byteflow.py:279 | stack ['$268load_deref.0', '$280call_function.6', '$pivot282.7']\n", - "2023-05-15 11:07:29,625 | DEBUG | byteflow.py:278 | dispatch pc=286, inst=POP_JUMP_IF_FALSE(arg=163, lineno=115)\n", - "2023-05-15 11:07:29,626 | DEBUG | byteflow.py:279 | stack ['$284call_function.8']\n", - "2023-05-15 11:07:29,626 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=288, stack=(), blockstack=(), npush=0), Edge(pc=324, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,627 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=324 nstack_initial=0), State(pc_initial=288 nstack_initial=0), State(pc_initial=324 nstack_initial=0)])\n", - "2023-05-15 11:07:29,627 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,628 | DEBUG | byteflow.py:278 | dispatch pc=324, inst=LOAD_FAST(arg=7, lineno=117)\n", - "2023-05-15 11:07:29,628 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,629 | DEBUG | byteflow.py:278 | dispatch pc=326, inst=LOAD_FAST(arg=2, lineno=117)\n", - "2023-05-15 11:07:29,630 | DEBUG | byteflow.py:279 | stack ['$j324.0']\n", - "2023-05-15 11:07:29,630 | DEBUG | byteflow.py:278 | dispatch pc=328, inst=COMPARE_OP(arg=5, lineno=117)\n", - "2023-05-15 11:07:29,631 | DEBUG | byteflow.py:279 | stack ['$j324.0', '$low326.1']\n", - "2023-05-15 11:07:29,631 | DEBUG | byteflow.py:278 | dispatch pc=330, inst=POP_JUMP_IF_FALSE(arg=195, lineno=117)\n", - "2023-05-15 11:07:29,632 | DEBUG | byteflow.py:279 | stack ['$328compare_op.2']\n", - "2023-05-15 11:07:29,632 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=332, stack=(), blockstack=(), npush=0), Edge(pc=388, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,633 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=288 nstack_initial=0), State(pc_initial=324 nstack_initial=0), State(pc_initial=332 nstack_initial=0), State(pc_initial=388 nstack_initial=0)])\n", - "2023-05-15 11:07:29,633 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,634 | DEBUG | byteflow.py:278 | dispatch pc=288, inst=LOAD_FAST(arg=6, lineno=116)\n", - "2023-05-15 11:07:29,635 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,635 | DEBUG | byteflow.py:278 | dispatch pc=290, inst=LOAD_CONST(arg=2, lineno=116)\n", - "2023-05-15 11:07:29,636 | DEBUG | byteflow.py:279 | stack ['$i288.0']\n", - "2023-05-15 11:07:29,636 | DEBUG | byteflow.py:278 | dispatch pc=292, inst=INPLACE_ADD(arg=None, lineno=116)\n", - "2023-05-15 11:07:29,637 | DEBUG | byteflow.py:279 | stack ['$i288.0', '$const290.1']\n", - "2023-05-15 11:07:29,637 | DEBUG | byteflow.py:278 | dispatch pc=294, inst=STORE_FAST(arg=6, lineno=116)\n", - "2023-05-15 11:07:29,638 | DEBUG | byteflow.py:279 | stack ['$292inplace_add.2']\n", - "2023-05-15 11:07:29,638 | DEBUG | byteflow.py:278 | dispatch pc=296, inst=LOAD_FAST(arg=6, lineno=115)\n", - "2023-05-15 11:07:29,639 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,639 | DEBUG | byteflow.py:278 | dispatch pc=298, inst=LOAD_FAST(arg=3, lineno=115)\n", - "2023-05-15 11:07:29,640 | DEBUG | byteflow.py:279 | stack ['$i296.3']\n", - "2023-05-15 11:07:29,641 | DEBUG | byteflow.py:278 | dispatch pc=300, inst=COMPARE_OP(arg=0, lineno=115)\n", - "2023-05-15 11:07:29,641 | DEBUG | byteflow.py:279 | stack ['$i296.3', '$high298.4']\n", - "2023-05-15 11:07:29,642 | DEBUG | byteflow.py:278 | dispatch pc=302, inst=POP_JUMP_IF_FALSE(arg=163, lineno=115)\n", - "2023-05-15 11:07:29,642 | DEBUG | byteflow.py:279 | stack ['$300compare_op.5']\n", - "2023-05-15 11:07:29,643 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=304, stack=(), blockstack=(), npush=0), Edge(pc=324, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,644 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=324 nstack_initial=0), State(pc_initial=332 nstack_initial=0), State(pc_initial=388 nstack_initial=0), State(pc_initial=304 nstack_initial=0), State(pc_initial=324 nstack_initial=0)])\n", - "2023-05-15 11:07:29,644 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=332 nstack_initial=0), State(pc_initial=388 nstack_initial=0), State(pc_initial=304 nstack_initial=0), State(pc_initial=324 nstack_initial=0)])\n", - "2023-05-15 11:07:29,645 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,645 | DEBUG | byteflow.py:278 | dispatch pc=332, inst=LOAD_DEREF(arg=1, lineno=117)\n", - "2023-05-15 11:07:29,646 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,646 | DEBUG | byteflow.py:278 | dispatch pc=334, inst=LOAD_FAST(arg=5, lineno=117)\n", - "2023-05-15 11:07:29,647 | DEBUG | byteflow.py:279 | stack ['$332load_deref.0']\n", - "2023-05-15 11:07:29,647 | DEBUG | byteflow.py:278 | dispatch pc=336, inst=LOAD_DEREF(arg=0, lineno=117)\n", - "2023-05-15 11:07:29,648 | DEBUG | byteflow.py:279 | stack ['$332load_deref.0', '$pivot334.1']\n", - "2023-05-15 11:07:29,648 | DEBUG | byteflow.py:278 | dispatch pc=338, inst=LOAD_FAST(arg=0, lineno=117)\n", - "2023-05-15 11:07:29,649 | DEBUG | byteflow.py:279 | stack ['$332load_deref.0', '$pivot334.1', '$336load_deref.2']\n", - "2023-05-15 11:07:29,649 | DEBUG | byteflow.py:278 | dispatch pc=340, inst=LOAD_FAST(arg=1, lineno=117)\n", - "2023-05-15 11:07:29,650 | DEBUG | byteflow.py:279 | stack ['$332load_deref.0', '$pivot334.1', '$336load_deref.2', '$A338.3']\n", - "2023-05-15 11:07:29,650 | DEBUG | byteflow.py:278 | dispatch pc=342, inst=LOAD_FAST(arg=7, lineno=117)\n", - "2023-05-15 11:07:29,651 | DEBUG | byteflow.py:279 | stack ['$332load_deref.0', '$pivot334.1', '$336load_deref.2', '$A338.3', '$R340.4']\n", - "2023-05-15 11:07:29,651 | DEBUG | byteflow.py:278 | dispatch pc=344, inst=BINARY_SUBSCR(arg=None, lineno=117)\n", - "2023-05-15 11:07:29,652 | DEBUG | byteflow.py:279 | stack ['$332load_deref.0', '$pivot334.1', '$336load_deref.2', '$A338.3', '$R340.4', '$j342.5']\n", - "2023-05-15 11:07:29,653 | DEBUG | byteflow.py:278 | dispatch pc=346, inst=CALL_FUNCTION(arg=2, lineno=117)\n", - "2023-05-15 11:07:29,653 | DEBUG | byteflow.py:279 | stack ['$332load_deref.0', '$pivot334.1', '$336load_deref.2', '$A338.3', '$344binary_subscr.6']\n", - "2023-05-15 11:07:29,654 | DEBUG | byteflow.py:278 | dispatch pc=348, inst=CALL_FUNCTION(arg=2, lineno=117)\n", - "2023-05-15 11:07:29,654 | DEBUG | byteflow.py:279 | stack ['$332load_deref.0', '$pivot334.1', '$346call_function.7']\n", - "2023-05-15 11:07:29,655 | DEBUG | byteflow.py:278 | dispatch pc=350, inst=POP_JUMP_IF_FALSE(arg=195, lineno=117)\n", - "2023-05-15 11:07:29,655 | DEBUG | byteflow.py:279 | stack ['$348call_function.8']\n", - "2023-05-15 11:07:29,656 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=352, stack=(), blockstack=(), npush=0), Edge(pc=388, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,656 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=388 nstack_initial=0), State(pc_initial=304 nstack_initial=0), State(pc_initial=324 nstack_initial=0), State(pc_initial=352 nstack_initial=0), State(pc_initial=388 nstack_initial=0)])\n", - "2023-05-15 11:07:29,657 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,657 | DEBUG | byteflow.py:278 | dispatch pc=388, inst=LOAD_FAST(arg=6, lineno=119)\n", - "2023-05-15 11:07:29,658 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,658 | DEBUG | byteflow.py:278 | dispatch pc=390, inst=LOAD_FAST(arg=7, lineno=119)\n", - "2023-05-15 11:07:29,659 | DEBUG | byteflow.py:279 | stack ['$i388.0']\n", - "2023-05-15 11:07:29,659 | DEBUG | byteflow.py:278 | dispatch pc=392, inst=COMPARE_OP(arg=5, lineno=119)\n", - "2023-05-15 11:07:29,660 | DEBUG | byteflow.py:279 | stack ['$i388.0', '$j390.1']\n", - "2023-05-15 11:07:29,660 | DEBUG | byteflow.py:278 | dispatch pc=394, inst=POP_JUMP_IF_FALSE(arg=200, lineno=119)\n", - "2023-05-15 11:07:29,661 | DEBUG | byteflow.py:279 | stack ['$392compare_op.2']\n", - "2023-05-15 11:07:29,661 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=396, stack=(), blockstack=(), npush=0), Edge(pc=398, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,662 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=304 nstack_initial=0), State(pc_initial=324 nstack_initial=0), State(pc_initial=352 nstack_initial=0), State(pc_initial=388 nstack_initial=0), State(pc_initial=396 nstack_initial=0), State(pc_initial=398 nstack_initial=0)])\n", - "2023-05-15 11:07:29,662 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,663 | DEBUG | byteflow.py:278 | dispatch pc=304, inst=LOAD_DEREF(arg=1, lineno=115)\n", - "2023-05-15 11:07:29,663 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,664 | DEBUG | byteflow.py:278 | dispatch pc=306, inst=LOAD_DEREF(arg=0, lineno=115)\n", - "2023-05-15 11:07:29,665 | DEBUG | byteflow.py:279 | stack ['$304load_deref.0']\n", - "2023-05-15 11:07:29,665 | DEBUG | byteflow.py:278 | dispatch pc=308, inst=LOAD_FAST(arg=0, lineno=115)\n", - "2023-05-15 11:07:29,665 | DEBUG | byteflow.py:279 | stack ['$304load_deref.0', '$306load_deref.1']\n", - "2023-05-15 11:07:29,666 | DEBUG | byteflow.py:278 | dispatch pc=310, inst=LOAD_FAST(arg=1, lineno=115)\n", - "2023-05-15 11:07:29,666 | DEBUG | byteflow.py:279 | stack ['$304load_deref.0', '$306load_deref.1', '$A308.2']\n", - "2023-05-15 11:07:29,666 | DEBUG | byteflow.py:278 | dispatch pc=312, inst=LOAD_FAST(arg=6, lineno=115)\n", - "2023-05-15 11:07:29,667 | DEBUG | byteflow.py:279 | stack ['$304load_deref.0', '$306load_deref.1', '$A308.2', '$R310.3']\n", - "2023-05-15 11:07:29,667 | DEBUG | byteflow.py:278 | dispatch pc=314, inst=BINARY_SUBSCR(arg=None, lineno=115)\n", - "2023-05-15 11:07:29,668 | DEBUG | byteflow.py:279 | stack ['$304load_deref.0', '$306load_deref.1', '$A308.2', '$R310.3', '$i312.4']\n", - "2023-05-15 11:07:29,668 | DEBUG | byteflow.py:278 | dispatch pc=316, inst=CALL_FUNCTION(arg=2, lineno=115)\n", - "2023-05-15 11:07:29,671 | DEBUG | byteflow.py:279 | stack ['$304load_deref.0', '$306load_deref.1', '$A308.2', '$314binary_subscr.5']\n", - "2023-05-15 11:07:29,671 | DEBUG | byteflow.py:278 | dispatch pc=318, inst=LOAD_FAST(arg=5, lineno=115)\n", - "2023-05-15 11:07:29,671 | DEBUG | byteflow.py:279 | stack ['$304load_deref.0', '$316call_function.6']\n", - "2023-05-15 11:07:29,672 | DEBUG | byteflow.py:278 | dispatch pc=320, inst=CALL_FUNCTION(arg=2, lineno=115)\n", - "2023-05-15 11:07:29,672 | DEBUG | byteflow.py:279 | stack ['$304load_deref.0', '$316call_function.6', '$pivot318.7']\n", - "2023-05-15 11:07:29,673 | DEBUG | byteflow.py:278 | dispatch pc=322, inst=POP_JUMP_IF_TRUE(arg=145, lineno=115)\n", - "2023-05-15 11:07:29,673 | DEBUG | byteflow.py:279 | stack ['$320call_function.8']\n", - "2023-05-15 11:07:29,674 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=324, stack=(), blockstack=(), npush=0), Edge(pc=288, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,674 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=324 nstack_initial=0), State(pc_initial=352 nstack_initial=0), State(pc_initial=388 nstack_initial=0), State(pc_initial=396 nstack_initial=0), State(pc_initial=398 nstack_initial=0), State(pc_initial=324 nstack_initial=0), State(pc_initial=288 nstack_initial=0)])\n", - "2023-05-15 11:07:29,674 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=352 nstack_initial=0), State(pc_initial=388 nstack_initial=0), State(pc_initial=396 nstack_initial=0), State(pc_initial=398 nstack_initial=0), State(pc_initial=324 nstack_initial=0), State(pc_initial=288 nstack_initial=0)])\n", - "2023-05-15 11:07:29,675 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,675 | DEBUG | byteflow.py:278 | dispatch pc=352, inst=LOAD_FAST(arg=7, lineno=118)\n", - "2023-05-15 11:07:29,676 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,676 | DEBUG | byteflow.py:278 | dispatch pc=354, inst=LOAD_CONST(arg=2, lineno=118)\n", - "2023-05-15 11:07:29,676 | DEBUG | byteflow.py:279 | stack ['$j352.0']\n", - "2023-05-15 11:07:29,677 | DEBUG | byteflow.py:278 | dispatch pc=356, inst=INPLACE_SUBTRACT(arg=None, lineno=118)\n", - "2023-05-15 11:07:29,677 | DEBUG | byteflow.py:279 | stack ['$j352.0', '$const354.1']\n", - "2023-05-15 11:07:29,678 | DEBUG | byteflow.py:278 | dispatch pc=358, inst=STORE_FAST(arg=7, lineno=118)\n", - "2023-05-15 11:07:29,678 | DEBUG | byteflow.py:279 | stack ['$356inplace_subtract.2']\n", - "2023-05-15 11:07:29,678 | DEBUG | byteflow.py:278 | dispatch pc=360, inst=LOAD_FAST(arg=7, lineno=117)\n", - "2023-05-15 11:07:29,679 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,679 | DEBUG | byteflow.py:278 | dispatch pc=362, inst=LOAD_FAST(arg=2, lineno=117)\n", - "2023-05-15 11:07:29,679 | DEBUG | byteflow.py:279 | stack ['$j360.3']\n", - "2023-05-15 11:07:29,680 | DEBUG | byteflow.py:278 | dispatch pc=364, inst=COMPARE_OP(arg=5, lineno=117)\n", - "2023-05-15 11:07:29,680 | DEBUG | byteflow.py:279 | stack ['$j360.3', '$low362.4']\n", - "2023-05-15 11:07:29,681 | DEBUG | byteflow.py:278 | dispatch pc=366, inst=POP_JUMP_IF_FALSE(arg=195, lineno=117)\n", - "2023-05-15 11:07:29,681 | DEBUG | byteflow.py:279 | stack ['$364compare_op.5']\n", - "2023-05-15 11:07:29,681 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=368, stack=(), blockstack=(), npush=0), Edge(pc=388, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,685 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=388 nstack_initial=0), State(pc_initial=396 nstack_initial=0), State(pc_initial=398 nstack_initial=0), State(pc_initial=324 nstack_initial=0), State(pc_initial=288 nstack_initial=0), State(pc_initial=368 nstack_initial=0), State(pc_initial=388 nstack_initial=0)])\n", - "2023-05-15 11:07:29,690 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=396 nstack_initial=0), State(pc_initial=398 nstack_initial=0), State(pc_initial=324 nstack_initial=0), State(pc_initial=288 nstack_initial=0), State(pc_initial=368 nstack_initial=0), State(pc_initial=388 nstack_initial=0)])\n", - "2023-05-15 11:07:29,690 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,690 | DEBUG | byteflow.py:278 | dispatch pc=396, inst=JUMP_FORWARD(arg=22, lineno=120)\n", - "2023-05-15 11:07:29,691 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,692 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=442, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,693 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=398 nstack_initial=0), State(pc_initial=324 nstack_initial=0), State(pc_initial=288 nstack_initial=0), State(pc_initial=368 nstack_initial=0), State(pc_initial=388 nstack_initial=0), State(pc_initial=442 nstack_initial=0)])\n", - "2023-05-15 11:07:29,693 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,694 | DEBUG | byteflow.py:278 | dispatch pc=398, inst=LOAD_FAST(arg=1, lineno=121)\n", - "2023-05-15 11:07:29,695 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,695 | DEBUG | byteflow.py:278 | dispatch pc=400, inst=LOAD_FAST(arg=7, lineno=121)\n", - "2023-05-15 11:07:29,696 | DEBUG | byteflow.py:279 | stack ['$R398.0']\n", - "2023-05-15 11:07:29,696 | DEBUG | byteflow.py:278 | dispatch pc=402, inst=BINARY_SUBSCR(arg=None, lineno=121)\n", - "2023-05-15 11:07:29,697 | DEBUG | byteflow.py:279 | stack ['$R398.0', '$j400.1']\n", - "2023-05-15 11:07:29,698 | DEBUG | byteflow.py:278 | dispatch pc=404, inst=LOAD_FAST(arg=1, lineno=121)\n", - "2023-05-15 11:07:29,700 | DEBUG | byteflow.py:279 | stack ['$402binary_subscr.2']\n", - "2023-05-15 11:07:29,703 | DEBUG | byteflow.py:278 | dispatch pc=406, inst=LOAD_FAST(arg=6, lineno=121)\n", - "2023-05-15 11:07:29,706 | DEBUG | byteflow.py:279 | stack ['$402binary_subscr.2', '$R404.3']\n", - "2023-05-15 11:07:29,707 | DEBUG | byteflow.py:278 | dispatch pc=408, inst=BINARY_SUBSCR(arg=None, lineno=121)\n", - "2023-05-15 11:07:29,707 | DEBUG | byteflow.py:279 | stack ['$402binary_subscr.2', '$R404.3', '$i406.4']\n", - "2023-05-15 11:07:29,708 | DEBUG | byteflow.py:278 | dispatch pc=410, inst=ROT_TWO(arg=None, lineno=121)\n", - "2023-05-15 11:07:29,709 | DEBUG | byteflow.py:279 | stack ['$402binary_subscr.2', '$408binary_subscr.5']\n", - "2023-05-15 11:07:29,710 | DEBUG | byteflow.py:278 | dispatch pc=412, inst=LOAD_FAST(arg=1, lineno=121)\n", - "2023-05-15 11:07:29,711 | DEBUG | byteflow.py:279 | stack ['$408binary_subscr.5', '$402binary_subscr.2']\n", - "2023-05-15 11:07:29,711 | DEBUG | byteflow.py:278 | dispatch pc=414, inst=LOAD_FAST(arg=6, lineno=121)\n", - "2023-05-15 11:07:29,713 | DEBUG | byteflow.py:279 | stack ['$408binary_subscr.5', '$402binary_subscr.2', '$R412.6']\n", - "2023-05-15 11:07:29,713 | DEBUG | byteflow.py:278 | dispatch pc=416, inst=STORE_SUBSCR(arg=None, lineno=121)\n", - "2023-05-15 11:07:29,714 | DEBUG | byteflow.py:279 | stack ['$408binary_subscr.5', '$402binary_subscr.2', '$R412.6', '$i414.7']\n", - "2023-05-15 11:07:29,714 | DEBUG | byteflow.py:278 | dispatch pc=418, inst=LOAD_FAST(arg=1, lineno=121)\n", - "2023-05-15 11:07:29,715 | DEBUG | byteflow.py:279 | stack ['$408binary_subscr.5']\n", - "2023-05-15 11:07:29,716 | DEBUG | byteflow.py:278 | dispatch pc=420, inst=LOAD_FAST(arg=7, lineno=121)\n", - "2023-05-15 11:07:29,716 | DEBUG | byteflow.py:279 | stack ['$408binary_subscr.5', '$R418.8']\n", - "2023-05-15 11:07:29,717 | DEBUG | byteflow.py:278 | dispatch pc=422, inst=STORE_SUBSCR(arg=None, lineno=121)\n", - "2023-05-15 11:07:29,717 | DEBUG | byteflow.py:279 | stack ['$408binary_subscr.5', '$R418.8', '$j420.9']\n", - "2023-05-15 11:07:29,718 | DEBUG | byteflow.py:278 | dispatch pc=424, inst=LOAD_FAST(arg=6, lineno=122)\n", - "2023-05-15 11:07:29,718 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,719 | DEBUG | byteflow.py:278 | dispatch pc=426, inst=LOAD_CONST(arg=2, lineno=122)\n", - "2023-05-15 11:07:29,719 | DEBUG | byteflow.py:279 | stack ['$i424.10']\n", - "2023-05-15 11:07:29,722 | DEBUG | byteflow.py:278 | dispatch pc=428, inst=INPLACE_ADD(arg=None, lineno=122)\n", - "2023-05-15 11:07:29,724 | DEBUG | byteflow.py:279 | stack ['$i424.10', '$const426.11']\n", - "2023-05-15 11:07:29,724 | DEBUG | byteflow.py:278 | dispatch pc=430, inst=STORE_FAST(arg=6, lineno=122)\n", - "2023-05-15 11:07:29,725 | DEBUG | byteflow.py:279 | stack ['$428inplace_add.12']\n", - "2023-05-15 11:07:29,725 | DEBUG | byteflow.py:278 | dispatch pc=432, inst=LOAD_FAST(arg=7, lineno=123)\n", - "2023-05-15 11:07:29,727 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,727 | DEBUG | byteflow.py:278 | dispatch pc=434, inst=LOAD_CONST(arg=2, lineno=123)\n", - "2023-05-15 11:07:29,728 | DEBUG | byteflow.py:279 | stack ['$j432.13']\n", - "2023-05-15 11:07:29,729 | DEBUG | byteflow.py:278 | dispatch pc=436, inst=INPLACE_SUBTRACT(arg=None, lineno=123)\n", - "2023-05-15 11:07:29,729 | DEBUG | byteflow.py:279 | stack ['$j432.13', '$const434.14']\n", - "2023-05-15 11:07:29,730 | DEBUG | byteflow.py:278 | dispatch pc=438, inst=STORE_FAST(arg=7, lineno=123)\n", - "2023-05-15 11:07:29,730 | DEBUG | byteflow.py:279 | stack ['$436inplace_subtract.15']\n", - "2023-05-15 11:07:29,731 | DEBUG | byteflow.py:278 | dispatch pc=440, inst=JUMP_ABSOLUTE(arg=131, lineno=114)\n", - "2023-05-15 11:07:29,731 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,732 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=260, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,732 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=324 nstack_initial=0), State(pc_initial=288 nstack_initial=0), State(pc_initial=368 nstack_initial=0), State(pc_initial=388 nstack_initial=0), State(pc_initial=442 nstack_initial=0), State(pc_initial=260 nstack_initial=0)])\n", - "2023-05-15 11:07:29,733 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=288 nstack_initial=0), State(pc_initial=368 nstack_initial=0), State(pc_initial=388 nstack_initial=0), State(pc_initial=442 nstack_initial=0), State(pc_initial=260 nstack_initial=0)])\n", - "2023-05-15 11:07:29,733 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=368 nstack_initial=0), State(pc_initial=388 nstack_initial=0), State(pc_initial=442 nstack_initial=0), State(pc_initial=260 nstack_initial=0)])\n", - "2023-05-15 11:07:29,737 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,738 | DEBUG | byteflow.py:278 | dispatch pc=368, inst=LOAD_DEREF(arg=1, lineno=117)\n", - "2023-05-15 11:07:29,738 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,739 | DEBUG | byteflow.py:278 | dispatch pc=370, inst=LOAD_FAST(arg=5, lineno=117)\n", - "2023-05-15 11:07:29,740 | DEBUG | byteflow.py:279 | stack ['$368load_deref.0']\n", - "2023-05-15 11:07:29,741 | DEBUG | byteflow.py:278 | dispatch pc=372, inst=LOAD_DEREF(arg=0, lineno=117)\n", - "2023-05-15 11:07:29,742 | DEBUG | byteflow.py:279 | stack ['$368load_deref.0', '$pivot370.1']\n", - "2023-05-15 11:07:29,742 | DEBUG | byteflow.py:278 | dispatch pc=374, inst=LOAD_FAST(arg=0, lineno=117)\n", - "2023-05-15 11:07:29,743 | DEBUG | byteflow.py:279 | stack ['$368load_deref.0', '$pivot370.1', '$372load_deref.2']\n", - "2023-05-15 11:07:29,743 | DEBUG | byteflow.py:278 | dispatch pc=376, inst=LOAD_FAST(arg=1, lineno=117)\n", - "2023-05-15 11:07:29,745 | DEBUG | byteflow.py:279 | stack ['$368load_deref.0', '$pivot370.1', '$372load_deref.2', '$A374.3']\n", - "2023-05-15 11:07:29,745 | DEBUG | byteflow.py:278 | dispatch pc=378, inst=LOAD_FAST(arg=7, lineno=117)\n", - "2023-05-15 11:07:29,746 | DEBUG | byteflow.py:279 | stack ['$368load_deref.0', '$pivot370.1', '$372load_deref.2', '$A374.3', '$R376.4']\n", - "2023-05-15 11:07:29,746 | DEBUG | byteflow.py:278 | dispatch pc=380, inst=BINARY_SUBSCR(arg=None, lineno=117)\n", - "2023-05-15 11:07:29,748 | DEBUG | byteflow.py:279 | stack ['$368load_deref.0', '$pivot370.1', '$372load_deref.2', '$A374.3', '$R376.4', '$j378.5']\n", - "2023-05-15 11:07:29,748 | DEBUG | byteflow.py:278 | dispatch pc=382, inst=CALL_FUNCTION(arg=2, lineno=117)\n", - "2023-05-15 11:07:29,749 | DEBUG | byteflow.py:279 | stack ['$368load_deref.0', '$pivot370.1', '$372load_deref.2', '$A374.3', '$380binary_subscr.6']\n", - "2023-05-15 11:07:29,750 | DEBUG | byteflow.py:278 | dispatch pc=384, inst=CALL_FUNCTION(arg=2, lineno=117)\n", - "2023-05-15 11:07:29,751 | DEBUG | byteflow.py:279 | stack ['$368load_deref.0', '$pivot370.1', '$382call_function.7']\n", - "2023-05-15 11:07:29,752 | DEBUG | byteflow.py:278 | dispatch pc=386, inst=POP_JUMP_IF_TRUE(arg=177, lineno=117)\n", - "2023-05-15 11:07:29,752 | DEBUG | byteflow.py:279 | stack ['$384call_function.8']\n", - "2023-05-15 11:07:29,753 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=388, stack=(), blockstack=(), npush=0), Edge(pc=352, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:29,754 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=388 nstack_initial=0), State(pc_initial=442 nstack_initial=0), State(pc_initial=260 nstack_initial=0), State(pc_initial=388 nstack_initial=0), State(pc_initial=352 nstack_initial=0)])\n", - "2023-05-15 11:07:29,755 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=442 nstack_initial=0), State(pc_initial=260 nstack_initial=0), State(pc_initial=388 nstack_initial=0), State(pc_initial=352 nstack_initial=0)])\n", - "2023-05-15 11:07:29,756 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:29,756 | DEBUG | byteflow.py:278 | dispatch pc=442, inst=LOAD_FAST(arg=1, lineno=126)\n", - "2023-05-15 11:07:29,757 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,757 | DEBUG | byteflow.py:278 | dispatch pc=444, inst=LOAD_FAST(arg=3, lineno=126)\n", - "2023-05-15 11:07:29,758 | DEBUG | byteflow.py:279 | stack ['$R442.0']\n", - "2023-05-15 11:07:29,759 | DEBUG | byteflow.py:278 | dispatch pc=446, inst=BINARY_SUBSCR(arg=None, lineno=126)\n", - "2023-05-15 11:07:29,759 | DEBUG | byteflow.py:279 | stack ['$R442.0', '$high444.1']\n", - "2023-05-15 11:07:29,760 | DEBUG | byteflow.py:278 | dispatch pc=448, inst=LOAD_FAST(arg=1, lineno=126)\n", - "2023-05-15 11:07:29,760 | DEBUG | byteflow.py:279 | stack ['$446binary_subscr.2']\n", - "2023-05-15 11:07:29,761 | DEBUG | byteflow.py:278 | dispatch pc=450, inst=LOAD_FAST(arg=6, lineno=126)\n", - "2023-05-15 11:07:29,761 | DEBUG | byteflow.py:279 | stack ['$446binary_subscr.2', '$R448.3']\n", - "2023-05-15 11:07:29,762 | DEBUG | byteflow.py:278 | dispatch pc=452, inst=BINARY_SUBSCR(arg=None, lineno=126)\n", - "2023-05-15 11:07:29,762 | DEBUG | byteflow.py:279 | stack ['$446binary_subscr.2', '$R448.3', '$i450.4']\n", - "2023-05-15 11:07:29,763 | DEBUG | byteflow.py:278 | dispatch pc=454, inst=ROT_TWO(arg=None, lineno=126)\n", - "2023-05-15 11:07:29,763 | DEBUG | byteflow.py:279 | stack ['$446binary_subscr.2', '$452binary_subscr.5']\n", - "2023-05-15 11:07:29,764 | DEBUG | byteflow.py:278 | dispatch pc=456, inst=LOAD_FAST(arg=1, lineno=126)\n", - "2023-05-15 11:07:29,764 | DEBUG | byteflow.py:279 | stack ['$452binary_subscr.5', '$446binary_subscr.2']\n", - "2023-05-15 11:07:29,765 | DEBUG | byteflow.py:278 | dispatch pc=458, inst=LOAD_FAST(arg=6, lineno=126)\n", - "2023-05-15 11:07:29,769 | DEBUG | byteflow.py:279 | stack ['$452binary_subscr.5', '$446binary_subscr.2', '$R456.6']\n", - "2023-05-15 11:07:29,770 | DEBUG | byteflow.py:278 | dispatch pc=460, inst=STORE_SUBSCR(arg=None, lineno=126)\n", - "2023-05-15 11:07:29,771 | DEBUG | byteflow.py:279 | stack ['$452binary_subscr.5', '$446binary_subscr.2', '$R456.6', '$i458.7']\n", - "2023-05-15 11:07:29,771 | DEBUG | byteflow.py:278 | dispatch pc=462, inst=LOAD_FAST(arg=1, lineno=126)\n", - "2023-05-15 11:07:29,773 | DEBUG | byteflow.py:279 | stack ['$452binary_subscr.5']\n", - "2023-05-15 11:07:29,773 | DEBUG | byteflow.py:278 | dispatch pc=464, inst=LOAD_FAST(arg=3, lineno=126)\n", - "2023-05-15 11:07:29,774 | DEBUG | byteflow.py:279 | stack ['$452binary_subscr.5', '$R462.8']\n", - "2023-05-15 11:07:29,774 | DEBUG | byteflow.py:278 | dispatch pc=466, inst=STORE_SUBSCR(arg=None, lineno=126)\n", - "2023-05-15 11:07:29,775 | DEBUG | byteflow.py:279 | stack ['$452binary_subscr.5', '$R462.8', '$high464.9']\n", - "2023-05-15 11:07:29,775 | DEBUG | byteflow.py:278 | dispatch pc=468, inst=LOAD_FAST(arg=6, lineno=127)\n", - "2023-05-15 11:07:29,776 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:29,777 | DEBUG | byteflow.py:278 | dispatch pc=470, inst=RETURN_VALUE(arg=None, lineno=127)\n", - "2023-05-15 11:07:29,778 | DEBUG | byteflow.py:279 | stack ['$i468.10']\n", - "2023-05-15 11:07:29,778 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:29,779 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=260 nstack_initial=0), State(pc_initial=388 nstack_initial=0), State(pc_initial=352 nstack_initial=0)])\n", - "2023-05-15 11:07:29,779 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=388 nstack_initial=0), State(pc_initial=352 nstack_initial=0)])\n", - "2023-05-15 11:07:29,780 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=352 nstack_initial=0)])\n", - "2023-05-15 11:07:29,780 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:29,781 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=10 nstack_initial=0): set(),\n", - " State(pc_initial=14 nstack_initial=0): set(),\n", - " State(pc_initial=22 nstack_initial=0): set(),\n", - " State(pc_initial=26 nstack_initial=0): set(),\n", - " State(pc_initial=68 nstack_initial=0): set(),\n", - " State(pc_initial=94 nstack_initial=0): set(),\n", - " State(pc_initial=124 nstack_initial=0): set(),\n", - " State(pc_initial=150 nstack_initial=0): set(),\n", - " State(pc_initial=180 nstack_initial=0): set(),\n", - " State(pc_initial=206 nstack_initial=0): set(),\n", - " State(pc_initial=260 nstack_initial=0): set(),\n", - " State(pc_initial=268 nstack_initial=0): set(),\n", - " State(pc_initial=288 nstack_initial=0): set(),\n", - " State(pc_initial=304 nstack_initial=0): set(),\n", - " State(pc_initial=324 nstack_initial=0): set(),\n", - " State(pc_initial=332 nstack_initial=0): set(),\n", - " State(pc_initial=352 nstack_initial=0): set(),\n", - " State(pc_initial=368 nstack_initial=0): set(),\n", - " State(pc_initial=388 nstack_initial=0): set(),\n", - " State(pc_initial=396 nstack_initial=0): set(),\n", - " State(pc_initial=398 nstack_initial=0): set(),\n", - " State(pc_initial=442 nstack_initial=0): set()})\n", - "2023-05-15 11:07:29,782 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:29,782 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:29,783 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:29,783 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:29,784 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:29,784 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:29,785 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$low2.0'}), (4, {'res': '$const4.1'}), (6, {'lhs': '$low2.0', 'rhs': '$const4.1', 'res': '$6compare_op.2'}), (8, {'pred': '$6compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={10: (), 14: ()})\n", - "2023-05-15 11:07:29,785 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=10 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((10, {'res': '$assertion_error10.0'}), (12, {'exc': '$assertion_error10.0'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:29,786 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=14 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((14, {'res': '$high14.0'}), (16, {'res': '$low16.1'}), (18, {'lhs': '$high14.0', 'rhs': '$low16.1', 'res': '$18compare_op.2'}), (20, {'pred': '$18compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={22: (), 26: ()})\n", - "2023-05-15 11:07:29,786 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=22 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((22, {'res': '$assertion_error22.0'}), (24, {'exc': '$assertion_error22.0'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:29,787 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=26 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((26, {'res': '$low26.0'}), (28, {'res': '$high28.1'}), (30, {'lhs': '$low26.0', 'rhs': '$high28.1', 'res': '$30binary_add.2'}), (32, {'res': '$const32.3'}), (34, {'lhs': '$30binary_add.2', 'rhs': '$const32.3', 'res': '$34binary_rshift.4'}), (36, {'value': '$34binary_rshift.4'}), (38, {'res': '$38load_deref.5'}), (40, {'res': '$40load_deref.6'}), (42, {'res': '$A42.7'}), (44, {'res': '$R44.8'}), (46, {'res': '$mid46.9'}), (48, {'index': '$mid46.9', 'target': '$R44.8', 'res': '$48binary_subscr.10'}), (50, {'func': '$40load_deref.6', 'args': ['$A42.7', '$48binary_subscr.10'], 'res': '$50call_function.11'}), (52, {'res': '$52load_deref.12'}), (54, {'res': '$A54.13'}), (56, {'res': '$R56.14'}), (58, {'res': '$low58.15'}), (60, {'index': '$low58.15', 'target': '$R56.14', 'res': '$60binary_subscr.16'}), (62, {'func': '$52load_deref.12', 'args': ['$A54.13', '$60binary_subscr.16'], 'res': '$62call_function.17'}), (64, {'func': '$38load_deref.5', 'args': ['$50call_function.11', '$62call_function.17'], 'res': '$64call_function.18'}), (66, {'pred': '$64call_function.18'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={68: (), 94: ()})\n", - "2023-05-15 11:07:29,788 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=68 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((68, {'res': '$R68.0'}), (70, {'res': '$mid70.1'}), (72, {'index': '$mid70.1', 'target': '$R68.0', 'res': '$72binary_subscr.2'}), (74, {'res': '$R74.3'}), (76, {'res': '$low76.4'}), (78, {'index': '$low76.4', 'target': '$R74.3', 'res': '$78binary_subscr.5'}), (82, {'res': '$R82.6'}), (84, {'res': '$low84.7'}), (86, {'target': '$R82.6', 'index': '$low84.7', 'value': '$72binary_subscr.2'}), (88, {'res': '$R88.8'}), (90, {'res': '$mid90.9'}), (92, {'target': '$R88.8', 'index': '$mid90.9', 'value': '$78binary_subscr.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={94: ()})\n", - "2023-05-15 11:07:29,788 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=94 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((94, {'res': '$94load_deref.0'}), (96, {'res': '$96load_deref.1'}), (98, {'res': '$A98.2'}), (100, {'res': '$R100.3'}), (102, {'res': '$high102.4'}), (104, {'index': '$high102.4', 'target': '$R100.3', 'res': '$104binary_subscr.5'}), (106, {'func': '$96load_deref.1', 'args': ['$A98.2', '$104binary_subscr.5'], 'res': '$106call_function.6'}), (108, {'res': '$108load_deref.7'}), (110, {'res': '$A110.8'}), (112, {'res': '$R112.9'}), (114, {'res': '$mid114.10'}), (116, {'index': '$mid114.10', 'target': '$R112.9', 'res': '$116binary_subscr.11'}), (118, {'func': '$108load_deref.7', 'args': ['$A110.8', '$116binary_subscr.11'], 'res': '$118call_function.12'}), (120, {'func': '$94load_deref.0', 'args': ['$106call_function.6', '$118call_function.12'], 'res': '$120call_function.13'}), (122, {'pred': '$120call_function.13'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={124: (), 150: ()})\n", - "2023-05-15 11:07:29,789 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=124 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((124, {'res': '$R124.0'}), (126, {'res': '$mid126.1'}), (128, {'index': '$mid126.1', 'target': '$R124.0', 'res': '$128binary_subscr.2'}), (130, {'res': '$R130.3'}), (132, {'res': '$high132.4'}), (134, {'index': '$high132.4', 'target': '$R130.3', 'res': '$134binary_subscr.5'}), (138, {'res': '$R138.6'}), (140, {'res': '$high140.7'}), (142, {'target': '$R138.6', 'index': '$high140.7', 'value': '$128binary_subscr.2'}), (144, {'res': '$R144.8'}), (146, {'res': '$mid146.9'}), (148, {'target': '$R144.8', 'index': '$mid146.9', 'value': '$134binary_subscr.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={150: ()})\n", - "2023-05-15 11:07:29,789 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=150 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((150, {'res': '$150load_deref.0'}), (152, {'res': '$152load_deref.1'}), (154, {'res': '$A154.2'}), (156, {'res': '$R156.3'}), (158, {'res': '$mid158.4'}), (160, {'index': '$mid158.4', 'target': '$R156.3', 'res': '$160binary_subscr.5'}), (162, {'func': '$152load_deref.1', 'args': ['$A154.2', '$160binary_subscr.5'], 'res': '$162call_function.6'}), (164, {'res': '$164load_deref.7'}), (166, {'res': '$A166.8'}), (168, {'res': '$R168.9'}), (170, {'res': '$low170.10'}), (172, {'index': '$low170.10', 'target': '$R168.9', 'res': '$172binary_subscr.11'}), (174, {'func': '$164load_deref.7', 'args': ['$A166.8', '$172binary_subscr.11'], 'res': '$174call_function.12'}), (176, {'func': '$150load_deref.0', 'args': ['$162call_function.6', '$174call_function.12'], 'res': '$176call_function.13'}), (178, {'pred': '$176call_function.13'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={180: (), 206: ()})\n", - "2023-05-15 11:07:29,790 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=180 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((180, {'res': '$R180.0'}), (182, {'res': '$mid182.1'}), (184, {'index': '$mid182.1', 'target': '$R180.0', 'res': '$184binary_subscr.2'}), (186, {'res': '$R186.3'}), (188, {'res': '$low188.4'}), (190, {'index': '$low188.4', 'target': '$R186.3', 'res': '$190binary_subscr.5'}), (194, {'res': '$R194.6'}), (196, {'res': '$low196.7'}), (198, {'target': '$R194.6', 'index': '$low196.7', 'value': '$184binary_subscr.2'}), (200, {'res': '$R200.8'}), (202, {'res': '$mid202.9'}), (204, {'target': '$R200.8', 'index': '$mid202.9', 'value': '$190binary_subscr.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={206: ()})\n", - "2023-05-15 11:07:29,790 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=206 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((206, {'res': '$206load_deref.0'}), (208, {'res': '$A208.1'}), (210, {'res': '$R210.2'}), (212, {'res': '$mid212.3'}), (214, {'index': '$mid212.3', 'target': '$R210.2', 'res': '$214binary_subscr.4'}), (216, {'func': '$206load_deref.0', 'args': ['$A208.1', '$214binary_subscr.4'], 'res': '$216call_function.5'}), (218, {'value': '$216call_function.5'}), (220, {'res': '$R220.6'}), (222, {'res': '$mid222.7'}), (224, {'index': '$mid222.7', 'target': '$R220.6', 'res': '$224binary_subscr.8'}), (226, {'res': '$R226.9'}), (228, {'res': '$high228.10'}), (230, {'index': '$high228.10', 'target': '$R226.9', 'res': '$230binary_subscr.11'}), (234, {'res': '$R234.12'}), (236, {'res': '$high236.13'}), (238, {'target': '$R234.12', 'index': '$high236.13', 'value': '$224binary_subscr.8'}), (240, {'res': '$R240.14'}), (242, {'res': '$mid242.15'}), (244, {'target': '$R240.14', 'index': '$mid242.15', 'value': '$230binary_subscr.11'}), (246, {'res': '$low246.16'}), (248, {'value': '$low246.16'}), (250, {'res': '$high250.17'}), (252, {'res': '$const252.18'}), (254, {'lhs': '$high250.17', 'rhs': '$const252.18', 'res': '$254binary_subtract.19'}), (256, {'value': '$254binary_subtract.19'}), (258, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={260: ()})\n", - "2023-05-15 11:07:29,791 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=260 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((260, {'res': '$i260.0'}), (262, {'res': '$high262.1'}), (264, {'lhs': '$i260.0', 'rhs': '$high262.1', 'res': '$264compare_op.2'}), (266, {'pred': '$264compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={268: (), 324: ()})\n", - "2023-05-15 11:07:29,792 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=268 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((268, {'res': '$268load_deref.0'}), (270, {'res': '$270load_deref.1'}), (272, {'res': '$A272.2'}), (274, {'res': '$R274.3'}), (276, {'res': '$i276.4'}), (278, {'index': '$i276.4', 'target': '$R274.3', 'res': '$278binary_subscr.5'}), (280, {'func': '$270load_deref.1', 'args': ['$A272.2', '$278binary_subscr.5'], 'res': '$280call_function.6'}), (282, {'res': '$pivot282.7'}), (284, {'func': '$268load_deref.0', 'args': ['$280call_function.6', '$pivot282.7'], 'res': '$284call_function.8'}), (286, {'pred': '$284call_function.8'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={288: (), 324: ()})\n", - "2023-05-15 11:07:29,792 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=288 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((288, {'res': '$i288.0'}), (290, {'res': '$const290.1'}), (292, {'lhs': '$i288.0', 'rhs': '$const290.1', 'res': '$292inplace_add.2'}), (294, {'value': '$292inplace_add.2'}), (296, {'res': '$i296.3'}), (298, {'res': '$high298.4'}), (300, {'lhs': '$i296.3', 'rhs': '$high298.4', 'res': '$300compare_op.5'}), (302, {'pred': '$300compare_op.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={304: (), 324: ()})\n", - "2023-05-15 11:07:29,793 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=304 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((304, {'res': '$304load_deref.0'}), (306, {'res': '$306load_deref.1'}), (308, {'res': '$A308.2'}), (310, {'res': '$R310.3'}), (312, {'res': '$i312.4'}), (314, {'index': '$i312.4', 'target': '$R310.3', 'res': '$314binary_subscr.5'}), (316, {'func': '$306load_deref.1', 'args': ['$A308.2', '$314binary_subscr.5'], 'res': '$316call_function.6'}), (318, {'res': '$pivot318.7'}), (320, {'func': '$304load_deref.0', 'args': ['$316call_function.6', '$pivot318.7'], 'res': '$320call_function.8'}), (322, {'pred': '$320call_function.8'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={324: (), 288: ()})\n", - "2023-05-15 11:07:29,793 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=324 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((324, {'res': '$j324.0'}), (326, {'res': '$low326.1'}), (328, {'lhs': '$j324.0', 'rhs': '$low326.1', 'res': '$328compare_op.2'}), (330, {'pred': '$328compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={332: (), 388: ()})\n", - "2023-05-15 11:07:29,794 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=332 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((332, {'res': '$332load_deref.0'}), (334, {'res': '$pivot334.1'}), (336, {'res': '$336load_deref.2'}), (338, {'res': '$A338.3'}), (340, {'res': '$R340.4'}), (342, {'res': '$j342.5'}), (344, {'index': '$j342.5', 'target': '$R340.4', 'res': '$344binary_subscr.6'}), (346, {'func': '$336load_deref.2', 'args': ['$A338.3', '$344binary_subscr.6'], 'res': '$346call_function.7'}), (348, {'func': '$332load_deref.0', 'args': ['$pivot334.1', '$346call_function.7'], 'res': '$348call_function.8'}), (350, {'pred': '$348call_function.8'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={352: (), 388: ()})\n", - "2023-05-15 11:07:29,794 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=352 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((352, {'res': '$j352.0'}), (354, {'res': '$const354.1'}), (356, {'lhs': '$j352.0', 'rhs': '$const354.1', 'res': '$356inplace_subtract.2'}), (358, {'value': '$356inplace_subtract.2'}), (360, {'res': '$j360.3'}), (362, {'res': '$low362.4'}), (364, {'lhs': '$j360.3', 'rhs': '$low362.4', 'res': '$364compare_op.5'}), (366, {'pred': '$364compare_op.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={368: (), 388: ()})\n", - "2023-05-15 11:07:29,795 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=368 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((368, {'res': '$368load_deref.0'}), (370, {'res': '$pivot370.1'}), (372, {'res': '$372load_deref.2'}), (374, {'res': '$A374.3'}), (376, {'res': '$R376.4'}), (378, {'res': '$j378.5'}), (380, {'index': '$j378.5', 'target': '$R376.4', 'res': '$380binary_subscr.6'}), (382, {'func': '$372load_deref.2', 'args': ['$A374.3', '$380binary_subscr.6'], 'res': '$382call_function.7'}), (384, {'func': '$368load_deref.0', 'args': ['$pivot370.1', '$382call_function.7'], 'res': '$384call_function.8'}), (386, {'pred': '$384call_function.8'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={388: (), 352: ()})\n", - "2023-05-15 11:07:29,795 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=388 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((388, {'res': '$i388.0'}), (390, {'res': '$j390.1'}), (392, {'lhs': '$i388.0', 'rhs': '$j390.1', 'res': '$392compare_op.2'}), (394, {'pred': '$392compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={396: (), 398: ()})\n", - "2023-05-15 11:07:29,796 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=396 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((396, {}),), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={442: ()})\n", - "2023-05-15 11:07:29,796 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=398 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((398, {'res': '$R398.0'}), (400, {'res': '$j400.1'}), (402, {'index': '$j400.1', 'target': '$R398.0', 'res': '$402binary_subscr.2'}), (404, {'res': '$R404.3'}), (406, {'res': '$i406.4'}), (408, {'index': '$i406.4', 'target': '$R404.3', 'res': '$408binary_subscr.5'}), (412, {'res': '$R412.6'}), (414, {'res': '$i414.7'}), (416, {'target': '$R412.6', 'index': '$i414.7', 'value': '$402binary_subscr.2'}), (418, {'res': '$R418.8'}), (420, {'res': '$j420.9'}), (422, {'target': '$R418.8', 'index': '$j420.9', 'value': '$408binary_subscr.5'}), (424, {'res': '$i424.10'}), (426, {'res': '$const426.11'}), (428, {'lhs': '$i424.10', 'rhs': '$const426.11', 'res': '$428inplace_add.12'}), (430, {'value': '$428inplace_add.12'}), (432, {'res': '$j432.13'}), (434, {'res': '$const434.14'}), (436, {'lhs': '$j432.13', 'rhs': '$const434.14', 'res': '$436inplace_subtract.15'}), (438, {'value': '$436inplace_subtract.15'}), (440, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={260: ()})\n", - "2023-05-15 11:07:29,797 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=442 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((442, {'res': '$R442.0'}), (444, {'res': '$high444.1'}), (446, {'index': '$high444.1', 'target': '$R442.0', 'res': '$446binary_subscr.2'}), (448, {'res': '$R448.3'}), (450, {'res': '$i450.4'}), (452, {'index': '$i450.4', 'target': '$R448.3', 'res': '$452binary_subscr.5'}), (456, {'res': '$R456.6'}), (458, {'res': '$i458.7'}), (460, {'target': '$R456.6', 'index': '$i458.7', 'value': '$446binary_subscr.2'}), (462, {'res': '$R462.8'}), (464, {'res': '$high464.9'}), (466, {'target': '$R462.8', 'index': '$high464.9', 'value': '$452binary_subscr.5'}), (468, {'res': '$i468.10'}), (470, {'retval': '$i468.10', 'castval': '$470return_value.11'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:29,803 | DEBUG | interpreter.py:1342 | label 0:\n", - " A = arg(0, name=A) ['A']\n", - " R = arg(1, name=R) ['R']\n", - " low = arg(2, name=low) ['low']\n", - " high = arg(3, name=high) ['high']\n", - " $const4.1 = const(int, 0) ['$const4.1']\n", - " $6compare_op.2 = low >= $const4.1 ['$6compare_op.2', '$const4.1', 'low']\n", - " bool8 = global(bool: ) ['bool8']\n", - " $8pred = call bool8($6compare_op.2, func=bool8, args=(Var($6compare_op.2, quicksort.py:92),), kws=(), vararg=None, varkwarg=None, target=None) ['$6compare_op.2', '$8pred', 'bool8']\n", - " branch $8pred, 14, 10 ['$8pred']\n", - "label 10:\n", - " $assertion_error10.0 = global(AssertionError: ) ['$assertion_error10.0']\n", - " raise $assertion_error10.0 ['$assertion_error10.0']\n", - "label 14:\n", - " $18compare_op.2 = high > low ['$18compare_op.2', 'high', 'low']\n", - " bool20 = global(bool: ) ['bool20']\n", - " $20pred = call bool20($18compare_op.2, func=bool20, args=(Var($18compare_op.2, quicksort.py:93),), kws=(), vararg=None, varkwarg=None, target=None) ['$18compare_op.2', '$20pred', 'bool20']\n", - " branch $20pred, 26, 22 ['$20pred']\n", - "label 22:\n", - " $assertion_error22.0 = global(AssertionError: ) ['$assertion_error22.0']\n", - " raise $assertion_error22.0 ['$assertion_error22.0']\n", - "label 26:\n", - " $30binary_add.2 = low + high ['$30binary_add.2', 'high', 'low']\n", - " $const32.3 = const(int, 1) ['$const32.3']\n", - " mid = $30binary_add.2 >> $const32.3 ['$30binary_add.2', '$const32.3', 'mid']\n", - " $38load_deref.5 = freevar(LT: ) ['$38load_deref.5']\n", - " $40load_deref.6 = freevar(GET: .GET at 0x7ff8dbbf3be0>) ['$40load_deref.6']\n", - " $48binary_subscr.10 = getitem(value=R, index=mid, fn=) ['$48binary_subscr.10', 'R', 'mid']\n", - " $50call_function.11 = call $40load_deref.6(A, $48binary_subscr.10, func=$40load_deref.6, args=[Var(A, quicksort.py:92), Var($48binary_subscr.10, quicksort.py:102)], kws=(), vararg=None, varkwarg=None, target=None) ['$40load_deref.6', '$48binary_subscr.10', '$50call_function.11', 'A']\n", - " $52load_deref.12 = freevar(GET: .GET at 0x7ff8dbbf3be0>) ['$52load_deref.12']\n", - " $60binary_subscr.16 = getitem(value=R, index=low, fn=) ['$60binary_subscr.16', 'R', 'low']\n", - " $62call_function.17 = call $52load_deref.12(A, $60binary_subscr.16, func=$52load_deref.12, args=[Var(A, quicksort.py:92), Var($60binary_subscr.16, quicksort.py:102)], kws=(), vararg=None, varkwarg=None, target=None) ['$52load_deref.12', '$60binary_subscr.16', '$62call_function.17', 'A']\n", - " $64call_function.18 = call $38load_deref.5($50call_function.11, $62call_function.17, func=$38load_deref.5, args=[Var($50call_function.11, quicksort.py:102), Var($62call_function.17, quicksort.py:102)], kws=(), vararg=None, varkwarg=None, target=None) ['$38load_deref.5', '$50call_function.11', '$62call_function.17', '$64call_function.18']\n", - " bool66 = global(bool: ) ['bool66']\n", - " $66pred = call bool66($64call_function.18, func=bool66, args=(Var($64call_function.18, quicksort.py:102),), kws=(), vararg=None, varkwarg=None, target=None) ['$64call_function.18', '$66pred', 'bool66']\n", - " branch $66pred, 68, 94 ['$66pred']\n", - "label 68:\n", - " $72binary_subscr.2 = getitem(value=R, index=mid, fn=) ['$72binary_subscr.2', 'R', 'mid']\n", - " $78binary_subscr.5 = getitem(value=R, index=low, fn=) ['$78binary_subscr.5', 'R', 'low']\n", - " R[low] = $72binary_subscr.2 ['$72binary_subscr.2', 'R', 'low']\n", - " R[mid] = $78binary_subscr.5 ['$78binary_subscr.5', 'R', 'mid']\n", - " jump 94 []\n", - "label 94:\n", - " $94load_deref.0 = freevar(LT: ) ['$94load_deref.0']\n", - " $96load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>) ['$96load_deref.1']\n", - " $104binary_subscr.5 = getitem(value=R, index=high, fn=) ['$104binary_subscr.5', 'R', 'high']\n", - " $106call_function.6 = call $96load_deref.1(A, $104binary_subscr.5, func=$96load_deref.1, args=[Var(A, quicksort.py:92), Var($104binary_subscr.5, quicksort.py:104)], kws=(), vararg=None, varkwarg=None, target=None) ['$104binary_subscr.5', '$106call_function.6', '$96load_deref.1', 'A']\n", - " $108load_deref.7 = freevar(GET: .GET at 0x7ff8dbbf3be0>) ['$108load_deref.7']\n", - " $116binary_subscr.11 = getitem(value=R, index=mid, fn=) ['$116binary_subscr.11', 'R', 'mid']\n", - " $118call_function.12 = call $108load_deref.7(A, $116binary_subscr.11, func=$108load_deref.7, args=[Var(A, quicksort.py:92), Var($116binary_subscr.11, quicksort.py:104)], kws=(), vararg=None, varkwarg=None, target=None) ['$108load_deref.7', '$116binary_subscr.11', '$118call_function.12', 'A']\n", - " $120call_function.13 = call $94load_deref.0($106call_function.6, $118call_function.12, func=$94load_deref.0, args=[Var($106call_function.6, quicksort.py:104), Var($118call_function.12, quicksort.py:104)], kws=(), vararg=None, varkwarg=None, target=None) ['$106call_function.6', '$118call_function.12', '$120call_function.13', '$94load_deref.0']\n", - " bool122 = global(bool: ) ['bool122']\n", - " $122pred = call bool122($120call_function.13, func=bool122, args=(Var($120call_function.13, quicksort.py:104),), kws=(), vararg=None, varkwarg=None, target=None) ['$120call_function.13', '$122pred', 'bool122']\n", - " branch $122pred, 124, 150 ['$122pred']\n", - "label 124:\n", - " $128binary_subscr.2 = getitem(value=R, index=mid, fn=) ['$128binary_subscr.2', 'R', 'mid']\n", - " $134binary_subscr.5 = getitem(value=R, index=high, fn=) ['$134binary_subscr.5', 'R', 'high']\n", - " R[high] = $128binary_subscr.2 ['$128binary_subscr.2', 'R', 'high']\n", - " R[mid] = $134binary_subscr.5 ['$134binary_subscr.5', 'R', 'mid']\n", - " jump 150 []\n", - "label 150:\n", - " $150load_deref.0 = freevar(LT: ) ['$150load_deref.0']\n", - " $152load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>) ['$152load_deref.1']\n", - " $160binary_subscr.5 = getitem(value=R, index=mid, fn=) ['$160binary_subscr.5', 'R', 'mid']\n", - " $162call_function.6 = call $152load_deref.1(A, $160binary_subscr.5, func=$152load_deref.1, args=[Var(A, quicksort.py:92), Var($160binary_subscr.5, quicksort.py:106)], kws=(), vararg=None, varkwarg=None, target=None) ['$152load_deref.1', '$160binary_subscr.5', '$162call_function.6', 'A']\n", - " $164load_deref.7 = freevar(GET: .GET at 0x7ff8dbbf3be0>) ['$164load_deref.7']\n", - " $172binary_subscr.11 = getitem(value=R, index=low, fn=) ['$172binary_subscr.11', 'R', 'low']\n", - " $174call_function.12 = call $164load_deref.7(A, $172binary_subscr.11, func=$164load_deref.7, args=[Var(A, quicksort.py:92), Var($172binary_subscr.11, quicksort.py:106)], kws=(), vararg=None, varkwarg=None, target=None) ['$164load_deref.7', '$172binary_subscr.11', '$174call_function.12', 'A']\n", - " $176call_function.13 = call $150load_deref.0($162call_function.6, $174call_function.12, func=$150load_deref.0, args=[Var($162call_function.6, quicksort.py:106), Var($174call_function.12, quicksort.py:106)], kws=(), vararg=None, varkwarg=None, target=None) ['$150load_deref.0', '$162call_function.6', '$174call_function.12', '$176call_function.13']\n", - " bool178 = global(bool: ) ['bool178']\n", - " $178pred = call bool178($176call_function.13, func=bool178, args=(Var($176call_function.13, quicksort.py:106),), kws=(), vararg=None, varkwarg=None, target=None) ['$176call_function.13', '$178pred', 'bool178']\n", - " branch $178pred, 180, 206 ['$178pred']\n", - "label 180:\n", - " $184binary_subscr.2 = getitem(value=R, index=mid, fn=) ['$184binary_subscr.2', 'R', 'mid']\n", - " $190binary_subscr.5 = getitem(value=R, index=low, fn=) ['$190binary_subscr.5', 'R', 'low']\n", - " R[low] = $184binary_subscr.2 ['$184binary_subscr.2', 'R', 'low']\n", - " R[mid] = $190binary_subscr.5 ['$190binary_subscr.5', 'R', 'mid']\n", - " jump 206 []\n", - "label 206:\n", - " $206load_deref.0 = freevar(GET: .GET at 0x7ff8dbbf3be0>) ['$206load_deref.0']\n", - " $214binary_subscr.4 = getitem(value=R, index=mid, fn=) ['$214binary_subscr.4', 'R', 'mid']\n", - " pivot = call $206load_deref.0(A, $214binary_subscr.4, func=$206load_deref.0, args=[Var(A, quicksort.py:92), Var($214binary_subscr.4, quicksort.py:108)], kws=(), vararg=None, varkwarg=None, target=None) ['$206load_deref.0', '$214binary_subscr.4', 'A', 'pivot']\n", - " $224binary_subscr.8 = getitem(value=R, index=mid, fn=) ['$224binary_subscr.8', 'R', 'mid']\n", - " $230binary_subscr.11 = getitem(value=R, index=high, fn=) ['$230binary_subscr.11', 'R', 'high']\n", - " R[high] = $224binary_subscr.8 ['$224binary_subscr.8', 'R', 'high']\n", - " R[mid] = $230binary_subscr.11 ['$230binary_subscr.11', 'R', 'mid']\n", - " i = low ['i', 'low']\n", - " $const252.18 = const(int, 1) ['$const252.18']\n", - " j = high - $const252.18 ['$const252.18', 'high', 'j']\n", - " jump 260 []\n", - "label 260:\n", - " $264compare_op.2 = i < high ['$264compare_op.2', 'high', 'i']\n", - " bool266 = global(bool: ) ['bool266']\n", - " $266pred = call bool266($264compare_op.2, func=bool266, args=(Var($264compare_op.2, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None) ['$264compare_op.2', '$266pred', 'bool266']\n", - " branch $266pred, 268, 324 ['$266pred']\n", - "label 268:\n", - " $268load_deref.0 = freevar(LT: ) ['$268load_deref.0']\n", - " $270load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>) ['$270load_deref.1']\n", - " $278binary_subscr.5 = getitem(value=R, index=i, fn=) ['$278binary_subscr.5', 'R', 'i']\n", - " $280call_function.6 = call $270load_deref.1(A, $278binary_subscr.5, func=$270load_deref.1, args=[Var(A, quicksort.py:92), Var($278binary_subscr.5, quicksort.py:115)], kws=(), vararg=None, varkwarg=None, target=None) ['$270load_deref.1', '$278binary_subscr.5', '$280call_function.6', 'A']\n", - " $284call_function.8 = call $268load_deref.0($280call_function.6, pivot, func=$268load_deref.0, args=[Var($280call_function.6, quicksort.py:115), Var(pivot, quicksort.py:108)], kws=(), vararg=None, varkwarg=None, target=None) ['$268load_deref.0', '$280call_function.6', '$284call_function.8', 'pivot']\n", - " bool286 = global(bool: ) ['bool286']\n", - " $286pred = call bool286($284call_function.8, func=bool286, args=(Var($284call_function.8, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None) ['$284call_function.8', '$286pred', 'bool286']\n", - " branch $286pred, 288, 324 ['$286pred']\n", - "label 288:\n", - " $const290.1 = const(int, 1) ['$const290.1']\n", - " $292inplace_add.2 = inplace_binop(fn=, immutable_fn=, lhs=i, rhs=$const290.1, static_lhs=Undefined, static_rhs=Undefined) ['$292inplace_add.2', '$const290.1', 'i']\n", - " i = $292inplace_add.2 ['$292inplace_add.2', 'i']\n", - " $300compare_op.5 = i < high ['$300compare_op.5', 'high', 'i']\n", - " bool302 = global(bool: ) ['bool302']\n", - " $302pred = call bool302($300compare_op.5, func=bool302, args=(Var($300compare_op.5, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None) ['$300compare_op.5', '$302pred', 'bool302']\n", - " branch $302pred, 304, 324 ['$302pred']\n", - "label 304:\n", - " $304load_deref.0 = freevar(LT: ) ['$304load_deref.0']\n", - " $306load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>) ['$306load_deref.1']\n", - " $314binary_subscr.5 = getitem(value=R, index=i, fn=) ['$314binary_subscr.5', 'R', 'i']\n", - " $316call_function.6 = call $306load_deref.1(A, $314binary_subscr.5, func=$306load_deref.1, args=[Var(A, quicksort.py:92), Var($314binary_subscr.5, quicksort.py:115)], kws=(), vararg=None, varkwarg=None, target=None) ['$306load_deref.1', '$314binary_subscr.5', '$316call_function.6', 'A']\n", - " $320call_function.8 = call $304load_deref.0($316call_function.6, pivot, func=$304load_deref.0, args=[Var($316call_function.6, quicksort.py:115), Var(pivot, quicksort.py:108)], kws=(), vararg=None, varkwarg=None, target=None) ['$304load_deref.0', '$316call_function.6', '$320call_function.8', 'pivot']\n", - " bool322 = global(bool: ) ['bool322']\n", - " $322pred = call bool322($320call_function.8, func=bool322, args=(Var($320call_function.8, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None) ['$320call_function.8', '$322pred', 'bool322']\n", - " branch $322pred, 288, 324 ['$322pred']\n", - "label 324:\n", - " $328compare_op.2 = j >= low ['$328compare_op.2', 'j', 'low']\n", - " bool330 = global(bool: ) ['bool330']\n", - " $330pred = call bool330($328compare_op.2, func=bool330, args=(Var($328compare_op.2, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None) ['$328compare_op.2', '$330pred', 'bool330']\n", - " branch $330pred, 332, 388 ['$330pred']\n", - "label 332:\n", - " $332load_deref.0 = freevar(LT: ) ['$332load_deref.0']\n", - " $336load_deref.2 = freevar(GET: .GET at 0x7ff8dbbf3be0>) ['$336load_deref.2']\n", - " $344binary_subscr.6 = getitem(value=R, index=j, fn=) ['$344binary_subscr.6', 'R', 'j']\n", - " $346call_function.7 = call $336load_deref.2(A, $344binary_subscr.6, func=$336load_deref.2, args=[Var(A, quicksort.py:92), Var($344binary_subscr.6, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None) ['$336load_deref.2', '$344binary_subscr.6', '$346call_function.7', 'A']\n", - " $348call_function.8 = call $332load_deref.0(pivot, $346call_function.7, func=$332load_deref.0, args=[Var(pivot, quicksort.py:108), Var($346call_function.7, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None) ['$332load_deref.0', '$346call_function.7', '$348call_function.8', 'pivot']\n", - " bool350 = global(bool: ) ['bool350']\n", - " $350pred = call bool350($348call_function.8, func=bool350, args=(Var($348call_function.8, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None) ['$348call_function.8', '$350pred', 'bool350']\n", - " branch $350pred, 352, 388 ['$350pred']\n", - "label 352:\n", - " $const354.1 = const(int, 1) ['$const354.1']\n", - " $356inplace_subtract.2 = inplace_binop(fn=, immutable_fn=, lhs=j, rhs=$const354.1, static_lhs=Undefined, static_rhs=Undefined) ['$356inplace_subtract.2', '$const354.1', 'j']\n", - " j = $356inplace_subtract.2 ['$356inplace_subtract.2', 'j']\n", - " $364compare_op.5 = j >= low ['$364compare_op.5', 'j', 'low']\n", - " bool366 = global(bool: ) ['bool366']\n", - " $366pred = call bool366($364compare_op.5, func=bool366, args=(Var($364compare_op.5, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None) ['$364compare_op.5', '$366pred', 'bool366']\n", - " branch $366pred, 368, 388 ['$366pred']\n", - "label 368:\n", - " $368load_deref.0 = freevar(LT: ) ['$368load_deref.0']\n", - " $372load_deref.2 = freevar(GET: .GET at 0x7ff8dbbf3be0>) ['$372load_deref.2']\n", - " $380binary_subscr.6 = getitem(value=R, index=j, fn=) ['$380binary_subscr.6', 'R', 'j']\n", - " $382call_function.7 = call $372load_deref.2(A, $380binary_subscr.6, func=$372load_deref.2, args=[Var(A, quicksort.py:92), Var($380binary_subscr.6, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None) ['$372load_deref.2', '$380binary_subscr.6', '$382call_function.7', 'A']\n", - " $384call_function.8 = call $368load_deref.0(pivot, $382call_function.7, func=$368load_deref.0, args=[Var(pivot, quicksort.py:108), Var($382call_function.7, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None) ['$368load_deref.0', '$382call_function.7', '$384call_function.8', 'pivot']\n", - " bool386 = global(bool: ) ['bool386']\n", - " $386pred = call bool386($384call_function.8, func=bool386, args=(Var($384call_function.8, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None) ['$384call_function.8', '$386pred', 'bool386']\n", - " branch $386pred, 352, 388 ['$386pred']\n", - "label 388:\n", - " $392compare_op.2 = i >= j ['$392compare_op.2', 'i', 'j']\n", - " bool394 = global(bool: ) ['bool394']\n", - " $394pred = call bool394($392compare_op.2, func=bool394, args=(Var($392compare_op.2, quicksort.py:119),), kws=(), vararg=None, varkwarg=None, target=None) ['$392compare_op.2', '$394pred', 'bool394']\n", - " branch $394pred, 396, 398 ['$394pred']\n", - "label 396:\n", - " jump 442 []\n", - "label 398:\n", - " $402binary_subscr.2 = getitem(value=R, index=j, fn=) ['$402binary_subscr.2', 'R', 'j']\n", - " $408binary_subscr.5 = getitem(value=R, index=i, fn=) ['$408binary_subscr.5', 'R', 'i']\n", - " R[i] = $402binary_subscr.2 ['$402binary_subscr.2', 'R', 'i']\n", - " R[j] = $408binary_subscr.5 ['$408binary_subscr.5', 'R', 'j']\n", - " $const426.11 = const(int, 1) ['$const426.11']\n", - " $428inplace_add.12 = inplace_binop(fn=, immutable_fn=, lhs=i, rhs=$const426.11, static_lhs=Undefined, static_rhs=Undefined) ['$428inplace_add.12', '$const426.11', 'i']\n", - " i = $428inplace_add.12 ['$428inplace_add.12', 'i']\n", - " $const434.14 = const(int, 1) ['$const434.14']\n", - " $436inplace_subtract.15 = inplace_binop(fn=, immutable_fn=, lhs=j, rhs=$const434.14, static_lhs=Undefined, static_rhs=Undefined) ['$436inplace_subtract.15', '$const434.14', 'j']\n", - " j = $436inplace_subtract.15 ['$436inplace_subtract.15', 'j']\n", - " jump 260 []\n", - "label 442:\n", - " $446binary_subscr.2 = getitem(value=R, index=high, fn=) ['$446binary_subscr.2', 'R', 'high']\n", - " $452binary_subscr.5 = getitem(value=R, index=i, fn=) ['$452binary_subscr.5', 'R', 'i']\n", - " R[i] = $446binary_subscr.2 ['$446binary_subscr.2', 'R', 'i']\n", - " R[high] = $452binary_subscr.5 ['$452binary_subscr.5', 'R', 'high']\n", - " $470return_value.11 = cast(value=i) ['$470return_value.11', 'i']\n", - " return $470return_value.11 ['$470return_value.11']\n", - "\n", - "2023-05-15 11:07:29,824 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:29,824 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,825 | DEBUG | ssa.py:193 | on stmt: A = arg(0, name=A)\n", - "2023-05-15 11:07:29,826 | DEBUG | ssa.py:193 | on stmt: R = arg(1, name=R)\n", - "2023-05-15 11:07:29,827 | DEBUG | ssa.py:193 | on stmt: low = arg(2, name=low)\n", - "2023-05-15 11:07:29,827 | DEBUG | ssa.py:193 | on stmt: high = arg(3, name=high)\n", - "2023-05-15 11:07:29,828 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(int, 0)\n", - "2023-05-15 11:07:29,828 | DEBUG | ssa.py:193 | on stmt: $6compare_op.2 = low >= $const4.1\n", - "2023-05-15 11:07:29,829 | DEBUG | ssa.py:193 | on stmt: bool8 = global(bool: )\n", - "2023-05-15 11:07:29,829 | DEBUG | ssa.py:193 | on stmt: $8pred = call bool8($6compare_op.2, func=bool8, args=(Var($6compare_op.2, quicksort.py:92),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,830 | DEBUG | ssa.py:193 | on stmt: branch $8pred, 14, 10\n", - "2023-05-15 11:07:29,830 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 10\n", - "2023-05-15 11:07:29,831 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,831 | DEBUG | ssa.py:193 | on stmt: $assertion_error10.0 = global(AssertionError: )\n", - "2023-05-15 11:07:29,834 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:29,842 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 14\n", - "2023-05-15 11:07:29,844 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,845 | DEBUG | ssa.py:193 | on stmt: $18compare_op.2 = high > low\n", - "2023-05-15 11:07:29,845 | DEBUG | ssa.py:193 | on stmt: bool20 = global(bool: )\n", - "2023-05-15 11:07:29,846 | DEBUG | ssa.py:193 | on stmt: $20pred = call bool20($18compare_op.2, func=bool20, args=(Var($18compare_op.2, quicksort.py:93),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,846 | DEBUG | ssa.py:193 | on stmt: branch $20pred, 26, 22\n", - "2023-05-15 11:07:29,847 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 22\n", - "2023-05-15 11:07:29,848 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,850 | DEBUG | ssa.py:193 | on stmt: $assertion_error22.0 = global(AssertionError: )\n", - "2023-05-15 11:07:29,851 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:29,851 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 26\n", - "2023-05-15 11:07:29,852 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,852 | DEBUG | ssa.py:193 | on stmt: $30binary_add.2 = low + high\n", - "2023-05-15 11:07:29,853 | DEBUG | ssa.py:193 | on stmt: $const32.3 = const(int, 1)\n", - "2023-05-15 11:07:29,855 | DEBUG | ssa.py:193 | on stmt: mid = $30binary_add.2 >> $const32.3\n", - "2023-05-15 11:07:29,856 | DEBUG | ssa.py:193 | on stmt: $38load_deref.5 = freevar(LT: )\n", - "2023-05-15 11:07:29,856 | DEBUG | ssa.py:193 | on stmt: $40load_deref.6 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,857 | DEBUG | ssa.py:193 | on stmt: $48binary_subscr.10 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:29,858 | DEBUG | ssa.py:193 | on stmt: $50call_function.11 = call $40load_deref.6(A, $48binary_subscr.10, func=$40load_deref.6, args=[Var(A, quicksort.py:92), Var($48binary_subscr.10, quicksort.py:102)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,859 | DEBUG | ssa.py:193 | on stmt: $52load_deref.12 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,859 | DEBUG | ssa.py:193 | on stmt: $60binary_subscr.16 = getitem(value=R, index=low, fn=)\n", - "2023-05-15 11:07:29,860 | DEBUG | ssa.py:193 | on stmt: $62call_function.17 = call $52load_deref.12(A, $60binary_subscr.16, func=$52load_deref.12, args=[Var(A, quicksort.py:92), Var($60binary_subscr.16, quicksort.py:102)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,862 | DEBUG | ssa.py:193 | on stmt: $64call_function.18 = call $38load_deref.5($50call_function.11, $62call_function.17, func=$38load_deref.5, args=[Var($50call_function.11, quicksort.py:102), Var($62call_function.17, quicksort.py:102)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,862 | DEBUG | ssa.py:193 | on stmt: bool66 = global(bool: )\n", - "2023-05-15 11:07:29,863 | DEBUG | ssa.py:193 | on stmt: $66pred = call bool66($64call_function.18, func=bool66, args=(Var($64call_function.18, quicksort.py:102),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,863 | DEBUG | ssa.py:193 | on stmt: branch $66pred, 68, 94\n", - "2023-05-15 11:07:29,865 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 68\n", - "2023-05-15 11:07:29,866 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,866 | DEBUG | ssa.py:193 | on stmt: $72binary_subscr.2 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:29,867 | DEBUG | ssa.py:193 | on stmt: $78binary_subscr.5 = getitem(value=R, index=low, fn=)\n", - "2023-05-15 11:07:29,868 | DEBUG | ssa.py:193 | on stmt: R[low] = $72binary_subscr.2\n", - "2023-05-15 11:07:29,869 | DEBUG | ssa.py:193 | on stmt: R[mid] = $78binary_subscr.5\n", - "2023-05-15 11:07:29,870 | DEBUG | ssa.py:193 | on stmt: jump 94\n", - "2023-05-15 11:07:29,870 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 94\n", - "2023-05-15 11:07:29,872 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,872 | DEBUG | ssa.py:193 | on stmt: $94load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:29,873 | DEBUG | ssa.py:193 | on stmt: $96load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,873 | DEBUG | ssa.py:193 | on stmt: $104binary_subscr.5 = getitem(value=R, index=high, fn=)\n", - "2023-05-15 11:07:29,875 | DEBUG | ssa.py:193 | on stmt: $106call_function.6 = call $96load_deref.1(A, $104binary_subscr.5, func=$96load_deref.1, args=[Var(A, quicksort.py:92), Var($104binary_subscr.5, quicksort.py:104)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,876 | DEBUG | ssa.py:193 | on stmt: $108load_deref.7 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,876 | DEBUG | ssa.py:193 | on stmt: $116binary_subscr.11 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:29,877 | DEBUG | ssa.py:193 | on stmt: $118call_function.12 = call $108load_deref.7(A, $116binary_subscr.11, func=$108load_deref.7, args=[Var(A, quicksort.py:92), Var($116binary_subscr.11, quicksort.py:104)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,878 | DEBUG | ssa.py:193 | on stmt: $120call_function.13 = call $94load_deref.0($106call_function.6, $118call_function.12, func=$94load_deref.0, args=[Var($106call_function.6, quicksort.py:104), Var($118call_function.12, quicksort.py:104)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,879 | DEBUG | ssa.py:193 | on stmt: bool122 = global(bool: )\n", - "2023-05-15 11:07:29,879 | DEBUG | ssa.py:193 | on stmt: $122pred = call bool122($120call_function.13, func=bool122, args=(Var($120call_function.13, quicksort.py:104),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,880 | DEBUG | ssa.py:193 | on stmt: branch $122pred, 124, 150\n", - "2023-05-15 11:07:29,882 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 124\n", - "2023-05-15 11:07:29,882 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,883 | DEBUG | ssa.py:193 | on stmt: $128binary_subscr.2 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:29,883 | DEBUG | ssa.py:193 | on stmt: $134binary_subscr.5 = getitem(value=R, index=high, fn=)\n", - "2023-05-15 11:07:29,884 | DEBUG | ssa.py:193 | on stmt: R[high] = $128binary_subscr.2\n", - "2023-05-15 11:07:29,885 | DEBUG | ssa.py:193 | on stmt: R[mid] = $134binary_subscr.5\n", - "2023-05-15 11:07:29,885 | DEBUG | ssa.py:193 | on stmt: jump 150\n", - "2023-05-15 11:07:29,887 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 150\n", - "2023-05-15 11:07:29,888 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,888 | DEBUG | ssa.py:193 | on stmt: $150load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:29,889 | DEBUG | ssa.py:193 | on stmt: $152load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,890 | DEBUG | ssa.py:193 | on stmt: $160binary_subscr.5 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:29,891 | DEBUG | ssa.py:193 | on stmt: $162call_function.6 = call $152load_deref.1(A, $160binary_subscr.5, func=$152load_deref.1, args=[Var(A, quicksort.py:92), Var($160binary_subscr.5, quicksort.py:106)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,892 | DEBUG | ssa.py:193 | on stmt: $164load_deref.7 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,892 | DEBUG | ssa.py:193 | on stmt: $172binary_subscr.11 = getitem(value=R, index=low, fn=)\n", - "2023-05-15 11:07:29,893 | DEBUG | ssa.py:193 | on stmt: $174call_function.12 = call $164load_deref.7(A, $172binary_subscr.11, func=$164load_deref.7, args=[Var(A, quicksort.py:92), Var($172binary_subscr.11, quicksort.py:106)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,893 | DEBUG | ssa.py:193 | on stmt: $176call_function.13 = call $150load_deref.0($162call_function.6, $174call_function.12, func=$150load_deref.0, args=[Var($162call_function.6, quicksort.py:106), Var($174call_function.12, quicksort.py:106)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,894 | DEBUG | ssa.py:193 | on stmt: bool178 = global(bool: )\n", - "2023-05-15 11:07:29,895 | DEBUG | ssa.py:193 | on stmt: $178pred = call bool178($176call_function.13, func=bool178, args=(Var($176call_function.13, quicksort.py:106),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,895 | DEBUG | ssa.py:193 | on stmt: branch $178pred, 180, 206\n", - "2023-05-15 11:07:29,896 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 180\n", - "2023-05-15 11:07:29,896 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,897 | DEBUG | ssa.py:193 | on stmt: $184binary_subscr.2 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:29,897 | DEBUG | ssa.py:193 | on stmt: $190binary_subscr.5 = getitem(value=R, index=low, fn=)\n", - "2023-05-15 11:07:29,898 | DEBUG | ssa.py:193 | on stmt: R[low] = $184binary_subscr.2\n", - "2023-05-15 11:07:29,899 | DEBUG | ssa.py:193 | on stmt: R[mid] = $190binary_subscr.5\n", - "2023-05-15 11:07:29,899 | DEBUG | ssa.py:193 | on stmt: jump 206\n", - "2023-05-15 11:07:29,900 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 206\n", - "2023-05-15 11:07:29,900 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,901 | DEBUG | ssa.py:193 | on stmt: $206load_deref.0 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,902 | DEBUG | ssa.py:193 | on stmt: $214binary_subscr.4 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:29,902 | DEBUG | ssa.py:193 | on stmt: pivot = call $206load_deref.0(A, $214binary_subscr.4, func=$206load_deref.0, args=[Var(A, quicksort.py:92), Var($214binary_subscr.4, quicksort.py:108)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,903 | DEBUG | ssa.py:193 | on stmt: $224binary_subscr.8 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:29,904 | DEBUG | ssa.py:193 | on stmt: $230binary_subscr.11 = getitem(value=R, index=high, fn=)\n", - "2023-05-15 11:07:29,904 | DEBUG | ssa.py:193 | on stmt: R[high] = $224binary_subscr.8\n", - "2023-05-15 11:07:29,905 | DEBUG | ssa.py:193 | on stmt: R[mid] = $230binary_subscr.11\n", - "2023-05-15 11:07:29,905 | DEBUG | ssa.py:193 | on stmt: i = low\n", - "2023-05-15 11:07:29,906 | DEBUG | ssa.py:193 | on stmt: $const252.18 = const(int, 1)\n", - "2023-05-15 11:07:29,906 | DEBUG | ssa.py:193 | on stmt: j = high - $const252.18\n", - "2023-05-15 11:07:29,907 | DEBUG | ssa.py:193 | on stmt: jump 260\n", - "2023-05-15 11:07:29,907 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 260\n", - "2023-05-15 11:07:29,907 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,908 | DEBUG | ssa.py:193 | on stmt: $264compare_op.2 = i < high\n", - "2023-05-15 11:07:29,908 | DEBUG | ssa.py:193 | on stmt: bool266 = global(bool: )\n", - "2023-05-15 11:07:29,909 | DEBUG | ssa.py:193 | on stmt: $266pred = call bool266($264compare_op.2, func=bool266, args=(Var($264compare_op.2, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,909 | DEBUG | ssa.py:193 | on stmt: branch $266pred, 268, 324\n", - "2023-05-15 11:07:29,910 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 268\n", - "2023-05-15 11:07:29,910 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,911 | DEBUG | ssa.py:193 | on stmt: $268load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:29,911 | DEBUG | ssa.py:193 | on stmt: $270load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,911 | DEBUG | ssa.py:193 | on stmt: $278binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:29,912 | DEBUG | ssa.py:193 | on stmt: $280call_function.6 = call $270load_deref.1(A, $278binary_subscr.5, func=$270load_deref.1, args=[Var(A, quicksort.py:92), Var($278binary_subscr.5, quicksort.py:115)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,912 | DEBUG | ssa.py:193 | on stmt: $284call_function.8 = call $268load_deref.0($280call_function.6, pivot, func=$268load_deref.0, args=[Var($280call_function.6, quicksort.py:115), Var(pivot, quicksort.py:108)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,913 | DEBUG | ssa.py:193 | on stmt: bool286 = global(bool: )\n", - "2023-05-15 11:07:29,913 | DEBUG | ssa.py:193 | on stmt: $286pred = call bool286($284call_function.8, func=bool286, args=(Var($284call_function.8, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,914 | DEBUG | ssa.py:193 | on stmt: branch $286pred, 288, 324\n", - "2023-05-15 11:07:29,914 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 288\n", - "2023-05-15 11:07:29,915 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,915 | DEBUG | ssa.py:193 | on stmt: $const290.1 = const(int, 1)\n", - "2023-05-15 11:07:29,916 | DEBUG | ssa.py:193 | on stmt: $292inplace_add.2 = inplace_binop(fn=, immutable_fn=, lhs=i, rhs=$const290.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:29,916 | DEBUG | ssa.py:193 | on stmt: i = $292inplace_add.2\n", - "2023-05-15 11:07:29,917 | DEBUG | ssa.py:193 | on stmt: $300compare_op.5 = i < high\n", - "2023-05-15 11:07:29,917 | DEBUG | ssa.py:193 | on stmt: bool302 = global(bool: )\n", - "2023-05-15 11:07:29,918 | DEBUG | ssa.py:193 | on stmt: $302pred = call bool302($300compare_op.5, func=bool302, args=(Var($300compare_op.5, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,918 | DEBUG | ssa.py:193 | on stmt: branch $302pred, 304, 324\n", - "2023-05-15 11:07:29,919 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 304\n", - "2023-05-15 11:07:29,919 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,920 | DEBUG | ssa.py:193 | on stmt: $304load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:29,920 | DEBUG | ssa.py:193 | on stmt: $306load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,921 | DEBUG | ssa.py:193 | on stmt: $314binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:29,921 | DEBUG | ssa.py:193 | on stmt: $316call_function.6 = call $306load_deref.1(A, $314binary_subscr.5, func=$306load_deref.1, args=[Var(A, quicksort.py:92), Var($314binary_subscr.5, quicksort.py:115)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,921 | DEBUG | ssa.py:193 | on stmt: $320call_function.8 = call $304load_deref.0($316call_function.6, pivot, func=$304load_deref.0, args=[Var($316call_function.6, quicksort.py:115), Var(pivot, quicksort.py:108)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,922 | DEBUG | ssa.py:193 | on stmt: bool322 = global(bool: )\n", - "2023-05-15 11:07:29,922 | DEBUG | ssa.py:193 | on stmt: $322pred = call bool322($320call_function.8, func=bool322, args=(Var($320call_function.8, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,923 | DEBUG | ssa.py:193 | on stmt: branch $322pred, 288, 324\n", - "2023-05-15 11:07:29,923 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 324\n", - "2023-05-15 11:07:29,924 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,927 | DEBUG | ssa.py:193 | on stmt: $328compare_op.2 = j >= low\n", - "2023-05-15 11:07:29,931 | DEBUG | ssa.py:193 | on stmt: bool330 = global(bool: )\n", - "2023-05-15 11:07:29,932 | DEBUG | ssa.py:193 | on stmt: $330pred = call bool330($328compare_op.2, func=bool330, args=(Var($328compare_op.2, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,932 | DEBUG | ssa.py:193 | on stmt: branch $330pred, 332, 388\n", - "2023-05-15 11:07:29,933 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 332\n", - "2023-05-15 11:07:29,933 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,934 | DEBUG | ssa.py:193 | on stmt: $332load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:29,934 | DEBUG | ssa.py:193 | on stmt: $336load_deref.2 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,934 | DEBUG | ssa.py:193 | on stmt: $344binary_subscr.6 = getitem(value=R, index=j, fn=)\n", - "2023-05-15 11:07:29,935 | DEBUG | ssa.py:193 | on stmt: $346call_function.7 = call $336load_deref.2(A, $344binary_subscr.6, func=$336load_deref.2, args=[Var(A, quicksort.py:92), Var($344binary_subscr.6, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,935 | DEBUG | ssa.py:193 | on stmt: $348call_function.8 = call $332load_deref.0(pivot, $346call_function.7, func=$332load_deref.0, args=[Var(pivot, quicksort.py:108), Var($346call_function.7, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,936 | DEBUG | ssa.py:193 | on stmt: bool350 = global(bool: )\n", - "2023-05-15 11:07:29,936 | DEBUG | ssa.py:193 | on stmt: $350pred = call bool350($348call_function.8, func=bool350, args=(Var($348call_function.8, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,937 | DEBUG | ssa.py:193 | on stmt: branch $350pred, 352, 388\n", - "2023-05-15 11:07:29,937 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 352\n", - "2023-05-15 11:07:29,938 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,938 | DEBUG | ssa.py:193 | on stmt: $const354.1 = const(int, 1)\n", - "2023-05-15 11:07:29,939 | DEBUG | ssa.py:193 | on stmt: $356inplace_subtract.2 = inplace_binop(fn=, immutable_fn=, lhs=j, rhs=$const354.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:29,939 | DEBUG | ssa.py:193 | on stmt: j = $356inplace_subtract.2\n", - "2023-05-15 11:07:29,939 | DEBUG | ssa.py:193 | on stmt: $364compare_op.5 = j >= low\n", - "2023-05-15 11:07:29,940 | DEBUG | ssa.py:193 | on stmt: bool366 = global(bool: )\n", - "2023-05-15 11:07:29,940 | DEBUG | ssa.py:193 | on stmt: $366pred = call bool366($364compare_op.5, func=bool366, args=(Var($364compare_op.5, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,941 | DEBUG | ssa.py:193 | on stmt: branch $366pred, 368, 388\n", - "2023-05-15 11:07:29,941 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 368\n", - "2023-05-15 11:07:29,942 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,942 | DEBUG | ssa.py:193 | on stmt: $368load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:29,943 | DEBUG | ssa.py:193 | on stmt: $372load_deref.2 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,943 | DEBUG | ssa.py:193 | on stmt: $380binary_subscr.6 = getitem(value=R, index=j, fn=)\n", - "2023-05-15 11:07:29,943 | DEBUG | ssa.py:193 | on stmt: $382call_function.7 = call $372load_deref.2(A, $380binary_subscr.6, func=$372load_deref.2, args=[Var(A, quicksort.py:92), Var($380binary_subscr.6, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,944 | DEBUG | ssa.py:193 | on stmt: $384call_function.8 = call $368load_deref.0(pivot, $382call_function.7, func=$368load_deref.0, args=[Var(pivot, quicksort.py:108), Var($382call_function.7, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,944 | DEBUG | ssa.py:193 | on stmt: bool386 = global(bool: )\n", - "2023-05-15 11:07:29,945 | DEBUG | ssa.py:193 | on stmt: $386pred = call bool386($384call_function.8, func=bool386, args=(Var($384call_function.8, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,945 | DEBUG | ssa.py:193 | on stmt: branch $386pred, 352, 388\n", - "2023-05-15 11:07:29,946 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 388\n", - "2023-05-15 11:07:29,946 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,947 | DEBUG | ssa.py:193 | on stmt: $392compare_op.2 = i >= j\n", - "2023-05-15 11:07:29,950 | DEBUG | ssa.py:193 | on stmt: bool394 = global(bool: )\n", - "2023-05-15 11:07:29,951 | DEBUG | ssa.py:193 | on stmt: $394pred = call bool394($392compare_op.2, func=bool394, args=(Var($392compare_op.2, quicksort.py:119),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,951 | DEBUG | ssa.py:193 | on stmt: branch $394pred, 396, 398\n", - "2023-05-15 11:07:29,952 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 396\n", - "2023-05-15 11:07:29,952 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,953 | DEBUG | ssa.py:193 | on stmt: jump 442\n", - "2023-05-15 11:07:29,953 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 398\n", - "2023-05-15 11:07:29,953 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,954 | DEBUG | ssa.py:193 | on stmt: $402binary_subscr.2 = getitem(value=R, index=j, fn=)\n", - "2023-05-15 11:07:29,954 | DEBUG | ssa.py:193 | on stmt: $408binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:29,955 | DEBUG | ssa.py:193 | on stmt: R[i] = $402binary_subscr.2\n", - "2023-05-15 11:07:29,955 | DEBUG | ssa.py:193 | on stmt: R[j] = $408binary_subscr.5\n", - "2023-05-15 11:07:29,955 | DEBUG | ssa.py:193 | on stmt: $const426.11 = const(int, 1)\n", - "2023-05-15 11:07:29,956 | DEBUG | ssa.py:193 | on stmt: $428inplace_add.12 = inplace_binop(fn=, immutable_fn=, lhs=i, rhs=$const426.11, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:29,956 | DEBUG | ssa.py:193 | on stmt: i = $428inplace_add.12\n", - "2023-05-15 11:07:29,957 | DEBUG | ssa.py:193 | on stmt: $const434.14 = const(int, 1)\n", - "2023-05-15 11:07:29,957 | DEBUG | ssa.py:193 | on stmt: $436inplace_subtract.15 = inplace_binop(fn=, immutable_fn=, lhs=j, rhs=$const434.14, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:29,959 | DEBUG | ssa.py:193 | on stmt: j = $436inplace_subtract.15\n", - "2023-05-15 11:07:29,960 | DEBUG | ssa.py:193 | on stmt: jump 260\n", - "2023-05-15 11:07:29,960 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 442\n", - "2023-05-15 11:07:29,961 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,961 | DEBUG | ssa.py:193 | on stmt: $446binary_subscr.2 = getitem(value=R, index=high, fn=)\n", - "2023-05-15 11:07:29,962 | DEBUG | ssa.py:193 | on stmt: $452binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:29,962 | DEBUG | ssa.py:193 | on stmt: R[i] = $446binary_subscr.2\n", - "2023-05-15 11:07:29,962 | DEBUG | ssa.py:193 | on stmt: R[high] = $452binary_subscr.5\n", - "2023-05-15 11:07:29,963 | DEBUG | ssa.py:193 | on stmt: $470return_value.11 = cast(value=i)\n", - "2023-05-15 11:07:29,963 | DEBUG | ssa.py:193 | on stmt: return $470return_value.11\n", - "2023-05-15 11:07:29,966 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$104binary_subscr.5': [],\n", - " '$106call_function.6': [],\n", - " '$108load_deref.7': [],\n", - " '$116binary_subscr.11': [],\n", - " '$118call_function.12': [],\n", - " '$120call_function.13': [],\n", - " '$122pred': [],\n", - " '$128binary_subscr.2': [],\n", - " '$134binary_subscr.5': [],\n", - " '$150load_deref.0': [],\n", - " '$152load_deref.1': [],\n", - " '$160binary_subscr.5': [],\n", - " '$162call_function.6': [],\n", - " '$164load_deref.7': [],\n", - " '$172binary_subscr.11': [],\n", - " '$174call_function.12': [],\n", - " '$176call_function.13': [],\n", - " '$178pred': [],\n", - " '$184binary_subscr.2': [],\n", - " '$18compare_op.2': [],\n", - " '$190binary_subscr.5': [],\n", - " '$206load_deref.0': [],\n", - " '$20pred': [],\n", - " '$214binary_subscr.4': [],\n", - " '$224binary_subscr.8': [],\n", - " '$230binary_subscr.11': [],\n", - " '$264compare_op.2': [],\n", - " '$266pred': [],\n", - " '$268load_deref.0': [],\n", - " '$270load_deref.1': [],\n", - " '$278binary_subscr.5': [],\n", - " '$280call_function.6': [],\n", - " '$284call_function.8': [],\n", - " '$286pred': [],\n", - " '$292inplace_add.2': [],\n", - " '$300compare_op.5': [],\n", - " '$302pred': [],\n", - " '$304load_deref.0': [],\n", - " '$306load_deref.1': [],\n", - " '$30binary_add.2': [],\n", - " '$314binary_subscr.5': [],\n", - " '$316call_function.6': [],\n", - " '$320call_function.8': [],\n", - " '$322pred': [],\n", - " '$328compare_op.2': [],\n", - " '$330pred': [],\n", - " '$332load_deref.0': [],\n", - " '$336load_deref.2': [],\n", - " '$344binary_subscr.6': [],\n", - " '$346call_function.7': [],\n", - " '$348call_function.8': [],\n", - " '$350pred': [],\n", - " '$356inplace_subtract.2': [],\n", - " '$364compare_op.5': [],\n", - " '$366pred': [],\n", - " '$368load_deref.0': [],\n", - " '$372load_deref.2': [],\n", - " '$380binary_subscr.6': [],\n", - " '$382call_function.7': [],\n", - " '$384call_function.8': [],\n", - " '$386pred': [],\n", - " '$38load_deref.5': [],\n", - " '$392compare_op.2': [],\n", - " '$394pred': [],\n", - " '$402binary_subscr.2': [],\n", - " '$408binary_subscr.5': [],\n", - " '$40load_deref.6': [],\n", - " '$428inplace_add.12': [],\n", - " '$436inplace_subtract.15': [],\n", - " '$446binary_subscr.2': [],\n", - " '$452binary_subscr.5': [],\n", - " '$470return_value.11': [],\n", - " '$48binary_subscr.10': [],\n", - " '$50call_function.11': [],\n", - " '$52load_deref.12': [],\n", - " '$60binary_subscr.16': [],\n", - " '$62call_function.17': [],\n", - " '$64call_function.18': [],\n", - " '$66pred': [],\n", - " '$6compare_op.2': [],\n", - " '$72binary_subscr.2': [],\n", - " '$78binary_subscr.5': [],\n", - " '$8pred': [],\n", - " '$94load_deref.0': [],\n", - " '$96load_deref.1': [],\n", - " '$assertion_error10.0': [],\n", - " '$assertion_error22.0': [],\n", - " '$const252.18': [],\n", - " '$const290.1': [],\n", - " '$const32.3': [],\n", - " '$const354.1': [],\n", - " '$const4.1': [],\n", - " '$const426.11': [],\n", - " '$const434.14': [],\n", - " 'A': [],\n", - " 'R': [],\n", - " 'bool122': [],\n", - " 'bool178': [],\n", - " 'bool20': [],\n", - " 'bool266': [],\n", - " 'bool286': [],\n", - " 'bool302': [],\n", - " 'bool322': [],\n", - " 'bool330': [],\n", - " 'bool350': [],\n", - " 'bool366': [],\n", - " 'bool386': [],\n", - " 'bool394': [],\n", - " 'bool66': [],\n", - " 'bool8': [],\n", - " 'high': [],\n", - " 'i': [,\n", - " ,\n", - " ],\n", - " 'j': [,\n", - " ,\n", - " ],\n", - " 'low': [],\n", - " 'mid': [],\n", - " 'pivot': []})\n", - "2023-05-15 11:07:29,967 | DEBUG | ssa.py:156 | SSA violators {'i', 'j'}\n", - "2023-05-15 11:07:29,967 | DEBUG | ssa.py:63 | Fix SSA violator on var i\n", - "2023-05-15 11:07:29,968 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:29,968 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,969 | DEBUG | ssa.py:193 | on stmt: A = arg(0, name=A)\n", - "2023-05-15 11:07:29,969 | DEBUG | ssa.py:193 | on stmt: R = arg(1, name=R)\n", - "2023-05-15 11:07:29,969 | DEBUG | ssa.py:193 | on stmt: low = arg(2, name=low)\n", - "2023-05-15 11:07:29,971 | DEBUG | ssa.py:193 | on stmt: high = arg(3, name=high)\n", - "2023-05-15 11:07:29,972 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(int, 0)\n", - "2023-05-15 11:07:29,973 | DEBUG | ssa.py:193 | on stmt: $6compare_op.2 = low >= $const4.1\n", - "2023-05-15 11:07:29,973 | DEBUG | ssa.py:193 | on stmt: bool8 = global(bool: )\n", - "2023-05-15 11:07:29,974 | DEBUG | ssa.py:193 | on stmt: $8pred = call bool8($6compare_op.2, func=bool8, args=(Var($6compare_op.2, quicksort.py:92),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,974 | DEBUG | ssa.py:193 | on stmt: branch $8pred, 14, 10\n", - "2023-05-15 11:07:29,975 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 10\n", - "2023-05-15 11:07:29,975 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,975 | DEBUG | ssa.py:193 | on stmt: $assertion_error10.0 = global(AssertionError: )\n", - "2023-05-15 11:07:29,976 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:29,976 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 14\n", - "2023-05-15 11:07:29,977 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,977 | DEBUG | ssa.py:193 | on stmt: $18compare_op.2 = high > low\n", - "2023-05-15 11:07:29,977 | DEBUG | ssa.py:193 | on stmt: bool20 = global(bool: )\n", - "2023-05-15 11:07:29,978 | DEBUG | ssa.py:193 | on stmt: $20pred = call bool20($18compare_op.2, func=bool20, args=(Var($18compare_op.2, quicksort.py:93),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,978 | DEBUG | ssa.py:193 | on stmt: branch $20pred, 26, 22\n", - "2023-05-15 11:07:29,979 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 22\n", - "2023-05-15 11:07:29,979 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,980 | DEBUG | ssa.py:193 | on stmt: $assertion_error22.0 = global(AssertionError: )\n", - "2023-05-15 11:07:29,980 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:29,980 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:29,981 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,981 | DEBUG | ssa.py:193 | on stmt: $30binary_add.2 = low + high\n", - "2023-05-15 11:07:29,982 | DEBUG | ssa.py:193 | on stmt: $const32.3 = const(int, 1)\n", - "2023-05-15 11:07:29,982 | DEBUG | ssa.py:193 | on stmt: mid = $30binary_add.2 >> $const32.3\n", - "2023-05-15 11:07:29,983 | DEBUG | ssa.py:193 | on stmt: $38load_deref.5 = freevar(LT: )\n", - "2023-05-15 11:07:29,983 | DEBUG | ssa.py:193 | on stmt: $40load_deref.6 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,983 | DEBUG | ssa.py:193 | on stmt: $48binary_subscr.10 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:29,984 | DEBUG | ssa.py:193 | on stmt: $50call_function.11 = call $40load_deref.6(A, $48binary_subscr.10, func=$40load_deref.6, args=[Var(A, quicksort.py:92), Var($48binary_subscr.10, quicksort.py:102)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,984 | DEBUG | ssa.py:193 | on stmt: $52load_deref.12 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,987 | DEBUG | ssa.py:193 | on stmt: $60binary_subscr.16 = getitem(value=R, index=low, fn=)\n", - "2023-05-15 11:07:29,988 | DEBUG | ssa.py:193 | on stmt: $62call_function.17 = call $52load_deref.12(A, $60binary_subscr.16, func=$52load_deref.12, args=[Var(A, quicksort.py:92), Var($60binary_subscr.16, quicksort.py:102)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,988 | DEBUG | ssa.py:193 | on stmt: $64call_function.18 = call $38load_deref.5($50call_function.11, $62call_function.17, func=$38load_deref.5, args=[Var($50call_function.11, quicksort.py:102), Var($62call_function.17, quicksort.py:102)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,989 | DEBUG | ssa.py:193 | on stmt: bool66 = global(bool: )\n", - "2023-05-15 11:07:29,989 | DEBUG | ssa.py:193 | on stmt: $66pred = call bool66($64call_function.18, func=bool66, args=(Var($64call_function.18, quicksort.py:102),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,990 | DEBUG | ssa.py:193 | on stmt: branch $66pred, 68, 94\n", - "2023-05-15 11:07:29,990 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:29,992 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,992 | DEBUG | ssa.py:193 | on stmt: $72binary_subscr.2 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:29,993 | DEBUG | ssa.py:193 | on stmt: $78binary_subscr.5 = getitem(value=R, index=low, fn=)\n", - "2023-05-15 11:07:29,993 | DEBUG | ssa.py:193 | on stmt: R[low] = $72binary_subscr.2\n", - "2023-05-15 11:07:29,994 | DEBUG | ssa.py:193 | on stmt: R[mid] = $78binary_subscr.5\n", - "2023-05-15 11:07:29,994 | DEBUG | ssa.py:193 | on stmt: jump 94\n", - "2023-05-15 11:07:29,995 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 94\n", - "2023-05-15 11:07:29,995 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:29,996 | DEBUG | ssa.py:193 | on stmt: $94load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:29,997 | DEBUG | ssa.py:193 | on stmt: $96load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,997 | DEBUG | ssa.py:193 | on stmt: $104binary_subscr.5 = getitem(value=R, index=high, fn=)\n", - "2023-05-15 11:07:29,998 | DEBUG | ssa.py:193 | on stmt: $106call_function.6 = call $96load_deref.1(A, $104binary_subscr.5, func=$96load_deref.1, args=[Var(A, quicksort.py:92), Var($104binary_subscr.5, quicksort.py:104)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:29,998 | DEBUG | ssa.py:193 | on stmt: $108load_deref.7 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:29,999 | DEBUG | ssa.py:193 | on stmt: $116binary_subscr.11 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:29,999 | DEBUG | ssa.py:193 | on stmt: $118call_function.12 = call $108load_deref.7(A, $116binary_subscr.11, func=$108load_deref.7, args=[Var(A, quicksort.py:92), Var($116binary_subscr.11, quicksort.py:104)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,000 | DEBUG | ssa.py:193 | on stmt: $120call_function.13 = call $94load_deref.0($106call_function.6, $118call_function.12, func=$94load_deref.0, args=[Var($106call_function.6, quicksort.py:104), Var($118call_function.12, quicksort.py:104)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,001 | DEBUG | ssa.py:193 | on stmt: bool122 = global(bool: )\n", - "2023-05-15 11:07:30,002 | DEBUG | ssa.py:193 | on stmt: $122pred = call bool122($120call_function.13, func=bool122, args=(Var($120call_function.13, quicksort.py:104),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,002 | DEBUG | ssa.py:193 | on stmt: branch $122pred, 124, 150\n", - "2023-05-15 11:07:30,002 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 124\n", - "2023-05-15 11:07:30,003 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,003 | DEBUG | ssa.py:193 | on stmt: $128binary_subscr.2 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:30,004 | DEBUG | ssa.py:193 | on stmt: $134binary_subscr.5 = getitem(value=R, index=high, fn=)\n", - "2023-05-15 11:07:30,004 | DEBUG | ssa.py:193 | on stmt: R[high] = $128binary_subscr.2\n", - "2023-05-15 11:07:30,005 | DEBUG | ssa.py:193 | on stmt: R[mid] = $134binary_subscr.5\n", - "2023-05-15 11:07:30,006 | DEBUG | ssa.py:193 | on stmt: jump 150\n", - "2023-05-15 11:07:30,006 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 150\n", - "2023-05-15 11:07:30,007 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,007 | DEBUG | ssa.py:193 | on stmt: $150load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:30,008 | DEBUG | ssa.py:193 | on stmt: $152load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,008 | DEBUG | ssa.py:193 | on stmt: $160binary_subscr.5 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:30,008 | DEBUG | ssa.py:193 | on stmt: $162call_function.6 = call $152load_deref.1(A, $160binary_subscr.5, func=$152load_deref.1, args=[Var(A, quicksort.py:92), Var($160binary_subscr.5, quicksort.py:106)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,009 | DEBUG | ssa.py:193 | on stmt: $164load_deref.7 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,009 | DEBUG | ssa.py:193 | on stmt: $172binary_subscr.11 = getitem(value=R, index=low, fn=)\n", - "2023-05-15 11:07:30,010 | DEBUG | ssa.py:193 | on stmt: $174call_function.12 = call $164load_deref.7(A, $172binary_subscr.11, func=$164load_deref.7, args=[Var(A, quicksort.py:92), Var($172binary_subscr.11, quicksort.py:106)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,010 | DEBUG | ssa.py:193 | on stmt: $176call_function.13 = call $150load_deref.0($162call_function.6, $174call_function.12, func=$150load_deref.0, args=[Var($162call_function.6, quicksort.py:106), Var($174call_function.12, quicksort.py:106)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,011 | DEBUG | ssa.py:193 | on stmt: bool178 = global(bool: )\n", - "2023-05-15 11:07:30,011 | DEBUG | ssa.py:193 | on stmt: $178pred = call bool178($176call_function.13, func=bool178, args=(Var($176call_function.13, quicksort.py:106),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,012 | DEBUG | ssa.py:193 | on stmt: branch $178pred, 180, 206\n", - "2023-05-15 11:07:30,012 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 180\n", - "2023-05-15 11:07:30,012 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,013 | DEBUG | ssa.py:193 | on stmt: $184binary_subscr.2 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:30,013 | DEBUG | ssa.py:193 | on stmt: $190binary_subscr.5 = getitem(value=R, index=low, fn=)\n", - "2023-05-15 11:07:30,014 | DEBUG | ssa.py:193 | on stmt: R[low] = $184binary_subscr.2\n", - "2023-05-15 11:07:30,014 | DEBUG | ssa.py:193 | on stmt: R[mid] = $190binary_subscr.5\n", - "2023-05-15 11:07:30,014 | DEBUG | ssa.py:193 | on stmt: jump 206\n", - "2023-05-15 11:07:30,015 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 206\n", - "2023-05-15 11:07:30,015 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,016 | DEBUG | ssa.py:193 | on stmt: $206load_deref.0 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,016 | DEBUG | ssa.py:193 | on stmt: $214binary_subscr.4 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:30,020 | DEBUG | ssa.py:193 | on stmt: pivot = call $206load_deref.0(A, $214binary_subscr.4, func=$206load_deref.0, args=[Var(A, quicksort.py:92), Var($214binary_subscr.4, quicksort.py:108)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,021 | DEBUG | ssa.py:193 | on stmt: $224binary_subscr.8 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:30,021 | DEBUG | ssa.py:193 | on stmt: $230binary_subscr.11 = getitem(value=R, index=high, fn=)\n", - "2023-05-15 11:07:30,022 | DEBUG | ssa.py:193 | on stmt: R[high] = $224binary_subscr.8\n", - "2023-05-15 11:07:30,022 | DEBUG | ssa.py:193 | on stmt: R[mid] = $230binary_subscr.11\n", - "2023-05-15 11:07:30,022 | DEBUG | ssa.py:193 | on stmt: i = low\n", - "2023-05-15 11:07:30,023 | DEBUG | ssa.py:269 | first assign: i\n", - "2023-05-15 11:07:30,023 | DEBUG | ssa.py:199 | replaced with: i = low\n", - "2023-05-15 11:07:30,024 | DEBUG | ssa.py:193 | on stmt: $const252.18 = const(int, 1)\n", - "2023-05-15 11:07:30,024 | DEBUG | ssa.py:193 | on stmt: j = high - $const252.18\n", - "2023-05-15 11:07:30,024 | DEBUG | ssa.py:193 | on stmt: jump 260\n", - "2023-05-15 11:07:30,025 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 260\n", - "2023-05-15 11:07:30,025 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,026 | DEBUG | ssa.py:193 | on stmt: $264compare_op.2 = i < high\n", - "2023-05-15 11:07:30,026 | DEBUG | ssa.py:193 | on stmt: bool266 = global(bool: )\n", - "2023-05-15 11:07:30,029 | DEBUG | ssa.py:193 | on stmt: $266pred = call bool266($264compare_op.2, func=bool266, args=(Var($264compare_op.2, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,029 | DEBUG | ssa.py:193 | on stmt: branch $266pred, 268, 324\n", - "2023-05-15 11:07:30,030 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 268\n", - "2023-05-15 11:07:30,030 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,031 | DEBUG | ssa.py:193 | on stmt: $268load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:30,031 | DEBUG | ssa.py:193 | on stmt: $270load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,031 | DEBUG | ssa.py:193 | on stmt: $278binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:30,032 | DEBUG | ssa.py:193 | on stmt: $280call_function.6 = call $270load_deref.1(A, $278binary_subscr.5, func=$270load_deref.1, args=[Var(A, quicksort.py:92), Var($278binary_subscr.5, quicksort.py:115)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,032 | DEBUG | ssa.py:193 | on stmt: $284call_function.8 = call $268load_deref.0($280call_function.6, pivot, func=$268load_deref.0, args=[Var($280call_function.6, quicksort.py:115), Var(pivot, quicksort.py:108)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,033 | DEBUG | ssa.py:193 | on stmt: bool286 = global(bool: )\n", - "2023-05-15 11:07:30,033 | DEBUG | ssa.py:193 | on stmt: $286pred = call bool286($284call_function.8, func=bool286, args=(Var($284call_function.8, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,033 | DEBUG | ssa.py:193 | on stmt: branch $286pred, 288, 324\n", - "2023-05-15 11:07:30,034 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 288\n", - "2023-05-15 11:07:30,034 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,035 | DEBUG | ssa.py:193 | on stmt: $const290.1 = const(int, 1)\n", - "2023-05-15 11:07:30,035 | DEBUG | ssa.py:193 | on stmt: $292inplace_add.2 = inplace_binop(fn=, immutable_fn=, lhs=i, rhs=$const290.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:30,036 | DEBUG | ssa.py:193 | on stmt: i = $292inplace_add.2\n", - "2023-05-15 11:07:30,036 | DEBUG | ssa.py:199 | replaced with: i.1 = $292inplace_add.2\n", - "2023-05-15 11:07:30,036 | DEBUG | ssa.py:193 | on stmt: $300compare_op.5 = i < high\n", - "2023-05-15 11:07:30,037 | DEBUG | ssa.py:193 | on stmt: bool302 = global(bool: )\n", - "2023-05-15 11:07:30,039 | DEBUG | ssa.py:193 | on stmt: $302pred = call bool302($300compare_op.5, func=bool302, args=(Var($300compare_op.5, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,039 | DEBUG | ssa.py:193 | on stmt: branch $302pred, 304, 324\n", - "2023-05-15 11:07:30,040 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 304\n", - "2023-05-15 11:07:30,040 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,040 | DEBUG | ssa.py:193 | on stmt: $304load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:30,041 | DEBUG | ssa.py:193 | on stmt: $306load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,041 | DEBUG | ssa.py:193 | on stmt: $314binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:30,041 | DEBUG | ssa.py:193 | on stmt: $316call_function.6 = call $306load_deref.1(A, $314binary_subscr.5, func=$306load_deref.1, args=[Var(A, quicksort.py:92), Var($314binary_subscr.5, quicksort.py:115)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,042 | DEBUG | ssa.py:193 | on stmt: $320call_function.8 = call $304load_deref.0($316call_function.6, pivot, func=$304load_deref.0, args=[Var($316call_function.6, quicksort.py:115), Var(pivot, quicksort.py:108)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,043 | DEBUG | ssa.py:193 | on stmt: bool322 = global(bool: )\n", - "2023-05-15 11:07:30,044 | DEBUG | ssa.py:193 | on stmt: $322pred = call bool322($320call_function.8, func=bool322, args=(Var($320call_function.8, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,044 | DEBUG | ssa.py:193 | on stmt: branch $322pred, 288, 324\n", - "2023-05-15 11:07:30,044 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 324\n", - "2023-05-15 11:07:30,045 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,045 | DEBUG | ssa.py:193 | on stmt: $328compare_op.2 = j >= low\n", - "2023-05-15 11:07:30,045 | DEBUG | ssa.py:193 | on stmt: bool330 = global(bool: )\n", - "2023-05-15 11:07:30,046 | DEBUG | ssa.py:193 | on stmt: $330pred = call bool330($328compare_op.2, func=bool330, args=(Var($328compare_op.2, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,046 | DEBUG | ssa.py:193 | on stmt: branch $330pred, 332, 388\n", - "2023-05-15 11:07:30,046 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 332\n", - "2023-05-15 11:07:30,047 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,047 | DEBUG | ssa.py:193 | on stmt: $332load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:30,047 | DEBUG | ssa.py:193 | on stmt: $336load_deref.2 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,048 | DEBUG | ssa.py:193 | on stmt: $344binary_subscr.6 = getitem(value=R, index=j, fn=)\n", - "2023-05-15 11:07:30,048 | DEBUG | ssa.py:193 | on stmt: $346call_function.7 = call $336load_deref.2(A, $344binary_subscr.6, func=$336load_deref.2, args=[Var(A, quicksort.py:92), Var($344binary_subscr.6, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,049 | DEBUG | ssa.py:193 | on stmt: $348call_function.8 = call $332load_deref.0(pivot, $346call_function.7, func=$332load_deref.0, args=[Var(pivot, quicksort.py:108), Var($346call_function.7, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,049 | DEBUG | ssa.py:193 | on stmt: bool350 = global(bool: )\n", - "2023-05-15 11:07:30,050 | DEBUG | ssa.py:193 | on stmt: $350pred = call bool350($348call_function.8, func=bool350, args=(Var($348call_function.8, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,050 | DEBUG | ssa.py:193 | on stmt: branch $350pred, 352, 388\n", - "2023-05-15 11:07:30,051 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 352\n", - "2023-05-15 11:07:30,051 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,052 | DEBUG | ssa.py:193 | on stmt: $const354.1 = const(int, 1)\n", - "2023-05-15 11:07:30,056 | DEBUG | ssa.py:193 | on stmt: $356inplace_subtract.2 = inplace_binop(fn=, immutable_fn=, lhs=j, rhs=$const354.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:30,056 | DEBUG | ssa.py:193 | on stmt: j = $356inplace_subtract.2\n", - "2023-05-15 11:07:30,057 | DEBUG | ssa.py:193 | on stmt: $364compare_op.5 = j >= low\n", - "2023-05-15 11:07:30,057 | DEBUG | ssa.py:193 | on stmt: bool366 = global(bool: )\n", - "2023-05-15 11:07:30,058 | DEBUG | ssa.py:193 | on stmt: $366pred = call bool366($364compare_op.5, func=bool366, args=(Var($364compare_op.5, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,058 | DEBUG | ssa.py:193 | on stmt: branch $366pred, 368, 388\n", - "2023-05-15 11:07:30,059 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 368\n", - "2023-05-15 11:07:30,059 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,059 | DEBUG | ssa.py:193 | on stmt: $368load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:30,060 | DEBUG | ssa.py:193 | on stmt: $372load_deref.2 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,060 | DEBUG | ssa.py:193 | on stmt: $380binary_subscr.6 = getitem(value=R, index=j, fn=)\n", - "2023-05-15 11:07:30,061 | DEBUG | ssa.py:193 | on stmt: $382call_function.7 = call $372load_deref.2(A, $380binary_subscr.6, func=$372load_deref.2, args=[Var(A, quicksort.py:92), Var($380binary_subscr.6, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,061 | DEBUG | ssa.py:193 | on stmt: $384call_function.8 = call $368load_deref.0(pivot, $382call_function.7, func=$368load_deref.0, args=[Var(pivot, quicksort.py:108), Var($382call_function.7, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,062 | DEBUG | ssa.py:193 | on stmt: bool386 = global(bool: )\n", - "2023-05-15 11:07:30,062 | DEBUG | ssa.py:193 | on stmt: $386pred = call bool386($384call_function.8, func=bool386, args=(Var($384call_function.8, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,063 | DEBUG | ssa.py:193 | on stmt: branch $386pred, 352, 388\n", - "2023-05-15 11:07:30,063 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 388\n", - "2023-05-15 11:07:30,066 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,066 | DEBUG | ssa.py:193 | on stmt: $392compare_op.2 = i >= j\n", - "2023-05-15 11:07:30,067 | DEBUG | ssa.py:193 | on stmt: bool394 = global(bool: )\n", - "2023-05-15 11:07:30,067 | DEBUG | ssa.py:193 | on stmt: $394pred = call bool394($392compare_op.2, func=bool394, args=(Var($392compare_op.2, quicksort.py:119),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,068 | DEBUG | ssa.py:193 | on stmt: branch $394pred, 396, 398\n", - "2023-05-15 11:07:30,069 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 396\n", - "2023-05-15 11:07:30,070 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,070 | DEBUG | ssa.py:193 | on stmt: jump 442\n", - "2023-05-15 11:07:30,071 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 398\n", - "2023-05-15 11:07:30,072 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,072 | DEBUG | ssa.py:193 | on stmt: $402binary_subscr.2 = getitem(value=R, index=j, fn=)\n", - "2023-05-15 11:07:30,074 | DEBUG | ssa.py:193 | on stmt: $408binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:30,074 | DEBUG | ssa.py:193 | on stmt: R[i] = $402binary_subscr.2\n", - "2023-05-15 11:07:30,075 | DEBUG | ssa.py:193 | on stmt: R[j] = $408binary_subscr.5\n", - "2023-05-15 11:07:30,075 | DEBUG | ssa.py:193 | on stmt: $const426.11 = const(int, 1)\n", - "2023-05-15 11:07:30,076 | DEBUG | ssa.py:193 | on stmt: $428inplace_add.12 = inplace_binop(fn=, immutable_fn=, lhs=i, rhs=$const426.11, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:30,076 | DEBUG | ssa.py:193 | on stmt: i = $428inplace_add.12\n", - "2023-05-15 11:07:30,077 | DEBUG | ssa.py:199 | replaced with: i.2 = $428inplace_add.12\n", - "2023-05-15 11:07:30,078 | DEBUG | ssa.py:193 | on stmt: $const434.14 = const(int, 1)\n", - "2023-05-15 11:07:30,078 | DEBUG | ssa.py:193 | on stmt: $436inplace_subtract.15 = inplace_binop(fn=, immutable_fn=, lhs=j, rhs=$const434.14, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:30,079 | DEBUG | ssa.py:193 | on stmt: j = $436inplace_subtract.15\n", - "2023-05-15 11:07:30,081 | DEBUG | ssa.py:193 | on stmt: jump 260\n", - "2023-05-15 11:07:30,081 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 442\n", - "2023-05-15 11:07:30,082 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,082 | DEBUG | ssa.py:193 | on stmt: $446binary_subscr.2 = getitem(value=R, index=high, fn=)\n", - "2023-05-15 11:07:30,083 | DEBUG | ssa.py:193 | on stmt: $452binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:30,084 | DEBUG | ssa.py:193 | on stmt: R[i] = $446binary_subscr.2\n", - "2023-05-15 11:07:30,085 | DEBUG | ssa.py:193 | on stmt: R[high] = $452binary_subscr.5\n", - "2023-05-15 11:07:30,085 | DEBUG | ssa.py:193 | on stmt: $470return_value.11 = cast(value=i)\n", - "2023-05-15 11:07:30,085 | DEBUG | ssa.py:193 | on stmt: return $470return_value.11\n", - "2023-05-15 11:07:30,087 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {206: [],\n", - " 288: [],\n", - " 398: []})\n", - "2023-05-15 11:07:30,087 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:30,088 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,088 | DEBUG | ssa.py:193 | on stmt: A = arg(0, name=A)\n", - "2023-05-15 11:07:30,089 | DEBUG | ssa.py:193 | on stmt: R = arg(1, name=R)\n", - "2023-05-15 11:07:30,089 | DEBUG | ssa.py:193 | on stmt: low = arg(2, name=low)\n", - "2023-05-15 11:07:30,090 | DEBUG | ssa.py:193 | on stmt: high = arg(3, name=high)\n", - "2023-05-15 11:07:30,090 | DEBUG | ssa.py:193 | on stmt: $const4.1 = const(int, 0)\n", - "2023-05-15 11:07:30,092 | DEBUG | ssa.py:193 | on stmt: $6compare_op.2 = low >= $const4.1\n", - "2023-05-15 11:07:30,092 | DEBUG | ssa.py:193 | on stmt: bool8 = global(bool: )\n", - "2023-05-15 11:07:30,093 | DEBUG | ssa.py:193 | on stmt: $8pred = call bool8($6compare_op.2, func=bool8, args=(Var($6compare_op.2, quicksort.py:92),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,093 | DEBUG | ssa.py:193 | on stmt: branch $8pred, 14, 10\n", - "2023-05-15 11:07:30,094 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 10\n", - "2023-05-15 11:07:30,094 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,095 | DEBUG | ssa.py:193 | on stmt: $assertion_error10.0 = global(AssertionError: )\n", - "2023-05-15 11:07:30,096 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:30,096 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 14\n", - "2023-05-15 11:07:30,097 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,097 | DEBUG | ssa.py:193 | on stmt: $18compare_op.2 = high > low\n", - "2023-05-15 11:07:30,098 | DEBUG | ssa.py:193 | on stmt: bool20 = global(bool: )\n", - "2023-05-15 11:07:30,099 | DEBUG | ssa.py:193 | on stmt: $20pred = call bool20($18compare_op.2, func=bool20, args=(Var($18compare_op.2, quicksort.py:93),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,100 | DEBUG | ssa.py:193 | on stmt: branch $20pred, 26, 22\n", - "2023-05-15 11:07:30,100 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 22\n", - "2023-05-15 11:07:30,101 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,101 | DEBUG | ssa.py:193 | on stmt: $assertion_error22.0 = global(AssertionError: )\n", - "2023-05-15 11:07:30,101 | DEBUG | ssa.py:193 | on stmt: raise \n", - "2023-05-15 11:07:30,102 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:30,102 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,104 | DEBUG | ssa.py:193 | on stmt: $30binary_add.2 = low + high\n", - "2023-05-15 11:07:30,105 | DEBUG | ssa.py:193 | on stmt: $const32.3 = const(int, 1)\n", - "2023-05-15 11:07:30,105 | DEBUG | ssa.py:193 | on stmt: mid = $30binary_add.2 >> $const32.3\n", - "2023-05-15 11:07:30,106 | DEBUG | ssa.py:193 | on stmt: $38load_deref.5 = freevar(LT: )\n", - "2023-05-15 11:07:30,107 | DEBUG | ssa.py:193 | on stmt: $40load_deref.6 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,107 | DEBUG | ssa.py:193 | on stmt: $48binary_subscr.10 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:30,108 | DEBUG | ssa.py:193 | on stmt: $50call_function.11 = call $40load_deref.6(A, $48binary_subscr.10, func=$40load_deref.6, args=[Var(A, quicksort.py:92), Var($48binary_subscr.10, quicksort.py:102)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,109 | DEBUG | ssa.py:193 | on stmt: $52load_deref.12 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,109 | DEBUG | ssa.py:193 | on stmt: $60binary_subscr.16 = getitem(value=R, index=low, fn=)\n", - "2023-05-15 11:07:30,110 | DEBUG | ssa.py:193 | on stmt: $62call_function.17 = call $52load_deref.12(A, $60binary_subscr.16, func=$52load_deref.12, args=[Var(A, quicksort.py:92), Var($60binary_subscr.16, quicksort.py:102)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,111 | DEBUG | ssa.py:193 | on stmt: $64call_function.18 = call $38load_deref.5($50call_function.11, $62call_function.17, func=$38load_deref.5, args=[Var($50call_function.11, quicksort.py:102), Var($62call_function.17, quicksort.py:102)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,111 | DEBUG | ssa.py:193 | on stmt: bool66 = global(bool: )\n", - "2023-05-15 11:07:30,112 | DEBUG | ssa.py:193 | on stmt: $66pred = call bool66($64call_function.18, func=bool66, args=(Var($64call_function.18, quicksort.py:102),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,113 | DEBUG | ssa.py:193 | on stmt: branch $66pred, 68, 94\n", - "2023-05-15 11:07:30,114 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:30,114 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,114 | DEBUG | ssa.py:193 | on stmt: $72binary_subscr.2 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:30,115 | DEBUG | ssa.py:193 | on stmt: $78binary_subscr.5 = getitem(value=R, index=low, fn=)\n", - "2023-05-15 11:07:30,116 | DEBUG | ssa.py:193 | on stmt: R[low] = $72binary_subscr.2\n", - "2023-05-15 11:07:30,117 | DEBUG | ssa.py:193 | on stmt: R[mid] = $78binary_subscr.5\n", - "2023-05-15 11:07:30,117 | DEBUG | ssa.py:193 | on stmt: jump 94\n", - "2023-05-15 11:07:30,118 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 94\n", - "2023-05-15 11:07:30,119 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,119 | DEBUG | ssa.py:193 | on stmt: $94load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:30,120 | DEBUG | ssa.py:193 | on stmt: $96load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,121 | DEBUG | ssa.py:193 | on stmt: $104binary_subscr.5 = getitem(value=R, index=high, fn=)\n", - "2023-05-15 11:07:30,121 | DEBUG | ssa.py:193 | on stmt: $106call_function.6 = call $96load_deref.1(A, $104binary_subscr.5, func=$96load_deref.1, args=[Var(A, quicksort.py:92), Var($104binary_subscr.5, quicksort.py:104)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,122 | DEBUG | ssa.py:193 | on stmt: $108load_deref.7 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,122 | DEBUG | ssa.py:193 | on stmt: $116binary_subscr.11 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:30,123 | DEBUG | ssa.py:193 | on stmt: $118call_function.12 = call $108load_deref.7(A, $116binary_subscr.11, func=$108load_deref.7, args=[Var(A, quicksort.py:92), Var($116binary_subscr.11, quicksort.py:104)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,123 | DEBUG | ssa.py:193 | on stmt: $120call_function.13 = call $94load_deref.0($106call_function.6, $118call_function.12, func=$94load_deref.0, args=[Var($106call_function.6, quicksort.py:104), Var($118call_function.12, quicksort.py:104)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,124 | DEBUG | ssa.py:193 | on stmt: bool122 = global(bool: )\n", - "2023-05-15 11:07:30,124 | DEBUG | ssa.py:193 | on stmt: $122pred = call bool122($120call_function.13, func=bool122, args=(Var($120call_function.13, quicksort.py:104),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,125 | DEBUG | ssa.py:193 | on stmt: branch $122pred, 124, 150\n", - "2023-05-15 11:07:30,125 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 124\n", - "2023-05-15 11:07:30,127 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,128 | DEBUG | ssa.py:193 | on stmt: $128binary_subscr.2 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:30,128 | DEBUG | ssa.py:193 | on stmt: $134binary_subscr.5 = getitem(value=R, index=high, fn=)\n", - "2023-05-15 11:07:30,129 | DEBUG | ssa.py:193 | on stmt: R[high] = $128binary_subscr.2\n", - "2023-05-15 11:07:30,129 | DEBUG | ssa.py:193 | on stmt: R[mid] = $134binary_subscr.5\n", - "2023-05-15 11:07:30,129 | DEBUG | ssa.py:193 | on stmt: jump 150\n", - "2023-05-15 11:07:30,130 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 150\n", - "2023-05-15 11:07:30,130 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,131 | DEBUG | ssa.py:193 | on stmt: $150load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:30,131 | DEBUG | ssa.py:193 | on stmt: $152load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,132 | DEBUG | ssa.py:193 | on stmt: $160binary_subscr.5 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:30,132 | DEBUG | ssa.py:193 | on stmt: $162call_function.6 = call $152load_deref.1(A, $160binary_subscr.5, func=$152load_deref.1, args=[Var(A, quicksort.py:92), Var($160binary_subscr.5, quicksort.py:106)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,133 | DEBUG | ssa.py:193 | on stmt: $164load_deref.7 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,135 | DEBUG | ssa.py:193 | on stmt: $172binary_subscr.11 = getitem(value=R, index=low, fn=)\n", - "2023-05-15 11:07:30,135 | DEBUG | ssa.py:193 | on stmt: $174call_function.12 = call $164load_deref.7(A, $172binary_subscr.11, func=$164load_deref.7, args=[Var(A, quicksort.py:92), Var($172binary_subscr.11, quicksort.py:106)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,136 | DEBUG | ssa.py:193 | on stmt: $176call_function.13 = call $150load_deref.0($162call_function.6, $174call_function.12, func=$150load_deref.0, args=[Var($162call_function.6, quicksort.py:106), Var($174call_function.12, quicksort.py:106)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,136 | DEBUG | ssa.py:193 | on stmt: bool178 = global(bool: )\n", - "2023-05-15 11:07:30,139 | DEBUG | ssa.py:193 | on stmt: $178pred = call bool178($176call_function.13, func=bool178, args=(Var($176call_function.13, quicksort.py:106),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,139 | DEBUG | ssa.py:193 | on stmt: branch $178pred, 180, 206\n", - "2023-05-15 11:07:30,140 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 180\n", - "2023-05-15 11:07:30,141 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,141 | DEBUG | ssa.py:193 | on stmt: $184binary_subscr.2 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:30,141 | DEBUG | ssa.py:193 | on stmt: $190binary_subscr.5 = getitem(value=R, index=low, fn=)\n", - "2023-05-15 11:07:30,142 | DEBUG | ssa.py:193 | on stmt: R[low] = $184binary_subscr.2\n", - "2023-05-15 11:07:30,143 | DEBUG | ssa.py:193 | on stmt: R[mid] = $190binary_subscr.5\n", - "2023-05-15 11:07:30,143 | DEBUG | ssa.py:193 | on stmt: jump 206\n", - "2023-05-15 11:07:30,144 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 206\n", - "2023-05-15 11:07:30,144 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,145 | DEBUG | ssa.py:193 | on stmt: $206load_deref.0 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,145 | DEBUG | ssa.py:193 | on stmt: $214binary_subscr.4 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:30,145 | DEBUG | ssa.py:193 | on stmt: pivot = call $206load_deref.0(A, $214binary_subscr.4, func=$206load_deref.0, args=[Var(A, quicksort.py:92), Var($214binary_subscr.4, quicksort.py:108)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,146 | DEBUG | ssa.py:193 | on stmt: $224binary_subscr.8 = getitem(value=R, index=mid, fn=)\n", - "2023-05-15 11:07:30,146 | DEBUG | ssa.py:193 | on stmt: $230binary_subscr.11 = getitem(value=R, index=high, fn=)\n", - "2023-05-15 11:07:30,147 | DEBUG | ssa.py:193 | on stmt: R[high] = $224binary_subscr.8\n", - "2023-05-15 11:07:30,147 | DEBUG | ssa.py:193 | on stmt: R[mid] = $230binary_subscr.11\n", - "2023-05-15 11:07:30,147 | DEBUG | ssa.py:193 | on stmt: i = low\n", - "2023-05-15 11:07:30,148 | DEBUG | ssa.py:193 | on stmt: $const252.18 = const(int, 1)\n", - "2023-05-15 11:07:30,148 | DEBUG | ssa.py:193 | on stmt: j = high - $const252.18\n", - "2023-05-15 11:07:30,149 | DEBUG | ssa.py:193 | on stmt: jump 260\n", - "2023-05-15 11:07:30,149 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 260\n", - "2023-05-15 11:07:30,150 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,150 | DEBUG | ssa.py:193 | on stmt: $264compare_op.2 = i < high\n", - "2023-05-15 11:07:30,150 | DEBUG | ssa.py:353 | find_def var='i' stmt=$264compare_op.2 = i < high\n", - "2023-05-15 11:07:30,151 | DEBUG | ssa.py:384 | find_def_from_top label 260\n", - "2023-05-15 11:07:30,151 | DEBUG | ssa.py:401 | insert phi node i.3 = phi(incoming_values=[], incoming_blocks=[]) at 260\n", - "2023-05-15 11:07:30,152 | DEBUG | ssa.py:427 | find_def_from_bottom label 398\n", - "2023-05-15 11:07:30,152 | DEBUG | ssa.py:409 | incoming_def i.2 = $428inplace_add.12\n", - "2023-05-15 11:07:30,152 | DEBUG | ssa.py:427 | find_def_from_bottom label 206\n", - "2023-05-15 11:07:30,153 | DEBUG | ssa.py:409 | incoming_def i = low\n", - "2023-05-15 11:07:30,153 | DEBUG | ssa.py:199 | replaced with: $264compare_op.2 = i.3 < high\n", - "2023-05-15 11:07:30,154 | DEBUG | ssa.py:193 | on stmt: bool266 = global(bool: )\n", - "2023-05-15 11:07:30,154 | DEBUG | ssa.py:193 | on stmt: $266pred = call bool266($264compare_op.2, func=bool266, args=(Var($264compare_op.2, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,155 | DEBUG | ssa.py:193 | on stmt: branch $266pred, 268, 324\n", - "2023-05-15 11:07:30,155 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 268\n", - "2023-05-15 11:07:30,155 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,156 | DEBUG | ssa.py:193 | on stmt: $268load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:30,156 | DEBUG | ssa.py:193 | on stmt: $270load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,157 | DEBUG | ssa.py:193 | on stmt: $278binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:30,157 | DEBUG | ssa.py:353 | find_def var='i' stmt=$278binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:30,161 | DEBUG | ssa.py:384 | find_def_from_top label 268\n", - "2023-05-15 11:07:30,162 | DEBUG | ssa.py:421 | idom 260 from label 268\n", - "2023-05-15 11:07:30,162 | DEBUG | ssa.py:427 | find_def_from_bottom label 260\n", - "2023-05-15 11:07:30,163 | DEBUG | ssa.py:199 | replaced with: $278binary_subscr.5 = getitem(value=R, index=i.3, fn=)\n", - "2023-05-15 11:07:30,163 | DEBUG | ssa.py:193 | on stmt: $280call_function.6 = call $270load_deref.1(A, $278binary_subscr.5, func=$270load_deref.1, args=[Var(A, quicksort.py:92), Var($278binary_subscr.5, quicksort.py:115)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,164 | DEBUG | ssa.py:193 | on stmt: $284call_function.8 = call $268load_deref.0($280call_function.6, pivot, func=$268load_deref.0, args=[Var($280call_function.6, quicksort.py:115), Var(pivot, quicksort.py:108)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,164 | DEBUG | ssa.py:193 | on stmt: bool286 = global(bool: )\n", - "2023-05-15 11:07:30,164 | DEBUG | ssa.py:193 | on stmt: $286pred = call bool286($284call_function.8, func=bool286, args=(Var($284call_function.8, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,165 | DEBUG | ssa.py:193 | on stmt: branch $286pred, 288, 324\n", - "2023-05-15 11:07:30,165 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 288\n", - "2023-05-15 11:07:30,166 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,166 | DEBUG | ssa.py:193 | on stmt: $const290.1 = const(int, 1)\n", - "2023-05-15 11:07:30,167 | DEBUG | ssa.py:193 | on stmt: $292inplace_add.2 = inplace_binop(fn=, immutable_fn=, lhs=i, rhs=$const290.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:30,167 | DEBUG | ssa.py:353 | find_def var='i' stmt=$292inplace_add.2 = inplace_binop(fn=, immutable_fn=, lhs=i, rhs=$const290.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:30,168 | DEBUG | ssa.py:384 | find_def_from_top label 288\n", - "2023-05-15 11:07:30,169 | DEBUG | ssa.py:401 | insert phi node i.4 = phi(incoming_values=[], incoming_blocks=[]) at 288\n", - "2023-05-15 11:07:30,169 | DEBUG | ssa.py:427 | find_def_from_bottom label 304\n", - "2023-05-15 11:07:30,169 | DEBUG | ssa.py:384 | find_def_from_top label 304\n", - "2023-05-15 11:07:30,170 | DEBUG | ssa.py:421 | idom 288 from label 304\n", - "2023-05-15 11:07:30,171 | DEBUG | ssa.py:427 | find_def_from_bottom label 288\n", - "2023-05-15 11:07:30,171 | DEBUG | ssa.py:409 | incoming_def i.1 = $292inplace_add.2\n", - "2023-05-15 11:07:30,172 | DEBUG | ssa.py:427 | find_def_from_bottom label 268\n", - "2023-05-15 11:07:30,172 | DEBUG | ssa.py:384 | find_def_from_top label 268\n", - "2023-05-15 11:07:30,172 | DEBUG | ssa.py:421 | idom 260 from label 268\n", - "2023-05-15 11:07:30,173 | DEBUG | ssa.py:427 | find_def_from_bottom label 260\n", - "2023-05-15 11:07:30,173 | DEBUG | ssa.py:409 | incoming_def i.3 = phi(incoming_values=[Var(i.2, quicksort.py:122), Var(i, quicksort.py:112)], incoming_blocks=[398, 206])\n", - "2023-05-15 11:07:30,174 | DEBUG | ssa.py:199 | replaced with: $292inplace_add.2 = inplace_binop(fn=, immutable_fn=, lhs=i.4, rhs=$const290.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:30,174 | DEBUG | ssa.py:193 | on stmt: i.1 = $292inplace_add.2\n", - "2023-05-15 11:07:30,174 | DEBUG | ssa.py:193 | on stmt: $300compare_op.5 = i < high\n", - "2023-05-15 11:07:30,175 | DEBUG | ssa.py:353 | find_def var='i' stmt=$300compare_op.5 = i < high\n", - "2023-05-15 11:07:30,176 | DEBUG | ssa.py:199 | replaced with: $300compare_op.5 = i.1 < high\n", - "2023-05-15 11:07:30,176 | DEBUG | ssa.py:193 | on stmt: bool302 = global(bool: )\n", - "2023-05-15 11:07:30,176 | DEBUG | ssa.py:193 | on stmt: $302pred = call bool302($300compare_op.5, func=bool302, args=(Var($300compare_op.5, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,177 | DEBUG | ssa.py:193 | on stmt: branch $302pred, 304, 324\n", - "2023-05-15 11:07:30,177 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 304\n", - "2023-05-15 11:07:30,178 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,178 | DEBUG | ssa.py:193 | on stmt: $304load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:30,179 | DEBUG | ssa.py:193 | on stmt: $306load_deref.1 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,179 | DEBUG | ssa.py:193 | on stmt: $314binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:30,179 | DEBUG | ssa.py:353 | find_def var='i' stmt=$314binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:30,182 | DEBUG | ssa.py:384 | find_def_from_top label 304\n", - "2023-05-15 11:07:30,184 | DEBUG | ssa.py:421 | idom 288 from label 304\n", - "2023-05-15 11:07:30,185 | DEBUG | ssa.py:427 | find_def_from_bottom label 288\n", - "2023-05-15 11:07:30,185 | DEBUG | ssa.py:199 | replaced with: $314binary_subscr.5 = getitem(value=R, index=i.1, fn=)\n", - "2023-05-15 11:07:30,186 | DEBUG | ssa.py:193 | on stmt: $316call_function.6 = call $306load_deref.1(A, $314binary_subscr.5, func=$306load_deref.1, args=[Var(A, quicksort.py:92), Var($314binary_subscr.5, quicksort.py:115)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,186 | DEBUG | ssa.py:193 | on stmt: $320call_function.8 = call $304load_deref.0($316call_function.6, pivot, func=$304load_deref.0, args=[Var($316call_function.6, quicksort.py:115), Var(pivot, quicksort.py:108)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,187 | DEBUG | ssa.py:193 | on stmt: bool322 = global(bool: )\n", - "2023-05-15 11:07:30,187 | DEBUG | ssa.py:193 | on stmt: $322pred = call bool322($320call_function.8, func=bool322, args=(Var($320call_function.8, quicksort.py:115),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,188 | DEBUG | ssa.py:193 | on stmt: branch $322pred, 288, 324\n", - "2023-05-15 11:07:30,188 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 324\n", - "2023-05-15 11:07:30,188 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,189 | DEBUG | ssa.py:193 | on stmt: $328compare_op.2 = j >= low\n", - "2023-05-15 11:07:30,190 | DEBUG | ssa.py:193 | on stmt: bool330 = global(bool: )\n", - "2023-05-15 11:07:30,191 | DEBUG | ssa.py:193 | on stmt: $330pred = call bool330($328compare_op.2, func=bool330, args=(Var($328compare_op.2, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,191 | DEBUG | ssa.py:193 | on stmt: branch $330pred, 332, 388\n", - "2023-05-15 11:07:30,192 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 332\n", - "2023-05-15 11:07:30,192 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,193 | DEBUG | ssa.py:193 | on stmt: $332load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:30,193 | DEBUG | ssa.py:193 | on stmt: $336load_deref.2 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,193 | DEBUG | ssa.py:193 | on stmt: $344binary_subscr.6 = getitem(value=R, index=j, fn=)\n", - "2023-05-15 11:07:30,194 | DEBUG | ssa.py:193 | on stmt: $346call_function.7 = call $336load_deref.2(A, $344binary_subscr.6, func=$336load_deref.2, args=[Var(A, quicksort.py:92), Var($344binary_subscr.6, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,194 | DEBUG | ssa.py:193 | on stmt: $348call_function.8 = call $332load_deref.0(pivot, $346call_function.7, func=$332load_deref.0, args=[Var(pivot, quicksort.py:108), Var($346call_function.7, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,195 | DEBUG | ssa.py:193 | on stmt: bool350 = global(bool: )\n", - "2023-05-15 11:07:30,195 | DEBUG | ssa.py:193 | on stmt: $350pred = call bool350($348call_function.8, func=bool350, args=(Var($348call_function.8, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,196 | DEBUG | ssa.py:193 | on stmt: branch $350pred, 352, 388\n", - "2023-05-15 11:07:30,196 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 352\n", - "2023-05-15 11:07:30,197 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,197 | DEBUG | ssa.py:193 | on stmt: $const354.1 = const(int, 1)\n", - "2023-05-15 11:07:30,198 | DEBUG | ssa.py:193 | on stmt: $356inplace_subtract.2 = inplace_binop(fn=, immutable_fn=, lhs=j, rhs=$const354.1, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:30,198 | DEBUG | ssa.py:193 | on stmt: j = $356inplace_subtract.2\n", - "2023-05-15 11:07:30,198 | DEBUG | ssa.py:193 | on stmt: $364compare_op.5 = j >= low\n", - "2023-05-15 11:07:30,199 | DEBUG | ssa.py:193 | on stmt: bool366 = global(bool: )\n", - "2023-05-15 11:07:30,199 | DEBUG | ssa.py:193 | on stmt: $366pred = call bool366($364compare_op.5, func=bool366, args=(Var($364compare_op.5, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,200 | DEBUG | ssa.py:193 | on stmt: branch $366pred, 368, 388\n", - "2023-05-15 11:07:30,200 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 368\n", - "2023-05-15 11:07:30,201 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,201 | DEBUG | ssa.py:193 | on stmt: $368load_deref.0 = freevar(LT: )\n", - "2023-05-15 11:07:30,201 | DEBUG | ssa.py:193 | on stmt: $372load_deref.2 = freevar(GET: .GET at 0x7ff8dbbf3be0>)\n", - "2023-05-15 11:07:30,202 | DEBUG | ssa.py:193 | on stmt: $380binary_subscr.6 = getitem(value=R, index=j, fn=)\n", - "2023-05-15 11:07:30,202 | DEBUG | ssa.py:193 | on stmt: $382call_function.7 = call $372load_deref.2(A, $380binary_subscr.6, func=$372load_deref.2, args=[Var(A, quicksort.py:92), Var($380binary_subscr.6, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,203 | DEBUG | ssa.py:193 | on stmt: $384call_function.8 = call $368load_deref.0(pivot, $382call_function.7, func=$368load_deref.0, args=[Var(pivot, quicksort.py:108), Var($382call_function.7, quicksort.py:117)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,203 | DEBUG | ssa.py:193 | on stmt: bool386 = global(bool: )\n", - "2023-05-15 11:07:30,204 | DEBUG | ssa.py:193 | on stmt: $386pred = call bool386($384call_function.8, func=bool386, args=(Var($384call_function.8, quicksort.py:117),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,204 | DEBUG | ssa.py:193 | on stmt: branch $386pred, 352, 388\n", - "2023-05-15 11:07:30,204 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 388\n", - "2023-05-15 11:07:30,205 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,205 | DEBUG | ssa.py:193 | on stmt: $392compare_op.2 = i >= j\n", - "2023-05-15 11:07:30,206 | DEBUG | ssa.py:353 | find_def var='i' stmt=$392compare_op.2 = i >= j\n", - "2023-05-15 11:07:30,206 | DEBUG | ssa.py:384 | find_def_from_top label 388\n", - "2023-05-15 11:07:30,207 | DEBUG | ssa.py:421 | idom 324 from label 388\n", - "2023-05-15 11:07:30,207 | DEBUG | ssa.py:427 | find_def_from_bottom label 324\n", - "2023-05-15 11:07:30,207 | DEBUG | ssa.py:384 | find_def_from_top label 324\n", - "2023-05-15 11:07:30,208 | DEBUG | ssa.py:401 | insert phi node i.5 = phi(incoming_values=[], incoming_blocks=[]) at 324\n", - "2023-05-15 11:07:30,208 | DEBUG | ssa.py:427 | find_def_from_bottom label 288\n", - "2023-05-15 11:07:30,209 | DEBUG | ssa.py:409 | incoming_def i.1 = $292inplace_add.2\n", - "2023-05-15 11:07:30,209 | DEBUG | ssa.py:427 | find_def_from_bottom label 304\n", - "2023-05-15 11:07:30,210 | DEBUG | ssa.py:384 | find_def_from_top label 304\n", - "2023-05-15 11:07:30,210 | DEBUG | ssa.py:421 | idom 288 from label 304\n", - "2023-05-15 11:07:30,210 | DEBUG | ssa.py:427 | find_def_from_bottom label 288\n", - "2023-05-15 11:07:30,211 | DEBUG | ssa.py:409 | incoming_def i.1 = $292inplace_add.2\n", - "2023-05-15 11:07:30,211 | DEBUG | ssa.py:427 | find_def_from_bottom label 260\n", - "2023-05-15 11:07:30,212 | DEBUG | ssa.py:409 | incoming_def i.3 = phi(incoming_values=[Var(i.2, quicksort.py:122), Var(i, quicksort.py:112)], incoming_blocks=[398, 206])\n", - "2023-05-15 11:07:30,212 | DEBUG | ssa.py:427 | find_def_from_bottom label 268\n", - "2023-05-15 11:07:30,213 | DEBUG | ssa.py:384 | find_def_from_top label 268\n", - "2023-05-15 11:07:30,213 | DEBUG | ssa.py:421 | idom 260 from label 268\n", - "2023-05-15 11:07:30,213 | DEBUG | ssa.py:427 | find_def_from_bottom label 260\n", - "2023-05-15 11:07:30,215 | DEBUG | ssa.py:409 | incoming_def i.3 = phi(incoming_values=[Var(i.2, quicksort.py:122), Var(i, quicksort.py:112)], incoming_blocks=[398, 206])\n", - "2023-05-15 11:07:30,216 | DEBUG | ssa.py:199 | replaced with: $392compare_op.2 = i.5 >= j\n", - "2023-05-15 11:07:30,217 | DEBUG | ssa.py:193 | on stmt: bool394 = global(bool: )\n", - "2023-05-15 11:07:30,217 | DEBUG | ssa.py:193 | on stmt: $394pred = call bool394($392compare_op.2, func=bool394, args=(Var($392compare_op.2, quicksort.py:119),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:30,218 | DEBUG | ssa.py:193 | on stmt: branch $394pred, 396, 398\n", - "2023-05-15 11:07:30,218 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 396\n", - "2023-05-15 11:07:30,218 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,219 | DEBUG | ssa.py:193 | on stmt: jump 442\n", - "2023-05-15 11:07:30,219 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 398\n", - "2023-05-15 11:07:30,220 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:30,223 | DEBUG | ssa.py:193 | on stmt: $402binary_subscr.2 = getitem(value=R, index=j, fn=)\n", - "2023-05-15 11:07:30,225 | DEBUG | ssa.py:193 | on stmt: $408binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:30,226 | DEBUG | ssa.py:353 | find_def var='i' stmt=$408binary_subscr.5 = getitem(value=R, index=i, fn=)\n", - "2023-05-15 11:07:30,226 | DEBUG | ssa.py:384 | find_def_from_top label 398\n", - "2023-05-15 11:07:30,227 | DEBUG | ssa.py:421 | idom 388 from label 398\n", - "2023-05-15 11:07:30,227 | DEBUG | ssa.py:427 | find_def_from_bottom label 388\n", - "2023-05-15 11:07:30,227 | DEBUG | ssa.py:384 | find_def_from_top label 388\n", - "2023-05-15 11:07:30,228 | DEBUG | ssa.py:421 | idom 324 from label 388\n", - "2023-05-15 11:07:30,228 | DEBUG | ssa.py:427 | find_def_from_bottom label 324\n", - "2023-05-15 11:07:30,229 | DEBUG | ssa.py:199 | replaced with: $408binary_subscr.5 = getitem(value=R, index=i.5, fn=)\n", - "2023-05-15 11:07:30,230 | DEBUG | ssa.py:193 | on stmt: R[i] = $402binary_subscr.2\n", - "2023-05-15 11:07:30,230 | DEBUG | ssa.py:353 | find_def var='i' stmt=R[i] = $402binary_subscr.2\n", - "2023-05-15 11:07:30,231 | DEBUG | ssa.py:384 | find_def_from_top label 398\n", - "2023-05-15 11:07:30,231 | DEBUG | ssa.py:421 | idom 388 from label 398\n", - "2023-05-15 11:07:30,232 | DEBUG | ssa.py:427 | find_def_from_bottom label 388\n", - "2023-05-15 11:07:30,232 | DEBUG | ssa.py:384 | find_def_from_top label 388\n", - "2023-05-15 11:07:30,233 | DEBUG | ssa.py:421 | idom 324 from label 388\n", - "2023-05-15 11:07:30,233 | DEBUG | ssa.py:427 | find_def_from_bottom label 324\n", - "2023-05-15 11:07:30,233 | DEBUG | ssa.py:199 | replaced with: R[i.5] = $402binary_subscr.2\n", - "2023-05-15 11:07:30,234 | DEBUG | ssa.py:193 | on stmt: R[j] = $408binary_subscr.5\n", - "2023-05-15 11:07:30,234 | DEBUG | ssa.py:193 | on stmt: $const426.11 = const(int, 1)\n", - "2023-05-15 11:07:30,235 | DEBUG | ssa.py:193 | on stmt: $428inplace_add.12 = inplace_binop(fn=, immutable_fn=, lhs=i, rhs=$const426.11, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:30,235 | DEBUG | ssa.py:353 | find_def var='i' stmt=$428inplace_add.12 = inplace_binop(fn=, immutable_fn=, lhs=i, rhs=$const426.11, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:30,236 | DEBUG | ssa.py:384 | find_def_from_top label 398\n", - "2023-05-15 11:07:30,236 | DEBUG | ssa.py:421 | idom 388 from label 398\n", - "2023-05-15 11:07:30,236 | DEBUG | ssa.py:427 | find_def_from_bottom label 388\n", - "2023-05-15 11:07:30,238 | DEBUG | ssa.py:384 | find_def_from_top label 388\n", - "2023-05-15 11:07:30,239 | DEBUG | ssa.py:421 | idom 324 from label 388\n", - "2023-05-15 11:07:30,239 | DEBUG | ssa.py:427 | find_def_from_bottom label 324\n", - "2023-05-15 11:07:30,240 | DEBUG | ssa.py:199 | replaced with: $428inplace_add.12 = inplace_binop(fn=, immutable_fn=, lhs=i.5, rhs=$const426.11, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:30,241 | DEBUG | ssa.py:193 | on stmt: i.2 = $428inplace_add.12\n", - "2023-05-15 11:07:30,241 | DEBUG | ssa.py:193 | on stmt: $const434.14 = const(int, 1)\n", - "2023-05-15 11:07:30,241 | DEBUG | ssa.py:193 | on stmt: $436inplace_subtract.15 = inplace_binop(fn=, immutable_fn=, lhs=j, rhs=$const434.14, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:30,242 | DEBUG | ssa.py:193 | on stmt: j = $436inplace_subtract.15\n", - "2023-05-15 11:07:30,242 | DEBUG | ssa.py:193 | on stmt: jump 260\n", - "2023-05-15 11:07:30,243 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 442\n", - "2023-05-15 11:07:30,244 | DEBUG | ssa.py:191 | Running \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "IOPub message rate exceeded.\n", - "The notebook server will temporarily stop sending output\n", - "to the client in order to avoid crashing it.\n", - "To change this limit, set the config variable\n", - "`--NotebookApp.iopub_msg_rate_limit`.\n", - "\n", - "Current values:\n", - "NotebookApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n", - "NotebookApp.rate_limit_window=3.0 (secs)\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-05-15 11:07:32,227 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=506)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=506)\n", - " 4\tLOAD_ATTR(arg=1, lineno=506)\n", - " 6\tLOAD_GLOBAL(arg=2, lineno=506)\n", - " 8\tLOAD_FAST(arg=1, lineno=506)\n", - " 10\tCALL_FUNCTION(arg=1, lineno=506)\n", - " 12\tLOAD_GLOBAL(arg=2, lineno=506)\n", - " 14\tLOAD_FAST(arg=3, lineno=506)\n", - " 16\tCALL_FUNCTION(arg=1, lineno=506)\n", - " 18\tBINARY_ADD(arg=None, lineno=506)\n", - " 20\tLOAD_CONST(arg=1, lineno=506)\n", - " 22\tBUILD_TUPLE(arg=2, lineno=506)\n", - " 24\tLOAD_GLOBAL(arg=0, lineno=506)\n", - " 26\tLOAD_ATTR(arg=3, lineno=506)\n", - " 28\tLOAD_CONST(arg=2, lineno=506)\n", - " 30\tCALL_FUNCTION_KW(arg=2, lineno=506)\n", - " 32\tSTORE_FAST(arg=5, lineno=506)\n", - " 34\tLOAD_GLOBAL(arg=4, lineno=508)\n", - " 36\tLOAD_FAST(arg=2, lineno=508)\n", - " 38\tCALL_FUNCTION(arg=1, lineno=508)\n", - " 40\tSTORE_FAST(arg=6, lineno=508)\n", - " 42\tLOAD_GLOBAL(arg=0, lineno=511)\n", - " 44\tLOAD_METHOD(arg=1, lineno=511)\n", - " 46\tLOAD_GLOBAL(arg=2, lineno=511)\n", - " 48\tLOAD_FAST(arg=1, lineno=511)\n", - " 50\tCALL_FUNCTION(arg=1, lineno=511)\n", - " 52\tCALL_METHOD(arg=1, lineno=511)\n", - " 54\tSTORE_FAST(arg=7, lineno=511)\n", - " 56\tLOAD_FAST(arg=7, lineno=512)\n", - " 58\tLOAD_METHOD(arg=5, lineno=512)\n", - " 60\tCALL_METHOD(arg=0, lineno=512)\n", - " 62\tSTORE_FAST(arg=8, lineno=512)\n", - " 64\tLOAD_FAST(arg=6, lineno=514)\n", - " 66\tLOAD_CONST(arg=3, lineno=514)\n", - " 68\tLOAD_CONST(arg=3, lineno=514)\n", - " 70\tLOAD_CONST(arg=4, lineno=514)\n", - " 72\tBUILD_SLICE(arg=3, lineno=514)\n", - " 74\tBINARY_SUBSCR(arg=None, lineno=514)\n", - " 76\tGET_ITER(arg=None, lineno=514)\n", - "> 78\tFOR_ITER(arg=136, lineno=514)\n", - " 80\tSTORE_FAST(arg=9, lineno=514)\n", - " 82\tLOAD_FAST(arg=1, lineno=516)\n", - " 84\tLOAD_FAST(arg=9, lineno=516)\n", - " 86\tBINARY_SUBSCR(arg=None, lineno=516)\n", - " 88\tSTORE_FAST(arg=10, lineno=516)\n", - " 90\tLOAD_FAST(arg=2, lineno=517)\n", - " 92\tLOAD_FAST(arg=9, lineno=517)\n", - " 94\tBINARY_SUBSCR(arg=None, lineno=517)\n", - " 96\tSTORE_FAST(arg=11, lineno=517)\n", - " 98\tLOAD_CONST(arg=5, lineno=519)\n", - " 100\tLOAD_FAST(arg=7, lineno=519)\n", - " 102\tLOAD_FAST(arg=9, lineno=519)\n", - " 104\tBINARY_SUBSCR(arg=None, lineno=519)\n", - " 106\tBINARY_ADD(arg=None, lineno=519)\n", - " 108\tSTORE_FAST(arg=12, lineno=519)\n", - " 110\tLOAD_CONST(arg=5, lineno=520)\n", - " 112\tLOAD_FAST(arg=11, lineno=520)\n", - " 114\tBINARY_TRUE_DIVIDE(arg=None, lineno=520)\n", - " 116\tLOAD_FAST(arg=7, lineno=520)\n", - " 118\tLOAD_FAST(arg=9, lineno=520)\n", - " 120\tBINARY_SUBSCR(arg=None, lineno=520)\n", - " 122\tBINARY_ADD(arg=None, lineno=520)\n", - " 124\tSTORE_FAST(arg=13, lineno=520)\n", - " 126\tLOAD_GLOBAL(arg=0, lineno=523)\n", - " 128\tLOAD_METHOD(arg=6, lineno=523)\n", - " 130\tLOAD_FAST(arg=3, lineno=523)\n", - " 132\tLOAD_GLOBAL(arg=7, lineno=523)\n", - " 134\tLOAD_FAST(arg=10, lineno=523)\n", - " 136\tLOAD_FAST(arg=9, lineno=523)\n", - " 138\tLOAD_FAST(arg=4, lineno=523)\n", - " 140\tCALL_FUNCTION(arg=3, lineno=523)\n", - " 142\tCALL_METHOD(arg=2, lineno=523)\n", - " 144\tSTORE_FAST(arg=14, lineno=523)\n", - " 146\tLOAD_FAST(arg=5, lineno=526)\n", - " 148\tLOAD_GLOBAL(arg=2, lineno=526)\n", - " 150\tLOAD_FAST(arg=1, lineno=526)\n", - " 152\tCALL_FUNCTION(arg=1, lineno=526)\n", - " 154\tLOAD_FAST(arg=14, lineno=526)\n", - " 156\tBINARY_ADD(arg=None, lineno=526)\n", - " 158\tLOAD_CONST(arg=6, lineno=526)\n", - " 160\tBUILD_TUPLE(arg=2, lineno=526)\n", - " 162\tDUP_TOP_TWO(arg=None, lineno=526)\n", - " 164\tBINARY_SUBSCR(arg=None, lineno=526)\n", - " 166\tLOAD_FAST(arg=12, lineno=526)\n", - " 168\tINPLACE_ADD(arg=None, lineno=526)\n", - " 170\tROT_THREE(arg=None, lineno=526)\n", - " 172\tSTORE_SUBSCR(arg=None, lineno=526)\n", - " 174\tLOAD_FAST(arg=5, lineno=528)\n", - " 176\tLOAD_GLOBAL(arg=2, lineno=528)\n", - " 178\tLOAD_FAST(arg=1, lineno=528)\n", - " 180\tCALL_FUNCTION(arg=1, lineno=528)\n", - " 182\tLOAD_FAST(arg=14, lineno=528)\n", - " 184\tBINARY_ADD(arg=None, lineno=528)\n", - " 186\tLOAD_CONST(arg=5, lineno=528)\n", - " 188\tBUILD_TUPLE(arg=2, lineno=528)\n", - " 190\tDUP_TOP_TWO(arg=None, lineno=528)\n", - " 192\tBINARY_SUBSCR(arg=None, lineno=528)\n", - " 194\tLOAD_FAST(arg=13, lineno=528)\n", - " 196\tINPLACE_ADD(arg=None, lineno=528)\n", - " 198\tROT_THREE(arg=None, lineno=528)\n", - " 200\tSTORE_SUBSCR(arg=None, lineno=528)\n", - " 202\tLOAD_FAST(arg=5, lineno=530)\n", - " 204\tLOAD_GLOBAL(arg=2, lineno=530)\n", - " 206\tLOAD_FAST(arg=1, lineno=530)\n", - " 208\tCALL_FUNCTION(arg=1, lineno=530)\n", - " 210\tLOAD_FAST(arg=14, lineno=530)\n", - " 212\tBINARY_ADD(arg=None, lineno=530)\n", - " 214\tLOAD_CONST(arg=7, lineno=530)\n", - " 216\tBUILD_TUPLE(arg=2, lineno=530)\n", - " 218\tDUP_TOP_TWO(arg=None, lineno=530)\n", - " 220\tBINARY_SUBSCR(arg=None, lineno=530)\n", - " 222\tLOAD_FAST(arg=11, lineno=530)\n", - " 224\tLOAD_FAST(arg=13, lineno=530)\n", - " 226\tBINARY_MULTIPLY(arg=None, lineno=530)\n", - " 228\tINPLACE_ADD(arg=None, lineno=530)\n", - " 230\tROT_THREE(arg=None, lineno=530)\n", - " 232\tSTORE_SUBSCR(arg=None, lineno=530)\n", - " 234\tLOAD_FAST(arg=7, lineno=532)\n", - " 236\tLOAD_FAST(arg=10, lineno=532)\n", - " 238\tDUP_TOP_TWO(arg=None, lineno=532)\n", - " 240\tBINARY_SUBSCR(arg=None, lineno=532)\n", - " 242\tLOAD_FAST(arg=12, lineno=532)\n", - " 244\tINPLACE_ADD(arg=None, lineno=532)\n", - " 246\tROT_THREE(arg=None, lineno=532)\n", - " 248\tSTORE_SUBSCR(arg=None, lineno=532)\n", - " 250\tLOAD_FAST(arg=8, lineno=533)\n", - " 252\tLOAD_FAST(arg=10, lineno=533)\n", - " 254\tDUP_TOP_TWO(arg=None, lineno=533)\n", - " 256\tBINARY_SUBSCR(arg=None, lineno=533)\n", - " 258\tLOAD_FAST(arg=13, lineno=533)\n", - " 260\tINPLACE_ADD(arg=None, lineno=533)\n", - " 262\tROT_THREE(arg=None, lineno=533)\n", - " 264\tSTORE_SUBSCR(arg=None, lineno=533)\n", - " 266\tLOAD_FAST(arg=9, lineno=535)\n", - " 268\tLOAD_FAST(arg=0, lineno=535)\n", - " 270\tCOMPARE_OP(arg=3, lineno=535)\n", - " 272\tPOP_JUMP_IF_FALSE(arg=176, lineno=535)\n", - " 274\tLOAD_FAST(arg=5, lineno=536)\n", - " 276\tLOAD_FAST(arg=9, lineno=536)\n", - " 278\tLOAD_CONST(arg=6, lineno=536)\n", - " 280\tBUILD_TUPLE(arg=2, lineno=536)\n", - " 282\tDUP_TOP_TWO(arg=None, lineno=536)\n", - " 284\tBINARY_SUBSCR(arg=None, lineno=536)\n", - " 286\tLOAD_FAST(arg=7, lineno=536)\n", - " 288\tLOAD_FAST(arg=9, lineno=536)\n", - " 290\tBINARY_SUBSCR(arg=None, lineno=536)\n", - " 292\tINPLACE_ADD(arg=None, lineno=536)\n", - " 294\tROT_THREE(arg=None, lineno=536)\n", - " 296\tSTORE_SUBSCR(arg=None, lineno=536)\n", - " 298\tLOAD_FAST(arg=5, lineno=537)\n", - " 300\tLOAD_FAST(arg=9, lineno=537)\n", - " 302\tLOAD_CONST(arg=5, lineno=537)\n", - " 304\tBUILD_TUPLE(arg=2, lineno=537)\n", - " 306\tDUP_TOP_TWO(arg=None, lineno=537)\n", - " 308\tBINARY_SUBSCR(arg=None, lineno=537)\n", - " 310\tLOAD_FAST(arg=8, lineno=537)\n", - " 312\tLOAD_FAST(arg=9, lineno=537)\n", - " 314\tBINARY_SUBSCR(arg=None, lineno=537)\n", - " 316\tINPLACE_ADD(arg=None, lineno=537)\n", - " 318\tROT_THREE(arg=None, lineno=537)\n", - " 320\tSTORE_SUBSCR(arg=None, lineno=537)\n", - " 322\tLOAD_FAST(arg=5, lineno=538)\n", - " 324\tLOAD_FAST(arg=9, lineno=538)\n", - " 326\tLOAD_CONST(arg=7, lineno=538)\n", - " 328\tBUILD_TUPLE(arg=2, lineno=538)\n", - " 330\tDUP_TOP_TWO(arg=None, lineno=538)\n", - " 332\tBINARY_SUBSCR(arg=None, lineno=538)\n", - " 334\tLOAD_FAST(arg=11, lineno=538)\n", - " 336\tLOAD_FAST(arg=8, lineno=538)\n", - " 338\tLOAD_FAST(arg=9, lineno=538)\n", - " 340\tBINARY_SUBSCR(arg=None, lineno=538)\n", - " 342\tBINARY_MULTIPLY(arg=None, lineno=538)\n", - " 344\tINPLACE_ADD(arg=None, lineno=538)\n", - " 346\tROT_THREE(arg=None, lineno=538)\n", - " 348\tSTORE_SUBSCR(arg=None, lineno=538)\n", - "> 350\tJUMP_ABSOLUTE(arg=40, lineno=538)\n", - "> 352\tLOAD_FAST(arg=5, lineno=539)\n", - " 354\tRETURN_VALUE(arg=None, lineno=539)\n", - "2023-05-15 11:07:32,228 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:32,228 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:32,229 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=506)\n", - "2023-05-15 11:07:32,229 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,230 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=506)\n", - "2023-05-15 11:07:32,230 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,231 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_ATTR(arg=1, lineno=506)\n", - "2023-05-15 11:07:32,231 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:32,231 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_GLOBAL(arg=2, lineno=506)\n", - "2023-05-15 11:07:32,232 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1']\n", - "2023-05-15 11:07:32,232 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_FAST(arg=1, lineno=506)\n", - "2023-05-15 11:07:32,233 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$6load_global.2']\n", - "2023-05-15 11:07:32,233 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_FUNCTION(arg=1, lineno=506)\n", - "2023-05-15 11:07:32,235 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$6load_global.2', '$pred_row8.3']\n", - "2023-05-15 11:07:32,235 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=LOAD_GLOBAL(arg=2, lineno=506)\n", - "2023-05-15 11:07:32,236 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$10call_function.4']\n", - "2023-05-15 11:07:32,236 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=LOAD_FAST(arg=3, lineno=506)\n", - "2023-05-15 11:07:32,237 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$10call_function.4', '$12load_global.5']\n", - "2023-05-15 11:07:32,237 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=CALL_FUNCTION(arg=1, lineno=506)\n", - "2023-05-15 11:07:32,237 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$10call_function.4', '$12load_global.5', '$edges_uv14.6']\n", - "2023-05-15 11:07:32,238 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=BINARY_ADD(arg=None, lineno=506)\n", - "2023-05-15 11:07:32,239 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$10call_function.4', '$16call_function.7']\n", - "2023-05-15 11:07:32,239 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=LOAD_CONST(arg=1, lineno=506)\n", - "2023-05-15 11:07:32,239 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$18binary_add.8']\n", - "2023-05-15 11:07:32,240 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=BUILD_TUPLE(arg=2, lineno=506)\n", - "2023-05-15 11:07:32,240 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$18binary_add.8', '$const20.9']\n", - "2023-05-15 11:07:32,241 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=LOAD_GLOBAL(arg=0, lineno=506)\n", - "2023-05-15 11:07:32,241 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$22build_tuple.10']\n", - "2023-05-15 11:07:32,242 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=LOAD_ATTR(arg=3, lineno=506)\n", - "2023-05-15 11:07:32,242 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$22build_tuple.10', '$24load_global.11']\n", - "2023-05-15 11:07:32,242 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=LOAD_CONST(arg=2, lineno=506)\n", - "2023-05-15 11:07:32,243 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$22build_tuple.10', '$26load_attr.12']\n", - "2023-05-15 11:07:32,243 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=CALL_FUNCTION_KW(arg=2, lineno=506)\n", - "2023-05-15 11:07:32,244 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$22build_tuple.10', '$26load_attr.12', '$const28.13']\n", - "2023-05-15 11:07:32,244 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=STORE_FAST(arg=5, lineno=506)\n", - "2023-05-15 11:07:32,244 | DEBUG | byteflow.py:279 | stack ['$30call_function_kw.14']\n", - "2023-05-15 11:07:32,245 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=LOAD_GLOBAL(arg=4, lineno=508)\n", - "2023-05-15 11:07:32,245 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,246 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=LOAD_FAST(arg=2, lineno=508)\n", - "2023-05-15 11:07:32,246 | DEBUG | byteflow.py:279 | stack ['$34load_global.15']\n", - "2023-05-15 11:07:32,247 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=CALL_FUNCTION(arg=1, lineno=508)\n", - "2023-05-15 11:07:32,247 | DEBUG | byteflow.py:279 | stack ['$34load_global.15', '$dist_row36.16']\n", - "2023-05-15 11:07:32,247 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=STORE_FAST(arg=6, lineno=508)\n", - "2023-05-15 11:07:32,248 | DEBUG | byteflow.py:279 | stack ['$38call_function.17']\n", - "2023-05-15 11:07:32,248 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=LOAD_GLOBAL(arg=0, lineno=511)\n", - "2023-05-15 11:07:32,249 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,249 | DEBUG | byteflow.py:278 | dispatch pc=44, inst=LOAD_METHOD(arg=1, lineno=511)\n", - "2023-05-15 11:07:32,250 | DEBUG | byteflow.py:279 | stack ['$42load_global.18']\n", - "2023-05-15 11:07:32,250 | DEBUG | byteflow.py:278 | dispatch pc=46, inst=LOAD_GLOBAL(arg=2, lineno=511)\n", - "2023-05-15 11:07:32,251 | DEBUG | byteflow.py:279 | stack ['$44load_method.19']\n", - "2023-05-15 11:07:32,251 | DEBUG | byteflow.py:278 | dispatch pc=48, inst=LOAD_FAST(arg=1, lineno=511)\n", - "2023-05-15 11:07:32,252 | DEBUG | byteflow.py:279 | stack ['$44load_method.19', '$46load_global.20']\n", - "2023-05-15 11:07:32,252 | DEBUG | byteflow.py:278 | dispatch pc=50, inst=CALL_FUNCTION(arg=1, lineno=511)\n", - "2023-05-15 11:07:32,253 | DEBUG | byteflow.py:279 | stack ['$44load_method.19', '$46load_global.20', '$pred_row48.21']\n", - "2023-05-15 11:07:32,253 | DEBUG | byteflow.py:278 | dispatch pc=52, inst=CALL_METHOD(arg=1, lineno=511)\n", - "2023-05-15 11:07:32,254 | DEBUG | byteflow.py:279 | stack ['$44load_method.19', '$50call_function.22']\n", - "2023-05-15 11:07:32,254 | DEBUG | byteflow.py:278 | dispatch pc=54, inst=STORE_FAST(arg=7, lineno=511)\n", - "2023-05-15 11:07:32,255 | DEBUG | byteflow.py:279 | stack ['$52call_method.23']\n", - "2023-05-15 11:07:32,255 | DEBUG | byteflow.py:278 | dispatch pc=56, inst=LOAD_FAST(arg=7, lineno=512)\n", - "2023-05-15 11:07:32,256 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,256 | DEBUG | byteflow.py:278 | dispatch pc=58, inst=LOAD_METHOD(arg=5, lineno=512)\n", - "2023-05-15 11:07:32,256 | DEBUG | byteflow.py:279 | stack ['$delta56.24']\n", - "2023-05-15 11:07:32,257 | DEBUG | byteflow.py:278 | dispatch pc=60, inst=CALL_METHOD(arg=0, lineno=512)\n", - "2023-05-15 11:07:32,257 | DEBUG | byteflow.py:279 | stack ['$58load_method.25']\n", - "2023-05-15 11:07:32,258 | DEBUG | byteflow.py:278 | dispatch pc=62, inst=STORE_FAST(arg=8, lineno=512)\n", - "2023-05-15 11:07:32,258 | DEBUG | byteflow.py:279 | stack ['$60call_method.26']\n", - "2023-05-15 11:07:32,259 | DEBUG | byteflow.py:278 | dispatch pc=64, inst=LOAD_FAST(arg=6, lineno=514)\n", - "2023-05-15 11:07:32,259 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,260 | DEBUG | byteflow.py:278 | dispatch pc=66, inst=LOAD_CONST(arg=3, lineno=514)\n", - "2023-05-15 11:07:32,260 | DEBUG | byteflow.py:279 | stack ['$s_queue_idx64.27']\n", - "2023-05-15 11:07:32,261 | DEBUG | byteflow.py:278 | dispatch pc=68, inst=LOAD_CONST(arg=3, lineno=514)\n", - "2023-05-15 11:07:32,266 | DEBUG | byteflow.py:279 | stack ['$s_queue_idx64.27', '$const66.28']\n", - "2023-05-15 11:07:32,267 | DEBUG | byteflow.py:278 | dispatch pc=70, inst=LOAD_CONST(arg=4, lineno=514)\n", - "2023-05-15 11:07:32,267 | DEBUG | byteflow.py:279 | stack ['$s_queue_idx64.27', '$const66.28', '$const68.29']\n", - "2023-05-15 11:07:32,268 | DEBUG | byteflow.py:278 | dispatch pc=72, inst=BUILD_SLICE(arg=3, lineno=514)\n", - "2023-05-15 11:07:32,268 | DEBUG | byteflow.py:279 | stack ['$s_queue_idx64.27', '$const66.28', '$const68.29', '$const70.30']\n", - "2023-05-15 11:07:32,269 | DEBUG | byteflow.py:278 | dispatch pc=74, inst=BINARY_SUBSCR(arg=None, lineno=514)\n", - "2023-05-15 11:07:32,269 | DEBUG | byteflow.py:279 | stack ['$s_queue_idx64.27', '$72build_slice.32']\n", - "2023-05-15 11:07:32,270 | DEBUG | byteflow.py:278 | dispatch pc=76, inst=GET_ITER(arg=None, lineno=514)\n", - "2023-05-15 11:07:32,270 | DEBUG | byteflow.py:279 | stack ['$74binary_subscr.33']\n", - "2023-05-15 11:07:32,270 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=78, stack=('$76get_iter.34',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:32,271 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=78 nstack_initial=1)])\n", - "2023-05-15 11:07:32,271 | DEBUG | byteflow.py:103 | stack: ['$phi78.0']\n", - "2023-05-15 11:07:32,272 | DEBUG | byteflow.py:278 | dispatch pc=78, inst=FOR_ITER(arg=136, lineno=514)\n", - "2023-05-15 11:07:32,272 | DEBUG | byteflow.py:279 | stack ['$phi78.0']\n", - "2023-05-15 11:07:32,273 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=352, stack=(), blockstack=(), npush=0), Edge(pc=80, stack=('$phi78.0', '$78for_iter.2'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:32,273 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=352 nstack_initial=0), State(pc_initial=80 nstack_initial=2)])\n", - "2023-05-15 11:07:32,274 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:32,274 | DEBUG | byteflow.py:278 | dispatch pc=352, inst=LOAD_FAST(arg=5, lineno=539)\n", - "2023-05-15 11:07:32,274 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,275 | DEBUG | byteflow.py:278 | dispatch pc=354, inst=RETURN_VALUE(arg=None, lineno=539)\n", - "2023-05-15 11:07:32,275 | DEBUG | byteflow.py:279 | stack ['$betweennesses352.0']\n", - "2023-05-15 11:07:32,276 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:32,276 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=80 nstack_initial=2)])\n", - "2023-05-15 11:07:32,279 | DEBUG | byteflow.py:103 | stack: ['$phi80.0', '$phi80.1']\n", - "2023-05-15 11:07:32,279 | DEBUG | byteflow.py:278 | dispatch pc=80, inst=STORE_FAST(arg=9, lineno=514)\n", - "2023-05-15 11:07:32,280 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$phi80.1']\n", - "2023-05-15 11:07:32,281 | DEBUG | byteflow.py:278 | dispatch pc=82, inst=LOAD_FAST(arg=1, lineno=516)\n", - "2023-05-15 11:07:32,281 | DEBUG | byteflow.py:279 | stack ['$phi80.0']\n", - "2023-05-15 11:07:32,281 | DEBUG | byteflow.py:278 | dispatch pc=84, inst=LOAD_FAST(arg=9, lineno=516)\n", - "2023-05-15 11:07:32,282 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$pred_row82.2']\n", - "2023-05-15 11:07:32,282 | DEBUG | byteflow.py:278 | dispatch pc=86, inst=BINARY_SUBSCR(arg=None, lineno=516)\n", - "2023-05-15 11:07:32,283 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$pred_row82.2', '$w_idx84.3']\n", - "2023-05-15 11:07:32,284 | DEBUG | byteflow.py:278 | dispatch pc=88, inst=STORE_FAST(arg=10, lineno=516)\n", - "2023-05-15 11:07:32,285 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$86binary_subscr.4']\n", - "2023-05-15 11:07:32,285 | DEBUG | byteflow.py:278 | dispatch pc=90, inst=LOAD_FAST(arg=2, lineno=517)\n", - "2023-05-15 11:07:32,286 | DEBUG | byteflow.py:279 | stack ['$phi80.0']\n", - "2023-05-15 11:07:32,286 | DEBUG | byteflow.py:278 | dispatch pc=92, inst=LOAD_FAST(arg=9, lineno=517)\n", - "2023-05-15 11:07:32,286 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$dist_row90.5']\n", - "2023-05-15 11:07:32,287 | DEBUG | byteflow.py:278 | dispatch pc=94, inst=BINARY_SUBSCR(arg=None, lineno=517)\n", - "2023-05-15 11:07:32,287 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$dist_row90.5', '$w_idx92.6']\n", - "2023-05-15 11:07:32,287 | DEBUG | byteflow.py:278 | dispatch pc=96, inst=STORE_FAST(arg=11, lineno=517)\n", - "2023-05-15 11:07:32,288 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$94binary_subscr.7']\n", - "2023-05-15 11:07:32,288 | DEBUG | byteflow.py:278 | dispatch pc=98, inst=LOAD_CONST(arg=5, lineno=519)\n", - "2023-05-15 11:07:32,290 | DEBUG | byteflow.py:279 | stack ['$phi80.0']\n", - "2023-05-15 11:07:32,290 | DEBUG | byteflow.py:278 | dispatch pc=100, inst=LOAD_FAST(arg=7, lineno=519)\n", - "2023-05-15 11:07:32,291 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$const98.8']\n", - "2023-05-15 11:07:32,291 | DEBUG | byteflow.py:278 | dispatch pc=102, inst=LOAD_FAST(arg=9, lineno=519)\n", - "2023-05-15 11:07:32,291 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$const98.8', '$delta100.9']\n", - "2023-05-15 11:07:32,292 | DEBUG | byteflow.py:278 | dispatch pc=104, inst=BINARY_SUBSCR(arg=None, lineno=519)\n", - "2023-05-15 11:07:32,292 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$const98.8', '$delta100.9', '$w_idx102.10']\n", - "2023-05-15 11:07:32,293 | DEBUG | byteflow.py:278 | dispatch pc=106, inst=BINARY_ADD(arg=None, lineno=519)\n", - "2023-05-15 11:07:32,294 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$const98.8', '$104binary_subscr.11']\n", - "2023-05-15 11:07:32,295 | DEBUG | byteflow.py:278 | dispatch pc=108, inst=STORE_FAST(arg=12, lineno=519)\n", - "2023-05-15 11:07:32,296 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$106binary_add.12']\n", - "2023-05-15 11:07:32,296 | DEBUG | byteflow.py:278 | dispatch pc=110, inst=LOAD_CONST(arg=5, lineno=520)\n", - "2023-05-15 11:07:32,297 | DEBUG | byteflow.py:279 | stack ['$phi80.0']\n", - "2023-05-15 11:07:32,297 | DEBUG | byteflow.py:278 | dispatch pc=112, inst=LOAD_FAST(arg=11, lineno=520)\n", - "2023-05-15 11:07:32,298 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$const110.13']\n", - "2023-05-15 11:07:32,298 | DEBUG | byteflow.py:278 | dispatch pc=114, inst=BINARY_TRUE_DIVIDE(arg=None, lineno=520)\n", - "2023-05-15 11:07:32,300 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$const110.13', '$dist_w112.14']\n", - "2023-05-15 11:07:32,300 | DEBUG | byteflow.py:278 | dispatch pc=116, inst=LOAD_FAST(arg=7, lineno=520)\n", - "2023-05-15 11:07:32,301 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$114binary_true_divide.15']\n", - "2023-05-15 11:07:32,301 | DEBUG | byteflow.py:278 | dispatch pc=118, inst=LOAD_FAST(arg=9, lineno=520)\n", - "2023-05-15 11:07:32,302 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$114binary_true_divide.15', '$delta116.16']\n", - "2023-05-15 11:07:32,302 | DEBUG | byteflow.py:278 | dispatch pc=120, inst=BINARY_SUBSCR(arg=None, lineno=520)\n", - "2023-05-15 11:07:32,303 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$114binary_true_divide.15', '$delta116.16', '$w_idx118.17']\n", - "2023-05-15 11:07:32,303 | DEBUG | byteflow.py:278 | dispatch pc=122, inst=BINARY_ADD(arg=None, lineno=520)\n", - "2023-05-15 11:07:32,304 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$114binary_true_divide.15', '$120binary_subscr.18']\n", - "2023-05-15 11:07:32,304 | DEBUG | byteflow.py:278 | dispatch pc=124, inst=STORE_FAST(arg=13, lineno=520)\n", - "2023-05-15 11:07:32,305 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$122binary_add.19']\n", - "2023-05-15 11:07:32,305 | DEBUG | byteflow.py:278 | dispatch pc=126, inst=LOAD_GLOBAL(arg=0, lineno=523)\n", - "2023-05-15 11:07:32,306 | DEBUG | byteflow.py:279 | stack ['$phi80.0']\n", - "2023-05-15 11:07:32,306 | DEBUG | byteflow.py:278 | dispatch pc=128, inst=LOAD_METHOD(arg=6, lineno=523)\n", - "2023-05-15 11:07:32,308 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$126load_global.20']\n", - "2023-05-15 11:07:32,308 | DEBUG | byteflow.py:278 | dispatch pc=130, inst=LOAD_FAST(arg=3, lineno=523)\n", - "2023-05-15 11:07:32,309 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$128load_method.21']\n", - "2023-05-15 11:07:32,309 | DEBUG | byteflow.py:278 | dispatch pc=132, inst=LOAD_GLOBAL(arg=7, lineno=523)\n", - "2023-05-15 11:07:32,309 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$128load_method.21', '$edges_uv130.22']\n", - "2023-05-15 11:07:32,310 | DEBUG | byteflow.py:278 | dispatch pc=134, inst=LOAD_FAST(arg=10, lineno=523)\n", - "2023-05-15 11:07:32,310 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$128load_method.21', '$edges_uv130.22', '$132load_global.23']\n", - "2023-05-15 11:07:32,311 | DEBUG | byteflow.py:278 | dispatch pc=136, inst=LOAD_FAST(arg=9, lineno=523)\n", - "2023-05-15 11:07:32,313 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$128load_method.21', '$edges_uv130.22', '$132load_global.23', '$pre_w134.24']\n", - "2023-05-15 11:07:32,313 | DEBUG | byteflow.py:278 | dispatch pc=138, inst=LOAD_FAST(arg=4, lineno=523)\n", - "2023-05-15 11:07:32,314 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$128load_method.21', '$edges_uv130.22', '$132load_global.23', '$pre_w134.24', '$w_idx136.25']\n", - "2023-05-15 11:07:32,315 | DEBUG | byteflow.py:278 | dispatch pc=140, inst=CALL_FUNCTION(arg=3, lineno=523)\n", - "2023-05-15 11:07:32,315 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$128load_method.21', '$edges_uv130.22', '$132load_global.23', '$pre_w134.24', '$w_idx136.25', '$edge_padding138.26']\n", - "2023-05-15 11:07:32,316 | DEBUG | byteflow.py:278 | dispatch pc=142, inst=CALL_METHOD(arg=2, lineno=523)\n", - "2023-05-15 11:07:32,317 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$128load_method.21', '$edges_uv130.22', '$140call_function.27']\n", - "2023-05-15 11:07:32,317 | DEBUG | byteflow.py:278 | dispatch pc=144, inst=STORE_FAST(arg=14, lineno=523)\n", - "2023-05-15 11:07:32,318 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$142call_method.28']\n", - "2023-05-15 11:07:32,318 | DEBUG | byteflow.py:278 | dispatch pc=146, inst=LOAD_FAST(arg=5, lineno=526)\n", - "2023-05-15 11:07:32,319 | DEBUG | byteflow.py:279 | stack ['$phi80.0']\n", - "2023-05-15 11:07:32,319 | DEBUG | byteflow.py:278 | dispatch pc=148, inst=LOAD_GLOBAL(arg=2, lineno=526)\n", - "2023-05-15 11:07:32,320 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses146.29']\n", - "2023-05-15 11:07:32,320 | DEBUG | byteflow.py:278 | dispatch pc=150, inst=LOAD_FAST(arg=1, lineno=526)\n", - "2023-05-15 11:07:32,320 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses146.29', '$148load_global.30']\n", - "2023-05-15 11:07:32,321 | DEBUG | byteflow.py:278 | dispatch pc=152, inst=CALL_FUNCTION(arg=1, lineno=526)\n", - "2023-05-15 11:07:32,321 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses146.29', '$148load_global.30', '$pred_row150.31']\n", - "2023-05-15 11:07:32,322 | DEBUG | byteflow.py:278 | dispatch pc=154, inst=LOAD_FAST(arg=14, lineno=526)\n", - "2023-05-15 11:07:32,322 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses146.29', '$152call_function.32']\n", - "2023-05-15 11:07:32,323 | DEBUG | byteflow.py:278 | dispatch pc=156, inst=BINARY_ADD(arg=None, lineno=526)\n", - "2023-05-15 11:07:32,323 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses146.29', '$152call_function.32', '$edge_idx154.33']\n", - "2023-05-15 11:07:32,323 | DEBUG | byteflow.py:278 | dispatch pc=158, inst=LOAD_CONST(arg=6, lineno=526)\n", - "2023-05-15 11:07:32,324 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses146.29', '$156binary_add.34']\n", - "2023-05-15 11:07:32,325 | DEBUG | byteflow.py:278 | dispatch pc=160, inst=BUILD_TUPLE(arg=2, lineno=526)\n", - "2023-05-15 11:07:32,325 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses146.29', '$156binary_add.34', '$const158.35']\n", - "2023-05-15 11:07:32,327 | DEBUG | byteflow.py:278 | dispatch pc=162, inst=DUP_TOP_TWO(arg=None, lineno=526)\n", - "2023-05-15 11:07:32,327 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses146.29', '$160build_tuple.36']\n", - "2023-05-15 11:07:32,328 | DEBUG | byteflow.py:278 | dispatch pc=164, inst=BINARY_SUBSCR(arg=None, lineno=526)\n", - "2023-05-15 11:07:32,328 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses146.29', '$160build_tuple.36', '$162dup_top_two.37', '$162dup_top_two.38']\n", - "2023-05-15 11:07:32,328 | DEBUG | byteflow.py:278 | dispatch pc=166, inst=LOAD_FAST(arg=12, lineno=526)\n", - "2023-05-15 11:07:32,329 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses146.29', '$160build_tuple.36', '$164binary_subscr.39']\n", - "2023-05-15 11:07:32,329 | DEBUG | byteflow.py:278 | dispatch pc=168, inst=INPLACE_ADD(arg=None, lineno=526)\n", - "2023-05-15 11:07:32,330 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses146.29', '$160build_tuple.36', '$164binary_subscr.39', '$coeff166.40']\n", - "2023-05-15 11:07:32,330 | DEBUG | byteflow.py:278 | dispatch pc=170, inst=ROT_THREE(arg=None, lineno=526)\n", - "2023-05-15 11:07:32,331 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses146.29', '$160build_tuple.36', '$168inplace_add.41']\n", - "2023-05-15 11:07:32,331 | DEBUG | byteflow.py:278 | dispatch pc=172, inst=STORE_SUBSCR(arg=None, lineno=526)\n", - "2023-05-15 11:07:32,333 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$168inplace_add.41', '$betweennesses146.29', '$160build_tuple.36']\n", - "2023-05-15 11:07:32,333 | DEBUG | byteflow.py:278 | dispatch pc=174, inst=LOAD_FAST(arg=5, lineno=528)\n", - "2023-05-15 11:07:32,334 | DEBUG | byteflow.py:279 | stack ['$phi80.0']\n", - "2023-05-15 11:07:32,335 | DEBUG | byteflow.py:278 | dispatch pc=176, inst=LOAD_GLOBAL(arg=2, lineno=528)\n", - "2023-05-15 11:07:32,335 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses174.42']\n", - "2023-05-15 11:07:32,336 | DEBUG | byteflow.py:278 | dispatch pc=178, inst=LOAD_FAST(arg=1, lineno=528)\n", - "2023-05-15 11:07:32,336 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses174.42', '$176load_global.43']\n", - "2023-05-15 11:07:32,337 | DEBUG | byteflow.py:278 | dispatch pc=180, inst=CALL_FUNCTION(arg=1, lineno=528)\n", - "2023-05-15 11:07:32,338 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses174.42', '$176load_global.43', '$pred_row178.44']\n", - "2023-05-15 11:07:32,338 | DEBUG | byteflow.py:278 | dispatch pc=182, inst=LOAD_FAST(arg=14, lineno=528)\n", - "2023-05-15 11:07:32,338 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses174.42', '$180call_function.45']\n", - "2023-05-15 11:07:32,339 | DEBUG | byteflow.py:278 | dispatch pc=184, inst=BINARY_ADD(arg=None, lineno=528)\n", - "2023-05-15 11:07:32,339 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses174.42', '$180call_function.45', '$edge_idx182.46']\n", - "2023-05-15 11:07:32,340 | DEBUG | byteflow.py:278 | dispatch pc=186, inst=LOAD_CONST(arg=5, lineno=528)\n", - "2023-05-15 11:07:32,340 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses174.42', '$184binary_add.47']\n", - "2023-05-15 11:07:32,341 | DEBUG | byteflow.py:278 | dispatch pc=188, inst=BUILD_TUPLE(arg=2, lineno=528)\n", - "2023-05-15 11:07:32,341 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses174.42', '$184binary_add.47', '$const186.48']\n", - "2023-05-15 11:07:32,342 | DEBUG | byteflow.py:278 | dispatch pc=190, inst=DUP_TOP_TWO(arg=None, lineno=528)\n", - "2023-05-15 11:07:32,342 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses174.42', '$188build_tuple.49']\n", - "2023-05-15 11:07:32,343 | DEBUG | byteflow.py:278 | dispatch pc=192, inst=BINARY_SUBSCR(arg=None, lineno=528)\n", - "2023-05-15 11:07:32,343 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses174.42', '$188build_tuple.49', '$190dup_top_two.50', '$190dup_top_two.51']\n", - "2023-05-15 11:07:32,344 | DEBUG | byteflow.py:278 | dispatch pc=194, inst=LOAD_FAST(arg=13, lineno=528)\n", - "2023-05-15 11:07:32,344 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses174.42', '$188build_tuple.49', '$192binary_subscr.52']\n", - "2023-05-15 11:07:32,345 | DEBUG | byteflow.py:278 | dispatch pc=196, inst=INPLACE_ADD(arg=None, lineno=528)\n", - "2023-05-15 11:07:32,346 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses174.42', '$188build_tuple.49', '$192binary_subscr.52', '$coeff_len194.53']\n", - "2023-05-15 11:07:32,347 | DEBUG | byteflow.py:278 | dispatch pc=198, inst=ROT_THREE(arg=None, lineno=528)\n", - "2023-05-15 11:07:32,347 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses174.42', '$188build_tuple.49', '$196inplace_add.54']\n", - "2023-05-15 11:07:32,348 | DEBUG | byteflow.py:278 | dispatch pc=200, inst=STORE_SUBSCR(arg=None, lineno=528)\n", - "2023-05-15 11:07:32,348 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$196inplace_add.54', '$betweennesses174.42', '$188build_tuple.49']\n", - "2023-05-15 11:07:32,349 | DEBUG | byteflow.py:278 | dispatch pc=202, inst=LOAD_FAST(arg=5, lineno=530)\n", - "2023-05-15 11:07:32,350 | DEBUG | byteflow.py:279 | stack ['$phi80.0']\n", - "2023-05-15 11:07:32,350 | DEBUG | byteflow.py:278 | dispatch pc=204, inst=LOAD_GLOBAL(arg=2, lineno=530)\n", - "2023-05-15 11:07:32,351 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55']\n", - "2023-05-15 11:07:32,351 | DEBUG | byteflow.py:278 | dispatch pc=206, inst=LOAD_FAST(arg=1, lineno=530)\n", - "2023-05-15 11:07:32,351 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55', '$204load_global.56']\n", - "2023-05-15 11:07:32,352 | DEBUG | byteflow.py:278 | dispatch pc=208, inst=CALL_FUNCTION(arg=1, lineno=530)\n", - "2023-05-15 11:07:32,353 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55', '$204load_global.56', '$pred_row206.57']\n", - "2023-05-15 11:07:32,353 | DEBUG | byteflow.py:278 | dispatch pc=210, inst=LOAD_FAST(arg=14, lineno=530)\n", - "2023-05-15 11:07:32,354 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55', '$208call_function.58']\n", - "2023-05-15 11:07:32,354 | DEBUG | byteflow.py:278 | dispatch pc=212, inst=BINARY_ADD(arg=None, lineno=530)\n", - "2023-05-15 11:07:32,355 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55', '$208call_function.58', '$edge_idx210.59']\n", - "2023-05-15 11:07:32,355 | DEBUG | byteflow.py:278 | dispatch pc=214, inst=LOAD_CONST(arg=7, lineno=530)\n", - "2023-05-15 11:07:32,356 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55', '$212binary_add.60']\n", - "2023-05-15 11:07:32,356 | DEBUG | byteflow.py:278 | dispatch pc=216, inst=BUILD_TUPLE(arg=2, lineno=530)\n", - "2023-05-15 11:07:32,357 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55', '$212binary_add.60', '$const214.61']\n", - "2023-05-15 11:07:32,357 | DEBUG | byteflow.py:278 | dispatch pc=218, inst=DUP_TOP_TWO(arg=None, lineno=530)\n", - "2023-05-15 11:07:32,358 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55', '$216build_tuple.62']\n", - "2023-05-15 11:07:32,358 | DEBUG | byteflow.py:278 | dispatch pc=220, inst=BINARY_SUBSCR(arg=None, lineno=530)\n", - "2023-05-15 11:07:32,359 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55', '$216build_tuple.62', '$218dup_top_two.63', '$218dup_top_two.64']\n", - "2023-05-15 11:07:32,360 | DEBUG | byteflow.py:278 | dispatch pc=222, inst=LOAD_FAST(arg=11, lineno=530)\n", - "2023-05-15 11:07:32,360 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55', '$216build_tuple.62', '$220binary_subscr.65']\n", - "2023-05-15 11:07:32,361 | DEBUG | byteflow.py:278 | dispatch pc=224, inst=LOAD_FAST(arg=13, lineno=530)\n", - "2023-05-15 11:07:32,361 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55', '$216build_tuple.62', '$220binary_subscr.65', '$dist_w222.66']\n", - "2023-05-15 11:07:32,362 | DEBUG | byteflow.py:278 | dispatch pc=226, inst=BINARY_MULTIPLY(arg=None, lineno=530)\n", - "2023-05-15 11:07:32,362 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55', '$216build_tuple.62', '$220binary_subscr.65', '$dist_w222.66', '$coeff_len224.67']\n", - "2023-05-15 11:07:32,363 | DEBUG | byteflow.py:278 | dispatch pc=228, inst=INPLACE_ADD(arg=None, lineno=530)\n", - "2023-05-15 11:07:32,363 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55', '$216build_tuple.62', '$220binary_subscr.65', '$226binary_multiply.68']\n", - "2023-05-15 11:07:32,366 | DEBUG | byteflow.py:278 | dispatch pc=230, inst=ROT_THREE(arg=None, lineno=530)\n", - "2023-05-15 11:07:32,367 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$betweennesses202.55', '$216build_tuple.62', '$228inplace_add.69']\n", - "2023-05-15 11:07:32,368 | DEBUG | byteflow.py:278 | dispatch pc=232, inst=STORE_SUBSCR(arg=None, lineno=530)\n", - "2023-05-15 11:07:32,368 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$228inplace_add.69', '$betweennesses202.55', '$216build_tuple.62']\n", - "2023-05-15 11:07:32,368 | DEBUG | byteflow.py:278 | dispatch pc=234, inst=LOAD_FAST(arg=7, lineno=532)\n", - "2023-05-15 11:07:32,369 | DEBUG | byteflow.py:279 | stack ['$phi80.0']\n", - "2023-05-15 11:07:32,369 | DEBUG | byteflow.py:278 | dispatch pc=236, inst=LOAD_FAST(arg=10, lineno=532)\n", - "2023-05-15 11:07:32,370 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$delta234.70']\n", - "2023-05-15 11:07:32,370 | DEBUG | byteflow.py:278 | dispatch pc=238, inst=DUP_TOP_TWO(arg=None, lineno=532)\n", - "2023-05-15 11:07:32,371 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$delta234.70', '$pre_w236.71']\n", - "2023-05-15 11:07:32,372 | DEBUG | byteflow.py:278 | dispatch pc=240, inst=BINARY_SUBSCR(arg=None, lineno=532)\n", - "2023-05-15 11:07:32,372 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$delta234.70', '$pre_w236.71', '$238dup_top_two.72', '$238dup_top_two.73']\n", - "2023-05-15 11:07:32,373 | DEBUG | byteflow.py:278 | dispatch pc=242, inst=LOAD_FAST(arg=12, lineno=532)\n", - "2023-05-15 11:07:32,373 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$delta234.70', '$pre_w236.71', '$240binary_subscr.74']\n", - "2023-05-15 11:07:32,374 | DEBUG | byteflow.py:278 | dispatch pc=244, inst=INPLACE_ADD(arg=None, lineno=532)\n", - "2023-05-15 11:07:32,374 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$delta234.70', '$pre_w236.71', '$240binary_subscr.74', '$coeff242.75']\n", - "2023-05-15 11:07:32,375 | DEBUG | byteflow.py:278 | dispatch pc=246, inst=ROT_THREE(arg=None, lineno=532)\n", - "2023-05-15 11:07:32,375 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$delta234.70', '$pre_w236.71', '$244inplace_add.76']\n", - "2023-05-15 11:07:32,376 | DEBUG | byteflow.py:278 | dispatch pc=248, inst=STORE_SUBSCR(arg=None, lineno=532)\n", - "2023-05-15 11:07:32,376 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$244inplace_add.76', '$delta234.70', '$pre_w236.71']\n", - "2023-05-15 11:07:32,377 | DEBUG | byteflow.py:278 | dispatch pc=250, inst=LOAD_FAST(arg=8, lineno=533)\n", - "2023-05-15 11:07:32,377 | DEBUG | byteflow.py:279 | stack ['$phi80.0']\n", - "2023-05-15 11:07:32,378 | DEBUG | byteflow.py:278 | dispatch pc=252, inst=LOAD_FAST(arg=10, lineno=533)\n", - "2023-05-15 11:07:32,379 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$delta_len250.77']\n", - "2023-05-15 11:07:32,379 | DEBUG | byteflow.py:278 | dispatch pc=254, inst=DUP_TOP_TWO(arg=None, lineno=533)\n", - "2023-05-15 11:07:32,379 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$delta_len250.77', '$pre_w252.78']\n", - "2023-05-15 11:07:32,380 | DEBUG | byteflow.py:278 | dispatch pc=256, inst=BINARY_SUBSCR(arg=None, lineno=533)\n", - "2023-05-15 11:07:32,381 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$delta_len250.77', '$pre_w252.78', '$254dup_top_two.79', '$254dup_top_two.80']\n", - "2023-05-15 11:07:32,381 | DEBUG | byteflow.py:278 | dispatch pc=258, inst=LOAD_FAST(arg=13, lineno=533)\n", - "2023-05-15 11:07:32,381 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$delta_len250.77', '$pre_w252.78', '$256binary_subscr.81']\n", - "2023-05-15 11:07:32,382 | DEBUG | byteflow.py:278 | dispatch pc=260, inst=INPLACE_ADD(arg=None, lineno=533)\n", - "2023-05-15 11:07:32,382 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$delta_len250.77', '$pre_w252.78', '$256binary_subscr.81', '$coeff_len258.82']\n", - "2023-05-15 11:07:32,383 | DEBUG | byteflow.py:278 | dispatch pc=262, inst=ROT_THREE(arg=None, lineno=533)\n", - "2023-05-15 11:07:32,383 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$delta_len250.77', '$pre_w252.78', '$260inplace_add.83']\n", - "2023-05-15 11:07:32,384 | DEBUG | byteflow.py:278 | dispatch pc=264, inst=STORE_SUBSCR(arg=None, lineno=533)\n", - "2023-05-15 11:07:32,384 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$260inplace_add.83', '$delta_len250.77', '$pre_w252.78']\n", - "2023-05-15 11:07:32,385 | DEBUG | byteflow.py:278 | dispatch pc=266, inst=LOAD_FAST(arg=9, lineno=535)\n", - "2023-05-15 11:07:32,385 | DEBUG | byteflow.py:279 | stack ['$phi80.0']\n", - "2023-05-15 11:07:32,385 | DEBUG | byteflow.py:278 | dispatch pc=268, inst=LOAD_FAST(arg=0, lineno=535)\n", - "2023-05-15 11:07:32,386 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$w_idx266.84']\n", - "2023-05-15 11:07:32,386 | DEBUG | byteflow.py:278 | dispatch pc=270, inst=COMPARE_OP(arg=3, lineno=535)\n", - "2023-05-15 11:07:32,387 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$w_idx266.84', '$s_idx268.85']\n", - "2023-05-15 11:07:32,387 | DEBUG | byteflow.py:278 | dispatch pc=272, inst=POP_JUMP_IF_FALSE(arg=176, lineno=535)\n", - "2023-05-15 11:07:32,388 | DEBUG | byteflow.py:279 | stack ['$phi80.0', '$270compare_op.86']\n", - "2023-05-15 11:07:32,388 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=274, stack=('$phi80.0',), blockstack=(), npush=0), Edge(pc=350, stack=('$phi80.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:32,388 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=274 nstack_initial=1), State(pc_initial=350 nstack_initial=1)])\n", - "2023-05-15 11:07:32,389 | DEBUG | byteflow.py:103 | stack: ['$phi274.0']\n", - "2023-05-15 11:07:32,389 | DEBUG | byteflow.py:278 | dispatch pc=274, inst=LOAD_FAST(arg=5, lineno=536)\n", - "2023-05-15 11:07:32,390 | DEBUG | byteflow.py:279 | stack ['$phi274.0']\n", - "2023-05-15 11:07:32,393 | DEBUG | byteflow.py:278 | dispatch pc=276, inst=LOAD_FAST(arg=9, lineno=536)\n", - "2023-05-15 11:07:32,393 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses274.1']\n", - "2023-05-15 11:07:32,393 | DEBUG | byteflow.py:278 | dispatch pc=278, inst=LOAD_CONST(arg=6, lineno=536)\n", - "2023-05-15 11:07:32,394 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses274.1', '$w_idx276.2']\n", - "2023-05-15 11:07:32,394 | DEBUG | byteflow.py:278 | dispatch pc=280, inst=BUILD_TUPLE(arg=2, lineno=536)\n", - "2023-05-15 11:07:32,395 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses274.1', '$w_idx276.2', '$const278.3']\n", - "2023-05-15 11:07:32,395 | DEBUG | byteflow.py:278 | dispatch pc=282, inst=DUP_TOP_TWO(arg=None, lineno=536)\n", - "2023-05-15 11:07:32,395 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses274.1', '$280build_tuple.4']\n", - "2023-05-15 11:07:32,396 | DEBUG | byteflow.py:278 | dispatch pc=284, inst=BINARY_SUBSCR(arg=None, lineno=536)\n", - "2023-05-15 11:07:32,396 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses274.1', '$280build_tuple.4', '$282dup_top_two.5', '$282dup_top_two.6']\n", - "2023-05-15 11:07:32,397 | DEBUG | byteflow.py:278 | dispatch pc=286, inst=LOAD_FAST(arg=7, lineno=536)\n", - "2023-05-15 11:07:32,397 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses274.1', '$280build_tuple.4', '$284binary_subscr.7']\n", - "2023-05-15 11:07:32,398 | DEBUG | byteflow.py:278 | dispatch pc=288, inst=LOAD_FAST(arg=9, lineno=536)\n", - "2023-05-15 11:07:32,398 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses274.1', '$280build_tuple.4', '$284binary_subscr.7', '$delta286.8']\n", - "2023-05-15 11:07:32,399 | DEBUG | byteflow.py:278 | dispatch pc=290, inst=BINARY_SUBSCR(arg=None, lineno=536)\n", - "2023-05-15 11:07:32,399 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses274.1', '$280build_tuple.4', '$284binary_subscr.7', '$delta286.8', '$w_idx288.9']\n", - "2023-05-15 11:07:32,399 | DEBUG | byteflow.py:278 | dispatch pc=292, inst=INPLACE_ADD(arg=None, lineno=536)\n", - "2023-05-15 11:07:32,400 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses274.1', '$280build_tuple.4', '$284binary_subscr.7', '$290binary_subscr.10']\n", - "2023-05-15 11:07:32,400 | DEBUG | byteflow.py:278 | dispatch pc=294, inst=ROT_THREE(arg=None, lineno=536)\n", - "2023-05-15 11:07:32,401 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses274.1', '$280build_tuple.4', '$292inplace_add.11']\n", - "2023-05-15 11:07:32,401 | DEBUG | byteflow.py:278 | dispatch pc=296, inst=STORE_SUBSCR(arg=None, lineno=536)\n", - "2023-05-15 11:07:32,402 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$292inplace_add.11', '$betweennesses274.1', '$280build_tuple.4']\n", - "2023-05-15 11:07:32,405 | DEBUG | byteflow.py:278 | dispatch pc=298, inst=LOAD_FAST(arg=5, lineno=537)\n", - "2023-05-15 11:07:32,406 | DEBUG | byteflow.py:279 | stack ['$phi274.0']\n", - "2023-05-15 11:07:32,406 | DEBUG | byteflow.py:278 | dispatch pc=300, inst=LOAD_FAST(arg=9, lineno=537)\n", - "2023-05-15 11:07:32,407 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses298.12']\n", - "2023-05-15 11:07:32,407 | DEBUG | byteflow.py:278 | dispatch pc=302, inst=LOAD_CONST(arg=5, lineno=537)\n", - "2023-05-15 11:07:32,407 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses298.12', '$w_idx300.13']\n", - "2023-05-15 11:07:32,408 | DEBUG | byteflow.py:278 | dispatch pc=304, inst=BUILD_TUPLE(arg=2, lineno=537)\n", - "2023-05-15 11:07:32,408 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses298.12', '$w_idx300.13', '$const302.14']\n", - "2023-05-15 11:07:32,409 | DEBUG | byteflow.py:278 | dispatch pc=306, inst=DUP_TOP_TWO(arg=None, lineno=537)\n", - "2023-05-15 11:07:32,409 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses298.12', '$304build_tuple.15']\n", - "2023-05-15 11:07:32,410 | DEBUG | byteflow.py:278 | dispatch pc=308, inst=BINARY_SUBSCR(arg=None, lineno=537)\n", - "2023-05-15 11:07:32,410 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses298.12', '$304build_tuple.15', '$306dup_top_two.16', '$306dup_top_two.17']\n", - "2023-05-15 11:07:32,410 | DEBUG | byteflow.py:278 | dispatch pc=310, inst=LOAD_FAST(arg=8, lineno=537)\n", - "2023-05-15 11:07:32,411 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses298.12', '$304build_tuple.15', '$308binary_subscr.18']\n", - "2023-05-15 11:07:32,411 | DEBUG | byteflow.py:278 | dispatch pc=312, inst=LOAD_FAST(arg=9, lineno=537)\n", - "2023-05-15 11:07:32,412 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses298.12', '$304build_tuple.15', '$308binary_subscr.18', '$delta_len310.19']\n", - "2023-05-15 11:07:32,412 | DEBUG | byteflow.py:278 | dispatch pc=314, inst=BINARY_SUBSCR(arg=None, lineno=537)\n", - "2023-05-15 11:07:32,413 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses298.12', '$304build_tuple.15', '$308binary_subscr.18', '$delta_len310.19', '$w_idx312.20']\n", - "2023-05-15 11:07:32,413 | DEBUG | byteflow.py:278 | dispatch pc=316, inst=INPLACE_ADD(arg=None, lineno=537)\n", - "2023-05-15 11:07:32,414 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses298.12', '$304build_tuple.15', '$308binary_subscr.18', '$314binary_subscr.21']\n", - "2023-05-15 11:07:32,414 | DEBUG | byteflow.py:278 | dispatch pc=318, inst=ROT_THREE(arg=None, lineno=537)\n", - "2023-05-15 11:07:32,415 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses298.12', '$304build_tuple.15', '$316inplace_add.22']\n", - "2023-05-15 11:07:32,415 | DEBUG | byteflow.py:278 | dispatch pc=320, inst=STORE_SUBSCR(arg=None, lineno=537)\n", - "2023-05-15 11:07:32,415 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$316inplace_add.22', '$betweennesses298.12', '$304build_tuple.15']\n", - "2023-05-15 11:07:32,416 | DEBUG | byteflow.py:278 | dispatch pc=322, inst=LOAD_FAST(arg=5, lineno=538)\n", - "2023-05-15 11:07:32,416 | DEBUG | byteflow.py:279 | stack ['$phi274.0']\n", - "2023-05-15 11:07:32,417 | DEBUG | byteflow.py:278 | dispatch pc=324, inst=LOAD_FAST(arg=9, lineno=538)\n", - "2023-05-15 11:07:32,420 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses322.23']\n", - "2023-05-15 11:07:32,420 | DEBUG | byteflow.py:278 | dispatch pc=326, inst=LOAD_CONST(arg=7, lineno=538)\n", - "2023-05-15 11:07:32,421 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses322.23', '$w_idx324.24']\n", - "2023-05-15 11:07:32,421 | DEBUG | byteflow.py:278 | dispatch pc=328, inst=BUILD_TUPLE(arg=2, lineno=538)\n", - "2023-05-15 11:07:32,421 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses322.23', '$w_idx324.24', '$const326.25']\n", - "2023-05-15 11:07:32,422 | DEBUG | byteflow.py:278 | dispatch pc=330, inst=DUP_TOP_TWO(arg=None, lineno=538)\n", - "2023-05-15 11:07:32,422 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses322.23', '$328build_tuple.26']\n", - "2023-05-15 11:07:32,423 | DEBUG | byteflow.py:278 | dispatch pc=332, inst=BINARY_SUBSCR(arg=None, lineno=538)\n", - "2023-05-15 11:07:32,423 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses322.23', '$328build_tuple.26', '$330dup_top_two.27', '$330dup_top_two.28']\n", - "2023-05-15 11:07:32,424 | DEBUG | byteflow.py:278 | dispatch pc=334, inst=LOAD_FAST(arg=11, lineno=538)\n", - "2023-05-15 11:07:32,424 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses322.23', '$328build_tuple.26', '$332binary_subscr.29']\n", - "2023-05-15 11:07:32,425 | DEBUG | byteflow.py:278 | dispatch pc=336, inst=LOAD_FAST(arg=8, lineno=538)\n", - "2023-05-15 11:07:32,425 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses322.23', '$328build_tuple.26', '$332binary_subscr.29', '$dist_w334.30']\n", - "2023-05-15 11:07:32,425 | DEBUG | byteflow.py:278 | dispatch pc=338, inst=LOAD_FAST(arg=9, lineno=538)\n", - "2023-05-15 11:07:32,426 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses322.23', '$328build_tuple.26', '$332binary_subscr.29', '$dist_w334.30', '$delta_len336.31']\n", - "2023-05-15 11:07:32,426 | DEBUG | byteflow.py:278 | dispatch pc=340, inst=BINARY_SUBSCR(arg=None, lineno=538)\n", - "2023-05-15 11:07:32,427 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses322.23', '$328build_tuple.26', '$332binary_subscr.29', '$dist_w334.30', '$delta_len336.31', '$w_idx338.32']\n", - "2023-05-15 11:07:32,427 | DEBUG | byteflow.py:278 | dispatch pc=342, inst=BINARY_MULTIPLY(arg=None, lineno=538)\n", - "2023-05-15 11:07:32,428 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses322.23', '$328build_tuple.26', '$332binary_subscr.29', '$dist_w334.30', '$340binary_subscr.33']\n", - "2023-05-15 11:07:32,429 | DEBUG | byteflow.py:278 | dispatch pc=344, inst=INPLACE_ADD(arg=None, lineno=538)\n", - "2023-05-15 11:07:32,429 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses322.23', '$328build_tuple.26', '$332binary_subscr.29', '$342binary_multiply.34']\n", - "2023-05-15 11:07:32,430 | DEBUG | byteflow.py:278 | dispatch pc=346, inst=ROT_THREE(arg=None, lineno=538)\n", - "2023-05-15 11:07:32,430 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$betweennesses322.23', '$328build_tuple.26', '$344inplace_add.35']\n", - "2023-05-15 11:07:32,430 | DEBUG | byteflow.py:278 | dispatch pc=348, inst=STORE_SUBSCR(arg=None, lineno=538)\n", - "2023-05-15 11:07:32,431 | DEBUG | byteflow.py:279 | stack ['$phi274.0', '$344inplace_add.35', '$betweennesses322.23', '$328build_tuple.26']\n", - "2023-05-15 11:07:32,431 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=350, stack=('$phi274.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:32,432 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=350 nstack_initial=1), State(pc_initial=350 nstack_initial=1)])\n", - "2023-05-15 11:07:32,432 | DEBUG | byteflow.py:103 | stack: ['$phi350.0']\n", - "2023-05-15 11:07:32,433 | DEBUG | byteflow.py:278 | dispatch pc=350, inst=JUMP_ABSOLUTE(arg=40, lineno=538)\n", - "2023-05-15 11:07:32,433 | DEBUG | byteflow.py:279 | stack ['$phi350.0']\n", - "2023-05-15 11:07:32,433 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=78, stack=('$phi350.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:32,434 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=350 nstack_initial=1), State(pc_initial=78 nstack_initial=1)])\n", - "2023-05-15 11:07:32,434 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=78 nstack_initial=1)])\n", - "2023-05-15 11:07:32,435 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:32,435 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=78 nstack_initial=1): {'$phi78.0'},\n", - " State(pc_initial=80 nstack_initial=2): {'$phi80.1'},\n", - " State(pc_initial=274 nstack_initial=1): set(),\n", - " State(pc_initial=350 nstack_initial=1): set(),\n", - " State(pc_initial=352 nstack_initial=0): set()})\n", - "2023-05-15 11:07:32,436 | DEBUG | byteflow.py:192 | defmap: {'$phi78.0': State(pc_initial=0 nstack_initial=0),\n", - " '$phi80.1': State(pc_initial=78 nstack_initial=1)}\n", - "2023-05-15 11:07:32,436 | DEBUG | byteflow.py:193 | phismap: defaultdict(,\n", - " {'$phi274.0': {('$phi80.0', State(pc_initial=80 nstack_initial=2))},\n", - " '$phi350.0': {('$phi274.0',\n", - " State(pc_initial=274 nstack_initial=1)),\n", - " ('$phi80.0', State(pc_initial=80 nstack_initial=2))},\n", - " '$phi78.0': {('$76get_iter.34',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi350.0',\n", - " State(pc_initial=350 nstack_initial=1))},\n", - " '$phi80.0': {('$phi78.0', State(pc_initial=78 nstack_initial=1))},\n", - " '$phi80.1': {('$78for_iter.2',\n", - " State(pc_initial=78 nstack_initial=1))}})\n", - "2023-05-15 11:07:32,437 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi274.0': {('$phi78.0', State(pc_initial=78 nstack_initial=1))},\n", - " '$phi350.0': {('$phi78.0', State(pc_initial=78 nstack_initial=1))},\n", - " '$phi78.0': {('$76get_iter.34',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi78.0', State(pc_initial=78 nstack_initial=1))},\n", - " '$phi80.0': {('$76get_iter.34',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi80.1': {('$78for_iter.2',\n", - " State(pc_initial=78 nstack_initial=1))}})\n", - "2023-05-15 11:07:32,438 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi274.0': {('$76get_iter.34',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi350.0': {('$76get_iter.34',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi78.0': {('$76get_iter.34',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi80.0': {('$76get_iter.34',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi80.1': {('$78for_iter.2',\n", - " State(pc_initial=78 nstack_initial=1))}})\n", - "2023-05-15 11:07:32,438 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi274.0': {('$76get_iter.34',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi350.0': {('$76get_iter.34',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi78.0': {('$76get_iter.34',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi80.0': {('$76get_iter.34',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi80.1': {('$78for_iter.2',\n", - " State(pc_initial=78 nstack_initial=1))}})\n", - "2023-05-15 11:07:32,439 | DEBUG | byteflow.py:223 | keep phismap: {'$phi78.0': {('$76get_iter.34', State(pc_initial=0 nstack_initial=0))},\n", - " '$phi80.1': {('$78for_iter.2', State(pc_initial=78 nstack_initial=1))}}\n", - "2023-05-15 11:07:32,440 | DEBUG | byteflow.py:229 | new_out: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): {'$phi78.0': '$76get_iter.34'},\n", - " State(pc_initial=78 nstack_initial=1): {'$phi80.1': '$78for_iter.2'}})\n", - "2023-05-15 11:07:32,440 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:32,441 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'item': '$2load_global.0', 'res': '$4load_attr.1'}), (6, {'res': '$6load_global.2'}), (8, {'res': '$pred_row8.3'}), (10, {'func': '$6load_global.2', 'args': ['$pred_row8.3'], 'res': '$10call_function.4'}), (12, {'res': '$12load_global.5'}), (14, {'res': '$edges_uv14.6'}), (16, {'func': '$12load_global.5', 'args': ['$edges_uv14.6'], 'res': '$16call_function.7'}), (18, {'lhs': '$10call_function.4', 'rhs': '$16call_function.7', 'res': '$18binary_add.8'}), (20, {'res': '$const20.9'}), (22, {'items': ['$18binary_add.8', '$const20.9'], 'res': '$22build_tuple.10'}), (24, {'res': '$24load_global.11'}), (26, {'item': '$24load_global.11', 'res': '$26load_attr.12'}), (28, {'res': '$const28.13'}), (30, {'func': '$4load_attr.1', 'args': ['$22build_tuple.10', '$26load_attr.12'], 'names': '$const28.13', 'res': '$30call_function_kw.14'}), (32, {'value': '$30call_function_kw.14'}), (34, {'res': '$34load_global.15'}), (36, {'res': '$dist_row36.16'}), (38, {'func': '$34load_global.15', 'args': ['$dist_row36.16'], 'res': '$38call_function.17'}), (40, {'value': '$38call_function.17'}), (42, {'res': '$42load_global.18'}), (44, {'item': '$42load_global.18', 'res': '$44load_method.19'}), (46, {'res': '$46load_global.20'}), (48, {'res': '$pred_row48.21'}), (50, {'func': '$46load_global.20', 'args': ['$pred_row48.21'], 'res': '$50call_function.22'}), (52, {'func': '$44load_method.19', 'args': ['$50call_function.22'], 'res': '$52call_method.23'}), (54, {'value': '$52call_method.23'}), (56, {'res': '$delta56.24'}), (58, {'item': '$delta56.24', 'res': '$58load_method.25'}), (60, {'func': '$58load_method.25', 'args': [], 'res': '$60call_method.26'}), (62, {'value': '$60call_method.26'}), (64, {'res': '$s_queue_idx64.27'}), (66, {'res': '$const66.28'}), (68, {'res': '$const68.29'}), (70, {'res': '$const70.30'}), (72, {'start': '$const66.28', 'stop': '$const68.29', 'step': '$const70.30', 'res': '$72build_slice.32', 'slicevar': '$72build_slice.31'}), (74, {'index': '$72build_slice.32', 'target': '$s_queue_idx64.27', 'res': '$74binary_subscr.33'}), (76, {'value': '$74binary_subscr.33', 'res': '$76get_iter.34'})), outgoing_phis={'$phi78.0': '$76get_iter.34'}, blockstack=(), active_try_block=None, outgoing_edgepushed={78: ('$76get_iter.34',)})\n", - "2023-05-15 11:07:32,441 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=78 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((78, {'iterator': '$phi78.0', 'pair': '$78for_iter.1', 'indval': '$78for_iter.2', 'pred': '$78for_iter.3'}),), outgoing_phis={'$phi80.1': '$78for_iter.2'}, blockstack=(), active_try_block=None, outgoing_edgepushed={352: (), 80: ('$phi78.0', '$78for_iter.2')})\n", - "2023-05-15 11:07:32,442 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=80 nstack_initial=2):\n", - "AdaptBlockInfo(insts=((80, {'value': '$phi80.1'}), (82, {'res': '$pred_row82.2'}), (84, {'res': '$w_idx84.3'}), (86, {'index': '$w_idx84.3', 'target': '$pred_row82.2', 'res': '$86binary_subscr.4'}), (88, {'value': '$86binary_subscr.4'}), (90, {'res': '$dist_row90.5'}), (92, {'res': '$w_idx92.6'}), (94, {'index': '$w_idx92.6', 'target': '$dist_row90.5', 'res': '$94binary_subscr.7'}), (96, {'value': '$94binary_subscr.7'}), (98, {'res': '$const98.8'}), (100, {'res': '$delta100.9'}), (102, {'res': '$w_idx102.10'}), (104, {'index': '$w_idx102.10', 'target': '$delta100.9', 'res': '$104binary_subscr.11'}), (106, {'lhs': '$const98.8', 'rhs': '$104binary_subscr.11', 'res': '$106binary_add.12'}), (108, {'value': '$106binary_add.12'}), (110, {'res': '$const110.13'}), (112, {'res': '$dist_w112.14'}), (114, {'lhs': '$const110.13', 'rhs': '$dist_w112.14', 'res': '$114binary_true_divide.15'}), (116, {'res': '$delta116.16'}), (118, {'res': '$w_idx118.17'}), (120, {'index': '$w_idx118.17', 'target': '$delta116.16', 'res': '$120binary_subscr.18'}), (122, {'lhs': '$114binary_true_divide.15', 'rhs': '$120binary_subscr.18', 'res': '$122binary_add.19'}), (124, {'value': '$122binary_add.19'}), (126, {'res': '$126load_global.20'}), (128, {'item': '$126load_global.20', 'res': '$128load_method.21'}), (130, {'res': '$edges_uv130.22'}), (132, {'res': '$132load_global.23'}), (134, {'res': '$pre_w134.24'}), (136, {'res': '$w_idx136.25'}), (138, {'res': '$edge_padding138.26'}), (140, {'func': '$132load_global.23', 'args': ['$pre_w134.24', '$w_idx136.25', '$edge_padding138.26'], 'res': '$140call_function.27'}), (142, {'func': '$128load_method.21', 'args': ['$edges_uv130.22', '$140call_function.27'], 'res': '$142call_method.28'}), (144, {'value': '$142call_method.28'}), (146, {'res': '$betweennesses146.29'}), (148, {'res': '$148load_global.30'}), (150, {'res': '$pred_row150.31'}), (152, {'func': '$148load_global.30', 'args': ['$pred_row150.31'], 'res': '$152call_function.32'}), (154, {'res': '$edge_idx154.33'}), (156, {'lhs': '$152call_function.32', 'rhs': '$edge_idx154.33', 'res': '$156binary_add.34'}), (158, {'res': '$const158.35'}), (160, {'items': ['$156binary_add.34', '$const158.35'], 'res': '$160build_tuple.36'}), (162, {'orig': ['$betweennesses146.29', '$160build_tuple.36'], 'duped': ['$162dup_top_two.37', '$162dup_top_two.38']}), (164, {'index': '$162dup_top_two.38', 'target': '$162dup_top_two.37', 'res': '$164binary_subscr.39'}), (166, {'res': '$coeff166.40'}), (168, {'lhs': '$164binary_subscr.39', 'rhs': '$coeff166.40', 'res': '$168inplace_add.41'}), (172, {'target': '$betweennesses146.29', 'index': '$160build_tuple.36', 'value': '$168inplace_add.41'}), (174, {'res': '$betweennesses174.42'}), (176, {'res': '$176load_global.43'}), (178, {'res': '$pred_row178.44'}), (180, {'func': '$176load_global.43', 'args': ['$pred_row178.44'], 'res': '$180call_function.45'}), (182, {'res': '$edge_idx182.46'}), (184, {'lhs': '$180call_function.45', 'rhs': '$edge_idx182.46', 'res': '$184binary_add.47'}), (186, {'res': '$const186.48'}), (188, {'items': ['$184binary_add.47', '$const186.48'], 'res': '$188build_tuple.49'}), (190, {'orig': ['$betweennesses174.42', '$188build_tuple.49'], 'duped': ['$190dup_top_two.50', '$190dup_top_two.51']}), (192, {'index': '$190dup_top_two.51', 'target': '$190dup_top_two.50', 'res': '$192binary_subscr.52'}), (194, {'res': '$coeff_len194.53'}), (196, {'lhs': '$192binary_subscr.52', 'rhs': '$coeff_len194.53', 'res': '$196inplace_add.54'}), (200, {'target': '$betweennesses174.42', 'index': '$188build_tuple.49', 'value': '$196inplace_add.54'}), (202, {'res': '$betweennesses202.55'}), (204, {'res': '$204load_global.56'}), (206, {'res': '$pred_row206.57'}), (208, {'func': '$204load_global.56', 'args': ['$pred_row206.57'], 'res': '$208call_function.58'}), (210, {'res': '$edge_idx210.59'}), (212, {'lhs': '$208call_function.58', 'rhs': '$edge_idx210.59', 'res': '$212binary_add.60'}), (214, {'res': '$const214.61'}), (216, {'items': ['$212binary_add.60', '$const214.61'], 'res': '$216build_tuple.62'}), (218, {'orig': ['$betweennesses202.55', '$216build_tuple.62'], 'duped': ['$218dup_top_two.63', '$218dup_top_two.64']}), (220, {'index': '$218dup_top_two.64', 'target': '$218dup_top_two.63', 'res': '$220binary_subscr.65'}), (222, {'res': '$dist_w222.66'}), (224, {'res': '$coeff_len224.67'}), (226, {'lhs': '$dist_w222.66', 'rhs': '$coeff_len224.67', 'res': '$226binary_multiply.68'}), (228, {'lhs': '$220binary_subscr.65', 'rhs': '$226binary_multiply.68', 'res': '$228inplace_add.69'}), (232, {'target': '$betweennesses202.55', 'index': '$216build_tuple.62', 'value': '$228inplace_add.69'}), (234, {'res': '$delta234.70'}), (236, {'res': '$pre_w236.71'}), (238, {'orig': ['$delta234.70', '$pre_w236.71'], 'duped': ['$238dup_top_two.72', '$238dup_top_two.73']}), (240, {'index': '$238dup_top_two.73', 'target': '$238dup_top_two.72', 'res': '$240binary_subscr.74'}), (242, {'res': '$coeff242.75'}), (244, {'lhs': '$240binary_subscr.74', 'rhs': '$coeff242.75', 'res': '$244inplace_add.76'}), (248, {'target': '$delta234.70', 'index': '$pre_w236.71', 'value': '$244inplace_add.76'}), (250, {'res': '$delta_len250.77'}), (252, {'res': '$pre_w252.78'}), (254, {'orig': ['$delta_len250.77', '$pre_w252.78'], 'duped': ['$254dup_top_two.79', '$254dup_top_two.80']}), (256, {'index': '$254dup_top_two.80', 'target': '$254dup_top_two.79', 'res': '$256binary_subscr.81'}), (258, {'res': '$coeff_len258.82'}), (260, {'lhs': '$256binary_subscr.81', 'rhs': '$coeff_len258.82', 'res': '$260inplace_add.83'}), (264, {'target': '$delta_len250.77', 'index': '$pre_w252.78', 'value': '$260inplace_add.83'}), (266, {'res': '$w_idx266.84'}), (268, {'res': '$s_idx268.85'}), (270, {'lhs': '$w_idx266.84', 'rhs': '$s_idx268.85', 'res': '$270compare_op.86'}), (272, {'pred': '$270compare_op.86'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={274: ('$phi80.0',), 350: ('$phi80.0',)})\n", - "2023-05-15 11:07:32,442 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=274 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((274, {'res': '$betweennesses274.1'}), (276, {'res': '$w_idx276.2'}), (278, {'res': '$const278.3'}), (280, {'items': ['$w_idx276.2', '$const278.3'], 'res': '$280build_tuple.4'}), (282, {'orig': ['$betweennesses274.1', '$280build_tuple.4'], 'duped': ['$282dup_top_two.5', '$282dup_top_two.6']}), (284, {'index': '$282dup_top_two.6', 'target': '$282dup_top_two.5', 'res': '$284binary_subscr.7'}), (286, {'res': '$delta286.8'}), (288, {'res': '$w_idx288.9'}), (290, {'index': '$w_idx288.9', 'target': '$delta286.8', 'res': '$290binary_subscr.10'}), (292, {'lhs': '$284binary_subscr.7', 'rhs': '$290binary_subscr.10', 'res': '$292inplace_add.11'}), (296, {'target': '$betweennesses274.1', 'index': '$280build_tuple.4', 'value': '$292inplace_add.11'}), (298, {'res': '$betweennesses298.12'}), (300, {'res': '$w_idx300.13'}), (302, {'res': '$const302.14'}), (304, {'items': ['$w_idx300.13', '$const302.14'], 'res': '$304build_tuple.15'}), (306, {'orig': ['$betweennesses298.12', '$304build_tuple.15'], 'duped': ['$306dup_top_two.16', '$306dup_top_two.17']}), (308, {'index': '$306dup_top_two.17', 'target': '$306dup_top_two.16', 'res': '$308binary_subscr.18'}), (310, {'res': '$delta_len310.19'}), (312, {'res': '$w_idx312.20'}), (314, {'index': '$w_idx312.20', 'target': '$delta_len310.19', 'res': '$314binary_subscr.21'}), (316, {'lhs': '$308binary_subscr.18', 'rhs': '$314binary_subscr.21', 'res': '$316inplace_add.22'}), (320, {'target': '$betweennesses298.12', 'index': '$304build_tuple.15', 'value': '$316inplace_add.22'}), (322, {'res': '$betweennesses322.23'}), (324, {'res': '$w_idx324.24'}), (326, {'res': '$const326.25'}), (328, {'items': ['$w_idx324.24', '$const326.25'], 'res': '$328build_tuple.26'}), (330, {'orig': ['$betweennesses322.23', '$328build_tuple.26'], 'duped': ['$330dup_top_two.27', '$330dup_top_two.28']}), (332, {'index': '$330dup_top_two.28', 'target': '$330dup_top_two.27', 'res': '$332binary_subscr.29'}), (334, {'res': '$dist_w334.30'}), (336, {'res': '$delta_len336.31'}), (338, {'res': '$w_idx338.32'}), (340, {'index': '$w_idx338.32', 'target': '$delta_len336.31', 'res': '$340binary_subscr.33'}), (342, {'lhs': '$dist_w334.30', 'rhs': '$340binary_subscr.33', 'res': '$342binary_multiply.34'}), (344, {'lhs': '$332binary_subscr.29', 'rhs': '$342binary_multiply.34', 'res': '$344inplace_add.35'}), (348, {'target': '$betweennesses322.23', 'index': '$328build_tuple.26', 'value': '$344inplace_add.35'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={350: ('$phi274.0',)})\n", - "2023-05-15 11:07:32,443 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=350 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((350, {}),), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={78: ('$phi350.0',)})\n", - "2023-05-15 11:07:32,444 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=352 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((352, {'res': '$betweennesses352.0'}), (354, {'retval': '$betweennesses352.0', 'castval': '$354return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:32,458 | DEBUG | interpreter.py:1342 | label 0:\n", - " s_idx = arg(0, name=s_idx) ['s_idx']\n", - " pred_row = arg(1, name=pred_row) ['pred_row']\n", - " dist_row = arg(2, name=dist_row) ['dist_row']\n", - " edges_uv = arg(3, name=edges_uv) ['edges_uv']\n", - " edge_padding = arg(4, name=edge_padding) ['edge_padding']\n", - " $2load_global.0 = global(np: ) ['$2load_global.0']\n", - " $4load_attr.1 = getattr(value=$2load_global.0, attr=zeros) ['$2load_global.0', '$4load_attr.1']\n", - " $6load_global.2 = global(len: ) ['$6load_global.2']\n", - " $10call_function.4 = call $6load_global.2(pred_row, func=$6load_global.2, args=[Var(pred_row, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None) ['$10call_function.4', '$6load_global.2', 'pred_row']\n", - " $12load_global.5 = global(len: ) ['$12load_global.5']\n", - " $16call_function.7 = call $12load_global.5(edges_uv, func=$12load_global.5, args=[Var(edges_uv, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None) ['$12load_global.5', '$16call_function.7', 'edges_uv']\n", - " $18binary_add.8 = $10call_function.4 + $16call_function.7 ['$10call_function.4', '$16call_function.7', '$18binary_add.8']\n", - " $const20.9 = const(int, 3) ['$const20.9']\n", - " $22build_tuple.10 = build_tuple(items=[Var($18binary_add.8, measures.py:506), Var($const20.9, measures.py:506)]) ['$18binary_add.8', '$22build_tuple.10', '$const20.9']\n", - " $24load_global.11 = global(np: ) ['$24load_global.11']\n", - " $26load_attr.12 = getattr(value=$24load_global.11, attr=float64) ['$24load_global.11', '$26load_attr.12']\n", - " betweennesses = call $4load_attr.1($22build_tuple.10, func=$4load_attr.1, args=[Var($22build_tuple.10, measures.py:506)], kws=[('dtype', Var($26load_attr.12, measures.py:506))], vararg=None, varkwarg=None, target=None) ['$22build_tuple.10', '$26load_attr.12', '$4load_attr.1', 'betweennesses']\n", - " $34load_global.15 = global(_single_source_given_paths_simplified: CPUDispatcher()) ['$34load_global.15']\n", - " s_queue_idx = call $34load_global.15(dist_row, func=$34load_global.15, args=[Var(dist_row, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None) ['$34load_global.15', 'dist_row', 's_queue_idx']\n", - " $42load_global.18 = global(np: ) ['$42load_global.18']\n", - " $44load_method.19 = getattr(value=$42load_global.18, attr=zeros) ['$42load_global.18', '$44load_method.19']\n", - " $46load_global.20 = global(len: ) ['$46load_global.20']\n", - " $50call_function.22 = call $46load_global.20(pred_row, func=$46load_global.20, args=[Var(pred_row, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None) ['$46load_global.20', '$50call_function.22', 'pred_row']\n", - " delta = call $44load_method.19($50call_function.22, func=$44load_method.19, args=[Var($50call_function.22, measures.py:511)], kws=(), vararg=None, varkwarg=None, target=None) ['$44load_method.19', '$50call_function.22', 'delta']\n", - " $58load_method.25 = getattr(value=delta, attr=copy) ['$58load_method.25', 'delta']\n", - " delta_len = call $58load_method.25(func=$58load_method.25, args=[], kws=(), vararg=None, varkwarg=None, target=None) ['$58load_method.25', 'delta_len']\n", - " $const66.28 = const(NoneType, None) ['$const66.28']\n", - " $const68.29 = const(NoneType, None) ['$const68.29']\n", - " $const70.30 = const(int, -1) ['$const70.30']\n", - " $72build_slice.31 = global(slice: ) ['$72build_slice.31']\n", - " $72build_slice.32 = call $72build_slice.31($const66.28, $const68.29, $const70.30, func=$72build_slice.31, args=(Var($const66.28, measures.py:514), Var($const68.29, measures.py:514), Var($const70.30, measures.py:514)), kws=(), vararg=None, varkwarg=None, target=None) ['$72build_slice.31', '$72build_slice.32', '$const66.28', '$const68.29', '$const70.30']\n", - " $74binary_subscr.33 = getitem(value=s_queue_idx, index=$72build_slice.32, fn=) ['$72build_slice.32', '$74binary_subscr.33', 's_queue_idx']\n", - " $76get_iter.34 = getiter(value=$74binary_subscr.33) ['$74binary_subscr.33', '$76get_iter.34']\n", - " $phi78.0 = $76get_iter.34 ['$76get_iter.34', '$phi78.0']\n", - " jump 78 []\n", - "label 78:\n", - " $78for_iter.1 = iternext(value=$phi78.0) ['$78for_iter.1', '$phi78.0']\n", - " $78for_iter.2 = pair_first(value=$78for_iter.1) ['$78for_iter.1', '$78for_iter.2']\n", - " $78for_iter.3 = pair_second(value=$78for_iter.1) ['$78for_iter.1', '$78for_iter.3']\n", - " $phi80.1 = $78for_iter.2 ['$78for_iter.2', '$phi80.1']\n", - " branch $78for_iter.3, 80, 352 ['$78for_iter.3']\n", - "label 80:\n", - " w_idx = $phi80.1 ['$phi80.1', 'w_idx']\n", - " pre_w = getitem(value=pred_row, index=w_idx, fn=) ['pre_w', 'pred_row', 'w_idx']\n", - " dist_w = getitem(value=dist_row, index=w_idx, fn=) ['dist_row', 'dist_w', 'w_idx']\n", - " $const98.8 = const(int, 1) ['$const98.8']\n", - " $104binary_subscr.11 = getitem(value=delta, index=w_idx, fn=) ['$104binary_subscr.11', 'delta', 'w_idx']\n", - " coeff = $const98.8 + $104binary_subscr.11 ['$104binary_subscr.11', '$const98.8', 'coeff']\n", - " $const110.13 = const(int, 1) ['$const110.13']\n", - " $114binary_true_divide.15 = $const110.13 / dist_w ['$114binary_true_divide.15', '$const110.13', 'dist_w']\n", - " $120binary_subscr.18 = getitem(value=delta, index=w_idx, fn=) ['$120binary_subscr.18', 'delta', 'w_idx']\n", - " coeff_len = $114binary_true_divide.15 + $120binary_subscr.18 ['$114binary_true_divide.15', '$120binary_subscr.18', 'coeff_len']\n", - " $126load_global.20 = global(np: ) ['$126load_global.20']\n", - " $128load_method.21 = getattr(value=$126load_global.20, attr=searchsorted) ['$126load_global.20', '$128load_method.21']\n", - " $132load_global.23 = global(__edge_to_1d: CPUDispatcher()) ['$132load_global.23']\n", - " $140call_function.27 = call $132load_global.23(pre_w, w_idx, edge_padding, func=$132load_global.23, args=[Var(pre_w, measures.py:516), Var(w_idx, measures.py:514), Var(edge_padding, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None) ['$132load_global.23', '$140call_function.27', 'edge_padding', 'pre_w', 'w_idx']\n", - " edge_idx = call $128load_method.21(edges_uv, $140call_function.27, func=$128load_method.21, args=[Var(edges_uv, measures.py:506), Var($140call_function.27, measures.py:523)], kws=(), vararg=None, varkwarg=None, target=None) ['$128load_method.21', '$140call_function.27', 'edge_idx', 'edges_uv']\n", - " $148load_global.30 = global(len: ) ['$148load_global.30']\n", - " $152call_function.32 = call $148load_global.30(pred_row, func=$148load_global.30, args=[Var(pred_row, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None) ['$148load_global.30', '$152call_function.32', 'pred_row']\n", - " $156binary_add.34 = $152call_function.32 + edge_idx ['$152call_function.32', '$156binary_add.34', 'edge_idx']\n", - " $const158.35 = const(int, 0) ['$const158.35']\n", - " $160build_tuple.36 = build_tuple(items=[Var($156binary_add.34, measures.py:526), Var($const158.35, measures.py:526)]) ['$156binary_add.34', '$160build_tuple.36', '$const158.35']\n", - " $164binary_subscr.39 = getitem(value=betweennesses, index=$160build_tuple.36, fn=) ['$160build_tuple.36', '$164binary_subscr.39', 'betweennesses']\n", - " $168inplace_add.41 = inplace_binop(fn=, immutable_fn=, lhs=$164binary_subscr.39, rhs=coeff, static_lhs=Undefined, static_rhs=Undefined) ['$164binary_subscr.39', '$168inplace_add.41', 'coeff']\n", - " betweennesses[$160build_tuple.36] = $168inplace_add.41 ['$160build_tuple.36', '$168inplace_add.41', 'betweennesses']\n", - " $176load_global.43 = global(len: ) ['$176load_global.43']\n", - " $180call_function.45 = call $176load_global.43(pred_row, func=$176load_global.43, args=[Var(pred_row, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None) ['$176load_global.43', '$180call_function.45', 'pred_row']\n", - " $184binary_add.47 = $180call_function.45 + edge_idx ['$180call_function.45', '$184binary_add.47', 'edge_idx']\n", - " $const186.48 = const(int, 1) ['$const186.48']\n", - " $188build_tuple.49 = build_tuple(items=[Var($184binary_add.47, measures.py:528), Var($const186.48, measures.py:528)]) ['$184binary_add.47', '$188build_tuple.49', '$const186.48']\n", - " $192binary_subscr.52 = getitem(value=betweennesses, index=$188build_tuple.49, fn=) ['$188build_tuple.49', '$192binary_subscr.52', 'betweennesses']\n", - " $196inplace_add.54 = inplace_binop(fn=, immutable_fn=, lhs=$192binary_subscr.52, rhs=coeff_len, static_lhs=Undefined, static_rhs=Undefined) ['$192binary_subscr.52', '$196inplace_add.54', 'coeff_len']\n", - " betweennesses[$188build_tuple.49] = $196inplace_add.54 ['$188build_tuple.49', '$196inplace_add.54', 'betweennesses']\n", - " $204load_global.56 = global(len: ) ['$204load_global.56']\n", - " $208call_function.58 = call $204load_global.56(pred_row, func=$204load_global.56, args=[Var(pred_row, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None) ['$204load_global.56', '$208call_function.58', 'pred_row']\n", - " $212binary_add.60 = $208call_function.58 + edge_idx ['$208call_function.58', '$212binary_add.60', 'edge_idx']\n", - " $const214.61 = const(int, 2) ['$const214.61']\n", - " $216build_tuple.62 = build_tuple(items=[Var($212binary_add.60, measures.py:530), Var($const214.61, measures.py:530)]) ['$212binary_add.60', '$216build_tuple.62', '$const214.61']\n", - " $220binary_subscr.65 = getitem(value=betweennesses, index=$216build_tuple.62, fn=) ['$216build_tuple.62', '$220binary_subscr.65', 'betweennesses']\n", - " $226binary_multiply.68 = dist_w * coeff_len ['$226binary_multiply.68', 'coeff_len', 'dist_w']\n", - " $228inplace_add.69 = inplace_binop(fn=, immutable_fn=, lhs=$220binary_subscr.65, rhs=$226binary_multiply.68, static_lhs=Undefined, static_rhs=Undefined) ['$220binary_subscr.65', '$226binary_multiply.68', '$228inplace_add.69']\n", - " betweennesses[$216build_tuple.62] = $228inplace_add.69 ['$216build_tuple.62', '$228inplace_add.69', 'betweennesses']\n", - " $240binary_subscr.74 = getitem(value=delta, index=pre_w, fn=) ['$240binary_subscr.74', 'delta', 'pre_w']\n", - " $244inplace_add.76 = inplace_binop(fn=, immutable_fn=, lhs=$240binary_subscr.74, rhs=coeff, static_lhs=Undefined, static_rhs=Undefined) ['$240binary_subscr.74', '$244inplace_add.76', 'coeff']\n", - " delta[pre_w] = $244inplace_add.76 ['$244inplace_add.76', 'delta', 'pre_w']\n", - " $256binary_subscr.81 = getitem(value=delta_len, index=pre_w, fn=) ['$256binary_subscr.81', 'delta_len', 'pre_w']\n", - " $260inplace_add.83 = inplace_binop(fn=, immutable_fn=, lhs=$256binary_subscr.81, rhs=coeff_len, static_lhs=Undefined, static_rhs=Undefined) ['$256binary_subscr.81', '$260inplace_add.83', 'coeff_len']\n", - " delta_len[pre_w] = $260inplace_add.83 ['$260inplace_add.83', 'delta_len', 'pre_w']\n", - " $270compare_op.86 = w_idx != s_idx ['$270compare_op.86', 's_idx', 'w_idx']\n", - " bool272 = global(bool: ) ['bool272']\n", - " $272pred = call bool272($270compare_op.86, func=bool272, args=(Var($270compare_op.86, measures.py:535),), kws=(), vararg=None, varkwarg=None, target=None) ['$270compare_op.86', '$272pred', 'bool272']\n", - " branch $272pred, 274, 350 ['$272pred']\n", - "label 274:\n", - " $const278.3 = const(int, 0) ['$const278.3']\n", - " $280build_tuple.4 = build_tuple(items=[Var(w_idx, measures.py:514), Var($const278.3, measures.py:536)]) ['$280build_tuple.4', '$const278.3', 'w_idx']\n", - " $284binary_subscr.7 = getitem(value=betweennesses, index=$280build_tuple.4, fn=) ['$280build_tuple.4', '$284binary_subscr.7', 'betweennesses']\n", - " $290binary_subscr.10 = getitem(value=delta, index=w_idx, fn=) ['$290binary_subscr.10', 'delta', 'w_idx']\n", - " $292inplace_add.11 = inplace_binop(fn=, immutable_fn=, lhs=$284binary_subscr.7, rhs=$290binary_subscr.10, static_lhs=Undefined, static_rhs=Undefined) ['$284binary_subscr.7', '$290binary_subscr.10', '$292inplace_add.11']\n", - " betweennesses[$280build_tuple.4] = $292inplace_add.11 ['$280build_tuple.4', '$292inplace_add.11', 'betweennesses']\n", - " $const302.14 = const(int, 1) ['$const302.14']\n", - " $304build_tuple.15 = build_tuple(items=[Var(w_idx, measures.py:514), Var($const302.14, measures.py:537)]) ['$304build_tuple.15', '$const302.14', 'w_idx']\n", - " $308binary_subscr.18 = getitem(value=betweennesses, index=$304build_tuple.15, fn=) ['$304build_tuple.15', '$308binary_subscr.18', 'betweennesses']\n", - " $314binary_subscr.21 = getitem(value=delta_len, index=w_idx, fn=) ['$314binary_subscr.21', 'delta_len', 'w_idx']\n", - " $316inplace_add.22 = inplace_binop(fn=, immutable_fn=, lhs=$308binary_subscr.18, rhs=$314binary_subscr.21, static_lhs=Undefined, static_rhs=Undefined) ['$308binary_subscr.18', '$314binary_subscr.21', '$316inplace_add.22']\n", - " betweennesses[$304build_tuple.15] = $316inplace_add.22 ['$304build_tuple.15', '$316inplace_add.22', 'betweennesses']\n", - " $const326.25 = const(int, 2) ['$const326.25']\n", - " $328build_tuple.26 = build_tuple(items=[Var(w_idx, measures.py:514), Var($const326.25, measures.py:538)]) ['$328build_tuple.26', '$const326.25', 'w_idx']\n", - " $332binary_subscr.29 = getitem(value=betweennesses, index=$328build_tuple.26, fn=) ['$328build_tuple.26', '$332binary_subscr.29', 'betweennesses']\n", - " $340binary_subscr.33 = getitem(value=delta_len, index=w_idx, fn=) ['$340binary_subscr.33', 'delta_len', 'w_idx']\n", - " $342binary_multiply.34 = dist_w * $340binary_subscr.33 ['$340binary_subscr.33', '$342binary_multiply.34', 'dist_w']\n", - " $344inplace_add.35 = inplace_binop(fn=, immutable_fn=, lhs=$332binary_subscr.29, rhs=$342binary_multiply.34, static_lhs=Undefined, static_rhs=Undefined) ['$332binary_subscr.29', '$342binary_multiply.34', '$344inplace_add.35']\n", - " betweennesses[$328build_tuple.26] = $344inplace_add.35 ['$328build_tuple.26', '$344inplace_add.35', 'betweennesses']\n", - " jump 350 []\n", - "label 350:\n", - " jump 78 []\n", - "label 352:\n", - " $354return_value.1 = cast(value=betweennesses) ['$354return_value.1', 'betweennesses']\n", - " return $354return_value.1 ['$354return_value.1']\n", - "\n", - "2023-05-15 11:07:32,487 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:32,488 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:32,489 | DEBUG | ssa.py:193 | on stmt: s_idx = arg(0, name=s_idx)\n", - "2023-05-15 11:07:32,489 | DEBUG | ssa.py:193 | on stmt: pred_row = arg(1, name=pred_row)\n", - "2023-05-15 11:07:32,490 | DEBUG | ssa.py:193 | on stmt: dist_row = arg(2, name=dist_row)\n", - "2023-05-15 11:07:32,490 | DEBUG | ssa.py:193 | on stmt: edges_uv = arg(3, name=edges_uv)\n", - "2023-05-15 11:07:32,491 | DEBUG | ssa.py:193 | on stmt: edge_padding = arg(4, name=edge_padding)\n", - "2023-05-15 11:07:32,491 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:32,491 | DEBUG | ssa.py:193 | on stmt: $4load_attr.1 = getattr(value=$2load_global.0, attr=zeros)\n", - "2023-05-15 11:07:32,492 | DEBUG | ssa.py:193 | on stmt: $6load_global.2 = global(len: )\n", - "2023-05-15 11:07:32,492 | DEBUG | ssa.py:193 | on stmt: $10call_function.4 = call $6load_global.2(pred_row, func=$6load_global.2, args=[Var(pred_row, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,493 | DEBUG | ssa.py:193 | on stmt: $12load_global.5 = global(len: )\n", - "2023-05-15 11:07:32,493 | DEBUG | ssa.py:193 | on stmt: $16call_function.7 = call $12load_global.5(edges_uv, func=$12load_global.5, args=[Var(edges_uv, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,494 | DEBUG | ssa.py:193 | on stmt: $18binary_add.8 = $10call_function.4 + $16call_function.7\n", - "2023-05-15 11:07:32,495 | DEBUG | ssa.py:193 | on stmt: $const20.9 = const(int, 3)\n", - "2023-05-15 11:07:32,496 | DEBUG | ssa.py:193 | on stmt: $22build_tuple.10 = build_tuple(items=[Var($18binary_add.8, measures.py:506), Var($const20.9, measures.py:506)])\n", - "2023-05-15 11:07:32,496 | DEBUG | ssa.py:193 | on stmt: $24load_global.11 = global(np: )\n", - "2023-05-15 11:07:32,496 | DEBUG | ssa.py:193 | on stmt: $26load_attr.12 = getattr(value=$24load_global.11, attr=float64)\n", - "2023-05-15 11:07:32,497 | DEBUG | ssa.py:193 | on stmt: betweennesses = call $4load_attr.1($22build_tuple.10, func=$4load_attr.1, args=[Var($22build_tuple.10, measures.py:506)], kws=[('dtype', Var($26load_attr.12, measures.py:506))], vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,498 | DEBUG | ssa.py:193 | on stmt: $34load_global.15 = global(_single_source_given_paths_simplified: CPUDispatcher())\n", - "2023-05-15 11:07:32,499 | DEBUG | ssa.py:193 | on stmt: s_queue_idx = call $34load_global.15(dist_row, func=$34load_global.15, args=[Var(dist_row, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,499 | DEBUG | ssa.py:193 | on stmt: $42load_global.18 = global(np: )\n", - "2023-05-15 11:07:32,500 | DEBUG | ssa.py:193 | on stmt: $44load_method.19 = getattr(value=$42load_global.18, attr=zeros)\n", - "2023-05-15 11:07:32,500 | DEBUG | ssa.py:193 | on stmt: $46load_global.20 = global(len: )\n", - "2023-05-15 11:07:32,501 | DEBUG | ssa.py:193 | on stmt: $50call_function.22 = call $46load_global.20(pred_row, func=$46load_global.20, args=[Var(pred_row, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,501 | DEBUG | ssa.py:193 | on stmt: delta = call $44load_method.19($50call_function.22, func=$44load_method.19, args=[Var($50call_function.22, measures.py:511)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,502 | DEBUG | ssa.py:193 | on stmt: $58load_method.25 = getattr(value=delta, attr=copy)\n", - "2023-05-15 11:07:32,502 | DEBUG | ssa.py:193 | on stmt: delta_len = call $58load_method.25(func=$58load_method.25, args=[], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,503 | DEBUG | ssa.py:193 | on stmt: $const66.28 = const(NoneType, None)\n", - "2023-05-15 11:07:32,503 | DEBUG | ssa.py:193 | on stmt: $const68.29 = const(NoneType, None)\n", - "2023-05-15 11:07:32,504 | DEBUG | ssa.py:193 | on stmt: $const70.30 = const(int, -1)\n", - "2023-05-15 11:07:32,504 | DEBUG | ssa.py:193 | on stmt: $72build_slice.31 = global(slice: )\n", - "2023-05-15 11:07:32,505 | DEBUG | ssa.py:193 | on stmt: $72build_slice.32 = call $72build_slice.31($const66.28, $const68.29, $const70.30, func=$72build_slice.31, args=(Var($const66.28, measures.py:514), Var($const68.29, measures.py:514), Var($const70.30, measures.py:514)), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,505 | DEBUG | ssa.py:193 | on stmt: $74binary_subscr.33 = static_getitem(value=s_queue_idx, index=slice(None, None, -1), index_var=$72build_slice.32, fn=)\n", - "2023-05-15 11:07:32,506 | DEBUG | ssa.py:193 | on stmt: $76get_iter.34 = getiter(value=$74binary_subscr.33)\n", - "2023-05-15 11:07:32,506 | DEBUG | ssa.py:193 | on stmt: $phi78.0 = $76get_iter.34\n", - "2023-05-15 11:07:32,507 | DEBUG | ssa.py:193 | on stmt: jump 78\n", - "2023-05-15 11:07:32,507 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 78\n", - "2023-05-15 11:07:32,508 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:32,508 | DEBUG | ssa.py:193 | on stmt: $78for_iter.1 = iternext(value=$phi78.0)\n", - "2023-05-15 11:07:32,509 | DEBUG | ssa.py:193 | on stmt: $78for_iter.2 = pair_first(value=$78for_iter.1)\n", - "2023-05-15 11:07:32,509 | DEBUG | ssa.py:193 | on stmt: $78for_iter.3 = pair_second(value=$78for_iter.1)\n", - "2023-05-15 11:07:32,510 | DEBUG | ssa.py:193 | on stmt: $phi80.1 = $78for_iter.2\n", - "2023-05-15 11:07:32,510 | DEBUG | ssa.py:193 | on stmt: branch $78for_iter.3, 80, 352\n", - "2023-05-15 11:07:32,511 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 80\n", - "2023-05-15 11:07:32,511 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:32,512 | DEBUG | ssa.py:193 | on stmt: w_idx = $phi80.1\n", - "2023-05-15 11:07:32,513 | DEBUG | ssa.py:193 | on stmt: pre_w = getitem(value=pred_row, index=w_idx, fn=)\n", - "2023-05-15 11:07:32,516 | DEBUG | ssa.py:193 | on stmt: dist_w = getitem(value=dist_row, index=w_idx, fn=)\n", - "2023-05-15 11:07:32,517 | DEBUG | ssa.py:193 | on stmt: $const98.8 = const(int, 1)\n", - "2023-05-15 11:07:32,518 | DEBUG | ssa.py:193 | on stmt: $104binary_subscr.11 = getitem(value=delta, index=w_idx, fn=)\n", - "2023-05-15 11:07:32,518 | DEBUG | ssa.py:193 | on stmt: coeff = $const98.8 + $104binary_subscr.11\n", - "2023-05-15 11:07:32,519 | DEBUG | ssa.py:193 | on stmt: $const110.13 = const(int, 1)\n", - "2023-05-15 11:07:32,519 | DEBUG | ssa.py:193 | on stmt: $114binary_true_divide.15 = $const110.13 / dist_w\n", - "2023-05-15 11:07:32,520 | DEBUG | ssa.py:193 | on stmt: $120binary_subscr.18 = getitem(value=delta, index=w_idx, fn=)\n", - "2023-05-15 11:07:32,520 | DEBUG | ssa.py:193 | on stmt: coeff_len = $114binary_true_divide.15 + $120binary_subscr.18\n", - "2023-05-15 11:07:32,521 | DEBUG | ssa.py:193 | on stmt: $126load_global.20 = global(np: )\n", - "2023-05-15 11:07:32,522 | DEBUG | ssa.py:193 | on stmt: $128load_method.21 = getattr(value=$126load_global.20, attr=searchsorted)\n", - "2023-05-15 11:07:32,522 | DEBUG | ssa.py:193 | on stmt: $132load_global.23 = global(__edge_to_1d: CPUDispatcher())\n", - "2023-05-15 11:07:32,524 | DEBUG | ssa.py:193 | on stmt: $140call_function.27 = call $132load_global.23(pre_w, w_idx, edge_padding, func=$132load_global.23, args=[Var(pre_w, measures.py:516), Var(w_idx, measures.py:514), Var(edge_padding, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,524 | DEBUG | ssa.py:193 | on stmt: edge_idx = call $128load_method.21(edges_uv, $140call_function.27, func=$128load_method.21, args=[Var(edges_uv, measures.py:506), Var($140call_function.27, measures.py:523)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,525 | DEBUG | ssa.py:193 | on stmt: $148load_global.30 = global(len: )\n", - "2023-05-15 11:07:32,525 | DEBUG | ssa.py:193 | on stmt: $152call_function.32 = call $148load_global.30(pred_row, func=$148load_global.30, args=[Var(pred_row, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,526 | DEBUG | ssa.py:193 | on stmt: $156binary_add.34 = $152call_function.32 + edge_idx\n", - "2023-05-15 11:07:32,530 | DEBUG | ssa.py:193 | on stmt: $const158.35 = const(int, 0)\n", - "2023-05-15 11:07:32,531 | DEBUG | ssa.py:193 | on stmt: $160build_tuple.36 = build_tuple(items=[Var($156binary_add.34, measures.py:526), Var($const158.35, measures.py:526)])\n", - "2023-05-15 11:07:32,531 | DEBUG | ssa.py:193 | on stmt: $164binary_subscr.39 = getitem(value=betweennesses, index=$160build_tuple.36, fn=)\n", - "2023-05-15 11:07:32,532 | DEBUG | ssa.py:193 | on stmt: $168inplace_add.41 = inplace_binop(fn=, immutable_fn=, lhs=$164binary_subscr.39, rhs=coeff, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:32,536 | DEBUG | ssa.py:193 | on stmt: betweennesses[$160build_tuple.36] = $168inplace_add.41\n", - "2023-05-15 11:07:32,536 | DEBUG | ssa.py:193 | on stmt: $176load_global.43 = global(len: )\n", - "2023-05-15 11:07:32,536 | DEBUG | ssa.py:193 | on stmt: $180call_function.45 = call $176load_global.43(pred_row, func=$176load_global.43, args=[Var(pred_row, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,537 | DEBUG | ssa.py:193 | on stmt: $184binary_add.47 = $180call_function.45 + edge_idx\n", - "2023-05-15 11:07:32,538 | DEBUG | ssa.py:193 | on stmt: $const186.48 = const(int, 1)\n", - "2023-05-15 11:07:32,538 | DEBUG | ssa.py:193 | on stmt: $188build_tuple.49 = build_tuple(items=[Var($184binary_add.47, measures.py:528), Var($const186.48, measures.py:528)])\n", - "2023-05-15 11:07:32,538 | DEBUG | ssa.py:193 | on stmt: $192binary_subscr.52 = getitem(value=betweennesses, index=$188build_tuple.49, fn=)\n", - "2023-05-15 11:07:32,540 | DEBUG | ssa.py:193 | on stmt: $196inplace_add.54 = inplace_binop(fn=, immutable_fn=, lhs=$192binary_subscr.52, rhs=coeff_len, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:32,540 | DEBUG | ssa.py:193 | on stmt: betweennesses[$188build_tuple.49] = $196inplace_add.54\n", - "2023-05-15 11:07:32,541 | DEBUG | ssa.py:193 | on stmt: $204load_global.56 = global(len: )\n", - "2023-05-15 11:07:32,541 | DEBUG | ssa.py:193 | on stmt: $208call_function.58 = call $204load_global.56(pred_row, func=$204load_global.56, args=[Var(pred_row, measures.py:506)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,542 | DEBUG | ssa.py:193 | on stmt: $212binary_add.60 = $208call_function.58 + edge_idx\n", - "2023-05-15 11:07:32,542 | DEBUG | ssa.py:193 | on stmt: $const214.61 = const(int, 2)\n", - "2023-05-15 11:07:32,543 | DEBUG | ssa.py:193 | on stmt: $216build_tuple.62 = build_tuple(items=[Var($212binary_add.60, measures.py:530), Var($const214.61, measures.py:530)])\n", - "2023-05-15 11:07:32,543 | DEBUG | ssa.py:193 | on stmt: $220binary_subscr.65 = getitem(value=betweennesses, index=$216build_tuple.62, fn=)\n", - "2023-05-15 11:07:32,544 | DEBUG | ssa.py:193 | on stmt: $226binary_multiply.68 = dist_w * coeff_len\n", - "2023-05-15 11:07:32,544 | DEBUG | ssa.py:193 | on stmt: $228inplace_add.69 = inplace_binop(fn=, immutable_fn=, lhs=$220binary_subscr.65, rhs=$226binary_multiply.68, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:32,544 | DEBUG | ssa.py:193 | on stmt: betweennesses[$216build_tuple.62] = $228inplace_add.69\n", - "2023-05-15 11:07:32,545 | DEBUG | ssa.py:193 | on stmt: $240binary_subscr.74 = getitem(value=delta, index=pre_w, fn=)\n", - "2023-05-15 11:07:32,547 | DEBUG | ssa.py:193 | on stmt: $244inplace_add.76 = inplace_binop(fn=, immutable_fn=, lhs=$240binary_subscr.74, rhs=coeff, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:32,547 | DEBUG | ssa.py:193 | on stmt: delta[pre_w] = $244inplace_add.76\n", - "2023-05-15 11:07:32,547 | DEBUG | ssa.py:193 | on stmt: $256binary_subscr.81 = getitem(value=delta_len, index=pre_w, fn=)\n", - "2023-05-15 11:07:32,548 | DEBUG | ssa.py:193 | on stmt: $260inplace_add.83 = inplace_binop(fn=, immutable_fn=, lhs=$256binary_subscr.81, rhs=coeff_len, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:32,548 | DEBUG | ssa.py:193 | on stmt: delta_len[pre_w] = $260inplace_add.83\n", - "2023-05-15 11:07:32,549 | DEBUG | ssa.py:193 | on stmt: $270compare_op.86 = w_idx != s_idx\n", - "2023-05-15 11:07:32,549 | DEBUG | ssa.py:193 | on stmt: bool272 = global(bool: )\n", - "2023-05-15 11:07:32,549 | DEBUG | ssa.py:193 | on stmt: $272pred = call bool272($270compare_op.86, func=bool272, args=(Var($270compare_op.86, measures.py:535),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,550 | DEBUG | ssa.py:193 | on stmt: branch $272pred, 274, 350\n", - "2023-05-15 11:07:32,550 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 274\n", - "2023-05-15 11:07:32,551 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:32,551 | DEBUG | ssa.py:193 | on stmt: $const278.3 = const(int, 0)\n", - "2023-05-15 11:07:32,551 | DEBUG | ssa.py:193 | on stmt: $280build_tuple.4 = build_tuple(items=[Var(w_idx, measures.py:514), Var($const278.3, measures.py:536)])\n", - "2023-05-15 11:07:32,552 | DEBUG | ssa.py:193 | on stmt: $284binary_subscr.7 = getitem(value=betweennesses, index=$280build_tuple.4, fn=)\n", - "2023-05-15 11:07:32,552 | DEBUG | ssa.py:193 | on stmt: $290binary_subscr.10 = getitem(value=delta, index=w_idx, fn=)\n", - "2023-05-15 11:07:32,553 | DEBUG | ssa.py:193 | on stmt: $292inplace_add.11 = inplace_binop(fn=, immutable_fn=, lhs=$284binary_subscr.7, rhs=$290binary_subscr.10, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:32,553 | DEBUG | ssa.py:193 | on stmt: betweennesses[$280build_tuple.4] = $292inplace_add.11\n", - "2023-05-15 11:07:32,553 | DEBUG | ssa.py:193 | on stmt: $const302.14 = const(int, 1)\n", - "2023-05-15 11:07:32,554 | DEBUG | ssa.py:193 | on stmt: $304build_tuple.15 = build_tuple(items=[Var(w_idx, measures.py:514), Var($const302.14, measures.py:537)])\n", - "2023-05-15 11:07:32,554 | DEBUG | ssa.py:193 | on stmt: $308binary_subscr.18 = getitem(value=betweennesses, index=$304build_tuple.15, fn=)\n", - "2023-05-15 11:07:32,554 | DEBUG | ssa.py:193 | on stmt: $314binary_subscr.21 = getitem(value=delta_len, index=w_idx, fn=)\n", - "2023-05-15 11:07:32,555 | DEBUG | ssa.py:193 | on stmt: $316inplace_add.22 = inplace_binop(fn=, immutable_fn=, lhs=$308binary_subscr.18, rhs=$314binary_subscr.21, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:32,555 | DEBUG | ssa.py:193 | on stmt: betweennesses[$304build_tuple.15] = $316inplace_add.22\n", - "2023-05-15 11:07:32,556 | DEBUG | ssa.py:193 | on stmt: $const326.25 = const(int, 2)\n", - "2023-05-15 11:07:32,556 | DEBUG | ssa.py:193 | on stmt: $328build_tuple.26 = build_tuple(items=[Var(w_idx, measures.py:514), Var($const326.25, measures.py:538)])\n", - "2023-05-15 11:07:32,556 | DEBUG | ssa.py:193 | on stmt: $332binary_subscr.29 = getitem(value=betweennesses, index=$328build_tuple.26, fn=)\n", - "2023-05-15 11:07:32,557 | DEBUG | ssa.py:193 | on stmt: $340binary_subscr.33 = getitem(value=delta_len, index=w_idx, fn=)\n", - "2023-05-15 11:07:32,557 | DEBUG | ssa.py:193 | on stmt: $342binary_multiply.34 = dist_w * $340binary_subscr.33\n", - "2023-05-15 11:07:32,558 | DEBUG | ssa.py:193 | on stmt: $344inplace_add.35 = inplace_binop(fn=, immutable_fn=, lhs=$332binary_subscr.29, rhs=$342binary_multiply.34, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:32,559 | DEBUG | ssa.py:193 | on stmt: betweennesses[$328build_tuple.26] = $344inplace_add.35\n", - "2023-05-15 11:07:32,559 | DEBUG | ssa.py:193 | on stmt: jump 350\n", - "2023-05-15 11:07:32,563 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 350\n", - "2023-05-15 11:07:32,563 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:32,564 | DEBUG | ssa.py:193 | on stmt: jump 78\n", - "2023-05-15 11:07:32,564 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 352\n", - "2023-05-15 11:07:32,565 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:32,566 | DEBUG | ssa.py:193 | on stmt: $354return_value.1 = cast(value=betweennesses)\n", - "2023-05-15 11:07:32,567 | DEBUG | ssa.py:193 | on stmt: return $354return_value.1\n", - "2023-05-15 11:07:32,569 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$104binary_subscr.11': [],\n", - " '$10call_function.4': [],\n", - " '$114binary_true_divide.15': [],\n", - " '$120binary_subscr.18': [],\n", - " '$126load_global.20': [],\n", - " '$128load_method.21': [],\n", - " '$12load_global.5': [],\n", - " '$132load_global.23': [],\n", - " '$140call_function.27': [],\n", - " '$148load_global.30': [],\n", - " '$152call_function.32': [],\n", - " '$156binary_add.34': [],\n", - " '$160build_tuple.36': [],\n", - " '$164binary_subscr.39': [],\n", - " '$168inplace_add.41': [],\n", - " '$16call_function.7': [],\n", - " '$176load_global.43': [],\n", - " '$180call_function.45': [],\n", - " '$184binary_add.47': [],\n", - " '$188build_tuple.49': [],\n", - " '$18binary_add.8': [],\n", - " '$192binary_subscr.52': [],\n", - " '$196inplace_add.54': [],\n", - " '$204load_global.56': [],\n", - " '$208call_function.58': [],\n", - " '$212binary_add.60': [],\n", - " '$216build_tuple.62': [],\n", - " '$220binary_subscr.65': [],\n", - " '$226binary_multiply.68': [],\n", - " '$228inplace_add.69': [],\n", - " '$22build_tuple.10': [],\n", - " '$240binary_subscr.74': [],\n", - " '$244inplace_add.76': [],\n", - " '$24load_global.11': [],\n", - " '$256binary_subscr.81': [],\n", - " '$260inplace_add.83': [],\n", - " '$26load_attr.12': [],\n", - " '$270compare_op.86': [],\n", - " '$272pred': [],\n", - " '$280build_tuple.4': [],\n", - " '$284binary_subscr.7': [],\n", - " '$290binary_subscr.10': [],\n", - " '$292inplace_add.11': [],\n", - " '$2load_global.0': [],\n", - " '$304build_tuple.15': [],\n", - " '$308binary_subscr.18': [],\n", - " '$314binary_subscr.21': [],\n", - " '$316inplace_add.22': [],\n", - " '$328build_tuple.26': [],\n", - " '$332binary_subscr.29': [],\n", - " '$340binary_subscr.33': [],\n", - " '$342binary_multiply.34': [],\n", - " '$344inplace_add.35': [],\n", - " '$34load_global.15': [],\n", - " '$354return_value.1': [],\n", - " '$42load_global.18': [],\n", - " '$44load_method.19': [],\n", - " '$46load_global.20': [],\n", - " '$4load_attr.1': [],\n", - " '$50call_function.22': [],\n", - " '$58load_method.25': [],\n", - " '$6load_global.2': [],\n", - " '$72build_slice.31': [],\n", - " '$72build_slice.32': [],\n", - " '$74binary_subscr.33': [],\n", - " '$76get_iter.34': [],\n", - " '$78for_iter.1': [],\n", - " '$78for_iter.2': [],\n", - " '$78for_iter.3': [],\n", - " '$const110.13': [],\n", - " '$const158.35': [],\n", - " '$const186.48': [],\n", - " '$const20.9': [],\n", - " '$const214.61': [],\n", - " '$const278.3': [],\n", - " '$const302.14': [],\n", - " '$const326.25': [],\n", - " '$const66.28': [],\n", - " '$const68.29': [],\n", - " '$const70.30': [],\n", - " '$const98.8': [],\n", - " '$phi78.0': [],\n", - " '$phi80.1': [],\n", - " 'betweennesses': [],\n", - " 'bool272': [],\n", - " 'coeff': [],\n", - " 'coeff_len': [],\n", - " 'delta': [],\n", - " 'delta_len': [],\n", - " 'dist_row': [],\n", - " 'dist_w': [],\n", - " 'edge_idx': [],\n", - " 'edge_padding': [],\n", - " 'edges_uv': [],\n", - " 'pre_w': [],\n", - " 'pred_row': [],\n", - " 's_idx': [],\n", - " 's_queue_idx': [],\n", - " 'w_idx': []})\n", - "2023-05-15 11:07:32,570 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:32,581 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4169)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=4169)\n", - " 4\tLOAD_ATTR(arg=1, lineno=4169)\n", - " 6\tLOAD_FAST(arg=0, lineno=4169)\n", - " 8\tLOAD_FAST(arg=1, lineno=4169)\n", - " 10\tLOAD_CONST(arg=1, lineno=4169)\n", - " 12\tCALL_FUNCTION_KW(arg=2, lineno=4169)\n", - " 14\tSTORE_FAST(arg=2, lineno=4169)\n", - " 16\tLOAD_FAST(arg=2, lineno=4170)\n", - " 18\tLOAD_METHOD(arg=2, lineno=4170)\n", - " 20\tCALL_METHOD(arg=0, lineno=4170)\n", - " 22\tPOP_TOP(arg=None, lineno=4170)\n", - " 24\tLOAD_FAST(arg=2, lineno=4171)\n", - " 26\tRETURN_VALUE(arg=None, lineno=4171)\n", - "2023-05-15 11:07:32,582 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:32,582 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:32,583 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4169)\n", - "2023-05-15 11:07:32,583 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,584 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=4169)\n", - "2023-05-15 11:07:32,585 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,585 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_ATTR(arg=1, lineno=4169)\n", - "2023-05-15 11:07:32,586 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:32,586 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=0, lineno=4169)\n", - "2023-05-15 11:07:32,587 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1']\n", - "2023-05-15 11:07:32,587 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_FAST(arg=1, lineno=4169)\n", - "2023-05-15 11:07:32,588 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$shape6.2']\n", - "2023-05-15 11:07:32,589 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_CONST(arg=1, lineno=4169)\n", - "2023-05-15 11:07:32,589 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$shape6.2', '$dtype8.3']\n", - "2023-05-15 11:07:32,593 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=CALL_FUNCTION_KW(arg=2, lineno=4169)\n", - "2023-05-15 11:07:32,593 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$shape6.2', '$dtype8.3', '$const10.4']\n", - "2023-05-15 11:07:32,594 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=STORE_FAST(arg=2, lineno=4169)\n", - "2023-05-15 11:07:32,594 | DEBUG | byteflow.py:279 | stack ['$12call_function_kw.5']\n", - "2023-05-15 11:07:32,595 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=LOAD_FAST(arg=2, lineno=4170)\n", - "2023-05-15 11:07:32,596 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,596 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=LOAD_METHOD(arg=2, lineno=4170)\n", - "2023-05-15 11:07:32,598 | DEBUG | byteflow.py:279 | stack ['$arr16.6']\n", - "2023-05-15 11:07:32,598 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=CALL_METHOD(arg=0, lineno=4170)\n", - "2023-05-15 11:07:32,599 | DEBUG | byteflow.py:279 | stack ['$18load_method.7']\n", - "2023-05-15 11:07:32,599 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=POP_TOP(arg=None, lineno=4170)\n", - "2023-05-15 11:07:32,600 | DEBUG | byteflow.py:279 | stack ['$20call_method.8']\n", - "2023-05-15 11:07:32,600 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=LOAD_FAST(arg=2, lineno=4171)\n", - "2023-05-15 11:07:32,600 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,601 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=RETURN_VALUE(arg=None, lineno=4171)\n", - "2023-05-15 11:07:32,601 | DEBUG | byteflow.py:279 | stack ['$arr24.9']\n", - "2023-05-15 11:07:32,602 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:32,602 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:32,602 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:32,603 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:32,603 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:32,604 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:32,604 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:32,605 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:32,605 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:32,606 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'item': '$2load_global.0', 'res': '$4load_attr.1'}), (6, {'res': '$shape6.2'}), (8, {'res': '$dtype8.3'}), (10, {'res': '$const10.4'}), (12, {'func': '$4load_attr.1', 'args': ['$shape6.2', '$dtype8.3'], 'names': '$const10.4', 'res': '$12call_function_kw.5'}), (14, {'value': '$12call_function_kw.5'}), (16, {'res': '$arr16.6'}), (18, {'item': '$arr16.6', 'res': '$18load_method.7'}), (20, {'func': '$18load_method.7', 'args': [], 'res': '$20call_method.8'}), (24, {'res': '$arr24.9'}), (26, {'retval': '$arr24.9', 'castval': '$26return_value.10'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:32,610 | DEBUG | interpreter.py:1342 | label 0:\n", - " shape = arg(0, name=shape) ['shape']\n", - " dtype = arg(1, name=dtype) ['dtype']\n", - " $2load_global.0 = global(np: ) ['$2load_global.0']\n", - " $4load_attr.1 = getattr(value=$2load_global.0, attr=empty) ['$2load_global.0', '$4load_attr.1']\n", - " arr = call $4load_attr.1(shape, func=$4load_attr.1, args=[Var(shape, arrayobj.py:4169)], kws=[('dtype', Var(dtype, arrayobj.py:4169))], vararg=None, varkwarg=None, target=None) ['$4load_attr.1', 'arr', 'dtype', 'shape']\n", - " $18load_method.7 = getattr(value=arr, attr=_zero_fill) ['$18load_method.7', 'arr']\n", - " $20call_method.8 = call $18load_method.7(func=$18load_method.7, args=[], kws=(), vararg=None, varkwarg=None, target=None) ['$18load_method.7', '$20call_method.8']\n", - " $26return_value.10 = cast(value=arr) ['$26return_value.10', 'arr']\n", - " return $26return_value.10 ['$26return_value.10']\n", - "\n", - "2023-05-15 11:07:32,621 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:32,622 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:32,622 | DEBUG | ssa.py:193 | on stmt: shape = arg(0, name=shape)\n", - "2023-05-15 11:07:32,623 | DEBUG | ssa.py:193 | on stmt: dtype = arg(1, name=dtype)\n", - "2023-05-15 11:07:32,623 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:32,625 | DEBUG | ssa.py:193 | on stmt: $4load_attr.1 = getattr(value=$2load_global.0, attr=empty)\n", - "2023-05-15 11:07:32,626 | DEBUG | ssa.py:193 | on stmt: arr = call $4load_attr.1(shape, func=$4load_attr.1, args=[Var(shape, arrayobj.py:4169)], kws=[('dtype', Var(dtype, arrayobj.py:4169))], vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,626 | DEBUG | ssa.py:193 | on stmt: $18load_method.7 = getattr(value=arr, attr=_zero_fill)\n", - "2023-05-15 11:07:32,627 | DEBUG | ssa.py:193 | on stmt: $20call_method.8 = call $18load_method.7(func=$18load_method.7, args=[], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,627 | DEBUG | ssa.py:193 | on stmt: $26return_value.10 = cast(value=arr)\n", - "2023-05-15 11:07:32,628 | DEBUG | ssa.py:193 | on stmt: return $26return_value.10\n", - "2023-05-15 11:07:32,629 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$18load_method.7': [],\n", - " '$20call_method.8': [],\n", - " '$26return_value.10': [],\n", - " '$2load_global.0': [],\n", - " '$4load_attr.1': [],\n", - " 'arr': [],\n", - " 'dtype': [],\n", - " 'shape': []})\n", - "2023-05-15 11:07:32,630 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:32,636 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4101)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=4101)\n", - " 4\tLOAD_FAST(arg=0, lineno=4101)\n", - " 6\tLOAD_FAST(arg=1, lineno=4101)\n", - " 8\tLOAD_DEREF(arg=0, lineno=4101)\n", - " 10\tCALL_FUNCTION(arg=3, lineno=4101)\n", - " 12\tRETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:32,637 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:32,637 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:32,639 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4101)\n", - "2023-05-15 11:07:32,640 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,641 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=4101)\n", - "2023-05-15 11:07:32,641 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,643 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=4101)\n", - "2023-05-15 11:07:32,643 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:32,644 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=1, lineno=4101)\n", - "2023-05-15 11:07:32,644 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1']\n", - "2023-05-15 11:07:32,645 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_DEREF(arg=0, lineno=4101)\n", - "2023-05-15 11:07:32,645 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2']\n", - "2023-05-15 11:07:32,646 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_FUNCTION(arg=3, lineno=4101)\n", - "2023-05-15 11:07:32,648 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2', '$8load_deref.3']\n", - "2023-05-15 11:07:32,649 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=RETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:32,649 | DEBUG | byteflow.py:279 | stack ['$10call_function.4']\n", - "2023-05-15 11:07:32,649 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:32,650 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:32,650 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:32,651 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:32,651 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:32,652 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:32,652 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:32,652 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:32,653 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:32,654 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$shape4.1'}), (6, {'res': '$dtype6.2'}), (8, {'res': '$8load_deref.3'}), (10, {'func': '$2load_global.0', 'args': ['$shape4.1', '$dtype6.2', '$8load_deref.3'], 'res': '$10call_function.4'}), (12, {'retval': '$10call_function.4', 'castval': '$12return_value.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:32,655 | DEBUG | interpreter.py:1342 | label 0:\n", - " shape = arg(0, name=shape) ['shape']\n", - " dtype = arg(1, name=dtype) ['dtype']\n", - " $2load_global.0 = global(numpy_empty_nd: ) ['$2load_global.0']\n", - " $8load_deref.3 = freevar(retty: array(float64, 2d, C)) ['$8load_deref.3']\n", - " $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None) ['$10call_function.4', '$2load_global.0', '$8load_deref.3', 'dtype', 'shape']\n", - " $12return_value.5 = cast(value=$10call_function.4) ['$10call_function.4', '$12return_value.5']\n", - " return $12return_value.5 ['$12return_value.5']\n", - "\n", - "2023-05-15 11:07:32,664 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:32,665 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:32,665 | DEBUG | ssa.py:193 | on stmt: shape = arg(0, name=shape)\n", - "2023-05-15 11:07:32,666 | DEBUG | ssa.py:193 | on stmt: dtype = arg(1, name=dtype)\n", - "2023-05-15 11:07:32,666 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(numpy_empty_nd: )\n", - "2023-05-15 11:07:32,667 | DEBUG | ssa.py:193 | on stmt: $8load_deref.3 = freevar(retty: array(float64, 2d, C))\n", - "2023-05-15 11:07:32,667 | DEBUG | ssa.py:193 | on stmt: $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,668 | DEBUG | ssa.py:193 | on stmt: $12return_value.5 = cast(value=$10call_function.4)\n", - "2023-05-15 11:07:32,668 | DEBUG | ssa.py:193 | on stmt: return $12return_value.5\n", - "2023-05-15 11:07:32,669 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10call_function.4': [],\n", - " '$12return_value.5': [],\n", - " '$2load_global.0': [],\n", - " '$8load_deref.3': [],\n", - " 'dtype': [],\n", - " 'shape': []})\n", - "2023-05-15 11:07:32,669 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:32,724 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4160)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=4160)\n", - " 4\tLOAD_FAST(arg=0, lineno=4160)\n", - " 6\tCALL_FUNCTION(arg=1, lineno=4160)\n", - " 8\tPOP_TOP(arg=None, lineno=4160)\n", - " 10\tLOAD_CONST(arg=0, lineno=4160)\n", - " 12\tRETURN_VALUE(arg=None, lineno=4160)\n", - "2023-05-15 11:07:32,725 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:32,725 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:32,726 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4160)\n", - "2023-05-15 11:07:32,726 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,727 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=4160)\n", - "2023-05-15 11:07:32,727 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,729 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=4160)\n", - "2023-05-15 11:07:32,730 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:32,731 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=CALL_FUNCTION(arg=1, lineno=4160)\n", - "2023-05-15 11:07:32,731 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$self4.1']\n", - "2023-05-15 11:07:32,733 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=POP_TOP(arg=None, lineno=4160)\n", - "2023-05-15 11:07:32,733 | DEBUG | byteflow.py:279 | stack ['$6call_function.2']\n", - "2023-05-15 11:07:32,734 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_CONST(arg=0, lineno=4160)\n", - "2023-05-15 11:07:32,734 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,735 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=RETURN_VALUE(arg=None, lineno=4160)\n", - "2023-05-15 11:07:32,736 | DEBUG | byteflow.py:279 | stack ['$const10.3']\n", - "2023-05-15 11:07:32,736 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:32,737 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:32,737 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:32,738 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:32,738 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:32,739 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:32,739 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:32,740 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:32,740 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:32,741 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$self4.1'}), (6, {'func': '$2load_global.0', 'args': ['$self4.1'], 'res': '$6call_function.2'}), (10, {'res': '$const10.3'}), (12, {'retval': '$const10.3', 'castval': '$12return_value.4'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:32,742 | DEBUG | interpreter.py:1342 | label 0:\n", - " self = arg(0, name=self) ['self']\n", - " $2load_global.0 = global(_zero_fill_array_method: ) ['$2load_global.0']\n", - " $6call_function.2 = call $2load_global.0(self, func=$2load_global.0, args=[Var(self, arrayobj.py:4160)], kws=(), vararg=None, varkwarg=None, target=None) ['$2load_global.0', '$6call_function.2', 'self']\n", - " $const10.3 = const(NoneType, None) ['$const10.3']\n", - " $12return_value.4 = cast(value=$const10.3) ['$12return_value.4', '$const10.3']\n", - " return $12return_value.4 ['$12return_value.4']\n", - "\n", - "2023-05-15 11:07:32,747 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:32,747 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:32,748 | DEBUG | ssa.py:193 | on stmt: self = arg(0, name=self)\n", - "2023-05-15 11:07:32,748 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(_zero_fill_array_method: )\n", - "2023-05-15 11:07:32,751 | DEBUG | ssa.py:193 | on stmt: $6call_function.2 = call $2load_global.0(self, func=$2load_global.0, args=[Var(self, arrayobj.py:4160)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,752 | DEBUG | ssa.py:193 | on stmt: $const10.3 = const(NoneType, None)\n", - "2023-05-15 11:07:32,753 | DEBUG | ssa.py:193 | on stmt: $12return_value.4 = cast(value=$const10.3)\n", - "2023-05-15 11:07:32,753 | DEBUG | ssa.py:193 | on stmt: return $12return_value.4\n", - "2023-05-15 11:07:32,754 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$12return_value.4': [],\n", - " '$2load_global.0': [],\n", - " '$6call_function.2': [],\n", - " '$const10.3': [],\n", - " 'self': []})\n", - "2023-05-15 11:07:32,755 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:32,824 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4169)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=4169)\n", - " 4\tLOAD_ATTR(arg=1, lineno=4169)\n", - " 6\tLOAD_FAST(arg=0, lineno=4169)\n", - " 8\tLOAD_FAST(arg=1, lineno=4169)\n", - " 10\tLOAD_CONST(arg=1, lineno=4169)\n", - " 12\tCALL_FUNCTION_KW(arg=2, lineno=4169)\n", - " 14\tSTORE_FAST(arg=2, lineno=4169)\n", - " 16\tLOAD_FAST(arg=2, lineno=4170)\n", - " 18\tLOAD_METHOD(arg=2, lineno=4170)\n", - " 20\tCALL_METHOD(arg=0, lineno=4170)\n", - " 22\tPOP_TOP(arg=None, lineno=4170)\n", - " 24\tLOAD_FAST(arg=2, lineno=4171)\n", - " 26\tRETURN_VALUE(arg=None, lineno=4171)\n", - "2023-05-15 11:07:32,824 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:32,825 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:32,826 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4169)\n", - "2023-05-15 11:07:32,826 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,827 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=4169)\n", - "2023-05-15 11:07:32,827 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,828 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_ATTR(arg=1, lineno=4169)\n", - "2023-05-15 11:07:32,828 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:32,828 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=0, lineno=4169)\n", - "2023-05-15 11:07:32,829 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1']\n", - "2023-05-15 11:07:32,829 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_FAST(arg=1, lineno=4169)\n", - "2023-05-15 11:07:32,830 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$shape6.2']\n", - "2023-05-15 11:07:32,830 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_CONST(arg=1, lineno=4169)\n", - "2023-05-15 11:07:32,831 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$shape6.2', '$dtype8.3']\n", - "2023-05-15 11:07:32,831 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=CALL_FUNCTION_KW(arg=2, lineno=4169)\n", - "2023-05-15 11:07:32,832 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$shape6.2', '$dtype8.3', '$const10.4']\n", - "2023-05-15 11:07:32,832 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=STORE_FAST(arg=2, lineno=4169)\n", - "2023-05-15 11:07:32,833 | DEBUG | byteflow.py:279 | stack ['$12call_function_kw.5']\n", - "2023-05-15 11:07:32,833 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=LOAD_FAST(arg=2, lineno=4170)\n", - "2023-05-15 11:07:32,834 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,834 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=LOAD_METHOD(arg=2, lineno=4170)\n", - "2023-05-15 11:07:32,835 | DEBUG | byteflow.py:279 | stack ['$arr16.6']\n", - "2023-05-15 11:07:32,836 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=CALL_METHOD(arg=0, lineno=4170)\n", - "2023-05-15 11:07:32,836 | DEBUG | byteflow.py:279 | stack ['$18load_method.7']\n", - "2023-05-15 11:07:32,837 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=POP_TOP(arg=None, lineno=4170)\n", - "2023-05-15 11:07:32,837 | DEBUG | byteflow.py:279 | stack ['$20call_method.8']\n", - "2023-05-15 11:07:32,838 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=LOAD_FAST(arg=2, lineno=4171)\n", - "2023-05-15 11:07:32,843 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,843 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=RETURN_VALUE(arg=None, lineno=4171)\n", - "2023-05-15 11:07:32,843 | DEBUG | byteflow.py:279 | stack ['$arr24.9']\n", - "2023-05-15 11:07:32,844 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:32,845 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:32,845 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:32,845 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:32,846 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:32,847 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:32,847 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:32,848 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:32,848 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:32,849 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'item': '$2load_global.0', 'res': '$4load_attr.1'}), (6, {'res': '$shape6.2'}), (8, {'res': '$dtype8.3'}), (10, {'res': '$const10.4'}), (12, {'func': '$4load_attr.1', 'args': ['$shape6.2', '$dtype8.3'], 'names': '$const10.4', 'res': '$12call_function_kw.5'}), (14, {'value': '$12call_function_kw.5'}), (16, {'res': '$arr16.6'}), (18, {'item': '$arr16.6', 'res': '$18load_method.7'}), (20, {'func': '$18load_method.7', 'args': [], 'res': '$20call_method.8'}), (24, {'res': '$arr24.9'}), (26, {'retval': '$arr24.9', 'castval': '$26return_value.10'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:32,850 | DEBUG | interpreter.py:1342 | label 0:\n", - " shape = arg(0, name=shape) ['shape']\n", - " dtype = arg(1, name=dtype) ['dtype']\n", - " $2load_global.0 = global(np: ) ['$2load_global.0']\n", - " $4load_attr.1 = getattr(value=$2load_global.0, attr=empty) ['$2load_global.0', '$4load_attr.1']\n", - " arr = call $4load_attr.1(shape, func=$4load_attr.1, args=[Var(shape, arrayobj.py:4169)], kws=[('dtype', Var(dtype, arrayobj.py:4169))], vararg=None, varkwarg=None, target=None) ['$4load_attr.1', 'arr', 'dtype', 'shape']\n", - " $18load_method.7 = getattr(value=arr, attr=_zero_fill) ['$18load_method.7', 'arr']\n", - " $20call_method.8 = call $18load_method.7(func=$18load_method.7, args=[], kws=(), vararg=None, varkwarg=None, target=None) ['$18load_method.7', '$20call_method.8']\n", - " $26return_value.10 = cast(value=arr) ['$26return_value.10', 'arr']\n", - " return $26return_value.10 ['$26return_value.10']\n", - "\n", - "2023-05-15 11:07:32,856 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:32,857 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:32,859 | DEBUG | ssa.py:193 | on stmt: shape = arg(0, name=shape)\n", - "2023-05-15 11:07:32,860 | DEBUG | ssa.py:193 | on stmt: dtype = arg(1, name=dtype)\n", - "2023-05-15 11:07:32,860 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:32,861 | DEBUG | ssa.py:193 | on stmt: $4load_attr.1 = getattr(value=$2load_global.0, attr=empty)\n", - "2023-05-15 11:07:32,862 | DEBUG | ssa.py:193 | on stmt: arr = call $4load_attr.1(shape, func=$4load_attr.1, args=[Var(shape, arrayobj.py:4169)], kws=[('dtype', Var(dtype, arrayobj.py:4169))], vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,863 | DEBUG | ssa.py:193 | on stmt: $18load_method.7 = getattr(value=arr, attr=_zero_fill)\n", - "2023-05-15 11:07:32,863 | DEBUG | ssa.py:193 | on stmt: $20call_method.8 = call $18load_method.7(func=$18load_method.7, args=[], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,864 | DEBUG | ssa.py:193 | on stmt: $26return_value.10 = cast(value=arr)\n", - "2023-05-15 11:07:32,864 | DEBUG | ssa.py:193 | on stmt: return $26return_value.10\n", - "2023-05-15 11:07:32,866 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$18load_method.7': [],\n", - " '$20call_method.8': [],\n", - " '$26return_value.10': [],\n", - " '$2load_global.0': [],\n", - " '$4load_attr.1': [],\n", - " 'arr': [],\n", - " 'dtype': [],\n", - " 'shape': []})\n", - "2023-05-15 11:07:32,866 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:32,870 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4101)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=4101)\n", - " 4\tLOAD_FAST(arg=0, lineno=4101)\n", - " 6\tLOAD_FAST(arg=1, lineno=4101)\n", - " 8\tLOAD_DEREF(arg=0, lineno=4101)\n", - " 10\tCALL_FUNCTION(arg=3, lineno=4101)\n", - " 12\tRETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:32,870 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:32,870 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:32,871 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4101)\n", - "2023-05-15 11:07:32,871 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,872 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=4101)\n", - "2023-05-15 11:07:32,872 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,872 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=4101)\n", - "2023-05-15 11:07:32,873 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:32,874 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=1, lineno=4101)\n", - "2023-05-15 11:07:32,874 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1']\n", - "2023-05-15 11:07:32,875 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_DEREF(arg=0, lineno=4101)\n", - "2023-05-15 11:07:32,875 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2']\n", - "2023-05-15 11:07:32,876 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_FUNCTION(arg=3, lineno=4101)\n", - "2023-05-15 11:07:32,876 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2', '$8load_deref.3']\n", - "2023-05-15 11:07:32,877 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=RETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:32,877 | DEBUG | byteflow.py:279 | stack ['$10call_function.4']\n", - "2023-05-15 11:07:32,878 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:32,878 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:32,879 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:32,879 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:32,880 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:32,880 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:32,881 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:32,881 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:32,881 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:32,882 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$shape4.1'}), (6, {'res': '$dtype6.2'}), (8, {'res': '$8load_deref.3'}), (10, {'func': '$2load_global.0', 'args': ['$shape4.1', '$dtype6.2', '$8load_deref.3'], 'res': '$10call_function.4'}), (12, {'retval': '$10call_function.4', 'castval': '$12return_value.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:32,883 | DEBUG | interpreter.py:1342 | label 0:\n", - " shape = arg(0, name=shape) ['shape']\n", - " dtype = arg(1, name=dtype) ['dtype']\n", - " $2load_global.0 = global(numpy_empty_nd: ) ['$2load_global.0']\n", - " $8load_deref.3 = freevar(retty: array(float64, 1d, C)) ['$8load_deref.3']\n", - " $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None) ['$10call_function.4', '$2load_global.0', '$8load_deref.3', 'dtype', 'shape']\n", - " $12return_value.5 = cast(value=$10call_function.4) ['$10call_function.4', '$12return_value.5']\n", - " return $12return_value.5 ['$12return_value.5']\n", - "\n", - "2023-05-15 11:07:32,888 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:32,889 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:32,889 | DEBUG | ssa.py:193 | on stmt: shape = arg(0, name=shape)\n", - "2023-05-15 11:07:32,890 | DEBUG | ssa.py:193 | on stmt: dtype = arg(1, name=dtype)\n", - "2023-05-15 11:07:32,891 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(numpy_empty_nd: )\n", - "2023-05-15 11:07:32,891 | DEBUG | ssa.py:193 | on stmt: $8load_deref.3 = freevar(retty: array(float64, 1d, C))\n", - "2023-05-15 11:07:32,892 | DEBUG | ssa.py:193 | on stmt: $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,892 | DEBUG | ssa.py:193 | on stmt: $12return_value.5 = cast(value=$10call_function.4)\n", - "2023-05-15 11:07:32,893 | DEBUG | ssa.py:193 | on stmt: return $12return_value.5\n", - "2023-05-15 11:07:32,894 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10call_function.4': [],\n", - " '$12return_value.5': [],\n", - " '$2load_global.0': [],\n", - " '$8load_deref.3': [],\n", - " 'dtype': [],\n", - " 'shape': []})\n", - "2023-05-15 11:07:32,894 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:32,946 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4160)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=4160)\n", - " 4\tLOAD_FAST(arg=0, lineno=4160)\n", - " 6\tCALL_FUNCTION(arg=1, lineno=4160)\n", - " 8\tPOP_TOP(arg=None, lineno=4160)\n", - " 10\tLOAD_CONST(arg=0, lineno=4160)\n", - " 12\tRETURN_VALUE(arg=None, lineno=4160)\n", - "2023-05-15 11:07:32,947 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:32,947 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:32,948 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4160)\n", - "2023-05-15 11:07:32,948 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,949 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=4160)\n", - "2023-05-15 11:07:32,949 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,950 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=4160)\n", - "2023-05-15 11:07:32,951 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:32,952 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=CALL_FUNCTION(arg=1, lineno=4160)\n", - "2023-05-15 11:07:32,952 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$self4.1']\n", - "2023-05-15 11:07:32,952 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=POP_TOP(arg=None, lineno=4160)\n", - "2023-05-15 11:07:32,953 | DEBUG | byteflow.py:279 | stack ['$6call_function.2']\n", - "2023-05-15 11:07:32,953 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_CONST(arg=0, lineno=4160)\n", - "2023-05-15 11:07:32,954 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:32,954 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=RETURN_VALUE(arg=None, lineno=4160)\n", - "2023-05-15 11:07:32,955 | DEBUG | byteflow.py:279 | stack ['$const10.3']\n", - "2023-05-15 11:07:32,955 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:32,956 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:32,957 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:32,958 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:32,958 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:32,959 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:32,959 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:32,959 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:32,960 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:32,960 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$self4.1'}), (6, {'func': '$2load_global.0', 'args': ['$self4.1'], 'res': '$6call_function.2'}), (10, {'res': '$const10.3'}), (12, {'retval': '$const10.3', 'castval': '$12return_value.4'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:32,962 | DEBUG | interpreter.py:1342 | label 0:\n", - " self = arg(0, name=self) ['self']\n", - " $2load_global.0 = global(_zero_fill_array_method: ) ['$2load_global.0']\n", - " $6call_function.2 = call $2load_global.0(self, func=$2load_global.0, args=[Var(self, arrayobj.py:4160)], kws=(), vararg=None, varkwarg=None, target=None) ['$2load_global.0', '$6call_function.2', 'self']\n", - " $const10.3 = const(NoneType, None) ['$const10.3']\n", - " $12return_value.4 = cast(value=$const10.3) ['$12return_value.4', '$const10.3']\n", - " return $12return_value.4 ['$12return_value.4']\n", - "\n", - "2023-05-15 11:07:32,969 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:32,969 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:32,970 | DEBUG | ssa.py:193 | on stmt: self = arg(0, name=self)\n", - "2023-05-15 11:07:32,970 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(_zero_fill_array_method: )\n", - "2023-05-15 11:07:32,971 | DEBUG | ssa.py:193 | on stmt: $6call_function.2 = call $2load_global.0(self, func=$2load_global.0, args=[Var(self, arrayobj.py:4160)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:32,971 | DEBUG | ssa.py:193 | on stmt: $const10.3 = const(NoneType, None)\n", - "2023-05-15 11:07:32,972 | DEBUG | ssa.py:193 | on stmt: $12return_value.4 = cast(value=$const10.3)\n", - "2023-05-15 11:07:32,973 | DEBUG | ssa.py:193 | on stmt: return $12return_value.4\n", - "2023-05-15 11:07:32,974 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$12return_value.4': [],\n", - " '$2load_global.0': [],\n", - " '$6call_function.2': [],\n", - " '$const10.3': [],\n", - " 'self': []})\n", - "2023-05-15 11:07:32,974 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:33,042 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=3933)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=3933)\n", - " 4\tLOAD_FAST(arg=0, lineno=3933)\n", - " 6\tCALL_FUNCTION(arg=1, lineno=3933)\n", - " 8\tSTORE_FAST(arg=3, lineno=3933)\n", - " 10\tLOAD_DEREF(arg=0, lineno=3934)\n", - " 12\tLOAD_FAST(arg=0, lineno=3934)\n", - " 14\tLOAD_FAST(arg=1, lineno=3934)\n", - " 16\tLOAD_FAST(arg=1, lineno=3934)\n", - " 18\tLOAD_CONST(arg=1, lineno=3934)\n", - " 20\tLOAD_FAST(arg=3, lineno=3934)\n", - " 22\tLOAD_FAST(arg=3, lineno=3934)\n", - " 24\tCALL_FUNCTION(arg=6, lineno=3934)\n", - " 26\tRETURN_VALUE(arg=None, lineno=3934)\n", - "2023-05-15 11:07:33,043 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:33,043 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,044 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=3933)\n", - "2023-05-15 11:07:33,044 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,045 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=3933)\n", - "2023-05-15 11:07:33,045 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,046 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=3933)\n", - "2023-05-15 11:07:33,046 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:33,047 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=CALL_FUNCTION(arg=1, lineno=3933)\n", - "2023-05-15 11:07:33,047 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$a4.1']\n", - "2023-05-15 11:07:33,047 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=STORE_FAST(arg=3, lineno=3933)\n", - "2023-05-15 11:07:33,048 | DEBUG | byteflow.py:279 | stack ['$6call_function.2']\n", - "2023-05-15 11:07:33,048 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_DEREF(arg=0, lineno=3934)\n", - "2023-05-15 11:07:33,049 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,050 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=LOAD_FAST(arg=0, lineno=3934)\n", - "2023-05-15 11:07:33,050 | DEBUG | byteflow.py:279 | stack ['$10load_deref.3']\n", - "2023-05-15 11:07:33,051 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=LOAD_FAST(arg=1, lineno=3934)\n", - "2023-05-15 11:07:33,051 | DEBUG | byteflow.py:279 | stack ['$10load_deref.3', '$a12.4']\n", - "2023-05-15 11:07:33,052 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=LOAD_FAST(arg=1, lineno=3934)\n", - "2023-05-15 11:07:33,052 | DEBUG | byteflow.py:279 | stack ['$10load_deref.3', '$a12.4', '$v14.5']\n", - "2023-05-15 11:07:33,053 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=LOAD_CONST(arg=1, lineno=3934)\n", - "2023-05-15 11:07:33,054 | DEBUG | byteflow.py:279 | stack ['$10load_deref.3', '$a12.4', '$v14.5', '$v16.6']\n", - "2023-05-15 11:07:33,054 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=LOAD_FAST(arg=3, lineno=3934)\n", - "2023-05-15 11:07:33,055 | DEBUG | byteflow.py:279 | stack ['$10load_deref.3', '$a12.4', '$v14.5', '$v16.6', '$const18.7']\n", - "2023-05-15 11:07:33,055 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=LOAD_FAST(arg=3, lineno=3934)\n", - "2023-05-15 11:07:33,055 | DEBUG | byteflow.py:279 | stack ['$10load_deref.3', '$a12.4', '$v14.5', '$v16.6', '$const18.7', '$n20.8']\n", - "2023-05-15 11:07:33,056 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=CALL_FUNCTION(arg=6, lineno=3934)\n", - "2023-05-15 11:07:33,056 | DEBUG | byteflow.py:279 | stack ['$10load_deref.3', '$a12.4', '$v14.5', '$v16.6', '$const18.7', '$n20.8', '$n22.9']\n", - "2023-05-15 11:07:33,057 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=RETURN_VALUE(arg=None, lineno=3934)\n", - "2023-05-15 11:07:33,057 | DEBUG | byteflow.py:279 | stack ['$24call_function.10']\n", - "2023-05-15 11:07:33,058 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:33,058 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:33,059 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:33,059 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:33,060 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:33,060 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:33,061 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:33,061 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:33,061 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:33,062 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$a4.1'}), (6, {'func': '$2load_global.0', 'args': ['$a4.1'], 'res': '$6call_function.2'}), (8, {'value': '$6call_function.2'}), (10, {'res': '$10load_deref.3'}), (12, {'res': '$a12.4'}), (14, {'res': '$v14.5'}), (16, {'res': '$v16.6'}), (18, {'res': '$const18.7'}), (20, {'res': '$n20.8'}), (22, {'res': '$n22.9'}), (24, {'func': '$10load_deref.3', 'args': ['$a12.4', '$v14.5', '$v16.6', '$const18.7', '$n20.8', '$n22.9'], 'res': '$24call_function.10'}), (26, {'retval': '$24call_function.10', 'castval': '$26return_value.11'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:33,063 | DEBUG | interpreter.py:1342 | label 0:\n", - " a = arg(0, name=a) ['a']\n", - " v = arg(1, name=v) ['v']\n", - " side = arg(2, name=side) ['side']\n", - " $2load_global.0 = global(len: ) ['$2load_global.0']\n", - " n = call $2load_global.0(a, func=$2load_global.0, args=[Var(a, arraymath.py:3933)], kws=(), vararg=None, varkwarg=None, target=None) ['$2load_global.0', 'a', 'n']\n", - " $10load_deref.3 = freevar(loop_impl: .searchsorted_inner at 0x7ff8dc172320>) ['$10load_deref.3']\n", - " $const18.7 = const(int, 0) ['$const18.7']\n", - " $24call_function.10 = call $10load_deref.3(a, v, v, $const18.7, n, n, func=$10load_deref.3, args=[Var(a, arraymath.py:3933), Var(v, arraymath.py:3933), Var(v, arraymath.py:3933), Var($const18.7, arraymath.py:3934), Var(n, arraymath.py:3933), Var(n, arraymath.py:3933)], kws=(), vararg=None, varkwarg=None, target=None) ['$10load_deref.3', '$24call_function.10', '$const18.7', 'a', 'n', 'n', 'v', 'v']\n", - " $26return_value.11 = cast(value=$24call_function.10) ['$24call_function.10', '$26return_value.11']\n", - " return $26return_value.11 ['$26return_value.11']\n", - "\n", - "2023-05-15 11:07:33,067 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:33,068 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,068 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:33,069 | DEBUG | ssa.py:193 | on stmt: v = arg(1, name=v)\n", - "2023-05-15 11:07:33,069 | DEBUG | ssa.py:193 | on stmt: side = arg(2, name=side)\n", - "2023-05-15 11:07:33,069 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(len: )\n", - "2023-05-15 11:07:33,070 | DEBUG | ssa.py:193 | on stmt: n = call $2load_global.0(a, func=$2load_global.0, args=[Var(a, arraymath.py:3933)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,070 | DEBUG | ssa.py:193 | on stmt: $10load_deref.3 = freevar(loop_impl: .searchsorted_inner at 0x7ff8dc172320>)\n", - "2023-05-15 11:07:33,071 | DEBUG | ssa.py:193 | on stmt: $const18.7 = const(int, 0)\n", - "2023-05-15 11:07:33,071 | DEBUG | ssa.py:193 | on stmt: $24call_function.10 = call $10load_deref.3(a, v, v, $const18.7, n, n, func=$10load_deref.3, args=[Var(a, arraymath.py:3933), Var(v, arraymath.py:3933), Var(v, arraymath.py:3933), Var($const18.7, arraymath.py:3934), Var(n, arraymath.py:3933), Var(n, arraymath.py:3933)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,071 | DEBUG | ssa.py:193 | on stmt: $26return_value.11 = cast(value=$24call_function.10)\n", - "2023-05-15 11:07:33,072 | DEBUG | ssa.py:193 | on stmt: return $26return_value.11\n", - "2023-05-15 11:07:33,072 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10load_deref.3': [],\n", - " '$24call_function.10': [],\n", - " '$26return_value.11': [],\n", - " '$2load_global.0': [],\n", - " '$const18.7': [],\n", - " 'a': [],\n", - " 'n': [],\n", - " 'side': [],\n", - " 'v': []})\n", - "2023-05-15 11:07:33,073 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:33,078 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=3860)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=3860)\n", - " 4\tLOAD_METHOD(arg=1, lineno=3860)\n", - " 6\tLOAD_FAST(arg=1, lineno=3860)\n", - " 8\tCALL_METHOD(arg=1, lineno=3860)\n", - " 10\tPOP_JUMP_IF_FALSE(arg=31, lineno=3860)\n", - " 12\tLOAD_GLOBAL(arg=2, lineno=3863)\n", - " 14\tLOAD_FAST(arg=5, lineno=3863)\n", - " 16\tLOAD_CONST(arg=1, lineno=3863)\n", - " 18\tLOAD_CONST(arg=2, lineno=3863)\n", - " 20\tCALL_FUNCTION(arg=3, lineno=3863)\n", - " 22\tGET_ITER(arg=None, lineno=3863)\n", - "> 24\tFOR_ITER(arg=15, lineno=3863)\n", - " 26\tSTORE_FAST(arg=6, lineno=3863)\n", - " 28\tLOAD_GLOBAL(arg=0, lineno=3864)\n", - " 30\tLOAD_METHOD(arg=1, lineno=3864)\n", - " 32\tLOAD_FAST(arg=0, lineno=3864)\n", - " 34\tLOAD_FAST(arg=6, lineno=3864)\n", - " 36\tLOAD_CONST(arg=3, lineno=3864)\n", - " 38\tBINARY_SUBTRACT(arg=None, lineno=3864)\n", - " 40\tBINARY_SUBSCR(arg=None, lineno=3864)\n", - " 42\tCALL_METHOD(arg=1, lineno=3864)\n", - " 44\tPOP_JUMP_IF_TRUE(arg=28, lineno=3864)\n", - " 46\tLOAD_FAST(arg=6, lineno=3865)\n", - " 48\tROT_TWO(arg=None, lineno=3865)\n", - " 50\tPOP_TOP(arg=None, lineno=3865)\n", - " 52\tRETURN_VALUE(arg=None, lineno=3865)\n", - "> 54\tJUMP_ABSOLUTE(arg=13, lineno=3864)\n", - "> 56\tLOAD_CONST(arg=1, lineno=3866)\n", - " 58\tRETURN_VALUE(arg=None, lineno=3866)\n", - "> 60\tLOAD_FAST(arg=2, lineno=3868)\n", - " 62\tLOAD_FAST(arg=1, lineno=3868)\n", - " 64\tCOMPARE_OP(arg=0, lineno=3868)\n", - " 66\tPOP_JUMP_IF_FALSE(arg=38, lineno=3868)\n", - " 68\tLOAD_FAST(arg=5, lineno=3869)\n", - " 70\tSTORE_FAST(arg=4, lineno=3869)\n", - " 72\tJUMP_FORWARD(arg=12, lineno=3869)\n", - "> 74\tLOAD_CONST(arg=1, lineno=3871)\n", - " 76\tSTORE_FAST(arg=3, lineno=3871)\n", - " 78\tLOAD_FAST(arg=4, lineno=3872)\n", - " 80\tLOAD_FAST(arg=5, lineno=3872)\n", - " 82\tCOMPARE_OP(arg=0, lineno=3872)\n", - " 84\tPOP_JUMP_IF_FALSE(arg=48, lineno=3872)\n", - " 86\tLOAD_FAST(arg=4, lineno=3872)\n", - " 88\tLOAD_CONST(arg=3, lineno=3872)\n", - " 90\tBINARY_ADD(arg=None, lineno=3872)\n", - " 92\tJUMP_FORWARD(arg=1, lineno=3872)\n", - "> 94\tLOAD_FAST(arg=5, lineno=3872)\n", - "> 96\tSTORE_FAST(arg=4, lineno=3872)\n", - "> 98\tLOAD_FAST(arg=4, lineno=3874)\n", - " 100\tLOAD_FAST(arg=3, lineno=3874)\n", - " 102\tCOMPARE_OP(arg=4, lineno=3874)\n", - " 104\tPOP_JUMP_IF_FALSE(arg=78, lineno=3874)\n", - "> 106\tLOAD_FAST(arg=3, lineno=3875)\n", - " 108\tLOAD_FAST(arg=4, lineno=3875)\n", - " 110\tBINARY_ADD(arg=None, lineno=3875)\n", - " 112\tLOAD_CONST(arg=3, lineno=3875)\n", - " 114\tBINARY_RSHIFT(arg=None, lineno=3875)\n", - " 116\tSTORE_FAST(arg=7, lineno=3875)\n", - " 118\tLOAD_DEREF(arg=0, lineno=3876)\n", - " 120\tLOAD_FAST(arg=0, lineno=3876)\n", - " 122\tLOAD_FAST(arg=7, lineno=3876)\n", - " 124\tBINARY_SUBSCR(arg=None, lineno=3876)\n", - " 126\tLOAD_FAST(arg=1, lineno=3876)\n", - " 128\tCALL_FUNCTION(arg=2, lineno=3876)\n", - " 130\tPOP_JUMP_IF_FALSE(arg=72, lineno=3876)\n", - " 132\tLOAD_FAST(arg=7, lineno=3878)\n", - " 134\tLOAD_CONST(arg=3, lineno=3878)\n", - " 136\tBINARY_ADD(arg=None, lineno=3878)\n", - " 138\tSTORE_FAST(arg=3, lineno=3878)\n", - " 140\tJUMP_FORWARD(arg=2, lineno=3878)\n", - "> 142\tLOAD_FAST(arg=7, lineno=3881)\n", - " 144\tSTORE_FAST(arg=4, lineno=3881)\n", - "> 146\tLOAD_FAST(arg=4, lineno=3874)\n", - " 148\tLOAD_FAST(arg=3, lineno=3874)\n", - " 150\tCOMPARE_OP(arg=4, lineno=3874)\n", - " 152\tPOP_JUMP_IF_TRUE(arg=54, lineno=3874)\n", - "> 154\tLOAD_FAST(arg=3, lineno=3882)\n", - " 156\tRETURN_VALUE(arg=None, lineno=3882)\n", - "2023-05-15 11:07:33,078 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:33,079 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,079 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=3860)\n", - "2023-05-15 11:07:33,080 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,084 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=3860)\n", - "2023-05-15 11:07:33,084 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,085 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_METHOD(arg=1, lineno=3860)\n", - "2023-05-15 11:07:33,085 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:33,086 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=1, lineno=3860)\n", - "2023-05-15 11:07:33,086 | DEBUG | byteflow.py:279 | stack ['$4load_method.1']\n", - "2023-05-15 11:07:33,087 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=CALL_METHOD(arg=1, lineno=3860)\n", - "2023-05-15 11:07:33,087 | DEBUG | byteflow.py:279 | stack ['$4load_method.1', '$v6.2']\n", - "2023-05-15 11:07:33,088 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=POP_JUMP_IF_FALSE(arg=31, lineno=3860)\n", - "2023-05-15 11:07:33,088 | DEBUG | byteflow.py:279 | stack ['$8call_method.3']\n", - "2023-05-15 11:07:33,089 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=12, stack=(), blockstack=(), npush=0), Edge(pc=60, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,089 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=12 nstack_initial=0), State(pc_initial=60 nstack_initial=0)])\n", - "2023-05-15 11:07:33,089 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,090 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=LOAD_GLOBAL(arg=2, lineno=3863)\n", - "2023-05-15 11:07:33,090 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,090 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=LOAD_FAST(arg=5, lineno=3863)\n", - "2023-05-15 11:07:33,091 | DEBUG | byteflow.py:279 | stack ['$12load_global.0']\n", - "2023-05-15 11:07:33,091 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=LOAD_CONST(arg=1, lineno=3863)\n", - "2023-05-15 11:07:33,092 | DEBUG | byteflow.py:279 | stack ['$12load_global.0', '$n14.1']\n", - "2023-05-15 11:07:33,092 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=LOAD_CONST(arg=2, lineno=3863)\n", - "2023-05-15 11:07:33,093 | DEBUG | byteflow.py:279 | stack ['$12load_global.0', '$n14.1', '$const16.2']\n", - "2023-05-15 11:07:33,093 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=CALL_FUNCTION(arg=3, lineno=3863)\n", - "2023-05-15 11:07:33,093 | DEBUG | byteflow.py:279 | stack ['$12load_global.0', '$n14.1', '$const16.2', '$const18.3']\n", - "2023-05-15 11:07:33,094 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=GET_ITER(arg=None, lineno=3863)\n", - "2023-05-15 11:07:33,096 | DEBUG | byteflow.py:279 | stack ['$20call_function.4']\n", - "2023-05-15 11:07:33,096 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=24, stack=('$22get_iter.5',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,096 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=60 nstack_initial=0), State(pc_initial=24 nstack_initial=1)])\n", - "2023-05-15 11:07:33,097 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,097 | DEBUG | byteflow.py:278 | dispatch pc=60, inst=LOAD_FAST(arg=2, lineno=3868)\n", - "2023-05-15 11:07:33,098 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,098 | DEBUG | byteflow.py:278 | dispatch pc=62, inst=LOAD_FAST(arg=1, lineno=3868)\n", - "2023-05-15 11:07:33,099 | DEBUG | byteflow.py:279 | stack ['$v_last60.0']\n", - "2023-05-15 11:07:33,100 | DEBUG | byteflow.py:278 | dispatch pc=64, inst=COMPARE_OP(arg=0, lineno=3868)\n", - "2023-05-15 11:07:33,100 | DEBUG | byteflow.py:279 | stack ['$v_last60.0', '$v62.1']\n", - "2023-05-15 11:07:33,100 | DEBUG | byteflow.py:278 | dispatch pc=66, inst=POP_JUMP_IF_FALSE(arg=38, lineno=3868)\n", - "2023-05-15 11:07:33,101 | DEBUG | byteflow.py:279 | stack ['$64compare_op.2']\n", - "2023-05-15 11:07:33,101 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=68, stack=(), blockstack=(), npush=0), Edge(pc=74, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,102 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=24 nstack_initial=1), State(pc_initial=68 nstack_initial=0), State(pc_initial=74 nstack_initial=0)])\n", - "2023-05-15 11:07:33,102 | DEBUG | byteflow.py:103 | stack: ['$phi24.0']\n", - "2023-05-15 11:07:33,103 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=FOR_ITER(arg=15, lineno=3863)\n", - "2023-05-15 11:07:33,103 | DEBUG | byteflow.py:279 | stack ['$phi24.0']\n", - "2023-05-15 11:07:33,103 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=56, stack=(), blockstack=(), npush=0), Edge(pc=26, stack=('$phi24.0', '$24for_iter.2'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,104 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=68 nstack_initial=0), State(pc_initial=74 nstack_initial=0), State(pc_initial=56 nstack_initial=0), State(pc_initial=26 nstack_initial=2)])\n", - "2023-05-15 11:07:33,106 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,106 | DEBUG | byteflow.py:278 | dispatch pc=68, inst=LOAD_FAST(arg=5, lineno=3869)\n", - "2023-05-15 11:07:33,107 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,107 | DEBUG | byteflow.py:278 | dispatch pc=70, inst=STORE_FAST(arg=4, lineno=3869)\n", - "2023-05-15 11:07:33,108 | DEBUG | byteflow.py:279 | stack ['$n68.0']\n", - "2023-05-15 11:07:33,108 | DEBUG | byteflow.py:278 | dispatch pc=72, inst=JUMP_FORWARD(arg=12, lineno=3869)\n", - "2023-05-15 11:07:33,109 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,110 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=98, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,110 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=74 nstack_initial=0), State(pc_initial=56 nstack_initial=0), State(pc_initial=26 nstack_initial=2), State(pc_initial=98 nstack_initial=0)])\n", - "2023-05-15 11:07:33,110 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,111 | DEBUG | byteflow.py:278 | dispatch pc=74, inst=LOAD_CONST(arg=1, lineno=3871)\n", - "2023-05-15 11:07:33,111 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,112 | DEBUG | byteflow.py:278 | dispatch pc=76, inst=STORE_FAST(arg=3, lineno=3871)\n", - "2023-05-15 11:07:33,112 | DEBUG | byteflow.py:279 | stack ['$const74.0']\n", - "2023-05-15 11:07:33,113 | DEBUG | byteflow.py:278 | dispatch pc=78, inst=LOAD_FAST(arg=4, lineno=3872)\n", - "2023-05-15 11:07:33,113 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,113 | DEBUG | byteflow.py:278 | dispatch pc=80, inst=LOAD_FAST(arg=5, lineno=3872)\n", - "2023-05-15 11:07:33,114 | DEBUG | byteflow.py:279 | stack ['$hi78.1']\n", - "2023-05-15 11:07:33,115 | DEBUG | byteflow.py:278 | dispatch pc=82, inst=COMPARE_OP(arg=0, lineno=3872)\n", - "2023-05-15 11:07:33,115 | DEBUG | byteflow.py:279 | stack ['$hi78.1', '$n80.2']\n", - "2023-05-15 11:07:33,116 | DEBUG | byteflow.py:278 | dispatch pc=84, inst=POP_JUMP_IF_FALSE(arg=48, lineno=3872)\n", - "2023-05-15 11:07:33,116 | DEBUG | byteflow.py:279 | stack ['$82compare_op.3']\n", - "2023-05-15 11:07:33,117 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=86, stack=(), blockstack=(), npush=0), Edge(pc=94, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,117 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=56 nstack_initial=0), State(pc_initial=26 nstack_initial=2), State(pc_initial=98 nstack_initial=0), State(pc_initial=86 nstack_initial=0), State(pc_initial=94 nstack_initial=0)])\n", - "2023-05-15 11:07:33,118 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,118 | DEBUG | byteflow.py:278 | dispatch pc=56, inst=LOAD_CONST(arg=1, lineno=3866)\n", - "2023-05-15 11:07:33,119 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,120 | DEBUG | byteflow.py:278 | dispatch pc=58, inst=RETURN_VALUE(arg=None, lineno=3866)\n", - "2023-05-15 11:07:33,120 | DEBUG | byteflow.py:279 | stack ['$const56.0']\n", - "2023-05-15 11:07:33,121 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:33,121 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=26 nstack_initial=2), State(pc_initial=98 nstack_initial=0), State(pc_initial=86 nstack_initial=0), State(pc_initial=94 nstack_initial=0)])\n", - "2023-05-15 11:07:33,122 | DEBUG | byteflow.py:103 | stack: ['$phi26.0', '$phi26.1']\n", - "2023-05-15 11:07:33,123 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=STORE_FAST(arg=6, lineno=3863)\n", - "2023-05-15 11:07:33,123 | DEBUG | byteflow.py:279 | stack ['$phi26.0', '$phi26.1']\n", - "2023-05-15 11:07:33,124 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=LOAD_GLOBAL(arg=0, lineno=3864)\n", - "2023-05-15 11:07:33,124 | DEBUG | byteflow.py:279 | stack ['$phi26.0']\n", - "2023-05-15 11:07:33,125 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=LOAD_METHOD(arg=1, lineno=3864)\n", - "2023-05-15 11:07:33,125 | DEBUG | byteflow.py:279 | stack ['$phi26.0', '$28load_global.2']\n", - "2023-05-15 11:07:33,126 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=LOAD_FAST(arg=0, lineno=3864)\n", - "2023-05-15 11:07:33,127 | DEBUG | byteflow.py:279 | stack ['$phi26.0', '$30load_method.3']\n", - "2023-05-15 11:07:33,127 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=LOAD_FAST(arg=6, lineno=3864)\n", - "2023-05-15 11:07:33,128 | DEBUG | byteflow.py:279 | stack ['$phi26.0', '$30load_method.3', '$a32.4']\n", - "2023-05-15 11:07:33,128 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=LOAD_CONST(arg=3, lineno=3864)\n", - "2023-05-15 11:07:33,129 | DEBUG | byteflow.py:279 | stack ['$phi26.0', '$30load_method.3', '$a32.4', '$i34.5']\n", - "2023-05-15 11:07:33,130 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=BINARY_SUBTRACT(arg=None, lineno=3864)\n", - "2023-05-15 11:07:33,130 | DEBUG | byteflow.py:279 | stack ['$phi26.0', '$30load_method.3', '$a32.4', '$i34.5', '$const36.6']\n", - "2023-05-15 11:07:33,131 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=BINARY_SUBSCR(arg=None, lineno=3864)\n", - "2023-05-15 11:07:33,131 | DEBUG | byteflow.py:279 | stack ['$phi26.0', '$30load_method.3', '$a32.4', '$38binary_subtract.7']\n", - "2023-05-15 11:07:33,132 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=CALL_METHOD(arg=1, lineno=3864)\n", - "2023-05-15 11:07:33,132 | DEBUG | byteflow.py:279 | stack ['$phi26.0', '$30load_method.3', '$40binary_subscr.8']\n", - "2023-05-15 11:07:33,132 | DEBUG | byteflow.py:278 | dispatch pc=44, inst=POP_JUMP_IF_TRUE(arg=28, lineno=3864)\n", - "2023-05-15 11:07:33,133 | DEBUG | byteflow.py:279 | stack ['$phi26.0', '$42call_method.9']\n", - "2023-05-15 11:07:33,133 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=46, stack=('$phi26.0',), blockstack=(), npush=0), Edge(pc=54, stack=('$phi26.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,134 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=98 nstack_initial=0), State(pc_initial=86 nstack_initial=0), State(pc_initial=94 nstack_initial=0), State(pc_initial=46 nstack_initial=1), State(pc_initial=54 nstack_initial=1)])\n", - "2023-05-15 11:07:33,134 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,134 | DEBUG | byteflow.py:278 | dispatch pc=98, inst=LOAD_FAST(arg=4, lineno=3874)\n", - "2023-05-15 11:07:33,135 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,135 | DEBUG | byteflow.py:278 | dispatch pc=100, inst=LOAD_FAST(arg=3, lineno=3874)\n", - "2023-05-15 11:07:33,136 | DEBUG | byteflow.py:279 | stack ['$hi98.0']\n", - "2023-05-15 11:07:33,136 | DEBUG | byteflow.py:278 | dispatch pc=102, inst=COMPARE_OP(arg=4, lineno=3874)\n", - "2023-05-15 11:07:33,136 | DEBUG | byteflow.py:279 | stack ['$hi98.0', '$lo100.1']\n", - "2023-05-15 11:07:33,137 | DEBUG | byteflow.py:278 | dispatch pc=104, inst=POP_JUMP_IF_FALSE(arg=78, lineno=3874)\n", - "2023-05-15 11:07:33,137 | DEBUG | byteflow.py:279 | stack ['$102compare_op.2']\n", - "2023-05-15 11:07:33,137 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=106, stack=(), blockstack=(), npush=0), Edge(pc=154, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,138 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=86 nstack_initial=0), State(pc_initial=94 nstack_initial=0), State(pc_initial=46 nstack_initial=1), State(pc_initial=54 nstack_initial=1), State(pc_initial=106 nstack_initial=0), State(pc_initial=154 nstack_initial=0)])\n", - "2023-05-15 11:07:33,138 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,139 | DEBUG | byteflow.py:278 | dispatch pc=86, inst=LOAD_FAST(arg=4, lineno=3872)\n", - "2023-05-15 11:07:33,140 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,140 | DEBUG | byteflow.py:278 | dispatch pc=88, inst=LOAD_CONST(arg=3, lineno=3872)\n", - "2023-05-15 11:07:33,141 | DEBUG | byteflow.py:279 | stack ['$hi86.0']\n", - "2023-05-15 11:07:33,141 | DEBUG | byteflow.py:278 | dispatch pc=90, inst=BINARY_ADD(arg=None, lineno=3872)\n", - "2023-05-15 11:07:33,142 | DEBUG | byteflow.py:279 | stack ['$hi86.0', '$const88.1']\n", - "2023-05-15 11:07:33,142 | DEBUG | byteflow.py:278 | dispatch pc=92, inst=JUMP_FORWARD(arg=1, lineno=3872)\n", - "2023-05-15 11:07:33,143 | DEBUG | byteflow.py:279 | stack ['$90binary_add.2']\n", - "2023-05-15 11:07:33,144 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=96, stack=('$90binary_add.2',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,144 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=94 nstack_initial=0), State(pc_initial=46 nstack_initial=1), State(pc_initial=54 nstack_initial=1), State(pc_initial=106 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=96 nstack_initial=1)])\n", - "2023-05-15 11:07:33,145 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,151 | DEBUG | byteflow.py:278 | dispatch pc=94, inst=LOAD_FAST(arg=5, lineno=3872)\n", - "2023-05-15 11:07:33,157 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,158 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=96, stack=('$n94.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,159 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=46 nstack_initial=1), State(pc_initial=54 nstack_initial=1), State(pc_initial=106 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=96 nstack_initial=1), State(pc_initial=96 nstack_initial=1)])\n", - "2023-05-15 11:07:33,159 | DEBUG | byteflow.py:103 | stack: ['$phi46.0']\n", - "2023-05-15 11:07:33,160 | DEBUG | byteflow.py:278 | dispatch pc=46, inst=LOAD_FAST(arg=6, lineno=3865)\n", - "2023-05-15 11:07:33,160 | DEBUG | byteflow.py:279 | stack ['$phi46.0']\n", - "2023-05-15 11:07:33,161 | DEBUG | byteflow.py:278 | dispatch pc=48, inst=ROT_TWO(arg=None, lineno=3865)\n", - "2023-05-15 11:07:33,162 | DEBUG | byteflow.py:279 | stack ['$phi46.0', '$i46.1']\n", - "2023-05-15 11:07:33,163 | DEBUG | byteflow.py:278 | dispatch pc=50, inst=POP_TOP(arg=None, lineno=3865)\n", - "2023-05-15 11:07:33,164 | DEBUG | byteflow.py:279 | stack ['$i46.1', '$phi46.0']\n", - "2023-05-15 11:07:33,165 | DEBUG | byteflow.py:278 | dispatch pc=52, inst=RETURN_VALUE(arg=None, lineno=3865)\n", - "2023-05-15 11:07:33,165 | DEBUG | byteflow.py:279 | stack ['$i46.1']\n", - "2023-05-15 11:07:33,166 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:33,167 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=54 nstack_initial=1), State(pc_initial=106 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=96 nstack_initial=1), State(pc_initial=96 nstack_initial=1)])\n", - "2023-05-15 11:07:33,168 | DEBUG | byteflow.py:103 | stack: ['$phi54.0']\n", - "2023-05-15 11:07:33,168 | DEBUG | byteflow.py:278 | dispatch pc=54, inst=JUMP_ABSOLUTE(arg=13, lineno=3864)\n", - "2023-05-15 11:07:33,169 | DEBUG | byteflow.py:279 | stack ['$phi54.0']\n", - "2023-05-15 11:07:33,170 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=24, stack=('$phi54.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,171 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=106 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=96 nstack_initial=1), State(pc_initial=96 nstack_initial=1), State(pc_initial=24 nstack_initial=1)])\n", - "2023-05-15 11:07:33,172 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,172 | DEBUG | byteflow.py:278 | dispatch pc=106, inst=LOAD_FAST(arg=3, lineno=3875)\n", - "2023-05-15 11:07:33,173 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,173 | DEBUG | byteflow.py:278 | dispatch pc=108, inst=LOAD_FAST(arg=4, lineno=3875)\n", - "2023-05-15 11:07:33,174 | DEBUG | byteflow.py:279 | stack ['$lo106.0']\n", - "2023-05-15 11:07:33,174 | DEBUG | byteflow.py:278 | dispatch pc=110, inst=BINARY_ADD(arg=None, lineno=3875)\n", - "2023-05-15 11:07:33,175 | DEBUG | byteflow.py:279 | stack ['$lo106.0', '$hi108.1']\n", - "2023-05-15 11:07:33,175 | DEBUG | byteflow.py:278 | dispatch pc=112, inst=LOAD_CONST(arg=3, lineno=3875)\n", - "2023-05-15 11:07:33,176 | DEBUG | byteflow.py:279 | stack ['$110binary_add.2']\n", - "2023-05-15 11:07:33,176 | DEBUG | byteflow.py:278 | dispatch pc=114, inst=BINARY_RSHIFT(arg=None, lineno=3875)\n", - "2023-05-15 11:07:33,177 | DEBUG | byteflow.py:279 | stack ['$110binary_add.2', '$const112.3']\n", - "2023-05-15 11:07:33,178 | DEBUG | byteflow.py:278 | dispatch pc=116, inst=STORE_FAST(arg=7, lineno=3875)\n", - "2023-05-15 11:07:33,178 | DEBUG | byteflow.py:279 | stack ['$114binary_rshift.4']\n", - "2023-05-15 11:07:33,179 | DEBUG | byteflow.py:278 | dispatch pc=118, inst=LOAD_DEREF(arg=0, lineno=3876)\n", - "2023-05-15 11:07:33,179 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,180 | DEBUG | byteflow.py:278 | dispatch pc=120, inst=LOAD_FAST(arg=0, lineno=3876)\n", - "2023-05-15 11:07:33,181 | DEBUG | byteflow.py:279 | stack ['$118load_deref.5']\n", - "2023-05-15 11:07:33,181 | DEBUG | byteflow.py:278 | dispatch pc=122, inst=LOAD_FAST(arg=7, lineno=3876)\n", - "2023-05-15 11:07:33,182 | DEBUG | byteflow.py:279 | stack ['$118load_deref.5', '$a120.6']\n", - "2023-05-15 11:07:33,182 | DEBUG | byteflow.py:278 | dispatch pc=124, inst=BINARY_SUBSCR(arg=None, lineno=3876)\n", - "2023-05-15 11:07:33,183 | DEBUG | byteflow.py:279 | stack ['$118load_deref.5', '$a120.6', '$mid122.7']\n", - "2023-05-15 11:07:33,183 | DEBUG | byteflow.py:278 | dispatch pc=126, inst=LOAD_FAST(arg=1, lineno=3876)\n", - "2023-05-15 11:07:33,184 | DEBUG | byteflow.py:279 | stack ['$118load_deref.5', '$124binary_subscr.8']\n", - "2023-05-15 11:07:33,185 | DEBUG | byteflow.py:278 | dispatch pc=128, inst=CALL_FUNCTION(arg=2, lineno=3876)\n", - "2023-05-15 11:07:33,185 | DEBUG | byteflow.py:279 | stack ['$118load_deref.5', '$124binary_subscr.8', '$v126.9']\n", - "2023-05-15 11:07:33,186 | DEBUG | byteflow.py:278 | dispatch pc=130, inst=POP_JUMP_IF_FALSE(arg=72, lineno=3876)\n", - "2023-05-15 11:07:33,186 | DEBUG | byteflow.py:279 | stack ['$128call_function.10']\n", - "2023-05-15 11:07:33,187 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=132, stack=(), blockstack=(), npush=0), Edge(pc=142, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,187 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=154 nstack_initial=0), State(pc_initial=96 nstack_initial=1), State(pc_initial=96 nstack_initial=1), State(pc_initial=24 nstack_initial=1), State(pc_initial=132 nstack_initial=0), State(pc_initial=142 nstack_initial=0)])\n", - "2023-05-15 11:07:33,188 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,188 | DEBUG | byteflow.py:278 | dispatch pc=154, inst=LOAD_FAST(arg=3, lineno=3882)\n", - "2023-05-15 11:07:33,189 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,190 | DEBUG | byteflow.py:278 | dispatch pc=156, inst=RETURN_VALUE(arg=None, lineno=3882)\n", - "2023-05-15 11:07:33,190 | DEBUG | byteflow.py:279 | stack ['$lo154.0']\n", - "2023-05-15 11:07:33,191 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:33,191 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=96 nstack_initial=1), State(pc_initial=96 nstack_initial=1), State(pc_initial=24 nstack_initial=1), State(pc_initial=132 nstack_initial=0), State(pc_initial=142 nstack_initial=0)])\n", - "2023-05-15 11:07:33,192 | DEBUG | byteflow.py:103 | stack: ['$phi96.0']\n", - "2023-05-15 11:07:33,193 | DEBUG | byteflow.py:278 | dispatch pc=96, inst=STORE_FAST(arg=4, lineno=3872)\n", - "2023-05-15 11:07:33,193 | DEBUG | byteflow.py:279 | stack ['$phi96.0']\n", - "2023-05-15 11:07:33,194 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=98, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,194 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=96 nstack_initial=1), State(pc_initial=24 nstack_initial=1), State(pc_initial=132 nstack_initial=0), State(pc_initial=142 nstack_initial=0), State(pc_initial=98 nstack_initial=0)])\n", - "2023-05-15 11:07:33,195 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=24 nstack_initial=1), State(pc_initial=132 nstack_initial=0), State(pc_initial=142 nstack_initial=0), State(pc_initial=98 nstack_initial=0)])\n", - "2023-05-15 11:07:33,195 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=132 nstack_initial=0), State(pc_initial=142 nstack_initial=0), State(pc_initial=98 nstack_initial=0)])\n", - "2023-05-15 11:07:33,196 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,196 | DEBUG | byteflow.py:278 | dispatch pc=132, inst=LOAD_FAST(arg=7, lineno=3878)\n", - "2023-05-15 11:07:33,197 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,197 | DEBUG | byteflow.py:278 | dispatch pc=134, inst=LOAD_CONST(arg=3, lineno=3878)\n", - "2023-05-15 11:07:33,198 | DEBUG | byteflow.py:279 | stack ['$mid132.0']\n", - "2023-05-15 11:07:33,198 | DEBUG | byteflow.py:278 | dispatch pc=136, inst=BINARY_ADD(arg=None, lineno=3878)\n", - "2023-05-15 11:07:33,199 | DEBUG | byteflow.py:279 | stack ['$mid132.0', '$const134.1']\n", - "2023-05-15 11:07:33,199 | DEBUG | byteflow.py:278 | dispatch pc=138, inst=STORE_FAST(arg=3, lineno=3878)\n", - "2023-05-15 11:07:33,200 | DEBUG | byteflow.py:279 | stack ['$136binary_add.2']\n", - "2023-05-15 11:07:33,200 | DEBUG | byteflow.py:278 | dispatch pc=140, inst=JUMP_FORWARD(arg=2, lineno=3878)\n", - "2023-05-15 11:07:33,201 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,201 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=146, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,202 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=142 nstack_initial=0), State(pc_initial=98 nstack_initial=0), State(pc_initial=146 nstack_initial=0)])\n", - "2023-05-15 11:07:33,202 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,203 | DEBUG | byteflow.py:278 | dispatch pc=142, inst=LOAD_FAST(arg=7, lineno=3881)\n", - "2023-05-15 11:07:33,203 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,204 | DEBUG | byteflow.py:278 | dispatch pc=144, inst=STORE_FAST(arg=4, lineno=3881)\n", - "2023-05-15 11:07:33,204 | DEBUG | byteflow.py:279 | stack ['$mid142.0']\n", - "2023-05-15 11:07:33,205 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=146, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,205 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=98 nstack_initial=0), State(pc_initial=146 nstack_initial=0), State(pc_initial=146 nstack_initial=0)])\n", - "2023-05-15 11:07:33,206 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=146 nstack_initial=0), State(pc_initial=146 nstack_initial=0)])\n", - "2023-05-15 11:07:33,206 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,207 | DEBUG | byteflow.py:278 | dispatch pc=146, inst=LOAD_FAST(arg=4, lineno=3874)\n", - "2023-05-15 11:07:33,207 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,208 | DEBUG | byteflow.py:278 | dispatch pc=148, inst=LOAD_FAST(arg=3, lineno=3874)\n", - "2023-05-15 11:07:33,208 | DEBUG | byteflow.py:279 | stack ['$hi146.0']\n", - "2023-05-15 11:07:33,209 | DEBUG | byteflow.py:278 | dispatch pc=150, inst=COMPARE_OP(arg=4, lineno=3874)\n", - "2023-05-15 11:07:33,209 | DEBUG | byteflow.py:279 | stack ['$hi146.0', '$lo148.1']\n", - "2023-05-15 11:07:33,210 | DEBUG | byteflow.py:278 | dispatch pc=152, inst=POP_JUMP_IF_TRUE(arg=54, lineno=3874)\n", - "2023-05-15 11:07:33,210 | DEBUG | byteflow.py:279 | stack ['$150compare_op.2']\n", - "2023-05-15 11:07:33,210 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=154, stack=(), blockstack=(), npush=0), Edge(pc=106, stack=(), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:33,211 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=146 nstack_initial=0), State(pc_initial=154 nstack_initial=0), State(pc_initial=106 nstack_initial=0)])\n", - "2023-05-15 11:07:33,211 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=154 nstack_initial=0), State(pc_initial=106 nstack_initial=0)])\n", - "2023-05-15 11:07:33,212 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=106 nstack_initial=0)])\n", - "2023-05-15 11:07:33,220 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:33,223 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=12 nstack_initial=0): set(),\n", - " State(pc_initial=24 nstack_initial=1): {'$phi24.0'},\n", - " State(pc_initial=26 nstack_initial=2): {'$phi26.1'},\n", - " State(pc_initial=46 nstack_initial=1): set(),\n", - " State(pc_initial=54 nstack_initial=1): set(),\n", - " State(pc_initial=56 nstack_initial=0): set(),\n", - " State(pc_initial=60 nstack_initial=0): set(),\n", - " State(pc_initial=68 nstack_initial=0): set(),\n", - " State(pc_initial=74 nstack_initial=0): set(),\n", - " State(pc_initial=86 nstack_initial=0): set(),\n", - " State(pc_initial=94 nstack_initial=0): set(),\n", - " State(pc_initial=96 nstack_initial=1): {'$phi96.0'},\n", - " State(pc_initial=98 nstack_initial=0): set(),\n", - " State(pc_initial=106 nstack_initial=0): set(),\n", - " State(pc_initial=132 nstack_initial=0): set(),\n", - " State(pc_initial=142 nstack_initial=0): set(),\n", - " State(pc_initial=146 nstack_initial=0): set(),\n", - " State(pc_initial=154 nstack_initial=0): set()})\n", - "2023-05-15 11:07:33,224 | DEBUG | byteflow.py:192 | defmap: {'$phi24.0': State(pc_initial=12 nstack_initial=0),\n", - " '$phi26.1': State(pc_initial=24 nstack_initial=1),\n", - " '$phi96.0': State(pc_initial=86 nstack_initial=0)}\n", - "2023-05-15 11:07:33,224 | DEBUG | byteflow.py:193 | phismap: defaultdict(,\n", - " {'$phi24.0': {('$22get_iter.5',\n", - " State(pc_initial=12 nstack_initial=0)),\n", - " ('$phi54.0', State(pc_initial=54 nstack_initial=1))},\n", - " '$phi26.0': {('$phi24.0', State(pc_initial=24 nstack_initial=1))},\n", - " '$phi26.1': {('$24for_iter.2',\n", - " State(pc_initial=24 nstack_initial=1))},\n", - " '$phi46.0': {('$phi26.0', State(pc_initial=26 nstack_initial=2))},\n", - " '$phi54.0': {('$phi26.0', State(pc_initial=26 nstack_initial=2))},\n", - " '$phi96.0': {('$90binary_add.2',\n", - " State(pc_initial=86 nstack_initial=0)),\n", - " ('$n94.0', State(pc_initial=94 nstack_initial=0))}})\n", - "2023-05-15 11:07:33,225 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi24.0': {('$22get_iter.5',\n", - " State(pc_initial=12 nstack_initial=0)),\n", - " ('$phi26.0', State(pc_initial=26 nstack_initial=2))},\n", - " '$phi26.0': {('$22get_iter.5',\n", - " State(pc_initial=12 nstack_initial=0)),\n", - " ('$phi26.0', State(pc_initial=26 nstack_initial=2))},\n", - " '$phi26.1': {('$24for_iter.2',\n", - " State(pc_initial=24 nstack_initial=1))},\n", - " '$phi46.0': {('$22get_iter.5',\n", - " State(pc_initial=12 nstack_initial=0))},\n", - " '$phi54.0': {('$22get_iter.5',\n", - " State(pc_initial=12 nstack_initial=0))},\n", - " '$phi96.0': {('$90binary_add.2',\n", - " State(pc_initial=86 nstack_initial=0)),\n", - " ('$n94.0', State(pc_initial=94 nstack_initial=0))}})\n", - "2023-05-15 11:07:33,226 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi24.0': {('$22get_iter.5',\n", - " State(pc_initial=12 nstack_initial=0))},\n", - " '$phi26.0': {('$22get_iter.5',\n", - " State(pc_initial=12 nstack_initial=0))},\n", - " '$phi26.1': {('$24for_iter.2',\n", - " State(pc_initial=24 nstack_initial=1))},\n", - " '$phi46.0': {('$22get_iter.5',\n", - " State(pc_initial=12 nstack_initial=0))},\n", - " '$phi54.0': {('$22get_iter.5',\n", - " State(pc_initial=12 nstack_initial=0))},\n", - " '$phi96.0': {('$90binary_add.2',\n", - " State(pc_initial=86 nstack_initial=0)),\n", - " ('$n94.0', State(pc_initial=94 nstack_initial=0))}})\n", - "2023-05-15 11:07:33,226 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi24.0': {('$22get_iter.5',\n", - " State(pc_initial=12 nstack_initial=0))},\n", - " '$phi26.0': {('$22get_iter.5',\n", - " State(pc_initial=12 nstack_initial=0))},\n", - " '$phi26.1': {('$24for_iter.2',\n", - " State(pc_initial=24 nstack_initial=1))},\n", - " '$phi46.0': {('$22get_iter.5',\n", - " State(pc_initial=12 nstack_initial=0))},\n", - " '$phi54.0': {('$22get_iter.5',\n", - " State(pc_initial=12 nstack_initial=0))},\n", - " '$phi96.0': {('$90binary_add.2',\n", - " State(pc_initial=86 nstack_initial=0)),\n", - " ('$n94.0', State(pc_initial=94 nstack_initial=0))}})\n", - "2023-05-15 11:07:33,227 | DEBUG | byteflow.py:223 | keep phismap: {'$phi24.0': {('$22get_iter.5', State(pc_initial=12 nstack_initial=0))},\n", - " '$phi26.1': {('$24for_iter.2', State(pc_initial=24 nstack_initial=1))},\n", - " '$phi96.0': {('$90binary_add.2', State(pc_initial=86 nstack_initial=0)),\n", - " ('$n94.0', State(pc_initial=94 nstack_initial=0))}}\n", - "2023-05-15 11:07:33,227 | DEBUG | byteflow.py:229 | new_out: defaultdict(,\n", - " {State(pc_initial=12 nstack_initial=0): {'$phi24.0': '$22get_iter.5'},\n", - " State(pc_initial=24 nstack_initial=1): {'$phi26.1': '$24for_iter.2'},\n", - " State(pc_initial=86 nstack_initial=0): {'$phi96.0': '$90binary_add.2'},\n", - " State(pc_initial=94 nstack_initial=0): {'$phi96.0': '$n94.0'}})\n", - "2023-05-15 11:07:33,228 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:33,228 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'item': '$2load_global.0', 'res': '$4load_method.1'}), (6, {'res': '$v6.2'}), (8, {'func': '$4load_method.1', 'args': ['$v6.2'], 'res': '$8call_method.3'}), (10, {'pred': '$8call_method.3'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={12: (), 60: ()})\n", - "2023-05-15 11:07:33,229 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=12 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((12, {'res': '$12load_global.0'}), (14, {'res': '$n14.1'}), (16, {'res': '$const16.2'}), (18, {'res': '$const18.3'}), (20, {'func': '$12load_global.0', 'args': ['$n14.1', '$const16.2', '$const18.3'], 'res': '$20call_function.4'}), (22, {'value': '$20call_function.4', 'res': '$22get_iter.5'})), outgoing_phis={'$phi24.0': '$22get_iter.5'}, blockstack=(), active_try_block=None, outgoing_edgepushed={24: ('$22get_iter.5',)})\n", - "2023-05-15 11:07:33,229 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=24 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((24, {'iterator': '$phi24.0', 'pair': '$24for_iter.1', 'indval': '$24for_iter.2', 'pred': '$24for_iter.3'}),), outgoing_phis={'$phi26.1': '$24for_iter.2'}, blockstack=(), active_try_block=None, outgoing_edgepushed={56: (), 26: ('$phi24.0', '$24for_iter.2')})\n", - "2023-05-15 11:07:33,230 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=26 nstack_initial=2):\n", - "AdaptBlockInfo(insts=((26, {'value': '$phi26.1'}), (28, {'res': '$28load_global.2'}), (30, {'item': '$28load_global.2', 'res': '$30load_method.3'}), (32, {'res': '$a32.4'}), (34, {'res': '$i34.5'}), (36, {'res': '$const36.6'}), (38, {'lhs': '$i34.5', 'rhs': '$const36.6', 'res': '$38binary_subtract.7'}), (40, {'index': '$38binary_subtract.7', 'target': '$a32.4', 'res': '$40binary_subscr.8'}), (42, {'func': '$30load_method.3', 'args': ['$40binary_subscr.8'], 'res': '$42call_method.9'}), (44, {'pred': '$42call_method.9'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={46: ('$phi26.0',), 54: ('$phi26.0',)})\n", - "2023-05-15 11:07:33,230 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=46 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((46, {'res': '$i46.1'}), (52, {'retval': '$i46.1', 'castval': '$52return_value.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:33,231 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=54 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((54, {}),), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={24: ('$phi54.0',)})\n", - "2023-05-15 11:07:33,231 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=56 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((56, {'res': '$const56.0'}), (58, {'retval': '$const56.0', 'castval': '$58return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:33,231 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=60 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((60, {'res': '$v_last60.0'}), (62, {'res': '$v62.1'}), (64, {'lhs': '$v_last60.0', 'rhs': '$v62.1', 'res': '$64compare_op.2'}), (66, {'pred': '$64compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={68: (), 74: ()})\n", - "2023-05-15 11:07:33,232 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=68 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((68, {'res': '$n68.0'}), (70, {'value': '$n68.0'}), (72, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={98: ()})\n", - "2023-05-15 11:07:33,232 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=74 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((74, {'res': '$const74.0'}), (76, {'value': '$const74.0'}), (78, {'res': '$hi78.1'}), (80, {'res': '$n80.2'}), (82, {'lhs': '$hi78.1', 'rhs': '$n80.2', 'res': '$82compare_op.3'}), (84, {'pred': '$82compare_op.3'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={86: (), 94: ()})\n", - "2023-05-15 11:07:33,233 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=86 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((86, {'res': '$hi86.0'}), (88, {'res': '$const88.1'}), (90, {'lhs': '$hi86.0', 'rhs': '$const88.1', 'res': '$90binary_add.2'}), (92, {})), outgoing_phis={'$phi96.0': '$90binary_add.2'}, blockstack=(), active_try_block=None, outgoing_edgepushed={96: ('$90binary_add.2',)})\n", - "2023-05-15 11:07:33,233 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=94 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((94, {'res': '$n94.0'}),), outgoing_phis={'$phi96.0': '$n94.0'}, blockstack=(), active_try_block=None, outgoing_edgepushed={96: ('$n94.0',)})\n", - "2023-05-15 11:07:33,233 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=96 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((96, {'value': '$phi96.0'}),), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={98: ()})\n", - "2023-05-15 11:07:33,234 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=98 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((98, {'res': '$hi98.0'}), (100, {'res': '$lo100.1'}), (102, {'lhs': '$hi98.0', 'rhs': '$lo100.1', 'res': '$102compare_op.2'}), (104, {'pred': '$102compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={106: (), 154: ()})\n", - "2023-05-15 11:07:33,234 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=106 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((106, {'res': '$lo106.0'}), (108, {'res': '$hi108.1'}), (110, {'lhs': '$lo106.0', 'rhs': '$hi108.1', 'res': '$110binary_add.2'}), (112, {'res': '$const112.3'}), (114, {'lhs': '$110binary_add.2', 'rhs': '$const112.3', 'res': '$114binary_rshift.4'}), (116, {'value': '$114binary_rshift.4'}), (118, {'res': '$118load_deref.5'}), (120, {'res': '$a120.6'}), (122, {'res': '$mid122.7'}), (124, {'index': '$mid122.7', 'target': '$a120.6', 'res': '$124binary_subscr.8'}), (126, {'res': '$v126.9'}), (128, {'func': '$118load_deref.5', 'args': ['$124binary_subscr.8', '$v126.9'], 'res': '$128call_function.10'}), (130, {'pred': '$128call_function.10'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={132: (), 142: ()})\n", - "2023-05-15 11:07:33,234 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=132 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((132, {'res': '$mid132.0'}), (134, {'res': '$const134.1'}), (136, {'lhs': '$mid132.0', 'rhs': '$const134.1', 'res': '$136binary_add.2'}), (138, {'value': '$136binary_add.2'}), (140, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={146: ()})\n", - "2023-05-15 11:07:33,237 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=142 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((142, {'res': '$mid142.0'}), (144, {'value': '$mid142.0'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={146: ()})\n", - "2023-05-15 11:07:33,237 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=146 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((146, {'res': '$hi146.0'}), (148, {'res': '$lo148.1'}), (150, {'lhs': '$hi146.0', 'rhs': '$lo148.1', 'res': '$150compare_op.2'}), (152, {'pred': '$150compare_op.2'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={154: (), 106: ()})\n", - "2023-05-15 11:07:33,238 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=154 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((154, {'res': '$lo154.0'}), (156, {'retval': '$lo154.0', 'castval': '$156return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:33,241 | DEBUG | interpreter.py:1342 | label 0:\n", - " a = arg(0, name=a) ['a']\n", - " v = arg(1, name=v) ['v']\n", - " v_last = arg(2, name=v_last) ['v_last']\n", - " lo = arg(3, name=lo) ['lo']\n", - " hi = arg(4, name=hi) ['hi']\n", - " n = arg(5, name=n) ['n']\n", - " $2load_global.0 = global(np: ) ['$2load_global.0']\n", - " $4load_method.1 = getattr(value=$2load_global.0, attr=isnan) ['$2load_global.0', '$4load_method.1']\n", - " $8call_method.3 = call $4load_method.1(v, func=$4load_method.1, args=[Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None) ['$4load_method.1', '$8call_method.3', 'v']\n", - " bool10 = global(bool: ) ['bool10']\n", - " $10pred = call bool10($8call_method.3, func=bool10, args=(Var($8call_method.3, arraymath.py:3860),), kws=(), vararg=None, varkwarg=None, target=None) ['$10pred', '$8call_method.3', 'bool10']\n", - " branch $10pred, 12, 60 ['$10pred']\n", - "label 12:\n", - " $12load_global.0 = global(range: ) ['$12load_global.0']\n", - " $const16.2 = const(int, 0) ['$const16.2']\n", - " $const18.3 = const(int, -1) ['$const18.3']\n", - " $20call_function.4 = call $12load_global.0(n, $const16.2, $const18.3, func=$12load_global.0, args=[Var(n, arraymath.py:3860), Var($const16.2, arraymath.py:3863), Var($const18.3, arraymath.py:3863)], kws=(), vararg=None, varkwarg=None, target=None) ['$12load_global.0', '$20call_function.4', '$const16.2', '$const18.3', 'n']\n", - " $22get_iter.5 = getiter(value=$20call_function.4) ['$20call_function.4', '$22get_iter.5']\n", - " $phi24.0 = $22get_iter.5 ['$22get_iter.5', '$phi24.0']\n", - " jump 24 []\n", - "label 24:\n", - " $24for_iter.1 = iternext(value=$phi24.0) ['$24for_iter.1', '$phi24.0']\n", - " $24for_iter.2 = pair_first(value=$24for_iter.1) ['$24for_iter.1', '$24for_iter.2']\n", - " $24for_iter.3 = pair_second(value=$24for_iter.1) ['$24for_iter.1', '$24for_iter.3']\n", - " $phi26.1 = $24for_iter.2 ['$24for_iter.2', '$phi26.1']\n", - " branch $24for_iter.3, 26, 56 ['$24for_iter.3']\n", - "label 26:\n", - " i = $phi26.1 ['$phi26.1', 'i']\n", - " $28load_global.2 = global(np: ) ['$28load_global.2']\n", - " $30load_method.3 = getattr(value=$28load_global.2, attr=isnan) ['$28load_global.2', '$30load_method.3']\n", - " $const36.6 = const(int, 1) ['$const36.6']\n", - " $38binary_subtract.7 = i - $const36.6 ['$38binary_subtract.7', '$const36.6', 'i']\n", - " $40binary_subscr.8 = getitem(value=a, index=$38binary_subtract.7, fn=) ['$38binary_subtract.7', '$40binary_subscr.8', 'a']\n", - " $42call_method.9 = call $30load_method.3($40binary_subscr.8, func=$30load_method.3, args=[Var($40binary_subscr.8, arraymath.py:3864)], kws=(), vararg=None, varkwarg=None, target=None) ['$30load_method.3', '$40binary_subscr.8', '$42call_method.9']\n", - " bool44 = global(bool: ) ['bool44']\n", - " $44pred = call bool44($42call_method.9, func=bool44, args=(Var($42call_method.9, arraymath.py:3864),), kws=(), vararg=None, varkwarg=None, target=None) ['$42call_method.9', '$44pred', 'bool44']\n", - " branch $44pred, 54, 46 ['$44pred']\n", - "label 46:\n", - " $52return_value.2 = cast(value=i) ['$52return_value.2', 'i']\n", - " return $52return_value.2 ['$52return_value.2']\n", - "label 54:\n", - " jump 24 []\n", - "label 56:\n", - " $const56.0 = const(int, 0) ['$const56.0']\n", - " $58return_value.1 = cast(value=$const56.0) ['$58return_value.1', '$const56.0']\n", - " return $58return_value.1 ['$58return_value.1']\n", - "label 60:\n", - " $64compare_op.2 = v_last < v ['$64compare_op.2', 'v', 'v_last']\n", - " bool66 = global(bool: ) ['bool66']\n", - " $66pred = call bool66($64compare_op.2, func=bool66, args=(Var($64compare_op.2, arraymath.py:3868),), kws=(), vararg=None, varkwarg=None, target=None) ['$64compare_op.2', '$66pred', 'bool66']\n", - " branch $66pred, 68, 74 ['$66pred']\n", - "label 68:\n", - " hi = n ['hi', 'n']\n", - " jump 98 []\n", - "label 74:\n", - " lo = const(int, 0) ['lo']\n", - " $82compare_op.3 = hi < n ['$82compare_op.3', 'hi', 'n']\n", - " bool84 = global(bool: ) ['bool84']\n", - " $84pred = call bool84($82compare_op.3, func=bool84, args=(Var($82compare_op.3, arraymath.py:3872),), kws=(), vararg=None, varkwarg=None, target=None) ['$82compare_op.3', '$84pred', 'bool84']\n", - " branch $84pred, 86, 94 ['$84pred']\n", - "label 86:\n", - " $const88.1 = const(int, 1) ['$const88.1']\n", - " $90binary_add.2 = hi + $const88.1 ['$90binary_add.2', '$const88.1', 'hi']\n", - " $phi96.0 = $90binary_add.2 ['$90binary_add.2', '$phi96.0']\n", - " jump 96 []\n", - "label 94:\n", - " $phi96.0 = n ['$phi96.0', 'n']\n", - " jump 96 []\n", - "label 96:\n", - " hi = $phi96.0 ['$phi96.0', 'hi']\n", - " jump 98 []\n", - "label 98:\n", - " $102compare_op.2 = hi > lo ['$102compare_op.2', 'hi', 'lo']\n", - " bool104 = global(bool: ) ['bool104']\n", - " $104pred = call bool104($102compare_op.2, func=bool104, args=(Var($102compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None) ['$102compare_op.2', '$104pred', 'bool104']\n", - " branch $104pred, 106, 154 ['$104pred']\n", - "label 106:\n", - " $110binary_add.2 = lo + hi ['$110binary_add.2', 'hi', 'lo']\n", - " $const112.3 = const(int, 1) ['$const112.3']\n", - " mid = $110binary_add.2 >> $const112.3 ['$110binary_add.2', '$const112.3', 'mid']\n", - " $118load_deref.5 = freevar(func: ) ['$118load_deref.5']\n", - " $124binary_subscr.8 = getitem(value=a, index=mid, fn=) ['$124binary_subscr.8', 'a', 'mid']\n", - " $128call_function.10 = call $118load_deref.5($124binary_subscr.8, v, func=$118load_deref.5, args=[Var($124binary_subscr.8, arraymath.py:3876), Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None) ['$118load_deref.5', '$124binary_subscr.8', '$128call_function.10', 'v']\n", - " bool130 = global(bool: ) ['bool130']\n", - " $130pred = call bool130($128call_function.10, func=bool130, args=(Var($128call_function.10, arraymath.py:3876),), kws=(), vararg=None, varkwarg=None, target=None) ['$128call_function.10', '$130pred', 'bool130']\n", - " branch $130pred, 132, 142 ['$130pred']\n", - "label 132:\n", - " $const134.1 = const(int, 1) ['$const134.1']\n", - " lo = mid + $const134.1 ['$const134.1', 'lo', 'mid']\n", - " jump 146 []\n", - "label 142:\n", - " hi = mid ['hi', 'mid']\n", - " jump 146 []\n", - "label 146:\n", - " $150compare_op.2 = hi > lo ['$150compare_op.2', 'hi', 'lo']\n", - " bool152 = global(bool: ) ['bool152']\n", - " $152pred = call bool152($150compare_op.2, func=bool152, args=(Var($150compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None) ['$150compare_op.2', '$152pred', 'bool152']\n", - " branch $152pred, 106, 154 ['$152pred']\n", - "label 154:\n", - " $156return_value.1 = cast(value=lo) ['$156return_value.1', 'lo']\n", - " return $156return_value.1 ['$156return_value.1']\n", - "\n", - "2023-05-15 11:07:33,256 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:33,256 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,257 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:33,257 | DEBUG | ssa.py:193 | on stmt: v = arg(1, name=v)\n", - "2023-05-15 11:07:33,258 | DEBUG | ssa.py:193 | on stmt: v_last = arg(2, name=v_last)\n", - "2023-05-15 11:07:33,259 | DEBUG | ssa.py:193 | on stmt: lo = arg(3, name=lo)\n", - "2023-05-15 11:07:33,259 | DEBUG | ssa.py:193 | on stmt: hi = arg(4, name=hi)\n", - "2023-05-15 11:07:33,259 | DEBUG | ssa.py:193 | on stmt: n = arg(5, name=n)\n", - "2023-05-15 11:07:33,260 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:33,260 | DEBUG | ssa.py:193 | on stmt: $4load_method.1 = getattr(value=$2load_global.0, attr=isnan)\n", - "2023-05-15 11:07:33,260 | DEBUG | ssa.py:193 | on stmt: $8call_method.3 = call $4load_method.1(v, func=$4load_method.1, args=[Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,261 | DEBUG | ssa.py:193 | on stmt: bool10 = global(bool: )\n", - "2023-05-15 11:07:33,261 | DEBUG | ssa.py:193 | on stmt: $10pred = call bool10($8call_method.3, func=bool10, args=(Var($8call_method.3, arraymath.py:3860),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,262 | DEBUG | ssa.py:193 | on stmt: branch $10pred, 12, 60\n", - "2023-05-15 11:07:33,262 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 12\n", - "2023-05-15 11:07:33,262 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,263 | DEBUG | ssa.py:193 | on stmt: $12load_global.0 = global(range: )\n", - "2023-05-15 11:07:33,263 | DEBUG | ssa.py:193 | on stmt: $const16.2 = const(int, 0)\n", - "2023-05-15 11:07:33,264 | DEBUG | ssa.py:193 | on stmt: $const18.3 = const(int, -1)\n", - "2023-05-15 11:07:33,264 | DEBUG | ssa.py:193 | on stmt: $20call_function.4 = call $12load_global.0(n, $const16.2, $const18.3, func=$12load_global.0, args=[Var(n, arraymath.py:3860), Var($const16.2, arraymath.py:3863), Var($const18.3, arraymath.py:3863)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,264 | DEBUG | ssa.py:193 | on stmt: $22get_iter.5 = getiter(value=$20call_function.4)\n", - "2023-05-15 11:07:33,265 | DEBUG | ssa.py:193 | on stmt: $phi24.0 = $22get_iter.5\n", - "2023-05-15 11:07:33,265 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,265 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 24\n", - "2023-05-15 11:07:33,266 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,266 | DEBUG | ssa.py:193 | on stmt: $24for_iter.1 = iternext(value=$phi24.0)\n", - "2023-05-15 11:07:33,266 | DEBUG | ssa.py:193 | on stmt: $24for_iter.2 = pair_first(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,267 | DEBUG | ssa.py:193 | on stmt: $24for_iter.3 = pair_second(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,267 | DEBUG | ssa.py:193 | on stmt: $phi26.1 = $24for_iter.2\n", - "2023-05-15 11:07:33,267 | DEBUG | ssa.py:193 | on stmt: branch $24for_iter.3, 26, 56\n", - "2023-05-15 11:07:33,268 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 26\n", - "2023-05-15 11:07:33,268 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,269 | DEBUG | ssa.py:193 | on stmt: i = $phi26.1\n", - "2023-05-15 11:07:33,269 | DEBUG | ssa.py:193 | on stmt: $28load_global.2 = global(np: )\n", - "2023-05-15 11:07:33,270 | DEBUG | ssa.py:193 | on stmt: $30load_method.3 = getattr(value=$28load_global.2, attr=isnan)\n", - "2023-05-15 11:07:33,270 | DEBUG | ssa.py:193 | on stmt: $const36.6 = const(int, 1)\n", - "2023-05-15 11:07:33,270 | DEBUG | ssa.py:193 | on stmt: $38binary_subtract.7 = i - $const36.6\n", - "2023-05-15 11:07:33,271 | DEBUG | ssa.py:193 | on stmt: $40binary_subscr.8 = getitem(value=a, index=$38binary_subtract.7, fn=)\n", - "2023-05-15 11:07:33,271 | DEBUG | ssa.py:193 | on stmt: $42call_method.9 = call $30load_method.3($40binary_subscr.8, func=$30load_method.3, args=[Var($40binary_subscr.8, arraymath.py:3864)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,271 | DEBUG | ssa.py:193 | on stmt: bool44 = global(bool: )\n", - "2023-05-15 11:07:33,272 | DEBUG | ssa.py:193 | on stmt: $44pred = call bool44($42call_method.9, func=bool44, args=(Var($42call_method.9, arraymath.py:3864),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,272 | DEBUG | ssa.py:193 | on stmt: branch $44pred, 54, 46\n", - "2023-05-15 11:07:33,272 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 46\n", - "2023-05-15 11:07:33,273 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,273 | DEBUG | ssa.py:193 | on stmt: $52return_value.2 = cast(value=i)\n", - "2023-05-15 11:07:33,274 | DEBUG | ssa.py:193 | on stmt: return $52return_value.2\n", - "2023-05-15 11:07:33,280 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 54\n", - "2023-05-15 11:07:33,281 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,281 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,282 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 56\n", - "2023-05-15 11:07:33,282 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,282 | DEBUG | ssa.py:193 | on stmt: $const56.0 = const(int, 0)\n", - "2023-05-15 11:07:33,283 | DEBUG | ssa.py:193 | on stmt: $58return_value.1 = cast(value=$const56.0)\n", - "2023-05-15 11:07:33,283 | DEBUG | ssa.py:193 | on stmt: return $58return_value.1\n", - "2023-05-15 11:07:33,284 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 60\n", - "2023-05-15 11:07:33,284 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,284 | DEBUG | ssa.py:193 | on stmt: $64compare_op.2 = v_last < v\n", - "2023-05-15 11:07:33,285 | DEBUG | ssa.py:193 | on stmt: bool66 = global(bool: )\n", - "2023-05-15 11:07:33,286 | DEBUG | ssa.py:193 | on stmt: $66pred = call bool66($64compare_op.2, func=bool66, args=(Var($64compare_op.2, arraymath.py:3868),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,286 | DEBUG | ssa.py:193 | on stmt: branch $66pred, 68, 74\n", - "2023-05-15 11:07:33,288 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 68\n", - "2023-05-15 11:07:33,288 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,289 | DEBUG | ssa.py:193 | on stmt: hi = n\n", - "2023-05-15 11:07:33,289 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,290 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 74\n", - "2023-05-15 11:07:33,291 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,291 | DEBUG | ssa.py:193 | on stmt: lo = const(int, 0)\n", - "2023-05-15 11:07:33,292 | DEBUG | ssa.py:193 | on stmt: $82compare_op.3 = hi < n\n", - "2023-05-15 11:07:33,292 | DEBUG | ssa.py:193 | on stmt: bool84 = global(bool: )\n", - "2023-05-15 11:07:33,292 | DEBUG | ssa.py:193 | on stmt: $84pred = call bool84($82compare_op.3, func=bool84, args=(Var($82compare_op.3, arraymath.py:3872),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,293 | DEBUG | ssa.py:193 | on stmt: branch $84pred, 86, 94\n", - "2023-05-15 11:07:33,293 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 86\n", - "2023-05-15 11:07:33,294 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,294 | DEBUG | ssa.py:193 | on stmt: $const88.1 = const(int, 1)\n", - "2023-05-15 11:07:33,294 | DEBUG | ssa.py:193 | on stmt: $90binary_add.2 = hi + $const88.1\n", - "2023-05-15 11:07:33,295 | DEBUG | ssa.py:193 | on stmt: $phi96.0 = $90binary_add.2\n", - "2023-05-15 11:07:33,295 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,296 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 94\n", - "2023-05-15 11:07:33,296 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,297 | DEBUG | ssa.py:193 | on stmt: $phi96.0 = n\n", - "2023-05-15 11:07:33,297 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,298 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 96\n", - "2023-05-15 11:07:33,298 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,299 | DEBUG | ssa.py:193 | on stmt: hi = $phi96.0\n", - "2023-05-15 11:07:33,299 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,300 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 98\n", - "2023-05-15 11:07:33,300 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,301 | DEBUG | ssa.py:193 | on stmt: $102compare_op.2 = hi > lo\n", - "2023-05-15 11:07:33,301 | DEBUG | ssa.py:193 | on stmt: bool104 = global(bool: )\n", - "2023-05-15 11:07:33,302 | DEBUG | ssa.py:193 | on stmt: $104pred = call bool104($102compare_op.2, func=bool104, args=(Var($102compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,303 | DEBUG | ssa.py:193 | on stmt: branch $104pred, 106, 154\n", - "2023-05-15 11:07:33,303 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 106\n", - "2023-05-15 11:07:33,303 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,304 | DEBUG | ssa.py:193 | on stmt: $110binary_add.2 = lo + hi\n", - "2023-05-15 11:07:33,306 | DEBUG | ssa.py:193 | on stmt: $const112.3 = const(int, 1)\n", - "2023-05-15 11:07:33,311 | DEBUG | ssa.py:193 | on stmt: mid = $110binary_add.2 >> $const112.3\n", - "2023-05-15 11:07:33,311 | DEBUG | ssa.py:193 | on stmt: $118load_deref.5 = freevar(func: )\n", - "2023-05-15 11:07:33,312 | DEBUG | ssa.py:193 | on stmt: $124binary_subscr.8 = getitem(value=a, index=mid, fn=)\n", - "2023-05-15 11:07:33,312 | DEBUG | ssa.py:193 | on stmt: $128call_function.10 = call $118load_deref.5($124binary_subscr.8, v, func=$118load_deref.5, args=[Var($124binary_subscr.8, arraymath.py:3876), Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,313 | DEBUG | ssa.py:193 | on stmt: bool130 = global(bool: )\n", - "2023-05-15 11:07:33,313 | DEBUG | ssa.py:193 | on stmt: $130pred = call bool130($128call_function.10, func=bool130, args=(Var($128call_function.10, arraymath.py:3876),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,314 | DEBUG | ssa.py:193 | on stmt: branch $130pred, 132, 142\n", - "2023-05-15 11:07:33,314 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 132\n", - "2023-05-15 11:07:33,315 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,315 | DEBUG | ssa.py:193 | on stmt: $const134.1 = const(int, 1)\n", - "2023-05-15 11:07:33,316 | DEBUG | ssa.py:193 | on stmt: lo = mid + $const134.1\n", - "2023-05-15 11:07:33,316 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,316 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 142\n", - "2023-05-15 11:07:33,317 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,317 | DEBUG | ssa.py:193 | on stmt: hi = mid\n", - "2023-05-15 11:07:33,318 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,318 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 146\n", - "2023-05-15 11:07:33,318 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,319 | DEBUG | ssa.py:193 | on stmt: $150compare_op.2 = hi > lo\n", - "2023-05-15 11:07:33,321 | DEBUG | ssa.py:193 | on stmt: bool152 = global(bool: )\n", - "2023-05-15 11:07:33,321 | DEBUG | ssa.py:193 | on stmt: $152pred = call bool152($150compare_op.2, func=bool152, args=(Var($150compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,322 | DEBUG | ssa.py:193 | on stmt: branch $152pred, 106, 154\n", - "2023-05-15 11:07:33,322 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 154\n", - "2023-05-15 11:07:33,322 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,323 | DEBUG | ssa.py:193 | on stmt: $156return_value.1 = cast(value=lo)\n", - "2023-05-15 11:07:33,323 | DEBUG | ssa.py:193 | on stmt: return $156return_value.1\n", - "2023-05-15 11:07:33,325 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$102compare_op.2': [],\n", - " '$104pred': [],\n", - " '$10pred': [],\n", - " '$110binary_add.2': [],\n", - " '$118load_deref.5': [],\n", - " '$124binary_subscr.8': [],\n", - " '$128call_function.10': [],\n", - " '$12load_global.0': [],\n", - " '$130pred': [],\n", - " '$150compare_op.2': [],\n", - " '$152pred': [],\n", - " '$156return_value.1': [],\n", - " '$20call_function.4': [],\n", - " '$22get_iter.5': [],\n", - " '$24for_iter.1': [],\n", - " '$24for_iter.2': [],\n", - " '$24for_iter.3': [],\n", - " '$28load_global.2': [],\n", - " '$2load_global.0': [],\n", - " '$30load_method.3': [],\n", - " '$38binary_subtract.7': [],\n", - " '$40binary_subscr.8': [],\n", - " '$42call_method.9': [],\n", - " '$44pred': [],\n", - " '$4load_method.1': [],\n", - " '$52return_value.2': [],\n", - " '$58return_value.1': [],\n", - " '$64compare_op.2': [],\n", - " '$66pred': [],\n", - " '$82compare_op.3': [],\n", - " '$84pred': [],\n", - " '$8call_method.3': [],\n", - " '$90binary_add.2': [],\n", - " '$const112.3': [],\n", - " '$const134.1': [],\n", - " '$const16.2': [],\n", - " '$const18.3': [],\n", - " '$const36.6': [],\n", - " '$const56.0': [],\n", - " '$const88.1': [],\n", - " '$phi24.0': [],\n", - " '$phi26.1': [],\n", - " '$phi96.0': [,\n", - " ],\n", - " 'a': [],\n", - " 'bool10': [],\n", - " 'bool104': [],\n", - " 'bool130': [],\n", - " 'bool152': [],\n", - " 'bool44': [],\n", - " 'bool66': [],\n", - " 'bool84': [],\n", - " 'hi': [,\n", - " ,\n", - " ,\n", - " ],\n", - " 'i': [],\n", - " 'lo': [,\n", - " ,\n", - " ],\n", - " 'mid': [],\n", - " 'n': [],\n", - " 'v': [],\n", - " 'v_last': []})\n", - "2023-05-15 11:07:33,325 | DEBUG | ssa.py:156 | SSA violators {'lo', '$phi96.0', 'hi'}\n", - "2023-05-15 11:07:33,326 | DEBUG | ssa.py:63 | Fix SSA violator on var lo\n", - "2023-05-15 11:07:33,327 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:33,328 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,328 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:33,329 | DEBUG | ssa.py:193 | on stmt: v = arg(1, name=v)\n", - "2023-05-15 11:07:33,329 | DEBUG | ssa.py:193 | on stmt: v_last = arg(2, name=v_last)\n", - "2023-05-15 11:07:33,329 | DEBUG | ssa.py:193 | on stmt: lo = arg(3, name=lo)\n", - "2023-05-15 11:07:33,330 | DEBUG | ssa.py:269 | first assign: lo\n", - "2023-05-15 11:07:33,330 | DEBUG | ssa.py:199 | replaced with: lo = arg(3, name=lo)\n", - "2023-05-15 11:07:33,331 | DEBUG | ssa.py:193 | on stmt: hi = arg(4, name=hi)\n", - "2023-05-15 11:07:33,332 | DEBUG | ssa.py:193 | on stmt: n = arg(5, name=n)\n", - "2023-05-15 11:07:33,332 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:33,332 | DEBUG | ssa.py:193 | on stmt: $4load_method.1 = getattr(value=$2load_global.0, attr=isnan)\n", - "2023-05-15 11:07:33,333 | DEBUG | ssa.py:193 | on stmt: $8call_method.3 = call $4load_method.1(v, func=$4load_method.1, args=[Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,333 | DEBUG | ssa.py:193 | on stmt: bool10 = global(bool: )\n", - "2023-05-15 11:07:33,334 | DEBUG | ssa.py:193 | on stmt: $10pred = call bool10($8call_method.3, func=bool10, args=(Var($8call_method.3, arraymath.py:3860),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,334 | DEBUG | ssa.py:193 | on stmt: branch $10pred, 12, 60\n", - "2023-05-15 11:07:33,334 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 12\n", - "2023-05-15 11:07:33,335 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,335 | DEBUG | ssa.py:193 | on stmt: $12load_global.0 = global(range: )\n", - "2023-05-15 11:07:33,336 | DEBUG | ssa.py:193 | on stmt: $const16.2 = const(int, 0)\n", - "2023-05-15 11:07:33,336 | DEBUG | ssa.py:193 | on stmt: $const18.3 = const(int, -1)\n", - "2023-05-15 11:07:33,336 | DEBUG | ssa.py:193 | on stmt: $20call_function.4 = call $12load_global.0(n, $const16.2, $const18.3, func=$12load_global.0, args=[Var(n, arraymath.py:3860), Var($const16.2, arraymath.py:3863), Var($const18.3, arraymath.py:3863)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,337 | DEBUG | ssa.py:193 | on stmt: $22get_iter.5 = getiter(value=$20call_function.4)\n", - "2023-05-15 11:07:33,337 | DEBUG | ssa.py:193 | on stmt: $phi24.0 = $22get_iter.5\n", - "2023-05-15 11:07:33,338 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,338 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 24\n", - "2023-05-15 11:07:33,342 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,344 | DEBUG | ssa.py:193 | on stmt: $24for_iter.1 = iternext(value=$phi24.0)\n", - "2023-05-15 11:07:33,344 | DEBUG | ssa.py:193 | on stmt: $24for_iter.2 = pair_first(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,345 | DEBUG | ssa.py:193 | on stmt: $24for_iter.3 = pair_second(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,345 | DEBUG | ssa.py:193 | on stmt: $phi26.1 = $24for_iter.2\n", - "2023-05-15 11:07:33,346 | DEBUG | ssa.py:193 | on stmt: branch $24for_iter.3, 26, 56\n", - "2023-05-15 11:07:33,347 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:33,347 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,348 | DEBUG | ssa.py:193 | on stmt: i = $phi26.1\n", - "2023-05-15 11:07:33,348 | DEBUG | ssa.py:193 | on stmt: $28load_global.2 = global(np: )\n", - "2023-05-15 11:07:33,349 | DEBUG | ssa.py:193 | on stmt: $30load_method.3 = getattr(value=$28load_global.2, attr=isnan)\n", - "2023-05-15 11:07:33,349 | DEBUG | ssa.py:193 | on stmt: $const36.6 = const(int, 1)\n", - "2023-05-15 11:07:33,349 | DEBUG | ssa.py:193 | on stmt: $38binary_subtract.7 = i - $const36.6\n", - "2023-05-15 11:07:33,350 | DEBUG | ssa.py:193 | on stmt: $40binary_subscr.8 = getitem(value=a, index=$38binary_subtract.7, fn=)\n", - "2023-05-15 11:07:33,350 | DEBUG | ssa.py:193 | on stmt: $42call_method.9 = call $30load_method.3($40binary_subscr.8, func=$30load_method.3, args=[Var($40binary_subscr.8, arraymath.py:3864)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,351 | DEBUG | ssa.py:193 | on stmt: bool44 = global(bool: )\n", - "2023-05-15 11:07:33,351 | DEBUG | ssa.py:193 | on stmt: $44pred = call bool44($42call_method.9, func=bool44, args=(Var($42call_method.9, arraymath.py:3864),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,352 | DEBUG | ssa.py:193 | on stmt: branch $44pred, 54, 46\n", - "2023-05-15 11:07:33,352 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:33,352 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,353 | DEBUG | ssa.py:193 | on stmt: $52return_value.2 = cast(value=i)\n", - "2023-05-15 11:07:33,353 | DEBUG | ssa.py:193 | on stmt: return $52return_value.2\n", - "2023-05-15 11:07:33,354 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 54\n", - "2023-05-15 11:07:33,354 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,354 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,355 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 56\n", - "2023-05-15 11:07:33,355 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,355 | DEBUG | ssa.py:193 | on stmt: $const56.0 = const(int, 0)\n", - "2023-05-15 11:07:33,356 | DEBUG | ssa.py:193 | on stmt: $58return_value.1 = cast(value=$const56.0)\n", - "2023-05-15 11:07:33,356 | DEBUG | ssa.py:193 | on stmt: return $58return_value.1\n", - "2023-05-15 11:07:33,357 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:33,357 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,357 | DEBUG | ssa.py:193 | on stmt: $64compare_op.2 = v_last < v\n", - "2023-05-15 11:07:33,358 | DEBUG | ssa.py:193 | on stmt: bool66 = global(bool: )\n", - "2023-05-15 11:07:33,358 | DEBUG | ssa.py:193 | on stmt: $66pred = call bool66($64compare_op.2, func=bool66, args=(Var($64compare_op.2, arraymath.py:3868),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,359 | DEBUG | ssa.py:193 | on stmt: branch $66pred, 68, 74\n", - "2023-05-15 11:07:33,359 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:33,360 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,360 | DEBUG | ssa.py:193 | on stmt: hi = n\n", - "2023-05-15 11:07:33,361 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,361 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 74\n", - "2023-05-15 11:07:33,362 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,362 | DEBUG | ssa.py:193 | on stmt: lo = const(int, 0)\n", - "2023-05-15 11:07:33,363 | DEBUG | ssa.py:199 | replaced with: lo.1 = const(int, 0)\n", - "2023-05-15 11:07:33,363 | DEBUG | ssa.py:193 | on stmt: $82compare_op.3 = hi < n\n", - "2023-05-15 11:07:33,364 | DEBUG | ssa.py:193 | on stmt: bool84 = global(bool: )\n", - "2023-05-15 11:07:33,364 | DEBUG | ssa.py:193 | on stmt: $84pred = call bool84($82compare_op.3, func=bool84, args=(Var($82compare_op.3, arraymath.py:3872),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,365 | DEBUG | ssa.py:193 | on stmt: branch $84pred, 86, 94\n", - "2023-05-15 11:07:33,365 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 86\n", - "2023-05-15 11:07:33,365 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,366 | DEBUG | ssa.py:193 | on stmt: $const88.1 = const(int, 1)\n", - "2023-05-15 11:07:33,366 | DEBUG | ssa.py:193 | on stmt: $90binary_add.2 = hi + $const88.1\n", - "2023-05-15 11:07:33,367 | DEBUG | ssa.py:193 | on stmt: $phi96.0 = $90binary_add.2\n", - "2023-05-15 11:07:33,374 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,374 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 94\n", - "2023-05-15 11:07:33,375 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,375 | DEBUG | ssa.py:193 | on stmt: $phi96.0 = n\n", - "2023-05-15 11:07:33,376 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,376 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:33,377 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,378 | DEBUG | ssa.py:193 | on stmt: hi = $phi96.0\n", - "2023-05-15 11:07:33,378 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,378 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:33,379 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,379 | DEBUG | ssa.py:193 | on stmt: $102compare_op.2 = hi > lo\n", - "2023-05-15 11:07:33,379 | DEBUG | ssa.py:193 | on stmt: bool104 = global(bool: )\n", - "2023-05-15 11:07:33,380 | DEBUG | ssa.py:193 | on stmt: $104pred = call bool104($102compare_op.2, func=bool104, args=(Var($102compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,381 | DEBUG | ssa.py:193 | on stmt: branch $104pred, 106, 154\n", - "2023-05-15 11:07:33,381 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:33,382 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,382 | DEBUG | ssa.py:193 | on stmt: $110binary_add.2 = lo + hi\n", - "2023-05-15 11:07:33,383 | DEBUG | ssa.py:193 | on stmt: $const112.3 = const(int, 1)\n", - "2023-05-15 11:07:33,383 | DEBUG | ssa.py:193 | on stmt: mid = $110binary_add.2 >> $const112.3\n", - "2023-05-15 11:07:33,383 | DEBUG | ssa.py:193 | on stmt: $118load_deref.5 = freevar(func: )\n", - "2023-05-15 11:07:33,384 | DEBUG | ssa.py:193 | on stmt: $124binary_subscr.8 = getitem(value=a, index=mid, fn=)\n", - "2023-05-15 11:07:33,384 | DEBUG | ssa.py:193 | on stmt: $128call_function.10 = call $118load_deref.5($124binary_subscr.8, v, func=$118load_deref.5, args=[Var($124binary_subscr.8, arraymath.py:3876), Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,384 | DEBUG | ssa.py:193 | on stmt: bool130 = global(bool: )\n", - "2023-05-15 11:07:33,385 | DEBUG | ssa.py:193 | on stmt: $130pred = call bool130($128call_function.10, func=bool130, args=(Var($128call_function.10, arraymath.py:3876),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,385 | DEBUG | ssa.py:193 | on stmt: branch $130pred, 132, 142\n", - "2023-05-15 11:07:33,386 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 132\n", - "2023-05-15 11:07:33,386 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,386 | DEBUG | ssa.py:193 | on stmt: $const134.1 = const(int, 1)\n", - "2023-05-15 11:07:33,387 | DEBUG | ssa.py:193 | on stmt: lo = mid + $const134.1\n", - "2023-05-15 11:07:33,387 | DEBUG | ssa.py:199 | replaced with: lo.2 = mid + $const134.1\n", - "2023-05-15 11:07:33,387 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,388 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 142\n", - "2023-05-15 11:07:33,388 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,389 | DEBUG | ssa.py:193 | on stmt: hi = mid\n", - "2023-05-15 11:07:33,389 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,390 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:33,390 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,390 | DEBUG | ssa.py:193 | on stmt: $150compare_op.2 = hi > lo\n", - "2023-05-15 11:07:33,391 | DEBUG | ssa.py:193 | on stmt: bool152 = global(bool: )\n", - "2023-05-15 11:07:33,391 | DEBUG | ssa.py:193 | on stmt: $152pred = call bool152($150compare_op.2, func=bool152, args=(Var($150compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,391 | DEBUG | ssa.py:193 | on stmt: branch $152pred, 106, 154\n", - "2023-05-15 11:07:33,392 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:33,392 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,393 | DEBUG | ssa.py:193 | on stmt: $156return_value.1 = cast(value=lo)\n", - "2023-05-15 11:07:33,393 | DEBUG | ssa.py:193 | on stmt: return $156return_value.1\n", - "2023-05-15 11:07:33,393 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {0: [],\n", - " 74: [],\n", - " 132: []})\n", - "2023-05-15 11:07:33,394 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:33,394 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,395 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:33,395 | DEBUG | ssa.py:193 | on stmt: v = arg(1, name=v)\n", - "2023-05-15 11:07:33,395 | DEBUG | ssa.py:193 | on stmt: v_last = arg(2, name=v_last)\n", - "2023-05-15 11:07:33,396 | DEBUG | ssa.py:193 | on stmt: lo = arg(3, name=lo)\n", - "2023-05-15 11:07:33,396 | DEBUG | ssa.py:193 | on stmt: hi = arg(4, name=hi)\n", - "2023-05-15 11:07:33,396 | DEBUG | ssa.py:193 | on stmt: n = arg(5, name=n)\n", - "2023-05-15 11:07:33,397 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:33,397 | DEBUG | ssa.py:193 | on stmt: $4load_method.1 = getattr(value=$2load_global.0, attr=isnan)\n", - "2023-05-15 11:07:33,397 | DEBUG | ssa.py:193 | on stmt: $8call_method.3 = call $4load_method.1(v, func=$4load_method.1, args=[Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,398 | DEBUG | ssa.py:193 | on stmt: bool10 = global(bool: )\n", - "2023-05-15 11:07:33,398 | DEBUG | ssa.py:193 | on stmt: $10pred = call bool10($8call_method.3, func=bool10, args=(Var($8call_method.3, arraymath.py:3860),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,399 | DEBUG | ssa.py:193 | on stmt: branch $10pred, 12, 60\n", - "2023-05-15 11:07:33,399 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 12\n", - "2023-05-15 11:07:33,399 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,400 | DEBUG | ssa.py:193 | on stmt: $12load_global.0 = global(range: )\n", - "2023-05-15 11:07:33,400 | DEBUG | ssa.py:193 | on stmt: $const16.2 = const(int, 0)\n", - "2023-05-15 11:07:33,400 | DEBUG | ssa.py:193 | on stmt: $const18.3 = const(int, -1)\n", - "2023-05-15 11:07:33,401 | DEBUG | ssa.py:193 | on stmt: $20call_function.4 = call $12load_global.0(n, $const16.2, $const18.3, func=$12load_global.0, args=[Var(n, arraymath.py:3860), Var($const16.2, arraymath.py:3863), Var($const18.3, arraymath.py:3863)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,401 | DEBUG | ssa.py:193 | on stmt: $22get_iter.5 = getiter(value=$20call_function.4)\n", - "2023-05-15 11:07:33,402 | DEBUG | ssa.py:193 | on stmt: $phi24.0 = $22get_iter.5\n", - "2023-05-15 11:07:33,402 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,402 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 24\n", - "2023-05-15 11:07:33,403 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,403 | DEBUG | ssa.py:193 | on stmt: $24for_iter.1 = iternext(value=$phi24.0)\n", - "2023-05-15 11:07:33,403 | DEBUG | ssa.py:193 | on stmt: $24for_iter.2 = pair_first(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,404 | DEBUG | ssa.py:193 | on stmt: $24for_iter.3 = pair_second(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,404 | DEBUG | ssa.py:193 | on stmt: $phi26.1 = $24for_iter.2\n", - "2023-05-15 11:07:33,404 | DEBUG | ssa.py:193 | on stmt: branch $24for_iter.3, 26, 56\n", - "2023-05-15 11:07:33,405 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:33,405 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,406 | DEBUG | ssa.py:193 | on stmt: i = $phi26.1\n", - "2023-05-15 11:07:33,406 | DEBUG | ssa.py:193 | on stmt: $28load_global.2 = global(np: )\n", - "2023-05-15 11:07:33,407 | DEBUG | ssa.py:193 | on stmt: $30load_method.3 = getattr(value=$28load_global.2, attr=isnan)\n", - "2023-05-15 11:07:33,407 | DEBUG | ssa.py:193 | on stmt: $const36.6 = const(int, 1)\n", - "2023-05-15 11:07:33,409 | DEBUG | ssa.py:193 | on stmt: $38binary_subtract.7 = i - $const36.6\n", - "2023-05-15 11:07:33,413 | DEBUG | ssa.py:193 | on stmt: $40binary_subscr.8 = getitem(value=a, index=$38binary_subtract.7, fn=)\n", - "2023-05-15 11:07:33,415 | DEBUG | ssa.py:193 | on stmt: $42call_method.9 = call $30load_method.3($40binary_subscr.8, func=$30load_method.3, args=[Var($40binary_subscr.8, arraymath.py:3864)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,415 | DEBUG | ssa.py:193 | on stmt: bool44 = global(bool: )\n", - "2023-05-15 11:07:33,416 | DEBUG | ssa.py:193 | on stmt: $44pred = call bool44($42call_method.9, func=bool44, args=(Var($42call_method.9, arraymath.py:3864),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,416 | DEBUG | ssa.py:193 | on stmt: branch $44pred, 54, 46\n", - "2023-05-15 11:07:33,416 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:33,417 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,417 | DEBUG | ssa.py:193 | on stmt: $52return_value.2 = cast(value=i)\n", - "2023-05-15 11:07:33,418 | DEBUG | ssa.py:193 | on stmt: return $52return_value.2\n", - "2023-05-15 11:07:33,418 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 54\n", - "2023-05-15 11:07:33,418 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,419 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,419 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 56\n", - "2023-05-15 11:07:33,419 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,420 | DEBUG | ssa.py:193 | on stmt: $const56.0 = const(int, 0)\n", - "2023-05-15 11:07:33,420 | DEBUG | ssa.py:193 | on stmt: $58return_value.1 = cast(value=$const56.0)\n", - "2023-05-15 11:07:33,421 | DEBUG | ssa.py:193 | on stmt: return $58return_value.1\n", - "2023-05-15 11:07:33,421 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:33,421 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,422 | DEBUG | ssa.py:193 | on stmt: $64compare_op.2 = v_last < v\n", - "2023-05-15 11:07:33,422 | DEBUG | ssa.py:193 | on stmt: bool66 = global(bool: )\n", - "2023-05-15 11:07:33,423 | DEBUG | ssa.py:193 | on stmt: $66pred = call bool66($64compare_op.2, func=bool66, args=(Var($64compare_op.2, arraymath.py:3868),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,423 | DEBUG | ssa.py:193 | on stmt: branch $66pred, 68, 74\n", - "2023-05-15 11:07:33,423 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:33,424 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,424 | DEBUG | ssa.py:193 | on stmt: hi = n\n", - "2023-05-15 11:07:33,424 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,425 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 74\n", - "2023-05-15 11:07:33,425 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,425 | DEBUG | ssa.py:193 | on stmt: lo.1 = const(int, 0)\n", - "2023-05-15 11:07:33,426 | DEBUG | ssa.py:193 | on stmt: $82compare_op.3 = hi < n\n", - "2023-05-15 11:07:33,426 | DEBUG | ssa.py:193 | on stmt: bool84 = global(bool: )\n", - "2023-05-15 11:07:33,427 | DEBUG | ssa.py:193 | on stmt: $84pred = call bool84($82compare_op.3, func=bool84, args=(Var($82compare_op.3, arraymath.py:3872),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,427 | DEBUG | ssa.py:193 | on stmt: branch $84pred, 86, 94\n", - "2023-05-15 11:07:33,428 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 86\n", - "2023-05-15 11:07:33,428 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,429 | DEBUG | ssa.py:193 | on stmt: $const88.1 = const(int, 1)\n", - "2023-05-15 11:07:33,429 | DEBUG | ssa.py:193 | on stmt: $90binary_add.2 = hi + $const88.1\n", - "2023-05-15 11:07:33,429 | DEBUG | ssa.py:193 | on stmt: $phi96.0 = $90binary_add.2\n", - "2023-05-15 11:07:33,430 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,430 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 94\n", - "2023-05-15 11:07:33,431 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,431 | DEBUG | ssa.py:193 | on stmt: $phi96.0 = n\n", - "2023-05-15 11:07:33,432 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,432 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:33,432 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,433 | DEBUG | ssa.py:193 | on stmt: hi = $phi96.0\n", - "2023-05-15 11:07:33,433 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,433 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:33,434 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,434 | DEBUG | ssa.py:193 | on stmt: $102compare_op.2 = hi > lo\n", - "2023-05-15 11:07:33,435 | DEBUG | ssa.py:353 | find_def var='lo' stmt=$102compare_op.2 = hi > lo\n", - "2023-05-15 11:07:33,435 | DEBUG | ssa.py:384 | find_def_from_top label 98\n", - "2023-05-15 11:07:33,435 | DEBUG | ssa.py:401 | insert phi node lo.3 = phi(incoming_values=[], incoming_blocks=[]) at 98\n", - "2023-05-15 11:07:33,436 | DEBUG | ssa.py:427 | find_def_from_bottom label 96\n", - "2023-05-15 11:07:33,436 | DEBUG | ssa.py:384 | find_def_from_top label 96\n", - "2023-05-15 11:07:33,440 | DEBUG | ssa.py:421 | idom 74 from label 96\n", - "2023-05-15 11:07:33,443 | DEBUG | ssa.py:427 | find_def_from_bottom label 74\n", - "2023-05-15 11:07:33,443 | DEBUG | ssa.py:409 | incoming_def lo.1 = const(int, 0)\n", - "2023-05-15 11:07:33,444 | DEBUG | ssa.py:427 | find_def_from_bottom label 68\n", - "2023-05-15 11:07:33,444 | DEBUG | ssa.py:384 | find_def_from_top label 68\n", - "2023-05-15 11:07:33,444 | DEBUG | ssa.py:421 | idom 60 from label 68\n", - "2023-05-15 11:07:33,445 | DEBUG | ssa.py:427 | find_def_from_bottom label 60\n", - "2023-05-15 11:07:33,445 | DEBUG | ssa.py:384 | find_def_from_top label 60\n", - "2023-05-15 11:07:33,446 | DEBUG | ssa.py:421 | idom 0 from label 60\n", - "2023-05-15 11:07:33,446 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:33,446 | DEBUG | ssa.py:409 | incoming_def lo = arg(3, name=lo)\n", - "2023-05-15 11:07:33,447 | DEBUG | ssa.py:199 | replaced with: $102compare_op.2 = hi > lo.3\n", - "2023-05-15 11:07:33,447 | DEBUG | ssa.py:193 | on stmt: bool104 = global(bool: )\n", - "2023-05-15 11:07:33,448 | DEBUG | ssa.py:193 | on stmt: $104pred = call bool104($102compare_op.2, func=bool104, args=(Var($102compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,448 | DEBUG | ssa.py:193 | on stmt: branch $104pred, 106, 154\n", - "2023-05-15 11:07:33,449 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:33,451 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,451 | DEBUG | ssa.py:193 | on stmt: $110binary_add.2 = lo + hi\n", - "2023-05-15 11:07:33,452 | DEBUG | ssa.py:353 | find_def var='lo' stmt=$110binary_add.2 = lo + hi\n", - "2023-05-15 11:07:33,452 | DEBUG | ssa.py:384 | find_def_from_top label 106\n", - "2023-05-15 11:07:33,453 | DEBUG | ssa.py:401 | insert phi node lo.4 = phi(incoming_values=[], incoming_blocks=[]) at 106\n", - "2023-05-15 11:07:33,454 | DEBUG | ssa.py:427 | find_def_from_bottom label 98\n", - "2023-05-15 11:07:33,454 | DEBUG | ssa.py:409 | incoming_def lo.3 = phi(incoming_values=[Var(lo.1, arraymath.py:3871), Var(lo, arraymath.py:3860)], incoming_blocks=[96, 68])\n", - "2023-05-15 11:07:33,455 | DEBUG | ssa.py:427 | find_def_from_bottom label 146\n", - "2023-05-15 11:07:33,455 | DEBUG | ssa.py:384 | find_def_from_top label 146\n", - "2023-05-15 11:07:33,456 | DEBUG | ssa.py:401 | insert phi node lo.5 = phi(incoming_values=[], incoming_blocks=[]) at 146\n", - "2023-05-15 11:07:33,456 | DEBUG | ssa.py:427 | find_def_from_bottom label 132\n", - "2023-05-15 11:07:33,457 | DEBUG | ssa.py:409 | incoming_def lo.2 = mid + $const134.1\n", - "2023-05-15 11:07:33,457 | DEBUG | ssa.py:427 | find_def_from_bottom label 142\n", - "2023-05-15 11:07:33,458 | DEBUG | ssa.py:384 | find_def_from_top label 142\n", - "2023-05-15 11:07:33,458 | DEBUG | ssa.py:421 | idom 106 from label 142\n", - "2023-05-15 11:07:33,459 | DEBUG | ssa.py:427 | find_def_from_bottom label 106\n", - "2023-05-15 11:07:33,460 | DEBUG | ssa.py:409 | incoming_def lo.4 = phi(incoming_values=[Var(lo.3, arraymath.py:3874)], incoming_blocks=[98])\n", - "2023-05-15 11:07:33,460 | DEBUG | ssa.py:409 | incoming_def lo.5 = phi(incoming_values=[Var(lo.2, arraymath.py:3878), Var(lo.4, arraymath.py:3875)], incoming_blocks=[132, 142])\n", - "2023-05-15 11:07:33,461 | DEBUG | ssa.py:199 | replaced with: $110binary_add.2 = lo.4 + hi\n", - "2023-05-15 11:07:33,461 | DEBUG | ssa.py:193 | on stmt: $const112.3 = const(int, 1)\n", - "2023-05-15 11:07:33,462 | DEBUG | ssa.py:193 | on stmt: mid = $110binary_add.2 >> $const112.3\n", - "2023-05-15 11:07:33,462 | DEBUG | ssa.py:193 | on stmt: $118load_deref.5 = freevar(func: )\n", - "2023-05-15 11:07:33,463 | DEBUG | ssa.py:193 | on stmt: $124binary_subscr.8 = getitem(value=a, index=mid, fn=)\n", - "2023-05-15 11:07:33,463 | DEBUG | ssa.py:193 | on stmt: $128call_function.10 = call $118load_deref.5($124binary_subscr.8, v, func=$118load_deref.5, args=[Var($124binary_subscr.8, arraymath.py:3876), Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,464 | DEBUG | ssa.py:193 | on stmt: bool130 = global(bool: )\n", - "2023-05-15 11:07:33,464 | DEBUG | ssa.py:193 | on stmt: $130pred = call bool130($128call_function.10, func=bool130, args=(Var($128call_function.10, arraymath.py:3876),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,465 | DEBUG | ssa.py:193 | on stmt: branch $130pred, 132, 142\n", - "2023-05-15 11:07:33,465 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 132\n", - "2023-05-15 11:07:33,466 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,466 | DEBUG | ssa.py:193 | on stmt: $const134.1 = const(int, 1)\n", - "2023-05-15 11:07:33,467 | DEBUG | ssa.py:193 | on stmt: lo.2 = mid + $const134.1\n", - "2023-05-15 11:07:33,467 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,468 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 142\n", - "2023-05-15 11:07:33,468 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,469 | DEBUG | ssa.py:193 | on stmt: hi = mid\n", - "2023-05-15 11:07:33,469 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,470 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:33,470 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,470 | DEBUG | ssa.py:193 | on stmt: $150compare_op.2 = hi > lo\n", - "2023-05-15 11:07:33,471 | DEBUG | ssa.py:353 | find_def var='lo' stmt=$150compare_op.2 = hi > lo\n", - "2023-05-15 11:07:33,471 | DEBUG | ssa.py:199 | replaced with: $150compare_op.2 = hi > lo.5\n", - "2023-05-15 11:07:33,472 | DEBUG | ssa.py:193 | on stmt: bool152 = global(bool: )\n", - "2023-05-15 11:07:33,472 | DEBUG | ssa.py:193 | on stmt: $152pred = call bool152($150compare_op.2, func=bool152, args=(Var($150compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,473 | DEBUG | ssa.py:193 | on stmt: branch $152pred, 106, 154\n", - "2023-05-15 11:07:33,473 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:33,474 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,474 | DEBUG | ssa.py:193 | on stmt: $156return_value.1 = cast(value=lo)\n", - "2023-05-15 11:07:33,475 | DEBUG | ssa.py:353 | find_def var='lo' stmt=$156return_value.1 = cast(value=lo)\n", - "2023-05-15 11:07:33,475 | DEBUG | ssa.py:384 | find_def_from_top label 154\n", - "2023-05-15 11:07:33,476 | DEBUG | ssa.py:401 | insert phi node lo.6 = phi(incoming_values=[], incoming_blocks=[]) at 154\n", - "2023-05-15 11:07:33,476 | DEBUG | ssa.py:427 | find_def_from_bottom label 98\n", - "2023-05-15 11:07:33,477 | DEBUG | ssa.py:409 | incoming_def lo.3 = phi(incoming_values=[Var(lo.1, arraymath.py:3871), Var(lo, arraymath.py:3860)], incoming_blocks=[96, 68])\n", - "2023-05-15 11:07:33,477 | DEBUG | ssa.py:427 | find_def_from_bottom label 146\n", - "2023-05-15 11:07:33,477 | DEBUG | ssa.py:409 | incoming_def lo.5 = phi(incoming_values=[Var(lo.2, arraymath.py:3878), Var(lo.4, arraymath.py:3875)], incoming_blocks=[132, 142])\n", - "2023-05-15 11:07:33,478 | DEBUG | ssa.py:199 | replaced with: $156return_value.1 = cast(value=lo.6)\n", - "2023-05-15 11:07:33,478 | DEBUG | ssa.py:193 | on stmt: return $156return_value.1\n", - "2023-05-15 11:07:33,479 | DEBUG | ssa.py:63 | Fix SSA violator on var $phi96.0\n", - "2023-05-15 11:07:33,480 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:33,480 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,481 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:33,481 | DEBUG | ssa.py:193 | on stmt: v = arg(1, name=v)\n", - "2023-05-15 11:07:33,481 | DEBUG | ssa.py:193 | on stmt: v_last = arg(2, name=v_last)\n", - "2023-05-15 11:07:33,482 | DEBUG | ssa.py:193 | on stmt: lo = arg(3, name=lo)\n", - "2023-05-15 11:07:33,482 | DEBUG | ssa.py:193 | on stmt: hi = arg(4, name=hi)\n", - "2023-05-15 11:07:33,483 | DEBUG | ssa.py:193 | on stmt: n = arg(5, name=n)\n", - "2023-05-15 11:07:33,483 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:33,484 | DEBUG | ssa.py:193 | on stmt: $4load_method.1 = getattr(value=$2load_global.0, attr=isnan)\n", - "2023-05-15 11:07:33,484 | DEBUG | ssa.py:193 | on stmt: $8call_method.3 = call $4load_method.1(v, func=$4load_method.1, args=[Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,485 | DEBUG | ssa.py:193 | on stmt: bool10 = global(bool: )\n", - "2023-05-15 11:07:33,485 | DEBUG | ssa.py:193 | on stmt: $10pred = call bool10($8call_method.3, func=bool10, args=(Var($8call_method.3, arraymath.py:3860),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,486 | DEBUG | ssa.py:193 | on stmt: branch $10pred, 12, 60\n", - "2023-05-15 11:07:33,486 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 12\n", - "2023-05-15 11:07:33,487 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,487 | DEBUG | ssa.py:193 | on stmt: $12load_global.0 = global(range: )\n", - "2023-05-15 11:07:33,488 | DEBUG | ssa.py:193 | on stmt: $const16.2 = const(int, 0)\n", - "2023-05-15 11:07:33,488 | DEBUG | ssa.py:193 | on stmt: $const18.3 = const(int, -1)\n", - "2023-05-15 11:07:33,489 | DEBUG | ssa.py:193 | on stmt: $20call_function.4 = call $12load_global.0(n, $const16.2, $const18.3, func=$12load_global.0, args=[Var(n, arraymath.py:3860), Var($const16.2, arraymath.py:3863), Var($const18.3, arraymath.py:3863)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,489 | DEBUG | ssa.py:193 | on stmt: $22get_iter.5 = getiter(value=$20call_function.4)\n", - "2023-05-15 11:07:33,490 | DEBUG | ssa.py:193 | on stmt: $phi24.0 = $22get_iter.5\n", - "2023-05-15 11:07:33,490 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,490 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 24\n", - "2023-05-15 11:07:33,491 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,491 | DEBUG | ssa.py:193 | on stmt: $24for_iter.1 = iternext(value=$phi24.0)\n", - "2023-05-15 11:07:33,492 | DEBUG | ssa.py:193 | on stmt: $24for_iter.2 = pair_first(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,492 | DEBUG | ssa.py:193 | on stmt: $24for_iter.3 = pair_second(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,492 | DEBUG | ssa.py:193 | on stmt: $phi26.1 = $24for_iter.2\n", - "2023-05-15 11:07:33,493 | DEBUG | ssa.py:193 | on stmt: branch $24for_iter.3, 26, 56\n", - "2023-05-15 11:07:33,493 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:33,494 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,497 | DEBUG | ssa.py:193 | on stmt: i = $phi26.1\n", - "2023-05-15 11:07:33,498 | DEBUG | ssa.py:193 | on stmt: $28load_global.2 = global(np: )\n", - "2023-05-15 11:07:33,498 | DEBUG | ssa.py:193 | on stmt: $30load_method.3 = getattr(value=$28load_global.2, attr=isnan)\n", - "2023-05-15 11:07:33,499 | DEBUG | ssa.py:193 | on stmt: $const36.6 = const(int, 1)\n", - "2023-05-15 11:07:33,499 | DEBUG | ssa.py:193 | on stmt: $38binary_subtract.7 = i - $const36.6\n", - "2023-05-15 11:07:33,500 | DEBUG | ssa.py:193 | on stmt: $40binary_subscr.8 = getitem(value=a, index=$38binary_subtract.7, fn=)\n", - "2023-05-15 11:07:33,500 | DEBUG | ssa.py:193 | on stmt: $42call_method.9 = call $30load_method.3($40binary_subscr.8, func=$30load_method.3, args=[Var($40binary_subscr.8, arraymath.py:3864)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,501 | DEBUG | ssa.py:193 | on stmt: bool44 = global(bool: )\n", - "2023-05-15 11:07:33,502 | DEBUG | ssa.py:193 | on stmt: $44pred = call bool44($42call_method.9, func=bool44, args=(Var($42call_method.9, arraymath.py:3864),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,502 | DEBUG | ssa.py:193 | on stmt: branch $44pred, 54, 46\n", - "2023-05-15 11:07:33,503 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:33,503 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,503 | DEBUG | ssa.py:193 | on stmt: $52return_value.2 = cast(value=i)\n", - "2023-05-15 11:07:33,506 | DEBUG | ssa.py:193 | on stmt: return $52return_value.2\n", - "2023-05-15 11:07:33,508 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 54\n", - "2023-05-15 11:07:33,509 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,510 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,514 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 56\n", - "2023-05-15 11:07:33,516 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,516 | DEBUG | ssa.py:193 | on stmt: $const56.0 = const(int, 0)\n", - "2023-05-15 11:07:33,517 | DEBUG | ssa.py:193 | on stmt: $58return_value.1 = cast(value=$const56.0)\n", - "2023-05-15 11:07:33,517 | DEBUG | ssa.py:193 | on stmt: return $58return_value.1\n", - "2023-05-15 11:07:33,517 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:33,519 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,519 | DEBUG | ssa.py:193 | on stmt: $64compare_op.2 = v_last < v\n", - "2023-05-15 11:07:33,519 | DEBUG | ssa.py:193 | on stmt: bool66 = global(bool: )\n", - "2023-05-15 11:07:33,520 | DEBUG | ssa.py:193 | on stmt: $66pred = call bool66($64compare_op.2, func=bool66, args=(Var($64compare_op.2, arraymath.py:3868),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,520 | DEBUG | ssa.py:193 | on stmt: branch $66pred, 68, 74\n", - "2023-05-15 11:07:33,522 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:33,522 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,523 | DEBUG | ssa.py:193 | on stmt: hi = n\n", - "2023-05-15 11:07:33,524 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,524 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 74\n", - "2023-05-15 11:07:33,525 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,525 | DEBUG | ssa.py:193 | on stmt: lo.1 = const(int, 0)\n", - "2023-05-15 11:07:33,527 | DEBUG | ssa.py:193 | on stmt: $82compare_op.3 = hi < n\n", - "2023-05-15 11:07:33,527 | DEBUG | ssa.py:193 | on stmt: bool84 = global(bool: )\n", - "2023-05-15 11:07:33,528 | DEBUG | ssa.py:193 | on stmt: $84pred = call bool84($82compare_op.3, func=bool84, args=(Var($82compare_op.3, arraymath.py:3872),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,528 | DEBUG | ssa.py:193 | on stmt: branch $84pred, 86, 94\n", - "2023-05-15 11:07:33,529 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 86\n", - "2023-05-15 11:07:33,529 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,530 | DEBUG | ssa.py:193 | on stmt: $const88.1 = const(int, 1)\n", - "2023-05-15 11:07:33,530 | DEBUG | ssa.py:193 | on stmt: $90binary_add.2 = hi + $const88.1\n", - "2023-05-15 11:07:33,531 | DEBUG | ssa.py:193 | on stmt: $phi96.0 = $90binary_add.2\n", - "2023-05-15 11:07:33,531 | DEBUG | ssa.py:269 | first assign: $phi96.0\n", - "2023-05-15 11:07:33,531 | DEBUG | ssa.py:199 | replaced with: $phi96.0 = $90binary_add.2\n", - "2023-05-15 11:07:33,532 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,532 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 94\n", - "2023-05-15 11:07:33,533 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,533 | DEBUG | ssa.py:193 | on stmt: $phi96.0 = n\n", - "2023-05-15 11:07:33,534 | DEBUG | ssa.py:199 | replaced with: $phi96.0.1 = n\n", - "2023-05-15 11:07:33,534 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,537 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:33,538 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,538 | DEBUG | ssa.py:193 | on stmt: hi = $phi96.0\n", - "2023-05-15 11:07:33,538 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,539 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:33,539 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,540 | DEBUG | ssa.py:193 | on stmt: lo.3 = phi(incoming_values=[Var(lo.1, arraymath.py:3871), Var(lo, arraymath.py:3860)], incoming_blocks=[96, 68])\n", - "2023-05-15 11:07:33,540 | DEBUG | ssa.py:193 | on stmt: $102compare_op.2 = hi > lo.3\n", - "2023-05-15 11:07:33,541 | DEBUG | ssa.py:193 | on stmt: bool104 = global(bool: )\n", - "2023-05-15 11:07:33,541 | DEBUG | ssa.py:193 | on stmt: $104pred = call bool104($102compare_op.2, func=bool104, args=(Var($102compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,541 | DEBUG | ssa.py:193 | on stmt: branch $104pred, 106, 154\n", - "2023-05-15 11:07:33,542 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:33,542 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,542 | DEBUG | ssa.py:193 | on stmt: lo.4 = phi(incoming_values=[Var(lo.3, arraymath.py:3874), Var(lo.5, arraymath.py:3875)], incoming_blocks=[98, 146])\n", - "2023-05-15 11:07:33,543 | DEBUG | ssa.py:193 | on stmt: $110binary_add.2 = lo.4 + hi\n", - "2023-05-15 11:07:33,543 | DEBUG | ssa.py:193 | on stmt: $const112.3 = const(int, 1)\n", - "2023-05-15 11:07:33,544 | DEBUG | ssa.py:193 | on stmt: mid = $110binary_add.2 >> $const112.3\n", - "2023-05-15 11:07:33,544 | DEBUG | ssa.py:193 | on stmt: $118load_deref.5 = freevar(func: )\n", - "2023-05-15 11:07:33,544 | DEBUG | ssa.py:193 | on stmt: $124binary_subscr.8 = getitem(value=a, index=mid, fn=)\n", - "2023-05-15 11:07:33,545 | DEBUG | ssa.py:193 | on stmt: $128call_function.10 = call $118load_deref.5($124binary_subscr.8, v, func=$118load_deref.5, args=[Var($124binary_subscr.8, arraymath.py:3876), Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,545 | DEBUG | ssa.py:193 | on stmt: bool130 = global(bool: )\n", - "2023-05-15 11:07:33,546 | DEBUG | ssa.py:193 | on stmt: $130pred = call bool130($128call_function.10, func=bool130, args=(Var($128call_function.10, arraymath.py:3876),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,546 | DEBUG | ssa.py:193 | on stmt: branch $130pred, 132, 142\n", - "2023-05-15 11:07:33,546 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 132\n", - "2023-05-15 11:07:33,547 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,550 | DEBUG | ssa.py:193 | on stmt: $const134.1 = const(int, 1)\n", - "2023-05-15 11:07:33,550 | DEBUG | ssa.py:193 | on stmt: lo.2 = mid + $const134.1\n", - "2023-05-15 11:07:33,550 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,551 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 142\n", - "2023-05-15 11:07:33,551 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,552 | DEBUG | ssa.py:193 | on stmt: hi = mid\n", - "2023-05-15 11:07:33,552 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,553 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:33,553 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,554 | DEBUG | ssa.py:193 | on stmt: lo.5 = phi(incoming_values=[Var(lo.2, arraymath.py:3878), Var(lo.4, arraymath.py:3875)], incoming_blocks=[132, 142])\n", - "2023-05-15 11:07:33,554 | DEBUG | ssa.py:193 | on stmt: $150compare_op.2 = hi > lo.5\n", - "2023-05-15 11:07:33,555 | DEBUG | ssa.py:193 | on stmt: bool152 = global(bool: )\n", - "2023-05-15 11:07:33,555 | DEBUG | ssa.py:193 | on stmt: $152pred = call bool152($150compare_op.2, func=bool152, args=(Var($150compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,556 | DEBUG | ssa.py:193 | on stmt: branch $152pred, 106, 154\n", - "2023-05-15 11:07:33,556 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:33,557 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,557 | DEBUG | ssa.py:193 | on stmt: lo.6 = phi(incoming_values=[Var(lo.3, arraymath.py:3874), Var(lo.5, arraymath.py:3875)], incoming_blocks=[98, 146])\n", - "2023-05-15 11:07:33,557 | DEBUG | ssa.py:193 | on stmt: $156return_value.1 = cast(value=lo.6)\n", - "2023-05-15 11:07:33,558 | DEBUG | ssa.py:193 | on stmt: return $156return_value.1\n", - "2023-05-15 11:07:33,558 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {86: [],\n", - " 94: []})\n", - "2023-05-15 11:07:33,559 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:33,560 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,560 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:33,561 | DEBUG | ssa.py:193 | on stmt: v = arg(1, name=v)\n", - "2023-05-15 11:07:33,561 | DEBUG | ssa.py:193 | on stmt: v_last = arg(2, name=v_last)\n", - "2023-05-15 11:07:33,562 | DEBUG | ssa.py:193 | on stmt: lo = arg(3, name=lo)\n", - "2023-05-15 11:07:33,562 | DEBUG | ssa.py:193 | on stmt: hi = arg(4, name=hi)\n", - "2023-05-15 11:07:33,563 | DEBUG | ssa.py:193 | on stmt: n = arg(5, name=n)\n", - "2023-05-15 11:07:33,563 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:33,563 | DEBUG | ssa.py:193 | on stmt: $4load_method.1 = getattr(value=$2load_global.0, attr=isnan)\n", - "2023-05-15 11:07:33,565 | DEBUG | ssa.py:193 | on stmt: $8call_method.3 = call $4load_method.1(v, func=$4load_method.1, args=[Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,565 | DEBUG | ssa.py:193 | on stmt: bool10 = global(bool: )\n", - "2023-05-15 11:07:33,566 | DEBUG | ssa.py:193 | on stmt: $10pred = call bool10($8call_method.3, func=bool10, args=(Var($8call_method.3, arraymath.py:3860),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,566 | DEBUG | ssa.py:193 | on stmt: branch $10pred, 12, 60\n", - "2023-05-15 11:07:33,567 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 12\n", - "2023-05-15 11:07:33,567 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,567 | DEBUG | ssa.py:193 | on stmt: $12load_global.0 = global(range: )\n", - "2023-05-15 11:07:33,568 | DEBUG | ssa.py:193 | on stmt: $const16.2 = const(int, 0)\n", - "2023-05-15 11:07:33,568 | DEBUG | ssa.py:193 | on stmt: $const18.3 = const(int, -1)\n", - "2023-05-15 11:07:33,569 | DEBUG | ssa.py:193 | on stmt: $20call_function.4 = call $12load_global.0(n, $const16.2, $const18.3, func=$12load_global.0, args=[Var(n, arraymath.py:3860), Var($const16.2, arraymath.py:3863), Var($const18.3, arraymath.py:3863)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,569 | DEBUG | ssa.py:193 | on stmt: $22get_iter.5 = getiter(value=$20call_function.4)\n", - "2023-05-15 11:07:33,570 | DEBUG | ssa.py:193 | on stmt: $phi24.0 = $22get_iter.5\n", - "2023-05-15 11:07:33,570 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,571 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 24\n", - "2023-05-15 11:07:33,571 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,572 | DEBUG | ssa.py:193 | on stmt: $24for_iter.1 = iternext(value=$phi24.0)\n", - "2023-05-15 11:07:33,572 | DEBUG | ssa.py:193 | on stmt: $24for_iter.2 = pair_first(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,573 | DEBUG | ssa.py:193 | on stmt: $24for_iter.3 = pair_second(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,573 | DEBUG | ssa.py:193 | on stmt: $phi26.1 = $24for_iter.2\n", - "2023-05-15 11:07:33,574 | DEBUG | ssa.py:193 | on stmt: branch $24for_iter.3, 26, 56\n", - "2023-05-15 11:07:33,574 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:33,575 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,575 | DEBUG | ssa.py:193 | on stmt: i = $phi26.1\n", - "2023-05-15 11:07:33,576 | DEBUG | ssa.py:193 | on stmt: $28load_global.2 = global(np: )\n", - "2023-05-15 11:07:33,576 | DEBUG | ssa.py:193 | on stmt: $30load_method.3 = getattr(value=$28load_global.2, attr=isnan)\n", - "2023-05-15 11:07:33,577 | DEBUG | ssa.py:193 | on stmt: $const36.6 = const(int, 1)\n", - "2023-05-15 11:07:33,577 | DEBUG | ssa.py:193 | on stmt: $38binary_subtract.7 = i - $const36.6\n", - "2023-05-15 11:07:33,578 | DEBUG | ssa.py:193 | on stmt: $40binary_subscr.8 = getitem(value=a, index=$38binary_subtract.7, fn=)\n", - "2023-05-15 11:07:33,578 | DEBUG | ssa.py:193 | on stmt: $42call_method.9 = call $30load_method.3($40binary_subscr.8, func=$30load_method.3, args=[Var($40binary_subscr.8, arraymath.py:3864)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,579 | DEBUG | ssa.py:193 | on stmt: bool44 = global(bool: )\n", - "2023-05-15 11:07:33,579 | DEBUG | ssa.py:193 | on stmt: $44pred = call bool44($42call_method.9, func=bool44, args=(Var($42call_method.9, arraymath.py:3864),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,580 | DEBUG | ssa.py:193 | on stmt: branch $44pred, 54, 46\n", - "2023-05-15 11:07:33,580 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:33,581 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,582 | DEBUG | ssa.py:193 | on stmt: $52return_value.2 = cast(value=i)\n", - "2023-05-15 11:07:33,582 | DEBUG | ssa.py:193 | on stmt: return $52return_value.2\n", - "2023-05-15 11:07:33,582 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 54\n", - "2023-05-15 11:07:33,583 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,583 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,584 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 56\n", - "2023-05-15 11:07:33,584 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,585 | DEBUG | ssa.py:193 | on stmt: $const56.0 = const(int, 0)\n", - "2023-05-15 11:07:33,585 | DEBUG | ssa.py:193 | on stmt: $58return_value.1 = cast(value=$const56.0)\n", - "2023-05-15 11:07:33,586 | DEBUG | ssa.py:193 | on stmt: return $58return_value.1\n", - "2023-05-15 11:07:33,586 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:33,587 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,587 | DEBUG | ssa.py:193 | on stmt: $64compare_op.2 = v_last < v\n", - "2023-05-15 11:07:33,588 | DEBUG | ssa.py:193 | on stmt: bool66 = global(bool: )\n", - "2023-05-15 11:07:33,588 | DEBUG | ssa.py:193 | on stmt: $66pred = call bool66($64compare_op.2, func=bool66, args=(Var($64compare_op.2, arraymath.py:3868),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,588 | DEBUG | ssa.py:193 | on stmt: branch $66pred, 68, 74\n", - "2023-05-15 11:07:33,589 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:33,589 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,590 | DEBUG | ssa.py:193 | on stmt: hi = n\n", - "2023-05-15 11:07:33,590 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,591 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 74\n", - "2023-05-15 11:07:33,591 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,591 | DEBUG | ssa.py:193 | on stmt: lo.1 = const(int, 0)\n", - "2023-05-15 11:07:33,592 | DEBUG | ssa.py:193 | on stmt: $82compare_op.3 = hi < n\n", - "2023-05-15 11:07:33,592 | DEBUG | ssa.py:193 | on stmt: bool84 = global(bool: )\n", - "2023-05-15 11:07:33,593 | DEBUG | ssa.py:193 | on stmt: $84pred = call bool84($82compare_op.3, func=bool84, args=(Var($82compare_op.3, arraymath.py:3872),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,593 | DEBUG | ssa.py:193 | on stmt: branch $84pred, 86, 94\n", - "2023-05-15 11:07:33,593 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 86\n", - "2023-05-15 11:07:33,594 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,594 | DEBUG | ssa.py:193 | on stmt: $const88.1 = const(int, 1)\n", - "2023-05-15 11:07:33,594 | DEBUG | ssa.py:193 | on stmt: $90binary_add.2 = hi + $const88.1\n", - "2023-05-15 11:07:33,595 | DEBUG | ssa.py:193 | on stmt: $phi96.0 = $90binary_add.2\n", - "2023-05-15 11:07:33,595 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,596 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 94\n", - "2023-05-15 11:07:33,596 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,597 | DEBUG | ssa.py:193 | on stmt: $phi96.0.1 = n\n", - "2023-05-15 11:07:33,597 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,597 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:33,598 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,598 | DEBUG | ssa.py:193 | on stmt: hi = $phi96.0\n", - "2023-05-15 11:07:33,599 | DEBUG | ssa.py:353 | find_def var='$phi96.0' stmt=hi = $phi96.0\n", - "2023-05-15 11:07:33,599 | DEBUG | ssa.py:384 | find_def_from_top label 96\n", - "2023-05-15 11:07:33,600 | DEBUG | ssa.py:401 | insert phi node $phi96.0.2 = phi(incoming_values=[], incoming_blocks=[]) at 96\n", - "2023-05-15 11:07:33,600 | DEBUG | ssa.py:427 | find_def_from_bottom label 94\n", - "2023-05-15 11:07:33,600 | DEBUG | ssa.py:409 | incoming_def $phi96.0.1 = n\n", - "2023-05-15 11:07:33,601 | DEBUG | ssa.py:427 | find_def_from_bottom label 86\n", - "2023-05-15 11:07:33,601 | DEBUG | ssa.py:409 | incoming_def $phi96.0 = $90binary_add.2\n", - "2023-05-15 11:07:33,602 | DEBUG | ssa.py:199 | replaced with: hi = $phi96.0.2\n", - "2023-05-15 11:07:33,602 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,602 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:33,603 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,603 | DEBUG | ssa.py:193 | on stmt: lo.3 = phi(incoming_values=[Var(lo.1, arraymath.py:3871), Var(lo, arraymath.py:3860)], incoming_blocks=[96, 68])\n", - "2023-05-15 11:07:33,604 | DEBUG | ssa.py:193 | on stmt: $102compare_op.2 = hi > lo.3\n", - "2023-05-15 11:07:33,604 | DEBUG | ssa.py:193 | on stmt: bool104 = global(bool: )\n", - "2023-05-15 11:07:33,604 | DEBUG | ssa.py:193 | on stmt: $104pred = call bool104($102compare_op.2, func=bool104, args=(Var($102compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,605 | DEBUG | ssa.py:193 | on stmt: branch $104pred, 106, 154\n", - "2023-05-15 11:07:33,605 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:33,606 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,606 | DEBUG | ssa.py:193 | on stmt: lo.4 = phi(incoming_values=[Var(lo.3, arraymath.py:3874), Var(lo.5, arraymath.py:3875)], incoming_blocks=[98, 146])\n", - "2023-05-15 11:07:33,606 | DEBUG | ssa.py:193 | on stmt: $110binary_add.2 = lo.4 + hi\n", - "2023-05-15 11:07:33,607 | DEBUG | ssa.py:193 | on stmt: $const112.3 = const(int, 1)\n", - "2023-05-15 11:07:33,607 | DEBUG | ssa.py:193 | on stmt: mid = $110binary_add.2 >> $const112.3\n", - "2023-05-15 11:07:33,608 | DEBUG | ssa.py:193 | on stmt: $118load_deref.5 = freevar(func: )\n", - "2023-05-15 11:07:33,608 | DEBUG | ssa.py:193 | on stmt: $124binary_subscr.8 = getitem(value=a, index=mid, fn=)\n", - "2023-05-15 11:07:33,609 | DEBUG | ssa.py:193 | on stmt: $128call_function.10 = call $118load_deref.5($124binary_subscr.8, v, func=$118load_deref.5, args=[Var($124binary_subscr.8, arraymath.py:3876), Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,609 | DEBUG | ssa.py:193 | on stmt: bool130 = global(bool: )\n", - "2023-05-15 11:07:33,610 | DEBUG | ssa.py:193 | on stmt: $130pred = call bool130($128call_function.10, func=bool130, args=(Var($128call_function.10, arraymath.py:3876),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,610 | DEBUG | ssa.py:193 | on stmt: branch $130pred, 132, 142\n", - "2023-05-15 11:07:33,611 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 132\n", - "2023-05-15 11:07:33,620 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,626 | DEBUG | ssa.py:193 | on stmt: $const134.1 = const(int, 1)\n", - "2023-05-15 11:07:33,629 | DEBUG | ssa.py:193 | on stmt: lo.2 = mid + $const134.1\n", - "2023-05-15 11:07:33,629 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,630 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 142\n", - "2023-05-15 11:07:33,631 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,632 | DEBUG | ssa.py:193 | on stmt: hi = mid\n", - "2023-05-15 11:07:33,632 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,633 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:33,633 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,634 | DEBUG | ssa.py:193 | on stmt: lo.5 = phi(incoming_values=[Var(lo.2, arraymath.py:3878), Var(lo.4, arraymath.py:3875)], incoming_blocks=[132, 142])\n", - "2023-05-15 11:07:33,634 | DEBUG | ssa.py:193 | on stmt: $150compare_op.2 = hi > lo.5\n", - "2023-05-15 11:07:33,635 | DEBUG | ssa.py:193 | on stmt: bool152 = global(bool: )\n", - "2023-05-15 11:07:33,635 | DEBUG | ssa.py:193 | on stmt: $152pred = call bool152($150compare_op.2, func=bool152, args=(Var($150compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,635 | DEBUG | ssa.py:193 | on stmt: branch $152pred, 106, 154\n", - "2023-05-15 11:07:33,636 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:33,636 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,637 | DEBUG | ssa.py:193 | on stmt: lo.6 = phi(incoming_values=[Var(lo.3, arraymath.py:3874), Var(lo.5, arraymath.py:3875)], incoming_blocks=[98, 146])\n", - "2023-05-15 11:07:33,637 | DEBUG | ssa.py:193 | on stmt: $156return_value.1 = cast(value=lo.6)\n", - "2023-05-15 11:07:33,638 | DEBUG | ssa.py:193 | on stmt: return $156return_value.1\n", - "2023-05-15 11:07:33,638 | DEBUG | ssa.py:63 | Fix SSA violator on var hi\n", - "2023-05-15 11:07:33,638 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:33,639 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,639 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:33,640 | DEBUG | ssa.py:193 | on stmt: v = arg(1, name=v)\n", - "2023-05-15 11:07:33,640 | DEBUG | ssa.py:193 | on stmt: v_last = arg(2, name=v_last)\n", - "2023-05-15 11:07:33,641 | DEBUG | ssa.py:193 | on stmt: lo = arg(3, name=lo)\n", - "2023-05-15 11:07:33,641 | DEBUG | ssa.py:193 | on stmt: hi = arg(4, name=hi)\n", - "2023-05-15 11:07:33,642 | DEBUG | ssa.py:269 | first assign: hi\n", - "2023-05-15 11:07:33,644 | DEBUG | ssa.py:199 | replaced with: hi = arg(4, name=hi)\n", - "2023-05-15 11:07:33,645 | DEBUG | ssa.py:193 | on stmt: n = arg(5, name=n)\n", - "2023-05-15 11:07:33,645 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:33,646 | DEBUG | ssa.py:193 | on stmt: $4load_method.1 = getattr(value=$2load_global.0, attr=isnan)\n", - "2023-05-15 11:07:33,647 | DEBUG | ssa.py:193 | on stmt: $8call_method.3 = call $4load_method.1(v, func=$4load_method.1, args=[Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,647 | DEBUG | ssa.py:193 | on stmt: bool10 = global(bool: )\n", - "2023-05-15 11:07:33,648 | DEBUG | ssa.py:193 | on stmt: $10pred = call bool10($8call_method.3, func=bool10, args=(Var($8call_method.3, arraymath.py:3860),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,648 | DEBUG | ssa.py:193 | on stmt: branch $10pred, 12, 60\n", - "2023-05-15 11:07:33,649 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 12\n", - "2023-05-15 11:07:33,650 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,650 | DEBUG | ssa.py:193 | on stmt: $12load_global.0 = global(range: )\n", - "2023-05-15 11:07:33,650 | DEBUG | ssa.py:193 | on stmt: $const16.2 = const(int, 0)\n", - "2023-05-15 11:07:33,651 | DEBUG | ssa.py:193 | on stmt: $const18.3 = const(int, -1)\n", - "2023-05-15 11:07:33,651 | DEBUG | ssa.py:193 | on stmt: $20call_function.4 = call $12load_global.0(n, $const16.2, $const18.3, func=$12load_global.0, args=[Var(n, arraymath.py:3860), Var($const16.2, arraymath.py:3863), Var($const18.3, arraymath.py:3863)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,652 | DEBUG | ssa.py:193 | on stmt: $22get_iter.5 = getiter(value=$20call_function.4)\n", - "2023-05-15 11:07:33,652 | DEBUG | ssa.py:193 | on stmt: $phi24.0 = $22get_iter.5\n", - "2023-05-15 11:07:33,655 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,655 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 24\n", - "2023-05-15 11:07:33,656 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,656 | DEBUG | ssa.py:193 | on stmt: $24for_iter.1 = iternext(value=$phi24.0)\n", - "2023-05-15 11:07:33,657 | DEBUG | ssa.py:193 | on stmt: $24for_iter.2 = pair_first(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,657 | DEBUG | ssa.py:193 | on stmt: $24for_iter.3 = pair_second(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,658 | DEBUG | ssa.py:193 | on stmt: $phi26.1 = $24for_iter.2\n", - "2023-05-15 11:07:33,658 | DEBUG | ssa.py:193 | on stmt: branch $24for_iter.3, 26, 56\n", - "2023-05-15 11:07:33,659 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:33,659 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,660 | DEBUG | ssa.py:193 | on stmt: i = $phi26.1\n", - "2023-05-15 11:07:33,660 | DEBUG | ssa.py:193 | on stmt: $28load_global.2 = global(np: )\n", - "2023-05-15 11:07:33,661 | DEBUG | ssa.py:193 | on stmt: $30load_method.3 = getattr(value=$28load_global.2, attr=isnan)\n", - "2023-05-15 11:07:33,664 | DEBUG | ssa.py:193 | on stmt: $const36.6 = const(int, 1)\n", - "2023-05-15 11:07:33,664 | DEBUG | ssa.py:193 | on stmt: $38binary_subtract.7 = i - $const36.6\n", - "2023-05-15 11:07:33,665 | DEBUG | ssa.py:193 | on stmt: $40binary_subscr.8 = getitem(value=a, index=$38binary_subtract.7, fn=)\n", - "2023-05-15 11:07:33,665 | DEBUG | ssa.py:193 | on stmt: $42call_method.9 = call $30load_method.3($40binary_subscr.8, func=$30load_method.3, args=[Var($40binary_subscr.8, arraymath.py:3864)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,667 | DEBUG | ssa.py:193 | on stmt: bool44 = global(bool: )\n", - "2023-05-15 11:07:33,667 | DEBUG | ssa.py:193 | on stmt: $44pred = call bool44($42call_method.9, func=bool44, args=(Var($42call_method.9, arraymath.py:3864),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,668 | DEBUG | ssa.py:193 | on stmt: branch $44pred, 54, 46\n", - "2023-05-15 11:07:33,668 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:33,669 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,670 | DEBUG | ssa.py:193 | on stmt: $52return_value.2 = cast(value=i)\n", - "2023-05-15 11:07:33,670 | DEBUG | ssa.py:193 | on stmt: return $52return_value.2\n", - "2023-05-15 11:07:33,670 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 54\n", - "2023-05-15 11:07:33,671 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,671 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,672 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 56\n", - "2023-05-15 11:07:33,673 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,675 | DEBUG | ssa.py:193 | on stmt: $const56.0 = const(int, 0)\n", - "2023-05-15 11:07:33,675 | DEBUG | ssa.py:193 | on stmt: $58return_value.1 = cast(value=$const56.0)\n", - "2023-05-15 11:07:33,676 | DEBUG | ssa.py:193 | on stmt: return $58return_value.1\n", - "2023-05-15 11:07:33,677 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:33,677 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,678 | DEBUG | ssa.py:193 | on stmt: $64compare_op.2 = v_last < v\n", - "2023-05-15 11:07:33,678 | DEBUG | ssa.py:193 | on stmt: bool66 = global(bool: )\n", - "2023-05-15 11:07:33,679 | DEBUG | ssa.py:193 | on stmt: $66pred = call bool66($64compare_op.2, func=bool66, args=(Var($64compare_op.2, arraymath.py:3868),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,679 | DEBUG | ssa.py:193 | on stmt: branch $66pred, 68, 74\n", - "2023-05-15 11:07:33,680 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:33,681 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,681 | DEBUG | ssa.py:193 | on stmt: hi = n\n", - "2023-05-15 11:07:33,681 | DEBUG | ssa.py:199 | replaced with: hi.1 = n\n", - "2023-05-15 11:07:33,682 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,682 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 74\n", - "2023-05-15 11:07:33,683 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,685 | DEBUG | ssa.py:193 | on stmt: lo.1 = const(int, 0)\n", - "2023-05-15 11:07:33,685 | DEBUG | ssa.py:193 | on stmt: $82compare_op.3 = hi < n\n", - "2023-05-15 11:07:33,686 | DEBUG | ssa.py:193 | on stmt: bool84 = global(bool: )\n", - "2023-05-15 11:07:33,686 | DEBUG | ssa.py:193 | on stmt: $84pred = call bool84($82compare_op.3, func=bool84, args=(Var($82compare_op.3, arraymath.py:3872),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,688 | DEBUG | ssa.py:193 | on stmt: branch $84pred, 86, 94\n", - "2023-05-15 11:07:33,688 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 86\n", - "2023-05-15 11:07:33,689 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,689 | DEBUG | ssa.py:193 | on stmt: $const88.1 = const(int, 1)\n", - "2023-05-15 11:07:33,689 | DEBUG | ssa.py:193 | on stmt: $90binary_add.2 = hi + $const88.1\n", - "2023-05-15 11:07:33,690 | DEBUG | ssa.py:193 | on stmt: $phi96.0 = $90binary_add.2\n", - "2023-05-15 11:07:33,690 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,691 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 94\n", - "2023-05-15 11:07:33,691 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,692 | DEBUG | ssa.py:193 | on stmt: $phi96.0.1 = n\n", - "2023-05-15 11:07:33,692 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,695 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:33,695 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,696 | DEBUG | ssa.py:193 | on stmt: $phi96.0.2 = phi(incoming_values=[Var($phi96.0.1, arraymath.py:3872), Var($phi96.0, arraymath.py:3872)], incoming_blocks=[94, 86])\n", - "2023-05-15 11:07:33,697 | DEBUG | ssa.py:193 | on stmt: hi = $phi96.0.2\n", - "2023-05-15 11:07:33,698 | DEBUG | ssa.py:199 | replaced with: hi.2 = $phi96.0.2\n", - "2023-05-15 11:07:33,699 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,699 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:33,700 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,700 | DEBUG | ssa.py:193 | on stmt: lo.3 = phi(incoming_values=[Var(lo.1, arraymath.py:3871), Var(lo, arraymath.py:3860)], incoming_blocks=[96, 68])\n", - "2023-05-15 11:07:33,701 | DEBUG | ssa.py:193 | on stmt: $102compare_op.2 = hi > lo.3\n", - "2023-05-15 11:07:33,701 | DEBUG | ssa.py:193 | on stmt: bool104 = global(bool: )\n", - "2023-05-15 11:07:33,702 | DEBUG | ssa.py:193 | on stmt: $104pred = call bool104($102compare_op.2, func=bool104, args=(Var($102compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,702 | DEBUG | ssa.py:193 | on stmt: branch $104pred, 106, 154\n", - "2023-05-15 11:07:33,703 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:33,703 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,704 | DEBUG | ssa.py:193 | on stmt: lo.4 = phi(incoming_values=[Var(lo.3, arraymath.py:3874), Var(lo.5, arraymath.py:3875)], incoming_blocks=[98, 146])\n", - "2023-05-15 11:07:33,704 | DEBUG | ssa.py:193 | on stmt: $110binary_add.2 = lo.4 + hi\n", - "2023-05-15 11:07:33,704 | DEBUG | ssa.py:193 | on stmt: $const112.3 = const(int, 1)\n", - "2023-05-15 11:07:33,705 | DEBUG | ssa.py:193 | on stmt: mid = $110binary_add.2 >> $const112.3\n", - "2023-05-15 11:07:33,705 | DEBUG | ssa.py:193 | on stmt: $118load_deref.5 = freevar(func: )\n", - "2023-05-15 11:07:33,706 | DEBUG | ssa.py:193 | on stmt: $124binary_subscr.8 = getitem(value=a, index=mid, fn=)\n", - "2023-05-15 11:07:33,706 | DEBUG | ssa.py:193 | on stmt: $128call_function.10 = call $118load_deref.5($124binary_subscr.8, v, func=$118load_deref.5, args=[Var($124binary_subscr.8, arraymath.py:3876), Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,707 | DEBUG | ssa.py:193 | on stmt: bool130 = global(bool: )\n", - "2023-05-15 11:07:33,707 | DEBUG | ssa.py:193 | on stmt: $130pred = call bool130($128call_function.10, func=bool130, args=(Var($128call_function.10, arraymath.py:3876),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,708 | DEBUG | ssa.py:193 | on stmt: branch $130pred, 132, 142\n", - "2023-05-15 11:07:33,708 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 132\n", - "2023-05-15 11:07:33,709 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,710 | DEBUG | ssa.py:193 | on stmt: $const134.1 = const(int, 1)\n", - "2023-05-15 11:07:33,710 | DEBUG | ssa.py:193 | on stmt: lo.2 = mid + $const134.1\n", - "2023-05-15 11:07:33,710 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,711 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 142\n", - "2023-05-15 11:07:33,711 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,712 | DEBUG | ssa.py:193 | on stmt: hi = mid\n", - "2023-05-15 11:07:33,712 | DEBUG | ssa.py:199 | replaced with: hi.3 = mid\n", - "2023-05-15 11:07:33,713 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,713 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:33,713 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,714 | DEBUG | ssa.py:193 | on stmt: lo.5 = phi(incoming_values=[Var(lo.2, arraymath.py:3878), Var(lo.4, arraymath.py:3875)], incoming_blocks=[132, 142])\n", - "2023-05-15 11:07:33,714 | DEBUG | ssa.py:193 | on stmt: $150compare_op.2 = hi > lo.5\n", - "2023-05-15 11:07:33,715 | DEBUG | ssa.py:193 | on stmt: bool152 = global(bool: )\n", - "2023-05-15 11:07:33,715 | DEBUG | ssa.py:193 | on stmt: $152pred = call bool152($150compare_op.2, func=bool152, args=(Var($150compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,716 | DEBUG | ssa.py:193 | on stmt: branch $152pred, 106, 154\n", - "2023-05-15 11:07:33,716 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:33,716 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,717 | DEBUG | ssa.py:193 | on stmt: lo.6 = phi(incoming_values=[Var(lo.3, arraymath.py:3874), Var(lo.5, arraymath.py:3875)], incoming_blocks=[98, 146])\n", - "2023-05-15 11:07:33,717 | DEBUG | ssa.py:193 | on stmt: $156return_value.1 = cast(value=lo.6)\n", - "2023-05-15 11:07:33,718 | DEBUG | ssa.py:193 | on stmt: return $156return_value.1\n", - "2023-05-15 11:07:33,718 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {0: [],\n", - " 68: [],\n", - " 96: [],\n", - " 142: []})\n", - "2023-05-15 11:07:33,719 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:33,719 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,719 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:33,720 | DEBUG | ssa.py:193 | on stmt: v = arg(1, name=v)\n", - "2023-05-15 11:07:33,723 | DEBUG | ssa.py:193 | on stmt: v_last = arg(2, name=v_last)\n", - "2023-05-15 11:07:33,724 | DEBUG | ssa.py:193 | on stmt: lo = arg(3, name=lo)\n", - "2023-05-15 11:07:33,724 | DEBUG | ssa.py:193 | on stmt: hi = arg(4, name=hi)\n", - "2023-05-15 11:07:33,728 | DEBUG | ssa.py:193 | on stmt: n = arg(5, name=n)\n", - "2023-05-15 11:07:33,730 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:33,730 | DEBUG | ssa.py:193 | on stmt: $4load_method.1 = getattr(value=$2load_global.0, attr=isnan)\n", - "2023-05-15 11:07:33,731 | DEBUG | ssa.py:193 | on stmt: $8call_method.3 = call $4load_method.1(v, func=$4load_method.1, args=[Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,731 | DEBUG | ssa.py:193 | on stmt: bool10 = global(bool: )\n", - "2023-05-15 11:07:33,732 | DEBUG | ssa.py:193 | on stmt: $10pred = call bool10($8call_method.3, func=bool10, args=(Var($8call_method.3, arraymath.py:3860),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,732 | DEBUG | ssa.py:193 | on stmt: branch $10pred, 12, 60\n", - "2023-05-15 11:07:33,733 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 12\n", - "2023-05-15 11:07:33,734 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,734 | DEBUG | ssa.py:193 | on stmt: $12load_global.0 = global(range: )\n", - "2023-05-15 11:07:33,735 | DEBUG | ssa.py:193 | on stmt: $const16.2 = const(int, 0)\n", - "2023-05-15 11:07:33,735 | DEBUG | ssa.py:193 | on stmt: $const18.3 = const(int, -1)\n", - "2023-05-15 11:07:33,736 | DEBUG | ssa.py:193 | on stmt: $20call_function.4 = call $12load_global.0(n, $const16.2, $const18.3, func=$12load_global.0, args=[Var(n, arraymath.py:3860), Var($const16.2, arraymath.py:3863), Var($const18.3, arraymath.py:3863)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,736 | DEBUG | ssa.py:193 | on stmt: $22get_iter.5 = getiter(value=$20call_function.4)\n", - "2023-05-15 11:07:33,737 | DEBUG | ssa.py:193 | on stmt: $phi24.0 = $22get_iter.5\n", - "2023-05-15 11:07:33,737 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,738 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 24\n", - "2023-05-15 11:07:33,738 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,739 | DEBUG | ssa.py:193 | on stmt: $24for_iter.1 = iternext(value=$phi24.0)\n", - "2023-05-15 11:07:33,739 | DEBUG | ssa.py:193 | on stmt: $24for_iter.2 = pair_first(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,742 | DEBUG | ssa.py:193 | on stmt: $24for_iter.3 = pair_second(value=$24for_iter.1)\n", - "2023-05-15 11:07:33,742 | DEBUG | ssa.py:193 | on stmt: $phi26.1 = $24for_iter.2\n", - "2023-05-15 11:07:33,743 | DEBUG | ssa.py:193 | on stmt: branch $24for_iter.3, 26, 56\n", - "2023-05-15 11:07:33,743 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 26\n", - "2023-05-15 11:07:33,744 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,744 | DEBUG | ssa.py:193 | on stmt: i = $phi26.1\n", - "2023-05-15 11:07:33,745 | DEBUG | ssa.py:193 | on stmt: $28load_global.2 = global(np: )\n", - "2023-05-15 11:07:33,747 | DEBUG | ssa.py:193 | on stmt: $30load_method.3 = getattr(value=$28load_global.2, attr=isnan)\n", - "2023-05-15 11:07:33,747 | DEBUG | ssa.py:193 | on stmt: $const36.6 = const(int, 1)\n", - "2023-05-15 11:07:33,748 | DEBUG | ssa.py:193 | on stmt: $38binary_subtract.7 = i - $const36.6\n", - "2023-05-15 11:07:33,748 | DEBUG | ssa.py:193 | on stmt: $40binary_subscr.8 = getitem(value=a, index=$38binary_subtract.7, fn=)\n", - "2023-05-15 11:07:33,749 | DEBUG | ssa.py:193 | on stmt: $42call_method.9 = call $30load_method.3($40binary_subscr.8, func=$30load_method.3, args=[Var($40binary_subscr.8, arraymath.py:3864)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,749 | DEBUG | ssa.py:193 | on stmt: bool44 = global(bool: )\n", - "2023-05-15 11:07:33,750 | DEBUG | ssa.py:193 | on stmt: $44pred = call bool44($42call_method.9, func=bool44, args=(Var($42call_method.9, arraymath.py:3864),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,750 | DEBUG | ssa.py:193 | on stmt: branch $44pred, 54, 46\n", - "2023-05-15 11:07:33,751 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:33,752 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,757 | DEBUG | ssa.py:193 | on stmt: $52return_value.2 = cast(value=i)\n", - "2023-05-15 11:07:33,758 | DEBUG | ssa.py:193 | on stmt: return $52return_value.2\n", - "2023-05-15 11:07:33,759 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 54\n", - "2023-05-15 11:07:33,760 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,761 | DEBUG | ssa.py:193 | on stmt: jump 24\n", - "2023-05-15 11:07:33,762 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 56\n", - "2023-05-15 11:07:33,763 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,763 | DEBUG | ssa.py:193 | on stmt: $const56.0 = const(int, 0)\n", - "2023-05-15 11:07:33,764 | DEBUG | ssa.py:193 | on stmt: $58return_value.1 = cast(value=$const56.0)\n", - "2023-05-15 11:07:33,764 | DEBUG | ssa.py:193 | on stmt: return $58return_value.1\n", - "2023-05-15 11:07:33,765 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 60\n", - "2023-05-15 11:07:33,766 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,766 | DEBUG | ssa.py:193 | on stmt: $64compare_op.2 = v_last < v\n", - "2023-05-15 11:07:33,767 | DEBUG | ssa.py:193 | on stmt: bool66 = global(bool: )\n", - "2023-05-15 11:07:33,767 | DEBUG | ssa.py:193 | on stmt: $66pred = call bool66($64compare_op.2, func=bool66, args=(Var($64compare_op.2, arraymath.py:3868),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,768 | DEBUG | ssa.py:193 | on stmt: branch $66pred, 68, 74\n", - "2023-05-15 11:07:33,768 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 68\n", - "2023-05-15 11:07:33,769 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,772 | DEBUG | ssa.py:193 | on stmt: hi.1 = n\n", - "2023-05-15 11:07:33,772 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,773 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 74\n", - "2023-05-15 11:07:33,774 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,774 | DEBUG | ssa.py:193 | on stmt: lo.1 = const(int, 0)\n", - "2023-05-15 11:07:33,775 | DEBUG | ssa.py:193 | on stmt: $82compare_op.3 = hi < n\n", - "2023-05-15 11:07:33,775 | DEBUG | ssa.py:353 | find_def var='hi' stmt=$82compare_op.3 = hi < n\n", - "2023-05-15 11:07:33,777 | DEBUG | ssa.py:384 | find_def_from_top label 74\n", - "2023-05-15 11:07:33,778 | DEBUG | ssa.py:421 | idom 60 from label 74\n", - "2023-05-15 11:07:33,778 | DEBUG | ssa.py:427 | find_def_from_bottom label 60\n", - "2023-05-15 11:07:33,779 | DEBUG | ssa.py:384 | find_def_from_top label 60\n", - "2023-05-15 11:07:33,780 | DEBUG | ssa.py:421 | idom 0 from label 60\n", - "2023-05-15 11:07:33,780 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:33,781 | DEBUG | ssa.py:193 | on stmt: bool84 = global(bool: )\n", - "2023-05-15 11:07:33,781 | DEBUG | ssa.py:193 | on stmt: $84pred = call bool84($82compare_op.3, func=bool84, args=(Var($82compare_op.3, arraymath.py:3872),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,782 | DEBUG | ssa.py:193 | on stmt: branch $84pred, 86, 94\n", - "2023-05-15 11:07:33,782 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 86\n", - "2023-05-15 11:07:33,783 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,785 | DEBUG | ssa.py:193 | on stmt: $const88.1 = const(int, 1)\n", - "2023-05-15 11:07:33,785 | DEBUG | ssa.py:193 | on stmt: $90binary_add.2 = hi + $const88.1\n", - "2023-05-15 11:07:33,786 | DEBUG | ssa.py:353 | find_def var='hi' stmt=$90binary_add.2 = hi + $const88.1\n", - "2023-05-15 11:07:33,787 | DEBUG | ssa.py:384 | find_def_from_top label 86\n", - "2023-05-15 11:07:33,788 | DEBUG | ssa.py:421 | idom 74 from label 86\n", - "2023-05-15 11:07:33,788 | DEBUG | ssa.py:427 | find_def_from_bottom label 74\n", - "2023-05-15 11:07:33,789 | DEBUG | ssa.py:384 | find_def_from_top label 74\n", - "2023-05-15 11:07:33,789 | DEBUG | ssa.py:421 | idom 60 from label 74\n", - "2023-05-15 11:07:33,790 | DEBUG | ssa.py:427 | find_def_from_bottom label 60\n", - "2023-05-15 11:07:33,790 | DEBUG | ssa.py:384 | find_def_from_top label 60\n", - "2023-05-15 11:07:33,791 | DEBUG | ssa.py:421 | idom 0 from label 60\n", - "2023-05-15 11:07:33,791 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:33,792 | DEBUG | ssa.py:193 | on stmt: $phi96.0 = $90binary_add.2\n", - "2023-05-15 11:07:33,792 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,793 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 94\n", - "2023-05-15 11:07:33,793 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,794 | DEBUG | ssa.py:193 | on stmt: $phi96.0.1 = n\n", - "2023-05-15 11:07:33,797 | DEBUG | ssa.py:193 | on stmt: jump 96\n", - "2023-05-15 11:07:33,797 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 96\n", - "2023-05-15 11:07:33,798 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,798 | DEBUG | ssa.py:193 | on stmt: $phi96.0.2 = phi(incoming_values=[Var($phi96.0.1, arraymath.py:3872), Var($phi96.0, arraymath.py:3872)], incoming_blocks=[94, 86])\n", - "2023-05-15 11:07:33,800 | DEBUG | ssa.py:193 | on stmt: hi.2 = $phi96.0.2\n", - "2023-05-15 11:07:33,800 | DEBUG | ssa.py:193 | on stmt: jump 98\n", - "2023-05-15 11:07:33,801 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 98\n", - "2023-05-15 11:07:33,801 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,803 | DEBUG | ssa.py:193 | on stmt: lo.3 = phi(incoming_values=[Var(lo.1, arraymath.py:3871), Var(lo, arraymath.py:3860)], incoming_blocks=[96, 68])\n", - "2023-05-15 11:07:33,803 | DEBUG | ssa.py:193 | on stmt: $102compare_op.2 = hi > lo.3\n", - "2023-05-15 11:07:33,804 | DEBUG | ssa.py:353 | find_def var='hi' stmt=$102compare_op.2 = hi > lo.3\n", - "2023-05-15 11:07:33,804 | DEBUG | ssa.py:384 | find_def_from_top label 98\n", - "2023-05-15 11:07:33,806 | DEBUG | ssa.py:401 | insert phi node hi.4 = phi(incoming_values=[], incoming_blocks=[]) at 98\n", - "2023-05-15 11:07:33,806 | DEBUG | ssa.py:427 | find_def_from_bottom label 96\n", - "2023-05-15 11:07:33,807 | DEBUG | ssa.py:409 | incoming_def hi.2 = $phi96.0.2\n", - "2023-05-15 11:07:33,807 | DEBUG | ssa.py:427 | find_def_from_bottom label 68\n", - "2023-05-15 11:07:33,808 | DEBUG | ssa.py:409 | incoming_def hi.1 = n\n", - "2023-05-15 11:07:33,809 | DEBUG | ssa.py:199 | replaced with: $102compare_op.2 = hi.4 > lo.3\n", - "2023-05-15 11:07:33,810 | DEBUG | ssa.py:193 | on stmt: bool104 = global(bool: )\n", - "2023-05-15 11:07:33,810 | DEBUG | ssa.py:193 | on stmt: $104pred = call bool104($102compare_op.2, func=bool104, args=(Var($102compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,811 | DEBUG | ssa.py:193 | on stmt: branch $104pred, 106, 154\n", - "2023-05-15 11:07:33,812 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 106\n", - "2023-05-15 11:07:33,813 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,813 | DEBUG | ssa.py:193 | on stmt: lo.4 = phi(incoming_values=[Var(lo.3, arraymath.py:3874), Var(lo.5, arraymath.py:3875)], incoming_blocks=[98, 146])\n", - "2023-05-15 11:07:33,814 | DEBUG | ssa.py:193 | on stmt: $110binary_add.2 = lo.4 + hi\n", - "2023-05-15 11:07:33,814 | DEBUG | ssa.py:353 | find_def var='hi' stmt=$110binary_add.2 = lo.4 + hi\n", - "2023-05-15 11:07:33,815 | DEBUG | ssa.py:384 | find_def_from_top label 106\n", - "2023-05-15 11:07:33,815 | DEBUG | ssa.py:401 | insert phi node hi.5 = phi(incoming_values=[], incoming_blocks=[]) at 106\n", - "2023-05-15 11:07:33,816 | DEBUG | ssa.py:427 | find_def_from_bottom label 98\n", - "2023-05-15 11:07:33,816 | DEBUG | ssa.py:409 | incoming_def hi.4 = phi(incoming_values=[Var(hi.2, arraymath.py:3872), Var(hi.1, arraymath.py:3869)], incoming_blocks=[96, 68])\n", - "2023-05-15 11:07:33,817 | DEBUG | ssa.py:427 | find_def_from_bottom label 146\n", - "2023-05-15 11:07:33,818 | DEBUG | ssa.py:384 | find_def_from_top label 146\n", - "2023-05-15 11:07:33,818 | DEBUG | ssa.py:401 | insert phi node hi.6 = phi(incoming_values=[], incoming_blocks=[]) at 146\n", - "2023-05-15 11:07:33,819 | DEBUG | ssa.py:427 | find_def_from_bottom label 132\n", - "2023-05-15 11:07:33,819 | DEBUG | ssa.py:384 | find_def_from_top label 132\n", - "2023-05-15 11:07:33,820 | DEBUG | ssa.py:421 | idom 106 from label 132\n", - "2023-05-15 11:07:33,820 | DEBUG | ssa.py:427 | find_def_from_bottom label 106\n", - "2023-05-15 11:07:33,821 | DEBUG | ssa.py:409 | incoming_def hi.5 = phi(incoming_values=[Var(hi.4, arraymath.py:3874)], incoming_blocks=[98])\n", - "2023-05-15 11:07:33,821 | DEBUG | ssa.py:427 | find_def_from_bottom label 142\n", - "2023-05-15 11:07:33,822 | DEBUG | ssa.py:409 | incoming_def hi.3 = mid\n", - "2023-05-15 11:07:33,822 | DEBUG | ssa.py:409 | incoming_def hi.6 = phi(incoming_values=[Var(hi.5, arraymath.py:3875), Var(hi.3, arraymath.py:3881)], incoming_blocks=[132, 142])\n", - "2023-05-15 11:07:33,823 | DEBUG | ssa.py:199 | replaced with: $110binary_add.2 = lo.4 + hi.5\n", - "2023-05-15 11:07:33,824 | DEBUG | ssa.py:193 | on stmt: $const112.3 = const(int, 1)\n", - "2023-05-15 11:07:33,824 | DEBUG | ssa.py:193 | on stmt: mid = $110binary_add.2 >> $const112.3\n", - "2023-05-15 11:07:33,825 | DEBUG | ssa.py:193 | on stmt: $118load_deref.5 = freevar(func: )\n", - "2023-05-15 11:07:33,825 | DEBUG | ssa.py:193 | on stmt: $124binary_subscr.8 = getitem(value=a, index=mid, fn=)\n", - "2023-05-15 11:07:33,826 | DEBUG | ssa.py:193 | on stmt: $128call_function.10 = call $118load_deref.5($124binary_subscr.8, v, func=$118load_deref.5, args=[Var($124binary_subscr.8, arraymath.py:3876), Var(v, arraymath.py:3860)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,826 | DEBUG | ssa.py:193 | on stmt: bool130 = global(bool: )\n", - "2023-05-15 11:07:33,827 | DEBUG | ssa.py:193 | on stmt: $130pred = call bool130($128call_function.10, func=bool130, args=(Var($128call_function.10, arraymath.py:3876),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,828 | DEBUG | ssa.py:193 | on stmt: branch $130pred, 132, 142\n", - "2023-05-15 11:07:33,832 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 132\n", - "2023-05-15 11:07:33,833 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,834 | DEBUG | ssa.py:193 | on stmt: $const134.1 = const(int, 1)\n", - "2023-05-15 11:07:33,835 | DEBUG | ssa.py:193 | on stmt: lo.2 = mid + $const134.1\n", - "2023-05-15 11:07:33,835 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,838 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 142\n", - "2023-05-15 11:07:33,839 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,840 | DEBUG | ssa.py:193 | on stmt: hi.3 = mid\n", - "2023-05-15 11:07:33,840 | DEBUG | ssa.py:193 | on stmt: jump 146\n", - "2023-05-15 11:07:33,842 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 146\n", - "2023-05-15 11:07:33,842 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,843 | DEBUG | ssa.py:193 | on stmt: lo.5 = phi(incoming_values=[Var(lo.2, arraymath.py:3878), Var(lo.4, arraymath.py:3875)], incoming_blocks=[132, 142])\n", - "2023-05-15 11:07:33,843 | DEBUG | ssa.py:193 | on stmt: $150compare_op.2 = hi > lo.5\n", - "2023-05-15 11:07:33,844 | DEBUG | ssa.py:353 | find_def var='hi' stmt=$150compare_op.2 = hi > lo.5\n", - "2023-05-15 11:07:33,845 | DEBUG | ssa.py:199 | replaced with: $150compare_op.2 = hi.6 > lo.5\n", - "2023-05-15 11:07:33,846 | DEBUG | ssa.py:193 | on stmt: bool152 = global(bool: )\n", - "2023-05-15 11:07:33,847 | DEBUG | ssa.py:193 | on stmt: $152pred = call bool152($150compare_op.2, func=bool152, args=(Var($150compare_op.2, arraymath.py:3874),), kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:33,847 | DEBUG | ssa.py:193 | on stmt: branch $152pred, 106, 154\n", - "2023-05-15 11:07:33,848 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 154\n", - "2023-05-15 11:07:33,849 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,850 | DEBUG | ssa.py:193 | on stmt: lo.6 = phi(incoming_values=[Var(lo.3, arraymath.py:3874), Var(lo.5, arraymath.py:3875)], incoming_blocks=[98, 146])\n", - "2023-05-15 11:07:33,851 | DEBUG | ssa.py:193 | on stmt: $156return_value.1 = cast(value=lo.6)\n", - "2023-05-15 11:07:33,851 | DEBUG | ssa.py:193 | on stmt: return $156return_value.1\n", - "2023-05-15 11:07:33,875 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=1106)\n", - " 2\tLOAD_FAST(arg=0, lineno=1106)\n", - " 4\tLOAD_FAST(arg=1, lineno=1106)\n", - " 6\tCOMPARE_OP(arg=0, lineno=1106)\n", - " 8\tRETURN_VALUE(arg=None, lineno=1106)\n", - "2023-05-15 11:07:33,876 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:33,876 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:33,876 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=1106)\n", - "2023-05-15 11:07:33,877 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,877 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_FAST(arg=0, lineno=1106)\n", - "2023-05-15 11:07:33,878 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:33,878 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=1, lineno=1106)\n", - "2023-05-15 11:07:33,878 | DEBUG | byteflow.py:279 | stack ['$a2.0']\n", - "2023-05-15 11:07:33,879 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=COMPARE_OP(arg=0, lineno=1106)\n", - "2023-05-15 11:07:33,879 | DEBUG | byteflow.py:279 | stack ['$a2.0', '$b4.1']\n", - "2023-05-15 11:07:33,880 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=RETURN_VALUE(arg=None, lineno=1106)\n", - "2023-05-15 11:07:33,880 | DEBUG | byteflow.py:279 | stack ['$6compare_op.2']\n", - "2023-05-15 11:07:33,880 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:33,881 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:33,881 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:33,882 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:33,882 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:33,883 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:33,883 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:33,883 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:33,884 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:33,884 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$a2.0'}), (4, {'res': '$b4.1'}), (6, {'lhs': '$a2.0', 'rhs': '$b4.1', 'res': '$6compare_op.2'}), (8, {'retval': '$6compare_op.2', 'castval': '$8return_value.3'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:33,885 | DEBUG | interpreter.py:1342 | label 0:\n", - " a = arg(0, name=a) ['a']\n", - " b = arg(1, name=b) ['b']\n", - " $6compare_op.2 = a < b ['$6compare_op.2', 'a', 'b']\n", - " $8return_value.3 = cast(value=$6compare_op.2) ['$6compare_op.2', '$8return_value.3']\n", - " return $8return_value.3 ['$8return_value.3']\n", - "\n", - "2023-05-15 11:07:33,892 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:33,893 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:33,894 | DEBUG | ssa.py:193 | on stmt: a = arg(0, name=a)\n", - "2023-05-15 11:07:33,894 | DEBUG | ssa.py:193 | on stmt: b = arg(1, name=b)\n", - "2023-05-15 11:07:33,895 | DEBUG | ssa.py:193 | on stmt: $6compare_op.2 = a < b\n", - "2023-05-15 11:07:33,895 | DEBUG | ssa.py:193 | on stmt: $8return_value.3 = cast(value=$6compare_op.2)\n", - "2023-05-15 11:07:33,895 | DEBUG | ssa.py:193 | on stmt: return $8return_value.3\n", - "2023-05-15 11:07:33,896 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$6compare_op.2': [],\n", - " '$8return_value.3': [],\n", - " 'a': [],\n", - " 'b': []})\n", - "2023-05-15 11:07:33,896 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:34,461 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=574)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=574)\n", - " 4\tLOAD_ATTR(arg=1, lineno=574)\n", - " 6\tLOAD_GLOBAL(arg=2, lineno=574)\n", - " 8\tLOAD_FAST(arg=1, lineno=574)\n", - " 10\tCALL_FUNCTION(arg=1, lineno=574)\n", - " 12\tLOAD_GLOBAL(arg=2, lineno=574)\n", - " 14\tLOAD_FAST(arg=3, lineno=574)\n", - " 16\tCALL_FUNCTION(arg=1, lineno=574)\n", - " 18\tBINARY_ADD(arg=None, lineno=574)\n", - " 20\tLOAD_CONST(arg=1, lineno=574)\n", - " 22\tBUILD_TUPLE(arg=2, lineno=574)\n", - " 24\tLOAD_GLOBAL(arg=0, lineno=574)\n", - " 26\tLOAD_ATTR(arg=3, lineno=574)\n", - " 28\tLOAD_CONST(arg=2, lineno=574)\n", - " 30\tCALL_FUNCTION_KW(arg=2, lineno=574)\n", - " 32\tSTORE_FAST(arg=5, lineno=574)\n", - " 34\tLOAD_GLOBAL(arg=4, lineno=579)\n", - " 36\tLOAD_GLOBAL(arg=2, lineno=579)\n", - " 38\tLOAD_FAST(arg=0, lineno=579)\n", - " 40\tCALL_FUNCTION(arg=1, lineno=579)\n", - " 42\tCALL_FUNCTION(arg=1, lineno=579)\n", - " 44\tGET_ITER(arg=None, lineno=579)\n", - "> 46\tFOR_ITER(arg=22, lineno=579)\n", - " 48\tSTORE_FAST(arg=6, lineno=579)\n", - " 50\tLOAD_FAST(arg=5, lineno=580)\n", - " 52\tLOAD_GLOBAL(arg=5, lineno=580)\n", - " 54\tLOAD_FAST(arg=0, lineno=581)\n", - " 56\tLOAD_FAST(arg=6, lineno=581)\n", - " 58\tBINARY_SUBSCR(arg=None, lineno=581)\n", - " 60\tLOAD_FAST(arg=1, lineno=582)\n", - " 62\tLOAD_FAST(arg=0, lineno=582)\n", - " 64\tLOAD_FAST(arg=6, lineno=582)\n", - " 66\tBINARY_SUBSCR(arg=None, lineno=582)\n", - " 68\tBINARY_SUBSCR(arg=None, lineno=582)\n", - " 70\tLOAD_FAST(arg=2, lineno=583)\n", - " 72\tLOAD_FAST(arg=0, lineno=583)\n", - " 74\tLOAD_FAST(arg=6, lineno=583)\n", - " 76\tBINARY_SUBSCR(arg=None, lineno=583)\n", - " 78\tBINARY_SUBSCR(arg=None, lineno=583)\n", - " 80\tLOAD_FAST(arg=3, lineno=584)\n", - " 82\tLOAD_FAST(arg=4, lineno=585)\n", - " 84\tCALL_FUNCTION(arg=5, lineno=580)\n", - " 86\tINPLACE_ADD(arg=None, lineno=580)\n", - " 88\tSTORE_FAST(arg=5, lineno=580)\n", - " 90\tJUMP_ABSOLUTE(arg=24, lineno=580)\n", - "> 92\tLOAD_FAST(arg=5, lineno=587)\n", - " 94\tRETURN_VALUE(arg=None, lineno=587)\n", - "2023-05-15 11:07:34,462 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:34,462 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:34,463 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=574)\n", - "2023-05-15 11:07:34,463 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:34,464 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=574)\n", - "2023-05-15 11:07:34,464 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:34,465 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_ATTR(arg=1, lineno=574)\n", - "2023-05-15 11:07:34,465 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:34,466 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_GLOBAL(arg=2, lineno=574)\n", - "2023-05-15 11:07:34,467 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1']\n", - "2023-05-15 11:07:34,467 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_FAST(arg=1, lineno=574)\n", - "2023-05-15 11:07:34,468 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$6load_global.2']\n", - "2023-05-15 11:07:34,468 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_FUNCTION(arg=1, lineno=574)\n", - "2023-05-15 11:07:34,469 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$6load_global.2', '$pred8.3']\n", - "2023-05-15 11:07:34,469 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=LOAD_GLOBAL(arg=2, lineno=574)\n", - "2023-05-15 11:07:34,470 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$10call_function.4']\n", - "2023-05-15 11:07:34,470 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=LOAD_FAST(arg=3, lineno=574)\n", - "2023-05-15 11:07:34,471 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$10call_function.4', '$12load_global.5']\n", - "2023-05-15 11:07:34,471 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=CALL_FUNCTION(arg=1, lineno=574)\n", - "2023-05-15 11:07:34,472 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$10call_function.4', '$12load_global.5', '$edges_uv14.6']\n", - "2023-05-15 11:07:34,473 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=BINARY_ADD(arg=None, lineno=574)\n", - "2023-05-15 11:07:34,473 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$10call_function.4', '$16call_function.7']\n", - "2023-05-15 11:07:34,474 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=LOAD_CONST(arg=1, lineno=574)\n", - "2023-05-15 11:07:34,474 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$18binary_add.8']\n", - "2023-05-15 11:07:34,475 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=BUILD_TUPLE(arg=2, lineno=574)\n", - "2023-05-15 11:07:34,475 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$18binary_add.8', '$const20.9']\n", - "2023-05-15 11:07:34,476 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=LOAD_GLOBAL(arg=0, lineno=574)\n", - "2023-05-15 11:07:34,476 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$22build_tuple.10']\n", - "2023-05-15 11:07:34,477 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=LOAD_ATTR(arg=3, lineno=574)\n", - "2023-05-15 11:07:34,477 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$22build_tuple.10', '$24load_global.11']\n", - "2023-05-15 11:07:34,478 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=LOAD_CONST(arg=2, lineno=574)\n", - "2023-05-15 11:07:34,479 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$22build_tuple.10', '$26load_attr.12']\n", - "2023-05-15 11:07:34,479 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=CALL_FUNCTION_KW(arg=2, lineno=574)\n", - "2023-05-15 11:07:34,480 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$22build_tuple.10', '$26load_attr.12', '$const28.13']\n", - "2023-05-15 11:07:34,480 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=STORE_FAST(arg=5, lineno=574)\n", - "2023-05-15 11:07:34,481 | DEBUG | byteflow.py:279 | stack ['$30call_function_kw.14']\n", - "2023-05-15 11:07:34,481 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=LOAD_GLOBAL(arg=4, lineno=579)\n", - "2023-05-15 11:07:34,482 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:34,483 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=LOAD_GLOBAL(arg=2, lineno=579)\n", - "2023-05-15 11:07:34,483 | DEBUG | byteflow.py:279 | stack ['$34load_global.15']\n", - "2023-05-15 11:07:34,484 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=LOAD_FAST(arg=0, lineno=579)\n", - "2023-05-15 11:07:34,484 | DEBUG | byteflow.py:279 | stack ['$34load_global.15', '$36load_global.16']\n", - "2023-05-15 11:07:34,485 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=CALL_FUNCTION(arg=1, lineno=579)\n", - "2023-05-15 11:07:34,485 | DEBUG | byteflow.py:279 | stack ['$34load_global.15', '$36load_global.16', '$loop_indices38.17']\n", - "2023-05-15 11:07:34,486 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=CALL_FUNCTION(arg=1, lineno=579)\n", - "2023-05-15 11:07:34,486 | DEBUG | byteflow.py:279 | stack ['$34load_global.15', '$40call_function.18']\n", - "2023-05-15 11:07:34,487 | DEBUG | byteflow.py:278 | dispatch pc=44, inst=GET_ITER(arg=None, lineno=579)\n", - "2023-05-15 11:07:34,487 | DEBUG | byteflow.py:279 | stack ['$42call_function.19']\n", - "2023-05-15 11:07:34,488 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=46, stack=('$44get_iter.20',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:34,489 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=46 nstack_initial=1)])\n", - "2023-05-15 11:07:34,489 | DEBUG | byteflow.py:103 | stack: ['$phi46.0']\n", - "2023-05-15 11:07:34,490 | DEBUG | byteflow.py:278 | dispatch pc=46, inst=FOR_ITER(arg=22, lineno=579)\n", - "2023-05-15 11:07:34,490 | DEBUG | byteflow.py:279 | stack ['$phi46.0']\n", - "2023-05-15 11:07:34,491 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=92, stack=(), blockstack=(), npush=0), Edge(pc=48, stack=('$phi46.0', '$46for_iter.2'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:34,492 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=92 nstack_initial=0), State(pc_initial=48 nstack_initial=2)])\n", - "2023-05-15 11:07:34,492 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:34,493 | DEBUG | byteflow.py:278 | dispatch pc=92, inst=LOAD_FAST(arg=5, lineno=587)\n", - "2023-05-15 11:07:34,493 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:34,494 | DEBUG | byteflow.py:278 | dispatch pc=94, inst=RETURN_VALUE(arg=None, lineno=587)\n", - "2023-05-15 11:07:34,495 | DEBUG | byteflow.py:279 | stack ['$betweennesses92.0']\n", - "2023-05-15 11:07:34,495 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:34,495 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=48 nstack_initial=2)])\n", - "2023-05-15 11:07:34,496 | DEBUG | byteflow.py:103 | stack: ['$phi48.0', '$phi48.1']\n", - "2023-05-15 11:07:34,496 | DEBUG | byteflow.py:278 | dispatch pc=48, inst=STORE_FAST(arg=6, lineno=579)\n", - "2023-05-15 11:07:34,497 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$phi48.1']\n", - "2023-05-15 11:07:34,498 | DEBUG | byteflow.py:278 | dispatch pc=50, inst=LOAD_FAST(arg=5, lineno=580)\n", - "2023-05-15 11:07:34,498 | DEBUG | byteflow.py:279 | stack ['$phi48.0']\n", - "2023-05-15 11:07:34,499 | DEBUG | byteflow.py:278 | dispatch pc=52, inst=LOAD_GLOBAL(arg=5, lineno=580)\n", - "2023-05-15 11:07:34,499 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2']\n", - "2023-05-15 11:07:34,500 | DEBUG | byteflow.py:278 | dispatch pc=54, inst=LOAD_FAST(arg=0, lineno=581)\n", - "2023-05-15 11:07:34,500 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3']\n", - "2023-05-15 11:07:34,501 | DEBUG | byteflow.py:278 | dispatch pc=56, inst=LOAD_FAST(arg=6, lineno=581)\n", - "2023-05-15 11:07:34,501 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$loop_indices54.4']\n", - "2023-05-15 11:07:34,507 | DEBUG | byteflow.py:278 | dispatch pc=58, inst=BINARY_SUBSCR(arg=None, lineno=581)\n", - "2023-05-15 11:07:34,509 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$loop_indices54.4', '$idx56.5']\n", - "2023-05-15 11:07:34,510 | DEBUG | byteflow.py:278 | dispatch pc=60, inst=LOAD_FAST(arg=1, lineno=582)\n", - "2023-05-15 11:07:34,510 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$58binary_subscr.6']\n", - "2023-05-15 11:07:34,511 | DEBUG | byteflow.py:278 | dispatch pc=62, inst=LOAD_FAST(arg=0, lineno=582)\n", - "2023-05-15 11:07:34,511 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$58binary_subscr.6', '$pred60.7']\n", - "2023-05-15 11:07:34,511 | DEBUG | byteflow.py:278 | dispatch pc=64, inst=LOAD_FAST(arg=6, lineno=582)\n", - "2023-05-15 11:07:34,512 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$58binary_subscr.6', '$pred60.7', '$loop_indices62.8']\n", - "2023-05-15 11:07:34,512 | DEBUG | byteflow.py:278 | dispatch pc=66, inst=BINARY_SUBSCR(arg=None, lineno=582)\n", - "2023-05-15 11:07:34,513 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$58binary_subscr.6', '$pred60.7', '$loop_indices62.8', '$idx64.9']\n", - "2023-05-15 11:07:34,514 | DEBUG | byteflow.py:278 | dispatch pc=68, inst=BINARY_SUBSCR(arg=None, lineno=582)\n", - "2023-05-15 11:07:34,514 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$58binary_subscr.6', '$pred60.7', '$66binary_subscr.10']\n", - "2023-05-15 11:07:34,514 | DEBUG | byteflow.py:278 | dispatch pc=70, inst=LOAD_FAST(arg=2, lineno=583)\n", - "2023-05-15 11:07:34,515 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$58binary_subscr.6', '$68binary_subscr.11']\n", - "2023-05-15 11:07:34,515 | DEBUG | byteflow.py:278 | dispatch pc=72, inst=LOAD_FAST(arg=0, lineno=583)\n", - "2023-05-15 11:07:34,516 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$58binary_subscr.6', '$68binary_subscr.11', '$dist70.12']\n", - "2023-05-15 11:07:34,516 | DEBUG | byteflow.py:278 | dispatch pc=74, inst=LOAD_FAST(arg=6, lineno=583)\n", - "2023-05-15 11:07:34,517 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$58binary_subscr.6', '$68binary_subscr.11', '$dist70.12', '$loop_indices72.13']\n", - "2023-05-15 11:07:34,517 | DEBUG | byteflow.py:278 | dispatch pc=76, inst=BINARY_SUBSCR(arg=None, lineno=583)\n", - "2023-05-15 11:07:34,518 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$58binary_subscr.6', '$68binary_subscr.11', '$dist70.12', '$loop_indices72.13', '$idx74.14']\n", - "2023-05-15 11:07:34,518 | DEBUG | byteflow.py:278 | dispatch pc=78, inst=BINARY_SUBSCR(arg=None, lineno=583)\n", - "2023-05-15 11:07:34,518 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$58binary_subscr.6', '$68binary_subscr.11', '$dist70.12', '$76binary_subscr.15']\n", - "2023-05-15 11:07:34,519 | DEBUG | byteflow.py:278 | dispatch pc=80, inst=LOAD_FAST(arg=3, lineno=584)\n", - "2023-05-15 11:07:34,520 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$58binary_subscr.6', '$68binary_subscr.11', '$78binary_subscr.16']\n", - "2023-05-15 11:07:34,520 | DEBUG | byteflow.py:278 | dispatch pc=82, inst=LOAD_FAST(arg=4, lineno=585)\n", - "2023-05-15 11:07:34,521 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$58binary_subscr.6', '$68binary_subscr.11', '$78binary_subscr.16', '$edges_uv80.17']\n", - "2023-05-15 11:07:34,521 | DEBUG | byteflow.py:278 | dispatch pc=84, inst=CALL_FUNCTION(arg=5, lineno=580)\n", - "2023-05-15 11:07:34,521 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$52load_global.3', '$58binary_subscr.6', '$68binary_subscr.11', '$78binary_subscr.16', '$edges_uv80.17', '$edge_padding82.18']\n", - "2023-05-15 11:07:34,522 | DEBUG | byteflow.py:278 | dispatch pc=86, inst=INPLACE_ADD(arg=None, lineno=580)\n", - "2023-05-15 11:07:34,522 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$betweennesses50.2', '$84call_function.19']\n", - "2023-05-15 11:07:34,523 | DEBUG | byteflow.py:278 | dispatch pc=88, inst=STORE_FAST(arg=5, lineno=580)\n", - "2023-05-15 11:07:34,523 | DEBUG | byteflow.py:279 | stack ['$phi48.0', '$86inplace_add.20']\n", - "2023-05-15 11:07:34,524 | DEBUG | byteflow.py:278 | dispatch pc=90, inst=JUMP_ABSOLUTE(arg=24, lineno=580)\n", - "2023-05-15 11:07:34,524 | DEBUG | byteflow.py:279 | stack ['$phi48.0']\n", - "2023-05-15 11:07:34,524 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=46, stack=('$phi48.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:34,525 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=46 nstack_initial=1)])\n", - "2023-05-15 11:07:34,525 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:34,526 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=46 nstack_initial=1): {'$phi46.0'},\n", - " State(pc_initial=48 nstack_initial=2): {'$phi48.1'},\n", - " State(pc_initial=92 nstack_initial=0): set()})\n", - "2023-05-15 11:07:34,526 | DEBUG | byteflow.py:192 | defmap: {'$phi46.0': State(pc_initial=0 nstack_initial=0),\n", - " '$phi48.1': State(pc_initial=46 nstack_initial=1)}\n", - "2023-05-15 11:07:34,527 | DEBUG | byteflow.py:193 | phismap: defaultdict(,\n", - " {'$phi46.0': {('$44get_iter.20',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi48.0', State(pc_initial=48 nstack_initial=2))},\n", - " '$phi48.0': {('$phi46.0', State(pc_initial=46 nstack_initial=1))},\n", - " '$phi48.1': {('$46for_iter.2',\n", - " State(pc_initial=46 nstack_initial=1))}})\n", - "2023-05-15 11:07:34,528 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi46.0': {('$44get_iter.20',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi46.0', State(pc_initial=46 nstack_initial=1))},\n", - " '$phi48.0': {('$44get_iter.20',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi48.1': {('$46for_iter.2',\n", - " State(pc_initial=46 nstack_initial=1))}})\n", - "2023-05-15 11:07:34,529 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi46.0': {('$44get_iter.20',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi48.0': {('$44get_iter.20',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi48.1': {('$46for_iter.2',\n", - " State(pc_initial=46 nstack_initial=1))}})\n", - "2023-05-15 11:07:34,529 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi46.0': {('$44get_iter.20',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi48.0': {('$44get_iter.20',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi48.1': {('$46for_iter.2',\n", - " State(pc_initial=46 nstack_initial=1))}})\n", - "2023-05-15 11:07:34,530 | DEBUG | byteflow.py:223 | keep phismap: {'$phi46.0': {('$44get_iter.20', State(pc_initial=0 nstack_initial=0))},\n", - " '$phi48.1': {('$46for_iter.2', State(pc_initial=46 nstack_initial=1))}}\n", - "2023-05-15 11:07:34,530 | DEBUG | byteflow.py:229 | new_out: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): {'$phi46.0': '$44get_iter.20'},\n", - " State(pc_initial=46 nstack_initial=1): {'$phi48.1': '$46for_iter.2'}})\n", - "2023-05-15 11:07:34,531 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:34,533 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'item': '$2load_global.0', 'res': '$4load_attr.1'}), (6, {'res': '$6load_global.2'}), (8, {'res': '$pred8.3'}), (10, {'func': '$6load_global.2', 'args': ['$pred8.3'], 'res': '$10call_function.4'}), (12, {'res': '$12load_global.5'}), (14, {'res': '$edges_uv14.6'}), (16, {'func': '$12load_global.5', 'args': ['$edges_uv14.6'], 'res': '$16call_function.7'}), (18, {'lhs': '$10call_function.4', 'rhs': '$16call_function.7', 'res': '$18binary_add.8'}), (20, {'res': '$const20.9'}), (22, {'items': ['$18binary_add.8', '$const20.9'], 'res': '$22build_tuple.10'}), (24, {'res': '$24load_global.11'}), (26, {'item': '$24load_global.11', 'res': '$26load_attr.12'}), (28, {'res': '$const28.13'}), (30, {'func': '$4load_attr.1', 'args': ['$22build_tuple.10', '$26load_attr.12'], 'names': '$const28.13', 'res': '$30call_function_kw.14'}), (32, {'value': '$30call_function_kw.14'}), (34, {'res': '$34load_global.15'}), (36, {'res': '$36load_global.16'}), (38, {'res': '$loop_indices38.17'}), (40, {'func': '$36load_global.16', 'args': ['$loop_indices38.17'], 'res': '$40call_function.18'}), (42, {'func': '$34load_global.15', 'args': ['$40call_function.18'], 'res': '$42call_function.19'}), (44, {'value': '$42call_function.19', 'res': '$44get_iter.20'})), outgoing_phis={'$phi46.0': '$44get_iter.20'}, blockstack=(), active_try_block=None, outgoing_edgepushed={46: ('$44get_iter.20',)})\n", - "2023-05-15 11:07:34,535 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=46 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((46, {'iterator': '$phi46.0', 'pair': '$46for_iter.1', 'indval': '$46for_iter.2', 'pred': '$46for_iter.3'}),), outgoing_phis={'$phi48.1': '$46for_iter.2'}, blockstack=(), active_try_block=None, outgoing_edgepushed={92: (), 48: ('$phi46.0', '$46for_iter.2')})\n", - "2023-05-15 11:07:34,536 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=48 nstack_initial=2):\n", - "AdaptBlockInfo(insts=((48, {'value': '$phi48.1'}), (50, {'res': '$betweennesses50.2'}), (52, {'res': '$52load_global.3'}), (54, {'res': '$loop_indices54.4'}), (56, {'res': '$idx56.5'}), (58, {'index': '$idx56.5', 'target': '$loop_indices54.4', 'res': '$58binary_subscr.6'}), (60, {'res': '$pred60.7'}), (62, {'res': '$loop_indices62.8'}), (64, {'res': '$idx64.9'}), (66, {'index': '$idx64.9', 'target': '$loop_indices62.8', 'res': '$66binary_subscr.10'}), (68, {'index': '$66binary_subscr.10', 'target': '$pred60.7', 'res': '$68binary_subscr.11'}), (70, {'res': '$dist70.12'}), (72, {'res': '$loop_indices72.13'}), (74, {'res': '$idx74.14'}), (76, {'index': '$idx74.14', 'target': '$loop_indices72.13', 'res': '$76binary_subscr.15'}), (78, {'index': '$76binary_subscr.15', 'target': '$dist70.12', 'res': '$78binary_subscr.16'}), (80, {'res': '$edges_uv80.17'}), (82, {'res': '$edge_padding82.18'}), (84, {'func': '$52load_global.3', 'args': ['$58binary_subscr.6', '$68binary_subscr.11', '$78binary_subscr.16', '$edges_uv80.17', '$edge_padding82.18'], 'res': '$84call_function.19'}), (86, {'lhs': '$betweennesses50.2', 'rhs': '$84call_function.19', 'res': '$86inplace_add.20'}), (88, {'value': '$86inplace_add.20'}), (90, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={46: ('$phi48.0',)})\n", - "2023-05-15 11:07:34,536 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=92 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((92, {'res': '$betweennesses92.0'}), (94, {'retval': '$betweennesses92.0', 'castval': '$94return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:34,538 | DEBUG | interpreter.py:1342 | label 0:\n", - " loop_indices = arg(0, name=loop_indices) ['loop_indices']\n", - " pred = arg(1, name=pred) ['pred']\n", - " dist = arg(2, name=dist) ['dist']\n", - " edges_uv = arg(3, name=edges_uv) ['edges_uv']\n", - " edge_padding = arg(4, name=edge_padding) ['edge_padding']\n", - " $2load_global.0 = global(np: ) ['$2load_global.0']\n", - " $4load_attr.1 = getattr(value=$2load_global.0, attr=zeros) ['$2load_global.0', '$4load_attr.1']\n", - " $6load_global.2 = global(len: ) ['$6load_global.2']\n", - " $10call_function.4 = call $6load_global.2(pred, func=$6load_global.2, args=[Var(pred, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None) ['$10call_function.4', '$6load_global.2', 'pred']\n", - " $12load_global.5 = global(len: ) ['$12load_global.5']\n", - " $16call_function.7 = call $12load_global.5(edges_uv, func=$12load_global.5, args=[Var(edges_uv, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None) ['$12load_global.5', '$16call_function.7', 'edges_uv']\n", - " $18binary_add.8 = $10call_function.4 + $16call_function.7 ['$10call_function.4', '$16call_function.7', '$18binary_add.8']\n", - " $const20.9 = const(int, 3) ['$const20.9']\n", - " $22build_tuple.10 = build_tuple(items=[Var($18binary_add.8, measures.py:574), Var($const20.9, measures.py:574)]) ['$18binary_add.8', '$22build_tuple.10', '$const20.9']\n", - " $24load_global.11 = global(np: ) ['$24load_global.11']\n", - " $26load_attr.12 = getattr(value=$24load_global.11, attr=float64) ['$24load_global.11', '$26load_attr.12']\n", - " betweennesses = call $4load_attr.1($22build_tuple.10, func=$4load_attr.1, args=[Var($22build_tuple.10, measures.py:574)], kws=[('dtype', Var($26load_attr.12, measures.py:574))], vararg=None, varkwarg=None, target=None) ['$22build_tuple.10', '$26load_attr.12', '$4load_attr.1', 'betweennesses']\n", - " $34load_global.15 = global(prange: ) ['$34load_global.15']\n", - " $36load_global.16 = global(len: ) ['$36load_global.16']\n", - " $40call_function.18 = call $36load_global.16(loop_indices, func=$36load_global.16, args=[Var(loop_indices, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None) ['$36load_global.16', '$40call_function.18', 'loop_indices']\n", - " $42call_function.19 = call $34load_global.15($40call_function.18, func=$34load_global.15, args=[Var($40call_function.18, measures.py:579)], kws=(), vararg=None, varkwarg=None, target=None) ['$34load_global.15', '$40call_function.18', '$42call_function.19']\n", - " $44get_iter.20 = getiter(value=$42call_function.19) ['$42call_function.19', '$44get_iter.20']\n", - " $phi46.0 = $44get_iter.20 ['$44get_iter.20', '$phi46.0']\n", - " jump 46 []\n", - "label 46:\n", - " $46for_iter.1 = iternext(value=$phi46.0) ['$46for_iter.1', '$phi46.0']\n", - " $46for_iter.2 = pair_first(value=$46for_iter.1) ['$46for_iter.1', '$46for_iter.2']\n", - " $46for_iter.3 = pair_second(value=$46for_iter.1) ['$46for_iter.1', '$46for_iter.3']\n", - " $phi48.1 = $46for_iter.2 ['$46for_iter.2', '$phi48.1']\n", - " branch $46for_iter.3, 48, 92 ['$46for_iter.3']\n", - "label 48:\n", - " idx = $phi48.1 ['$phi48.1', 'idx']\n", - " $52load_global.3 = global(__accumulate_bc: CPUDispatcher()) ['$52load_global.3']\n", - " $58binary_subscr.6 = getitem(value=loop_indices, index=idx, fn=) ['$58binary_subscr.6', 'idx', 'loop_indices']\n", - " $66binary_subscr.10 = getitem(value=loop_indices, index=idx, fn=) ['$66binary_subscr.10', 'idx', 'loop_indices']\n", - " $68binary_subscr.11 = getitem(value=pred, index=$66binary_subscr.10, fn=) ['$66binary_subscr.10', '$68binary_subscr.11', 'pred']\n", - " $76binary_subscr.15 = getitem(value=loop_indices, index=idx, fn=) ['$76binary_subscr.15', 'idx', 'loop_indices']\n", - " $78binary_subscr.16 = getitem(value=dist, index=$76binary_subscr.15, fn=) ['$76binary_subscr.15', '$78binary_subscr.16', 'dist']\n", - " $84call_function.19 = call $52load_global.3($58binary_subscr.6, $68binary_subscr.11, $78binary_subscr.16, edges_uv, edge_padding, func=$52load_global.3, args=[Var($58binary_subscr.6, measures.py:581), Var($68binary_subscr.11, measures.py:582), Var($78binary_subscr.16, measures.py:583), Var(edges_uv, measures.py:574), Var(edge_padding, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None) ['$52load_global.3', '$58binary_subscr.6', '$68binary_subscr.11', '$78binary_subscr.16', '$84call_function.19', 'edge_padding', 'edges_uv']\n", - " $86inplace_add.20 = inplace_binop(fn=, immutable_fn=, lhs=betweennesses, rhs=$84call_function.19, static_lhs=Undefined, static_rhs=Undefined) ['$84call_function.19', '$86inplace_add.20', 'betweennesses']\n", - " betweennesses = $86inplace_add.20 ['$86inplace_add.20', 'betweennesses']\n", - " jump 46 []\n", - "label 92:\n", - " $94return_value.1 = cast(value=betweennesses) ['$94return_value.1', 'betweennesses']\n", - " return $94return_value.1 ['$94return_value.1']\n", - "\n", - "2023-05-15 11:07:34,547 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:34,548 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,548 | DEBUG | ssa.py:193 | on stmt: loop_indices = arg(0, name=loop_indices)\n", - "2023-05-15 11:07:34,549 | DEBUG | ssa.py:193 | on stmt: pred = arg(1, name=pred)\n", - "2023-05-15 11:07:34,549 | DEBUG | ssa.py:193 | on stmt: dist = arg(2, name=dist)\n", - "2023-05-15 11:07:34,550 | DEBUG | ssa.py:193 | on stmt: edges_uv = arg(3, name=edges_uv)\n", - "2023-05-15 11:07:34,550 | DEBUG | ssa.py:193 | on stmt: edge_padding = arg(4, name=edge_padding)\n", - "2023-05-15 11:07:34,550 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:34,551 | DEBUG | ssa.py:193 | on stmt: $4load_attr.1 = getattr(value=$2load_global.0, attr=zeros)\n", - "2023-05-15 11:07:34,551 | DEBUG | ssa.py:193 | on stmt: $6load_global.2 = global(len: )\n", - "2023-05-15 11:07:34,552 | DEBUG | ssa.py:193 | on stmt: $10call_function.4 = call $6load_global.2(pred, func=$6load_global.2, args=[Var(pred, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,552 | DEBUG | ssa.py:193 | on stmt: $12load_global.5 = global(len: )\n", - "2023-05-15 11:07:34,553 | DEBUG | ssa.py:193 | on stmt: $16call_function.7 = call $12load_global.5(edges_uv, func=$12load_global.5, args=[Var(edges_uv, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,553 | DEBUG | ssa.py:193 | on stmt: $18binary_add.8 = $10call_function.4 + $16call_function.7\n", - "2023-05-15 11:07:34,553 | DEBUG | ssa.py:193 | on stmt: $const20.9 = const(int, 3)\n", - "2023-05-15 11:07:34,554 | DEBUG | ssa.py:193 | on stmt: $22build_tuple.10 = build_tuple(items=[Var($18binary_add.8, measures.py:574), Var($const20.9, measures.py:574)])\n", - "2023-05-15 11:07:34,554 | DEBUG | ssa.py:193 | on stmt: $24load_global.11 = global(np: )\n", - "2023-05-15 11:07:34,555 | DEBUG | ssa.py:193 | on stmt: $26load_attr.12 = getattr(value=$24load_global.11, attr=float64)\n", - "2023-05-15 11:07:34,555 | DEBUG | ssa.py:193 | on stmt: betweennesses = call $4load_attr.1($22build_tuple.10, func=$4load_attr.1, args=[Var($22build_tuple.10, measures.py:574)], kws=[('dtype', Var($26load_attr.12, measures.py:574))], vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,556 | DEBUG | ssa.py:193 | on stmt: $34load_global.15 = global(prange: )\n", - "2023-05-15 11:07:34,556 | DEBUG | ssa.py:193 | on stmt: $36load_global.16 = global(len: )\n", - "2023-05-15 11:07:34,556 | DEBUG | ssa.py:193 | on stmt: $40call_function.18 = call $36load_global.16(loop_indices, func=$36load_global.16, args=[Var(loop_indices, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,557 | DEBUG | ssa.py:193 | on stmt: $42call_function.19 = call $34load_global.15($40call_function.18, func=$34load_global.15, args=[Var($40call_function.18, measures.py:579)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,557 | DEBUG | ssa.py:193 | on stmt: $44get_iter.20 = getiter(value=$42call_function.19)\n", - "2023-05-15 11:07:34,558 | DEBUG | ssa.py:193 | on stmt: $phi46.0 = $44get_iter.20\n", - "2023-05-15 11:07:34,558 | DEBUG | ssa.py:193 | on stmt: jump 46\n", - "2023-05-15 11:07:34,560 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 46\n", - "2023-05-15 11:07:34,560 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,561 | DEBUG | ssa.py:193 | on stmt: $46for_iter.1 = iternext(value=$phi46.0)\n", - "2023-05-15 11:07:34,561 | DEBUG | ssa.py:193 | on stmt: $46for_iter.2 = pair_first(value=$46for_iter.1)\n", - "2023-05-15 11:07:34,562 | DEBUG | ssa.py:193 | on stmt: $46for_iter.3 = pair_second(value=$46for_iter.1)\n", - "2023-05-15 11:07:34,563 | DEBUG | ssa.py:193 | on stmt: $phi48.1 = $46for_iter.2\n", - "2023-05-15 11:07:34,563 | DEBUG | ssa.py:193 | on stmt: branch $46for_iter.3, 48, 92\n", - "2023-05-15 11:07:34,564 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 48\n", - "2023-05-15 11:07:34,564 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,565 | DEBUG | ssa.py:193 | on stmt: idx = $phi48.1\n", - "2023-05-15 11:07:34,566 | DEBUG | ssa.py:193 | on stmt: $52load_global.3 = global(__accumulate_bc: CPUDispatcher())\n", - "2023-05-15 11:07:34,566 | DEBUG | ssa.py:193 | on stmt: $58binary_subscr.6 = getitem(value=loop_indices, index=idx, fn=)\n", - "2023-05-15 11:07:34,567 | DEBUG | ssa.py:193 | on stmt: $66binary_subscr.10 = getitem(value=loop_indices, index=idx, fn=)\n", - "2023-05-15 11:07:34,567 | DEBUG | ssa.py:193 | on stmt: $68binary_subscr.11 = getitem(value=pred, index=$66binary_subscr.10, fn=)\n", - "2023-05-15 11:07:34,568 | DEBUG | ssa.py:193 | on stmt: $76binary_subscr.15 = getitem(value=loop_indices, index=idx, fn=)\n", - "2023-05-15 11:07:34,568 | DEBUG | ssa.py:193 | on stmt: $78binary_subscr.16 = getitem(value=dist, index=$76binary_subscr.15, fn=)\n", - "2023-05-15 11:07:34,569 | DEBUG | ssa.py:193 | on stmt: $84call_function.19 = call $52load_global.3($58binary_subscr.6, $68binary_subscr.11, $78binary_subscr.16, edges_uv, edge_padding, func=$52load_global.3, args=[Var($58binary_subscr.6, measures.py:581), Var($68binary_subscr.11, measures.py:582), Var($78binary_subscr.16, measures.py:583), Var(edges_uv, measures.py:574), Var(edge_padding, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,570 | DEBUG | ssa.py:193 | on stmt: $86inplace_add.20 = inplace_binop(fn=, immutable_fn=, lhs=betweennesses, rhs=$84call_function.19, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:34,570 | DEBUG | ssa.py:193 | on stmt: betweennesses = $86inplace_add.20\n", - "2023-05-15 11:07:34,571 | DEBUG | ssa.py:193 | on stmt: jump 46\n", - "2023-05-15 11:07:34,571 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 92\n", - "2023-05-15 11:07:34,572 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,572 | DEBUG | ssa.py:193 | on stmt: $94return_value.1 = cast(value=betweennesses)\n", - "2023-05-15 11:07:34,573 | DEBUG | ssa.py:193 | on stmt: return $94return_value.1\n", - "2023-05-15 11:07:34,574 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10call_function.4': [],\n", - " '$12load_global.5': [],\n", - " '$16call_function.7': [],\n", - " '$18binary_add.8': [],\n", - " '$22build_tuple.10': [],\n", - " '$24load_global.11': [],\n", - " '$26load_attr.12': [],\n", - " '$2load_global.0': [],\n", - " '$34load_global.15': [],\n", - " '$36load_global.16': [],\n", - " '$40call_function.18': [],\n", - " '$42call_function.19': [],\n", - " '$44get_iter.20': [],\n", - " '$46for_iter.1': [],\n", - " '$46for_iter.2': [],\n", - " '$46for_iter.3': [],\n", - " '$4load_attr.1': [],\n", - " '$52load_global.3': [],\n", - " '$58binary_subscr.6': [],\n", - " '$66binary_subscr.10': [],\n", - " '$68binary_subscr.11': [],\n", - " '$6load_global.2': [],\n", - " '$76binary_subscr.15': [],\n", - " '$78binary_subscr.16': [],\n", - " '$84call_function.19': [],\n", - " '$86inplace_add.20': [],\n", - " '$94return_value.1': [],\n", - " '$const20.9': [],\n", - " '$phi46.0': [],\n", - " '$phi48.1': [],\n", - " 'betweennesses': [,\n", - " ],\n", - " 'dist': [],\n", - " 'edge_padding': [],\n", - " 'edges_uv': [],\n", - " 'idx': [],\n", - " 'loop_indices': [],\n", - " 'pred': []})\n", - "2023-05-15 11:07:34,579 | DEBUG | ssa.py:156 | SSA violators {'betweennesses'}\n", - "2023-05-15 11:07:34,580 | DEBUG | ssa.py:63 | Fix SSA violator on var betweennesses\n", - "2023-05-15 11:07:34,580 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:34,584 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,585 | DEBUG | ssa.py:193 | on stmt: loop_indices = arg(0, name=loop_indices)\n", - "2023-05-15 11:07:34,586 | DEBUG | ssa.py:193 | on stmt: pred = arg(1, name=pred)\n", - "2023-05-15 11:07:34,587 | DEBUG | ssa.py:193 | on stmt: dist = arg(2, name=dist)\n", - "2023-05-15 11:07:34,587 | DEBUG | ssa.py:193 | on stmt: edges_uv = arg(3, name=edges_uv)\n", - "2023-05-15 11:07:34,588 | DEBUG | ssa.py:193 | on stmt: edge_padding = arg(4, name=edge_padding)\n", - "2023-05-15 11:07:34,589 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:34,590 | DEBUG | ssa.py:193 | on stmt: $4load_attr.1 = getattr(value=$2load_global.0, attr=zeros)\n", - "2023-05-15 11:07:34,590 | DEBUG | ssa.py:193 | on stmt: $6load_global.2 = global(len: )\n", - "2023-05-15 11:07:34,591 | DEBUG | ssa.py:193 | on stmt: $10call_function.4 = call $6load_global.2(pred, func=$6load_global.2, args=[Var(pred, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,591 | DEBUG | ssa.py:193 | on stmt: $12load_global.5 = global(len: )\n", - "2023-05-15 11:07:34,592 | DEBUG | ssa.py:193 | on stmt: $16call_function.7 = call $12load_global.5(edges_uv, func=$12load_global.5, args=[Var(edges_uv, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,592 | DEBUG | ssa.py:193 | on stmt: $18binary_add.8 = $10call_function.4 + $16call_function.7\n", - "2023-05-15 11:07:34,593 | DEBUG | ssa.py:193 | on stmt: $const20.9 = const(int, 3)\n", - "2023-05-15 11:07:34,593 | DEBUG | ssa.py:193 | on stmt: $22build_tuple.10 = build_tuple(items=[Var($18binary_add.8, measures.py:574), Var($const20.9, measures.py:574)])\n", - "2023-05-15 11:07:34,594 | DEBUG | ssa.py:193 | on stmt: $24load_global.11 = global(np: )\n", - "2023-05-15 11:07:34,594 | DEBUG | ssa.py:193 | on stmt: $26load_attr.12 = getattr(value=$24load_global.11, attr=float64)\n", - "2023-05-15 11:07:34,595 | DEBUG | ssa.py:193 | on stmt: betweennesses = call $4load_attr.1($22build_tuple.10, func=$4load_attr.1, args=[Var($22build_tuple.10, measures.py:574)], kws=[('dtype', Var($26load_attr.12, measures.py:574))], vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,596 | DEBUG | ssa.py:269 | first assign: betweennesses\n", - "2023-05-15 11:07:34,596 | DEBUG | ssa.py:199 | replaced with: betweennesses = call $4load_attr.1($22build_tuple.10, func=$4load_attr.1, args=[Var($22build_tuple.10, measures.py:574)], kws=[('dtype', Var($26load_attr.12, measures.py:574))], vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,597 | DEBUG | ssa.py:193 | on stmt: $34load_global.15 = global(prange: )\n", - "2023-05-15 11:07:34,597 | DEBUG | ssa.py:193 | on stmt: $36load_global.16 = global(len: )\n", - "2023-05-15 11:07:34,598 | DEBUG | ssa.py:193 | on stmt: $40call_function.18 = call $36load_global.16(loop_indices, func=$36load_global.16, args=[Var(loop_indices, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,598 | DEBUG | ssa.py:193 | on stmt: $42call_function.19 = call $34load_global.15($40call_function.18, func=$34load_global.15, args=[Var($40call_function.18, measures.py:579)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,599 | DEBUG | ssa.py:193 | on stmt: $44get_iter.20 = getiter(value=$42call_function.19)\n", - "2023-05-15 11:07:34,599 | DEBUG | ssa.py:193 | on stmt: $phi46.0 = $44get_iter.20\n", - "2023-05-15 11:07:34,600 | DEBUG | ssa.py:193 | on stmt: jump 46\n", - "2023-05-15 11:07:34,600 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:34,601 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,601 | DEBUG | ssa.py:193 | on stmt: $46for_iter.1 = iternext(value=$phi46.0)\n", - "2023-05-15 11:07:34,602 | DEBUG | ssa.py:193 | on stmt: $46for_iter.2 = pair_first(value=$46for_iter.1)\n", - "2023-05-15 11:07:34,602 | DEBUG | ssa.py:193 | on stmt: $46for_iter.3 = pair_second(value=$46for_iter.1)\n", - "2023-05-15 11:07:34,603 | DEBUG | ssa.py:193 | on stmt: $phi48.1 = $46for_iter.2\n", - "2023-05-15 11:07:34,603 | DEBUG | ssa.py:193 | on stmt: branch $46for_iter.3, 48, 92\n", - "2023-05-15 11:07:34,604 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:34,605 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,605 | DEBUG | ssa.py:193 | on stmt: idx = $phi48.1\n", - "2023-05-15 11:07:34,605 | DEBUG | ssa.py:193 | on stmt: $52load_global.3 = global(__accumulate_bc: CPUDispatcher())\n", - "2023-05-15 11:07:34,606 | DEBUG | ssa.py:193 | on stmt: $58binary_subscr.6 = getitem(value=loop_indices, index=idx, fn=)\n", - "2023-05-15 11:07:34,606 | DEBUG | ssa.py:193 | on stmt: $66binary_subscr.10 = getitem(value=loop_indices, index=idx, fn=)\n", - "2023-05-15 11:07:34,607 | DEBUG | ssa.py:193 | on stmt: $68binary_subscr.11 = getitem(value=pred, index=$66binary_subscr.10, fn=)\n", - "2023-05-15 11:07:34,607 | DEBUG | ssa.py:193 | on stmt: $76binary_subscr.15 = getitem(value=loop_indices, index=idx, fn=)\n", - "2023-05-15 11:07:34,608 | DEBUG | ssa.py:193 | on stmt: $78binary_subscr.16 = getitem(value=dist, index=$76binary_subscr.15, fn=)\n", - "2023-05-15 11:07:34,609 | DEBUG | ssa.py:193 | on stmt: $84call_function.19 = call $52load_global.3($58binary_subscr.6, $68binary_subscr.11, $78binary_subscr.16, edges_uv, edge_padding, func=$52load_global.3, args=[Var($58binary_subscr.6, measures.py:581), Var($68binary_subscr.11, measures.py:582), Var($78binary_subscr.16, measures.py:583), Var(edges_uv, measures.py:574), Var(edge_padding, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,609 | DEBUG | ssa.py:193 | on stmt: $86inplace_add.20 = inplace_binop(fn=, immutable_fn=, lhs=betweennesses, rhs=$84call_function.19, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:34,610 | DEBUG | ssa.py:193 | on stmt: betweennesses = $86inplace_add.20\n", - "2023-05-15 11:07:34,610 | DEBUG | ssa.py:199 | replaced with: betweennesses.1 = $86inplace_add.20\n", - "2023-05-15 11:07:34,611 | DEBUG | ssa.py:193 | on stmt: jump 46\n", - "2023-05-15 11:07:34,611 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 92\n", - "2023-05-15 11:07:34,611 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,612 | DEBUG | ssa.py:193 | on stmt: $94return_value.1 = cast(value=betweennesses)\n", - "2023-05-15 11:07:34,612 | DEBUG | ssa.py:193 | on stmt: return $94return_value.1\n", - "2023-05-15 11:07:34,613 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {0: [],\n", - " 48: []})\n", - "2023-05-15 11:07:34,614 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:34,614 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,614 | DEBUG | ssa.py:193 | on stmt: loop_indices = arg(0, name=loop_indices)\n", - "2023-05-15 11:07:34,615 | DEBUG | ssa.py:193 | on stmt: pred = arg(1, name=pred)\n", - "2023-05-15 11:07:34,615 | DEBUG | ssa.py:193 | on stmt: dist = arg(2, name=dist)\n", - "2023-05-15 11:07:34,616 | DEBUG | ssa.py:193 | on stmt: edges_uv = arg(3, name=edges_uv)\n", - "2023-05-15 11:07:34,616 | DEBUG | ssa.py:193 | on stmt: edge_padding = arg(4, name=edge_padding)\n", - "2023-05-15 11:07:34,617 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:34,617 | DEBUG | ssa.py:193 | on stmt: $4load_attr.1 = getattr(value=$2load_global.0, attr=zeros)\n", - "2023-05-15 11:07:34,618 | DEBUG | ssa.py:193 | on stmt: $6load_global.2 = global(len: )\n", - "2023-05-15 11:07:34,618 | DEBUG | ssa.py:193 | on stmt: $10call_function.4 = call $6load_global.2(pred, func=$6load_global.2, args=[Var(pred, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,619 | DEBUG | ssa.py:193 | on stmt: $12load_global.5 = global(len: )\n", - "2023-05-15 11:07:34,619 | DEBUG | ssa.py:193 | on stmt: $16call_function.7 = call $12load_global.5(edges_uv, func=$12load_global.5, args=[Var(edges_uv, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,619 | DEBUG | ssa.py:193 | on stmt: $18binary_add.8 = $10call_function.4 + $16call_function.7\n", - "2023-05-15 11:07:34,620 | DEBUG | ssa.py:193 | on stmt: $const20.9 = const(int, 3)\n", - "2023-05-15 11:07:34,620 | DEBUG | ssa.py:193 | on stmt: $22build_tuple.10 = build_tuple(items=[Var($18binary_add.8, measures.py:574), Var($const20.9, measures.py:574)])\n", - "2023-05-15 11:07:34,621 | DEBUG | ssa.py:193 | on stmt: $24load_global.11 = global(np: )\n", - "2023-05-15 11:07:34,621 | DEBUG | ssa.py:193 | on stmt: $26load_attr.12 = getattr(value=$24load_global.11, attr=float64)\n", - "2023-05-15 11:07:34,621 | DEBUG | ssa.py:193 | on stmt: betweennesses = call $4load_attr.1($22build_tuple.10, func=$4load_attr.1, args=[Var($22build_tuple.10, measures.py:574)], kws=[('dtype', Var($26load_attr.12, measures.py:574))], vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,622 | DEBUG | ssa.py:193 | on stmt: $34load_global.15 = global(prange: )\n", - "2023-05-15 11:07:34,622 | DEBUG | ssa.py:193 | on stmt: $36load_global.16 = global(len: )\n", - "2023-05-15 11:07:34,623 | DEBUG | ssa.py:193 | on stmt: $40call_function.18 = call $36load_global.16(loop_indices, func=$36load_global.16, args=[Var(loop_indices, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,623 | DEBUG | ssa.py:193 | on stmt: $42call_function.19 = call $34load_global.15($40call_function.18, func=$34load_global.15, args=[Var($40call_function.18, measures.py:579)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,623 | DEBUG | ssa.py:193 | on stmt: $44get_iter.20 = getiter(value=$42call_function.19)\n", - "2023-05-15 11:07:34,624 | DEBUG | ssa.py:193 | on stmt: $phi46.0 = $44get_iter.20\n", - "2023-05-15 11:07:34,624 | DEBUG | ssa.py:193 | on stmt: jump 46\n", - "2023-05-15 11:07:34,625 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 46\n", - "2023-05-15 11:07:34,625 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,625 | DEBUG | ssa.py:193 | on stmt: $46for_iter.1 = iternext(value=$phi46.0)\n", - "2023-05-15 11:07:34,626 | DEBUG | ssa.py:193 | on stmt: $46for_iter.2 = pair_first(value=$46for_iter.1)\n", - "2023-05-15 11:07:34,626 | DEBUG | ssa.py:193 | on stmt: $46for_iter.3 = pair_second(value=$46for_iter.1)\n", - "2023-05-15 11:07:34,627 | DEBUG | ssa.py:193 | on stmt: $phi48.1 = $46for_iter.2\n", - "2023-05-15 11:07:34,627 | DEBUG | ssa.py:193 | on stmt: branch $46for_iter.3, 48, 92\n", - "2023-05-15 11:07:34,627 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 48\n", - "2023-05-15 11:07:34,628 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,628 | DEBUG | ssa.py:193 | on stmt: idx = $phi48.1\n", - "2023-05-15 11:07:34,629 | DEBUG | ssa.py:193 | on stmt: $52load_global.3 = global(__accumulate_bc: CPUDispatcher())\n", - "2023-05-15 11:07:34,632 | DEBUG | ssa.py:193 | on stmt: $58binary_subscr.6 = getitem(value=loop_indices, index=idx, fn=)\n", - "2023-05-15 11:07:34,632 | DEBUG | ssa.py:193 | on stmt: $66binary_subscr.10 = getitem(value=loop_indices, index=idx, fn=)\n", - "2023-05-15 11:07:34,633 | DEBUG | ssa.py:193 | on stmt: $68binary_subscr.11 = getitem(value=pred, index=$66binary_subscr.10, fn=)\n", - "2023-05-15 11:07:34,633 | DEBUG | ssa.py:193 | on stmt: $76binary_subscr.15 = getitem(value=loop_indices, index=idx, fn=)\n", - "2023-05-15 11:07:34,634 | DEBUG | ssa.py:193 | on stmt: $78binary_subscr.16 = getitem(value=dist, index=$76binary_subscr.15, fn=)\n", - "2023-05-15 11:07:34,634 | DEBUG | ssa.py:193 | on stmt: $84call_function.19 = call $52load_global.3($58binary_subscr.6, $68binary_subscr.11, $78binary_subscr.16, edges_uv, edge_padding, func=$52load_global.3, args=[Var($58binary_subscr.6, measures.py:581), Var($68binary_subscr.11, measures.py:582), Var($78binary_subscr.16, measures.py:583), Var(edges_uv, measures.py:574), Var(edge_padding, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,635 | DEBUG | ssa.py:193 | on stmt: $86inplace_add.20 = inplace_binop(fn=, immutable_fn=, lhs=betweennesses, rhs=$84call_function.19, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:34,635 | DEBUG | ssa.py:353 | find_def var='betweennesses' stmt=$86inplace_add.20 = inplace_binop(fn=, immutable_fn=, lhs=betweennesses, rhs=$84call_function.19, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:34,636 | DEBUG | ssa.py:384 | find_def_from_top label 48\n", - "2023-05-15 11:07:34,636 | DEBUG | ssa.py:421 | idom 46 from label 48\n", - "2023-05-15 11:07:34,637 | DEBUG | ssa.py:427 | find_def_from_bottom label 46\n", - "2023-05-15 11:07:34,637 | DEBUG | ssa.py:384 | find_def_from_top label 46\n", - "2023-05-15 11:07:34,638 | DEBUG | ssa.py:401 | insert phi node betweennesses.2 = phi(incoming_values=[], incoming_blocks=[]) at 46\n", - "2023-05-15 11:07:34,638 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:34,639 | DEBUG | ssa.py:409 | incoming_def betweennesses = call $4load_attr.1($22build_tuple.10, func=$4load_attr.1, args=[Var($22build_tuple.10, measures.py:574)], kws=[('dtype', Var($26load_attr.12, measures.py:574))], vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,639 | DEBUG | ssa.py:427 | find_def_from_bottom label 48\n", - "2023-05-15 11:07:34,640 | DEBUG | ssa.py:409 | incoming_def betweennesses.1 = $86inplace_add.20\n", - "2023-05-15 11:07:34,640 | DEBUG | ssa.py:199 | replaced with: $86inplace_add.20 = inplace_binop(fn=, immutable_fn=, lhs=betweennesses.2, rhs=$84call_function.19, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:34,640 | DEBUG | ssa.py:193 | on stmt: betweennesses.1 = $86inplace_add.20\n", - "2023-05-15 11:07:34,641 | DEBUG | ssa.py:193 | on stmt: jump 46\n", - "2023-05-15 11:07:34,641 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 92\n", - "2023-05-15 11:07:34,642 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,642 | DEBUG | ssa.py:193 | on stmt: $94return_value.1 = cast(value=betweennesses)\n", - "2023-05-15 11:07:34,643 | DEBUG | ssa.py:353 | find_def var='betweennesses' stmt=$94return_value.1 = cast(value=betweennesses)\n", - "2023-05-15 11:07:34,643 | DEBUG | ssa.py:384 | find_def_from_top label 92\n", - "2023-05-15 11:07:34,644 | DEBUG | ssa.py:421 | idom 46 from label 92\n", - "2023-05-15 11:07:34,644 | DEBUG | ssa.py:427 | find_def_from_bottom label 46\n", - "2023-05-15 11:07:34,645 | DEBUG | ssa.py:199 | replaced with: $94return_value.1 = cast(value=betweennesses.2)\n", - "2023-05-15 11:07:34,646 | DEBUG | ssa.py:193 | on stmt: return $94return_value.1\n", - "2023-05-15 11:07:34,654 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4169)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=4169)\n", - " 4\tLOAD_ATTR(arg=1, lineno=4169)\n", - " 6\tLOAD_FAST(arg=0, lineno=4169)\n", - " 8\tLOAD_FAST(arg=1, lineno=4169)\n", - " 10\tLOAD_CONST(arg=1, lineno=4169)\n", - " 12\tCALL_FUNCTION_KW(arg=2, lineno=4169)\n", - " 14\tSTORE_FAST(arg=2, lineno=4169)\n", - " 16\tLOAD_FAST(arg=2, lineno=4170)\n", - " 18\tLOAD_METHOD(arg=2, lineno=4170)\n", - " 20\tCALL_METHOD(arg=0, lineno=4170)\n", - " 22\tPOP_TOP(arg=None, lineno=4170)\n", - " 24\tLOAD_FAST(arg=2, lineno=4171)\n", - " 26\tRETURN_VALUE(arg=None, lineno=4171)\n", - "2023-05-15 11:07:34,654 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:34,655 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:34,655 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4169)\n", - "2023-05-15 11:07:34,656 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:34,657 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=4169)\n", - "2023-05-15 11:07:34,657 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:34,658 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_ATTR(arg=1, lineno=4169)\n", - "2023-05-15 11:07:34,659 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:34,659 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=0, lineno=4169)\n", - "2023-05-15 11:07:34,660 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1']\n", - "2023-05-15 11:07:34,661 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_FAST(arg=1, lineno=4169)\n", - "2023-05-15 11:07:34,662 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$shape6.2']\n", - "2023-05-15 11:07:34,663 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_CONST(arg=1, lineno=4169)\n", - "2023-05-15 11:07:34,663 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$shape6.2', '$dtype8.3']\n", - "2023-05-15 11:07:34,664 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=CALL_FUNCTION_KW(arg=2, lineno=4169)\n", - "2023-05-15 11:07:34,664 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1', '$shape6.2', '$dtype8.3', '$const10.4']\n", - "2023-05-15 11:07:34,665 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=STORE_FAST(arg=2, lineno=4169)\n", - "2023-05-15 11:07:34,665 | DEBUG | byteflow.py:279 | stack ['$12call_function_kw.5']\n", - "2023-05-15 11:07:34,666 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=LOAD_FAST(arg=2, lineno=4170)\n", - "2023-05-15 11:07:34,666 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:34,667 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=LOAD_METHOD(arg=2, lineno=4170)\n", - "2023-05-15 11:07:34,667 | DEBUG | byteflow.py:279 | stack ['$arr16.6']\n", - "2023-05-15 11:07:34,668 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=CALL_METHOD(arg=0, lineno=4170)\n", - "2023-05-15 11:07:34,669 | DEBUG | byteflow.py:279 | stack ['$18load_method.7']\n", - "2023-05-15 11:07:34,669 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=POP_TOP(arg=None, lineno=4170)\n", - "2023-05-15 11:07:34,670 | DEBUG | byteflow.py:279 | stack ['$20call_method.8']\n", - "2023-05-15 11:07:34,670 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=LOAD_FAST(arg=2, lineno=4171)\n", - "2023-05-15 11:07:34,671 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:34,671 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=RETURN_VALUE(arg=None, lineno=4171)\n", - "2023-05-15 11:07:34,672 | DEBUG | byteflow.py:279 | stack ['$arr24.9']\n", - "2023-05-15 11:07:34,672 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:34,673 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:34,673 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:34,674 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:34,675 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:34,680 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:34,680 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:34,681 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:34,681 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:34,682 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'item': '$2load_global.0', 'res': '$4load_attr.1'}), (6, {'res': '$shape6.2'}), (8, {'res': '$dtype8.3'}), (10, {'res': '$const10.4'}), (12, {'func': '$4load_attr.1', 'args': ['$shape6.2', '$dtype8.3'], 'names': '$const10.4', 'res': '$12call_function_kw.5'}), (14, {'value': '$12call_function_kw.5'}), (16, {'res': '$arr16.6'}), (18, {'item': '$arr16.6', 'res': '$18load_method.7'}), (20, {'func': '$18load_method.7', 'args': [], 'res': '$20call_method.8'}), (24, {'res': '$arr24.9'}), (26, {'retval': '$arr24.9', 'castval': '$26return_value.10'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:34,683 | DEBUG | interpreter.py:1342 | label 0:\n", - " shape = arg(0, name=shape) ['shape']\n", - " dtype = arg(1, name=dtype) ['dtype']\n", - " $2load_global.0 = global(np: ) ['$2load_global.0']\n", - " $4load_attr.1 = getattr(value=$2load_global.0, attr=empty) ['$2load_global.0', '$4load_attr.1']\n", - " arr = call $4load_attr.1(shape, func=$4load_attr.1, args=[Var(shape, arrayobj.py:4169)], kws=[('dtype', Var(dtype, arrayobj.py:4169))], vararg=None, varkwarg=None, target=None) ['$4load_attr.1', 'arr', 'dtype', 'shape']\n", - " $18load_method.7 = getattr(value=arr, attr=_zero_fill) ['$18load_method.7', 'arr']\n", - " $20call_method.8 = call $18load_method.7(func=$18load_method.7, args=[], kws=(), vararg=None, varkwarg=None, target=None) ['$18load_method.7', '$20call_method.8']\n", - " $26return_value.10 = cast(value=arr) ['$26return_value.10', 'arr']\n", - " return $26return_value.10 ['$26return_value.10']\n", - "\n", - "2023-05-15 11:07:34,692 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:34,693 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,693 | DEBUG | ssa.py:193 | on stmt: shape = arg(0, name=shape)\n", - "2023-05-15 11:07:34,694 | DEBUG | ssa.py:193 | on stmt: dtype = arg(1, name=dtype)\n", - "2023-05-15 11:07:34,695 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:34,696 | DEBUG | ssa.py:193 | on stmt: $4load_attr.1 = getattr(value=$2load_global.0, attr=empty)\n", - "2023-05-15 11:07:34,697 | DEBUG | ssa.py:193 | on stmt: arr = call $4load_attr.1(shape, func=$4load_attr.1, args=[Var(shape, arrayobj.py:4169)], kws=[('dtype', Var(dtype, arrayobj.py:4169))], vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,698 | DEBUG | ssa.py:193 | on stmt: $18load_method.7 = getattr(value=arr, attr=_zero_fill)\n", - "2023-05-15 11:07:34,698 | DEBUG | ssa.py:193 | on stmt: $20call_method.8 = call $18load_method.7(func=$18load_method.7, args=[], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,699 | DEBUG | ssa.py:193 | on stmt: $26return_value.10 = cast(value=arr)\n", - "2023-05-15 11:07:34,699 | DEBUG | ssa.py:193 | on stmt: return $26return_value.10\n", - "2023-05-15 11:07:34,700 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$18load_method.7': [],\n", - " '$20call_method.8': [],\n", - " '$26return_value.10': [],\n", - " '$2load_global.0': [],\n", - " '$4load_attr.1': [],\n", - " 'arr': [],\n", - " 'dtype': [],\n", - " 'shape': []})\n", - "2023-05-15 11:07:34,701 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:34,762 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4101)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=4101)\n", - " 4\tLOAD_FAST(arg=0, lineno=4101)\n", - " 6\tLOAD_FAST(arg=1, lineno=4101)\n", - " 8\tLOAD_DEREF(arg=0, lineno=4101)\n", - " 10\tCALL_FUNCTION(arg=3, lineno=4101)\n", - " 12\tRETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:34,763 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:34,764 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:34,764 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4101)\n", - "2023-05-15 11:07:34,766 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:34,766 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=4101)\n", - "2023-05-15 11:07:34,766 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:34,767 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=4101)\n", - "2023-05-15 11:07:34,767 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:34,769 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=1, lineno=4101)\n", - "2023-05-15 11:07:34,769 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1']\n", - "2023-05-15 11:07:34,770 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_DEREF(arg=0, lineno=4101)\n", - "2023-05-15 11:07:34,770 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2']\n", - "2023-05-15 11:07:34,771 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_FUNCTION(arg=3, lineno=4101)\n", - "2023-05-15 11:07:34,772 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2', '$8load_deref.3']\n", - "2023-05-15 11:07:34,772 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=RETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:34,773 | DEBUG | byteflow.py:279 | stack ['$10call_function.4']\n", - "2023-05-15 11:07:34,773 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:34,774 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:34,774 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:34,775 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:34,775 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:34,775 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:34,776 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:34,777 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:34,777 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:34,778 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$shape4.1'}), (6, {'res': '$dtype6.2'}), (8, {'res': '$8load_deref.3'}), (10, {'func': '$2load_global.0', 'args': ['$shape4.1', '$dtype6.2', '$8load_deref.3'], 'res': '$10call_function.4'}), (12, {'retval': '$10call_function.4', 'castval': '$12return_value.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:34,778 | DEBUG | interpreter.py:1342 | label 0:\n", - " shape = arg(0, name=shape) ['shape']\n", - " dtype = arg(1, name=dtype) ['dtype']\n", - " $2load_global.0 = global(numpy_empty_nd: ) ['$2load_global.0']\n", - " $8load_deref.3 = freevar(retty: array(float64, 2d, C)) ['$8load_deref.3']\n", - " $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None) ['$10call_function.4', '$2load_global.0', '$8load_deref.3', 'dtype', 'shape']\n", - " $12return_value.5 = cast(value=$10call_function.4) ['$10call_function.4', '$12return_value.5']\n", - " return $12return_value.5 ['$12return_value.5']\n", - "\n", - "2023-05-15 11:07:34,783 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:34,786 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,787 | DEBUG | ssa.py:193 | on stmt: shape = arg(0, name=shape)\n", - "2023-05-15 11:07:34,788 | DEBUG | ssa.py:193 | on stmt: dtype = arg(1, name=dtype)\n", - "2023-05-15 11:07:34,788 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(numpy_empty_nd: )\n", - "2023-05-15 11:07:34,789 | DEBUG | ssa.py:193 | on stmt: $8load_deref.3 = freevar(retty: array(float64, 2d, C))\n", - "2023-05-15 11:07:34,792 | DEBUG | ssa.py:193 | on stmt: $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,792 | DEBUG | ssa.py:193 | on stmt: $12return_value.5 = cast(value=$10call_function.4)\n", - "2023-05-15 11:07:34,793 | DEBUG | ssa.py:193 | on stmt: return $12return_value.5\n", - "2023-05-15 11:07:34,794 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10call_function.4': [],\n", - " '$12return_value.5': [],\n", - " '$2load_global.0': [],\n", - " '$8load_deref.3': [],\n", - " 'dtype': [],\n", - " 'shape': []})\n", - "2023-05-15 11:07:34,795 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:34,893 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=2)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=2)\n", - " 4\tLOAD_FAST(arg=0, lineno=2)\n", - " 6\tLOAD_CONST(arg=1, lineno=2)\n", - " 8\tBINARY_SUBSCR(arg=None, lineno=2)\n", - " 10\tLOAD_FAST(arg=0, lineno=2)\n", - " 12\tLOAD_CONST(arg=2, lineno=2)\n", - " 14\tBINARY_SUBSCR(arg=None, lineno=2)\n", - " 16\tLOAD_GLOBAL(arg=1, lineno=2)\n", - " 18\tLOAD_METHOD(arg=2, lineno=2)\n", - " 20\tLOAD_CONST(arg=3, lineno=2)\n", - " 22\tCALL_METHOD(arg=1, lineno=2)\n", - " 24\tBINARY_ADD(arg=None, lineno=2)\n", - " 26\tCALL_FUNCTION(arg=2, lineno=2)\n", - " 28\tGET_ITER(arg=None, lineno=2)\n", - "> 30\tFOR_ITER(arg=21, lineno=2)\n", - " 32\tSTORE_FAST(arg=2, lineno=2)\n", - " 34\tLOAD_GLOBAL(arg=0, lineno=3)\n", - " 36\tLOAD_FAST(arg=0, lineno=3)\n", - " 38\tLOAD_CONST(arg=3, lineno=3)\n", - " 40\tBINARY_SUBSCR(arg=None, lineno=3)\n", - " 42\tLOAD_FAST(arg=0, lineno=3)\n", - " 44\tLOAD_CONST(arg=4, lineno=3)\n", - " 46\tBINARY_SUBSCR(arg=None, lineno=3)\n", - " 48\tLOAD_GLOBAL(arg=1, lineno=3)\n", - " 50\tLOAD_METHOD(arg=2, lineno=3)\n", - " 52\tLOAD_CONST(arg=3, lineno=3)\n", - " 54\tCALL_METHOD(arg=1, lineno=3)\n", - " 56\tBINARY_ADD(arg=None, lineno=3)\n", - " 58\tCALL_FUNCTION(arg=2, lineno=3)\n", - " 60\tGET_ITER(arg=None, lineno=3)\n", - "> 62\tFOR_ITER(arg=4, lineno=3)\n", - " 64\tSTORE_FAST(arg=3, lineno=3)\n", - " 66\tLOAD_CONST(arg=1, lineno=4)\n", - " 68\tSTORE_FAST(arg=4, lineno=4)\n", - " 70\tJUMP_ABSOLUTE(arg=32, lineno=4)\n", - "> 72\tJUMP_ABSOLUTE(arg=16, lineno=3)\n", - "> 74\tLOAD_CONST(arg=0, lineno=5)\n", - " 76\tRETURN_VALUE(arg=None, lineno=5)\n", - "2023-05-15 11:07:34,893 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:34,894 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:34,894 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=2)\n", - "2023-05-15 11:07:34,896 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:34,896 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=2)\n", - "2023-05-15 11:07:34,896 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:34,897 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=2)\n", - "2023-05-15 11:07:34,897 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:34,899 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_CONST(arg=1, lineno=2)\n", - "2023-05-15 11:07:34,899 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$sched4.1']\n", - "2023-05-15 11:07:34,900 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=BINARY_SUBSCR(arg=None, lineno=2)\n", - "2023-05-15 11:07:34,900 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$sched4.1', '$const6.2']\n", - "2023-05-15 11:07:34,901 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_FAST(arg=0, lineno=2)\n", - "2023-05-15 11:07:34,901 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3']\n", - "2023-05-15 11:07:34,902 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=LOAD_CONST(arg=2, lineno=2)\n", - "2023-05-15 11:07:34,902 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$sched10.4']\n", - "2023-05-15 11:07:34,903 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=BINARY_SUBSCR(arg=None, lineno=2)\n", - "2023-05-15 11:07:34,904 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$sched10.4', '$const12.5']\n", - "2023-05-15 11:07:34,904 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=LOAD_GLOBAL(arg=1, lineno=2)\n", - "2023-05-15 11:07:34,905 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$14binary_subscr.6']\n", - "2023-05-15 11:07:34,905 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=LOAD_METHOD(arg=2, lineno=2)\n", - "2023-05-15 11:07:34,906 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$14binary_subscr.6', '$16load_global.7']\n", - "2023-05-15 11:07:34,906 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=LOAD_CONST(arg=3, lineno=2)\n", - "2023-05-15 11:07:34,907 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$14binary_subscr.6', '$18load_method.8']\n", - "2023-05-15 11:07:34,908 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=CALL_METHOD(arg=1, lineno=2)\n", - "2023-05-15 11:07:34,908 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$14binary_subscr.6', '$18load_method.8', '$const20.9']\n", - "2023-05-15 11:07:34,909 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=BINARY_ADD(arg=None, lineno=2)\n", - "2023-05-15 11:07:34,910 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$14binary_subscr.6', '$22call_method.10']\n", - "2023-05-15 11:07:34,910 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=CALL_FUNCTION(arg=2, lineno=2)\n", - "2023-05-15 11:07:34,911 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$8binary_subscr.3', '$24binary_add.11']\n", - "2023-05-15 11:07:34,911 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=GET_ITER(arg=None, lineno=2)\n", - "2023-05-15 11:07:34,912 | DEBUG | byteflow.py:279 | stack ['$26call_function.12']\n", - "2023-05-15 11:07:34,912 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=30, stack=('$28get_iter.13',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:34,913 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=30 nstack_initial=1)])\n", - "2023-05-15 11:07:34,914 | DEBUG | byteflow.py:103 | stack: ['$phi30.0']\n", - "2023-05-15 11:07:34,914 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=FOR_ITER(arg=21, lineno=2)\n", - "2023-05-15 11:07:34,915 | DEBUG | byteflow.py:279 | stack ['$phi30.0']\n", - "2023-05-15 11:07:34,916 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=74, stack=(), blockstack=(), npush=0), Edge(pc=32, stack=('$phi30.0', '$30for_iter.2'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:34,916 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=74 nstack_initial=0), State(pc_initial=32 nstack_initial=2)])\n", - "2023-05-15 11:07:34,917 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:34,917 | DEBUG | byteflow.py:278 | dispatch pc=74, inst=LOAD_CONST(arg=0, lineno=5)\n", - "2023-05-15 11:07:34,918 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:34,919 | DEBUG | byteflow.py:278 | dispatch pc=76, inst=RETURN_VALUE(arg=None, lineno=5)\n", - "2023-05-15 11:07:34,919 | DEBUG | byteflow.py:279 | stack ['$const74.0']\n", - "2023-05-15 11:07:34,920 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:34,920 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=32 nstack_initial=2)])\n", - "2023-05-15 11:07:34,921 | DEBUG | byteflow.py:103 | stack: ['$phi32.0', '$phi32.1']\n", - "2023-05-15 11:07:34,922 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=STORE_FAST(arg=2, lineno=2)\n", - "2023-05-15 11:07:34,922 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$phi32.1']\n", - "2023-05-15 11:07:34,925 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=LOAD_GLOBAL(arg=0, lineno=3)\n", - "2023-05-15 11:07:34,926 | DEBUG | byteflow.py:279 | stack ['$phi32.0']\n", - "2023-05-15 11:07:34,927 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=LOAD_FAST(arg=0, lineno=3)\n", - "2023-05-15 11:07:34,927 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2']\n", - "2023-05-15 11:07:34,928 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=LOAD_CONST(arg=3, lineno=3)\n", - "2023-05-15 11:07:34,929 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$sched36.3']\n", - "2023-05-15 11:07:34,929 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=BINARY_SUBSCR(arg=None, lineno=3)\n", - "2023-05-15 11:07:34,929 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$sched36.3', '$const38.4']\n", - "2023-05-15 11:07:34,930 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=LOAD_FAST(arg=0, lineno=3)\n", - "2023-05-15 11:07:34,931 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5']\n", - "2023-05-15 11:07:34,932 | DEBUG | byteflow.py:278 | dispatch pc=44, inst=LOAD_CONST(arg=4, lineno=3)\n", - "2023-05-15 11:07:34,932 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5', '$sched42.6']\n", - "2023-05-15 11:07:34,933 | DEBUG | byteflow.py:278 | dispatch pc=46, inst=BINARY_SUBSCR(arg=None, lineno=3)\n", - "2023-05-15 11:07:34,934 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5', '$sched42.6', '$const44.7']\n", - "2023-05-15 11:07:34,934 | DEBUG | byteflow.py:278 | dispatch pc=48, inst=LOAD_GLOBAL(arg=1, lineno=3)\n", - "2023-05-15 11:07:34,935 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5', '$46binary_subscr.8']\n", - "2023-05-15 11:07:34,936 | DEBUG | byteflow.py:278 | dispatch pc=50, inst=LOAD_METHOD(arg=2, lineno=3)\n", - "2023-05-15 11:07:34,936 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5', '$46binary_subscr.8', '$48load_global.9']\n", - "2023-05-15 11:07:34,937 | DEBUG | byteflow.py:278 | dispatch pc=52, inst=LOAD_CONST(arg=3, lineno=3)\n", - "2023-05-15 11:07:34,938 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5', '$46binary_subscr.8', '$50load_method.10']\n", - "2023-05-15 11:07:34,938 | DEBUG | byteflow.py:278 | dispatch pc=54, inst=CALL_METHOD(arg=1, lineno=3)\n", - "2023-05-15 11:07:34,939 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5', '$46binary_subscr.8', '$50load_method.10', '$const52.11']\n", - "2023-05-15 11:07:34,940 | DEBUG | byteflow.py:278 | dispatch pc=56, inst=BINARY_ADD(arg=None, lineno=3)\n", - "2023-05-15 11:07:34,941 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5', '$46binary_subscr.8', '$54call_method.12']\n", - "2023-05-15 11:07:34,941 | DEBUG | byteflow.py:278 | dispatch pc=58, inst=CALL_FUNCTION(arg=2, lineno=3)\n", - "2023-05-15 11:07:34,942 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$34load_global.2', '$40binary_subscr.5', '$56binary_add.13']\n", - "2023-05-15 11:07:34,942 | DEBUG | byteflow.py:278 | dispatch pc=60, inst=GET_ITER(arg=None, lineno=3)\n", - "2023-05-15 11:07:34,943 | DEBUG | byteflow.py:279 | stack ['$phi32.0', '$58call_function.14']\n", - "2023-05-15 11:07:34,943 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=62, stack=('$phi32.0', '$60get_iter.15'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:34,944 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=62 nstack_initial=2)])\n", - "2023-05-15 11:07:34,945 | DEBUG | byteflow.py:103 | stack: ['$phi62.0', '$phi62.1']\n", - "2023-05-15 11:07:34,945 | DEBUG | byteflow.py:278 | dispatch pc=62, inst=FOR_ITER(arg=4, lineno=3)\n", - "2023-05-15 11:07:34,946 | DEBUG | byteflow.py:279 | stack ['$phi62.0', '$phi62.1']\n", - "2023-05-15 11:07:34,946 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=72, stack=('$phi62.0',), blockstack=(), npush=0), Edge(pc=64, stack=('$phi62.0', '$phi62.1', '$62for_iter.3'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:34,947 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=72 nstack_initial=1), State(pc_initial=64 nstack_initial=3)])\n", - "2023-05-15 11:07:34,947 | DEBUG | byteflow.py:103 | stack: ['$phi72.0']\n", - "2023-05-15 11:07:34,948 | DEBUG | byteflow.py:278 | dispatch pc=72, inst=JUMP_ABSOLUTE(arg=16, lineno=3)\n", - "2023-05-15 11:07:34,949 | DEBUG | byteflow.py:279 | stack ['$phi72.0']\n", - "2023-05-15 11:07:34,949 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=30, stack=('$phi72.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:34,950 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=64 nstack_initial=3), State(pc_initial=30 nstack_initial=1)])\n", - "2023-05-15 11:07:34,950 | DEBUG | byteflow.py:103 | stack: ['$phi64.0', '$phi64.1', '$phi64.2']\n", - "2023-05-15 11:07:34,950 | DEBUG | byteflow.py:278 | dispatch pc=64, inst=STORE_FAST(arg=3, lineno=3)\n", - "2023-05-15 11:07:34,951 | DEBUG | byteflow.py:279 | stack ['$phi64.0', '$phi64.1', '$phi64.2']\n", - "2023-05-15 11:07:34,951 | DEBUG | byteflow.py:278 | dispatch pc=66, inst=LOAD_CONST(arg=1, lineno=4)\n", - "2023-05-15 11:07:34,952 | DEBUG | byteflow.py:279 | stack ['$phi64.0', '$phi64.1']\n", - "2023-05-15 11:07:34,952 | DEBUG | byteflow.py:278 | dispatch pc=68, inst=STORE_FAST(arg=4, lineno=4)\n", - "2023-05-15 11:07:34,952 | DEBUG | byteflow.py:279 | stack ['$phi64.0', '$phi64.1', '$const66.3']\n", - "2023-05-15 11:07:34,953 | DEBUG | byteflow.py:278 | dispatch pc=70, inst=JUMP_ABSOLUTE(arg=32, lineno=4)\n", - "2023-05-15 11:07:34,953 | DEBUG | byteflow.py:279 | stack ['$phi64.0', '$phi64.1']\n", - "2023-05-15 11:07:34,954 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=62, stack=('$phi64.0', '$phi64.1'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:34,954 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=30 nstack_initial=1), State(pc_initial=62 nstack_initial=2)])\n", - "2023-05-15 11:07:34,954 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=62 nstack_initial=2)])\n", - "2023-05-15 11:07:34,955 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:34,955 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=30 nstack_initial=1): {'$phi30.0'},\n", - " State(pc_initial=32 nstack_initial=2): {'$phi32.1'},\n", - " State(pc_initial=62 nstack_initial=2): {'$phi62.1'},\n", - " State(pc_initial=64 nstack_initial=3): {'$phi64.2'},\n", - " State(pc_initial=72 nstack_initial=1): set(),\n", - " State(pc_initial=74 nstack_initial=0): set()})\n", - "2023-05-15 11:07:34,956 | DEBUG | byteflow.py:192 | defmap: {'$phi30.0': State(pc_initial=0 nstack_initial=0),\n", - " '$phi32.1': State(pc_initial=30 nstack_initial=1),\n", - " '$phi62.1': State(pc_initial=32 nstack_initial=2),\n", - " '$phi64.2': State(pc_initial=62 nstack_initial=2)}\n", - "2023-05-15 11:07:34,957 | DEBUG | byteflow.py:193 | phismap: defaultdict(,\n", - " {'$phi30.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi72.0', State(pc_initial=72 nstack_initial=1))},\n", - " '$phi32.0': {('$phi30.0', State(pc_initial=30 nstack_initial=1))},\n", - " '$phi32.1': {('$30for_iter.2',\n", - " State(pc_initial=30 nstack_initial=1))},\n", - " '$phi62.0': {('$phi32.0', State(pc_initial=32 nstack_initial=2)),\n", - " ('$phi64.0', State(pc_initial=64 nstack_initial=3))},\n", - " '$phi62.1': {('$60get_iter.15',\n", - " State(pc_initial=32 nstack_initial=2)),\n", - " ('$phi64.1', State(pc_initial=64 nstack_initial=3))},\n", - " '$phi64.0': {('$phi62.0', State(pc_initial=62 nstack_initial=2))},\n", - " '$phi64.1': {('$phi62.1', State(pc_initial=62 nstack_initial=2))},\n", - " '$phi64.2': {('$62for_iter.3',\n", - " State(pc_initial=62 nstack_initial=2))},\n", - " '$phi72.0': {('$phi62.0', State(pc_initial=62 nstack_initial=2))}})\n", - "2023-05-15 11:07:34,958 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi30.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi62.0', State(pc_initial=62 nstack_initial=2))},\n", - " '$phi32.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi62.0', State(pc_initial=62 nstack_initial=2))},\n", - " '$phi32.1': {('$30for_iter.2',\n", - " State(pc_initial=30 nstack_initial=1))},\n", - " '$phi62.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi62.0', State(pc_initial=62 nstack_initial=2))},\n", - " '$phi62.1': {('$60get_iter.15',\n", - " State(pc_initial=32 nstack_initial=2)),\n", - " ('$phi62.1', State(pc_initial=62 nstack_initial=2))},\n", - " '$phi64.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi64.1': {('$60get_iter.15',\n", - " State(pc_initial=32 nstack_initial=2))},\n", - " '$phi64.2': {('$62for_iter.3',\n", - " State(pc_initial=62 nstack_initial=2))},\n", - " '$phi72.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))}})\n", - "2023-05-15 11:07:34,959 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi30.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.1': {('$30for_iter.2',\n", - " State(pc_initial=30 nstack_initial=1))},\n", - " '$phi62.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi62.1': {('$60get_iter.15',\n", - " State(pc_initial=32 nstack_initial=2))},\n", - " '$phi64.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi64.1': {('$60get_iter.15',\n", - " State(pc_initial=32 nstack_initial=2))},\n", - " '$phi64.2': {('$62for_iter.3',\n", - " State(pc_initial=62 nstack_initial=2))},\n", - " '$phi72.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))}})\n", - "2023-05-15 11:07:34,959 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi30.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.1': {('$30for_iter.2',\n", - " State(pc_initial=30 nstack_initial=1))},\n", - " '$phi62.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi62.1': {('$60get_iter.15',\n", - " State(pc_initial=32 nstack_initial=2))},\n", - " '$phi64.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi64.1': {('$60get_iter.15',\n", - " State(pc_initial=32 nstack_initial=2))},\n", - " '$phi64.2': {('$62for_iter.3',\n", - " State(pc_initial=62 nstack_initial=2))},\n", - " '$phi72.0': {('$28get_iter.13',\n", - " State(pc_initial=0 nstack_initial=0))}})\n", - "2023-05-15 11:07:34,963 | DEBUG | byteflow.py:223 | keep phismap: {'$phi30.0': {('$28get_iter.13', State(pc_initial=0 nstack_initial=0))},\n", - " '$phi32.1': {('$30for_iter.2', State(pc_initial=30 nstack_initial=1))},\n", - " '$phi62.1': {('$60get_iter.15', State(pc_initial=32 nstack_initial=2))},\n", - " '$phi64.2': {('$62for_iter.3', State(pc_initial=62 nstack_initial=2))}}\n", - "2023-05-15 11:07:34,964 | DEBUG | byteflow.py:229 | new_out: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): {'$phi30.0': '$28get_iter.13'},\n", - " State(pc_initial=30 nstack_initial=1): {'$phi32.1': '$30for_iter.2'},\n", - " State(pc_initial=32 nstack_initial=2): {'$phi62.1': '$60get_iter.15'},\n", - " State(pc_initial=62 nstack_initial=2): {'$phi64.2': '$62for_iter.3'}})\n", - "2023-05-15 11:07:34,965 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:34,965 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$sched4.1'}), (6, {'res': '$const6.2'}), (8, {'index': '$const6.2', 'target': '$sched4.1', 'res': '$8binary_subscr.3'}), (10, {'res': '$sched10.4'}), (12, {'res': '$const12.5'}), (14, {'index': '$const12.5', 'target': '$sched10.4', 'res': '$14binary_subscr.6'}), (16, {'res': '$16load_global.7'}), (18, {'item': '$16load_global.7', 'res': '$18load_method.8'}), (20, {'res': '$const20.9'}), (22, {'func': '$18load_method.8', 'args': ['$const20.9'], 'res': '$22call_method.10'}), (24, {'lhs': '$14binary_subscr.6', 'rhs': '$22call_method.10', 'res': '$24binary_add.11'}), (26, {'func': '$2load_global.0', 'args': ['$8binary_subscr.3', '$24binary_add.11'], 'res': '$26call_function.12'}), (28, {'value': '$26call_function.12', 'res': '$28get_iter.13'})), outgoing_phis={'$phi30.0': '$28get_iter.13'}, blockstack=(), active_try_block=None, outgoing_edgepushed={30: ('$28get_iter.13',)})\n", - "2023-05-15 11:07:34,969 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=30 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((30, {'iterator': '$phi30.0', 'pair': '$30for_iter.1', 'indval': '$30for_iter.2', 'pred': '$30for_iter.3'}),), outgoing_phis={'$phi32.1': '$30for_iter.2'}, blockstack=(), active_try_block=None, outgoing_edgepushed={74: (), 32: ('$phi30.0', '$30for_iter.2')})\n", - "2023-05-15 11:07:34,970 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=32 nstack_initial=2):\n", - "AdaptBlockInfo(insts=((32, {'value': '$phi32.1'}), (34, {'res': '$34load_global.2'}), (36, {'res': '$sched36.3'}), (38, {'res': '$const38.4'}), (40, {'index': '$const38.4', 'target': '$sched36.3', 'res': '$40binary_subscr.5'}), (42, {'res': '$sched42.6'}), (44, {'res': '$const44.7'}), (46, {'index': '$const44.7', 'target': '$sched42.6', 'res': '$46binary_subscr.8'}), (48, {'res': '$48load_global.9'}), (50, {'item': '$48load_global.9', 'res': '$50load_method.10'}), (52, {'res': '$const52.11'}), (54, {'func': '$50load_method.10', 'args': ['$const52.11'], 'res': '$54call_method.12'}), (56, {'lhs': '$46binary_subscr.8', 'rhs': '$54call_method.12', 'res': '$56binary_add.13'}), (58, {'func': '$34load_global.2', 'args': ['$40binary_subscr.5', '$56binary_add.13'], 'res': '$58call_function.14'}), (60, {'value': '$58call_function.14', 'res': '$60get_iter.15'})), outgoing_phis={'$phi62.1': '$60get_iter.15'}, blockstack=(), active_try_block=None, outgoing_edgepushed={62: ('$phi32.0', '$60get_iter.15')})\n", - "2023-05-15 11:07:34,970 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=62 nstack_initial=2):\n", - "AdaptBlockInfo(insts=((62, {'iterator': '$phi62.1', 'pair': '$62for_iter.2', 'indval': '$62for_iter.3', 'pred': '$62for_iter.4'}),), outgoing_phis={'$phi64.2': '$62for_iter.3'}, blockstack=(), active_try_block=None, outgoing_edgepushed={72: ('$phi62.0',), 64: ('$phi62.0', '$phi62.1', '$62for_iter.3')})\n", - "2023-05-15 11:07:34,971 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=64 nstack_initial=3):\n", - "AdaptBlockInfo(insts=((64, {'value': '$phi64.2'}), (66, {'res': '$const66.3'}), (68, {'value': '$const66.3'}), (70, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={62: ('$phi64.0', '$phi64.1')})\n", - "2023-05-15 11:07:34,972 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=72 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((72, {}),), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={30: ('$phi72.0',)})\n", - "2023-05-15 11:07:34,972 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=74 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((74, {'res': '$const74.0'}), (76, {'retval': '$const74.0', 'castval': '$76return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:34,974 | DEBUG | interpreter.py:1342 | label 0:\n", - " sched = arg(0, name=sched) ['sched']\n", - " betweennesses = arg(1, name=betweennesses) ['betweennesses']\n", - " $2load_global.0 = global(range: ) ['$2load_global.0']\n", - " $const6.2 = const(int, 0) ['$const6.2']\n", - " $8binary_subscr.3 = getitem(value=sched, index=$const6.2, fn=) ['$8binary_subscr.3', '$const6.2', 'sched']\n", - " $const12.5 = const(int, 2) ['$const12.5']\n", - " $14binary_subscr.6 = getitem(value=sched, index=$const12.5, fn=) ['$14binary_subscr.6', '$const12.5', 'sched']\n", - " $16load_global.7 = global(np: ) ['$16load_global.7']\n", - " $18load_method.8 = getattr(value=$16load_global.7, attr=uint8) ['$16load_global.7', '$18load_method.8']\n", - " $const20.9 = const(int, 1) ['$const20.9']\n", - " $22call_method.10 = call $18load_method.8($const20.9, func=$18load_method.8, args=[Var($const20.9, :2)], kws=(), vararg=None, varkwarg=None, target=None) ['$18load_method.8', '$22call_method.10', '$const20.9']\n", - " $24binary_add.11 = $14binary_subscr.6 + $22call_method.10 ['$14binary_subscr.6', '$22call_method.10', '$24binary_add.11']\n", - " $26call_function.12 = call $2load_global.0($8binary_subscr.3, $24binary_add.11, func=$2load_global.0, args=[Var($8binary_subscr.3, :2), Var($24binary_add.11, :2)], kws=(), vararg=None, varkwarg=None, target=None) ['$24binary_add.11', '$26call_function.12', '$2load_global.0', '$8binary_subscr.3']\n", - " $28get_iter.13 = getiter(value=$26call_function.12) ['$26call_function.12', '$28get_iter.13']\n", - " $phi30.0 = $28get_iter.13 ['$28get_iter.13', '$phi30.0']\n", - " jump 30 []\n", - "label 30:\n", - " $30for_iter.1 = iternext(value=$phi30.0) ['$30for_iter.1', '$phi30.0']\n", - " $30for_iter.2 = pair_first(value=$30for_iter.1) ['$30for_iter.1', '$30for_iter.2']\n", - " $30for_iter.3 = pair_second(value=$30for_iter.1) ['$30for_iter.1', '$30for_iter.3']\n", - " $phi32.1 = $30for_iter.2 ['$30for_iter.2', '$phi32.1']\n", - " branch $30for_iter.3, 32, 74 ['$30for_iter.3']\n", - "label 32:\n", - " parfor__index_75 = $phi32.1 ['$phi32.1', 'parfor__index_75']\n", - " $34load_global.2 = global(range: ) ['$34load_global.2']\n", - " $const38.4 = const(int, 1) ['$const38.4']\n", - " $40binary_subscr.5 = getitem(value=sched, index=$const38.4, fn=) ['$40binary_subscr.5', '$const38.4', 'sched']\n", - " $const44.7 = const(int, 3) ['$const44.7']\n", - " $46binary_subscr.8 = getitem(value=sched, index=$const44.7, fn=) ['$46binary_subscr.8', '$const44.7', 'sched']\n", - " $48load_global.9 = global(np: ) ['$48load_global.9']\n", - " $50load_method.10 = getattr(value=$48load_global.9, attr=uint8) ['$48load_global.9', '$50load_method.10']\n", - " $const52.11 = const(int, 1) ['$const52.11']\n", - " $54call_method.12 = call $50load_method.10($const52.11, func=$50load_method.10, args=[Var($const52.11, :3)], kws=(), vararg=None, varkwarg=None, target=None) ['$50load_method.10', '$54call_method.12', '$const52.11']\n", - " $56binary_add.13 = $46binary_subscr.8 + $54call_method.12 ['$46binary_subscr.8', '$54call_method.12', '$56binary_add.13']\n", - " $58call_function.14 = call $34load_global.2($40binary_subscr.5, $56binary_add.13, func=$34load_global.2, args=[Var($40binary_subscr.5, :3), Var($56binary_add.13, :3)], kws=(), vararg=None, varkwarg=None, target=None) ['$34load_global.2', '$40binary_subscr.5', '$56binary_add.13', '$58call_function.14']\n", - " $60get_iter.15 = getiter(value=$58call_function.14) ['$58call_function.14', '$60get_iter.15']\n", - " $phi62.1 = $60get_iter.15 ['$60get_iter.15', '$phi62.1']\n", - " jump 62 []\n", - "label 62:\n", - " $62for_iter.2 = iternext(value=$phi62.1) ['$62for_iter.2', '$phi62.1']\n", - " $62for_iter.3 = pair_first(value=$62for_iter.2) ['$62for_iter.2', '$62for_iter.3']\n", - " $62for_iter.4 = pair_second(value=$62for_iter.2) ['$62for_iter.2', '$62for_iter.4']\n", - " $phi64.2 = $62for_iter.3 ['$62for_iter.3', '$phi64.2']\n", - " branch $62for_iter.4, 64, 72 ['$62for_iter.4']\n", - "label 64:\n", - " parfor__index_76 = $phi64.2 ['$phi64.2', 'parfor__index_76']\n", - " __sentinel__0 = const(int, 0) ['__sentinel__0']\n", - " jump 62 []\n", - "label 72:\n", - " jump 30 []\n", - "label 74:\n", - " $const74.0 = const(NoneType, None) ['$const74.0']\n", - " $76return_value.1 = cast(value=$const74.0) ['$76return_value.1', '$const74.0']\n", - " return $76return_value.1 ['$76return_value.1']\n", - "\n", - "2023-05-15 11:07:34,986 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:34,986 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,987 | DEBUG | ssa.py:193 | on stmt: sched.178 = arg(0, name=sched)\n", - "2023-05-15 11:07:34,987 | DEBUG | ssa.py:193 | on stmt: betweennesses = arg(1, name=betweennesses)\n", - "2023-05-15 11:07:34,987 | DEBUG | ssa.py:193 | on stmt: $2load_global.0.179 = global(range: )\n", - "2023-05-15 11:07:34,988 | DEBUG | ssa.py:193 | on stmt: $const6.2.180 = const(int, 0)\n", - "2023-05-15 11:07:34,988 | DEBUG | ssa.py:193 | on stmt: $8binary_subscr.3.181 = getitem(value=sched.178, index=$const6.2.180, fn=)\n", - "2023-05-15 11:07:34,989 | DEBUG | ssa.py:193 | on stmt: $const12.5.182 = const(int, 2)\n", - "2023-05-15 11:07:34,989 | DEBUG | ssa.py:193 | on stmt: $14binary_subscr.6.183 = getitem(value=sched.178, index=$const12.5.182, fn=)\n", - "2023-05-15 11:07:34,989 | DEBUG | ssa.py:193 | on stmt: $16load_global.7.184 = global(np: )\n", - "2023-05-15 11:07:34,990 | DEBUG | ssa.py:193 | on stmt: $18load_method.8.185 = getattr(value=$16load_global.7.184, attr=uint8)\n", - "2023-05-15 11:07:34,990 | DEBUG | ssa.py:193 | on stmt: $const20.9.186 = const(int, 1)\n", - "2023-05-15 11:07:34,991 | DEBUG | ssa.py:193 | on stmt: $22call_method.10.187 = call $18load_method.8.185($const20.9.186, func=$18load_method.8.185, args=[Var($const20.9.186, :2)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,991 | DEBUG | ssa.py:193 | on stmt: $24binary_add.11.188 = $14binary_subscr.6.183 + $22call_method.10.187\n", - "2023-05-15 11:07:34,991 | DEBUG | ssa.py:193 | on stmt: $26call_function.12.189 = call $2load_global.0.179($8binary_subscr.3.181, $24binary_add.11.188, func=$2load_global.0.179, args=[Var($8binary_subscr.3.181, :2), Var($24binary_add.11.188, :2)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:34,992 | DEBUG | ssa.py:193 | on stmt: $28get_iter.13.190 = getiter(value=$26call_function.12.189)\n", - "2023-05-15 11:07:34,992 | DEBUG | ssa.py:193 | on stmt: $phi30.0.191 = $28get_iter.13.190\n", - "2023-05-15 11:07:34,993 | DEBUG | ssa.py:193 | on stmt: $expr_out_var.81 = const(float64, 0.0)\n", - "2023-05-15 11:07:34,993 | DEBUG | ssa.py:193 | on stmt: jump 30\n", - "2023-05-15 11:07:34,994 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 30\n", - "2023-05-15 11:07:34,994 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:34,994 | DEBUG | ssa.py:193 | on stmt: $30for_iter.1.192 = iternext(value=$phi30.0.191)\n", - "2023-05-15 11:07:34,995 | DEBUG | ssa.py:193 | on stmt: $30for_iter.2.193 = pair_first(value=$30for_iter.1.192)\n", - "2023-05-15 11:07:34,995 | DEBUG | ssa.py:193 | on stmt: $30for_iter.3.194 = pair_second(value=$30for_iter.1.192)\n", - "2023-05-15 11:07:34,996 | DEBUG | ssa.py:193 | on stmt: $phi32.1.195 = $30for_iter.2.193\n", - "2023-05-15 11:07:34,999 | DEBUG | ssa.py:193 | on stmt: branch $30for_iter.3.194, 32, 169\n", - "2023-05-15 11:07:34,999 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 32\n", - "2023-05-15 11:07:35,000 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,000 | DEBUG | ssa.py:193 | on stmt: parfor__index_75 = $phi32.1.195\n", - "2023-05-15 11:07:35,001 | DEBUG | ssa.py:193 | on stmt: $34load_global.2.196 = global(range: )\n", - "2023-05-15 11:07:35,001 | DEBUG | ssa.py:193 | on stmt: $const38.4.197 = const(int, 1)\n", - "2023-05-15 11:07:35,003 | DEBUG | ssa.py:193 | on stmt: $40binary_subscr.5.198 = getitem(value=sched.178, index=$const38.4.197, fn=)\n", - "2023-05-15 11:07:35,003 | DEBUG | ssa.py:193 | on stmt: $const44.7.199 = const(int, 3)\n", - "2023-05-15 11:07:35,004 | DEBUG | ssa.py:193 | on stmt: $46binary_subscr.8.200 = getitem(value=sched.178, index=$const44.7.199, fn=)\n", - "2023-05-15 11:07:35,005 | DEBUG | ssa.py:193 | on stmt: $48load_global.9.201 = global(np: )\n", - "2023-05-15 11:07:35,005 | DEBUG | ssa.py:193 | on stmt: $50load_method.10.202 = getattr(value=$48load_global.9.201, attr=uint8)\n", - "2023-05-15 11:07:35,006 | DEBUG | ssa.py:193 | on stmt: $const52.11.203 = const(int, 1)\n", - "2023-05-15 11:07:35,006 | DEBUG | ssa.py:193 | on stmt: $54call_method.12.204 = call $50load_method.10.202($const52.11.203, func=$50load_method.10.202, args=[Var($const52.11.203, :3)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,007 | DEBUG | ssa.py:193 | on stmt: $56binary_add.13.205 = $46binary_subscr.8.200 + $54call_method.12.204\n", - "2023-05-15 11:07:35,007 | DEBUG | ssa.py:193 | on stmt: $58call_function.14.206 = call $34load_global.2.196($40binary_subscr.5.198, $56binary_add.13.205, func=$34load_global.2.196, args=[Var($40binary_subscr.5.198, :3), Var($56binary_add.13.205, :3)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,008 | DEBUG | ssa.py:193 | on stmt: $60get_iter.15.207 = getiter(value=$58call_function.14.206)\n", - "2023-05-15 11:07:35,008 | DEBUG | ssa.py:193 | on stmt: $phi62.1.208 = $60get_iter.15.207\n", - "2023-05-15 11:07:35,010 | DEBUG | ssa.py:193 | on stmt: jump 62\n", - "2023-05-15 11:07:35,010 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 62\n", - "2023-05-15 11:07:35,010 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,011 | DEBUG | ssa.py:193 | on stmt: $62for_iter.2.209 = iternext(value=$phi62.1.208)\n", - "2023-05-15 11:07:35,011 | DEBUG | ssa.py:193 | on stmt: $62for_iter.3.210 = pair_first(value=$62for_iter.2.209)\n", - "2023-05-15 11:07:35,012 | DEBUG | ssa.py:193 | on stmt: $62for_iter.4.211 = pair_second(value=$62for_iter.2.209)\n", - "2023-05-15 11:07:35,013 | DEBUG | ssa.py:193 | on stmt: $phi64.2.212 = $62for_iter.3.210\n", - "2023-05-15 11:07:35,013 | DEBUG | ssa.py:193 | on stmt: branch $62for_iter.4.211, 64, 168\n", - "2023-05-15 11:07:35,014 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 64\n", - "2023-05-15 11:07:35,015 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,016 | DEBUG | ssa.py:193 | on stmt: parfor__index_76 = $phi64.2.212\n", - "2023-05-15 11:07:35,016 | DEBUG | ssa.py:193 | on stmt: jump 72\n", - "2023-05-15 11:07:35,017 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 168\n", - "2023-05-15 11:07:35,017 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,018 | DEBUG | ssa.py:193 | on stmt: jump 30\n", - "2023-05-15 11:07:35,018 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 169\n", - "2023-05-15 11:07:35,019 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,019 | DEBUG | ssa.py:193 | on stmt: $const74.0.213 = const(NoneType, None)\n", - "2023-05-15 11:07:35,020 | DEBUG | ssa.py:193 | on stmt: $76return_value.1.214 = cast(value=$const74.0.213)\n", - "2023-05-15 11:07:35,021 | DEBUG | ssa.py:193 | on stmt: return $76return_value.1.214\n", - "2023-05-15 11:07:35,022 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 72\n", - "2023-05-15 11:07:35,022 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,023 | DEBUG | ssa.py:193 | on stmt: $parfor_index_tuple_var.82 = build_tuple(items=[Var(parfor__index_75, measures.py:574), Var(parfor__index_76, measures.py:574)])\n", - "2023-05-15 11:07:35,023 | DEBUG | ssa.py:193 | on stmt: betweennesses[$parfor_index_tuple_var.82] = $expr_out_var.81\n", - "2023-05-15 11:07:35,024 | DEBUG | ssa.py:193 | on stmt: jump 74\n", - "2023-05-15 11:07:35,024 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 74\n", - "2023-05-15 11:07:35,025 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,025 | DEBUG | ssa.py:193 | on stmt: jump 62\n", - "2023-05-15 11:07:35,027 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$14binary_subscr.6.183': [],\n", - " '$16load_global.7.184': [],\n", - " '$18load_method.8.185': [],\n", - " '$22call_method.10.187': [],\n", - " '$24binary_add.11.188': [],\n", - " '$26call_function.12.189': [],\n", - " '$28get_iter.13.190': [],\n", - " '$2load_global.0.179': [],\n", - " '$30for_iter.1.192': [],\n", - " '$30for_iter.2.193': [],\n", - " '$30for_iter.3.194': [],\n", - " '$34load_global.2.196': [],\n", - " '$40binary_subscr.5.198': [],\n", - " '$46binary_subscr.8.200': [],\n", - " '$48load_global.9.201': [],\n", - " '$50load_method.10.202': [],\n", - " '$54call_method.12.204': [],\n", - " '$56binary_add.13.205': [],\n", - " '$58call_function.14.206': [],\n", - " '$60get_iter.15.207': [],\n", - " '$62for_iter.2.209': [],\n", - " '$62for_iter.3.210': [],\n", - " '$62for_iter.4.211': [],\n", - " '$76return_value.1.214': [],\n", - " '$8binary_subscr.3.181': [],\n", - " '$const12.5.182': [],\n", - " '$const20.9.186': [],\n", - " '$const38.4.197': [],\n", - " '$const44.7.199': [],\n", - " '$const52.11.203': [],\n", - " '$const6.2.180': [],\n", - " '$const74.0.213': [],\n", - " '$expr_out_var.81': [],\n", - " '$parfor_index_tuple_var.82': [],\n", - " '$phi30.0.191': [],\n", - " '$phi32.1.195': [],\n", - " '$phi62.1.208': [],\n", - " '$phi64.2.212': [],\n", - " 'betweennesses': [],\n", - " 'parfor__index_75': [],\n", - " 'parfor__index_76': [],\n", - " 'sched.178': []})\n", - "2023-05-15 11:07:35,027 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:35,377 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4101)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=4101)\n", - " 4\tLOAD_FAST(arg=0, lineno=4101)\n", - " 6\tLOAD_FAST(arg=1, lineno=4101)\n", - " 8\tLOAD_DEREF(arg=0, lineno=4101)\n", - " 10\tCALL_FUNCTION(arg=3, lineno=4101)\n", - " 12\tRETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:35,377 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:35,378 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:35,378 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4101)\n", - "2023-05-15 11:07:35,379 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,379 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=4101)\n", - "2023-05-15 11:07:35,380 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,380 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=4101)\n", - "2023-05-15 11:07:35,380 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:35,381 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=1, lineno=4101)\n", - "2023-05-15 11:07:35,381 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1']\n", - "2023-05-15 11:07:35,383 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_DEREF(arg=0, lineno=4101)\n", - "2023-05-15 11:07:35,383 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2']\n", - "2023-05-15 11:07:35,383 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_FUNCTION(arg=3, lineno=4101)\n", - "2023-05-15 11:07:35,384 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2', '$8load_deref.3']\n", - "2023-05-15 11:07:35,384 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=RETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:35,385 | DEBUG | byteflow.py:279 | stack ['$10call_function.4']\n", - "2023-05-15 11:07:35,385 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:35,385 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:35,386 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:35,387 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:35,388 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:35,388 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:35,388 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:35,389 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:35,390 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:35,390 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$shape4.1'}), (6, {'res': '$dtype6.2'}), (8, {'res': '$8load_deref.3'}), (10, {'func': '$2load_global.0', 'args': ['$shape4.1', '$dtype6.2', '$8load_deref.3'], 'res': '$10call_function.4'}), (12, {'retval': '$10call_function.4', 'castval': '$12return_value.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:35,391 | DEBUG | interpreter.py:1342 | label 0:\n", - " shape = arg(0, name=shape) ['shape']\n", - " dtype = arg(1, name=dtype) ['dtype']\n", - " $2load_global.0 = global(numpy_empty_nd: ) ['$2load_global.0']\n", - " $8load_deref.3 = freevar(retty: array(float64, 3d, C)) ['$8load_deref.3']\n", - " $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None) ['$10call_function.4', '$2load_global.0', '$8load_deref.3', 'dtype', 'shape']\n", - " $12return_value.5 = cast(value=$10call_function.4) ['$10call_function.4', '$12return_value.5']\n", - " return $12return_value.5 ['$12return_value.5']\n", - "\n", - "2023-05-15 11:07:35,396 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:35,397 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,397 | DEBUG | ssa.py:193 | on stmt: shape = arg(0, name=shape)\n", - "2023-05-15 11:07:35,398 | DEBUG | ssa.py:193 | on stmt: dtype = arg(1, name=dtype)\n", - "2023-05-15 11:07:35,398 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(numpy_empty_nd: )\n", - "2023-05-15 11:07:35,398 | DEBUG | ssa.py:193 | on stmt: $8load_deref.3 = freevar(retty: array(float64, 3d, C))\n", - "2023-05-15 11:07:35,399 | DEBUG | ssa.py:193 | on stmt: $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,399 | DEBUG | ssa.py:193 | on stmt: $12return_value.5 = cast(value=$10call_function.4)\n", - "2023-05-15 11:07:35,400 | DEBUG | ssa.py:193 | on stmt: return $12return_value.5\n", - "2023-05-15 11:07:35,400 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10call_function.4': [],\n", - " '$12return_value.5': [],\n", - " '$2load_global.0': [],\n", - " '$8load_deref.3': [],\n", - " 'dtype': [],\n", - " 'shape': []})\n", - "2023-05-15 11:07:35,401 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:35,444 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=3)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=3)\n", - " 4\tLOAD_FAST(arg=0, lineno=3)\n", - " 6\tLOAD_FAST(arg=1, lineno=3)\n", - " 8\tLOAD_FAST(arg=2, lineno=3)\n", - " 10\tCALL_FUNCTION(arg=3, lineno=3)\n", - " 12\tRETURN_VALUE(arg=None, lineno=3)\n", - "2023-05-15 11:07:35,445 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:35,445 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:35,446 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=3)\n", - "2023-05-15 11:07:35,446 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,447 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=3)\n", - "2023-05-15 11:07:35,447 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,447 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=3)\n", - "2023-05-15 11:07:35,448 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:35,449 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=1, lineno=3)\n", - "2023-05-15 11:07:35,449 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1']\n", - "2023-05-15 11:07:35,450 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_FAST(arg=2, lineno=3)\n", - "2023-05-15 11:07:35,450 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$fill_value6.2']\n", - "2023-05-15 11:07:35,450 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_FUNCTION(arg=3, lineno=3)\n", - "2023-05-15 11:07:35,451 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$fill_value6.2', '$dtype8.3']\n", - "2023-05-15 11:07:35,452 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=RETURN_VALUE(arg=None, lineno=3)\n", - "2023-05-15 11:07:35,452 | DEBUG | byteflow.py:279 | stack ['$10call_function.4']\n", - "2023-05-15 11:07:35,453 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:35,453 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:35,453 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:35,454 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:35,454 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:35,454 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:35,455 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:35,456 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:35,457 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:35,457 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$shape4.1'}), (6, {'res': '$fill_value6.2'}), (8, {'res': '$dtype8.3'}), (10, {'func': '$2load_global.0', 'args': ['$shape4.1', '$fill_value6.2', '$dtype8.3'], 'res': '$10call_function.4'}), (12, {'retval': '$10call_function.4', 'castval': '$12return_value.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:35,458 | DEBUG | interpreter.py:1342 | label 0:\n", - " shape = arg(0, name=shape) ['shape']\n", - " fill_value = arg(1, name=fill_value) ['fill_value']\n", - " dtype = arg(2, name=dtype) ['dtype']\n", - " $2load_global.0 = global(intrin: ) ['$2load_global.0']\n", - " $10call_function.4 = call $2load_global.0(shape, fill_value, dtype, func=$2load_global.0, args=[Var(shape, :3), Var(fill_value, :3), Var(dtype, :3)], kws=(), vararg=None, varkwarg=None, target=None) ['$10call_function.4', '$2load_global.0', 'dtype', 'fill_value', 'shape']\n", - " $12return_value.5 = cast(value=$10call_function.4) ['$10call_function.4', '$12return_value.5']\n", - " return $12return_value.5 ['$12return_value.5']\n", - "\n", - "2023-05-15 11:07:35,464 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:35,465 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,465 | DEBUG | ssa.py:193 | on stmt: shape = arg(0, name=shape)\n", - "2023-05-15 11:07:35,466 | DEBUG | ssa.py:193 | on stmt: fill_value = arg(1, name=fill_value)\n", - "2023-05-15 11:07:35,467 | DEBUG | ssa.py:193 | on stmt: dtype = arg(2, name=dtype)\n", - "2023-05-15 11:07:35,467 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(intrin: )\n", - "2023-05-15 11:07:35,468 | DEBUG | ssa.py:193 | on stmt: $10call_function.4 = call $2load_global.0(shape, fill_value, dtype, func=$2load_global.0, args=[Var(shape, :3), Var(fill_value, :3), Var(dtype, :3)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,468 | DEBUG | ssa.py:193 | on stmt: $12return_value.5 = cast(value=$10call_function.4)\n", - "2023-05-15 11:07:35,469 | DEBUG | ssa.py:193 | on stmt: return $12return_value.5\n", - "2023-05-15 11:07:35,470 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10call_function.4': [],\n", - " '$12return_value.5': [],\n", - " '$2load_global.0': [],\n", - " 'dtype': [],\n", - " 'fill_value': [],\n", - " 'shape': []})\n", - "2023-05-15 11:07:35,470 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:35,482 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4220)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=4220)\n", - " 4\tLOAD_METHOD(arg=1, lineno=4220)\n", - " 6\tLOAD_FAST(arg=0, lineno=4220)\n", - " 8\tLOAD_FAST(arg=2, lineno=4220)\n", - " 10\tCALL_METHOD(arg=2, lineno=4220)\n", - " 12\tSTORE_FAST(arg=3, lineno=4220)\n", - " 14\tLOAD_FAST(arg=3, lineno=4221)\n", - " 16\tLOAD_ATTR(arg=2, lineno=4221)\n", - " 18\tSTORE_FAST(arg=4, lineno=4221)\n", - " 20\tLOAD_GLOBAL(arg=3, lineno=4222)\n", - " 22\tLOAD_GLOBAL(arg=4, lineno=4222)\n", - " 24\tLOAD_FAST(arg=4, lineno=4222)\n", - " 26\tCALL_FUNCTION(arg=1, lineno=4222)\n", - " 28\tCALL_FUNCTION(arg=1, lineno=4222)\n", - " 30\tGET_ITER(arg=None, lineno=4222)\n", - "> 32\tFOR_ITER(arg=6, lineno=4222)\n", - " 34\tSTORE_FAST(arg=5, lineno=4222)\n", - " 36\tLOAD_FAST(arg=1, lineno=4223)\n", - " 38\tLOAD_FAST(arg=4, lineno=4223)\n", - " 40\tLOAD_FAST(arg=5, lineno=4223)\n", - " 42\tSTORE_SUBSCR(arg=None, lineno=4223)\n", - " 44\tJUMP_ABSOLUTE(arg=17, lineno=4223)\n", - "> 46\tLOAD_FAST(arg=3, lineno=4224)\n", - " 48\tRETURN_VALUE(arg=None, lineno=4224)\n", - "2023-05-15 11:07:35,482 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:35,483 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:35,483 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4220)\n", - "2023-05-15 11:07:35,484 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,485 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=4220)\n", - "2023-05-15 11:07:35,486 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,486 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_METHOD(arg=1, lineno=4220)\n", - "2023-05-15 11:07:35,487 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:35,487 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=0, lineno=4220)\n", - "2023-05-15 11:07:35,488 | DEBUG | byteflow.py:279 | stack ['$4load_method.1']\n", - "2023-05-15 11:07:35,489 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_FAST(arg=2, lineno=4220)\n", - "2023-05-15 11:07:35,489 | DEBUG | byteflow.py:279 | stack ['$4load_method.1', '$shape6.2']\n", - "2023-05-15 11:07:35,490 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_METHOD(arg=2, lineno=4220)\n", - "2023-05-15 11:07:35,491 | DEBUG | byteflow.py:279 | stack ['$4load_method.1', '$shape6.2', '$dtype8.3']\n", - "2023-05-15 11:07:35,491 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=STORE_FAST(arg=3, lineno=4220)\n", - "2023-05-15 11:07:35,492 | DEBUG | byteflow.py:279 | stack ['$10call_method.4']\n", - "2023-05-15 11:07:35,492 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=LOAD_FAST(arg=3, lineno=4221)\n", - "2023-05-15 11:07:35,493 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,493 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=LOAD_ATTR(arg=2, lineno=4221)\n", - "2023-05-15 11:07:35,494 | DEBUG | byteflow.py:279 | stack ['$arr14.5']\n", - "2023-05-15 11:07:35,494 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=STORE_FAST(arg=4, lineno=4221)\n", - "2023-05-15 11:07:35,495 | DEBUG | byteflow.py:279 | stack ['$16load_attr.6']\n", - "2023-05-15 11:07:35,496 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=LOAD_GLOBAL(arg=3, lineno=4222)\n", - "2023-05-15 11:07:35,496 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,497 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=LOAD_GLOBAL(arg=4, lineno=4222)\n", - "2023-05-15 11:07:35,500 | DEBUG | byteflow.py:279 | stack ['$20load_global.7']\n", - "2023-05-15 11:07:35,501 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=LOAD_FAST(arg=4, lineno=4222)\n", - "2023-05-15 11:07:35,502 | DEBUG | byteflow.py:279 | stack ['$20load_global.7', '$22load_global.8']\n", - "2023-05-15 11:07:35,502 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=CALL_FUNCTION(arg=1, lineno=4222)\n", - "2023-05-15 11:07:35,503 | DEBUG | byteflow.py:279 | stack ['$20load_global.7', '$22load_global.8', '$arr_flat24.9']\n", - "2023-05-15 11:07:35,503 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=CALL_FUNCTION(arg=1, lineno=4222)\n", - "2023-05-15 11:07:35,504 | DEBUG | byteflow.py:279 | stack ['$20load_global.7', '$26call_function.10']\n", - "2023-05-15 11:07:35,504 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=GET_ITER(arg=None, lineno=4222)\n", - "2023-05-15 11:07:35,505 | DEBUG | byteflow.py:279 | stack ['$28call_function.11']\n", - "2023-05-15 11:07:35,505 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=32, stack=('$30get_iter.12',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:35,506 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=32 nstack_initial=1)])\n", - "2023-05-15 11:07:35,507 | DEBUG | byteflow.py:103 | stack: ['$phi32.0']\n", - "2023-05-15 11:07:35,509 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=FOR_ITER(arg=6, lineno=4222)\n", - "2023-05-15 11:07:35,510 | DEBUG | byteflow.py:279 | stack ['$phi32.0']\n", - "2023-05-15 11:07:35,510 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=46, stack=(), blockstack=(), npush=0), Edge(pc=34, stack=('$phi32.0', '$32for_iter.2'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:35,511 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=46 nstack_initial=0), State(pc_initial=34 nstack_initial=2)])\n", - "2023-05-15 11:07:35,511 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:35,512 | DEBUG | byteflow.py:278 | dispatch pc=46, inst=LOAD_FAST(arg=3, lineno=4224)\n", - "2023-05-15 11:07:35,512 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,513 | DEBUG | byteflow.py:278 | dispatch pc=48, inst=RETURN_VALUE(arg=None, lineno=4224)\n", - "2023-05-15 11:07:35,514 | DEBUG | byteflow.py:279 | stack ['$arr46.0']\n", - "2023-05-15 11:07:35,514 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:35,515 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=34 nstack_initial=2)])\n", - "2023-05-15 11:07:35,515 | DEBUG | byteflow.py:103 | stack: ['$phi34.0', '$phi34.1']\n", - "2023-05-15 11:07:35,516 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=STORE_FAST(arg=5, lineno=4222)\n", - "2023-05-15 11:07:35,516 | DEBUG | byteflow.py:279 | stack ['$phi34.0', '$phi34.1']\n", - "2023-05-15 11:07:35,517 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=LOAD_FAST(arg=1, lineno=4223)\n", - "2023-05-15 11:07:35,517 | DEBUG | byteflow.py:279 | stack ['$phi34.0']\n", - "2023-05-15 11:07:35,518 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=LOAD_FAST(arg=4, lineno=4223)\n", - "2023-05-15 11:07:35,518 | DEBUG | byteflow.py:279 | stack ['$phi34.0', '$value36.2']\n", - "2023-05-15 11:07:35,522 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=LOAD_FAST(arg=5, lineno=4223)\n", - "2023-05-15 11:07:35,522 | DEBUG | byteflow.py:279 | stack ['$phi34.0', '$value36.2', '$arr_flat38.3']\n", - "2023-05-15 11:07:35,523 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=STORE_SUBSCR(arg=None, lineno=4223)\n", - "2023-05-15 11:07:35,524 | DEBUG | byteflow.py:279 | stack ['$phi34.0', '$value36.2', '$arr_flat38.3', '$idx40.4']\n", - "2023-05-15 11:07:35,524 | DEBUG | byteflow.py:278 | dispatch pc=44, inst=JUMP_ABSOLUTE(arg=17, lineno=4223)\n", - "2023-05-15 11:07:35,525 | DEBUG | byteflow.py:279 | stack ['$phi34.0']\n", - "2023-05-15 11:07:35,525 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=32, stack=('$phi34.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:35,525 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=32 nstack_initial=1)])\n", - "2023-05-15 11:07:35,526 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:35,526 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=32 nstack_initial=1): {'$phi32.0'},\n", - " State(pc_initial=34 nstack_initial=2): {'$phi34.1'},\n", - " State(pc_initial=46 nstack_initial=0): set()})\n", - "2023-05-15 11:07:35,527 | DEBUG | byteflow.py:192 | defmap: {'$phi32.0': State(pc_initial=0 nstack_initial=0),\n", - " '$phi34.1': State(pc_initial=32 nstack_initial=1)}\n", - "2023-05-15 11:07:35,527 | DEBUG | byteflow.py:193 | phismap: defaultdict(,\n", - " {'$phi32.0': {('$30get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi34.0', State(pc_initial=34 nstack_initial=2))},\n", - " '$phi34.0': {('$phi32.0', State(pc_initial=32 nstack_initial=1))},\n", - " '$phi34.1': {('$32for_iter.2',\n", - " State(pc_initial=32 nstack_initial=1))}})\n", - "2023-05-15 11:07:35,528 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi32.0': {('$30get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi32.0', State(pc_initial=32 nstack_initial=1))},\n", - " '$phi34.0': {('$30get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi34.1': {('$32for_iter.2',\n", - " State(pc_initial=32 nstack_initial=1))}})\n", - "2023-05-15 11:07:35,528 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi32.0': {('$30get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi34.0': {('$30get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi34.1': {('$32for_iter.2',\n", - " State(pc_initial=32 nstack_initial=1))}})\n", - "2023-05-15 11:07:35,530 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi32.0': {('$30get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi34.0': {('$30get_iter.12',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi34.1': {('$32for_iter.2',\n", - " State(pc_initial=32 nstack_initial=1))}})\n", - "2023-05-15 11:07:35,530 | DEBUG | byteflow.py:223 | keep phismap: {'$phi32.0': {('$30get_iter.12', State(pc_initial=0 nstack_initial=0))},\n", - " '$phi34.1': {('$32for_iter.2', State(pc_initial=32 nstack_initial=1))}}\n", - "2023-05-15 11:07:35,531 | DEBUG | byteflow.py:229 | new_out: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): {'$phi32.0': '$30get_iter.12'},\n", - " State(pc_initial=32 nstack_initial=1): {'$phi34.1': '$32for_iter.2'}})\n", - "2023-05-15 11:07:35,531 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:35,532 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'item': '$2load_global.0', 'res': '$4load_method.1'}), (6, {'res': '$shape6.2'}), (8, {'res': '$dtype8.3'}), (10, {'func': '$4load_method.1', 'args': ['$shape6.2', '$dtype8.3'], 'res': '$10call_method.4'}), (12, {'value': '$10call_method.4'}), (14, {'res': '$arr14.5'}), (16, {'item': '$arr14.5', 'res': '$16load_attr.6'}), (18, {'value': '$16load_attr.6'}), (20, {'res': '$20load_global.7'}), (22, {'res': '$22load_global.8'}), (24, {'res': '$arr_flat24.9'}), (26, {'func': '$22load_global.8', 'args': ['$arr_flat24.9'], 'res': '$26call_function.10'}), (28, {'func': '$20load_global.7', 'args': ['$26call_function.10'], 'res': '$28call_function.11'}), (30, {'value': '$28call_function.11', 'res': '$30get_iter.12'})), outgoing_phis={'$phi32.0': '$30get_iter.12'}, blockstack=(), active_try_block=None, outgoing_edgepushed={32: ('$30get_iter.12',)})\n", - "2023-05-15 11:07:35,533 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=32 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((32, {'iterator': '$phi32.0', 'pair': '$32for_iter.1', 'indval': '$32for_iter.2', 'pred': '$32for_iter.3'}),), outgoing_phis={'$phi34.1': '$32for_iter.2'}, blockstack=(), active_try_block=None, outgoing_edgepushed={46: (), 34: ('$phi32.0', '$32for_iter.2')})\n", - "2023-05-15 11:07:35,533 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=34 nstack_initial=2):\n", - "AdaptBlockInfo(insts=((34, {'value': '$phi34.1'}), (36, {'res': '$value36.2'}), (38, {'res': '$arr_flat38.3'}), (40, {'res': '$idx40.4'}), (42, {'target': '$arr_flat38.3', 'index': '$idx40.4', 'value': '$value36.2'}), (44, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={32: ('$phi34.0',)})\n", - "2023-05-15 11:07:35,533 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=46 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((46, {'res': '$arr46.0'}), (48, {'retval': '$arr46.0', 'castval': '$48return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:35,535 | DEBUG | interpreter.py:1342 | label 0:\n", - " shape = arg(0, name=shape) ['shape']\n", - " value = arg(1, name=value) ['value']\n", - " dtype = arg(2, name=dtype) ['dtype']\n", - " $2load_global.0 = global(np: ) ['$2load_global.0']\n", - " $4load_method.1 = getattr(value=$2load_global.0, attr=empty) ['$2load_global.0', '$4load_method.1']\n", - " arr = call $4load_method.1(shape, dtype, func=$4load_method.1, args=[Var(shape, arrayobj.py:4220), Var(dtype, arrayobj.py:4220)], kws=(), vararg=None, varkwarg=None, target=None) ['$4load_method.1', 'arr', 'dtype', 'shape']\n", - " arr_flat = getattr(value=arr, attr=flat) ['arr', 'arr_flat']\n", - " $20load_global.7 = global(range: ) ['$20load_global.7']\n", - " $22load_global.8 = global(len: ) ['$22load_global.8']\n", - " $26call_function.10 = call $22load_global.8(arr_flat, func=$22load_global.8, args=[Var(arr_flat, arrayobj.py:4221)], kws=(), vararg=None, varkwarg=None, target=None) ['$22load_global.8', '$26call_function.10', 'arr_flat']\n", - " $28call_function.11 = call $20load_global.7($26call_function.10, func=$20load_global.7, args=[Var($26call_function.10, arrayobj.py:4222)], kws=(), vararg=None, varkwarg=None, target=None) ['$20load_global.7', '$26call_function.10', '$28call_function.11']\n", - " $30get_iter.12 = getiter(value=$28call_function.11) ['$28call_function.11', '$30get_iter.12']\n", - " $phi32.0 = $30get_iter.12 ['$30get_iter.12', '$phi32.0']\n", - " jump 32 []\n", - "label 32:\n", - " $32for_iter.1 = iternext(value=$phi32.0) ['$32for_iter.1', '$phi32.0']\n", - " $32for_iter.2 = pair_first(value=$32for_iter.1) ['$32for_iter.1', '$32for_iter.2']\n", - " $32for_iter.3 = pair_second(value=$32for_iter.1) ['$32for_iter.1', '$32for_iter.3']\n", - " $phi34.1 = $32for_iter.2 ['$32for_iter.2', '$phi34.1']\n", - " branch $32for_iter.3, 34, 46 ['$32for_iter.3']\n", - "label 34:\n", - " idx = $phi34.1 ['$phi34.1', 'idx']\n", - " arr_flat[idx] = value ['arr_flat', 'idx', 'value']\n", - " jump 32 []\n", - "label 46:\n", - " $48return_value.1 = cast(value=arr) ['$48return_value.1', 'arr']\n", - " return $48return_value.1 ['$48return_value.1']\n", - "\n", - "2023-05-15 11:07:35,544 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:35,545 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,545 | DEBUG | ssa.py:193 | on stmt: shape = arg(0, name=shape)\n", - "2023-05-15 11:07:35,545 | DEBUG | ssa.py:193 | on stmt: value = arg(1, name=value)\n", - "2023-05-15 11:07:35,546 | DEBUG | ssa.py:193 | on stmt: dtype = arg(2, name=dtype)\n", - "2023-05-15 11:07:35,547 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(np: )\n", - "2023-05-15 11:07:35,547 | DEBUG | ssa.py:193 | on stmt: $4load_method.1 = getattr(value=$2load_global.0, attr=empty)\n", - "2023-05-15 11:07:35,548 | DEBUG | ssa.py:193 | on stmt: arr = call $4load_method.1(shape, dtype, func=$4load_method.1, args=[Var(shape, arrayobj.py:4220), Var(dtype, arrayobj.py:4220)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,548 | DEBUG | ssa.py:193 | on stmt: arr_flat = getattr(value=arr, attr=flat)\n", - "2023-05-15 11:07:35,549 | DEBUG | ssa.py:193 | on stmt: $20load_global.7 = global(range: )\n", - "2023-05-15 11:07:35,549 | DEBUG | ssa.py:193 | on stmt: $22load_global.8 = global(len: )\n", - "2023-05-15 11:07:35,549 | DEBUG | ssa.py:193 | on stmt: $26call_function.10 = call $22load_global.8(arr_flat, func=$22load_global.8, args=[Var(arr_flat, arrayobj.py:4221)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,550 | DEBUG | ssa.py:193 | on stmt: $28call_function.11 = call $20load_global.7($26call_function.10, func=$20load_global.7, args=[Var($26call_function.10, arrayobj.py:4222)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,550 | DEBUG | ssa.py:193 | on stmt: $30get_iter.12 = getiter(value=$28call_function.11)\n", - "2023-05-15 11:07:35,550 | DEBUG | ssa.py:193 | on stmt: $phi32.0 = $30get_iter.12\n", - "2023-05-15 11:07:35,551 | DEBUG | ssa.py:193 | on stmt: jump 32\n", - "2023-05-15 11:07:35,551 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 32\n", - "2023-05-15 11:07:35,552 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,552 | DEBUG | ssa.py:193 | on stmt: $32for_iter.1 = iternext(value=$phi32.0)\n", - "2023-05-15 11:07:35,552 | DEBUG | ssa.py:193 | on stmt: $32for_iter.2 = pair_first(value=$32for_iter.1)\n", - "2023-05-15 11:07:35,553 | DEBUG | ssa.py:193 | on stmt: $32for_iter.3 = pair_second(value=$32for_iter.1)\n", - "2023-05-15 11:07:35,553 | DEBUG | ssa.py:193 | on stmt: $phi34.1 = $32for_iter.2\n", - "2023-05-15 11:07:35,553 | DEBUG | ssa.py:193 | on stmt: branch $32for_iter.3, 34, 46\n", - "2023-05-15 11:07:35,554 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 34\n", - "2023-05-15 11:07:35,554 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,555 | DEBUG | ssa.py:193 | on stmt: idx = $phi34.1\n", - "2023-05-15 11:07:35,555 | DEBUG | ssa.py:193 | on stmt: arr_flat[idx] = value\n", - "2023-05-15 11:07:35,555 | DEBUG | ssa.py:193 | on stmt: jump 32\n", - "2023-05-15 11:07:35,556 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 46\n", - "2023-05-15 11:07:35,556 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,556 | DEBUG | ssa.py:193 | on stmt: $48return_value.1 = cast(value=arr)\n", - "2023-05-15 11:07:35,557 | DEBUG | ssa.py:193 | on stmt: return $48return_value.1\n", - "2023-05-15 11:07:35,558 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$20load_global.7': [],\n", - " '$22load_global.8': [],\n", - " '$26call_function.10': [],\n", - " '$28call_function.11': [],\n", - " '$2load_global.0': [],\n", - " '$30get_iter.12': [],\n", - " '$32for_iter.1': [],\n", - " '$32for_iter.2': [],\n", - " '$32for_iter.3': [],\n", - " '$48return_value.1': [],\n", - " '$4load_method.1': [],\n", - " '$phi32.0': [],\n", - " '$phi34.1': [],\n", - " 'arr': [],\n", - " 'arr_flat': [],\n", - " 'dtype': [],\n", - " 'idx': [],\n", - " 'shape': [],\n", - " 'value': []})\n", - "2023-05-15 11:07:35,558 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:35,565 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=4101)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=4101)\n", - " 4\tLOAD_FAST(arg=0, lineno=4101)\n", - " 6\tLOAD_FAST(arg=1, lineno=4101)\n", - " 8\tLOAD_DEREF(arg=0, lineno=4101)\n", - " 10\tCALL_FUNCTION(arg=3, lineno=4101)\n", - " 12\tRETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:35,566 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:35,566 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:35,567 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=4101)\n", - "2023-05-15 11:07:35,567 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,568 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=4101)\n", - "2023-05-15 11:07:35,568 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,569 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_FAST(arg=0, lineno=4101)\n", - "2023-05-15 11:07:35,573 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:35,573 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_FAST(arg=1, lineno=4101)\n", - "2023-05-15 11:07:35,574 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1']\n", - "2023-05-15 11:07:35,574 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_DEREF(arg=0, lineno=4101)\n", - "2023-05-15 11:07:35,575 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2']\n", - "2023-05-15 11:07:35,575 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_FUNCTION(arg=3, lineno=4101)\n", - "2023-05-15 11:07:35,576 | DEBUG | byteflow.py:279 | stack ['$2load_global.0', '$shape4.1', '$dtype6.2', '$8load_deref.3']\n", - "2023-05-15 11:07:35,576 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=RETURN_VALUE(arg=None, lineno=4101)\n", - "2023-05-15 11:07:35,576 | DEBUG | byteflow.py:279 | stack ['$10call_function.4']\n", - "2023-05-15 11:07:35,577 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:35,577 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:35,578 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(, {State(pc_initial=0 nstack_initial=0): set()})\n", - "2023-05-15 11:07:35,578 | DEBUG | byteflow.py:192 | defmap: {}\n", - "2023-05-15 11:07:35,579 | DEBUG | byteflow.py:193 | phismap: defaultdict(, {})\n", - "2023-05-15 11:07:35,579 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(, {})\n", - "2023-05-15 11:07:35,579 | DEBUG | byteflow.py:223 | keep phismap: {}\n", - "2023-05-15 11:07:35,580 | DEBUG | byteflow.py:229 | new_out: defaultdict(, {})\n", - "2023-05-15 11:07:35,580 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:35,581 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'res': '$shape4.1'}), (6, {'res': '$dtype6.2'}), (8, {'res': '$8load_deref.3'}), (10, {'func': '$2load_global.0', 'args': ['$shape4.1', '$dtype6.2', '$8load_deref.3'], 'res': '$10call_function.4'}), (12, {'retval': '$10call_function.4', 'castval': '$12return_value.5'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:35,583 | DEBUG | interpreter.py:1342 | label 0:\n", - " shape = arg(0, name=shape) ['shape']\n", - " dtype = arg(1, name=dtype) ['dtype']\n", - " $2load_global.0 = global(numpy_empty_nd: ) ['$2load_global.0']\n", - " $8load_deref.3 = freevar(retty: array(float64, 2d, C)) ['$8load_deref.3']\n", - " $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None) ['$10call_function.4', '$2load_global.0', '$8load_deref.3', 'dtype', 'shape']\n", - " $12return_value.5 = cast(value=$10call_function.4) ['$10call_function.4', '$12return_value.5']\n", - " return $12return_value.5 ['$12return_value.5']\n", - "\n", - "2023-05-15 11:07:35,588 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:35,588 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,589 | DEBUG | ssa.py:193 | on stmt: shape = arg(0, name=shape)\n", - "2023-05-15 11:07:35,589 | DEBUG | ssa.py:193 | on stmt: dtype = arg(1, name=dtype)\n", - "2023-05-15 11:07:35,590 | DEBUG | ssa.py:193 | on stmt: $2load_global.0 = global(numpy_empty_nd: )\n", - "2023-05-15 11:07:35,590 | DEBUG | ssa.py:193 | on stmt: $8load_deref.3 = freevar(retty: array(float64, 2d, C))\n", - "2023-05-15 11:07:35,590 | DEBUG | ssa.py:193 | on stmt: $10call_function.4 = call $2load_global.0(shape, dtype, $8load_deref.3, func=$2load_global.0, args=[Var(shape, arrayobj.py:4101), Var(dtype, arrayobj.py:4101), Var($8load_deref.3, arrayobj.py:4101)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,591 | DEBUG | ssa.py:193 | on stmt: $12return_value.5 = cast(value=$10call_function.4)\n", - "2023-05-15 11:07:35,593 | DEBUG | ssa.py:193 | on stmt: return $12return_value.5\n", - "2023-05-15 11:07:35,593 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10call_function.4': [],\n", - " '$12return_value.5': [],\n", - " '$2load_global.0': [],\n", - " '$8load_deref.3': [],\n", - " 'dtype': [],\n", - " 'shape': []})\n", - "2023-05-15 11:07:35,594 | DEBUG | ssa.py:156 | SSA violators set()\n", - "2023-05-15 11:07:35,749 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=2)\n", - " 2\tLOAD_GLOBAL(arg=0, lineno=2)\n", - " 4\tLOAD_ATTR(arg=1, lineno=2)\n", - " 6\tLOAD_ATTR(arg=2, lineno=2)\n", - " 8\tLOAD_ATTR(arg=3, lineno=2)\n", - " 10\tLOAD_METHOD(arg=4, lineno=2)\n", - " 12\tCALL_METHOD(arg=0, lineno=2)\n", - " 14\tSTORE_FAST(arg=9, lineno=2)\n", - " 16\tLOAD_FAST(arg=8, lineno=3)\n", - " 18\tLOAD_FAST(arg=9, lineno=3)\n", - " 20\tBINARY_SUBSCR(arg=None, lineno=3)\n", - " 22\tSTORE_FAST(arg=10, lineno=3)\n", - " 24\tLOAD_GLOBAL(arg=5, lineno=4)\n", - " 26\tLOAD_FAST(arg=0, lineno=4)\n", - " 28\tLOAD_CONST(arg=1, lineno=4)\n", - " 30\tBINARY_SUBSCR(arg=None, lineno=4)\n", - " 32\tLOAD_FAST(arg=0, lineno=4)\n", - " 34\tLOAD_CONST(arg=2, lineno=4)\n", - " 36\tBINARY_SUBSCR(arg=None, lineno=4)\n", - " 38\tLOAD_GLOBAL(arg=1, lineno=4)\n", - " 40\tLOAD_METHOD(arg=6, lineno=4)\n", - " 42\tLOAD_CONST(arg=2, lineno=4)\n", - " 44\tCALL_METHOD(arg=1, lineno=4)\n", - " 46\tBINARY_ADD(arg=None, lineno=4)\n", - " 48\tCALL_FUNCTION(arg=2, lineno=4)\n", - " 50\tGET_ITER(arg=None, lineno=4)\n", - "> 52\tFOR_ITER(arg=4, lineno=4)\n", - " 54\tSTORE_FAST(arg=11, lineno=4)\n", - " 56\tLOAD_CONST(arg=1, lineno=5)\n", - " 58\tSTORE_FAST(arg=12, lineno=5)\n", - " 60\tJUMP_ABSOLUTE(arg=27, lineno=5)\n", - "> 62\tLOAD_FAST(arg=10, lineno=6)\n", - " 64\tLOAD_FAST(arg=8, lineno=6)\n", - " 66\tLOAD_FAST(arg=9, lineno=6)\n", - " 68\tSTORE_SUBSCR(arg=None, lineno=6)\n", - " 70\tLOAD_CONST(arg=0, lineno=7)\n", - " 72\tRETURN_VALUE(arg=None, lineno=7)\n", - "2023-05-15 11:07:35,749 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:35,750 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:35,750 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=2)\n", - "2023-05-15 11:07:35,752 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,752 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_GLOBAL(arg=0, lineno=2)\n", - "2023-05-15 11:07:35,753 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,753 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=LOAD_ATTR(arg=1, lineno=2)\n", - "2023-05-15 11:07:35,753 | DEBUG | byteflow.py:279 | stack ['$2load_global.0']\n", - "2023-05-15 11:07:35,754 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_ATTR(arg=2, lineno=2)\n", - "2023-05-15 11:07:35,756 | DEBUG | byteflow.py:279 | stack ['$4load_attr.1']\n", - "2023-05-15 11:07:35,756 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_ATTR(arg=3, lineno=2)\n", - "2023-05-15 11:07:35,757 | DEBUG | byteflow.py:279 | stack ['$6load_attr.2']\n", - "2023-05-15 11:07:35,757 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=LOAD_METHOD(arg=4, lineno=2)\n", - "2023-05-15 11:07:35,758 | DEBUG | byteflow.py:279 | stack ['$8load_attr.3']\n", - "2023-05-15 11:07:35,758 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=CALL_METHOD(arg=0, lineno=2)\n", - "2023-05-15 11:07:35,759 | DEBUG | byteflow.py:279 | stack ['$10load_method.4']\n", - "2023-05-15 11:07:35,760 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=STORE_FAST(arg=9, lineno=2)\n", - "2023-05-15 11:07:35,760 | DEBUG | byteflow.py:279 | stack ['$12call_method.5']\n", - "2023-05-15 11:07:35,761 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=LOAD_FAST(arg=8, lineno=3)\n", - "2023-05-15 11:07:35,761 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,762 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=LOAD_FAST(arg=9, lineno=3)\n", - "2023-05-15 11:07:35,762 | DEBUG | byteflow.py:279 | stack ['$betweennesses_2__arr16.6']\n", - "2023-05-15 11:07:35,762 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=BINARY_SUBSCR(arg=None, lineno=3)\n", - "2023-05-15 11:07:35,763 | DEBUG | byteflow.py:279 | stack ['$betweennesses_2__arr16.6', '$ParallelAcceleratorGufuncThreadId18.7']\n", - "2023-05-15 11:07:35,765 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=STORE_FAST(arg=10, lineno=3)\n", - "2023-05-15 11:07:35,766 | DEBUG | byteflow.py:279 | stack ['$20binary_subscr.8']\n", - "2023-05-15 11:07:35,767 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=LOAD_GLOBAL(arg=5, lineno=4)\n", - "2023-05-15 11:07:35,767 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,768 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=LOAD_FAST(arg=0, lineno=4)\n", - "2023-05-15 11:07:35,769 | DEBUG | byteflow.py:279 | stack ['$24load_global.9']\n", - "2023-05-15 11:07:35,769 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=LOAD_CONST(arg=1, lineno=4)\n", - "2023-05-15 11:07:35,770 | DEBUG | byteflow.py:279 | stack ['$24load_global.9', '$sched26.10']\n", - "2023-05-15 11:07:35,770 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=BINARY_SUBSCR(arg=None, lineno=4)\n", - "2023-05-15 11:07:35,771 | DEBUG | byteflow.py:279 | stack ['$24load_global.9', '$sched26.10', '$const28.11']\n", - "2023-05-15 11:07:35,771 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=LOAD_FAST(arg=0, lineno=4)\n", - "2023-05-15 11:07:35,773 | DEBUG | byteflow.py:279 | stack ['$24load_global.9', '$30binary_subscr.12']\n", - "2023-05-15 11:07:35,773 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=LOAD_CONST(arg=2, lineno=4)\n", - "2023-05-15 11:07:35,774 | DEBUG | byteflow.py:279 | stack ['$24load_global.9', '$30binary_subscr.12', '$sched32.13']\n", - "2023-05-15 11:07:35,774 | DEBUG | byteflow.py:278 | dispatch pc=36, inst=BINARY_SUBSCR(arg=None, lineno=4)\n", - "2023-05-15 11:07:35,775 | DEBUG | byteflow.py:279 | stack ['$24load_global.9', '$30binary_subscr.12', '$sched32.13', '$const34.14']\n", - "2023-05-15 11:07:35,775 | DEBUG | byteflow.py:278 | dispatch pc=38, inst=LOAD_GLOBAL(arg=1, lineno=4)\n", - "2023-05-15 11:07:35,775 | DEBUG | byteflow.py:279 | stack ['$24load_global.9', '$30binary_subscr.12', '$36binary_subscr.15']\n", - "2023-05-15 11:07:35,776 | DEBUG | byteflow.py:278 | dispatch pc=40, inst=LOAD_METHOD(arg=6, lineno=4)\n", - "2023-05-15 11:07:35,776 | DEBUG | byteflow.py:279 | stack ['$24load_global.9', '$30binary_subscr.12', '$36binary_subscr.15', '$38load_global.16']\n", - "2023-05-15 11:07:35,777 | DEBUG | byteflow.py:278 | dispatch pc=42, inst=LOAD_CONST(arg=2, lineno=4)\n", - "2023-05-15 11:07:35,777 | DEBUG | byteflow.py:279 | stack ['$24load_global.9', '$30binary_subscr.12', '$36binary_subscr.15', '$40load_method.17']\n", - "2023-05-15 11:07:35,778 | DEBUG | byteflow.py:278 | dispatch pc=44, inst=CALL_METHOD(arg=1, lineno=4)\n", - "2023-05-15 11:07:35,778 | DEBUG | byteflow.py:279 | stack ['$24load_global.9', '$30binary_subscr.12', '$36binary_subscr.15', '$40load_method.17', '$const42.18']\n", - "2023-05-15 11:07:35,779 | DEBUG | byteflow.py:278 | dispatch pc=46, inst=BINARY_ADD(arg=None, lineno=4)\n", - "2023-05-15 11:07:35,779 | DEBUG | byteflow.py:279 | stack ['$24load_global.9', '$30binary_subscr.12', '$36binary_subscr.15', '$44call_method.19']\n", - "2023-05-15 11:07:35,780 | DEBUG | byteflow.py:278 | dispatch pc=48, inst=CALL_FUNCTION(arg=2, lineno=4)\n", - "2023-05-15 11:07:35,780 | DEBUG | byteflow.py:279 | stack ['$24load_global.9', '$30binary_subscr.12', '$46binary_add.20']\n", - "2023-05-15 11:07:35,781 | DEBUG | byteflow.py:278 | dispatch pc=50, inst=GET_ITER(arg=None, lineno=4)\n", - "2023-05-15 11:07:35,781 | DEBUG | byteflow.py:279 | stack ['$48call_function.21']\n", - "2023-05-15 11:07:35,782 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=52, stack=('$50get_iter.22',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:35,782 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=52 nstack_initial=1)])\n", - "2023-05-15 11:07:35,783 | DEBUG | byteflow.py:103 | stack: ['$phi52.0']\n", - "2023-05-15 11:07:35,783 | DEBUG | byteflow.py:278 | dispatch pc=52, inst=FOR_ITER(arg=4, lineno=4)\n", - "2023-05-15 11:07:35,784 | DEBUG | byteflow.py:279 | stack ['$phi52.0']\n", - "2023-05-15 11:07:35,785 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=62, stack=(), blockstack=(), npush=0), Edge(pc=54, stack=('$phi52.0', '$52for_iter.2'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:35,785 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=62 nstack_initial=0), State(pc_initial=54 nstack_initial=2)])\n", - "2023-05-15 11:07:35,786 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:35,786 | DEBUG | byteflow.py:278 | dispatch pc=62, inst=LOAD_FAST(arg=10, lineno=6)\n", - "2023-05-15 11:07:35,787 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,787 | DEBUG | byteflow.py:278 | dispatch pc=64, inst=LOAD_FAST(arg=8, lineno=6)\n", - "2023-05-15 11:07:35,788 | DEBUG | byteflow.py:279 | stack ['$betweennesses_262.0']\n", - "2023-05-15 11:07:35,788 | DEBUG | byteflow.py:278 | dispatch pc=66, inst=LOAD_FAST(arg=9, lineno=6)\n", - "2023-05-15 11:07:35,789 | DEBUG | byteflow.py:279 | stack ['$betweennesses_262.0', '$betweennesses_2__arr64.1']\n", - "2023-05-15 11:07:35,789 | DEBUG | byteflow.py:278 | dispatch pc=68, inst=STORE_SUBSCR(arg=None, lineno=6)\n", - "2023-05-15 11:07:35,790 | DEBUG | byteflow.py:279 | stack ['$betweennesses_262.0', '$betweennesses_2__arr64.1', '$ParallelAcceleratorGufuncThreadId66.2']\n", - "2023-05-15 11:07:35,790 | DEBUG | byteflow.py:278 | dispatch pc=70, inst=LOAD_CONST(arg=0, lineno=7)\n", - "2023-05-15 11:07:35,791 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:35,791 | DEBUG | byteflow.py:278 | dispatch pc=72, inst=RETURN_VALUE(arg=None, lineno=7)\n", - "2023-05-15 11:07:35,792 | DEBUG | byteflow.py:279 | stack ['$const70.3']\n", - "2023-05-15 11:07:35,792 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:35,793 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=54 nstack_initial=2)])\n", - "2023-05-15 11:07:35,793 | DEBUG | byteflow.py:103 | stack: ['$phi54.0', '$phi54.1']\n", - "2023-05-15 11:07:35,794 | DEBUG | byteflow.py:278 | dispatch pc=54, inst=STORE_FAST(arg=11, lineno=4)\n", - "2023-05-15 11:07:35,794 | DEBUG | byteflow.py:279 | stack ['$phi54.0', '$phi54.1']\n", - "2023-05-15 11:07:35,795 | DEBUG | byteflow.py:278 | dispatch pc=56, inst=LOAD_CONST(arg=1, lineno=5)\n", - "2023-05-15 11:07:35,795 | DEBUG | byteflow.py:279 | stack ['$phi54.0']\n", - "2023-05-15 11:07:35,796 | DEBUG | byteflow.py:278 | dispatch pc=58, inst=STORE_FAST(arg=12, lineno=5)\n", - "2023-05-15 11:07:35,796 | DEBUG | byteflow.py:279 | stack ['$phi54.0', '$const56.2']\n", - "2023-05-15 11:07:35,797 | DEBUG | byteflow.py:278 | dispatch pc=60, inst=JUMP_ABSOLUTE(arg=27, lineno=5)\n", - "2023-05-15 11:07:35,797 | DEBUG | byteflow.py:279 | stack ['$phi54.0']\n", - "2023-05-15 11:07:35,798 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=52, stack=('$phi54.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:35,799 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=52 nstack_initial=1)])\n", - "2023-05-15 11:07:35,799 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:35,800 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=52 nstack_initial=1): {'$phi52.0'},\n", - " State(pc_initial=54 nstack_initial=2): {'$phi54.1'},\n", - " State(pc_initial=62 nstack_initial=0): set()})\n", - "2023-05-15 11:07:35,800 | DEBUG | byteflow.py:192 | defmap: {'$phi52.0': State(pc_initial=0 nstack_initial=0),\n", - " '$phi54.1': State(pc_initial=52 nstack_initial=1)}\n", - "2023-05-15 11:07:35,801 | DEBUG | byteflow.py:193 | phismap: defaultdict(,\n", - " {'$phi52.0': {('$50get_iter.22',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi54.0', State(pc_initial=54 nstack_initial=2))},\n", - " '$phi54.0': {('$phi52.0', State(pc_initial=52 nstack_initial=1))},\n", - " '$phi54.1': {('$52for_iter.2',\n", - " State(pc_initial=52 nstack_initial=1))}})\n", - "2023-05-15 11:07:35,802 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi52.0': {('$50get_iter.22',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi52.0', State(pc_initial=52 nstack_initial=1))},\n", - " '$phi54.0': {('$50get_iter.22',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi54.1': {('$52for_iter.2',\n", - " State(pc_initial=52 nstack_initial=1))}})\n", - "2023-05-15 11:07:35,802 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi52.0': {('$50get_iter.22',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi54.0': {('$50get_iter.22',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi54.1': {('$52for_iter.2',\n", - " State(pc_initial=52 nstack_initial=1))}})\n", - "2023-05-15 11:07:35,803 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi52.0': {('$50get_iter.22',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi54.0': {('$50get_iter.22',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi54.1': {('$52for_iter.2',\n", - " State(pc_initial=52 nstack_initial=1))}})\n", - "2023-05-15 11:07:35,804 | DEBUG | byteflow.py:223 | keep phismap: {'$phi52.0': {('$50get_iter.22', State(pc_initial=0 nstack_initial=0))},\n", - " '$phi54.1': {('$52for_iter.2', State(pc_initial=52 nstack_initial=1))}}\n", - "2023-05-15 11:07:35,804 | DEBUG | byteflow.py:229 | new_out: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): {'$phi52.0': '$50get_iter.22'},\n", - " State(pc_initial=52 nstack_initial=1): {'$phi54.1': '$52for_iter.2'}})\n", - "2023-05-15 11:07:35,812 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:35,814 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$2load_global.0'}), (4, {'item': '$2load_global.0', 'res': '$4load_attr.1'}), (6, {'item': '$4load_attr.1', 'res': '$6load_attr.2'}), (8, {'item': '$6load_attr.2', 'res': '$8load_attr.3'}), (10, {'item': '$8load_attr.3', 'res': '$10load_method.4'}), (12, {'func': '$10load_method.4', 'args': [], 'res': '$12call_method.5'}), (14, {'value': '$12call_method.5'}), (16, {'res': '$betweennesses_2__arr16.6'}), (18, {'res': '$ParallelAcceleratorGufuncThreadId18.7'}), (20, {'index': '$ParallelAcceleratorGufuncThreadId18.7', 'target': '$betweennesses_2__arr16.6', 'res': '$20binary_subscr.8'}), (22, {'value': '$20binary_subscr.8'}), (24, {'res': '$24load_global.9'}), (26, {'res': '$sched26.10'}), (28, {'res': '$const28.11'}), (30, {'index': '$const28.11', 'target': '$sched26.10', 'res': '$30binary_subscr.12'}), (32, {'res': '$sched32.13'}), (34, {'res': '$const34.14'}), (36, {'index': '$const34.14', 'target': '$sched32.13', 'res': '$36binary_subscr.15'}), (38, {'res': '$38load_global.16'}), (40, {'item': '$38load_global.16', 'res': '$40load_method.17'}), (42, {'res': '$const42.18'}), (44, {'func': '$40load_method.17', 'args': ['$const42.18'], 'res': '$44call_method.19'}), (46, {'lhs': '$36binary_subscr.15', 'rhs': '$44call_method.19', 'res': '$46binary_add.20'}), (48, {'func': '$24load_global.9', 'args': ['$30binary_subscr.12', '$46binary_add.20'], 'res': '$48call_function.21'}), (50, {'value': '$48call_function.21', 'res': '$50get_iter.22'})), outgoing_phis={'$phi52.0': '$50get_iter.22'}, blockstack=(), active_try_block=None, outgoing_edgepushed={52: ('$50get_iter.22',)})\n", - "2023-05-15 11:07:35,815 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=52 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((52, {'iterator': '$phi52.0', 'pair': '$52for_iter.1', 'indval': '$52for_iter.2', 'pred': '$52for_iter.3'}),), outgoing_phis={'$phi54.1': '$52for_iter.2'}, blockstack=(), active_try_block=None, outgoing_edgepushed={62: (), 54: ('$phi52.0', '$52for_iter.2')})\n", - "2023-05-15 11:07:35,815 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=54 nstack_initial=2):\n", - "AdaptBlockInfo(insts=((54, {'value': '$phi54.1'}), (56, {'res': '$const56.2'}), (58, {'value': '$const56.2'}), (60, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={52: ('$phi54.0',)})\n", - "2023-05-15 11:07:35,816 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=62 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((62, {'res': '$betweennesses_262.0'}), (64, {'res': '$betweennesses_2__arr64.1'}), (66, {'res': '$ParallelAcceleratorGufuncThreadId66.2'}), (68, {'target': '$betweennesses_2__arr64.1', 'index': '$ParallelAcceleratorGufuncThreadId66.2', 'value': '$betweennesses_262.0'}), (70, {'res': '$const70.3'}), (72, {'retval': '$const70.3', 'castval': '$72return_value.4'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:35,818 | DEBUG | interpreter.py:1342 | label 0:\n", - " sched = arg(0, name=sched) ['sched']\n", - " _18binary__add_8 = arg(1, name=_18binary__add_8) ['_18binary__add_8']\n", - " _const20_9 = arg(2, name=_const20_9) ['_const20_9']\n", - " dist = arg(3, name=dist) ['dist']\n", - " edge__padding = arg(4, name=edge__padding) ['edge__padding']\n", - " edges__uv = arg(5, name=edges__uv) ['edges__uv']\n", - " loop__indices = arg(6, name=loop__indices) ['loop__indices']\n", - " pred = arg(7, name=pred) ['pred']\n", - " betweennesses_2__arr = arg(8, name=betweennesses_2__arr) ['betweennesses_2__arr']\n", - " $2load_global.0 = global(numba: ) ['$2load_global.0']\n", - " $4load_attr.1 = getattr(value=$2load_global.0, attr=np) ['$2load_global.0', '$4load_attr.1']\n", - " $6load_attr.2 = getattr(value=$4load_attr.1, attr=ufunc) ['$4load_attr.1', '$6load_attr.2']\n", - " $8load_attr.3 = getattr(value=$6load_attr.2, attr=parallel) ['$6load_attr.2', '$8load_attr.3']\n", - " $10load_method.4 = getattr(value=$8load_attr.3, attr=_iget_thread_id) ['$10load_method.4', '$8load_attr.3']\n", - " ParallelAcceleratorGufuncThreadId = call $10load_method.4(func=$10load_method.4, args=[], kws=(), vararg=None, varkwarg=None, target=None) ['$10load_method.4', 'ParallelAcceleratorGufuncThreadId']\n", - " betweennesses_2 = getitem(value=betweennesses_2__arr, index=ParallelAcceleratorGufuncThreadId, fn=) ['ParallelAcceleratorGufuncThreadId', 'betweennesses_2', 'betweennesses_2__arr']\n", - " $24load_global.9 = global(range: ) ['$24load_global.9']\n", - " $const28.11 = const(int, 0) ['$const28.11']\n", - " $30binary_subscr.12 = getitem(value=sched, index=$const28.11, fn=) ['$30binary_subscr.12', '$const28.11', 'sched']\n", - " $const34.14 = const(int, 1) ['$const34.14']\n", - " $36binary_subscr.15 = getitem(value=sched, index=$const34.14, fn=) ['$36binary_subscr.15', '$const34.14', 'sched']\n", - " $38load_global.16 = global(np: ) ['$38load_global.16']\n", - " $40load_method.17 = getattr(value=$38load_global.16, attr=uint8) ['$38load_global.16', '$40load_method.17']\n", - " $const42.18 = const(int, 1) ['$const42.18']\n", - " $44call_method.19 = call $40load_method.17($const42.18, func=$40load_method.17, args=[Var($const42.18, :4)], kws=(), vararg=None, varkwarg=None, target=None) ['$40load_method.17', '$44call_method.19', '$const42.18']\n", - " $46binary_add.20 = $36binary_subscr.15 + $44call_method.19 ['$36binary_subscr.15', '$44call_method.19', '$46binary_add.20']\n", - " $48call_function.21 = call $24load_global.9($30binary_subscr.12, $46binary_add.20, func=$24load_global.9, args=[Var($30binary_subscr.12, :4), Var($46binary_add.20, :4)], kws=(), vararg=None, varkwarg=None, target=None) ['$24load_global.9', '$30binary_subscr.12', '$46binary_add.20', '$48call_function.21']\n", - " $50get_iter.22 = getiter(value=$48call_function.21) ['$48call_function.21', '$50get_iter.22']\n", - " $phi52.0 = $50get_iter.22 ['$50get_iter.22', '$phi52.0']\n", - " jump 52 []\n", - "label 52:\n", - " $52for_iter.1 = iternext(value=$phi52.0) ['$52for_iter.1', '$phi52.0']\n", - " $52for_iter.2 = pair_first(value=$52for_iter.1) ['$52for_iter.1', '$52for_iter.2']\n", - " $52for_iter.3 = pair_second(value=$52for_iter.1) ['$52for_iter.1', '$52for_iter.3']\n", - " $phi54.1 = $52for_iter.2 ['$52for_iter.2', '$phi54.1']\n", - " branch $52for_iter.3, 54, 62 ['$52for_iter.3']\n", - "label 54:\n", - " parfor__index_83 = $phi54.1 ['$phi54.1', 'parfor__index_83']\n", - " __sentinel__0 = const(int, 0) ['__sentinel__0']\n", - " jump 52 []\n", - "label 62:\n", - " betweennesses_2__arr[ParallelAcceleratorGufuncThreadId] = betweennesses_2 ['ParallelAcceleratorGufuncThreadId', 'betweennesses_2', 'betweennesses_2__arr']\n", - " $const70.3 = const(NoneType, None) ['$const70.3']\n", - " $72return_value.4 = cast(value=$const70.3) ['$72return_value.4', '$const70.3']\n", - " return $72return_value.4 ['$72return_value.4']\n", - "\n", - "2023-05-15 11:07:35,837 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:35,838 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,838 | DEBUG | ssa.py:193 | on stmt: sched.236 = arg(0, name=sched)\n", - "2023-05-15 11:07:35,839 | DEBUG | ssa.py:193 | on stmt: _18binary__add_8 = arg(1, name=_18binary__add_8)\n", - "2023-05-15 11:07:35,840 | DEBUG | ssa.py:193 | on stmt: _const20_9 = arg(2, name=_const20_9)\n", - "2023-05-15 11:07:35,840 | DEBUG | ssa.py:193 | on stmt: dist = arg(3, name=dist)\n", - "2023-05-15 11:07:35,841 | DEBUG | ssa.py:193 | on stmt: edge__padding = arg(4, name=edge__padding)\n", - "2023-05-15 11:07:35,842 | DEBUG | ssa.py:193 | on stmt: edges__uv = arg(5, name=edges__uv)\n", - "2023-05-15 11:07:35,842 | DEBUG | ssa.py:193 | on stmt: loop__indices = arg(6, name=loop__indices)\n", - "2023-05-15 11:07:35,842 | DEBUG | ssa.py:193 | on stmt: pred = arg(7, name=pred)\n", - "2023-05-15 11:07:35,843 | DEBUG | ssa.py:193 | on stmt: betweennesses_2__arr = arg(8, name=betweennesses_2__arr)\n", - "2023-05-15 11:07:35,844 | DEBUG | ssa.py:193 | on stmt: $2load_global.0.237 = global(numba: )\n", - "2023-05-15 11:07:35,845 | DEBUG | ssa.py:193 | on stmt: $4load_attr.1.238 = getattr(value=$2load_global.0.237, attr=np)\n", - "2023-05-15 11:07:35,845 | DEBUG | ssa.py:193 | on stmt: $6load_attr.2.239 = getattr(value=$4load_attr.1.238, attr=ufunc)\n", - "2023-05-15 11:07:35,846 | DEBUG | ssa.py:193 | on stmt: $8load_attr.3.240 = getattr(value=$6load_attr.2.239, attr=parallel)\n", - "2023-05-15 11:07:35,847 | DEBUG | ssa.py:193 | on stmt: $10load_method.4.241 = getattr(value=$8load_attr.3.240, attr=_iget_thread_id)\n", - "2023-05-15 11:07:35,847 | DEBUG | ssa.py:193 | on stmt: ParallelAcceleratorGufuncThreadId.242 = call $10load_method.4.241(func=$10load_method.4.241, args=[], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,848 | DEBUG | ssa.py:193 | on stmt: betweennesses_2 = getitem(value=betweennesses_2__arr, index=ParallelAcceleratorGufuncThreadId.242, fn=)\n", - "2023-05-15 11:07:35,849 | DEBUG | ssa.py:193 | on stmt: $24load_global.9.243 = global(range: )\n", - "2023-05-15 11:07:35,849 | DEBUG | ssa.py:193 | on stmt: $const28.11.244 = const(int, 0)\n", - "2023-05-15 11:07:35,849 | DEBUG | ssa.py:193 | on stmt: $30binary_subscr.12.245 = getitem(value=sched.236, index=$const28.11.244, fn=)\n", - "2023-05-15 11:07:35,850 | DEBUG | ssa.py:193 | on stmt: $const34.14.246 = const(int, 1)\n", - "2023-05-15 11:07:35,851 | DEBUG | ssa.py:193 | on stmt: $36binary_subscr.15.247 = getitem(value=sched.236, index=$const34.14.246, fn=)\n", - "2023-05-15 11:07:35,851 | DEBUG | ssa.py:193 | on stmt: $38load_global.16.248 = global(np: )\n", - "2023-05-15 11:07:35,852 | DEBUG | ssa.py:193 | on stmt: $40load_method.17.249 = getattr(value=$38load_global.16.248, attr=uint8)\n", - "2023-05-15 11:07:35,852 | DEBUG | ssa.py:193 | on stmt: $const42.18.250 = const(int, 1)\n", - "2023-05-15 11:07:35,853 | DEBUG | ssa.py:193 | on stmt: $44call_method.19.251 = call $40load_method.17.249($const42.18.250, func=$40load_method.17.249, args=[Var($const42.18.250, :4)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,853 | DEBUG | ssa.py:193 | on stmt: $46binary_add.20.252 = $36binary_subscr.15.247 + $44call_method.19.251\n", - "2023-05-15 11:07:35,854 | DEBUG | ssa.py:193 | on stmt: $48call_function.21.253 = call $24load_global.9.243($30binary_subscr.12.245, $46binary_add.20.252, func=$24load_global.9.243, args=[Var($30binary_subscr.12.245, :4), Var($46binary_add.20.252, :4)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,854 | DEBUG | ssa.py:193 | on stmt: $50get_iter.22.254 = getiter(value=$48call_function.21.253)\n", - "2023-05-15 11:07:35,855 | DEBUG | ssa.py:193 | on stmt: $phi52.0.255 = $50get_iter.22.254\n", - "2023-05-15 11:07:35,855 | DEBUG | ssa.py:193 | on stmt: $52load_global.3 = global(__accumulate_bc: CPUDispatcher())\n", - "2023-05-15 11:07:35,856 | DEBUG | ssa.py:193 | on stmt: msg.68 = const(str, Sizes of betweennesses.2, $84call_function.19 do not match on /home/carlsonb/sciebo/Physics/22_23-MA_Thesis/Code/Superblockify/superblockify/metrics/measures.py (580))\n", - "2023-05-15 11:07:35,856 | DEBUG | ssa.py:193 | on stmt: assert.69 = global(assert_equiv: )\n", - "2023-05-15 11:07:35,857 | DEBUG | ssa.py:193 | on stmt: msg.71 = const(str, Sizes of betweennesses.2, $84call_function.19 do not match on /home/carlsonb/sciebo/Physics/22_23-MA_Thesis/Code/Superblockify/superblockify/metrics/measures.py (580))\n", - "2023-05-15 11:07:35,857 | DEBUG | ssa.py:193 | on stmt: assert.72 = global(assert_equiv: )\n", - "2023-05-15 11:07:35,858 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:35,858 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 52\n", - "2023-05-15 11:07:35,859 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,859 | DEBUG | ssa.py:193 | on stmt: $52for_iter.1.256 = iternext(value=$phi52.0.255)\n", - "2023-05-15 11:07:35,860 | DEBUG | ssa.py:193 | on stmt: $52for_iter.2.257 = pair_first(value=$52for_iter.1.256)\n", - "2023-05-15 11:07:35,860 | DEBUG | ssa.py:193 | on stmt: $52for_iter.3.258 = pair_second(value=$52for_iter.1.256)\n", - "2023-05-15 11:07:35,861 | DEBUG | ssa.py:193 | on stmt: $phi54.1.259 = $52for_iter.2.257\n", - "2023-05-15 11:07:35,861 | DEBUG | ssa.py:193 | on stmt: branch $52for_iter.3.258, 54, 112\n", - "2023-05-15 11:07:35,862 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 54\n", - "2023-05-15 11:07:35,862 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,863 | DEBUG | ssa.py:193 | on stmt: parfor__index_83 = $phi54.1.259\n", - "2023-05-15 11:07:35,863 | DEBUG | ssa.py:193 | on stmt: jump 62\n", - "2023-05-15 11:07:35,864 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 112\n", - "2023-05-15 11:07:35,869 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,869 | DEBUG | ssa.py:193 | on stmt: betweennesses_2__arr[ParallelAcceleratorGufuncThreadId.242] = betweennesses_2\n", - "2023-05-15 11:07:35,870 | DEBUG | ssa.py:193 | on stmt: $const70.3.260 = const(NoneType, None)\n", - "2023-05-15 11:07:35,871 | DEBUG | ssa.py:193 | on stmt: $72return_value.4.261 = cast(value=$const70.3.260)\n", - "2023-05-15 11:07:35,871 | DEBUG | ssa.py:193 | on stmt: return $72return_value.4.261\n", - "2023-05-15 11:07:35,872 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 62\n", - "2023-05-15 11:07:35,873 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,873 | DEBUG | ssa.py:193 | on stmt: $58binary_subscr.6 = getitem(value=loop__indices, index=parfor__index_83, fn=)\n", - "2023-05-15 11:07:35,874 | DEBUG | ssa.py:193 | on stmt: $66binary_subscr.10 = getitem(value=loop__indices, index=parfor__index_83, fn=)\n", - "2023-05-15 11:07:35,874 | DEBUG | ssa.py:193 | on stmt: $68binary_subscr.11 = getitem(value=pred, index=$66binary_subscr.10, fn=)\n", - "2023-05-15 11:07:35,875 | DEBUG | ssa.py:193 | on stmt: $76binary_subscr.15 = getitem(value=loop__indices, index=parfor__index_83, fn=)\n", - "2023-05-15 11:07:35,876 | DEBUG | ssa.py:193 | on stmt: $78binary_subscr.16 = getitem(value=dist, index=$76binary_subscr.15, fn=)\n", - "2023-05-15 11:07:35,876 | DEBUG | ssa.py:193 | on stmt: $84call_function.19 = call $52load_global.3($58binary_subscr.6, $68binary_subscr.11, $78binary_subscr.16, edges__uv, edge__padding, func=$52load_global.3, args=[Var($58binary_subscr.6, measures.py:581), Var($68binary_subscr.11, measures.py:582), Var($78binary_subscr.16, measures.py:583), Var(edges__uv, measures.py:574), Var(edge__padding, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,877 | DEBUG | ssa.py:193 | on stmt: $84call_function.19_shape.65 = getattr(value=$84call_function.19, attr=shape)\n", - "2023-05-15 11:07:35,878 | DEBUG | ssa.py:193 | on stmt: $84call_function.19_size0.66 = static_getitem(value=$84call_function.19_shape.65, index=0, index_var=None, fn=)\n", - "2023-05-15 11:07:35,879 | DEBUG | ssa.py:193 | on stmt: $84call_function.19_size1.67 = static_getitem(value=$84call_function.19_shape.65, index=1, index_var=None, fn=)\n", - "2023-05-15 11:07:35,879 | DEBUG | ssa.py:193 | on stmt: ret.70 = call assert.69(msg.68, _const20_9, $84call_function.19_size1.67, func=assert.69, args=[Var(msg.68, measures.py:580), Var(_const20_9, measures.py:574), Var($84call_function.19_size1.67, measures.py:580)], kws={}, vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,880 | DEBUG | ssa.py:193 | on stmt: ret.73 = call assert.72(msg.71, _18binary__add_8, $84call_function.19_size0.66, func=assert.72, args=[Var(msg.71, measures.py:580), Var(_18binary__add_8, measures.py:574), Var($84call_function.19_size0.66, measures.py:580)], kws={}, vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,880 | DEBUG | ssa.py:193 | on stmt: $betweennesses.2.169 = inplace_binop(fn=, immutable_fn=, lhs=betweennesses_2, rhs=$84call_function.19, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:35,881 | DEBUG | ssa.py:193 | on stmt: betweennesses_2 = $betweennesses.2.169\n", - "2023-05-15 11:07:35,882 | DEBUG | ssa.py:193 | on stmt: jump 111\n", - "2023-05-15 11:07:35,883 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 111\n", - "2023-05-15 11:07:35,883 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,884 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:35,886 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10load_method.4.241': [],\n", - " '$24load_global.9.243': [],\n", - " '$2load_global.0.237': [],\n", - " '$30binary_subscr.12.245': [],\n", - " '$36binary_subscr.15.247': [],\n", - " '$38load_global.16.248': [],\n", - " '$40load_method.17.249': [],\n", - " '$44call_method.19.251': [],\n", - " '$46binary_add.20.252': [],\n", - " '$48call_function.21.253': [],\n", - " '$4load_attr.1.238': [],\n", - " '$50get_iter.22.254': [],\n", - " '$52for_iter.1.256': [],\n", - " '$52for_iter.2.257': [],\n", - " '$52for_iter.3.258': [],\n", - " '$52load_global.3': [],\n", - " '$58binary_subscr.6': [],\n", - " '$66binary_subscr.10': [],\n", - " '$68binary_subscr.11': [],\n", - " '$6load_attr.2.239': [],\n", - " '$72return_value.4.261': [],\n", - " '$76binary_subscr.15': [],\n", - " '$78binary_subscr.16': [],\n", - " '$84call_function.19': [],\n", - " '$84call_function.19_shape.65': [],\n", - " '$84call_function.19_size0.66': [],\n", - " '$84call_function.19_size1.67': [],\n", - " '$8load_attr.3.240': [],\n", - " '$betweennesses.2.169': [],\n", - " '$const28.11.244': [],\n", - " '$const34.14.246': [],\n", - " '$const42.18.250': [],\n", - " '$const70.3.260': [],\n", - " '$phi52.0.255': [],\n", - " '$phi54.1.259': [],\n", - " 'ParallelAcceleratorGufuncThreadId.242': [],\n", - " '_18binary__add_8': [],\n", - " '_const20_9': [],\n", - " 'assert.69': [],\n", - " 'assert.72': [],\n", - " 'betweennesses_2': [,\n", - " ],\n", - " 'betweennesses_2__arr': [],\n", - " 'dist': [],\n", - " 'edge__padding': [],\n", - " 'edges__uv': [],\n", - " 'loop__indices': [],\n", - " 'msg.68': [],\n", - " 'msg.71': [],\n", - " 'parfor__index_83': [],\n", - " 'pred': [],\n", - " 'ret.70': [],\n", - " 'ret.73': [],\n", - " 'sched.236': []})\n", - "2023-05-15 11:07:35,887 | DEBUG | ssa.py:156 | SSA violators {'betweennesses_2'}\n", - "2023-05-15 11:07:35,887 | DEBUG | ssa.py:63 | Fix SSA violator on var betweennesses_2\n", - "2023-05-15 11:07:35,888 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:35,888 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,889 | DEBUG | ssa.py:193 | on stmt: sched.236 = arg(0, name=sched)\n", - "2023-05-15 11:07:35,889 | DEBUG | ssa.py:193 | on stmt: _18binary__add_8 = arg(1, name=_18binary__add_8)\n", - "2023-05-15 11:07:35,890 | DEBUG | ssa.py:193 | on stmt: _const20_9 = arg(2, name=_const20_9)\n", - "2023-05-15 11:07:35,890 | DEBUG | ssa.py:193 | on stmt: dist = arg(3, name=dist)\n", - "2023-05-15 11:07:35,892 | DEBUG | ssa.py:193 | on stmt: edge__padding = arg(4, name=edge__padding)\n", - "2023-05-15 11:07:35,892 | DEBUG | ssa.py:193 | on stmt: edges__uv = arg(5, name=edges__uv)\n", - "2023-05-15 11:07:35,893 | DEBUG | ssa.py:193 | on stmt: loop__indices = arg(6, name=loop__indices)\n", - "2023-05-15 11:07:35,893 | DEBUG | ssa.py:193 | on stmt: pred = arg(7, name=pred)\n", - "2023-05-15 11:07:35,894 | DEBUG | ssa.py:193 | on stmt: betweennesses_2__arr = arg(8, name=betweennesses_2__arr)\n", - "2023-05-15 11:07:35,895 | DEBUG | ssa.py:193 | on stmt: $2load_global.0.237 = global(numba: )\n", - "2023-05-15 11:07:35,895 | DEBUG | ssa.py:193 | on stmt: $4load_attr.1.238 = getattr(value=$2load_global.0.237, attr=np)\n", - "2023-05-15 11:07:35,896 | DEBUG | ssa.py:193 | on stmt: $6load_attr.2.239 = getattr(value=$4load_attr.1.238, attr=ufunc)\n", - "2023-05-15 11:07:35,897 | DEBUG | ssa.py:193 | on stmt: $8load_attr.3.240 = getattr(value=$6load_attr.2.239, attr=parallel)\n", - "2023-05-15 11:07:35,898 | DEBUG | ssa.py:193 | on stmt: $10load_method.4.241 = getattr(value=$8load_attr.3.240, attr=_iget_thread_id)\n", - "2023-05-15 11:07:35,899 | DEBUG | ssa.py:193 | on stmt: ParallelAcceleratorGufuncThreadId.242 = call $10load_method.4.241(func=$10load_method.4.241, args=[], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,899 | DEBUG | ssa.py:193 | on stmt: betweennesses_2 = getitem(value=betweennesses_2__arr, index=ParallelAcceleratorGufuncThreadId.242, fn=)\n", - "2023-05-15 11:07:35,900 | DEBUG | ssa.py:269 | first assign: betweennesses_2\n", - "2023-05-15 11:07:35,900 | DEBUG | ssa.py:199 | replaced with: betweennesses_2 = getitem(value=betweennesses_2__arr, index=ParallelAcceleratorGufuncThreadId.242, fn=)\n", - "2023-05-15 11:07:35,901 | DEBUG | ssa.py:193 | on stmt: $24load_global.9.243 = global(range: )\n", - "2023-05-15 11:07:35,901 | DEBUG | ssa.py:193 | on stmt: $const28.11.244 = const(int, 0)\n", - "2023-05-15 11:07:35,902 | DEBUG | ssa.py:193 | on stmt: $30binary_subscr.12.245 = getitem(value=sched.236, index=$const28.11.244, fn=)\n", - "2023-05-15 11:07:35,902 | DEBUG | ssa.py:193 | on stmt: $const34.14.246 = const(int, 1)\n", - "2023-05-15 11:07:35,903 | DEBUG | ssa.py:193 | on stmt: $36binary_subscr.15.247 = getitem(value=sched.236, index=$const34.14.246, fn=)\n", - "2023-05-15 11:07:35,904 | DEBUG | ssa.py:193 | on stmt: $38load_global.16.248 = global(np: )\n", - "2023-05-15 11:07:35,905 | DEBUG | ssa.py:193 | on stmt: $40load_method.17.249 = getattr(value=$38load_global.16.248, attr=uint8)\n", - "2023-05-15 11:07:35,906 | DEBUG | ssa.py:193 | on stmt: $const42.18.250 = const(int, 1)\n", - "2023-05-15 11:07:35,906 | DEBUG | ssa.py:193 | on stmt: $44call_method.19.251 = call $40load_method.17.249($const42.18.250, func=$40load_method.17.249, args=[Var($const42.18.250, :4)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,907 | DEBUG | ssa.py:193 | on stmt: $46binary_add.20.252 = $36binary_subscr.15.247 + $44call_method.19.251\n", - "2023-05-15 11:07:35,907 | DEBUG | ssa.py:193 | on stmt: $48call_function.21.253 = call $24load_global.9.243($30binary_subscr.12.245, $46binary_add.20.252, func=$24load_global.9.243, args=[Var($30binary_subscr.12.245, :4), Var($46binary_add.20.252, :4)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,909 | DEBUG | ssa.py:193 | on stmt: $50get_iter.22.254 = getiter(value=$48call_function.21.253)\n", - "2023-05-15 11:07:35,909 | DEBUG | ssa.py:193 | on stmt: $phi52.0.255 = $50get_iter.22.254\n", - "2023-05-15 11:07:35,910 | DEBUG | ssa.py:193 | on stmt: $52load_global.3 = global(__accumulate_bc: CPUDispatcher())\n", - "2023-05-15 11:07:35,911 | DEBUG | ssa.py:193 | on stmt: msg.68 = const(str, Sizes of betweennesses.2, $84call_function.19 do not match on /home/carlsonb/sciebo/Physics/22_23-MA_Thesis/Code/Superblockify/superblockify/metrics/measures.py (580))\n", - "2023-05-15 11:07:35,911 | DEBUG | ssa.py:193 | on stmt: assert.69 = global(assert_equiv: )\n", - "2023-05-15 11:07:35,912 | DEBUG | ssa.py:193 | on stmt: msg.71 = const(str, Sizes of betweennesses.2, $84call_function.19 do not match on /home/carlsonb/sciebo/Physics/22_23-MA_Thesis/Code/Superblockify/superblockify/metrics/measures.py (580))\n", - "2023-05-15 11:07:35,912 | DEBUG | ssa.py:193 | on stmt: assert.72 = global(assert_equiv: )\n", - "2023-05-15 11:07:35,913 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:35,914 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 52\n", - "2023-05-15 11:07:35,914 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,915 | DEBUG | ssa.py:193 | on stmt: $52for_iter.1.256 = iternext(value=$phi52.0.255)\n", - "2023-05-15 11:07:35,915 | DEBUG | ssa.py:193 | on stmt: $52for_iter.2.257 = pair_first(value=$52for_iter.1.256)\n", - "2023-05-15 11:07:35,916 | DEBUG | ssa.py:193 | on stmt: $52for_iter.3.258 = pair_second(value=$52for_iter.1.256)\n", - "2023-05-15 11:07:35,917 | DEBUG | ssa.py:193 | on stmt: $phi54.1.259 = $52for_iter.2.257\n", - "2023-05-15 11:07:35,917 | DEBUG | ssa.py:193 | on stmt: branch $52for_iter.3.258, 54, 112\n", - "2023-05-15 11:07:35,918 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 54\n", - "2023-05-15 11:07:35,918 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,919 | DEBUG | ssa.py:193 | on stmt: parfor__index_83 = $phi54.1.259\n", - "2023-05-15 11:07:35,920 | DEBUG | ssa.py:193 | on stmt: jump 62\n", - "2023-05-15 11:07:35,920 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 112\n", - "2023-05-15 11:07:35,922 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,923 | DEBUG | ssa.py:193 | on stmt: betweennesses_2__arr[ParallelAcceleratorGufuncThreadId.242] = betweennesses_2\n", - "2023-05-15 11:07:35,923 | DEBUG | ssa.py:193 | on stmt: $const70.3.260 = const(NoneType, None)\n", - "2023-05-15 11:07:35,924 | DEBUG | ssa.py:193 | on stmt: $72return_value.4.261 = cast(value=$const70.3.260)\n", - "2023-05-15 11:07:35,926 | DEBUG | ssa.py:193 | on stmt: return $72return_value.4.261\n", - "2023-05-15 11:07:35,927 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 62\n", - "2023-05-15 11:07:35,927 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,928 | DEBUG | ssa.py:193 | on stmt: $58binary_subscr.6 = getitem(value=loop__indices, index=parfor__index_83, fn=)\n", - "2023-05-15 11:07:35,928 | DEBUG | ssa.py:193 | on stmt: $66binary_subscr.10 = getitem(value=loop__indices, index=parfor__index_83, fn=)\n", - "2023-05-15 11:07:35,933 | DEBUG | ssa.py:193 | on stmt: $68binary_subscr.11 = getitem(value=pred, index=$66binary_subscr.10, fn=)\n", - "2023-05-15 11:07:35,933 | DEBUG | ssa.py:193 | on stmt: $76binary_subscr.15 = getitem(value=loop__indices, index=parfor__index_83, fn=)\n", - "2023-05-15 11:07:35,934 | DEBUG | ssa.py:193 | on stmt: $78binary_subscr.16 = getitem(value=dist, index=$76binary_subscr.15, fn=)\n", - "2023-05-15 11:07:35,935 | DEBUG | ssa.py:193 | on stmt: $84call_function.19 = call $52load_global.3($58binary_subscr.6, $68binary_subscr.11, $78binary_subscr.16, edges__uv, edge__padding, func=$52load_global.3, args=[Var($58binary_subscr.6, measures.py:581), Var($68binary_subscr.11, measures.py:582), Var($78binary_subscr.16, measures.py:583), Var(edges__uv, measures.py:574), Var(edge__padding, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,936 | DEBUG | ssa.py:193 | on stmt: $84call_function.19_shape.65 = getattr(value=$84call_function.19, attr=shape)\n", - "2023-05-15 11:07:35,937 | DEBUG | ssa.py:193 | on stmt: $84call_function.19_size0.66 = static_getitem(value=$84call_function.19_shape.65, index=0, index_var=None, fn=)\n", - "2023-05-15 11:07:35,938 | DEBUG | ssa.py:193 | on stmt: $84call_function.19_size1.67 = static_getitem(value=$84call_function.19_shape.65, index=1, index_var=None, fn=)\n", - "2023-05-15 11:07:35,938 | DEBUG | ssa.py:193 | on stmt: ret.70 = call assert.69(msg.68, _const20_9, $84call_function.19_size1.67, func=assert.69, args=[Var(msg.68, measures.py:580), Var(_const20_9, measures.py:574), Var($84call_function.19_size1.67, measures.py:580)], kws={}, vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,939 | DEBUG | ssa.py:193 | on stmt: ret.73 = call assert.72(msg.71, _18binary__add_8, $84call_function.19_size0.66, func=assert.72, args=[Var(msg.71, measures.py:580), Var(_18binary__add_8, measures.py:574), Var($84call_function.19_size0.66, measures.py:580)], kws={}, vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,940 | DEBUG | ssa.py:193 | on stmt: $betweennesses.2.169 = inplace_binop(fn=, immutable_fn=, lhs=betweennesses_2, rhs=$84call_function.19, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:35,941 | DEBUG | ssa.py:193 | on stmt: betweennesses_2 = $betweennesses.2.169\n", - "2023-05-15 11:07:35,942 | DEBUG | ssa.py:199 | replaced with: betweennesses_2.1 = $betweennesses.2.169\n", - "2023-05-15 11:07:35,943 | DEBUG | ssa.py:193 | on stmt: jump 111\n", - "2023-05-15 11:07:35,943 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 111\n", - "2023-05-15 11:07:35,944 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,945 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:35,946 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {0: [],\n", - " 62: []})\n", - "2023-05-15 11:07:35,946 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:35,947 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,948 | DEBUG | ssa.py:193 | on stmt: sched.236 = arg(0, name=sched)\n", - "2023-05-15 11:07:35,949 | DEBUG | ssa.py:193 | on stmt: _18binary__add_8 = arg(1, name=_18binary__add_8)\n", - "2023-05-15 11:07:35,950 | DEBUG | ssa.py:193 | on stmt: _const20_9 = arg(2, name=_const20_9)\n", - "2023-05-15 11:07:35,950 | DEBUG | ssa.py:193 | on stmt: dist = arg(3, name=dist)\n", - "2023-05-15 11:07:35,951 | DEBUG | ssa.py:193 | on stmt: edge__padding = arg(4, name=edge__padding)\n", - "2023-05-15 11:07:35,952 | DEBUG | ssa.py:193 | on stmt: edges__uv = arg(5, name=edges__uv)\n", - "2023-05-15 11:07:35,953 | DEBUG | ssa.py:193 | on stmt: loop__indices = arg(6, name=loop__indices)\n", - "2023-05-15 11:07:35,953 | DEBUG | ssa.py:193 | on stmt: pred = arg(7, name=pred)\n", - "2023-05-15 11:07:35,954 | DEBUG | ssa.py:193 | on stmt: betweennesses_2__arr = arg(8, name=betweennesses_2__arr)\n", - "2023-05-15 11:07:35,955 | DEBUG | ssa.py:193 | on stmt: $2load_global.0.237 = global(numba: )\n", - "2023-05-15 11:07:35,956 | DEBUG | ssa.py:193 | on stmt: $4load_attr.1.238 = getattr(value=$2load_global.0.237, attr=np)\n", - "2023-05-15 11:07:35,957 | DEBUG | ssa.py:193 | on stmt: $6load_attr.2.239 = getattr(value=$4load_attr.1.238, attr=ufunc)\n", - "2023-05-15 11:07:35,957 | DEBUG | ssa.py:193 | on stmt: $8load_attr.3.240 = getattr(value=$6load_attr.2.239, attr=parallel)\n", - "2023-05-15 11:07:35,959 | DEBUG | ssa.py:193 | on stmt: $10load_method.4.241 = getattr(value=$8load_attr.3.240, attr=_iget_thread_id)\n", - "2023-05-15 11:07:35,959 | DEBUG | ssa.py:193 | on stmt: ParallelAcceleratorGufuncThreadId.242 = call $10load_method.4.241(func=$10load_method.4.241, args=[], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,960 | DEBUG | ssa.py:193 | on stmt: betweennesses_2 = getitem(value=betweennesses_2__arr, index=ParallelAcceleratorGufuncThreadId.242, fn=)\n", - "2023-05-15 11:07:35,961 | DEBUG | ssa.py:193 | on stmt: $24load_global.9.243 = global(range: )\n", - "2023-05-15 11:07:35,962 | DEBUG | ssa.py:193 | on stmt: $const28.11.244 = const(int, 0)\n", - "2023-05-15 11:07:35,964 | DEBUG | ssa.py:193 | on stmt: $30binary_subscr.12.245 = getitem(value=sched.236, index=$const28.11.244, fn=)\n", - "2023-05-15 11:07:35,965 | DEBUG | ssa.py:193 | on stmt: $const34.14.246 = const(int, 1)\n", - "2023-05-15 11:07:35,966 | DEBUG | ssa.py:193 | on stmt: $36binary_subscr.15.247 = getitem(value=sched.236, index=$const34.14.246, fn=)\n", - "2023-05-15 11:07:35,966 | DEBUG | ssa.py:193 | on stmt: $38load_global.16.248 = global(np: )\n", - "2023-05-15 11:07:35,967 | DEBUG | ssa.py:193 | on stmt: $40load_method.17.249 = getattr(value=$38load_global.16.248, attr=uint8)\n", - "2023-05-15 11:07:35,967 | DEBUG | ssa.py:193 | on stmt: $const42.18.250 = const(int, 1)\n", - "2023-05-15 11:07:35,968 | DEBUG | ssa.py:193 | on stmt: $44call_method.19.251 = call $40load_method.17.249($const42.18.250, func=$40load_method.17.249, args=[Var($const42.18.250, :4)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,969 | DEBUG | ssa.py:193 | on stmt: $46binary_add.20.252 = $36binary_subscr.15.247 + $44call_method.19.251\n", - "2023-05-15 11:07:35,969 | DEBUG | ssa.py:193 | on stmt: $48call_function.21.253 = call $24load_global.9.243($30binary_subscr.12.245, $46binary_add.20.252, func=$24load_global.9.243, args=[Var($30binary_subscr.12.245, :4), Var($46binary_add.20.252, :4)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:35,970 | DEBUG | ssa.py:193 | on stmt: $50get_iter.22.254 = getiter(value=$48call_function.21.253)\n", - "2023-05-15 11:07:35,971 | DEBUG | ssa.py:193 | on stmt: $phi52.0.255 = $50get_iter.22.254\n", - "2023-05-15 11:07:35,972 | DEBUG | ssa.py:193 | on stmt: $52load_global.3 = global(__accumulate_bc: CPUDispatcher())\n", - "2023-05-15 11:07:35,972 | DEBUG | ssa.py:193 | on stmt: msg.68 = const(str, Sizes of betweennesses.2, $84call_function.19 do not match on /home/carlsonb/sciebo/Physics/22_23-MA_Thesis/Code/Superblockify/superblockify/metrics/measures.py (580))\n", - "2023-05-15 11:07:35,973 | DEBUG | ssa.py:193 | on stmt: assert.69 = global(assert_equiv: )\n", - "2023-05-15 11:07:35,974 | DEBUG | ssa.py:193 | on stmt: msg.71 = const(str, Sizes of betweennesses.2, $84call_function.19 do not match on /home/carlsonb/sciebo/Physics/22_23-MA_Thesis/Code/Superblockify/superblockify/metrics/measures.py (580))\n", - "2023-05-15 11:07:35,974 | DEBUG | ssa.py:193 | on stmt: assert.72 = global(assert_equiv: )\n", - "2023-05-15 11:07:35,975 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:35,976 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 52\n", - "2023-05-15 11:07:35,977 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,977 | DEBUG | ssa.py:193 | on stmt: $52for_iter.1.256 = iternext(value=$phi52.0.255)\n", - "2023-05-15 11:07:35,978 | DEBUG | ssa.py:193 | on stmt: $52for_iter.2.257 = pair_first(value=$52for_iter.1.256)\n", - "2023-05-15 11:07:35,978 | DEBUG | ssa.py:193 | on stmt: $52for_iter.3.258 = pair_second(value=$52for_iter.1.256)\n", - "2023-05-15 11:07:35,979 | DEBUG | ssa.py:193 | on stmt: $phi54.1.259 = $52for_iter.2.257\n", - "2023-05-15 11:07:35,980 | DEBUG | ssa.py:193 | on stmt: branch $52for_iter.3.258, 54, 112\n", - "2023-05-15 11:07:35,980 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 54\n", - "2023-05-15 11:07:35,981 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,981 | DEBUG | ssa.py:193 | on stmt: parfor__index_83 = $phi54.1.259\n", - "2023-05-15 11:07:35,982 | DEBUG | ssa.py:193 | on stmt: jump 62\n", - "2023-05-15 11:07:35,982 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 112\n", - "2023-05-15 11:07:35,983 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,983 | DEBUG | ssa.py:193 | on stmt: betweennesses_2__arr[ParallelAcceleratorGufuncThreadId.242] = betweennesses_2\n", - "2023-05-15 11:07:35,984 | DEBUG | ssa.py:353 | find_def var='betweennesses_2' stmt=betweennesses_2__arr[ParallelAcceleratorGufuncThreadId.242] = betweennesses_2\n", - "2023-05-15 11:07:35,984 | DEBUG | ssa.py:384 | find_def_from_top label 112\n", - "2023-05-15 11:07:35,985 | DEBUG | ssa.py:421 | idom 52 from label 112\n", - "2023-05-15 11:07:35,985 | DEBUG | ssa.py:427 | find_def_from_bottom label 52\n", - "2023-05-15 11:07:35,986 | DEBUG | ssa.py:384 | find_def_from_top label 52\n", - "2023-05-15 11:07:35,986 | DEBUG | ssa.py:401 | insert phi node betweennesses_2.2 = phi(incoming_values=[], incoming_blocks=[]) at 52\n", - "2023-05-15 11:07:35,987 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:35,987 | DEBUG | ssa.py:409 | incoming_def betweennesses_2 = getitem(value=betweennesses_2__arr, index=ParallelAcceleratorGufuncThreadId.242, fn=)\n", - "2023-05-15 11:07:35,988 | DEBUG | ssa.py:427 | find_def_from_bottom label 111\n", - "2023-05-15 11:07:35,988 | DEBUG | ssa.py:384 | find_def_from_top label 111\n", - "2023-05-15 11:07:35,989 | DEBUG | ssa.py:421 | idom 62 from label 111\n", - "2023-05-15 11:07:35,989 | DEBUG | ssa.py:427 | find_def_from_bottom label 62\n", - "2023-05-15 11:07:35,990 | DEBUG | ssa.py:409 | incoming_def betweennesses_2.1 = $betweennesses.2.169\n", - "2023-05-15 11:07:35,990 | DEBUG | ssa.py:199 | replaced with: betweennesses_2__arr[ParallelAcceleratorGufuncThreadId.242] = betweennesses_2.2\n", - "2023-05-15 11:07:35,991 | DEBUG | ssa.py:193 | on stmt: $const70.3.260 = const(NoneType, None)\n", - "2023-05-15 11:07:35,991 | DEBUG | ssa.py:193 | on stmt: $72return_value.4.261 = cast(value=$const70.3.260)\n", - "2023-05-15 11:07:35,992 | DEBUG | ssa.py:193 | on stmt: return $72return_value.4.261\n", - "2023-05-15 11:07:35,992 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 62\n", - "2023-05-15 11:07:35,995 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:35,997 | DEBUG | ssa.py:193 | on stmt: $58binary_subscr.6 = getitem(value=loop__indices, index=parfor__index_83, fn=)\n", - "2023-05-15 11:07:35,997 | DEBUG | ssa.py:193 | on stmt: $66binary_subscr.10 = getitem(value=loop__indices, index=parfor__index_83, fn=)\n", - "2023-05-15 11:07:35,998 | DEBUG | ssa.py:193 | on stmt: $68binary_subscr.11 = getitem(value=pred, index=$66binary_subscr.10, fn=)\n", - "2023-05-15 11:07:35,998 | DEBUG | ssa.py:193 | on stmt: $76binary_subscr.15 = getitem(value=loop__indices, index=parfor__index_83, fn=)\n", - "2023-05-15 11:07:36,000 | DEBUG | ssa.py:193 | on stmt: $78binary_subscr.16 = getitem(value=dist, index=$76binary_subscr.15, fn=)\n", - "2023-05-15 11:07:36,000 | DEBUG | ssa.py:193 | on stmt: $84call_function.19 = call $52load_global.3($58binary_subscr.6, $68binary_subscr.11, $78binary_subscr.16, edges__uv, edge__padding, func=$52load_global.3, args=[Var($58binary_subscr.6, measures.py:581), Var($68binary_subscr.11, measures.py:582), Var($78binary_subscr.16, measures.py:583), Var(edges__uv, measures.py:574), Var(edge__padding, measures.py:574)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:36,001 | DEBUG | ssa.py:193 | on stmt: $84call_function.19_shape.65 = getattr(value=$84call_function.19, attr=shape)\n", - "2023-05-15 11:07:36,001 | DEBUG | ssa.py:193 | on stmt: $84call_function.19_size0.66 = static_getitem(value=$84call_function.19_shape.65, index=0, index_var=None, fn=)\n", - "2023-05-15 11:07:36,002 | DEBUG | ssa.py:193 | on stmt: $84call_function.19_size1.67 = static_getitem(value=$84call_function.19_shape.65, index=1, index_var=None, fn=)\n", - "2023-05-15 11:07:36,003 | DEBUG | ssa.py:193 | on stmt: ret.70 = call assert.69(msg.68, _const20_9, $84call_function.19_size1.67, func=assert.69, args=[Var(msg.68, measures.py:580), Var(_const20_9, measures.py:574), Var($84call_function.19_size1.67, measures.py:580)], kws={}, vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:36,003 | DEBUG | ssa.py:193 | on stmt: ret.73 = call assert.72(msg.71, _18binary__add_8, $84call_function.19_size0.66, func=assert.72, args=[Var(msg.71, measures.py:580), Var(_18binary__add_8, measures.py:574), Var($84call_function.19_size0.66, measures.py:580)], kws={}, vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:36,004 | DEBUG | ssa.py:193 | on stmt: $betweennesses.2.169 = inplace_binop(fn=, immutable_fn=, lhs=betweennesses_2, rhs=$84call_function.19, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:36,005 | DEBUG | ssa.py:353 | find_def var='betweennesses_2' stmt=$betweennesses.2.169 = inplace_binop(fn=, immutable_fn=, lhs=betweennesses_2, rhs=$84call_function.19, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:36,005 | DEBUG | ssa.py:384 | find_def_from_top label 62\n", - "2023-05-15 11:07:36,006 | DEBUG | ssa.py:421 | idom 54 from label 62\n", - "2023-05-15 11:07:36,006 | DEBUG | ssa.py:427 | find_def_from_bottom label 54\n", - "2023-05-15 11:07:36,007 | DEBUG | ssa.py:384 | find_def_from_top label 54\n", - "2023-05-15 11:07:36,007 | DEBUG | ssa.py:421 | idom 52 from label 54\n", - "2023-05-15 11:07:36,008 | DEBUG | ssa.py:427 | find_def_from_bottom label 52\n", - "2023-05-15 11:07:36,008 | DEBUG | ssa.py:199 | replaced with: $betweennesses.2.169 = inplace_binop(fn=, immutable_fn=, lhs=betweennesses_2.2, rhs=$84call_function.19, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:36,009 | DEBUG | ssa.py:193 | on stmt: betweennesses_2.1 = $betweennesses.2.169\n", - "2023-05-15 11:07:36,009 | DEBUG | ssa.py:193 | on stmt: jump 111\n", - "2023-05-15 11:07:36,010 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 111\n", - "2023-05-15 11:07:36,010 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:36,011 | DEBUG | ssa.py:193 | on stmt: jump 52\n", - "2023-05-15 11:07:37,366 | DEBUG | byteflow.py:74 | bytecode dump:\n", - "> 0\tNOP(arg=None, lineno=535)\n", - " 2\tLOAD_FAST(arg=2, lineno=535)\n", - " 4\tSTORE_FAST(arg=3, lineno=535)\n", - " 6\tLOAD_GLOBAL(arg=0, lineno=536)\n", - " 8\tLOAD_FAST(arg=0, lineno=536)\n", - " 10\tCALL_FUNCTION(arg=1, lineno=536)\n", - " 12\tGET_ITER(arg=None, lineno=536)\n", - "> 14\tFOR_ITER(arg=8, lineno=536)\n", - " 16\tSTORE_FAST(arg=4, lineno=536)\n", - " 18\tLOAD_FAST(arg=3, lineno=537)\n", - " 20\tLOAD_FAST(arg=1, lineno=537)\n", - " 22\tLOAD_FAST(arg=4, lineno=537)\n", - " 24\tBINARY_SUBSCR(arg=None, lineno=537)\n", - " 26\tINPLACE_ADD(arg=None, lineno=537)\n", - " 28\tSTORE_FAST(arg=3, lineno=537)\n", - " 30\tJUMP_ABSOLUTE(arg=8, lineno=537)\n", - "> 32\tLOAD_FAST(arg=3, lineno=538)\n", - " 34\tRETURN_VALUE(arg=None, lineno=538)\n", - "2023-05-15 11:07:37,366 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=0 nstack_initial=0)])\n", - "2023-05-15 11:07:37,367 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:37,367 | DEBUG | byteflow.py:278 | dispatch pc=0, inst=NOP(arg=None, lineno=535)\n", - "2023-05-15 11:07:37,368 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:37,368 | DEBUG | byteflow.py:278 | dispatch pc=2, inst=LOAD_FAST(arg=2, lineno=535)\n", - "2023-05-15 11:07:37,368 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:37,369 | DEBUG | byteflow.py:278 | dispatch pc=4, inst=STORE_FAST(arg=3, lineno=535)\n", - "2023-05-15 11:07:37,370 | DEBUG | byteflow.py:279 | stack ['$init2.0']\n", - "2023-05-15 11:07:37,370 | DEBUG | byteflow.py:278 | dispatch pc=6, inst=LOAD_GLOBAL(arg=0, lineno=536)\n", - "2023-05-15 11:07:37,370 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:37,371 | DEBUG | byteflow.py:278 | dispatch pc=8, inst=LOAD_FAST(arg=0, lineno=536)\n", - "2023-05-15 11:07:37,371 | DEBUG | byteflow.py:279 | stack ['$6load_global.1']\n", - "2023-05-15 11:07:37,372 | DEBUG | byteflow.py:278 | dispatch pc=10, inst=CALL_FUNCTION(arg=1, lineno=536)\n", - "2023-05-15 11:07:37,372 | DEBUG | byteflow.py:279 | stack ['$6load_global.1', '$thread_count8.2']\n", - "2023-05-15 11:07:37,373 | DEBUG | byteflow.py:278 | dispatch pc=12, inst=GET_ITER(arg=None, lineno=536)\n", - "2023-05-15 11:07:37,373 | DEBUG | byteflow.py:279 | stack ['$10call_function.3']\n", - "2023-05-15 11:07:37,374 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=14, stack=('$12get_iter.4',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:37,375 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=14 nstack_initial=1)])\n", - "2023-05-15 11:07:37,375 | DEBUG | byteflow.py:103 | stack: ['$phi14.0']\n", - "2023-05-15 11:07:37,376 | DEBUG | byteflow.py:278 | dispatch pc=14, inst=FOR_ITER(arg=8, lineno=536)\n", - "2023-05-15 11:07:37,376 | DEBUG | byteflow.py:279 | stack ['$phi14.0']\n", - "2023-05-15 11:07:37,377 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=32, stack=(), blockstack=(), npush=0), Edge(pc=16, stack=('$phi14.0', '$14for_iter.2'), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:37,377 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=32 nstack_initial=0), State(pc_initial=16 nstack_initial=2)])\n", - "2023-05-15 11:07:37,377 | DEBUG | byteflow.py:103 | stack: []\n", - "2023-05-15 11:07:37,378 | DEBUG | byteflow.py:278 | dispatch pc=32, inst=LOAD_FAST(arg=3, lineno=538)\n", - "2023-05-15 11:07:37,378 | DEBUG | byteflow.py:279 | stack []\n", - "2023-05-15 11:07:37,379 | DEBUG | byteflow.py:278 | dispatch pc=34, inst=RETURN_VALUE(arg=None, lineno=538)\n", - "2023-05-15 11:07:37,379 | DEBUG | byteflow.py:279 | stack ['$c32.0']\n", - "2023-05-15 11:07:37,379 | DEBUG | byteflow.py:138 | end state. edges=[]\n", - "2023-05-15 11:07:37,380 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=16 nstack_initial=2)])\n", - "2023-05-15 11:07:37,380 | DEBUG | byteflow.py:103 | stack: ['$phi16.0', '$phi16.1']\n", - "2023-05-15 11:07:37,381 | DEBUG | byteflow.py:278 | dispatch pc=16, inst=STORE_FAST(arg=4, lineno=536)\n", - "2023-05-15 11:07:37,381 | DEBUG | byteflow.py:279 | stack ['$phi16.0', '$phi16.1']\n", - "2023-05-15 11:07:37,382 | DEBUG | byteflow.py:278 | dispatch pc=18, inst=LOAD_FAST(arg=3, lineno=537)\n", - "2023-05-15 11:07:37,383 | DEBUG | byteflow.py:279 | stack ['$phi16.0']\n", - "2023-05-15 11:07:37,383 | DEBUG | byteflow.py:278 | dispatch pc=20, inst=LOAD_FAST(arg=1, lineno=537)\n", - "2023-05-15 11:07:37,384 | DEBUG | byteflow.py:279 | stack ['$phi16.0', '$c18.2']\n", - "2023-05-15 11:07:37,384 | DEBUG | byteflow.py:278 | dispatch pc=22, inst=LOAD_FAST(arg=4, lineno=537)\n", - "2023-05-15 11:07:37,385 | DEBUG | byteflow.py:279 | stack ['$phi16.0', '$c18.2', '$redarr20.3']\n", - "2023-05-15 11:07:37,385 | DEBUG | byteflow.py:278 | dispatch pc=24, inst=BINARY_SUBSCR(arg=None, lineno=537)\n", - "2023-05-15 11:07:37,385 | DEBUG | byteflow.py:279 | stack ['$phi16.0', '$c18.2', '$redarr20.3', '$i22.4']\n", - "2023-05-15 11:07:37,386 | DEBUG | byteflow.py:278 | dispatch pc=26, inst=INPLACE_ADD(arg=None, lineno=537)\n", - "2023-05-15 11:07:37,386 | DEBUG | byteflow.py:279 | stack ['$phi16.0', '$c18.2', '$24binary_subscr.5']\n", - "2023-05-15 11:07:37,387 | DEBUG | byteflow.py:278 | dispatch pc=28, inst=STORE_FAST(arg=3, lineno=537)\n", - "2023-05-15 11:07:37,388 | DEBUG | byteflow.py:279 | stack ['$phi16.0', '$26inplace_add.6']\n", - "2023-05-15 11:07:37,388 | DEBUG | byteflow.py:278 | dispatch pc=30, inst=JUMP_ABSOLUTE(arg=8, lineno=537)\n", - "2023-05-15 11:07:37,389 | DEBUG | byteflow.py:279 | stack ['$phi16.0']\n", - "2023-05-15 11:07:37,389 | DEBUG | byteflow.py:138 | end state. edges=[Edge(pc=14, stack=('$phi16.0',), blockstack=(), npush=0)]\n", - "2023-05-15 11:07:37,390 | DEBUG | byteflow.py:100 | pending: deque([State(pc_initial=14 nstack_initial=1)])\n", - "2023-05-15 11:07:37,391 | DEBUG | byteflow.py:166 | -------------------------Prune PHIs-------------------------\n", - "2023-05-15 11:07:37,392 | DEBUG | byteflow.py:235 | Used_phis: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): set(),\n", - " State(pc_initial=14 nstack_initial=1): {'$phi14.0'},\n", - " State(pc_initial=16 nstack_initial=2): {'$phi16.1'},\n", - " State(pc_initial=32 nstack_initial=0): set()})\n", - "2023-05-15 11:07:37,392 | DEBUG | byteflow.py:192 | defmap: {'$phi14.0': State(pc_initial=0 nstack_initial=0),\n", - " '$phi16.1': State(pc_initial=14 nstack_initial=1)}\n", - "2023-05-15 11:07:37,393 | DEBUG | byteflow.py:193 | phismap: defaultdict(,\n", - " {'$phi14.0': {('$12get_iter.4',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi16.0', State(pc_initial=16 nstack_initial=2))},\n", - " '$phi16.0': {('$phi14.0', State(pc_initial=14 nstack_initial=1))},\n", - " '$phi16.1': {('$14for_iter.2',\n", - " State(pc_initial=14 nstack_initial=1))}})\n", - "2023-05-15 11:07:37,393 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi14.0': {('$12get_iter.4',\n", - " State(pc_initial=0 nstack_initial=0)),\n", - " ('$phi14.0', State(pc_initial=14 nstack_initial=1))},\n", - " '$phi16.0': {('$12get_iter.4',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi16.1': {('$14for_iter.2',\n", - " State(pc_initial=14 nstack_initial=1))}})\n", - "2023-05-15 11:07:37,394 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi14.0': {('$12get_iter.4',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi16.0': {('$12get_iter.4',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi16.1': {('$14for_iter.2',\n", - " State(pc_initial=14 nstack_initial=1))}})\n", - "2023-05-15 11:07:37,395 | DEBUG | byteflow.py:214 | changing phismap: defaultdict(,\n", - " {'$phi14.0': {('$12get_iter.4',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi16.0': {('$12get_iter.4',\n", - " State(pc_initial=0 nstack_initial=0))},\n", - " '$phi16.1': {('$14for_iter.2',\n", - " State(pc_initial=14 nstack_initial=1))}})\n", - "2023-05-15 11:07:37,395 | DEBUG | byteflow.py:223 | keep phismap: {'$phi14.0': {('$12get_iter.4', State(pc_initial=0 nstack_initial=0))},\n", - " '$phi16.1': {('$14for_iter.2', State(pc_initial=14 nstack_initial=1))}}\n", - "2023-05-15 11:07:37,396 | DEBUG | byteflow.py:229 | new_out: defaultdict(,\n", - " {State(pc_initial=0 nstack_initial=0): {'$phi14.0': '$12get_iter.4'},\n", - " State(pc_initial=14 nstack_initial=1): {'$phi16.1': '$14for_iter.2'}})\n", - "2023-05-15 11:07:37,396 | DEBUG | byteflow.py:239 | ----------------------DONE Prune PHIs-----------------------\n", - "2023-05-15 11:07:37,397 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=0 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((0, {}), (2, {'res': '$init2.0'}), (4, {'value': '$init2.0'}), (6, {'res': '$6load_global.1'}), (8, {'res': '$thread_count8.2'}), (10, {'func': '$6load_global.1', 'args': ['$thread_count8.2'], 'res': '$10call_function.3'}), (12, {'value': '$10call_function.3', 'res': '$12get_iter.4'})), outgoing_phis={'$phi14.0': '$12get_iter.4'}, blockstack=(), active_try_block=None, outgoing_edgepushed={14: ('$12get_iter.4',)})\n", - "2023-05-15 11:07:37,397 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=14 nstack_initial=1):\n", - "AdaptBlockInfo(insts=((14, {'iterator': '$phi14.0', 'pair': '$14for_iter.1', 'indval': '$14for_iter.2', 'pred': '$14for_iter.3'}),), outgoing_phis={'$phi16.1': '$14for_iter.2'}, blockstack=(), active_try_block=None, outgoing_edgepushed={32: (), 16: ('$phi14.0', '$14for_iter.2')})\n", - "2023-05-15 11:07:37,398 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=16 nstack_initial=2):\n", - "AdaptBlockInfo(insts=((16, {'value': '$phi16.1'}), (18, {'res': '$c18.2'}), (20, {'res': '$redarr20.3'}), (22, {'res': '$i22.4'}), (24, {'index': '$i22.4', 'target': '$redarr20.3', 'res': '$24binary_subscr.5'}), (26, {'lhs': '$c18.2', 'rhs': '$24binary_subscr.5', 'res': '$26inplace_add.6'}), (28, {'value': '$26inplace_add.6'}), (30, {})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={14: ('$phi16.0',)})\n", - "2023-05-15 11:07:37,398 | DEBUG | byteflow.py:150 | block_infos State(pc_initial=32 nstack_initial=0):\n", - "AdaptBlockInfo(insts=((32, {'res': '$c32.0'}), (34, {'retval': '$c32.0', 'castval': '$34return_value.1'})), outgoing_phis={}, blockstack=(), active_try_block=None, outgoing_edgepushed={})\n", - "2023-05-15 11:07:37,400 | DEBUG | interpreter.py:1342 | label 0:\n", - " thread_count = arg(0, name=thread_count) ['thread_count']\n", - " redarr = arg(1, name=redarr) ['redarr']\n", - " init = arg(2, name=init) ['init']\n", - " c = init ['c', 'init']\n", - " $6load_global.1 = global(range: ) ['$6load_global.1']\n", - " $10call_function.3 = call $6load_global.1(thread_count, func=$6load_global.1, args=[Var(thread_count, parfor_lowering.py:535)], kws=(), vararg=None, varkwarg=None, target=None) ['$10call_function.3', '$6load_global.1', 'thread_count']\n", - " $12get_iter.4 = getiter(value=$10call_function.3) ['$10call_function.3', '$12get_iter.4']\n", - " $phi14.0 = $12get_iter.4 ['$12get_iter.4', '$phi14.0']\n", - " jump 14 []\n", - "label 14:\n", - " $14for_iter.1 = iternext(value=$phi14.0) ['$14for_iter.1', '$phi14.0']\n", - " $14for_iter.2 = pair_first(value=$14for_iter.1) ['$14for_iter.1', '$14for_iter.2']\n", - " $14for_iter.3 = pair_second(value=$14for_iter.1) ['$14for_iter.1', '$14for_iter.3']\n", - " $phi16.1 = $14for_iter.2 ['$14for_iter.2', '$phi16.1']\n", - " branch $14for_iter.3, 16, 32 ['$14for_iter.3']\n", - "label 16:\n", - " i = $phi16.1 ['$phi16.1', 'i']\n", - " $24binary_subscr.5 = getitem(value=redarr, index=i, fn=) ['$24binary_subscr.5', 'i', 'redarr']\n", - " $26inplace_add.6 = inplace_binop(fn=, immutable_fn=, lhs=c, rhs=$24binary_subscr.5, static_lhs=Undefined, static_rhs=Undefined) ['$24binary_subscr.5', '$26inplace_add.6', 'c']\n", - " c = $26inplace_add.6 ['$26inplace_add.6', 'c']\n", - " jump 14 []\n", - "label 32:\n", - " $34return_value.1 = cast(value=c) ['$34return_value.1', 'c']\n", - " return $34return_value.1 ['$34return_value.1']\n", - "\n", - "2023-05-15 11:07:37,406 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 0\n", - "2023-05-15 11:07:37,407 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:37,407 | DEBUG | ssa.py:193 | on stmt: thread_count = arg(0, name=thread_count)\n", - "2023-05-15 11:07:37,408 | DEBUG | ssa.py:193 | on stmt: redarr = arg(1, name=redarr)\n", - "2023-05-15 11:07:37,408 | DEBUG | ssa.py:193 | on stmt: init = arg(2, name=init)\n", - "2023-05-15 11:07:37,409 | DEBUG | ssa.py:193 | on stmt: c = init\n", - "2023-05-15 11:07:37,409 | DEBUG | ssa.py:193 | on stmt: $6load_global.1 = global(range: )\n", - "2023-05-15 11:07:37,410 | DEBUG | ssa.py:193 | on stmt: $10call_function.3 = call $6load_global.1(thread_count, func=$6load_global.1, args=[Var(thread_count, parfor_lowering.py:535)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:37,410 | DEBUG | ssa.py:193 | on stmt: $12get_iter.4 = getiter(value=$10call_function.3)\n", - "2023-05-15 11:07:37,411 | DEBUG | ssa.py:193 | on stmt: $phi14.0 = $12get_iter.4\n", - "2023-05-15 11:07:37,411 | DEBUG | ssa.py:193 | on stmt: jump 14\n", - "2023-05-15 11:07:37,412 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 14\n", - "2023-05-15 11:07:37,412 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:37,413 | DEBUG | ssa.py:193 | on stmt: $14for_iter.1 = iternext(value=$phi14.0)\n", - "2023-05-15 11:07:37,413 | DEBUG | ssa.py:193 | on stmt: $14for_iter.2 = pair_first(value=$14for_iter.1)\n", - "2023-05-15 11:07:37,414 | DEBUG | ssa.py:193 | on stmt: $14for_iter.3 = pair_second(value=$14for_iter.1)\n", - "2023-05-15 11:07:37,414 | DEBUG | ssa.py:193 | on stmt: $phi16.1 = $14for_iter.2\n", - "2023-05-15 11:07:37,415 | DEBUG | ssa.py:193 | on stmt: branch $14for_iter.3, 16, 32\n", - "2023-05-15 11:07:37,415 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 16\n", - "2023-05-15 11:07:37,416 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:37,416 | DEBUG | ssa.py:193 | on stmt: i = $phi16.1\n", - "2023-05-15 11:07:37,416 | DEBUG | ssa.py:193 | on stmt: $24binary_subscr.5 = getitem(value=redarr, index=i, fn=)\n", - "2023-05-15 11:07:37,417 | DEBUG | ssa.py:193 | on stmt: $26inplace_add.6 = inplace_binop(fn=, immutable_fn=, lhs=c, rhs=$24binary_subscr.5, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:37,417 | DEBUG | ssa.py:193 | on stmt: c = $26inplace_add.6\n", - "2023-05-15 11:07:37,418 | DEBUG | ssa.py:193 | on stmt: jump 14\n", - "2023-05-15 11:07:37,418 | DEBUG | ssa.py:162 | ==== SSA block analysis pass on 32\n", - "2023-05-15 11:07:37,418 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:37,419 | DEBUG | ssa.py:193 | on stmt: $34return_value.1 = cast(value=c)\n", - "2023-05-15 11:07:37,419 | DEBUG | ssa.py:193 | on stmt: return $34return_value.1\n", - "2023-05-15 11:07:37,420 | DEBUG | ssa.py:154 | defs defaultdict(,\n", - " {'$10call_function.3': [],\n", - " '$12get_iter.4': [],\n", - " '$14for_iter.1': [],\n", - " '$14for_iter.2': [],\n", - " '$14for_iter.3': [],\n", - " '$24binary_subscr.5': [],\n", - " '$26inplace_add.6': [],\n", - " '$34return_value.1': [],\n", - " '$6load_global.1': [],\n", - " '$phi14.0': [],\n", - " '$phi16.1': [],\n", - " 'c': [,\n", - " ],\n", - " 'i': [],\n", - " 'init': [],\n", - " 'redarr': [],\n", - " 'thread_count': []})\n", - "2023-05-15 11:07:37,420 | DEBUG | ssa.py:156 | SSA violators {'c'}\n", - "2023-05-15 11:07:37,421 | DEBUG | ssa.py:63 | Fix SSA violator on var c\n", - "2023-05-15 11:07:37,422 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:37,422 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:37,422 | DEBUG | ssa.py:193 | on stmt: thread_count = arg(0, name=thread_count)\n", - "2023-05-15 11:07:37,423 | DEBUG | ssa.py:193 | on stmt: redarr = arg(1, name=redarr)\n", - "2023-05-15 11:07:37,423 | DEBUG | ssa.py:193 | on stmt: init = arg(2, name=init)\n", - "2023-05-15 11:07:37,424 | DEBUG | ssa.py:193 | on stmt: c = init\n", - "2023-05-15 11:07:37,424 | DEBUG | ssa.py:269 | first assign: c\n", - "2023-05-15 11:07:37,424 | DEBUG | ssa.py:199 | replaced with: c = init\n", - "2023-05-15 11:07:37,425 | DEBUG | ssa.py:193 | on stmt: $6load_global.1 = global(range: )\n", - "2023-05-15 11:07:37,425 | DEBUG | ssa.py:193 | on stmt: $10call_function.3 = call $6load_global.1(thread_count, func=$6load_global.1, args=[Var(thread_count, parfor_lowering.py:535)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:37,426 | DEBUG | ssa.py:193 | on stmt: $12get_iter.4 = getiter(value=$10call_function.3)\n", - "2023-05-15 11:07:37,427 | DEBUG | ssa.py:193 | on stmt: $phi14.0 = $12get_iter.4\n", - "2023-05-15 11:07:37,427 | DEBUG | ssa.py:193 | on stmt: jump 14\n", - "2023-05-15 11:07:37,427 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 14\n", - "2023-05-15 11:07:37,428 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:37,429 | DEBUG | ssa.py:193 | on stmt: $14for_iter.1 = iternext(value=$phi14.0)\n", - "2023-05-15 11:07:37,429 | DEBUG | ssa.py:193 | on stmt: $14for_iter.2 = pair_first(value=$14for_iter.1)\n", - "2023-05-15 11:07:37,429 | DEBUG | ssa.py:193 | on stmt: $14for_iter.3 = pair_second(value=$14for_iter.1)\n", - "2023-05-15 11:07:37,430 | DEBUG | ssa.py:193 | on stmt: $phi16.1 = $14for_iter.2\n", - "2023-05-15 11:07:37,430 | DEBUG | ssa.py:193 | on stmt: branch $14for_iter.3, 16, 32\n", - "2023-05-15 11:07:37,430 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 16\n", - "2023-05-15 11:07:37,431 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:37,431 | DEBUG | ssa.py:193 | on stmt: i = $phi16.1\n", - "2023-05-15 11:07:37,432 | DEBUG | ssa.py:193 | on stmt: $24binary_subscr.5 = getitem(value=redarr, index=i, fn=)\n", - "2023-05-15 11:07:37,432 | DEBUG | ssa.py:193 | on stmt: $26inplace_add.6 = inplace_binop(fn=, immutable_fn=, lhs=c, rhs=$24binary_subscr.5, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:37,432 | DEBUG | ssa.py:193 | on stmt: c = $26inplace_add.6\n", - "2023-05-15 11:07:37,433 | DEBUG | ssa.py:199 | replaced with: c.1 = $26inplace_add.6\n", - "2023-05-15 11:07:37,434 | DEBUG | ssa.py:193 | on stmt: jump 14\n", - "2023-05-15 11:07:37,434 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 32\n", - "2023-05-15 11:07:37,435 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:37,435 | DEBUG | ssa.py:193 | on stmt: $34return_value.1 = cast(value=c)\n", - "2023-05-15 11:07:37,435 | DEBUG | ssa.py:193 | on stmt: return $34return_value.1\n", - "2023-05-15 11:07:37,436 | DEBUG | ssa.py:69 | Replaced assignments: defaultdict(,\n", - " {0: [],\n", - " 16: []})\n", - "2023-05-15 11:07:37,437 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 0\n", - "2023-05-15 11:07:37,437 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:37,438 | DEBUG | ssa.py:193 | on stmt: thread_count = arg(0, name=thread_count)\n", - "2023-05-15 11:07:37,438 | DEBUG | ssa.py:193 | on stmt: redarr = arg(1, name=redarr)\n", - "2023-05-15 11:07:37,438 | DEBUG | ssa.py:193 | on stmt: init = arg(2, name=init)\n", - "2023-05-15 11:07:37,439 | DEBUG | ssa.py:193 | on stmt: c = init\n", - "2023-05-15 11:07:37,439 | DEBUG | ssa.py:193 | on stmt: $6load_global.1 = global(range: )\n", - "2023-05-15 11:07:37,440 | DEBUG | ssa.py:193 | on stmt: $10call_function.3 = call $6load_global.1(thread_count, func=$6load_global.1, args=[Var(thread_count, parfor_lowering.py:535)], kws=(), vararg=None, varkwarg=None, target=None)\n", - "2023-05-15 11:07:37,440 | DEBUG | ssa.py:193 | on stmt: $12get_iter.4 = getiter(value=$10call_function.3)\n", - "2023-05-15 11:07:37,441 | DEBUG | ssa.py:193 | on stmt: $phi14.0 = $12get_iter.4\n", - "2023-05-15 11:07:37,441 | DEBUG | ssa.py:193 | on stmt: jump 14\n", - "2023-05-15 11:07:37,441 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 14\n", - "2023-05-15 11:07:37,442 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:37,442 | DEBUG | ssa.py:193 | on stmt: $14for_iter.1 = iternext(value=$phi14.0)\n", - "2023-05-15 11:07:37,444 | DEBUG | ssa.py:193 | on stmt: $14for_iter.2 = pair_first(value=$14for_iter.1)\n", - "2023-05-15 11:07:37,444 | DEBUG | ssa.py:193 | on stmt: $14for_iter.3 = pair_second(value=$14for_iter.1)\n", - "2023-05-15 11:07:37,444 | DEBUG | ssa.py:193 | on stmt: $phi16.1 = $14for_iter.2\n", - "2023-05-15 11:07:37,445 | DEBUG | ssa.py:193 | on stmt: branch $14for_iter.3, 16, 32\n", - "2023-05-15 11:07:37,445 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 16\n", - "2023-05-15 11:07:37,445 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:37,446 | DEBUG | ssa.py:193 | on stmt: i = $phi16.1\n", - "2023-05-15 11:07:37,446 | DEBUG | ssa.py:193 | on stmt: $24binary_subscr.5 = getitem(value=redarr, index=i, fn=)\n", - "2023-05-15 11:07:37,447 | DEBUG | ssa.py:193 | on stmt: $26inplace_add.6 = inplace_binop(fn=, immutable_fn=, lhs=c, rhs=$24binary_subscr.5, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:37,447 | DEBUG | ssa.py:353 | find_def var='c' stmt=$26inplace_add.6 = inplace_binop(fn=, immutable_fn=, lhs=c, rhs=$24binary_subscr.5, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:37,448 | DEBUG | ssa.py:384 | find_def_from_top label 16\n", - "2023-05-15 11:07:37,448 | DEBUG | ssa.py:421 | idom 14 from label 16\n", - "2023-05-15 11:07:37,449 | DEBUG | ssa.py:427 | find_def_from_bottom label 14\n", - "2023-05-15 11:07:37,449 | DEBUG | ssa.py:384 | find_def_from_top label 14\n", - "2023-05-15 11:07:37,450 | DEBUG | ssa.py:401 | insert phi node c.2 = phi(incoming_values=[], incoming_blocks=[]) at 14\n", - "2023-05-15 11:07:37,450 | DEBUG | ssa.py:427 | find_def_from_bottom label 0\n", - "2023-05-15 11:07:37,451 | DEBUG | ssa.py:409 | incoming_def c = init\n", - "2023-05-15 11:07:37,451 | DEBUG | ssa.py:427 | find_def_from_bottom label 16\n", - "2023-05-15 11:07:37,452 | DEBUG | ssa.py:409 | incoming_def c.1 = $26inplace_add.6\n", - "2023-05-15 11:07:37,452 | DEBUG | ssa.py:199 | replaced with: $26inplace_add.6 = inplace_binop(fn=, immutable_fn=, lhs=c.2, rhs=$24binary_subscr.5, static_lhs=Undefined, static_rhs=Undefined)\n", - "2023-05-15 11:07:37,453 | DEBUG | ssa.py:193 | on stmt: c.1 = $26inplace_add.6\n", - "2023-05-15 11:07:37,453 | DEBUG | ssa.py:193 | on stmt: jump 14\n", - "2023-05-15 11:07:37,454 | DEBUG | ssa.py:170 | ==== SSA block rewrite pass on 32\n", - "2023-05-15 11:07:37,454 | DEBUG | ssa.py:191 | Running \n", - "2023-05-15 11:07:37,454 | DEBUG | ssa.py:193 | on stmt: $34return_value.1 = cast(value=c)\n", - "2023-05-15 11:07:37,455 | DEBUG | ssa.py:353 | find_def var='c' stmt=$34return_value.1 = cast(value=c)\n", - "2023-05-15 11:07:37,455 | DEBUG | ssa.py:384 | find_def_from_top label 32\n", - "2023-05-15 11:07:37,456 | DEBUG | ssa.py:421 | idom 14 from label 32\n", - "2023-05-15 11:07:37,456 | DEBUG | ssa.py:427 | find_def_from_bottom label 14\n", - "2023-05-15 11:07:37,457 | DEBUG | ssa.py:199 | replaced with: $34return_value.1 = cast(value=c.2)\n", - "2023-05-15 11:07:37,457 | DEBUG | ssa.py:193 | on stmt: return $34return_value.1\n", - "2023-05-15 11:07:38,546 | INFO | __init__.py:7 | superblockify version 0.1.0\n", - "2023-05-15 11:07:38,547 | DEBUG | base.py:740 | Loading graph from ./data/graphs/MissionTown.graphml\n", - "2023-05-15 11:07:38,606 | DEBUG | utils.py:200 | Removed 12 dead ends.\n", - "2023-05-15 11:07:38,625 | INFO | utils.py:153 | Highway counts (type, count, proportion): \n", + "2024-04-18 12:04:16,717 | INFO | utils.py:261 | Highway counts (type, count, proportion): \n", " count proportion\n", "highway \n", "residential 623 0.568431\n", @@ -16200,32 +929,26 @@ "living_street 18 0.016423\n", "tertiary_link 7 0.006387\n", "primary_link 4 0.003650\n", + "[unclassified, tertiary] 2 0.001825\n", "trunk 2 0.001825\n", - "[residential, unclassified] 2 0.001825\n", - "[tertiary, unclassified] 1 0.000912\n", - "[unclassified, tertiary] 1 0.000912\n", - "2023-05-15 11:07:38,628 | DEBUG | utils.py:159 | Dtype counts (type, count, proportion): \n", - " count proportion\n", - "highway \n", - " 1092 0.99635\n", - " 4 0.00365\n", - "2023-05-15 11:07:38,630 | INFO | base.py:164 | Initialized MissionTown_main(ResidentialPartitioner) with 457 nodes and 1096 edges.\n", - "2023-05-15 11:07:38,637 | DEBUG | streettype.py:53 | Found 455 edges that are not residential, find LCC of them.\n", - "2023-05-15 11:07:39,403 | DEBUG | base.py:483 | Making components from sparsified graph, rest graph has 222 nodes and 525 edges.\n", - "2023-05-15 11:07:39,543 | DEBUG | checks.py:45 | Checking if the sparsified graph of MissionTown_main is connected.\n", - "2023-05-15 11:07:39,553 | DEBUG | checks.py:55 | Checking if each subgraph of MissionTown_main is connected.\n", - "2023-05-15 11:07:39,556 | DEBUG | checks.py:61 | Checking if each node and edge of MissionTown_main is contained in exactly one subgraph and not the sparsified graph.\n", - "2023-05-15 11:07:39,599 | WARNING | checks.py:243 | MissionTown_main has 6 edges that are not contained in any subgraph or the sparsified graph: {(4268285422, 9507949402, 0), (9504655352, 10586624021, 0), (9507949402, 4268285422, 0), (10586624021, 9504655352, 0), (4978956294, 4978956293, 0), (4978956293, 4978956294, 0)}\n", - "2023-05-15 11:07:39,600 | DEBUG | checks.py:70 | Checking if each subgraph of MissionTown_main is connected to the sparsified graph.\n", - "2023-05-15 11:07:39,606 | DEBUG | checks.py:78 | Checking if representative nodes of MissionTown_main are contained in their subgraph.\n", - "2023-05-15 11:07:39,615 | ERROR | checks.py:88 | The partitioning MissionTown_main is not valid. See warnings for more information.\n", - "2023-05-15 11:07:39,676 | DEBUG | distances.py:121 | All-pairs shortest path lengths for graph with 469 nodes and 1120 edges calculated in 0:00:00.044670.\n" + "[unclassified, residential] 2 0.001825\n", + "2024-04-18 12:04:16,725 | INFO | utils.py:291 | Graph stats: \n", + " 0\n", + "Number of nodes 469\n", + "Number of edges 1120\n", + "Average degree 4.776119\n", + "Circuity average 1.098303\n", + "Street orientation order 0.357357\n", + "Date created 2024-04-18 11:57:25\n", + "Projection EPSG:32650\n", + "Area by OSM boundary (m²) 18634010.566506\n", + "2024-04-18 12:04:16,726 | INFO | base.py:186 | Initialized MissionTown_main(ResidentialPartitioner) with 457 nodes and 1096 edges.\n", + "2024-04-18 12:04:17,278 | INFO | checks.py:87 | The partitioning MissionTown_main is valid.\n" ] } ], "source": [ "from superblockify import ResidentialPartitioner\n", - "from superblockify.metrics.distances import calculate_path_distance_matrix\n", "from superblockify.config import Config\n", "\n", "CITY_NAME, SEARCH_STR = Config.PLACES_SMALL[1]\n", @@ -16236,21 +959,16 @@ "\n", "# Intended use usually only with `run` method\n", "# or `calculate_metrics_before` partitioning\n", - "node_list = part.get_sorted_node_list()\n", - "dist, pred = calculate_path_distance_matrix(\n", - " part.graph,\n", - " weight=\"travel_time\",\n", - " node_order=node_list,\n", - ")" + "node_list = part.get_sorted_node_list()" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 31, "metadata": { "ExecuteTime": { - "end_time": "2023-05-15T11:13:07.499850Z", - "start_time": "2023-05-15T11:12:56.167142Z" + "end_time": "2024-04-18T10:07:41.749617Z", + "start_time": "2024-04-18T10:07:11.229057Z" } }, "outputs": [ @@ -16258,125 +976,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "2023-05-15 11:12:56,283 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.102110 seconds.\n", - "2023-05-15 11:12:56,430 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.121145 seconds.\n", - "2023-05-15 11:12:56,567 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.111333 seconds.\n", - "2023-05-15 11:12:56,710 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.122078 seconds.\n", - "2023-05-15 11:12:56,875 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.130549 seconds.\n", - "2023-05-15 11:12:57,039 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.130407 seconds.\n", - "2023-05-15 11:12:57,204 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.134234 seconds.\n", - "2023-05-15 11:12:57,352 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.099811 seconds.\n", - "2023-05-15 11:12:57,494 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.117532 seconds.\n", - "2023-05-15 11:12:57,651 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.130763 seconds.\n", - "2023-05-15 11:12:57,736 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.070830 seconds.\n", - "2023-05-15 11:12:57,847 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.099276 seconds.\n", - "2023-05-15 11:12:57,994 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.122370 seconds.\n", - "2023-05-15 11:12:58,139 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.124217 seconds.\n", - "2023-05-15 11:12:58,291 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.122713 seconds.\n", - "2023-05-15 11:12:58,444 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.118427 seconds.\n", - "2023-05-15 11:12:58,616 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.140380 seconds.\n", - "2023-05-15 11:12:58,795 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.144563 seconds.\n", - "2023-05-15 11:12:58,930 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.107183 seconds.\n", - "2023-05-15 11:12:59,054 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.108006 seconds.\n", - "2023-05-15 11:12:59,196 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.117849 seconds.\n", - "2023-05-15 11:12:59,318 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.096108 seconds.\n", - "2023-05-15 11:12:59,478 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.133910 seconds.\n", - "2023-05-15 11:12:59,628 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.127741 seconds.\n", - "2023-05-15 11:12:59,770 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.113797 seconds.\n", - "2023-05-15 11:12:59,947 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.147383 seconds.\n", - "2023-05-15 11:13:00,107 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.127022 seconds.\n", - "2023-05-15 11:13:00,276 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.140204 seconds.\n", - "2023-05-15 11:13:00,412 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.101622 seconds.\n", - "2023-05-15 11:13:00,535 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.098697 seconds.\n", - "2023-05-15 11:13:00,685 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.123737 seconds.\n", - "2023-05-15 11:13:00,826 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.116338 seconds.\n", - "2023-05-15 11:13:00,950 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.095663 seconds.\n", - "2023-05-15 11:13:01,090 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.115775 seconds.\n", - "2023-05-15 11:13:01,228 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.115349 seconds.\n", - "2023-05-15 11:13:01,365 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.111601 seconds.\n", - "2023-05-15 11:13:01,515 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.121967 seconds.\n", - "2023-05-15 11:13:01,646 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.115410 seconds.\n", - "2023-05-15 11:13:01,788 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.106889 seconds.\n", - "2023-05-15 11:13:01,931 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.118684 seconds.\n", - "2023-05-15 11:13:02,062 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.114976 seconds.\n", - "2023-05-15 11:13:02,194 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.106078 seconds.\n", - "2023-05-15 11:13:02,337 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.124535 seconds.\n", - "2023-05-15 11:13:02,442 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.085658 seconds.\n", - "2023-05-15 11:13:02,566 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.102442 seconds.\n", - "2023-05-15 11:13:02,702 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.113390 seconds.\n", - "2023-05-15 11:13:02,822 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.097376 seconds.\n", - "2023-05-15 11:13:02,932 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.086738 seconds.\n", - "2023-05-15 11:13:03,053 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.103024 seconds.\n", - "2023-05-15 11:13:03,210 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.131179 seconds.\n", - "2023-05-15 11:13:03,358 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.121594 seconds.\n", - "2023-05-15 11:13:03,502 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.114996 seconds.\n", - "2023-05-15 11:13:03,619 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.093904 seconds.\n", - "2023-05-15 11:13:03,751 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.106461 seconds.\n", - "2023-05-15 11:13:03,886 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.109562 seconds.\n", - "2023-05-15 11:13:04,016 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.110856 seconds.\n", - "2023-05-15 11:13:04,160 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.117406 seconds.\n", - "2023-05-15 11:13:04,301 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.115527 seconds.\n", - "2023-05-15 11:13:04,417 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.092283 seconds.\n", - "2023-05-15 11:13:04,531 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.090341 seconds.\n", - "2023-05-15 11:13:04,636 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.087401 seconds.\n", - "2023-05-15 11:13:04,775 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.115144 seconds.\n", - "2023-05-15 11:13:04,885 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.091116 seconds.\n", - "2023-05-15 11:13:05,039 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.122186 seconds.\n", - "2023-05-15 11:13:05,191 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.113347 seconds.\n", - "2023-05-15 11:13:05,363 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.142061 seconds.\n", - "2023-05-15 11:13:05,498 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.109354 seconds.\n", - "2023-05-15 11:13:05,639 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.118612 seconds.\n", - "2023-05-15 11:13:05,775 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.110610 seconds.\n", - "2023-05-15 11:13:05,908 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.109304 seconds.\n", - "2023-05-15 11:13:06,058 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.124194 seconds.\n", - "2023-05-15 11:13:06,197 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.114788 seconds.\n", - "2023-05-15 11:13:06,330 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.110047 seconds.\n", - "2023-05-15 11:13:06,477 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.121550 seconds.\n", - "2023-05-15 11:13:06,630 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.114442 seconds.\n", - "2023-05-15 11:13:06,767 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.111633 seconds.\n", - "2023-05-15 11:13:06,922 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.114037 seconds.\n", - "2023-05-15 11:13:07,048 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.099858 seconds.\n", - "2023-05-15 11:13:07,160 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.088903 seconds.\n", - "2023-05-15 11:13:07,311 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.126207 seconds.\n", - "2023-05-15 11:13:07,435 | DEBUG | measures.py:396 | Calculated betweenness centrality in 0:00:00.094514 seconds.\n", - "139 ms ± 7.3 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n" + "162 ms ± 28.6 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", + "2.12 s ± 54.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ "from superblockify.metrics.measures import betweenness_centrality\n", - "%timeit betweenness_centrality(part.graph, node_list, dist, pred, weight=\"travel_time\")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "ExecuteTime": { - "end_time": "2023-05-15T11:10:28.479135Z", - "start_time": "2023-05-15T11:10:14.051153Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1.77 s ± 52.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" - ] - } - ], - "source": [ + "from superblockify.metrics.distances import calculate_path_distance_matrix\n", + "%timeit betweenness_centrality(part.graph, node_list, *calculate_path_distance_matrix(part.graph, weight = \"travel_time\", node_order = node_list), weight=\"travel_time\")\n", "%timeit nx.betweenness_centrality(part.graph, weight=\"travel_time\")" ] }, @@ -16384,6 +992,10 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "The code scales with the number of nodes and number of edges. As in real world cities\n", + "the edges do not scale with the number of nodes, the runtime is well bearable for\n", + "simplified graphs of metropolitan cities.\n", + "\n", "## Implementation\n", "\n", "(betweenness_centrality_impl)=\n", diff --git a/docs/202404016-getting_started.ipynb b/scripts/TestingNotebooks/202404016-getting_started.ipynb similarity index 100% rename from docs/202404016-getting_started.ipynb rename to scripts/TestingNotebooks/202404016-getting_started.ipynb