JIT: Allow initializing blocks without jump targets#93928
JIT: Allow initializing blocks without jump targets#93928amanasifkhalid merged 1 commit intodotnet:mainfrom
Conversation
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue Details...and remove
|
|
CC @dotnet/jit-contrib, @AndyAyersMS @jakobbotsch PTAL. I decided to implement Jakob's suggestion of not doing checks during block initialization, and instead performing them when reading/writing the block's jump target. To do this, I had to refactor |
|
Failure looks like #48798 |
|
Looks ok to me, but I'll let @jakobbotsch approve if he's ok with this. |
jakobbotsch
left a comment
There was a problem hiding this comment.
LGTM. Nit: now that the function is part of BasicBlock you might consider just naming it BasicBlock::New or something of the sort (and if you decide to do that, feel free to do it in a follow-up to avoid rerunning CI again)
I'll include the rename in the next PR. Thanks! |
...and remove BasicBlock::bbTempJumpDest, per discussion in dotnet#93415. We still assert the jump target is set appropriately whenever it is read/written, and in the majority of cases, we still initialize blocks with their jump kind and target set simultaneously. This change improves usability for the few edge cases (like in Compiler::impImportLeave) where a block's jump target isn't known at initialization.
...and remove
BasicBlock::bbTempJumpDest, per discussion here in #93415. We still assert the jump target is set appropriately whenever it is read/written, and in the majority of cases, we still initialize blocks with their jump kind and target set simultaneously. This change improves usability for the few edge cases (like inCompiler::impImportLeave) where a block's jump target isn't known at initialization.