On Sat, 22 Apr 2023 01:52:37 GMT, Vladimir Ivanov <vliva...@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 10 commits: >> >> - 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. >> - Merge master >> - Add support for rematerializing scalar replaced objects participating in >> allocation merges > > src/hotspot/share/code/debugInfo.cpp line 257: > >> 255: } else { >> 256: assert(selector < _possible_objects.length(), "sanity"); >> 257: _selected = (ObjectValue*) _possible_objects.at(selector); > > Any particular reason to reuse `ObjectValue` from `_possible_objects` instead > of allocating a fresh one (as you do on `selector == -1` bracnh)? I'd prefer > `ObjectMergeValue::select()` to always allocate a fresh `ObjectValue` when > converting `ObjectMergeValue` + `ObjectMergeCandidateValue` into > `ObjectValue`. @iwanowww - may I ask why always allocating a fresh object might be better than returning a pointer to a previous "selected" object? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/12897#discussion_r1175897406