JIT: inefficient multidimensional array access vis Jit32 (and in general) #8569
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
enhancement
Product code improvement that does NOT require public API changes/additions
JitUntriaged
CLR JIT issues needing additional triage
optimization
tenet-performance
Performance related issue
Milestone
RyuJit fails to optimize multidimensional array indices and misses some cases that Jit32 is able to optimize. In the following code example,
Jit32 is able to CSE the addressing done in the
a[b,i]
references inExample
(though it does not CSE the array fetch itself). RyuJit does not CSE anything in the loop.Neither jit recognizes
a.GetLength
as being a loop invariant, or that the initial bounds checkr[b, ]
is likewise a loop invariant, or inline and decomposeGetLength
despite inlining the very similar bounds check and element addressing logic. Neither jit is able to optimize away the bounds checks inMain
where the array size and indices are known.category:cq
theme:md-arrays
skill-level:expert
cost:large
The text was updated successfully, but these errors were encountered: