Improve hoisting, CSE, LSRA for MD array accesses #71676
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone
As described in the comment #70271 (comment) and those that follow, with change #70271 a regression was introduced in the MDMulMatrix benchmark due to limitations or heuristics in the optimization phases downstream of MD array index expansion.
E.g.,
GT_MDARR_LOWER_BOUND
orGT_MDARR_LENGTH
node is loop-invariant, but can't be hoisted due to exception ordering, as these could cause null reference exception. This is due to hoisting having a very simple notion of side-effects and ordering. In the identified case, we already know that the specific null reference exception can't occur because a previous expression would have caused it, so we should be free to hoist up to that location.category:cq
theme:md-arrays
skill-level:expert
cost:large
impact:medium
The text was updated successfully, but these errors were encountered: