[RyuJIT] lack of escape analysis makes redundant memory-access of Vector128/256<T> fields #10767
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
optimization
Milestone
Related to https://github.com/dotnet/coreclr/issues/19116
The C# source code below is from dotnet/coreclr#18839
get_Lengths
will be compiled toMultiply(this.Xs, this.Xs)
generates redundant memory access instructions forVector256<float>
field access. Actually, the codgen could beThis redundant could be eliminated by escape analysis and unwarping
VectorPacket256
.A worse example with
Vector256<float>
field assignments. In the code below,difColor
is a localVectorPacket256
object (butdif
is returned by another function)that is compiled to
Ideally, this could be optimized to
category:cq
theme:vector-codegen
skill-level:expert
cost:large
The text was updated successfully, but these errors were encountered: