[pypy-svn] r66833 - pypy/branch/pyjitpl5-guardovf/pypy/jit/backend/llgraph
arigo at codespeak.net
arigo at codespeak.net
Fri Aug 14 18:49:59 CEST 2009
Author: arigo
Date: Fri Aug 14 18:49:59 2009
New Revision: 66833
Modified:
pypy/branch/pyjitpl5-guardovf/pypy/jit/backend/llgraph/llimpl.py
Log:
Improve the precision: complain if a guard_overflow is not preceeded
by a int_xxx_ovf.
Modified: pypy/branch/pyjitpl5-guardovf/pypy/jit/backend/llgraph/llimpl.py
==============================================================================
--- pypy/branch/pyjitpl5-guardovf/pypy/jit/backend/llgraph/llimpl.py (original)
+++ pypy/branch/pyjitpl5-guardovf/pypy/jit/backend/llgraph/llimpl.py Fri Aug 14 18:49:59 2009
@@ -574,15 +574,18 @@
def op_guard_no_overflow(self, _):
global _overflow_flag
- if _overflow_flag:
- _overflow_flag = False
+ flag = _overflow_flag
+ assert flag != 'unset'
+ _overflow_flag = 'unset'
+ if flag:
raise GuardFailed
def op_guard_overflow(self, _):
global _overflow_flag
- if _overflow_flag:
- _overflow_flag = False
- else:
+ flag = _overflow_flag
+ assert flag != 'unset'
+ _overflow_flag = 'unset'
+ if not flag:
raise GuardFailed
# ----------
@@ -916,9 +919,11 @@
def set_zero_division_error():
_set_error(ZeroDivisionError)
-_overflow_flag = False
+_overflow_flag = 'unset'
def get_overflow_flag():
+ if _overflow_flag == 'unset':
+ return False
return _overflow_flag
def set_overflow_flag(flag):
More information about the Pypy-commit
mailing list