def test_really_run(): """ This test checks whether output of jitprof did not change. It'll explode when someone touches jitprof.py """ mydriver = JitDriver(reds = ['i', 'n'], greens = []) def f(n): i = 0 while i < n: mydriver.can_enter_jit(i=i, n=n) mydriver.jit_merge_point(i=i, n=n) i += 1 cap = py.io.StdCaptureFD() try: ll_meta_interp(f, [10], CPUClass=runner.LLGraphCPU, ProfilerClass=Profiler) finally: out, err = cap.reset() log = parse_log(err.splitlines(True)) err_sections = list(extract_category(log, 'jit-summary')) [err1] = err_sections # there should be exactly one jit-summary assert err1.count("\n") == JITPROF_LINES info = parse_prof(err1) # assert did not crash # asserts below are a bit delicate, possibly they might be deleted assert info.tracing_no == 1 assert info.backend_no == 1 assert info.ops.total == 2 assert info.recorded_ops.total == 2 assert info.recorded_ops.calls == 0 assert info.guards == 2 assert info.opt_ops == 11 assert info.opt_guards == 2 assert info.forcings == 0
def test_really_run(): """ This test checks whether output of jitprof did not change. It'll explode when someone touches jitprof.py """ mydriver = JitDriver(reds = ['i', 'n'], greens = []) def f(n): i = 0 while i < n: mydriver.can_enter_jit(i=i, n=n) mydriver.jit_merge_point(i=i, n=n) i += 1 cap = py.io.StdCaptureFD() try: ll_meta_interp(f, [10], CPUClass=runner.LLGraphCPU, type_system='lltype', ProfilerClass=Profiler) finally: out, err = cap.reset() log = parse_log(err.splitlines(True)) err_sections = list(extract_category(log, 'jit-summary')) [err1] = err_sections # there should be exactly one jit-summary assert err1.count("\n") == JITPROF_LINES info = parse_prof(err1) # assert did not crash # asserts below are a bit delicate, possibly they might be deleted assert info.tracing_no == 1 assert info.backend_no == 1 assert info.ops.total == 2 assert info.recorded_ops.total == 2 assert info.recorded_ops.calls == 0 assert info.guards == 2 assert info.opt_ops == 13 assert info.opt_guards == 2 assert info.forcings == 0
def meta_interp(self, f, args, policy=None): return ll_meta_interp(f, args, enable_opts=self.enable_opts, policy=policy, CPUClass=self.CPUClass, type_system=self.type_system)
def meta_interp(self, f, args, policy=None, backendopt=False): return ll_meta_interp(f, args, enable_opts=self.enable_opts, policy=policy, CPUClass=self.CPUClass, backendopt=backendopt)
def meta_interp(self, f, args, policy=None, vec=True, vec_all=False): return ll_meta_interp(f, args, enable_opts=self.enable_opts, policy=policy, CPUClass=self.CPUClass, type_system=self.type_system, vec=vec, vec_all=vec_all)
def meta_interp(self, *args, **kwds): kwds['CPUClass'] = self.CPUClass kwds['type_system'] = self.type_system if "backendopt" not in kwds: kwds["backendopt"] = False old = codewriter.CodeWriter.debug try: codewriter.CodeWriter.debug = True return ll_meta_interp(*args, **kwds) finally: codewriter.CodeWriter.debug = old
def meta_interp(self, *args, **kwds): kwds["CPUClass"] = self.CPUClass kwds["type_system"] = self.type_system if "backendopt" not in kwds: kwds["backendopt"] = False old = codewriter.CodeWriter.debug try: codewriter.CodeWriter.debug = True return ll_meta_interp(*args, **kwds) finally: codewriter.CodeWriter.debug = old
def meta_interp(self, f, args, policy=None, vec=True, vec_all=False): return ll_meta_interp( f, args, enable_opts=self.enable_opts, policy=policy, CPUClass=self.CPUClass, type_system=self.type_system, vec=vec, vec_all=vec_all, )
def meta_interp(self, *args, **kwds): kwds['CPUClass'] = self.CPUClass if "backendopt" not in kwds: kwds["backendopt"] = False if "enable_opts" not in kwds and hasattr(self, 'enable_opts'): kwds['enable_opts'] = self.enable_opts old = codewriter.CodeWriter.debug try: codewriter.CodeWriter.debug = True return ll_meta_interp(*args, **kwds) finally: codewriter.CodeWriter.debug = old