Pi-Digits: Extra Struct copies of BigInteger #5785
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
optimization
os-linux
Linux OS (any supported distro)
tenet-performance
Performance related issue
Milestone
RYUJit has several extra struct copies of the two field BigInteger struct in the pi-digit Benchmark's functions.
For example, here's the code for
pidigits:extract_digit(int):int:this
The comments indicate block struct copy/init as well as field assignments.
There are several extra copies in this code:
t3
struct after each function is unnecessary. The return struct can be reused for next computation. This could be an isolated issue wrt Copy-prop of struct-return values that can be fixed. This accounts for three copies.this->BI1
(via pointerp
) could be block copied, but is field-copiedt2 = t4
copy is unnecessary -- could be caused by phase ordering where one of the structs is lowered early.t4
necessary before call to constructor?category:cq
theme:structs
skill-level:expert
cost:extra-large
The text was updated successfully, but these errors were encountered: