def emit_operation(self, op): self.emitting_operation(op) if self.posponedop: posponedop = self.posponedop self.posponedop = None self.next_optimization.propagate_forward(posponedop) if op.is_comparison() or op.getopnum() == rop.CALL_MAY_FORCE or op.is_ovf(): self.posponedop = op else: Optimization.emit_operation(self, op)
def emit_operation(self, op): self.emitting_operation(op) if self.posponedop: posponedop = self.posponedop self.posponedop = None self.next_optimization.propagate_forward(posponedop) if (op.is_comparison() or op.getopnum() == rop.CALL_MAY_FORCE or op.is_ovf()): self.posponedop = op else: Optimization.emit_operation(self, op)
def propagate_end_forward(self): debug_stop('jit-log-ffiopt') Optimization.propagate_end_forward(self)
def propagate_begin_forward(self): debug_start('jit-log-ffiopt') Optimization.propagate_begin_forward(self)
def emit_operation(self, op): # we cannot emit any operation during the optimization self.rollback_maybe('invalid op', op) Optimization.emit_operation(self, op)