Skip to content

Commit f35d39b

Browse files
committed
Rename int64 guard helper and drop simple benchmark
1 parent 39ae2f2 commit f35d39b

9 files changed

Lines changed: 47 additions & 186 deletions

File tree

Include/internal/pycore_long.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ _PyLong_CheckExactAndCompact(PyObject *op)
360360
#define _PY_LONG_MAX_DIGITS_FOR_INT64 ((64 + PyLong_SHIFT - 1) / PyLong_SHIFT)
361361

362362
static inline int
363-
_PyLong_MightFitInt64(const PyLongObject *v)
363+
_PyLong_FitsInt64(const PyLongObject *v)
364364
{
365365
uintptr_t tag = v->long_value.lv_tag;
366366
if (tag < (2 << NON_SIZE_BITS)) {
@@ -396,10 +396,10 @@ _PyLong_MightFitInt64(const PyLongObject *v)
396396
}
397397

398398
static inline int
399-
_PyLong_CheckExactAndMightFitInt64(PyObject *op)
399+
_PyLong_CheckExactAndFitsInt64(PyObject *op)
400400
{
401401
return PyLong_CheckExact(op) &&
402-
_PyLong_MightFitInt64((const PyLongObject *)op);
402+
_PyLong_FitsInt64((const PyLongObject *)op);
403403
}
404404

405405
/* Extract an exact int to int64_t without raising.

Modules/_testinternalcapi/test_cases.c.h

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python/bytecodes.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -648,25 +648,25 @@ dummy_func(
648648
/* Wide guards: accept exact ints in the full int64 range. */
649649
op(_GUARD_NOS_INT_WIDE, (left, unused -- left, unused)) {
650650
PyObject *left_o = PyStackRef_AsPyObjectBorrow(left);
651-
EXIT_IF(!_PyLong_CheckExactAndMightFitInt64(left_o));
651+
EXIT_IF(!_PyLong_CheckExactAndFitsInt64(left_o));
652652
}
653653

654654
op(_GUARD_TOS_INT_WIDE, (value -- value)) {
655655
PyObject *value_o = PyStackRef_AsPyObjectBorrow(value);
656-
EXIT_IF(!_PyLong_CheckExactAndMightFitInt64(value_o));
656+
EXIT_IF(!_PyLong_CheckExactAndFitsInt64(value_o));
657657
}
658658

659659
op(_GUARD_NOS_OVERFLOWED, (left, unused -- left, unused)) {
660660
PyObject *left_o = PyStackRef_AsPyObjectBorrow(left);
661661
assert(Py_TYPE(left_o) == &PyLong_Type);
662-
int ok = _PyLong_MightFitInt64((PyLongObject *)left_o);
662+
int ok = _PyLong_FitsInt64((PyLongObject *)left_o);
663663
EXIT_IF(!ok);
664664
}
665665

666666
op(_GUARD_TOS_OVERFLOWED, (value -- value)) {
667667
PyObject *value_o = PyStackRef_AsPyObjectBorrow(value);
668668
assert(Py_TYPE(value_o) == &PyLong_Type);
669-
int ok = _PyLong_MightFitInt64((PyLongObject *)value_o);
669+
int ok = _PyLong_FitsInt64((PyLongObject *)value_o);
670670
EXIT_IF(!ok);
671671
}
672672

Python/executor_cases.c.h

Lines changed: 16 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python/generated_cases.c.h

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python/optimizer_symbols.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ _Py_uop_sym_is_safe_const(JitOptContext *ctx, JitOptRef sym)
272272
if (const_val == NULL) {
273273
return false;
274274
}
275-
if (_PyLong_CheckExactAndMightFitInt64(const_val)) {
275+
if (_PyLong_CheckExactAndFitsInt64(const_val)) {
276276
return true;
277277
}
278278
PyTypeObject *typ = Py_TYPE(const_val);
@@ -566,7 +566,7 @@ _Py_uop_sym_set_const(JitOptContext *ctx, JitOptRef ref, PyObject *const_val)
566566
make_const(sym, const_val);
567567
return;
568568
case JIT_SYM_COMPACT_INT:
569-
if (_PyLong_CheckExactAndMightFitInt64(const_val)) {
569+
if (_PyLong_CheckExactAndFitsInt64(const_val)) {
570570
make_const(sym, const_val);
571571
}
572572
else {
@@ -970,7 +970,7 @@ _Py_uop_sym_is_compact_int(JitOptRef ref)
970970
{
971971
JitOptSymbol *sym = PyJitRef_Unwrap(ref);
972972
if (sym->tag == JIT_SYM_KNOWN_VALUE_TAG) {
973-
return (bool)_PyLong_CheckExactAndMightFitInt64(sym->value.value);
973+
return (bool)_PyLong_CheckExactAndFitsInt64(sym->value.value);
974974
}
975975
return sym->tag == JIT_SYM_COMPACT_INT;
976976
}
@@ -1008,7 +1008,7 @@ _Py_uop_sym_set_compact_int(JitOptContext *ctx, JitOptRef ref)
10081008
}
10091009
return;
10101010
case JIT_SYM_KNOWN_VALUE_TAG:
1011-
if (!_PyLong_CheckExactAndMightFitInt64(sym->value.value)) {
1011+
if (!_PyLong_CheckExactAndFitsInt64(sym->value.value)) {
10121012
Py_CLEAR(sym->value.value);
10131013
sym_set_bottom(ctx, sym);
10141014
}

Python/specialize.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2354,8 +2354,8 @@ _Py_Specialize_BinaryOp(_PyStackRef lhs_st, _PyStackRef rhs_st, _Py_CODEUNIT *in
23542354
specialize(instr, BINARY_OP_ADD_INT);
23552355
return;
23562356
}
2357-
if (_PyLong_CheckExactAndMightFitInt64(lhs) &&
2358-
_PyLong_CheckExactAndMightFitInt64(rhs))
2357+
if (_PyLong_CheckExactAndFitsInt64(lhs) &&
2358+
_PyLong_CheckExactAndFitsInt64(rhs))
23592359
{
23602360
specialize(instr, BINARY_OP_ADD_INT_WIDE);
23612361
return;
@@ -2374,8 +2374,8 @@ _Py_Specialize_BinaryOp(_PyStackRef lhs_st, _PyStackRef rhs_st, _Py_CODEUNIT *in
23742374
specialize(instr, BINARY_OP_MULTIPLY_INT);
23752375
return;
23762376
}
2377-
if (_PyLong_CheckExactAndMightFitInt64(lhs) &&
2378-
_PyLong_CheckExactAndMightFitInt64(rhs))
2377+
if (_PyLong_CheckExactAndFitsInt64(lhs) &&
2378+
_PyLong_CheckExactAndFitsInt64(rhs))
23792379
{
23802380
specialize(instr, BINARY_OP_MULTIPLY_INT_WIDE);
23812381
return;
@@ -2394,8 +2394,8 @@ _Py_Specialize_BinaryOp(_PyStackRef lhs_st, _PyStackRef rhs_st, _Py_CODEUNIT *in
23942394
specialize(instr, BINARY_OP_SUBTRACT_INT);
23952395
return;
23962396
}
2397-
if (_PyLong_CheckExactAndMightFitInt64(lhs) &&
2398-
_PyLong_CheckExactAndMightFitInt64(rhs))
2397+
if (_PyLong_CheckExactAndFitsInt64(lhs) &&
2398+
_PyLong_CheckExactAndFitsInt64(rhs))
23992399
{
24002400
specialize(instr, BINARY_OP_SUBTRACT_INT_WIDE);
24012401
return;

Tools/cases_generator/analyzer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -721,8 +721,8 @@ def has_error_without_pop(op: parser.CodeDef) -> bool:
721721
"PyStackRef_Wrap",
722722
"PyStackRef_Unwrap",
723723
"_PyLong_CheckExactAndCompact",
724-
"_PyLong_CheckExactAndMightFitInt64",
725-
"_PyLong_MightFitInt64",
724+
"_PyLong_CheckExactAndFitsInt64",
725+
"_PyLong_FitsInt64",
726726
"_PyExecutor_FromExit",
727727
"_PyJit_TryInitializeTracing",
728728
"_Py_unset_eval_breaker_bit",

0 commit comments

Comments
 (0)