[lworld] RFR: 8375306: [lworld] Investigate alternatives to flatArrayOopDesc::obj_at implementation [v2]

Coleen Phillimore coleenp at openjdk.org
Wed Feb 11 09:58:59 UTC 2026


On Fri, 6 Feb 2026 20:27:36 GMT, Frederic Parain <fparain at openjdk.org> wrote:

>> src/hotspot/share/ci/ciArray.cpp line 76:
>> 
>>> 74:         JavaThread* THREAD = CompilerThread::current();
>>> 75:         oop elem = flatary->obj_at(index, THREAD);
>>> 76:         if (HAS_PENDING_EXCEPTION) {
>> 
>> This is odd. The compiler cannot create exceptions because it can't call Java code (nor can it allocate?).  Should this be CATCH instead?
>
> The calls to element_value_impl() are guarded by VM_ENTRY_MARK, so this code is executed when the CompilerThread is _in_vm.
> In case of a pending exception, the code clears the exception and returns an invalid constant, delegating the handling of the situation to the caller, which is free to opt for a different approach or to simply bail out.
> This behavior was discussed with the compiler team.

Ok, thanks.

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

PR Review Comment: https://git.openjdk.org/valhalla/pull/2033#discussion_r2789819977


More information about the valhalla-dev mailing list