Author: Armin Rigo <[email protected]>
Branch: shadowstack-perf-2
Changeset: r90540:6f2c12b6a329
Date: 2017-03-04 18:37 +0100
http://bitbucket.org/pypy/pypy/changeset/6f2c12b6a329/
Log: Do insert_empty_startblock() earlier to avoid mutating the graph at
an unexpected point (and also, do it only if needed)
diff --git a/rpython/memory/gctransform/shadowcolor.py
b/rpython/memory/gctransform/shadowcolor.py
--- a/rpython/memory/gctransform/shadowcolor.py
+++ b/rpython/memory/gctransform/shadowcolor.py
@@ -20,6 +20,10 @@
of the 'pending_pred', which is a list of (block, var) tuples.
"""
entrymap = mkentrymap(graph)
+ if len(entrymap[graph.startblock]) != 1:
+ insert_empty_startblock(graph)
+ entrymap = mkentrymap(graph)
+
pred = set([v for block, v in pending_pred])
def add(block, v):
@@ -233,8 +237,9 @@
if not regalloc:
return
- insert_empty_startblock(graph)
entrymap = mkentrymap(graph)
+ assert len(entrymap[graph.startblock]) == 1
+
inputvars = {} # {inputvar: (its block, its index in inputargs)}
for block in graph.iterblocks():
for i, v in enumerate(block.inputargs):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit