[lworld] RFR: [lworld] print out reason information for Deoptimize instruction

Yi Yang github.com+5010047+kelthuzadx at openjdk.java.net
Mon Mar 1 12:02:05 UTC 2021


The instruction printer only tells that there is a deoptimization instruction, but not indicates they are deoptimized due to which class is not loaded.

Java
----
static void test1(Object[] arr) {
	TestValue v = TestValue.default;
	arr[0] = v;
}
HIR(OLD)
---
. 0    2    a2     deoptimize
. 5    1    i3     0
. 7    0    a4     a1[i3] := a2 (L) [rc] What's the type of a2?
. 8    0    v5     return
HIR(NEW)
---
. 0    2    a2     deoptimize [unloaded=Test$TestValue]
. 5    1    i3     0
. 7    0    a4     a1[i3] := a2 (L) [rc]
. 8    0    v5     return

In addition, I restore some comments on LIRGenerator::do_Deoptimize, I'm not sure whether these comments were removed deliberately or accidentally, so please let me know if I did wrong. 

Thanks!
Yang

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

Commit messages:
 - print out reason information for deopt instr

Changes: https://git.openjdk.java.net/valhalla/pull/356/files
 Webrev: https://webrevs.openjdk.java.net/?repo=valhalla&pr=356&range=00
  Stats: 16 lines in 4 files changed: 11 ins; 0 del; 5 mod
  Patch: https://git.openjdk.java.net/valhalla/pull/356.diff
  Fetch: git fetch https://git.openjdk.java.net/valhalla pull/356/head:pull/356

PR: https://git.openjdk.java.net/valhalla/pull/356



More information about the valhalla-dev mailing list