Currently, the JIT will retry compilation without optimizations enabled in the presence of certain failure cases, listed here:
|
(result == CORJIT_INTERNALERROR || result == CORJIT_RECOVERABLEERROR || result == CORJIT_IMPLLIMITATION || |
Experience in developing the Wasm backend has shown that if some of these known errors are thrown too late in compilation (e.g., after codegen), then there can be bugs around persistent state from the previous compilation when we retry. We should consider changing the approach to compilation retry in these cases to be the responsibility of the host, so that the host can re-trigger a fresh compilation to avoid any issues with stale state from the previous one.
Currently, the JIT will retry compilation without optimizations enabled in the presence of certain failure cases, listed here:
runtime/src/coreclr/jit/compiler.cpp
Line 7735 in cd0e7b9
Experience in developing the Wasm backend has shown that if some of these known errors are thrown too late in compilation (e.g., after codegen), then there can be bugs around persistent state from the previous compilation when we retry. We should consider changing the approach to compilation retry in these cases to be the responsibility of the host, so that the host can re-trigger a fresh compilation to avoid any issues with stale state from the previous one.