-
Bug
-
Resolution: Unresolved
-
P5
-
8, 9
-
arm
-
linux
1) Problem with VecX
For all vector types, we do the following on all platforms:
lrg.set_reg_pressure(1);
For 32-bit ARM, with a FLOATPRESSURE value of 30 and set_reg_pressure(1), we calculate 30 VecX vector registers,
but the hardware actually supports 15 VecX vector registers (actually 16, but accounting for S14/S15/D7 that we reserve).
2) Problem with RegD
We also calculate 15 RegD instead of the correct 30 RegD.
3) The above numbers assume that VM_Version::has_vfp3_32() returns true. If it returns false, the number of RegD,
VecD, and VecX available in C2 are cut in half, but the number of RegF and VecS stay the same. A single value for
FLOATPRESSURE and a static value for lrg.set_reg_pressure() makes it impossible to adjust for the
has_vfp3_32() value at runtime.
Rather than INTPRESSURE, FLOATPRESSURE, and platform-specific set_reg_pressure() values in shared code using
ifdefs, it seems better to define an interface to allow better tuning of these values.
For all vector types, we do the following on all platforms:
lrg.set_reg_pressure(1);
For 32-bit ARM, with a FLOATPRESSURE value of 30 and set_reg_pressure(1), we calculate 30 VecX vector registers,
but the hardware actually supports 15 VecX vector registers (actually 16, but accounting for S14/S15/D7 that we reserve).
2) Problem with RegD
We also calculate 15 RegD instead of the correct 30 RegD.
3) The above numbers assume that VM_Version::has_vfp3_32() returns true. If it returns false, the number of RegD,
VecD, and VecX available in C2 are cut in half, but the number of RegF and VecS stay the same. A single value for
FLOATPRESSURE and a static value for lrg.set_reg_pressure() makes it impossible to adjust for the
has_vfp3_32() value at runtime.
Rather than INTPRESSURE, FLOATPRESSURE, and platform-specific set_reg_pressure() values in shared code using
ifdefs, it seems better to define an interface to allow better tuning of these values.
- relates to
-
JDK-8134802 LCM register pressure scheduling
-
- Resolved
-
-
JDK-8268858 Determine register pressure automatically by the number of available registers for allocation
-
- Closed
-