Esempio n. 1
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,
                       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
Esempio n. 2
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
Esempio n. 3
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)
Esempio n. 4
0
 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)
Esempio n. 6
0
 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
Esempio n. 7
0
 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
Esempio n. 8
0
 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,
     )
Esempio n. 9
0
 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
Esempio n. 10
0
 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
Esempio n. 11
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)
Esempio n. 12
0
 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)