RFR: 8280003: C1: Reconsider uses of logical_and immediates in LIRGenerator::do_getObjectSize [v3]

Sergey Nazarkin snazarki at openjdk.java.net
Fri Jan 28 11:21:12 UTC 2022


On Fri, 28 Jan 2022 10:18:10 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> src/hotspot/share/c1/c1_LIRGenerator.cpp line 1351:
>> 
>>> 1349:   assert((int) Klass::_lh_instance_slow_path_bit < BytesPerLong, "clear bit");
>>> 1350: 
>>> 1351:   LIR_Opr mask = load_immediate(~(jint) right_n_bits(LogBytesPerLong), T_INT);
>> 
>> Just to note: taken a look at generated code to check why this helps with wrong result issue. It appears jdk suffers from the problem of inlining of this code into caller method since this lines are never executed for small array case
>
> I don't understand what you mean here :)

Well, OK, never mind. I'm just saying this change workarounds some generic c1 issue

-------------

PR: https://git.openjdk.java.net/jdk/pull/7080


More information about the hotspot-compiler-dev mailing list