RFR: 8261675: ObjectValue::set_visited(bool) sets _visited false
Xin Liu
xliu at openjdk.java.net
Sat Feb 13 21:24:38 UTC 2021
On Sat, 13 Feb 2021 08:10:22 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
> In addition to your fix you can consider next changes to avoid dumping unneeded data in debug info (deoptimizer reads objects data only from top frame [deoptimization.cpp#L190](https://github.com/openjdk/jdk/blob/master/src/hotspot/share/runtime/deoptimization.cpp#L190):
>
> ```
> src/hotspot/share/opto/output.cpp
> // We dump the object pool first, since deoptimization reads it in first.
> - C->debug_info()->dump_object_pool(objs);
> + C->debug_info()->dump_object_pool(objs, (depth < max_depth));
> ```
hi, Vladimir,
Thank you for reviewing this patch.
I don't understand why it's depth < max_depth instead of <=.
Further, the effect of this optimization seems limited. this statement is in a loop like this.
depth < max_depth is almost always true.
for (int depth = 1; depth <= max_depth; depth++) {
...
C->debug_info()->dump_object_pool(objs, (depth < max_depth));
...
}
but I get your point. It seems that `Process_OopMap_Node` may dump identical objects in the loop. I am not sure there are objects overlap different jvmstates. let me check and create another issue if so.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2560
More information about the hotspot-compiler-dev
mailing list