Mercurial > hg > graal-jvmci-8
annotate jvmci/jdk.internal.jvmci.hotspot/src/jdk/internal/jvmci/hotspot/HotSpotReferenceMap.java @ 22190:488d54275360
Rename LIRKind.derivedReference to LIRKind.unknownReference.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Thu, 09 Jul 2015 14:39:08 +0200 |
parents | ae67bd822493 |
children | 9c811a5e6a62 |
rev | line source |
---|---|
13725
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
1 /* |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
2 * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved. |
13725
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
4 * |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
7 * published by the Free Software Foundation. |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
8 * |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
13 * accompanied this code). |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
14 * |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License version |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
18 * |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
21 * questions. |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
22 */ |
22054 | 23 package jdk.internal.jvmci.hotspot; |
13725
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
24 |
22054 | 25 import static jdk.internal.jvmci.code.ValueUtil.*; |
21730
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
26 |
13725
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
27 import java.util.*; |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
28 |
22054 | 29 import jdk.internal.jvmci.code.*; |
30 import jdk.internal.jvmci.common.*; | |
31 import jdk.internal.jvmci.meta.*; | |
13725
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
32 |
21411
082417ac43e4
removed com.oracle.graal.hotspot.server and uses of Serializable it depended upon (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21005
diff
changeset
|
33 public final class HotSpotReferenceMap extends ReferenceMap { |
20981
92fc95e8667d
Add more efficient implementation of HotSpotReferenceMap
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18706
diff
changeset
|
34 |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
35 private Location[] objects; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
36 private Location[] derivedBase; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
37 private int[] sizeInBytes; |
21731
df9d2375512a
Track max live register value in reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21730
diff
changeset
|
38 private int maxRegisterSize; |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
39 |
21730
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
40 private ArrayList<Value> objectValues; |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
41 private int objectCount; |
20981
92fc95e8667d
Add more efficient implementation of HotSpotReferenceMap
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18706
diff
changeset
|
42 |
21730
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
43 private final TargetDescription target; |
22134
ae67bd822493
jvmci: Move Location.addFrameSize logic from C++ to Java.
Roland Schatz <roland.schatz@oracle.com>
parents:
22054
diff
changeset
|
44 private final int totalFrameSize; |
20981
92fc95e8667d
Add more efficient implementation of HotSpotReferenceMap
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18706
diff
changeset
|
45 |
22134
ae67bd822493
jvmci: Move Location.addFrameSize logic from C++ to Java.
Roland Schatz <roland.schatz@oracle.com>
parents:
22054
diff
changeset
|
46 public HotSpotReferenceMap(TargetDescription target, int totalFrameSize) { |
21730
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
47 this.target = target; |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
48 this.objectCount = 0; |
22134
ae67bd822493
jvmci: Move Location.addFrameSize logic from C++ to Java.
Roland Schatz <roland.schatz@oracle.com>
parents:
22054
diff
changeset
|
49 this.totalFrameSize = totalFrameSize; |
21730
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
50 } |
20981
92fc95e8667d
Add more efficient implementation of HotSpotReferenceMap
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18706
diff
changeset
|
51 |
21730
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
52 @Override |
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
53 public void reset() { |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
54 objects = null; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
55 derivedBase = null; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
56 sizeInBytes = null; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
57 maxRegisterSize = 0; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
58 |
21730
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
59 objectValues = new ArrayList<>(); |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
60 objectCount = 0; |
21730
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
61 } |
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
62 |
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
63 @Override |
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
64 public void addLiveValue(Value v) { |
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
65 if (isConstant(v)) { |
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
66 return; |
20981
92fc95e8667d
Add more efficient implementation of HotSpotReferenceMap
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18706
diff
changeset
|
67 } |
21730
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
68 LIRKind lirKind = v.getLIRKind(); |
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
69 if (!lirKind.isValue()) { |
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
70 objectValues.add(v); |
22190
488d54275360
Rename LIRKind.derivedReference to LIRKind.unknownReference.
Roland Schatz <roland.schatz@oracle.com>
parents:
22134
diff
changeset
|
71 if (lirKind.isUnknownReference()) { |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
72 objectCount++; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
73 } else { |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
74 objectCount += lirKind.getReferenceCount(); |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
75 } |
20981
92fc95e8667d
Add more efficient implementation of HotSpotReferenceMap
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18706
diff
changeset
|
76 } |
21731
df9d2375512a
Track max live register value in reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21730
diff
changeset
|
77 if (isRegister(v)) { |
df9d2375512a
Track max live register value in reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21730
diff
changeset
|
78 int size = target.getSizeInBytes(lirKind.getPlatformKind()); |
df9d2375512a
Track max live register value in reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21730
diff
changeset
|
79 if (size > maxRegisterSize) { |
df9d2375512a
Track max live register value in reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21730
diff
changeset
|
80 maxRegisterSize = size; |
df9d2375512a
Track max live register value in reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21730
diff
changeset
|
81 } |
df9d2375512a
Track max live register value in reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21730
diff
changeset
|
82 } |
20981
92fc95e8667d
Add more efficient implementation of HotSpotReferenceMap
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18706
diff
changeset
|
83 } |
92fc95e8667d
Add more efficient implementation of HotSpotReferenceMap
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18706
diff
changeset
|
84 |
21730
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
85 @Override |
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
86 public void finish() { |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
87 objects = new Location[objectCount]; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
88 derivedBase = new Location[objectCount]; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
89 sizeInBytes = new int[objectCount]; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
90 |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
91 int idx = 0; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
92 for (Value obj : objectValues) { |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
93 LIRKind kind = obj.getLIRKind(); |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
94 int bytes = bytesPerElement(kind); |
22190
488d54275360
Rename LIRKind.derivedReference to LIRKind.unknownReference.
Roland Schatz <roland.schatz@oracle.com>
parents:
22134
diff
changeset
|
95 if (kind.isUnknownReference()) { |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
96 throw JVMCIError.unimplemented("derived references not yet implemented"); |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
97 } else { |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
98 for (int i = 0; i < kind.getPlatformKind().getVectorLength(); i++) { |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
99 if (kind.isReference(i)) { |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
100 objects[idx] = toLocation(obj, i * bytes); |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
101 derivedBase[idx] = null; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
102 sizeInBytes[idx] = bytes; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
103 idx++; |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
104 } |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
105 } |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
106 } |
20981
92fc95e8667d
Add more efficient implementation of HotSpotReferenceMap
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18706
diff
changeset
|
107 } |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
108 |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
109 assert idx == objectCount; |
21730
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
110 objectValues = null; |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
111 objectCount = 0; |
16094
c0b8d395368b
Introduce LIRKind to accurately track oop references in backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
16093
diff
changeset
|
112 } |
c0b8d395368b
Introduce LIRKind to accurately track oop references in backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
16093
diff
changeset
|
113 |
21002
95931055060f
fix handling of uncompressed vector oopmaps
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
20981
diff
changeset
|
114 private int bytesPerElement(LIRKind kind) { |
16094
c0b8d395368b
Introduce LIRKind to accurately track oop references in backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
16093
diff
changeset
|
115 PlatformKind platformKind = kind.getPlatformKind(); |
21002
95931055060f
fix handling of uncompressed vector oopmaps
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
20981
diff
changeset
|
116 return target.getSizeInBytes(platformKind) / platformKind.getVectorLength(); |
13725
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
117 } |
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
118 |
22134
ae67bd822493
jvmci: Move Location.addFrameSize logic from C++ to Java.
Roland Schatz <roland.schatz@oracle.com>
parents:
22054
diff
changeset
|
119 private Location toLocation(Value v, int offset) { |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
120 if (isRegister(v)) { |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
121 return Location.subregister(asRegister(v), offset); |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
122 } else { |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
123 StackSlot s = asStackSlot(v); |
22134
ae67bd822493
jvmci: Move Location.addFrameSize logic from C++ to Java.
Roland Schatz <roland.schatz@oracle.com>
parents:
22054
diff
changeset
|
124 return Location.stack(s.getOffset(totalFrameSize) + offset); |
21982
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
125 } |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
126 } |
861108f5408e
Support derived references in HotSpotReferenceMap.
Roland Schatz <roland.schatz@oracle.com>
parents:
21798
diff
changeset
|
127 |
18342
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
128 @Override |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
129 public int hashCode() { |
18349
7aa6180a3486
fixed NullPointerException in HotSpotReferenceMap.equals
Doug Simon <doug.simon@oracle.com>
parents:
18342
diff
changeset
|
130 throw new UnsupportedOperationException(); |
18342
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
131 } |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
132 |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
133 @Override |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
134 public boolean equals(Object obj) { |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
135 if (this == obj) { |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
136 return true; |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
137 } |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
138 if (obj instanceof HotSpotReferenceMap) { |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
139 HotSpotReferenceMap that = (HotSpotReferenceMap) obj; |
21730
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
140 if (Arrays.equals(objects, that.objects) && this.target.equals(that.target)) { |
18342
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
141 return true; |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
142 } |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
143 } |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
144 return false; |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
145 } |
d60dd21329f2
implemented .equals() for CompilationResult and the objects it encapsulates
Doug Simon <doug.simon@oracle.com>
parents:
16114
diff
changeset
|
146 |
20981
92fc95e8667d
Add more efficient implementation of HotSpotReferenceMap
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18706
diff
changeset
|
147 @Override |
92fc95e8667d
Add more efficient implementation of HotSpotReferenceMap
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18706
diff
changeset
|
148 public String toString() { |
21730
b9f9b8af17ff
Simplify interface to reference map
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21556
diff
changeset
|
149 return Arrays.toString(objects); |
20981
92fc95e8667d
Add more efficient implementation of HotSpotReferenceMap
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18706
diff
changeset
|
150 } |
13725
8d8732e14447
Refactor reference maps.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
151 } |