On Fri, 19 May 2023 04:06:47 GMT, Vladimir Ivanov <vliva...@openjdk.org> wrote:

> I verified that the new test cases do trigger SR+NSR scenario.
> 
> How do you test that deoptimization works as expected?
> 

I have a copy of the tests in AllocationMergesTests.java in a separate file 
(not included in this PR) and I run the tests with a tool that compares the 
output of the test with RAM enabled and disabled. So, the way I test that 
deoptimization worked is basically just making sure the tests that "deoptimize" 
have the same output with RAM enabled and disabled.

> Diagnostic output is still hard to read. On one hand, it's too verbose when 
> it comes to PcDesc/ScopeDesc sections ("pc-bytecode offsets" and "scopes") in 
> nmethod output (enabled either w/ `-XX:+PrintAssembly` or 
> `-XX:CompileCommand=print,...`). On the other hand, it lacks some important 
> details, like `selector` and `merge_ptr` location information which is 
> essential to make sense of debug information at a safepoint in the code.
> 

I'll take care of that. I was testing only with PrintDebugInfo.

> FTR `_skip_rematerialization` flag is unused now.
> 

yeah, I forgot to remove that. Thanks.

> Speaking of `_only_merge_candidate` flag, I find it easier about the code 
> when the property being tracked is whether the `ObjectValue` is referenced 
> from corresponding JVM state or not. (Maybe call it `is_root()`?) So, 
> `ScopeDesc::objects_to_rematerialize()` would skip everything not referenced 
> from JVM state, but then unconditionally accept anything returned by 
> `ObjectMergeValue::select()` which doesn't need to adjust the flag before 
> returning selected object. Also, it's safer to track the flag status for 
> every `ObjectValues`, even for `ObjectMergeValue`.
> 

Sounds like a good idea. I'll do that. Thanks.

> Are you sure there's no way to end up with nested `ObjectMergeValue`s in 
> presence of iterative EA?

I don't think so. This current patch only handle Phis that don't have NULL as 
input. As part of the reduction process we set at least one of the reducible 
Phi inputs to NULL. Therefore, subsequent iterations of EA won't reduce the 
same Phi.

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

PR Comment: https://git.openjdk.org/jdk/pull/12897#issuecomment-1557655811

Reply via email to