#NEWLINE# def request_outgoing( self , outgoing_block , phiname , stack_index ) : #NEWLINE# #INDENT# '\n        Request the assignment of the next available stack variable\n        for block *outgoing_block* with target name *phiname*.\n        ' #NEWLINE# if ( phiname in stack_index . outgoing_phis ) : #NEWLINE# #INDENT# return #NEWLINE# #UNINDENT# if ( stack_index < self . stack_offset ) : #NEWLINE# #INDENT# assert self . incoming_blocks #NEWLINE# for ib in self . incoming_blocks : #NEWLINE# #INDENT# ib . request_outgoing ( self , phiname , stack_index ) #NEWLINE# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# varname = self . stack [ ( stack_index - self . stack_offset ) ] #NEWLINE# self . outgoing_phis [ phiname ] = varname