RFR: JDK-8287061: Support for rematerializing scalar replaced objects participating in allocation merges [v12]
Cesar Soares Lucas
cslucas at openjdk.org
Fri May 12 21:09:04 UTC 2023
On Tue, 9 May 2023 00:03:26 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:
>> Cesar Soares Lucas has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 12 commits:
>>
>> - Merge remote-tracking branch 'origin/master' into rematerialization-of-merges
>> - Address part of PR review 4 & fix a bug setting only_candidate
>> - Catching up with master
>>
>> Merge remote-tracking branch 'origin/master' into rematerialization-of-merges
>> - Fix tests. Remember previous reducible Phis.
>> - Address PR review 3. Some comments and be able to abort compilation.
>> - Merge with Master
>> - Addressing PR review 2: refactor & reuse MacroExpand::scalar_replacement method.
>> - Address PR feeedback 1: make ObjectMergeValue subclass of ObjectValue & create new IR class to represent scalarized merges.
>> - Add support for SR'ing some inputs of merges used for field loads
>> - Fix some typos and do some small refactorings.
>> - ... and 2 more: https://git.openjdk.org/jdk/compare/561ec9c5...542c5ef1
>
> The new pass over deserialized debug info would adapt `ScopeDesc::objects()` (initialized by `decode_object_values(obj_decode_offset)` and accesses through `chunk->at(0)->scope()->objects()`) and produce 2 lists:
> * new list of objects which enumerates all scalarized instances which needs to be rematerialized;
> * complete set of objects referenced in the current scope (the purpose `chunk->at(0)->scope()->objects()` serves now).
>
> It should be performed before `rematerialize_objects`.
>
> By preprocessing I mean all the conditional checks before it is attempted to reallocate an `ObjectValue`. By the end of the new pass, it should be enough to just iterate over the new list of scalarized instances in `Deoptimization::realloc_objects`. And after `Deoptimization::realloc_objects` and `Deoptimization::reassign_fields` are over, debug info should be ready to go.
@iwanowww - I pushed some changes to address your feedback about the rematerialization part. I added only two more tests for now, but I'm working on adding others.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/12897#issuecomment-1546298856
More information about the hotspot-dev
mailing list