[lworld+vector] RFR: Merge lworld
Xiaohong Gong
xgong at openjdk.org
Mon Jun 26 01:43:28 UTC 2023
On Sun, 25 Jun 2023 16:45:57 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> Oh, I see the followed calling to `Deoptimization::reassign_fields_by_klass()`. An alternative way is to keep the vector assignment in `vectorSupport.cpp` like before, and other fields reassign in `deoptimization.cpp` like other normal objects. So that we doesn't need to modify too much during deoptimization. The only thing we have to do is passing the secondary fields to safepoint if not vectorized. WDYT?
>
>> Oh, I see the followed calling to `Deoptimization::reassign_fields_by_klass()`. An alternative way is to keep the vector assignment in `vectorSupport.cpp` like before, and other fields reassign in `deoptimization.cpp` like other normal objects. So that we doesn't need to modify too much during deoptimization. The only thing we have to do is passing the secondary fields to safepoint if not vectorized. WDYT?
>
> I think its better to completely de-couple allocation and re-assignment so that we have clean interface, having one routine for allocation and re-initialization worked until now because VectorBox could never have a scalar / constant inputs, but this is now relaxed since InlineTypeNodes created during fallback implementation can have non-vector inputs, thus a split in initialization b/w allocation and existing re-assignment routines looks clumsy to me,
OK, I took another look at the changes in deoptimization.cpp, and the solution makes sense to me. Thanks!
BTW, do you think the condition `EnableVectorSupport` applied on the vector and vector_payload_mf classes in `Deoptimize::reasign_fields()` [1] and `Deoptimize::realloc_objects()` [2] can be removed now? Before, we only have the VectorBox cases which depends on this flag, but now, the default implementation also creates vector or scalar ops.
[1] https://github.com/openjdk/valhalla/blob/lworld%2Bvector/src/hotspot/share/runtime/deoptimization.cpp#L1548
[2] https://github.com/openjdk/valhalla/blob/lworld%2Bvector/src/hotspot/share/runtime/deoptimization.cpp#L1144
-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/866#discussion_r1241369871
More information about the valhalla-dev
mailing list