You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
calling convention between the small C functions that implement individual Python opcodes.
529
+
530
+
Not all compilers support these and if they do not all targets might be supported (for example,
531
+
MSVC currently only supports x64 and only in optimized builds).
532
+
533
+
In addition, compilers must do [escape analysis](https://gcc.gnu.org/onlinedocs/gcc/Common-Attributes.html#index-musttail)
534
+
of the lifetimes of automatic variables, function parameters, and temporaries to ensure proper tail-calls. They
535
+
emit a compile error in case of a violation or detection failure. The ability to detect this varies depending on the compiler and
536
+
also on the optimization level. [Introducing additional scopes](https://github.com/python/cpython/blob/3908593039bde9d4b591ab09919003ee57418d64/Python/bytecodes.c#L2526)
537
+
or [returning a pointer instead of taking it as an output parameter](https://github.com/python/cpython/blob/3908593039bde9d4b591ab09919003ee57418d64/Include/internal/pycore_ceval.h#L489-L492)
538
+
is particularly helpful to the MSVC compiler in this regard.
0 commit comments