author | kvn |
Wed, 01 May 2019 12:31:29 -0700 | |
changeset 54669 | ad45b3802d4e |
parent 52298 | 83039b8e6a42 |
child 58851 | f1e6442241ca |
permissions | -rw-r--r-- |
52298
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
1 |
/* |
54669
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
2 |
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved. |
52298
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
4 |
* |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
5 |
* This code is free software; you can redistribute it and/or modify it |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation. Oracle designates this |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
8 |
* particular file as subject to the "Classpath" exception as provided |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
9 |
* by Oracle in the LICENSE file that accompanied this code. |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
10 |
* |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
11 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
12 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
13 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
14 |
* version 2 for more details (a copy is included in the LICENSE file that |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
15 |
* accompanied this code). |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
16 |
* |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
17 |
* You should have received a copy of the GNU General Public License version |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
18 |
* 2 along with this work; if not, write to the Free Software Foundation, |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
19 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
20 |
* |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
21 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
22 |
* or visit www.oracle.com if you need additional information or have any |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
23 |
* questions. |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
24 |
*/ |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
25 |
package jdk.vm.ci.runtime.test; |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
26 |
|
54669
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
27 |
import java.util.ArrayList; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
28 |
import java.util.Arrays; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
29 |
import java.util.Collection; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
30 |
import java.util.function.Supplier; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
31 |
|
52298
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
32 |
import org.junit.Assert; |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
33 |
import org.junit.Test; |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
34 |
|
54669
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
35 |
import jdk.vm.ci.code.CodeCacheProvider; |
52298
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
36 |
import jdk.vm.ci.meta.JavaConstant; |
54669
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
37 |
import jdk.vm.ci.meta.ResolvedJavaMethod; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
38 |
import jdk.vm.ci.meta.ResolvedJavaType; |
52298
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
39 |
import jdk.vm.ci.meta.SpeculationLog; |
54669
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
40 |
import jdk.vm.ci.meta.SpeculationLog.SpeculationReasonEncoding; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
41 |
import jdk.vm.ci.runtime.JVMCI; |
52298
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
42 |
|
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
43 |
public class TestSpeculationLog extends MethodUniverse { |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
44 |
|
54669
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
45 |
static final class Dummy implements SpeculationLog.SpeculationReason { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
46 |
|
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
47 |
final int[] ints = {Integer.MIN_VALUE, -42, -1, 0, 1, 42, Integer.MAX_VALUE}; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
48 |
final long[] longs = {Long.MIN_VALUE, -42, -1, 0, 1, 42, Long.MAX_VALUE}; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
49 |
final String[] strings = {null, "non-empty string", ""}; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
50 |
final Collection<ResolvedJavaMethod> methods = new ArrayList<>(MethodUniverse.methods.values()).subList(0, 10); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
51 |
final Collection<ResolvedJavaMethod> constructors = new ArrayList<>(MethodUniverse.constructors.values()).subList(0, 10); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
52 |
final Collection<ResolvedJavaType> types = new ArrayList<>(TypeUniverse.javaTypes).subList(0, 10); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
53 |
|
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
54 |
private final boolean useCache; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
55 |
private SpeculationReasonEncoding cachedEncoding; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
56 |
|
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
57 |
Dummy(boolean useCache) { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
58 |
this.useCache = useCache; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
59 |
} |
52298
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
60 |
|
54669
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
61 |
@Override |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
62 |
public SpeculationReasonEncoding encode(Supplier<SpeculationReasonEncoding> encodingSupplier) { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
63 |
SpeculationReasonEncoding encoding = cachedEncoding; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
64 |
if (encoding == null) { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
65 |
encoding = encodingSupplier.get(); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
66 |
for (int i : ints) { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
67 |
encoding.addInt(i); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
68 |
} |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
69 |
for (long l : longs) { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
70 |
encoding.addLong(l); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
71 |
} |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
72 |
for (String s : strings) { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
73 |
encoding.addString(s); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
74 |
} |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
75 |
for (ResolvedJavaMethod m : methods) { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
76 |
encoding.addMethod(m); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
77 |
} |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
78 |
for (ResolvedJavaMethod c : constructors) { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
79 |
encoding.addMethod(c); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
80 |
} |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
81 |
for (ResolvedJavaType t : types) { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
82 |
encoding.addType(t); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
83 |
} |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
84 |
encoding.addMethod(null); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
85 |
encoding.addType(null); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
86 |
} |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
87 |
if (useCache) { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
88 |
cachedEncoding = encoding; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
89 |
} |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
90 |
return encoding; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
91 |
} |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
92 |
|
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
93 |
@Override |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
94 |
public boolean equals(Object obj) { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
95 |
if (obj instanceof Dummy) { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
96 |
Dummy that = (Dummy) obj; |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
97 |
return Arrays.equals(this.ints, that.ints) && |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
98 |
Arrays.equals(this.longs, that.longs) && |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
99 |
Arrays.equals(this.strings, that.strings) && |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
100 |
this.methods.equals(that.methods) && |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
101 |
this.constructors.equals(that.constructors) && |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
102 |
this.types.equals(that.types); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
103 |
} |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
104 |
return super.equals(obj); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
105 |
} |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
106 |
|
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
107 |
@Override |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
108 |
public int hashCode() { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
109 |
return 31 * Arrays.hashCode(ints) ^ |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
110 |
Arrays.hashCode(longs) ^ |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
111 |
Arrays.hashCode(strings) ^ |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
112 |
methods.hashCode() ^ |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
113 |
constructors.hashCode() ^ |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
114 |
types.hashCode(); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
115 |
} |
52298
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
116 |
} |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
117 |
|
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
118 |
@Test |
54669
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
119 |
public synchronized void testSpeculationIdentity() { |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
120 |
CodeCacheProvider codeCache = JVMCI.getRuntime().getHostJVMCIBackend().getCodeCache(); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
121 |
SpeculationLog log = codeCache.createSpeculationLog(); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
122 |
Dummy spec1 = new Dummy(true); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
123 |
Dummy spec2 = new Dummy(false); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
124 |
Assert.assertTrue(log.maySpeculate(spec1)); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
125 |
Assert.assertTrue(log.maySpeculate(spec2)); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
126 |
SpeculationLog.Speculation s1 = log.speculate(spec1); |
ad45b3802d4e
8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
kvn
parents:
52298
diff
changeset
|
127 |
SpeculationLog.Speculation s2 = log.speculate(spec2); |
52298
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
128 |
Assert.assertTrue("Speculation should maintain identity", s1.equals(s2)); |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
129 |
JavaConstant e1 = metaAccess.encodeSpeculation(s1); |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
130 |
JavaConstant e2 = metaAccess.encodeSpeculation(s2); |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
131 |
Assert.assertTrue("speculation encoding should maintain identity", e1.equals(e2)); |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
132 |
} |
83039b8e6a42
8212956: [JVCMI] SpeculationReason should maintain identity
never
parents:
diff
changeset
|
133 |
} |