mirror of https://github.com/python/cpython
Add more FOR_ITER specialization stats (GH-32151)
This commit is contained in:
parent
9331087966
commit
c5d0517ea4
|
@ -477,6 +477,12 @@ miss_counter_start(void) {
|
|||
#define SPEC_FAIL_FOR_ITER_DICT_ITEMS 21
|
||||
#define SPEC_FAIL_FOR_ITER_DICT_VALUES 22
|
||||
#define SPEC_FAIL_FOR_ITER_ENUMERATE 23
|
||||
#define SPEC_FAIL_FOR_ITER_MAP 24
|
||||
#define SPEC_FAIL_FOR_ITER_ZIP 25
|
||||
#define SPEC_FAIL_FOR_ITER_SEQ_ITER 26
|
||||
#define SPEC_FAIL_FOR_ITER_REVERSED_LIST 27
|
||||
#define SPEC_FAIL_FOR_ITER_CALLABLE 28
|
||||
#define SPEC_FAIL_FOR_ITER_ASCII_STRING 29
|
||||
|
||||
// UNPACK_SEQUENCE
|
||||
|
||||
|
@ -2051,10 +2057,28 @@ int
|
|||
if (t == &PyEnum_Type) {
|
||||
return SPEC_FAIL_FOR_ITER_ENUMERATE;
|
||||
}
|
||||
|
||||
if (strncmp(t->tp_name, "itertools", 8) == 0) {
|
||||
if (t == &PyMap_Type) {
|
||||
return SPEC_FAIL_FOR_ITER_MAP;
|
||||
}
|
||||
if (t == &PyZip_Type) {
|
||||
return SPEC_FAIL_FOR_ITER_ZIP;
|
||||
}
|
||||
if (t == &PySeqIter_Type) {
|
||||
return SPEC_FAIL_FOR_ITER_SEQ_ITER;
|
||||
}
|
||||
if (t == &PyListRevIter_Type) {
|
||||
return SPEC_FAIL_FOR_ITER_REVERSED_LIST;
|
||||
}
|
||||
if (t == &_PyUnicodeASCIIIter_Type) {
|
||||
return SPEC_FAIL_FOR_ITER_ASCII_STRING;
|
||||
}
|
||||
const char *name = t->tp_name;
|
||||
if (strncmp(name, "itertools", 9) == 0) {
|
||||
return SPEC_FAIL_FOR_ITER_ITERTOOLS;
|
||||
}
|
||||
if (strncmp(name, "callable_iterator", 17) == 0) {
|
||||
return SPEC_FAIL_FOR_ITER_CALLABLE;
|
||||
}
|
||||
return SPEC_FAIL_OTHER;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue