RFR: 8302850: Implement C1 clone intrinsic that reuses arraycopy code for primitive arrays [v13]

Roland Westrelin roland at openjdk.org
Thu May 2 07:31:58 UTC 2024


On Mon, 29 Apr 2024 23:02:33 GMT, Dean Long <dlong at openjdk.org> wrote:

>> src/hotspot/share/c1/c1_GraphBuilder.cpp line 2030:
>> 
>>> 2028:       receiver = state()->stack_at(index);
>>> 2029:       ciType* type = receiver->exact_type();
>>> 2030:       if (type != nullptr && type->is_loaded()) {
>> 
>> Is it the case that we can't see an interface here? Or that we think it's ok if we see an interface here?
>
> We can't see an interface here because it will get rejected by `ciInstanceKlass::exact_klass`, so we could even assert for that here if we wanted.

Then, I think we should add an assert that `!type->as_instance_klass()->is_interface()` and also that it's not and array of interfaces (using `base_element_klass()`)

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

PR Review Comment: https://git.openjdk.org/jdk/pull/17667#discussion_r1587185774


More information about the hotspot-compiler-dev mailing list