I requested the MSVC team to reconsider the inlining issues, including __forceinline.
https://developercommunity.visualstudio.com/t/1595341
The stuck at link due to __forceinline can be avoided by completing the _Py_DECREF optimization outside _PyEval_EvalFrameDefault:
static inline void // no __forceinline
_Py_DECREF_impl(...) {
...
}
static __forceinline void
_Py_DECREF(...) { // no conditional branch in the function
_Py_DECREF_impl(...);
}
In _PyEval_EvalFrameDefault, wrapping the callees like above seems better for performance than just specifying __forceinline under the current MSVC.