if _forcelink is not None:
linkargs = list(_forcelink)
+ # 'v' was not specified by _forcelink, but we found out that
+ # we need it! Hack: if it is 'concretetype is lltype.Void'
+ # then it's ok to recreate its value in the target block.
+ # If not, then we have a problem :-)
+ from pypy.rpython.lltypesystem import lltype
+ assert v.concretetype is lltype.Void
+ c = Constant(None, lltype.Void)
+ newop = SpaceOperation('same_as', [c], w)
+ while i < len(moved_operations):
+ if w in moved_operations[i].args:
+ moved_operations.insert(i, newop)
newblock = Block([get_new_name(v) for v in linkargs])