JIT: postorder local assertion prop for fieldwise block op indirs#118368
JIT: postorder local assertion prop for fieldwise block op indirs#118368AndyAyersMS merged 1 commit intodotnet:mainfrom
Conversation
After we form the block op field indirs, run postorder local assertion prop on them, so that they see the same amount of assertion prop as other indirs. Fixes (parts of) dotnet#115789.
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
|
Diffs are fairly extensive. Overall a decent net improvement. Might be too much churn at this point in the release? @dotnet/jit-contrib thoughts? |
I guess we have some time to deal with potential fall out / back out the change depending on the micro benchmark results. Seems ok to me if you want to get it in. |
|
Ok let's consider taking this then. |
There was a problem hiding this comment.
Pull Request Overview
This PR enhances the JIT compiler's block operation handling by adding postorder local assertion propagation to fieldwise block operation indirect accesses. The purpose is to ensure that these field indirections receive the same level of optimization as other indirect accesses in the compiler.
- Adds a lambda function that performs postorder local assertion propagation
- Applies this optimization to both source field reads and destination field stores during field-by-field copying
- Relaxes type checking to allow mismatched types when the source field is an integer constant
jakobbotsch
left a comment
There was a problem hiding this comment.
Would suggest running Fuzzlyn on this.
|
/azp run Fuzzlyn |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
There is a fuzzlyn failure on x86: likely something pre-existing, but let me dig in. |
|
Was pre-existing, opened #118466 |
After we form the block op field indirs, run postorder local assertion prop on them, so that they see the same amount of assertion prop as other indirs.
Fixes (parts of) #115789.