Beispiel #1
0
 def f(n, m, p):
     while n > 0:
         myjitdriver.can_enter_jit(n=n, p=p, m=m)
         myjitdriver.jit_merge_point(n=n, p=p, m=m)
         assert p > -1
         assert p < 1
         n0 = n
         n -= jit.conditional_call_elidable(p, externfn, n0)
         n -= jit.conditional_call_elidable(p, externfn, n0)
     return n
Beispiel #2
0
 def f(n, m, p):
     while n > 0:
         myjitdriver.can_enter_jit(n=n, p=p, m=m)
         myjitdriver.jit_merge_point(n=n, p=p, m=m)
         assert p > -1
         assert p < 1
         n0 = n
         n -= jit.conditional_call_elidable(p, externfn, n0)
         n -= jit.conditional_call_elidable(p, externfn, n0)
     return n
Beispiel #3
0
 def f(n, m, p):
     while n > 0:
         myjitdriver.can_enter_jit(n=n, p=p, m=m)
         myjitdriver.jit_merge_point(n=n, p=p, m=m)
         p = jit.conditional_call_elidable(p, externfn, m)
         n -= p
     return n
Beispiel #4
0
 def main(n):
     if n == 10:
         l = []
     else:
         l = None
     l = jit.conditional_call_elidable(l, f, n)
     return len(l)
Beispiel #5
0
 def main(n):
     if n == 10:
         l = []
     else:
         l = None
     l = jit.conditional_call_elidable(l, f, n)
     return len(l)
Beispiel #6
0
 def f(n, m, p):
     while n > 0:
         myjitdriver.can_enter_jit(n=n, p=p, m=m)
         myjitdriver.jit_merge_point(n=n, p=p, m=m)
         p = jit.conditional_call_elidable(p, externfn, m)
         n -= p
     return n
Beispiel #7
0
 def size(self):
     sz = jit.conditional_call_elidable(self._exposed_size,
                                        calculate_exposed_size_for_big_int,
                                        self.value)
     if not jit.isconstant(self):
         self._exposed_size = sz
     return sz
Beispiel #8
0
 def size(self):
     sz = jit.conditional_call_elidable(
         self._exposed_size,
         calculate_exposed_size_for_big_int,
         self.value)
     if not jit.isconstant(self):
         self._exposed_size = sz
     return sz
Beispiel #9
0
 def f(n, m, p):
     while n > 0:
         myjitdriver.can_enter_jit(n=n, p=p, m=m)
         myjitdriver.jit_merge_point(n=n, p=p, m=m)
         if n > 6:    # will fail and finish in the blackhole
             pass
         if jit.we_are_jitted():   # manually inline here
             p = jit._jit_conditional_call_value(p, externfn, m)
         else:
             p = jit.conditional_call_elidable(p, externfn, m)
         n -= p
     return n
Beispiel #10
0
 def f(n, m, p):
     while n > 0:
         myjitdriver.can_enter_jit(n=n, p=p, m=m)
         myjitdriver.jit_merge_point(n=n, p=p, m=m)
         try:
             p = jit.conditional_call_elidable(p, externfn, n, m)
             p -= (n + m)   # => zero again
         except ValueError:
             m += 1000
         m += 1
         n -= 2
     return n * m
Beispiel #11
0
 def f(n, m, p):
     while n > 0:
         myjitdriver.can_enter_jit(n=n, p=p, m=m)
         myjitdriver.jit_merge_point(n=n, p=p, m=m)
         try:
             p = jit.conditional_call_elidable(p, externfn, n, m)
             p -= (n + m)  # => zero again
         except ValueError:
             m += 1000
         m += 1
         n -= 2
     return n * m
Beispiel #12
0
 def f(n, m, p):
     while n > 0:
         myjitdriver.can_enter_jit(n=n, p=p, m=m)
         myjitdriver.jit_merge_point(n=n, p=p, m=m)
         if n > 6:  # will fail and finish in the blackhole
             pass
         if jit.we_are_jitted():  # manually inline here
             p = jit._jit_conditional_call_value(p, externfn, m)
         else:
             p = jit.conditional_call_elidable(p, externfn, m)
         n -= p
     return n
Beispiel #13
0
 def text_w(self, space):
     try:
         identifier = jit.conditional_call_elidable(self._utf8,
                                                    g_encode_utf8,
                                                    self._value)
     except SurrogateError as e:
         raise OperationError(
             space.w_UnicodeEncodeError,
             space.newtuple([
                 space.newtext('utf-8'), self,
                 space.newint(e.index - 1),
                 space.newint(e.index),
                 space.newtext("surrogates not allowed")
             ]))
     if not jit.isconstant(self):
         self._utf8 = identifier
     return identifier
Beispiel #14
0
 def main(n):
     # this is completely constant-folded because the arguments
     # to f() are constants.
     return jit.conditional_call_elidable(n, f, 40, 2)
Beispiel #15
0
 def f(n, x, y):
     return conditional_call_elidable(n, g, x, y)
Beispiel #16
0
 def main(n, m):
     return jit.conditional_call_elidable(n, f, m)
Beispiel #17
0
 def main(n, m):
     return jit.conditional_call_elidable(n, f, m)
Beispiel #18
0
 def main(n):
     # this is completely constant-folded because the arguments
     # to f() are constants.
     return jit.conditional_call_elidable(n, f, 40, 2)
Beispiel #19
0
 def getclass(self, space):
     return jit.conditional_call_elidable(self.w_class, _initialize_w_class,
                                          self)
Beispiel #20
0
 def ll_strhash(s):
     if s:
         return jit.conditional_call_elidable(s.hash,
                                              LLHelpers._ll_strhash, s)
     else:
         return 0
Beispiel #21
0
 def f(x, n):
     y = conditional_call_elidable(x, g, n)
     return y  # now, y is known to be non-null, even if x can be
Beispiel #22
0
 def get_triple(self):
     res = jit.conditional_call_elidable(self.triple,
                                         _compute_triple,
                                         self.value)
     self.triple = res
     return res
Beispiel #23
0
 def getclass(self, space):
     return jit.conditional_call_elidable(
         self.w_class, _initialize_w_class, self)
Beispiel #24
0
 def get_triple(self):
     return jit.conditional_call_elidable(self.triple,
                                          X._compute_triple, self)
Beispiel #25
0
 def f(x, n):
     y = conditional_call_elidable(x, g, n)
     return y     # now, y is known to be non-null, even if x can be
Beispiel #26
0
 def get_triple(self):
     return jit.conditional_call_elidable(self.triple,
                                       X._compute_triple, self)
Beispiel #27
0
 def f(n, x, y):
     return conditional_call_elidable(n, g, x, y)
Beispiel #28
0
 def get_triple(self):
     res = jit.conditional_call_elidable(self.triple,
                                         _compute_triple, self.value)
     self.triple = res
     return res
Beispiel #29
0
 def ll_strhash(s):
     if s:
         return jit.conditional_call_elidable(s.hash, LLHelpers._ll_strhash,
                                              s)
     else:
         return 0
Beispiel #30
0
 def gethash(self):
     return jit.conditional_call_elidable(self.hash, calculate_and_cache, self)