GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — Hot-cold splitting in the cases generator and JIT optimizer. · Issue #150712 · python/cpython Open Labels 3.16new features, bugs and security fixesnew features, bugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)performancePerformance or resource usagePerformance or resource usagetopic-JIT Description#143158 describes hot-cold splitting in the JIT, but that is too late for optimizations that sink code onto exits. To support those optimizations, we need to split uops as defined into bytecodes.c into "hot" and "cold" ops. From #143158 (comment) For example, we want to transform this: op (_GUARD_IS_NONE_POP, (val -- )) { int is_none = PyStackRef_IsNone(val); if (!is_none) { PyStackRef_CLOSE(val); AT_END_EXIT_IF(1); } DEAD(val); } into this: Currently, during lowering of the uop trace to a form suitable for execution we need to insert an While it is appealing to do this automatically, it might make more sense to do the splitting manually, and add support for custom exits to the tooling. We could mark Likewise, tier2 op(_ITER_NEXT_INLINE, (iternext_fn/4, iter, null_or_index -- iter, null_or_index, next)) { assert(sizeof(iternextfunc) == sizeof(uintptr_t)); volatile iternextfunc iternext_v = (iternextfunc)iternext_fn; PyObject *item = iternext_v(PyStackRef_AsPyObjectBorrow(iter)); if (item == NULL) { EXIT_TO(_ITER_NEXT_INLINE_EXIT); } STAT_INC(FOR_ITER, hit); next = PyStackRef_FromPyObjectSteal(item); } exit op(_ITER_NEXT_INLINE_EXIT, ( -- )) { if (_PyErr_Occurred(tstate)) { if (_PyErr_ExceptionMatches(tstate, PyExc_StopIteration)) { _PyEval_MonitorRaise(tstate, frame, frame->instr_ptr); _PyErr_Clear(tstate); } else { ERROR_NO_POP(); } } } Activity
MetadataMetadataAssigneesLabels3.16new features, bugs and security fixesnew features, bugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)performancePerformance or resource usagePerformance or resource usagetopic-JIT ProjectsMilestoneRelationshipsDevelopmentIssue actions |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |