< prev index next >
test/hotspot/jtreg/compiler/valhalla/valuetypes/TestBasicFunctionality.java
Print this page
@@ -87,11 +87,11 @@
long result = test2(v);
Asserts.assertEQ(result, hash());
}
// Return incoming value type without accessing fields
- @Test(valid = ValueTypePassFieldsAsArgsOn, match = {ALLOC, STORE}, matchCount = {1, 11}, failOn = LOAD + TRAP)
+ @Test(valid = ValueTypePassFieldsAsArgsOn, match = {ALLOC, STORE}, matchCount = {1, 14}, failOn = LOAD + TRAP)
@Test(valid = ValueTypePassFieldsAsArgsOff, failOn = ALLOC + LOAD + STORE + TRAP)
public MyValue1 test3(MyValue1 v) {
return v;
}
@@ -136,11 +136,13 @@
Asserts.assertEQ(result, hash());
}
// Create a value type in compiled code and pass it to
// the interpreter via a call.
- @Test(valid = ValueTypePassFieldsAsArgsOn, failOn = LOAD + TRAP + ALLOC)
+// TODO enable once receiver is scalarized
+// @Test(valid = ValueTypePassFieldsAsArgsOn, failOn = LOAD + TRAP + ALLOC)
+ @Test(valid = ValueTypePassFieldsAsArgsOn)
@Test(valid = ValueTypePassFieldsAsArgsOff, match = {ALLOC}, matchCount = {1}, failOn = LOAD + TRAP)
public long test6() {
MyValue1 v = MyValue1.createWithFieldsInline(rI, rL);
// Pass to interpreter
return v.hashInterpreted();
@@ -183,11 +185,13 @@
Asserts.assertEQ(test8(true), hash());
Asserts.assertEQ(test8(false), hash(rI + 1, rL + 1));
}
// Merge value types created from two branches
- @Test(valid = ValueTypePassFieldsAsArgsOn, match = {LOAD}, matchCount = {10}, failOn = TRAP + ALLOC + STORE)
+// TODO enable once receiver is scalarized
+// @Test(valid = ValueTypePassFieldsAsArgsOn, match = {LOAD}, matchCount = {10}, failOn = TRAP + ALLOC + STORE)
+ @Test(valid = ValueTypePassFieldsAsArgsOn)
@Test(valid = ValueTypePassFieldsAsArgsOff, match = {ALLOC, STORE}, matchCount = {1, 5}, failOn = LOAD + TRAP)
public MyValue1 test9(boolean b) {
MyValue1 v;
if (b) {
// Value type is not allocated
@@ -309,11 +313,13 @@
Asserts.assertEQ(result, warmup ? rL + (1000 * rI) : ((Math.abs(rI) % 10) + 1) * hash());
}
// Create a value type in a non-inlined method and then call a
// non-inlined method on that value type.
- @Test(valid = ValueTypePassFieldsAsArgsOn, failOn = (ALLOC + STORE + TRAP), match = {LOAD}, matchCount = {10})
+// TODO enable once receiver is scalarized
+// @Test(valid = ValueTypePassFieldsAsArgsOn, failOn = (ALLOC + STORE + TRAP), match = {LOAD}, matchCount = {10})
+ @Test(valid = ValueTypePassFieldsAsArgsOn)
@Test(valid = ValueTypePassFieldsAsArgsOff, failOn = (ALLOC + LOAD + STORE + TRAP))
public long test14() {
MyValue1 v = MyValue1.createWithFieldsDontInline(rI, rL);
return v.hashInterpreted();
}
@@ -324,11 +330,13 @@
Asserts.assertEQ(result, hash());
}
// Create a value type in an inlined method and then call a
// non-inlined method on that value type.
- @Test(valid = ValueTypePassFieldsAsArgsOn, failOn = (LOAD + TRAP + ALLOC))
+// TODO enable once receiver is scalarized
+// @Test(valid = ValueTypePassFieldsAsArgsOn, failOn = (LOAD + TRAP + ALLOC))
+ @Test(valid = ValueTypePassFieldsAsArgsOn)
@Test(valid = ValueTypePassFieldsAsArgsOff, failOn = (LOAD + TRAP), match = {ALLOC}, matchCount = {1})
public long test15() {
MyValue1 v = MyValue1.createWithFieldsInline(rI, rL);
return v.hashInterpreted();
}
@@ -368,11 +376,13 @@
}
// Create a value type in compiled code and pass it to the
// interpreter via a call. The value is live at the first call so
// debug info should include a reference to all its fields.
- @Test(valid = ValueTypePassFieldsAsArgsOn, failOn = ALLOC + LOAD + TRAP)
+// TODO enable once receiver is scalarized
+// @Test(valid = ValueTypePassFieldsAsArgsOn, failOn = ALLOC + LOAD + TRAP)
+ @Test(valid = ValueTypePassFieldsAsArgsOn)
@Test(valid = ValueTypePassFieldsAsArgsOff, match = {ALLOC}, matchCount = {1}, failOn = LOAD + TRAP)
public long test18() {
MyValue1 v = MyValue1.createWithFieldsInline(rI, rL);
v.hashInterpreted();
return v.hashInterpreted();
@@ -407,11 +417,13 @@
// Create a value type (array) in compiled code and pass it to the
// interpreter via a call. The value type is live at the uncommon
// trap: verify that deoptimization causes the value type to be
// correctly allocated.
- @Test(valid = ValueTypePassFieldsAsArgsOn, failOn = LOAD + ALLOC + STORE)
+// TODO enable once receiver is scalarized
+// @Test(valid = ValueTypePassFieldsAsArgsOn, failOn = LOAD + ALLOC + STORE)
+ @Test(valid = ValueTypePassFieldsAsArgsOn)
@Test(valid = ValueTypePassFieldsAsArgsOff, match = {ALLOC}, matchCount = {1}, failOn = LOAD)
public long test20(boolean deopt) {
MyValue1 v = MyValue1.createWithFieldsInline(rI, rL);
MyValue2[] va = new MyValue2[3];
if (deopt) {
< prev index next >