Mercurial > hg > graal-compiler
annotate graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVM.java @ 20176:03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 07 Apr 2015 12:21:08 +0200 |
parents | 29916dcee0b8 |
children | 294ed4ce1fa0 |
rev | line source |
---|---|
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
1 /* |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
2 * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
4 * |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
7 * published by the Free Software Foundation. |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
8 * |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
13 * accompanied this code). |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
14 * |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License version |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
18 * |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
21 * questions. |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
22 */ |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
23 |
5060
4ed4295ce15f
Update import statements.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5059
diff
changeset
|
24 package com.oracle.graal.hotspot.bridge; |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
25 |
20176
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
26 import sun.misc.*; |
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
27 |
8217
dce9cefed571
Draft speculation log.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
8215
diff
changeset
|
28 import com.oracle.graal.api.code.*; |
5507
dc71b06d09f8
Moving classes from cri.ri to api.meta.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5503
diff
changeset
|
29 import com.oracle.graal.api.meta.*; |
15193
96bb07a5d667
Spit up and move GraalInternalError.
Josef Eisl <josef.eisl@jku.at>
parents:
15169
diff
changeset
|
30 import com.oracle.graal.compiler.common.*; |
5060
4ed4295ce15f
Update import statements.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5059
diff
changeset
|
31 import com.oracle.graal.hotspot.*; |
5548
8872bc0eebdf
Renaming hotspot.ri => hotspot.meta.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5547
diff
changeset
|
32 import com.oracle.graal.hotspot.meta.*; |
20176
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
33 import com.oracle.graal.hotspotvmconfig.*; |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
34 |
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
35 /** |
4410 | 36 * Calls from Java into HotSpot. |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
37 */ |
4220
5c80ccb80036
Renaming of VMExits and VMEntries part 1.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4199
diff
changeset
|
38 public interface CompilerToVM { |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
39 |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
40 /** |
15806
240cc9a901fb
don't use JNI natives to interact with VM metadata
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
15725
diff
changeset
|
41 * Copies the original bytecode of a given method into a new byte array and returns it. |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
42 * |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
43 * @param metaspaceMethod the metaspace Method object |
15806
240cc9a901fb
don't use JNI natives to interact with VM metadata
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
15725
diff
changeset
|
44 * @return a new byte array containing the original bytecode |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
45 */ |
15843
747bc4099ad8
rename initializeBytecode to getBytecode and eliminate extra copy
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
15806
diff
changeset
|
46 byte[] getBytecode(long metaspaceMethod); |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
47 |
14105 | 48 int exceptionTableLength(long metaspaceMethod); |
49 | |
13305
a63d65b682a8
moved most HotSpotResolvedJavaMethod.getExceptionHandlers logic to Java
twisti
parents:
13295
diff
changeset
|
50 long exceptionTableStart(long metaspaceMethod); |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
51 |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
52 /** |
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
53 * Determines if a given metaspace Method object has balanced monitors. |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
54 * |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
55 * @param metaspaceMethod the metaspace Method object to query |
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
56 * @return true if the method has balanced monitors |
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
57 */ |
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
58 boolean hasBalancedMonitors(long metaspaceMethod); |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
59 |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
60 /** |
13953
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
61 * Determines if a given metaspace Method can be inlined. A method may not be inlinable for a |
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
62 * number of reasons such as: |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
63 * <ul> |
14520 | 64 * <li>a CompileOracle directive may prevent inlining or compilation of methods</li> |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
65 * <li>the method may have a bytecode breakpoint set</li> |
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
66 * <li>the method may have other bytecode features that require special handling by the VM</li> |
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
67 * </ul> |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
68 * |
13953
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
69 * @param metaspaceMethod the metaspace Method object to query |
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
70 * @return true if the method can be inlined |
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
71 */ |
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
72 boolean canInlineMethod(long metaspaceMethod); |
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
73 |
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
74 /** |
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
75 * Determines if a given metaspace Method should be inlined at any cost. This could be because: |
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
76 * <ul> |
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
77 * <li>a CompileOracle directive may forces inlining of this methods</li> |
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
78 * <li>an annotation forces inlining of this method</li> |
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
79 * </ul> |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
80 * |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
81 * @param metaspaceMethod the metaspace Method object to query |
13953
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
82 * @return true if the method should be inlined |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
83 */ |
13953
d587baa55dd7
Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
13819
diff
changeset
|
84 boolean shouldInlineMethod(long metaspaceMethod); |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
85 |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
86 /** |
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
87 * Used to implement {@link ResolvedJavaType#findUniqueConcreteMethod(ResolvedJavaMethod)}. |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
88 * |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
89 * @param metaspaceMethod the metaspace Method on which to based the search |
18789 | 90 * @param actualHolderMetaspaceKlass the best known type of receiver |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7307
diff
changeset
|
91 * @return the metaspace Method result or 0 is there is no unique concrete method for |
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7307
diff
changeset
|
92 * {@code metaspaceMethod} |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
93 */ |
16184
8fde32ece68e
use receiver type in findUniqueConcreteMethod
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16006
diff
changeset
|
94 long findUniqueConcreteMethod(long actualHolderMetaspaceKlass, long metaspaceMethod); |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
95 |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
96 /** |
18195
62d3440228b8
Improve javadoc for ResolvedJavaType.getSingleImplementor() and CompilerToVM.getKlassImplementor().
Josef Eisl <josef.eisl@jku.at>
parents:
16492
diff
changeset
|
97 * Returns the implementor for the given interface class, if there is a single implementor. |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
98 * |
13478
fe03864a2c72
replaced CompilerToVM.getUniqueImplementor with getKlassImplementor and moved the logic into Java
twisti
parents:
13374
diff
changeset
|
99 * @param metaspaceKlass the metaspace klass to get the implementor for |
18195
62d3440228b8
Improve javadoc for ResolvedJavaType.getSingleImplementor() and CompilerToVM.getKlassImplementor().
Josef Eisl <josef.eisl@jku.at>
parents:
16492
diff
changeset
|
100 * @return the implementor as metaspace klass pointer if there is a single implementor, null if |
62d3440228b8
Improve javadoc for ResolvedJavaType.getSingleImplementor() and CompilerToVM.getKlassImplementor().
Josef Eisl <josef.eisl@jku.at>
parents:
16492
diff
changeset
|
101 * there is no implementor, or the input metaspace klass pointer ({@code metaspaceKlass} |
62d3440228b8
Improve javadoc for ResolvedJavaType.getSingleImplementor() and CompilerToVM.getKlassImplementor().
Josef Eisl <josef.eisl@jku.at>
parents:
16492
diff
changeset
|
102 * ) itself if there is more than one implementor. |
7225
31c4d9f9e922
adder better CHA support
Christian Haeubl <haeubl@ssw.jku.at>
parents:
7147
diff
changeset
|
103 */ |
13478
fe03864a2c72
replaced CompilerToVM.getUniqueImplementor with getKlassImplementor and moved the logic into Java
twisti
parents:
13374
diff
changeset
|
104 long getKlassImplementor(long metaspaceKlass); |
7225
31c4d9f9e922
adder better CHA support
Christian Haeubl <haeubl@ssw.jku.at>
parents:
7147
diff
changeset
|
105 |
31c4d9f9e922
adder better CHA support
Christian Haeubl <haeubl@ssw.jku.at>
parents:
7147
diff
changeset
|
106 /** |
14717 | 107 * Determines if a given metaspace method is ignored by security stack walks. |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
108 * |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
109 * @param metaspaceMethod the metaspace Method object |
14717 | 110 * @return true if the method is ignored |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
111 */ |
14717 | 112 boolean methodIsIgnoredBySecurityStackWalk(long metaspaceMethod); |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
113 |
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
114 /** |
13483
37ec2cabf397
moved JavaType creation in CompilerToVM.lookupType into Java
twisti
parents:
13478
diff
changeset
|
115 * Converts a name to a metaspace klass. |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
116 * |
7027
58dbea9fb973
CompilerToVM.lookupType() now fails with an exception if eagerResolve is true and resolution fails
Doug Simon <doug.simon@oracle.com>
parents:
7019
diff
changeset
|
117 * @param name a well formed Java type in {@linkplain JavaType#getName() internal} format |
16492
8853b9304083
made type resolution require an accessing class context
Doug Simon <doug.simon@oracle.com>
parents:
16405
diff
changeset
|
118 * @param accessingClass the context of resolution (must not be null) |
14117
2b2f0022900f
removed unnecessary lookupKlassByName method
Doug Simon <doug.simon@oracle.com>
parents:
14107
diff
changeset
|
119 * @param resolve force resolution to a {@link ResolvedJavaType}. If true, this method will |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7307
diff
changeset
|
120 * either return a {@link ResolvedJavaType} or throw an exception |
13483
37ec2cabf397
moved JavaType creation in CompilerToVM.lookupType into Java
twisti
parents:
13478
diff
changeset
|
121 * @return a metaspace klass for {@code name} |
14117
2b2f0022900f
removed unnecessary lookupKlassByName method
Doug Simon <doug.simon@oracle.com>
parents:
14107
diff
changeset
|
122 * @throws LinkageError if {@code resolve == true} and the resolution failed |
7027
58dbea9fb973
CompilerToVM.lookupType() now fails with an exception if eagerResolve is true and resolution fails
Doug Simon <doug.simon@oracle.com>
parents:
7019
diff
changeset
|
123 */ |
14117
2b2f0022900f
removed unnecessary lookupKlassByName method
Doug Simon <doug.simon@oracle.com>
parents:
14107
diff
changeset
|
124 long lookupType(String name, Class<?> accessingClass, boolean resolve); |
14093 | 125 |
14529 | 126 Object resolveConstantInPool(long metaspaceConstantPool, int cpi); |
127 | |
128 Object resolvePossiblyCachedConstantInPool(long metaspaceConstantPool, int cpi); | |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
129 |
14093 | 130 int lookupNameAndTypeRefIndexInPool(long metaspaceConstantPool, int cpi); |
131 | |
15968
42eaa579e134
more improvements to runtime initialization:
Doug Simon <doug.simon@oracle.com>
parents:
15843
diff
changeset
|
132 String lookupNameRefInPool(long metaspaceConstantPool, int cpi); |
14093 | 133 |
15968
42eaa579e134
more improvements to runtime initialization:
Doug Simon <doug.simon@oracle.com>
parents:
15843
diff
changeset
|
134 String lookupSignatureRefInPool(long metaspaceConstantPool, int cpi); |
14093 | 135 |
136 int lookupKlassRefIndexInPool(long metaspaceConstantPool, int cpi); | |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
137 |
14530
d87b84dade7d
moved CompilerToVM.loadReferencedTypeInPool logic into Java
twisti
parents:
14529
diff
changeset
|
138 long constantPoolKlassAt(long metaspaceConstantPool, int cpi); |
d87b84dade7d
moved CompilerToVM.loadReferencedTypeInPool logic into Java
twisti
parents:
14529
diff
changeset
|
139 |
14069
2f37b0e442fe
removed remaining VMToCompiler calls for allocating Graal API objects
Doug Simon <doug.simon@oracle.com>
parents:
14052
diff
changeset
|
140 /** |
2f37b0e442fe
removed remaining VMToCompiler calls for allocating Graal API objects
Doug Simon <doug.simon@oracle.com>
parents:
14052
diff
changeset
|
141 * Looks up a class entry in a constant pool. |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
142 * |
14093 | 143 * @param metaspaceConstantPool metaspace constant pool pointer |
144 * @param cpi constant pool index | |
145 * @return a metaspace Klass for a resolved method entry, a metaspace Symbol otherwise (with | |
146 * tagging) | |
14069
2f37b0e442fe
removed remaining VMToCompiler calls for allocating Graal API objects
Doug Simon <doug.simon@oracle.com>
parents:
14052
diff
changeset
|
147 */ |
14093 | 148 long lookupKlassInPool(long metaspaceConstantPool, int cpi); |
149 | |
150 /** | |
151 * Looks up a method entry in a constant pool. | |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
152 * |
14093 | 153 * @param metaspaceConstantPool metaspace constant pool pointer |
154 * @param cpi constant pool index | |
155 * @return a metaspace Method for a resolved method entry, 0 otherwise | |
156 */ | |
157 long lookupMethodInPool(long metaspaceConstantPool, int cpi, byte opcode); | |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
158 |
14069
2f37b0e442fe
removed remaining VMToCompiler calls for allocating Graal API objects
Doug Simon <doug.simon@oracle.com>
parents:
14052
diff
changeset
|
159 /** |
2f37b0e442fe
removed remaining VMToCompiler calls for allocating Graal API objects
Doug Simon <doug.simon@oracle.com>
parents:
14052
diff
changeset
|
160 * Looks up a field entry in a constant pool and attempts to resolve it. The values returned in |
2f37b0e442fe
removed remaining VMToCompiler calls for allocating Graal API objects
Doug Simon <doug.simon@oracle.com>
parents:
14052
diff
changeset
|
161 * {@code info} are: |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
162 * |
14069
2f37b0e442fe
removed remaining VMToCompiler calls for allocating Graal API objects
Doug Simon <doug.simon@oracle.com>
parents:
14052
diff
changeset
|
163 * <pre> |
14093 | 164 * [(int) flags, // only valid if field is resolved |
165 * (int) offset] // only valid if field is resolved | |
14069
2f37b0e442fe
removed remaining VMToCompiler calls for allocating Graal API objects
Doug Simon <doug.simon@oracle.com>
parents:
14052
diff
changeset
|
166 * </pre> |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
167 * |
14093 | 168 * @param metaspaceConstantPool metaspace constant pool pointer |
169 * @param cpi constant pool index | |
14069
2f37b0e442fe
removed remaining VMToCompiler calls for allocating Graal API objects
Doug Simon <doug.simon@oracle.com>
parents:
14052
diff
changeset
|
170 * @param info an array in which the details of the field are returned |
2f37b0e442fe
removed remaining VMToCompiler calls for allocating Graal API objects
Doug Simon <doug.simon@oracle.com>
parents:
14052
diff
changeset
|
171 * @return true if the field is resolved |
2f37b0e442fe
removed remaining VMToCompiler calls for allocating Graal API objects
Doug Simon <doug.simon@oracle.com>
parents:
14052
diff
changeset
|
172 */ |
14093 | 173 long resolveField(long metaspaceConstantPool, int cpi, byte opcode, long[] info); |
14069
2f37b0e442fe
removed remaining VMToCompiler calls for allocating Graal API objects
Doug Simon <doug.simon@oracle.com>
parents:
14052
diff
changeset
|
174 |
14530
d87b84dade7d
moved CompilerToVM.loadReferencedTypeInPool logic into Java
twisti
parents:
14529
diff
changeset
|
175 int constantPoolRemapInstructionOperandFromCache(long metaspaceConstantPool, int cpi); |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
176 |
14052
361acb279104
moved to-constant-pool-index conversion up to Java
twisti
parents:
14012
diff
changeset
|
177 Object lookupAppendixInPool(long metaspaceConstantPool, int cpi); |
9011
23762f2438b6
support for compiling LambdaForm invocations (invokevirtual instructions that were rewritten to invokehandle instructions)
Doug Simon <doug.simon@oracle.com>
parents:
8945
diff
changeset
|
178 |
7113
38076efb9062
Do not print code installation failures from Java.
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
7089
diff
changeset
|
179 public enum CodeInstallResult { |
14908
8db6e76cb658
Formatter: Keep one enum constant per line
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
14717
diff
changeset
|
180 OK("ok"), |
8db6e76cb658
Formatter: Keep one enum constant per line
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
14717
diff
changeset
|
181 DEPENDENCIES_FAILED("dependencies failed"), |
19782
29916dcee0b8
Verify dependencies when assertions are enabled
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18789
diff
changeset
|
182 DEPENDENCIES_INVALID("dependencies invalid"), |
14908
8db6e76cb658
Formatter: Keep one enum constant per line
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
14717
diff
changeset
|
183 CACHE_FULL("code cache is full"), |
8db6e76cb658
Formatter: Keep one enum constant per line
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
14717
diff
changeset
|
184 CODE_TOO_LARGE("code is too large"); |
13170
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
185 |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
186 private int value; |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
187 private String message; |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
188 |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
189 private CodeInstallResult(String name) { |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
190 HotSpotVMConfig config = HotSpotGraalRuntime.runtime().getConfig(); |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
191 switch (name) { |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
192 case "ok": |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
193 this.value = config.codeInstallResultOk; |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
194 break; |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
195 case "dependencies failed": |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
196 this.value = config.codeInstallResultDependenciesFailed; |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
197 break; |
19782
29916dcee0b8
Verify dependencies when assertions are enabled
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18789
diff
changeset
|
198 case "dependencies invalid": |
29916dcee0b8
Verify dependencies when assertions are enabled
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18789
diff
changeset
|
199 this.value = config.codeInstallResultDependenciesInvalid; |
29916dcee0b8
Verify dependencies when assertions are enabled
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18789
diff
changeset
|
200 break; |
13170
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
201 case "code cache is full": |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
202 this.value = config.codeInstallResultCacheFull; |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
203 break; |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
204 case "code is too large": |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
205 this.value = config.codeInstallResultCodeTooLarge; |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
206 break; |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
207 default: |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
208 throw GraalInternalError.shouldNotReachHere("unknown enum name " + name); |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
209 } |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
210 this.message = name; |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
211 } |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
212 |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
213 /** |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
214 * Returns the enum object for the given value. |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
215 */ |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
216 public static CodeInstallResult getEnum(int value) { |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
217 for (CodeInstallResult e : values()) { |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
218 if (e.value == value) { |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
219 return e; |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
220 } |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
221 } |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
222 throw GraalInternalError.shouldNotReachHere("unknown enum value " + value); |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
223 } |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
224 |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
225 @Override |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
226 public String toString() { |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
227 return message; |
f294b4ee2d47
make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents:
13103
diff
changeset
|
228 } |
7113
38076efb9062
Do not print code installation failures from Java.
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
7089
diff
changeset
|
229 } |
38076efb9062
Do not print code installation failures from Java.
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
7089
diff
changeset
|
230 |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
231 /** |
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
232 * Installs the result of a compilation into the code cache. |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
233 * |
9669
ed6202820ecf
renamed HotSpotCompilationResult to HotSpotCompiledCode and added subclasses HotSpotCompiledNmethod and HotSpotCompiledRuntimeStub
Doug Simon <doug.simon@oracle.com>
parents:
9649
diff
changeset
|
234 * @param compiledCode the result of a compilation |
9604 | 235 * @param code the details of the installed CodeBlob are written to this object |
7113
38076efb9062
Do not print code installation failures from Java.
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
7089
diff
changeset
|
236 * @return the outcome of the installation as a {@link CodeInstallResult}. |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
237 */ |
15161
2c940b1a48d8
Convert InstalledCode from an interface into an abstract class.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
15092
diff
changeset
|
238 CodeInstallResult installCode(HotSpotCompiledCode compiledCode, InstalledCode code, SpeculationLog speculationLog); |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
239 |
13103
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
240 /** |
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
241 * Notifies the VM of statistics for a completed compilation. |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
242 * |
13103
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
243 * @param id the identifier of the compilation |
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
244 * @param method the method compiled |
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
245 * @param osr specifies if the compilation was for on-stack-replacement |
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
246 * @param processedBytecodes the number of bytecodes processed during the compilation, including |
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
247 * the bytecodes of all inlined methods |
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
248 * @param time the amount time spent compiling {@code method} |
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
249 * @param timeUnitsPerSecond the granularity of the units for the {@code time} value |
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
250 * @param installedCode the nmethod installed as a result of the compilation |
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
251 */ |
15161
2c940b1a48d8
Convert InstalledCode from an interface into an abstract class.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
15092
diff
changeset
|
252 void notifyCompilationStatistics(int id, HotSpotResolvedJavaMethod method, boolean osr, int processedBytecodes, long time, long timeUnitsPerSecond, InstalledCode installedCode); |
13103
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
253 |
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
254 void resetCompilationStatistics(); |
c0b0974dd509
moved notification of Graal compilation statistics from VMToCompiler to CompilerToVM
Doug Simon <doug.simon@oracle.com>
parents:
12559
diff
changeset
|
255 |
6363
a73fcf1639fc
HotSpotVMConfig object is now allocated in Java
Doug Simon <doug.simon@oracle.com>
parents:
5780
diff
changeset
|
256 void initializeConfiguration(HotSpotVMConfig config); |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
257 |
15722
c583759bbcfd
ResolvedJavaType.resolveMethod now takes a callerType that is used to check access rules. Make it work for default methods.
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
15205
diff
changeset
|
258 long resolveMethod(long metaspaceKlassExactReceiver, long metaspaceMethod, long metaspaceKlassCaller); |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
259 |
14104 | 260 long getClassInitializer(long metaspaceKlass); |
9985
e6bd1004082a
added HotSpotResolvedObjectType.getMethods() to get all methods of a class including those (such as <clinit>) not normally exposed by Java reflection
Doug Simon <doug.simon@oracle.com>
parents:
9669
diff
changeset
|
261 |
14104 | 262 boolean hasFinalizableSubclass(long metaspaceKlass); |
9126
bc26f978b0ce
HotSpotResolvedObjectType: implement hasFinalizeSubclass() correctly
Bernhard Urban <bernhard.urban@jku.at>
parents:
9108
diff
changeset
|
263 |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
264 /** |
13264
b23cbfb4366a
merged CompilerToVM.getMetaspaceConstructor into CompilerToVM.getMetaspaceMethod
twisti
parents:
13263
diff
changeset
|
265 * Gets the metaspace Method object corresponding to a given {@link Class} object and slot |
b23cbfb4366a
merged CompilerToVM.getMetaspaceConstructor into CompilerToVM.getMetaspaceMethod
twisti
parents:
13263
diff
changeset
|
266 * number. |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
267 * |
13264
b23cbfb4366a
merged CompilerToVM.getMetaspaceConstructor into CompilerToVM.getMetaspaceMethod
twisti
parents:
13263
diff
changeset
|
268 * @param holder method holder |
b23cbfb4366a
merged CompilerToVM.getMetaspaceConstructor into CompilerToVM.getMetaspaceMethod
twisti
parents:
13263
diff
changeset
|
269 * @param slot slot number of the method |
b23cbfb4366a
merged CompilerToVM.getMetaspaceConstructor into CompilerToVM.getMetaspaceMethod
twisti
parents:
13263
diff
changeset
|
270 * @return the metaspace Method |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
271 */ |
13264
b23cbfb4366a
merged CompilerToVM.getMetaspaceConstructor into CompilerToVM.getMetaspaceMethod
twisti
parents:
13263
diff
changeset
|
272 long getMetaspaceMethod(Class<?> holder, int slot); |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
273 |
9649 | 274 long getMaxCallTargetOffset(long address); |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
275 |
9338
0266549ff6e0
added support from compiled stubs to be installed as RuntimeStubs and to be able to directly call C/C++ runtime functions (GRAAL-81)
Doug Simon <doug.simon@oracle.com>
parents:
9126
diff
changeset
|
276 String disassembleCodeBlob(long codeBlob); |
7784
016e23829147
added HotSpot implementation of disassembling APIs
Doug Simon <doug.simon@oracle.com>
parents:
7530
diff
changeset
|
277 |
6950
41938af2b3d8
modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents:
6588
diff
changeset
|
278 StackTraceElement getStackTraceElement(long metaspaceMethod, int bci); |
5238
cce31bc56c00
made HotSpotResolvedMethodImpl.toStackTraceElement() call into native code to get an object containing source file info
Doug Simon <doug.simon@oracle.com>
parents:
5129
diff
changeset
|
279 |
15161
2c940b1a48d8
Convert InstalledCode from an interface into an abstract class.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
15092
diff
changeset
|
280 Object executeCompiledMethod(Object arg1, Object arg2, Object arg3, InstalledCode hotspotInstalledCode) throws InvalidInstalledCodeException; |
4993
897b7d18bebc
added RiCompiledMethod.execute and the required VM infrastructure
Lukas Stadler <lukas.stadler@jku.at>
parents:
4635
diff
changeset
|
281 |
15161
2c940b1a48d8
Convert InstalledCode from an interface into an abstract class.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
15092
diff
changeset
|
282 Object executeCompiledMethodVarargs(Object[] args, InstalledCode hotspotInstalledCode) throws InvalidInstalledCodeException; |
5246
8bf2c37c46c4
added RiCompiledMethod.executeVarargs(Object...) to support compiling and calling arbitrary Java methods
Doug Simon <doug.simon@oracle.com>
parents:
5238
diff
changeset
|
283 |
14104 | 284 long[] getLineNumberTable(long metaspaceMethod); |
7307
dc3e86fd3be1
Introduce cutomization capability for canonicalizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
7225
diff
changeset
|
285 |
14104 | 286 long getLocalVariableTableStart(long metaspaceMethod); |
13306
dfb780080923
moved most CompilerToVM.getLocalVariableTable to Java
twisti
parents:
13305
diff
changeset
|
287 |
14104 | 288 int getLocalVariableTableLength(long metaspaceMethod); |
7786
8bbbde9d0a52
extended ResolvedJavaMethod API by getLocalVariableTable
Matthias Grimmer <grimmer@ssw.jku.at>
parents:
7784
diff
changeset
|
289 |
7307
dc3e86fd3be1
Introduce cutomization capability for canonicalizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
7225
diff
changeset
|
290 String getFileName(HotSpotResolvedJavaType method); |
8527
8a526d8b4604
Always clear 'queued for compilation' flag at the end of a compilation task
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
8349
diff
changeset
|
291 |
15052
5e6f29f287d6
added InstanceKlass::_graal_node_class field to accelerate Node.getNodeClass()
Doug Simon <doug.simon@oracle.com>
parents:
14908
diff
changeset
|
292 Class<?> getJavaMirror(long metaspaceKlass); |
5e6f29f287d6
added InstanceKlass::_graal_node_class field to accelerate Node.getNodeClass()
Doug Simon <doug.simon@oracle.com>
parents:
14908
diff
changeset
|
293 |
10715
c3760150dc29
Add function to read compressed klass pointers of constant objects natively
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10639
diff
changeset
|
294 long readUnsafeKlassPointer(Object o); |
c3760150dc29
Add function to read compressed klass pointers of constant objects natively
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10639
diff
changeset
|
295 |
20176
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
296 /** |
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
297 * Reads an object pointer within a VM data structures. That is, any {@link HotSpotVMField} |
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
298 * whose {@link HotSpotVMField#type() type} is {@code "oop"} (e.g., |
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
299 * {@code ArrayKlass::_component_mirror}, {@code Klass::_java_mirror}, |
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
300 * {@code JavaThread::_threadObj}). |
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
301 * |
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
302 * Note that {@link Unsafe#getObject(Object, long)} cannot be used for this since it does a |
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
303 * {@code narrowOop} read if the VM is using compressed oops whereas oops within VM data |
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
304 * structures are (currently) always uncompressed. |
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
305 * |
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
306 * @param address address of an oop field within a VM data structure |
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
307 */ |
03b4fa99eff8
rename CompilerToVM.readUnsafeOop to readUncompressedOop and only use it for reading oops in VM data structures since Unsafe.getObject() can be used for other cases
Doug Simon <doug.simon@oracle.com>
parents:
19782
diff
changeset
|
308 Object readUncompressedOop(long address); |
18719
6484e5c068c7
Generalize object reading in HotSpotMemoryAccessProvider.
Roland Schatz <roland.schatz@oracle.com>
parents:
18195
diff
changeset
|
309 |
12535
cee7f686c470
rename CompilerToVm.dontInline to doNotInlineOrCompile
Matthias Grimmer <grimmer@ssw.jku.at>
parents:
12533
diff
changeset
|
310 void doNotInlineOrCompile(long metaspaceMethod); |
12532
9b1cc2628961
Extend the CompilerToVM interface to explicitly avoid compilation and inlining of methods
Matthias Grimmer <grimmer@ssw.jku.at>
parents:
11852
diff
changeset
|
311 |
8611
6c4db417385a
added API to reset the profiling information for a method
Christian Haeubl <haeubl@ssw.jku.at>
parents:
8349
diff
changeset
|
312 /** |
6c4db417385a
added API to reset the profiling information for a method
Christian Haeubl <haeubl@ssw.jku.at>
parents:
8349
diff
changeset
|
313 * Invalidates the profiling information and restarts profiling upon the next invocation. |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
314 * |
8611
6c4db417385a
added API to reset the profiling information for a method
Christian Haeubl <haeubl@ssw.jku.at>
parents:
8349
diff
changeset
|
315 * @param metaspaceMethod the metaspace Method object |
6c4db417385a
added API to reset the profiling information for a method
Christian Haeubl <haeubl@ssw.jku.at>
parents:
8349
diff
changeset
|
316 */ |
6c4db417385a
added API to reset the profiling information for a method
Christian Haeubl <haeubl@ssw.jku.at>
parents:
8349
diff
changeset
|
317 void reprofile(long metaspaceMethod); |
8945
7ef66078d837
add basic invokedynamic support
Andreas Woess <andreas.woess@jku.at>
parents:
8614
diff
changeset
|
318 |
15161
2c940b1a48d8
Convert InstalledCode from an interface into an abstract class.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
15092
diff
changeset
|
319 void invalidateInstalledCode(InstalledCode hotspotInstalledCode); |
11520
7cca436d600b
Add isLinked method to ResolvedJavaType
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
10715
diff
changeset
|
320 |
11852
d7964e96b0b0
move benchmark counters into separate class and make them correct for multithreaded applications
Lukas Stadler <lukas.stadler@jku.at>
parents:
11520
diff
changeset
|
321 /** |
d7964e96b0b0
move benchmark counters into separate class and make them correct for multithreaded applications
Lukas Stadler <lukas.stadler@jku.at>
parents:
11520
diff
changeset
|
322 * Collects the current values of all Graal benchmark counters, summed up over all threads. |
d7964e96b0b0
move benchmark counters into separate class and make them correct for multithreaded applications
Lukas Stadler <lukas.stadler@jku.at>
parents:
11520
diff
changeset
|
323 */ |
d7964e96b0b0
move benchmark counters into separate class and make them correct for multithreaded applications
Lukas Stadler <lukas.stadler@jku.at>
parents:
11520
diff
changeset
|
324 long[] collectCounters(); |
13630
b1838411e896
Use compile ids assigned by hotspot
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13483
diff
changeset
|
325 |
13769
af344056124f
Only use mature method datas
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13669
diff
changeset
|
326 boolean isMature(long metaspaceMethodData); |
af344056124f
Only use mature method datas
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13669
diff
changeset
|
327 |
13630
b1838411e896
Use compile ids assigned by hotspot
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13483
diff
changeset
|
328 /** |
b1838411e896
Use compile ids assigned by hotspot
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13483
diff
changeset
|
329 * Generate a unique id to identify the result of the compile. |
b1838411e896
Use compile ids assigned by hotspot
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13483
diff
changeset
|
330 */ |
14104 | 331 int allocateCompileId(long metaspaceMethod, int entryBCI); |
13819
49db2c1e3bee
added support for co-existing GPU backends (JBS:GRAAL-1)
Doug Simon <doug.simon@oracle.com>
parents:
13769
diff
changeset
|
332 |
49db2c1e3bee
added support for co-existing GPU backends (JBS:GRAAL-1)
Doug Simon <doug.simon@oracle.com>
parents:
13769
diff
changeset
|
333 /** |
49db2c1e3bee
added support for co-existing GPU backends (JBS:GRAAL-1)
Doug Simon <doug.simon@oracle.com>
parents:
13769
diff
changeset
|
334 * Gets the names of the supported GPU architectures. |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
335 * |
13819
49db2c1e3bee
added support for co-existing GPU backends (JBS:GRAAL-1)
Doug Simon <doug.simon@oracle.com>
parents:
13769
diff
changeset
|
336 * @return a comma separated list of names |
49db2c1e3bee
added support for co-existing GPU backends (JBS:GRAAL-1)
Doug Simon <doug.simon@oracle.com>
parents:
13769
diff
changeset
|
337 */ |
49db2c1e3bee
added support for co-existing GPU backends (JBS:GRAAL-1)
Doug Simon <doug.simon@oracle.com>
parents:
13769
diff
changeset
|
338 String getGPUs(); |
14107
800057208a2c
enable C1 + Graal tiered
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14105
diff
changeset
|
339 |
800057208a2c
enable C1 + Graal tiered
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14105
diff
changeset
|
340 /** |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
341 * |
14107
800057208a2c
enable C1 + Graal tiered
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14105
diff
changeset
|
342 * @param metaspaceMethod the method to check |
800057208a2c
enable C1 + Graal tiered
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14105
diff
changeset
|
343 * @param entryBCI |
800057208a2c
enable C1 + Graal tiered
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14105
diff
changeset
|
344 * @param level the compilation level |
800057208a2c
enable C1 + Graal tiered
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14105
diff
changeset
|
345 * @return true if the {@code metaspaceMethod} has code for {@code level} |
800057208a2c
enable C1 + Graal tiered
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14105
diff
changeset
|
346 */ |
800057208a2c
enable C1 + Graal tiered
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14105
diff
changeset
|
347 boolean hasCompiledCodeForOSR(long metaspaceMethod, int entryBCI, int level); |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
348 |
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
349 /** |
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
350 * Fetch the time stamp used for printing inside hotspot. It's relative to VM start to that all |
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
351 * events can be ordered. |
15059
4df6d7c966a2
fixed performance regression in hosted mode execution caused by 5e6f29f287d6
Doug Simon <doug.simon@oracle.com>
parents:
15054
diff
changeset
|
352 * |
15045
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
353 * @return milliseconds since VM start |
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
354 */ |
0286888f792b
fix PrintCompilation formatting and use same time source
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
14908
diff
changeset
|
355 long getTimeStamp(); |
15063
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
356 |
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
357 /** |
15968
42eaa579e134
more improvements to runtime initialization:
Doug Simon <doug.simon@oracle.com>
parents:
15843
diff
changeset
|
358 * Gets the value of a metaspace {@code Symbol} as a String. |
16006
66a9286203a2
decoupled Graal runtime initialization and Graal compilation queue initialization
Doug Simon <doug.simon@oracle.com>
parents:
15968
diff
changeset
|
359 * |
15968
42eaa579e134
more improvements to runtime initialization:
Doug Simon <doug.simon@oracle.com>
parents:
15843
diff
changeset
|
360 * @param metaspaceSymbol |
42eaa579e134
more improvements to runtime initialization:
Doug Simon <doug.simon@oracle.com>
parents:
15843
diff
changeset
|
361 */ |
42eaa579e134
more improvements to runtime initialization:
Doug Simon <doug.simon@oracle.com>
parents:
15843
diff
changeset
|
362 String getSymbol(long metaspaceSymbol); |
42eaa579e134
more improvements to runtime initialization:
Doug Simon <doug.simon@oracle.com>
parents:
15843
diff
changeset
|
363 |
42eaa579e134
more improvements to runtime initialization:
Doug Simon <doug.simon@oracle.com>
parents:
15843
diff
changeset
|
364 /** |
15063
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
365 * Looks for the next Java stack frame with the given method. |
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
366 * |
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
367 * @param frame the starting point of the search, where {@code null} refers to the topmost frame |
15088
d3add9b82b71
change to StackIntrospection and Truffle getStackTrace implementation
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15063
diff
changeset
|
368 * @param methods the metaspace methods to look for, where {@code null} means that any frame is |
d3add9b82b71
change to StackIntrospection and Truffle getStackTrace implementation
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15063
diff
changeset
|
369 * returned |
15063
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
370 * @return the frame, or {@code null} if the end of the stack was reached during the search |
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
371 */ |
15092
c73ce0dd3583
add support for skipping stack frames in StackIntrospection.getStackTrace
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15088
diff
changeset
|
372 HotSpotStackFrameReference getNextStackFrame(HotSpotStackFrameReference frame, long[] methods, int initialSkip); |
15063
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
373 |
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
374 /** |
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
375 * Materialized all virtual objects within the given stack frame and update the locals within |
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
376 * the given stackFrame object. |
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
377 * |
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
378 * @param invalidate if {@code true}, the compiled method for the stack frame will be |
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
379 * invalidated. |
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
380 */ |
36e1a11a72b3
new StackIntrospection interface to allow access to stack contents
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15059
diff
changeset
|
381 void materializeVirtualObjects(HotSpotStackFrameReference stackFrame, boolean invalidate); |
15205
affef8631cf4
Add eager resolving for indy call sites
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
15193
diff
changeset
|
382 |
affef8631cf4
Add eager resolving for indy call sites
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
15193
diff
changeset
|
383 void resolveInvokeDynamic(long metaspaceConstantPool, int index); |
15725
ef6b8d1898e6
Add resolved receiver type to ResolvedJavaMethod.isInVirtualMethodTable in order to be able to do vtable-calls for miranda and default methods
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
15722
diff
changeset
|
384 |
ef6b8d1898e6
Add resolved receiver type to ResolvedJavaMethod.isInVirtualMethodTable in order to be able to do vtable-calls for miranda and default methods
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
15722
diff
changeset
|
385 int getVtableIndexForInterface(long metaspaceKlass, long metaspaceMethod); |
16243
fb77eab05bd3
Respect the VM's wish to record non-safepoint debug info
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
16184
diff
changeset
|
386 |
fb77eab05bd3
Respect the VM's wish to record non-safepoint debug info
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
16184
diff
changeset
|
387 boolean shouldDebugNonSafepoints(); |
16405
9bfc4247262f
send log output to native tty
Lukas Stadler <lukas.stadler@oracle.com>
parents:
16243
diff
changeset
|
388 |
9bfc4247262f
send log output to native tty
Lukas Stadler <lukas.stadler@oracle.com>
parents:
16243
diff
changeset
|
389 void writeDebugOutput(byte[] bytes, int offset, int length); |
3733
e233f5660da4
Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
390 } |