< prev index next >
test/hotspot/jtreg/compiler/valhalla/valuetypes/TestBasicFunctionality.java
Print this page
*** 164,176 ****
MyValue1 v = test7(rI, rL);
Asserts.assertEQ(v.hash(), hash());
}
// Merge value types created from two branches
! // TODO fix this once we can distinguish between nullable and non-nullable value types
! // @Test(failOn = ALLOC + STORE + TRAP)
! @Test()
public long test8(boolean b) {
MyValue1 v;
if (b) {
v = MyValue1.createWithFieldsInline(rI, rL);
} else {
--- 164,175 ----
MyValue1 v = test7(rI, rL);
Asserts.assertEQ(v.hash(), hash());
}
// Merge value types created from two branches
! @Test(valid = AlwaysIncrementalInlineOn, match = {ALLOC, STORE, LOAD}, matchCount = {1, 5, 12}, failOn = TRAP)
! @Test(valid = AlwaysIncrementalInlineOff, failOn = ALLOC + STORE + TRAP)
public long test8(boolean b) {
MyValue1 v;
if (b) {
v = MyValue1.createWithFieldsInline(rI, rL);
} else {
*** 627,638 ****
staticVal3.verify(vt);
staticVal3.verify(va[0]);
}
// Verify that C2 recognizes value type loads and re-uses the oop to avoid allocations
- @Test(valid = ValueTypeReturnedAsFieldsOff, failOn = ALLOC + ALLOCA + STORE)
@Test(valid = ValueTypeReturnedAsFieldsOn)
public MyValue3 test31(MyValue3[] va) {
// C2 can re-use the oop returned by createDontInline()
// because the corresponding value type is equal to 'copy'.
MyValue3 copy = MyValue3.copy(MyValue3.createDontInline());
va[0] = copy;
--- 626,637 ----
staticVal3.verify(vt);
staticVal3.verify(va[0]);
}
// Verify that C2 recognizes value type loads and re-uses the oop to avoid allocations
@Test(valid = ValueTypeReturnedAsFieldsOn)
+ @Test(valid = ValueTypeReturnedAsFieldsOff, failOn = ALLOC + ALLOCA + STORE)
public MyValue3 test31(MyValue3[] va) {
// C2 can re-use the oop returned by createDontInline()
// because the corresponding value type is equal to 'copy'.
MyValue3 copy = MyValue3.copy(MyValue3.createDontInline());
va[0] = copy;
*** 648,659 ****
staticVal3.verify(vt);
staticVal3.verify(va[0]);
}
// Verify that C2 recognizes value type loads and re-uses the oop to avoid allocations
- @Test(valid = ValueTypePassFieldsAsArgsOff, failOn = ALLOC + ALLOCA + STORE)
@Test(valid = ValueTypePassFieldsAsArgsOn)
public MyValue3 test32(MyValue3 vt, MyValue3[] va) {
// C2 can re-use the oop of vt because vt is equal to 'copy'.
MyValue3 copy = MyValue3.copy(vt);
va[0] = copy;
staticVal3 = copy;
--- 647,658 ----
staticVal3.verify(vt);
staticVal3.verify(va[0]);
}
// Verify that C2 recognizes value type loads and re-uses the oop to avoid allocations
@Test(valid = ValueTypePassFieldsAsArgsOn)
+ @Test(valid = ValueTypePassFieldsAsArgsOff, failOn = ALLOC + ALLOCA + STORE)
public MyValue3 test32(MyValue3 vt, MyValue3[] va) {
// C2 can re-use the oop of vt because vt is equal to 'copy'.
MyValue3 copy = MyValue3.copy(vt);
va[0] = copy;
staticVal3 = copy;
< prev index next >