def test_llinterp_complete(): for opname, llop in LL_OPERATIONS.items(): if llop.canrun: continue assert opname in LL_INTERP_OPERATIONS
def test_canfold_opimpl_complete(): for opname, llop in LL_OPERATIONS.items(): assert opname == llop.opname if llop.canfold: func = opimpl.get_op_impl(opname) assert callable(func)
return 'RPY_REVDB_CALL_VOID(%s);' % (call_code,) return 'RPY_REVDB_CALL(%s, %s, %s);' % (call_code, cdecl(tp, '_e'), expr_result) def record_malloc_uid(expr): return ' RPY_REVDB_REC_UID(%s);' % (expr,) def boehm_register_finalizer(funcgen, op): return 'rpy_reverse_db_register_destructor(%s, %s);' % ( funcgen.expr(op.args[0]), funcgen.expr(op.args[1])) def cast_gcptr_to_int(funcgen, op): return '%s = RPY_REVDB_CAST_PTR_TO_INT(%s);' % ( funcgen.expr(op.result), funcgen.expr(op.args[0])) set_revdb_protected = set(opname for opname, opdesc in LL_OPERATIONS.items() if opdesc.revdb_protect) def prepare_database(db): FUNCPTR = lltype.Ptr(lltype.FuncType([revdb._CMDPTR, lltype.Ptr(rstr.STR)], lltype.Void)) ALLOCFUNCPTR = lltype.Ptr(lltype.FuncType([rffi.LONGLONG, llmemory.GCREF], lltype.Void)) bk = db.translator.annotator.bookkeeper cmds = getattr(db.translator, 'revdb_commands', {}) numcmds = [(num, func) for (num, func) in cmds.items() if isinstance(num, int)] S = lltype.Struct('RPY_REVDB_COMMANDS',