Uh oh!
There was an error while loading. Please reload this page.
gh-131798: JIT: Assign type to sliced string/list/tuple - #134671
Conversation
| // Slicing a string/list/tuple always returns the same type. | ||
| PyTypeObject *type = sym_get_type(container); | ||
| if (type == &PyUnicode_Type || | ||
| type == &PyList_Type || |
There was a problem hiding this comment.
| type==&PyList_Type|| | |
| type==&PyBytes_Type|| | |
| type==&PyList_Type|| |
I do not know whether slicing a bytes object occurs often enough to add PyBytes_Type here (and whether the jit slows down if we add more cases here), but if I understand correctly slicing bytes (or bytearray) results in a bytes (or bytearray) so we could add them.
There was a problem hiding this comment.
@fluhus, this PR is probably fine for now, but feel free to add other sequence types like this in a follow-up PR (with tests)!
brandtbucher
left a comment
There was a problem hiding this comment.
Looks great, just one style nitpick:
| for i in range(n): | ||
| false = i == TIER2_THRESHOLD | ||
| empty = "X"[:false] | ||
| empty += "" # Make JIT realize this is a string. |
Uh oh!
There was an error while loading. Please reload this page.
| // Slicing a string/list/tuple always returns the same type. | ||
| PyTypeObject *type = sym_get_type(container); | ||
| if (type == &PyUnicode_Type || | ||
| type == &PyList_Type || |
There was a problem hiding this comment.
@fluhus, this PR is probably fine for now, but feel free to add other sequence types like this in a follow-up PR (with tests)!
Uh oh!
There was an error while loading. Please reload this page.
Slicing a string/list/tuple always returns the same type.
Make the optimizer assign a string/list/tuple type to the result of slicing a string/list/tuple.
@brandtbucher