#128225 reminded me - can we delete this version of write barrier and use normal checked/unchecked? Maybe long-term even just leave the unchecked one and inline checks in JIT for the checked one?
Currently, we have 5 flavors:
CORINFO_HELP_ASSIGN_REF,
CORINFO_HELP_CHECKED_ASSIGN_REF,
CORINFO_HELP_ASSIGN_REF_ENSURE_NONHEAP, // Debug only, do we use it?
CORINFO_HELP_ASSIGN_BYREF,
CORINFO_HELP_BULK_WRITEBARRIER,
CORINFO_HELP_ASSIGN_BYREF was beneficial for large struct copies with GC fields due to custom calling convention that bumps pointer, but it's no longer that important with the introduction of CORINFO_HELP_BULK_WRITEBARRIER
Opinions @jkotas @dotnet/jit-contrib?
#128225 reminded me - can we delete this version of write barrier and use normal checked/unchecked? Maybe long-term even just leave the unchecked one and inline checks in JIT for the checked one?
Currently, we have 5 flavors:
CORINFO_HELP_ASSIGN_BYREFwas beneficial for large struct copies with GC fields due to custom calling convention that bumps pointer, but it's no longer that important with the introduction ofCORINFO_HELP_BULK_WRITEBARRIEROpinions @jkotas @dotnet/jit-contrib?