runtime: JIT: follow-up on importer tail recursion block loop marking
Follow-up from #33517 (comment)
- Further reduce cases where we mark blocks with
BBF_BACKWARD_JUMP– screen out tail recursive calls that cannot become loops. - Verify we’re not creating latent bugs in already imported block codegen by setting
BBF_BACKWARD_JUMPwhile importing.
category:cq theme:importer skill-level:intermediate cost:medium
About this issue
- Original URL
- State: open
- Created 4 years ago
- Comments: 16 (16 by maintainers)
Commits related to this issue
- JIT: add suppressed zero inits if we transform tail recursive call to jump Track whether the jit has suppressed in-body zero initialization for any locals because at the time it appeared prolog initi... — committed to AndyAyersMS/runtime by AndyAyersMS 4 years ago
- JIT: add suppressed zero inits if we transform tail recursive call to… (#35148) Track whether the jit has suppressed in-body zero initialization for any locals because at the time it appeared prolog... — committed to dotnet/runtime by AndyAyersMS 4 years ago
Here’s a prototype for a test case. Compile, disassemble, modify
S.ctorto carry out the commented bit, reassemble:We omit initializing the temp passed to construct
sinFand so we’re able to observe the residual value that is there from the prior iteration: