Uh oh!
There was an error while loading. Please reload this page.
JIT: don't import IL for partial compilation blocks - #61572
Conversation
Adjust partial comp not to import IL instead of importing it and then deleting the IR. Saves some time and also sometimes a bit of stack space as we won't create as many temps. Update both PC and OSR to check for blocks in handlers early, rather than pretending to support these and then backing out later.
ghost
commented
Nov 14, 2021
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsAdjust partial comp not to import IL instead of importing it and then Update both PC and OSR to check for blocks in handlers early, rather
|
AndyAyersMS
commented
Nov 14, 2021
cc @dotnet/jit-contrib Improves "savings" from partial compilation at Tier0 by about 0.3% (pmi, fx). Total savings is around 4%. Still thinking about ways to use partial comp more aggressively/effectively to reduce Tier0 jit time and code size. Static PGO seems appealing as a guiding criteria, but we only have static PGO for methods that have R2R instances and those won't go through Tier0 (and if R2R is disabled the PGO bundles aren't considered either). So may need to look elsewhere. |
AndyAyersMS
commented
Nov 14, 2021
/azp run runtime-jit-experimental |
|
Azure Pipelines successfully started running 1 pipeline(s). |
AndyAyersMS
commented
Nov 15, 2021
Looks like all the partial comp tests with localloc are failing -- likely I'm missing a safety check. |
…n setting patchpoints and then backing out.
AndyAyersMS
commented
Nov 15, 2021
/azp run runtime-jit-experimental |
|
Azure Pipelines successfully started running 1 pipeline(s). |
AndyAyersMS
commented
Nov 16, 2021
Localloc issues are handled now, but still seeing problems with some generic EH tests. |
AndyAyersMS
commented
Nov 16, 2021
/azp run runtime-jit-experimental |
|
Azure Pipelines successfully started running 1 pipeline(s). |
AndyAyersMS
commented
Nov 16, 2021
Experimental CI failures back down to the expected set. @dotnet/jit-contrib PTAL. |
AndyAyersMS
commented
Nov 16, 2021
@dotnet/jit-contrib Anybody up for a review here? It should be quick. I have other changes that build on this one.... |
| block->bbFlags |= BBF_PARTIAL_COMPILATION_PATCHPOINT; | ||
| setMethodHasPartialCompilationPatchpoint(); | ||
| // Change block to BBJ_THROW so we won't trigger importation of sucessors. |
There was a problem hiding this comment.
typo:
| // Change block to BBJ_THROW so we won't trigger importation of sucessors. | |
| // Change block to BBJ_THROW so we won't trigger importation of successors. |
There was a problem hiding this comment.
Thanks, will fix in my next PR.
Adjust partial comp not to import IL instead of importing it and then
deleting the IR. Saves some time and also sometimes a bit of stack
space as we won't create as many temps.
Update both PC and OSR to check for blocks in handlers early, rather
than pretending to support these and then backing out later.