Tests VarHandle methods which take effect of load store fence.
JVM options: [-client, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
0.0, 0.0 | 848509 | ACCEPTABLE | load y in actor2 before store 2.3509528E-38 to y in actor1, all results are 0.0 |
0.0, 2.3509528E-38 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = 2.3509528E-38 var may be assigned to 2.3509528E-38 and then r2 can be 2.3509528E-38 from var. |
2.3509528E-38, 0.0 | 344051 | ACCEPTABLE | store 2.3509528E-38 to y in actor1 before load y in actor2 |
2.3509528E-38, 2.3509528E-38 | 0 | FORBIDDEN | can't load var after store y in actor1. |
JVM options: [-server, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
0.0, 0.0 | 1951209 | ACCEPTABLE | load y in actor2 before store 2.3509528E-38 to y in actor1, all results are 0.0 |
0.0, 2.3509528E-38 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = 2.3509528E-38 var may be assigned to 2.3509528E-38 and then r2 can be 2.3509528E-38 from var. |
2.3509528E-38, 0.0 | 435501 | ACCEPTABLE | store 2.3509528E-38 to y in actor1 before load y in actor2 |
2.3509528E-38, 2.3509528E-38 | 0 | FORBIDDEN | can't load var after store y in actor1. |
JVM options: [-client] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
0.0, 0.0 | 2877021 | ACCEPTABLE | load y in actor2 before store 2.3509528E-38 to y in actor1, all results are 0.0 |
0.0, 2.3509528E-38 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = 2.3509528E-38 var may be assigned to 2.3509528E-38 and then r2 can be 2.3509528E-38 from var. |
2.3509528E-38, 0.0 | 733849 | ACCEPTABLE | store 2.3509528E-38 to y in actor1 before load y in actor2 |
2.3509528E-38, 2.3509528E-38 | 0 | FORBIDDEN | can't load var after store y in actor1. |
JVM options: [-Xint] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
0.0, 0.0 | 86884 | ACCEPTABLE | load y in actor2 before store 2.3509528E-38 to y in actor1, all results are 0.0 |
0.0, 2.3509528E-38 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = 2.3509528E-38 var may be assigned to 2.3509528E-38 and then r2 can be 2.3509528E-38 from var. |
2.3509528E-38, 0.0 | 5376 | ACCEPTABLE | store 2.3509528E-38 to y in actor1 before load y in actor2 |
2.3509528E-38, 2.3509528E-38 | 0 | FORBIDDEN | can't load var after store y in actor1. |
JVM options: [-server, -XX:-TieredCompilation, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
0.0, 0.0 | 1422054 | ACCEPTABLE | load y in actor2 before store 2.3509528E-38 to y in actor1, all results are 0.0 |
0.0, 2.3509528E-38 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = 2.3509528E-38 var may be assigned to 2.3509528E-38 and then r2 can be 2.3509528E-38 from var. |
2.3509528E-38, 0.0 | 193826 | ACCEPTABLE | store 2.3509528E-38 to y in actor1 before load y in actor2 |
2.3509528E-38, 2.3509528E-38 | 0 | FORBIDDEN | can't load var after store y in actor1. |
JVM options: [-XX:TieredStopAtLevel=1] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
0.0, 0.0 | 737279 | ACCEPTABLE | load y in actor2 before store 2.3509528E-38 to y in actor1, all results are 0.0 |
0.0, 2.3509528E-38 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = 2.3509528E-38 var may be assigned to 2.3509528E-38 and then r2 can be 2.3509528E-38 from var. |
2.3509528E-38, 0.0 | 237591 | ACCEPTABLE | store 2.3509528E-38 to y in actor1 before load y in actor2 |
2.3509528E-38, 2.3509528E-38 | 0 | FORBIDDEN | can't load var after store y in actor1. |
JVM options: [-server] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
0.0, 0.0 | 2135458 | ACCEPTABLE | load y in actor2 before store 2.3509528E-38 to y in actor1, all results are 0.0 |
0.0, 2.3509528E-38 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = 2.3509528E-38 var may be assigned to 2.3509528E-38 and then r2 can be 2.3509528E-38 from var. |
2.3509528E-38, 0.0 | 490152 | ACCEPTABLE | store 2.3509528E-38 to y in actor1 before load y in actor2 |
2.3509528E-38, 2.3509528E-38 | 0 | FORBIDDEN | can't load var after store y in actor1. |
JVM options: [-server, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
0.0, 0.0 | 963148 | ACCEPTABLE | load y in actor2 before store 2.3509528E-38 to y in actor1, all results are 0.0 |
0.0, 2.3509528E-38 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = 2.3509528E-38 var may be assigned to 2.3509528E-38 and then r2 can be 2.3509528E-38 from var. |
2.3509528E-38, 0.0 | 334472 | ACCEPTABLE | store 2.3509528E-38 to y in actor1 before load y in actor2 |
2.3509528E-38, 2.3509528E-38 | 0 | FORBIDDEN | can't load var after store y in actor1. |